void main()
{
    object oItem = GetEventParamObject(0);
    object oPC = OBJECT_SELF;
    object oArea = GetArea(oPC);
    string sAreaTag = GetTag(oArea);
    string sPCName = GetName(oPC);

    // Check if the effect is already applied
    if(GetLocalInt(oPC, "USED_BADGE_CAS") == TRUE)
    {
        SendMessageToPC(oPC, "You just used your badge, no spamming, wait 3 minutes!");
        return;
    }

    AssignCommand(oPC, ActionSpeakString("<c s >[A crude, oozing substance begins to wrap itself around the surface of " + sPCName + "<c s > drenching them in slime...</c>"));
    
        // Set the flag indicating the effect is active
    SetLocalInt(oPC, "OOZESTONE_ACTIVE", TRUE);

    // Delete the flag after 30 minutes
    DelayCommand(180.0, DeleteLocalInt(oPC, "OOZESTONE_ACTIVE"));
}
