anchor.diff:  	set name = "Change Map"
   	var/list/maprotatechoices = list()
   	for (var/map in config.maplist)
  -		var/datum/map_config/VM = config.maplist[map]
  -		var/mapname = VM.map_name
  -		if (VM == config.defaultmap)
  +		var/datum/map_config/virtual_map = config.maplist[map]
  +		var/mapname = virtual_map.map_name
  +		if (virtual_map == config.defaultmap)
   			mapname += " (Default)"
   
  -		if (VM.config_min_users > 0 || VM.config_max_users > 0)
  +		if (virtual_map.config_min_users > 0 || virtual_map.config_max_users > 0)
   			mapname += " \["
  -			if (VM.config_min_users > 0)
  -				mapname += "[VM.config_min_users]"
  +			if (virtual_map.config_min_users > 0)
  +				mapname += "[virtual_map.config_min_users]"
   			else
   				mapname += "0"
   			mapname += "-"
  -			if (VM.config_max_users > 0)
  -				mapname += "[VM.config_max_users]"
  +			if (virtual_map.config_max_users > 0)
  +				mapname += "[virtual_map.config_max_users]"
   			else
   				mapname += "inf"
   			mapname += "\]"
   
  -		maprotatechoices[mapname] = VM
  +		maprotatechoices[mapname] = virtual_map
   	var/chosenmap = tgui_input_list(usr, "Choose a map to change to", "Change Map", sort_list(maprotatechoices)|"Custom")
   	if (isnull(chosenmap))
   		return
  
positive.code: 			to_chat(src, span_warning("Filename must end in '.dmm': [map_file]"))
  			return
  
  		if(!fcopy(map_file, "_maps/custom/[map_file]"))
  			return
  
  		// This is to make sure the map works so the server does not start without a map.
  		var/datum/parsed_map/M = new (map_file)
  		if(!M)
  
negative.code: 	if(chosenmap == "Custom")
  		message_admins("[key_name_admin(usr)] is changing the map to a custom map")
  		log_admin("[key_name(usr)] is changing the map to a custom map")
  		var/datum/map_config/virtual_map = new
  
  		var/map_file = input("Pick file:", "Map File") as null|file
  		if(isnull(map_file))
  