anchor.diff:  	satchel_blacklist = typecacheof(list(/obj/item/stack/tile/plasteel, /obj/item/weapon/crowbar))
   
   	secret_satchels >> old_secret_satchels
  -	if(isnull(old_secret_satchels))
  -		return
  +	if(isnull(old_secret_satchels) || isemptylist(old_secret_satchels))
  +		old_secret_satchels = list()
  +		return 0
   
   	var/list/chosen_satchel
   	if(old_secret_satchels.len >= 20) //guards against low drop pools assuring that one player cannot reliably find his own gear.
   		chosen_satchel = pick_n_take(old_secret_satchels)
   	secret_satchels << old_secret_satchels
   	if(!chosen_satchel || chosen_satchel.len != 3) //Malformed
  -		return
  +		return 0
   
   	var/path = text2path(chosen_satchel[3]) //If the item no longer exist, this returns null
   	if(!path)
  -		return
  +		return 0
   
   	var/obj/item/weapon/storage/backpack/satchel/flat/F = new()
   	F.x = chosen_satchel[1]
  
positive.code: 				savable_obj += O.type
  		if(savable_obj.len < 1)
  			continue
  		old_secret_satchels.len += 1
  		old_secret_satchels[old_secret_satchels.len] = list(F.x, F.y, "[pick(savable_obj)]")
  	secret_satchels << old_secret_satchels
  
negative.code: 	if(istype(F.loc,/turf/open/floor) && !istype(F.loc,/turf/open/floor/plating/))
  		F.hide(1)
  	new path(F)
  
  /datum/subsystem/persistence/proc/PlaceFreeSatchel()
  	for(var/V in shuffle(get_area_turfs(pick(the_station_areas))))
  		var/turf/T = V
  		if(istype(T,/turf/open/floor) && !istype(T,/turf/open/floor/plating/))
  			new /obj/item/weapon/storage/backpack/satchel/flat/secret(T)
  			break
  
  /datum/subsystem/persistence/proc/CollectSecretSatchels()
  	for(var/A in new_secret_satchels)
  