anchor.diff:  
   	verify_keybindings_valid()		// one of these days this will runtime and you'll be glad that i put it in a different proc so no one gets their saves wiped
   
  -	return 1
  +	if(needs_update >= 0) //save the updated version
  +		var/old_default_slot = default_slot
  +		var/old_max_save_slots = max_save_slots
  +
  +		for (var/slot in S.dir) //but first, update all current character slots.
  +			if (copytext(slot, 1, 10) != "character")
  +				continue
  +			var/slotnum = text2num(copytext(slot, 10))
  +			if (!slotnum)
  +				continue
  +			max_save_slots = max(max_save_slots, slotnum) //so we can still update byond member slots after they lose memeber status
  +			default_slot = slotnum
  +			if (load_character()) // this updtates char slots
  +				save_character()
  +		default_slot = old_default_slot
  +		max_save_slots = old_max_save_slots
  +		save_preferences()
  +
  +	return TRUE
   
   /datum/preferences/proc/verify_keybindings_valid()
   	// Sanitize the actual keybinds to make sure they exist.
  
positive.code: 			pref_species = new newtype
  
  
  		scars_index = rand(1,5)
  
  	//Character
  	S["real_name"]				>> real_name
  
negative.code: 	S.cd = "/character[slot]"
  	var/needs_update = savefile_needs_update(S)
  	if(needs_update == -2)		//fatal, can't load any data
  		return FALSE
  
  	. = TRUE
  
  