anchor.diff:  				checked |= emag_programs
   			var/valid = FALSE //dont tell security about this
   
  -			for (var/prog in checked)//checks if program_to_load is any one of the loadable programs, if it isnt then it rejects it
  -				var/list/check_list = prog
  -				if (check_list["id"] == program_to_load)
  +			//checks if program_to_load is any one of the loadable programs, if it isnt then it rejects it
  +			for(var/list/check_list as anything in checked)
  +				if(check_list["id"] == program_to_load)
   					valid = TRUE
   					break
  -			if (!valid)
  +			if(!valid)
   				return FALSE
   			//load the map_template that program_to_load represents
   			if(program_to_load)
  
positive.code: 		return
  	for(var/obj/item/to_be_nerfed in spawned)
  		to_be_nerfed.damtype = nerf_this ? STAMINA : initial(to_be_nerfed.damtype)
  	for(var/to_be_nerfed in effects)
  		var/obj/effect/holodeck_effect/holo_effect = to_be_nerfed
  		holo_effect.safety(nerf_this)
  
  /obj/machinery/computer/holodeck/emag_act(mob/user)
  
negative.code: 
  ///finalizes objects in the spawned list
  /obj/machinery/computer/holodeck/proc/finish_spawn()
  	for(var/atom/holo_atom as anything in spawned)
  		if(QDELETED(holo_atom))
  			spawned -= holo_atom
  			continue
  
  		RegisterSignal(holo_atom, COMSIG_PARENT_PREQDELETED, .proc/remove_from_holo_lists)
  		holo_atom.flags_1 |= HOLOGRAM_1
  
  		if(isholoeffect(holo_atom))//activates holo effects and transfers them from the spawned list into the effects list
  			var/obj/effect/holodeck_effect/holo_effect = holo_atom
  			effects += holo_effect
  			spawned -= holo_effect
  			var/atom/holo_effect_product = holo_effect.activate(src)//change name
  			if(istype(holo_effect_product) || islist(holo_effect_product))
  				spawned += holo_effect_product // we want mobs or objects spawned via holoeffects to be tracked as objects
  			continue
  
  		if(isobj(holo_atom))
  			var/obj/holo_object = holo_atom
  			holo_object.resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
  
  			if(isstructure(holo_object))
  				holo_object.flags_1 |= NODECONSTRUCT_1
  				continue
  
  			if(ismachinery(holo_object))
  				var/obj/machinery/holo_machine = holo_object
  				holo_machine.flags_1 |= NODECONSTRUCT_1
  				holo_machine.power_change()
  
  				if(istype(holo_machine, /obj/machinery/button))
  					var/obj/machinery/button/holo_button = holo_machine
  					holo_button.setup_device()
  
  	spawning_simulation = FALSE
  
  ///this qdels holoitems that should no longer exist for whatever reason
  /obj/machinery/computer/holodeck/proc/derez(atom/movable/holo_atom, silent = TRUE, forced = FALSE)
  	spawned -= holo_atom
  	if(!holo_atom)
  		return
  	UnregisterSignal(holo_atom, COMSIG_PARENT_PREQDELETED)
  	var/turf/target_turf = get_turf(holo_atom)
  	for(var/atom/movable/atom_contents as anything in holo_atom) //make sure that things inside of a holoitem are moved outside before destroying it
  		atom_contents.forceMove(target_turf)
  
  	if(!silent)
  		visible_message("<span class='notice'>[holo_atom] fades away!</span>")
  
  	qdel(holo_atom)
  
  /obj/machinery/computer/holodeck/proc/remove_from_holo_lists(datum/to_remove, _forced)
  	SIGNAL_HANDLER
  