anchor.diff:  				to_chat(H, "You already used this contract!")
   				return
   			var/list/candidates = pollCandidatesForMob("Do you want to play as a wizard's [href_list["school"]] apprentice?", ROLE_WIZARD, null, ROLE_WIZARD, 150, src)
  -			if(LAZYLEN(candidates))
  +			if(candidates.len)
   				if(used)
   					to_chat(H, "You already used this contract!")
   					return
  -				used = TRUE
  -				var/client/C = pick(candidates)
  -				spawn_antag(C, get_turf(src), href_list["school"],H.mind)
  +				used = 1
  +				var/mob/dead/observer/theghost = pick(candidates)
  +				spawn_antag(theghost.client, get_turf(src), href_list["school"],H.mind)
   			else
   				to_chat(H, "Unable to reach your apprentice! You can either attack the spellbook with the contract to refund your points, or wait and try again later.")
   
  
positive.code: 		return
  	if(used)
  		return
  	var/list/candidates = pollCandidatesForMob("Do you want to play as a [initial(demon_type.name)]?", ROLE_ALIEN, null, ROLE_ALIEN, 50, src)
  	if(LAZYLEN(candidates))
  		if(used)
  			return
  		used = TRUE
  		var/client/C = pick(candidates)
  		spawn_antag(C, get_turf(src), initial(demon_type.name),user.mind)
  		to_chat(user, shatter_msg)
  		to_chat(user, veil_msg)
  		playsound(user.loc, 'sound/effects/glassbr1.ogg', 100, 1)
  
negative.code: 	throw_speed = 1
  	throw_range = 5
  	w_class = WEIGHT_CLASS_TINY
  	var/used = 0
  
  /obj/item/antag_spawner/proc/spawn_antag(client/C, turf/T, kind = "", datum/mind/user)
  	return
  