anchor.diff:  	QDEL_NULL(sparks)
   	return ..()
   
  +/obj/machinery/vr_sleeper/hugbox/emag_act(mob/user)
  +	return
   
   /obj/machinery/vr_sleeper/emag_act(mob/user)
   	you_die_in_the_game_you_die_for_real = TRUE
  
positive.code: 	sparks = new /datum/effect_system/spark_spread()
  	sparks.set_up(2,0)
  	sparks.attach(src)
  
  	update_icon()
  
  	if(!available_vr_spawnpoints || !available_vr_spawnpoints.len) //(re)build spawnpoint lists
  		available_vr_spawnpoints = list()
  		for(var/obj/effect/landmark/vr_spawn/V in GLOB.landmarks_list)
  			available_vr_spawnpoints[V.vr_category] = list()
  			var/turf/T = get_turf(V)
  			if(T)
  				available_vr_spawnpoints[V.vr_category] |= T
  
  
  /obj/machinery/vr_sleeper/attack_hand(mob/user)
  	. = ..()
  
negative.code: /obj/machinery/vr_sleeper/proc/get_vr_spawnpoint() //proc so it can be overriden for team games or something
  	return safepick(available_vr_spawnpoints[vr_category])
  
  /obj/machinery/vr_sleeper/proc/build_spawnpoints(rebuild = FALSE) 
  	if (rebuild)
  		available_vr_spawnpoints = null
  	if(!available_vr_spawnpoints || !available_vr_spawnpoints.len) //(re)build spawnpoint lists
  		available_vr_spawnpoints = list()
  		for(var/obj/effect/landmark/vr_spawn/V in GLOB.landmarks_list)
  			available_vr_spawnpoints[V.vr_category] = list()
  			var/turf/T = get_turf(V)
  			if(T)
  				available_vr_spawnpoints[V.vr_category] |= T
  
  /obj/machinery/vr_sleeper/proc/build_virtual_human(mob/living/carbon/human/H, location, transfer = TRUE)
  	if(H)
  		cleanup_vr_human()
  