anchor.diff:  
   			despawn_occupant()
   
  +#define CRYO_DESTROY 0
  +#define CRYO_PRESERVE 1
  +#define CRYO_OBJECTIVE 2
  +
  +/obj/machinery/cryopod/proc/should_preserve_item(obj/item/I)
  +	for(var/datum/objective_item/steal/T in control_computer.theft_cache)
  +		if(istype(I, T.targetitem) && T.check_special_completion(I))
  +			return CRYO_OBJECTIVE
  +	for(var/T in preserve_items)
  +		if(istype(I, T) && !(I.type in do_not_preserve_items))
  +			return CRYO_PRESERVE
  +	return CRYO_DESTROY
  +
   // This function can not be undone; do not call this unless you are sure
   /obj/machinery/cryopod/proc/despawn_occupant()
   	if(!control_computer)
   		find_control_computer()
   
   	var/mob/living/mob_occupant = occupant
  +
  +	//Handle Borg stuff first
  +	if(iscyborg(mob_occupant))
  +		var/mob/living/silicon/robot/R = mob_occupant
  +		if(!istype(R)) return ..()
  +
  +		R.contents -= R.mmi
  +		qdel(R.mmi)
  +		for(var/obj/item/I in R.module) // the tools the borg has; metal, glass, guns etc
  +			for(var/obj/item/O in I) // the things inside the tools, if anything; mainly for janiborg trash bags
  +				if(should_preserve_item(O) != CRYO_DESTROY) // Preserve important things inside the item
  +					continue
  +				O.forceMove(src)
  +			R.module.remove_module(I, TRUE)	//delete the module itself so it doesn't transfer over.
  +
  +	//Drop all items into the pod.
  +	for(var/obj/item/I in mob_occupant)
  +		mob_occupant.doUnEquip(I)
  +		I.forceMove(src)
  +
  +		if(I.contents.len) //Make sure we catch anything not handled by qdel() on the items.
  +			if(should_preserve_item(I) != CRYO_DESTROY) // Don't remove the contents of things that need preservation
  +				continue
  +			for(var/obj/item/O in I.contents)
  +				if(istype(O, /obj/item/tank)) //Stop eating pockets, you fuck!
  +					continue
  +				O.forceMove(src)
  +
  +	//Delete all items not on the preservation list.
  +	var/list/items = contents
  +	items -= occupant // Don't delete the occupant
  +
  +	for(var/obj/item/I in items)
  +		if(istype(I, /obj/item/pda))
  +			var/obj/item/pda/P = I
  +			QDEL_NULL(P.id)
  +			qdel(P)
  +			continue
  +
  +		var/preserve = should_preserve_item(I)
  +		if(preserve == CRYO_DESTROY)
  +			qdel(I)
  +		else if(control_computer && control_computer.allow_items)
  +			control_computer.frozen_items += I
  +			if(preserve == CRYO_OBJECTIVE)
  +				control_computer.objective_items += I
  +			I.loc = null
  +		else
  +			I.forceMove(loc)
   
   	//Update any existing objectives involving this mob.
   	for(var/datum/objective/O in GLOB.objectives)
  
positive.code: 	req_one_access = list(ACCESS_HEADS, ACCESS_ARMORY) //Heads of staff or the warden can go here to claim recover items from their department that people went were cryodormed with.
  	var/mode = null
  
  	//Used for logging people entering cryosleep and important items they are carrying.
  	var/list/frozen_crew = list()
  	var/list/frozen_items = list()
  
  	var/storage_type = "crewmembers"
  	var/storage_name = "Cryogenic Oversight Control"
  	var/allow_items = TRUE
  
  /obj/machinery/computer/cryopod/attack_ai()
  	attack_hand()
  
  /obj/machinery/computer/cryopod/attack_hand(mob/user = usr)
  	if(!is_operational())
  		return
  
  	user.set_machine(src)
  	add_fingerprint(user)
  
  	var/dat
  
  	dat += "<hr/><br/><b>[storage_name]</b><br/>"
  	dat += "<i>Welcome, [user.real_name].</i><br/><br/><hr/>"
  	dat += "<a href='?src=[REF(src)];log=1'>View storage log</a>.<br>"
  	if(allow_items)
  		dat += "<a href='?src=[REF(src)];view=1'>View objects</a>.<br>"
  		dat += "<a href='?src=[REF(src)];item=1'>Recover object</a>.<br>"
  		dat += "<a href='?src=[REF(src)];allitems=1'>Recover all objects</a>.<br>"
  
  	user << browse(dat, "window=cryopod_console")
  	onclose(user, "cryopod_console")
  
  /obj/machinery/computer/cryopod/Topic(href, href_list)
  	if(..())
  
negative.code: 		announcer.announce("CRYOSTORAGE", mob_occupant.real_name, announce_rank, list())
  		visible_message("<span class='notice'>\The [src] hums and hisses as it moves [mob_occupant.real_name] into storage.</span>")
  
  	// Ghost and delete the mob.
  	if(!mob_occupant.get_ghost(1))
  		mob_occupant.ghostize(0) // Players who cryo out may not re-enter the round
  