anchor.diff:  		stored_items = list()
   
   	for(var/item in stored_items)
  -		new item(src)
  -
  -
  -/obj/machinery/smartfridge/black_box/Destroy()
  -	if(duplicate)
  +		create_item(item)
  +
  +//in it's own proc to avoid issues with items that nolonger exist in the code base.
  +//try catch doesn't always prevent byond runtimes from halting a proc, 
  +/obj/machinery/smartfridge/black_box/proc/create_item(item_type)
  +	new item_type(src)
  +
  +/obj/machinery/smartfridge/black_box/Destroy(force = FALSE)
  +	if(force)
  +		for(var/thing in src)
  +			qdel(thing)
   		return ..()
   	else
   		return QDEL_HINT_LETMELIVE
  
positive.code: /obj/machinery/smartfridge/black_box/default_deconstruction_crowbar()
  	return
  
  #undef MEDAL_PREFIX
negative.code: 	max_n_of_items = 200
  	pixel_y = -4
  	use_power = 0
  	var/memory_saved = FALSE
  	var/list/stored_items = list()
  	var/list/blacklist = typecacheof(list(/obj/item/weapon/spellbook))
  
  /obj/machinery/smartfridge/black_box/accept_check(obj/item/O)
  	if(!istype(O))
  		return FALSE
  	if(is_type_in_typecache(O, blacklist))
  		return FALSE
  	return TRUE
  
  /obj/machinery/smartfridge/black_box/New()
  	var/static/obj/machinery/smartfridge/black_box/current = src
  	if (current && current != src)
  		qdel(src, force=TRUE)
  		return
  	ReadMemory()
  
  /obj/machinery/smartfridge/black_box/process()
  	..()
  	if(!memory_saved && ticker.current_state == GAME_STATE_FINISHED)
  		WriteMemory()
  
  /obj/machinery/smartfridge/black_box/proc/WriteMemory()
  	var/savefile/S = new /savefile("data/npc_saves/Blackbox.sav")
  	stored_items = list()
  
  	for(var/obj/O in (contents-component_parts))
  		stored_items += O.type
  	
  	S["stored_items"]				<< stored_items
  	memory_saved = TRUE
  
  