anchor.diff:  	desc = "The mask of a poor cluwne that has been scrubbed of its curse by the Nanotrasen supernatural machinations division. Guaranteed to be %99 curse free and %99.9 not haunted. "
   	flags_1 = MASKINTERNALS
   	alternate_screams = list('yogstation/sound/voice/cluwnelaugh1.ogg','yogstation/sound/voice/cluwnelaugh2.ogg','yogstation/sound/voice/cluwnelaugh3.ogg')
  +	item_flags = ABSTRACT
   	var/can_cluwne = TRUE
  -	item_flags = ABSTRACT
  +	var/is_cursed = FALSE //i don't care that this is *slightly* memory wasteful, it's just one more byte and it's not like some madman is going to spawn thousands of these
  +	var/is_very_cursed = FALSE
  +
  +/obj/item/clothing/mask/yogs/cluwne/happy_cluwne/New()
  +	..()
  +	if(prob(1)) //this function pre-determines the logic of the cluwne mask. applying and reapplying the mask does not alter or change anything
  +		is_cursed = TRUE
  +		is_very_cursed = FALSE
  +	else if(prob(0.1))
  +		is_cursed = FALSE
  +		is_very_cursed = TRUE
   
   /obj/item/clothing/mask/yogs/cluwne/happy_cluwne/attack_self(mob/user)
   	voicechange = !voicechange
  
positive.code: #define CLUWNEDOWN 50
  
  /obj/item/clothing/mask/yogs/cluwne
  	name = "clown wig and mask"
  	desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask."
  
negative.code: 			message_admins("[key_name(user)] summoned a floor cluwne using the [src]")
  			to_chat(H, "<span class='warning'>The mask suddenly slips off your face and... slides under the floor?</span>")
  			to_chat(H, "<i>...dneirf uoy ot gnoleb ton seod tahT</i>")
  			qdel(src)