anchor.diff:  
   	if(!overall_sanity)
   		world.log << "Ruin loader gave up with [budget] left to spend."
  +
   
   /obj/effect/ruin_loader
   	name = "random ruin"
  
positive.code: 			world.log << "Ruin \"[ruin.name]\" placed at ([T.x], [T.y], [T.z])"
  
  			var/obj/effect/ruin_loader/R = new /obj/effect/ruin_loader(T)
  
  			world << "<span class='boldannounce'>Loading ruins...</span>"
  			if(R.Load(ruins,ruin))
  				world << "<span class='boldannounce'>Ruins loaded.</span>"
  			else
  				world << "<span class='boldannounce'>No ruins found.</span>"
  			budget -= ruin.cost
  			if(!ruin.allow_duplicates)
  				ruins -= ruin.name
  
negative.code: 
  /proc/seedRuins(z_level = 1, budget = 0, whitelist = /area/space, list/potentialRuins = space_ruins_templates)
  	var/overall_sanity = 100
  	var/ruins = potentialRuins.Copy()
  
  	world << "<span class='boldannounce'>Loading ruins...</span>"
  
  	while(budget > 0 && overall_sanity > 0)
  		// Pick a ruin
  