anchor.diff:  		Minimum: <A href='?src=[REF(src)];[HrefToken()];f_dynamic_roundstart_midround_min=1'>-> [GLOB.dynamic_midround_delay_min / 60 / 10] <-</A> Minutes<br>
   		Maximum: <A href='?src=[REF(src)];[HrefToken()];f_dynamic_roundstart_midround_max=1'>-> [GLOB.dynamic_midround_delay_max / 60 / 10] <-</A> Minutes<br>
   		"}
  -		
  -	usr << browse(dat, "window=dyn_mode_options;size=900x650")
  -
  -/datum/admins/proc/set_admin_notice()
  -	set category = "Special Verbs"
  -	set name = "Set Admin Notice"
  -	set desc ="Set an announcement that appears to everyone who joins the server. Only lasts this round"
  -	if(!check_rights(0))
  -		return
  -
  -	var/new_admin_notice = input(src,"Set a public notice for this round. Everyone who joins the server will see it.\n(Leaving it blank will delete the current notice):","Set Notice",GLOB.admin_notice) as message|null
  -	if(new_admin_notice == null)
  -		return
  -	if(new_admin_notice == GLOB.admin_notice)
  -		return
  -	if(new_admin_notice == "")
  -		message_admins("[key_name(usr)] removed the admin notice.")
  -		log_admin("[key_name(usr)] removed the admin notice:\n[GLOB.admin_notice]")
  -	else
  -		message_admins("[key_name(usr)] set the admin notice.")
  -		log_admin("[key_name(usr)] set the admin notice:\n[new_admin_notice]")
  -		to_chat(world, "<span class ='adminnotice'><b>Admin Notice:</b>\n \t [new_admin_notice]</span>")
  -	SSblackbox.record_feedback("tally", "admin_verb", 1, "Set Admin Notice") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  -	GLOB.admin_notice = new_admin_notice
  -	return
  -
  -/datum/admins/proc/toggleooc()
  -	set category = "Server"
  -	set desc="Toggle dis bitch"
  -	set name="Toggle OOC"
  -	toggle_ooc()
  -	log_admin("[key_name(usr)] toggled OOC.")
  -	message_admins("[key_name_admin(usr)] toggled OOC.")
  -	SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle OOC", "[GLOB.ooc_allowed ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  -
  -/datum/admins/proc/toggleoocdead()
  -	set category = "Server"
  -	set desc="Toggle dis bitch"
  -	set name="Toggle Dead OOC"
  -	toggle_dooc()
  -
  -	log_admin("[key_name(usr)] toggled OOC.")
  -	message_admins("[key_name_admin(usr)] toggled Dead OOC.")
  -	SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Dead OOC", "[GLOB.dooc_allowed ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  -
  -/datum/admins/proc/startnow()
  -	set category = "Server"
  -	set desc="Start the round RIGHT NOW"
  -	set name="Start Now"
  -	if(SSticker.current_state == GAME_STATE_PREGAME || SSticker.current_state == GAME_STATE_STARTUP)
  -		SSticker.start_immediately = TRUE
  -		log_admin("[usr.key] has started the game.")
  -		var/msg = ""
  -		if(SSticker.current_state == GAME_STATE_STARTUP)
  -			msg = " (The server is still setting up, but the round will be \
  -				started as soon as possible.)"
  -		message_admins("<font color='blue'>\
  -			[usr.key] has started the game.[msg]</font>")
  -		SSblackbox.record_feedback("tally", "admin_verb", 1, "Start Now") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  -		return 1
  -	else
  -		to_chat(usr, "<font color='red'>Error: Start Now: Game has already started.</font>", confidential=TRUE)
  -
  -	return 0
  -
  -/datum/admins/proc/toggleenter()
  -	set category = "Server"
  -	set desc="People can't enter"
  -	set name="Toggle Entering"
  -	GLOB.enter_allowed = !( GLOB.enter_allowed )
  -	if (!( GLOB.enter_allowed ))
  -		to_chat(world, "<B>New players may no longer enter the game.</B>")
  -	else
  -		to_chat(world, "<B>New players may now enter the game.</B>")
  -	log_admin("[key_name(usr)] toggled new player game entering.")
  -	message_admins("<span class='adminnotice'>[key_name_admin(usr)] toggled new player game entering.</span>")
  -	world.update_status()
  -	SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Entering", "[GLOB.enter_allowed ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  -
  -/datum/admins/proc/toggleAI()
  -	set category = "Server"
  -	set desc="People can't be AI"
  -	set name="Toggle AI"
  -	var/alai = CONFIG_GET(flag/allow_ai)
  -	CONFIG_SET(flag/allow_ai, !alai)
  -	if (alai)
  -		to_chat(world, "<B>The AI job is no longer chooseable.</B>")
  -	else
  -		to_chat(world, "<B>The AI job is chooseable now.</B>")
  -	log_admin("[key_name(usr)] toggled AI allowed.")
  -	world.update_status()
  -	SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle AI", "[!alai ? "Disabled" : "Enabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  -
  -/datum/admins/proc/toggleaban()
  -	set category = "Server"
  -	set desc="Respawn basically"
  -	set name="Toggle Respawn"
  -	var/new_nores = !CONFIG_GET(flag/norespawn)
  -	CONFIG_SET(flag/norespawn, new_nores)
  -	if (!new_nores)
  -		to_chat(world, "<B>You may now respawn.</B>")
  -	else
  -		to_chat(world, "<B>You may no longer respawn :(</B>")
  -	message_admins("<span class='adminnotice'>[key_name_admin(usr)] toggled respawn to [!new_nores ? "On" : "Off"].</span>")
  -	log_admin("[key_name(usr)] toggled respawn to [!new_nores ? "On" : "Off"].")
  -	world.update_status()
  -	SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Respawn", "[!new_nores ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  -
  -/datum/admins/proc/delay()
  -	set category = "Server"
  -	set desc="Delay the game start"
  -	set name="Delay pre-game"
  -
  -	var/newtime = input("Set a new time in seconds. Set -1 for indefinite delay.","Set Delay",round(SSticker.GetTimeLeft()/10)) as num|null
  -	if(SSticker.current_state > GAME_STATE_PREGAME)
  -		return alert("Too late... The game has already started!")
  -	if(newtime)
  -		newtime = newtime*10
  -		SSticker.SetTimeLeft(newtime)
  -		if(newtime < 0)
  -			to_chat(world, "<b>The game start has been delayed.</b>")
  -			log_admin("[key_name(usr)] delayed the round start.")
  -		else
  -			to_chat(world, "<b>The game will start in [DisplayTimeText(newtime)].</b>")
  -			SEND_SOUND(world, sound('sound/ai/attention.ogg'))
  -			log_admin("[key_name(usr)] set the pre-game delay to [DisplayTimeText(newtime)].")
  -		SSblackbox.record_feedback("tally", "admin_verb", 1, "Delay Game Start") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  -
  -/datum/admins/proc/unprison(mob/M in GLOB.mob_list)
  -	set category = "Admin"
  -	set name = "Unprison"
  -	if (is_centcom_level(M.z))
  -		SSjob.SendToLateJoin(M)
  -		message_admins("[key_name_admin(usr)] has unprisoned [key_name_admin(M)]")
  -		log_admin("[key_name(usr)] has unprisoned [key_name(M)]")
  -	else
  -		alert("[M.name] is not prisoned.")
  -	SSblackbox.record_feedback("tally", "admin_verb", 1, "Unprison") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  -
  -////////////////////////////////////////////////////////////////////////////////////////////////ADMIN HELPER PROCS
  -
  -/datum/admins/proc/spawn_atom(object as text)
  -	set category = "Debug"
  -	set desc = "(atom path) Spawn an atom"
  -	set name = "Spawn"
  -
  -	if(!check_rights(R_SPAWN))
  -		return
  -
  -	var/chosen = pick_closest_path(object)
  -	if(!chosen)
  -		return
  -	var/turf/T = get_turf(usr)
  -
  -	if(ispath(chosen, /turf))
  -		T.ChangeTurf(chosen)
  -	else
  -		var/atom/A = new chosen(T)
  -		A.flags_1 |= ADMIN_SPAWNED_1
  -
  -	log_admin("[key_name(usr)] spawned [chosen] at [AREACOORD(usr)]")
  -	SSblackbox.record_feedback("tally", "admin_verb", 1, "Spawn Atom") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  -
  -/datum/admins/proc/podspawn_atom(object as text)
  -	set category = "Debug"
  -	set desc = "(atom path) Spawn an atom via supply drop"
  -	set name = "Podspawn"
  -
  -	if(!check_rights(R_SPAWN))
  -		return
  -
  -	var/chosen = pick_closest_path(object)
  -	if(!chosen)
  -		return
  -	var/turf/T = get_turf(usr)
  -
  -	if(ispath(chosen, /turf))
  -		T.ChangeTurf(chosen)
  -	else
  -		var/obj/structure/closet/supplypod/centcompod/pod = new()
  -		var/atom/A = new chosen(pod)
  -		A.flags_1 |= ADMIN_SPAWNED_1
  -		new /obj/effect/DPtarget(T, pod)
  -
  -	log_admin("[key_name(usr)] pod-spawned [chosen] at [AREACOORD(usr)]")
  -	SSblackbox.record_feedback("tally", "admin_verb", 1, "Podspawn Atom") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  -
  -/datum/admins/proc/spawn_cargo(object as text)
  -	set category = "Debug"
  -	set desc = "(atom path) Spawn a cargo crate"
  -	set name = "Spawn Cargo"
  -
  -	if(!check_rights(R_SPAWN))
  -		return
  -
  -	var/chosen = pick_closest_path(object, make_types_fancy(subtypesof(/datum/supply_pack)))
  -	if(!chosen)
  -		return
  -	var/datum/supply_pack/S = new chosen
  -	S.admin_spawned = TRUE
  -	S.generate(get_turf(usr))
  -
  -	log_admin("[key_name(usr)] spawned cargo pack [chosen] at [AREACOORD(usr)]")
  -	SSblackbox.record_feedback("tally", "admin_verb", 1, "Spawn Cargo") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  -
  -
  -/datum/admins/proc/show_traitor_panel(mob/M in GLOB.mob_list)
  -	set category = "Admin"
  -	set desc = "Edit mobs's memory and role"
  -	set name = "Show Traitor Panel"
  -
  -	if(!istype(M))
  -		to_chat(usr, "This can only be used on instances of type /mob", confidential=TRUE)
  -		return
  -	if(!M.mind)
  -		to_chat(usr, "This mob has no mind!", confidential=TRUE)
  -		return
  -
  -	M.mind.traitor_panel()
  -	SSblackbox.record_feedback("tally", "admin_verb", 1, "Traitor Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  -
  -
  -/datum/admins/proc/toggletintedweldhelmets()
  -	set category = "Debug"
  -	set desc="Reduces view range when wearing welding helmets"
  -	set name="Toggle tinted welding helmes"
  -	GLOB.tinted_weldhelh = !( GLOB.tinted_weldhelh )
  -	if (GLOB.tinted_weldhelh)
  -		to_chat(world, "<B>The tinted_weldhelh has been enabled!</B>")
  -	else
  -		to_chat(world, "<B>The tinted_weldhelh has been disabled!</B>")
  -	log_admin("[key_name(usr)] toggled tinted_weldhelh.")
  -	message_admins("[key_name_admin(usr)] toggled tinted_weldhelh.")
  -	SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Tinted Welding Helmets", "[GLOB.tinted_weldhelh ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  -
  -/datum/admins/proc/toggleguests()
  -	set category = "Server"
  -	set desc="Guests can't enter"
  -	set name="Toggle guests"
  -	var/new_guest_ban = !CONFIG_GET(flag/guest_ban)
  -	CONFIG_SET(flag/guest_ban, new_guest_ban)
  -	if (new_guest_ban)
  -		to_chat(world, "<B>Guests may no longer enter the game.</B>")
  -	else
  -		to_chat(world, "<B>Guests may now enter the game.</B>")
  -	log_admin("[key_name(usr)] toggled guests game entering [!new_guest_ban ? "" : "dis"]allowed.")
  -	message_admins("<span class='adminnotice'>[key_name_admin(usr)] toggled guests game entering [!new_guest_ban ? "" : "dis"]allowed.</span>")
  -	SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Guests", "[!new_guest_ban ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  -
  -/datum/admins/proc/output_ai_laws()
  -	var/ai_number = 0
  -	for(var/i in GLOB.silicon_mobs)
  -		var/mob/living/silicon/S = i
  -		ai_number++
  -		if(isAI(S))
  -			to_chat(usr, "<b>AI [key_name(S, usr)]'s laws:</b>", confidential=TRUE)
  -		else if(iscyborg(S))
  -			var/mob/living/silicon/robot/R = S
  -			to_chat(usr, "<b>CYBORG [key_name(S, usr)] [R.connected_ai?"(Slaved to: [key_name(R.connected_ai)])":"(Independent)"]: laws:</b>", confidential=TRUE)
  -		else if (ispAI(S))
  -			to_chat(usr, "<b>pAI [key_name(S, usr)]'s laws:</b>", confidential=TRUE)
  -		else
  -			to_chat(usr, "<b>SOMETHING SILICON [key_name(S, usr)]'s laws:</b>", confidential=TRUE)
  -
  -		if (S.laws == null)
  -			to_chat(usr, "[key_name(S, usr)]'s laws are null?? Contact a coder.", confidential=TRUE)
  -		else
  -			S.laws.show_laws(usr)
  -	if(!ai_number)
  -		to_chat(usr, "<b>No AIs located</b>" , confidential=TRUE)
  -
  -/datum/admins/proc/output_all_devil_info()
  -	var/devil_number = 0
  -	for(var/datum/mind/D in SSticker.mode.devils)
  -		devil_number++
  -		var/datum/antagonist/devil/devil = D.has_antag_datum(/datum/antagonist/devil)
  -		to_chat(usr, "Devil #[devil_number]:<br><br>" + devil.printdevilinfo(), confidential=TRUE)
  -	if(!devil_number)
  -		to_chat(usr, "<b>No Devils located</b>" , confidential=TRUE)
  -
  -/datum/admins/proc/output_devil_info(mob/living/M)
  -	if(is_devil(M))
  -		var/datum/antagonist/devil/devil = M.mind.has_antag_datum(/datum/antagonist/devil)
  -		to_chat(usr, devil.printdevilinfo(), confidential=TRUE)
  -	else
  -		to_chat(usr, "<b>[M] is not a devil.", confidential=TRUE)
  -
  -/datum/admins/proc/manage_free_slots()
  -	if(!check_rights())
  -		return
  -	var/datum/browser/browser = new(usr, "jobmanagement", "Manage Free Slots", 520)
  -	var/list/dat = list()
  -	var/count = 0
  -
  -	if(!SSjob.initialized)
  -		alert(usr, "You cannot manage jobs before the job subsystem is initialized!")
  -		return
  -
  -	dat += "<table>"
  -
  -	for(var/j in SSjob.occupations)
  -		var/datum/job/job = j
  -		count++
  -		var/J_title = html_encode(job.title)
  -		var/J_opPos = html_encode(job.total_positions - (job.total_positions - job.current_positions))
  -		var/J_totPos = html_encode(job.total_positions)
  -		dat += "<tr><td>[J_title]:</td> <td>[J_opPos]/[job.total_positions < 0 ? " (unlimited)" : J_totPos]"
  -
  -		dat += "</td>"
  -		dat += "<td>"
  -		if(job.total_positions >= 0)
  -			dat += "<A href='?src=[REF(src)];[HrefToken()];customjobslot=[job.title]'>Custom</A> | "
  -			dat += "<A href='?src=[REF(src)];[HrefToken()];addjobslot=[job.title]'>Add 1</A> | "
  -			if(job.total_positions > job.current_positions)
  -				dat += "<A href='?src=[REF(src)];[HrefToken()];removejobslot=[job.title]'>Remove</A> | "
  -			else
  -				dat += "Remove | "
  -			dat += "<A href='?src=[REF(src)];[HrefToken()];unlimitjobslot=[job.title]'>Unlimit</A></td>"
  -		else
  -			dat += "<A href='?src=[REF(src)];[HrefToken()];limitjobslot=[job.title]'>Limit</A></td>"
  -
  -	browser.height = min(100 + count * 20, 650)
  -	browser.set_content(dat.Join())
  -	browser.open()
  -
  -/datum/admins/proc/dynamic_mode_options(mob/user)
  -	var/dat = {"
  -		<center><B><h2>Dynamic Mode Options</h2></B></center><hr>
  -		<br/> 
  -		<h3>Common options</h3>
  -		<i>All these options can be changed midround.</i> <br/>
  -		<br/>
  -		<b>Force extended:</b> - Option is <a href='?src=[REF(src)];[HrefToken()];f_dynamic_force_extended=1'> <b>[GLOB.dynamic_forced_extended ? "ON" : "OFF"]</a></b>.
  -		<br/>This will force the round to be extended. No rulesets will be drafted. <br/>
  -		<br/>
  -		<b>No stacking:</b> - Option is <a href='?src=[REF(src)];[HrefToken()];f_dynamic_no_stacking=1'> <b>[GLOB.dynamic_no_stacking ? "ON" : "OFF"]</b></a>.
  -		<br/>Unless the threat goes above [GLOB.dynamic_stacking_limit], only one "round-ender" ruleset will be drafted. <br/>
  -		<br/>
  -		<b>Classic secret mode:</b> - Option is <a href='?src=[REF(src)];[HrefToken()];f_dynamic_classic_secret=1'> <b>[GLOB.dynamic_classic_secret ? "ON" : "OFF"]</b></a>.
  -		<br/>Only one roundstart ruleset will be drafted. Only traitors and minor roles will latespawn. <br/>
  -		<br/>
  -		<br/>
  -		<b>Forced threat level:</b> Current value : <a href='?src=[REF(src)];[HrefToken()];f_dynamic_forced_threat=1'><b>[GLOB.dynamic_forced_threat_level]</b></a>.
  -		<br/>The value threat is set to if it is higher than -1.<br/>
  -		<br/>
  -		<b>High population limit:</b> Current value : <a href='?src=[REF(src)];[HrefToken()];f_dynamic_high_pop_limit=1'><b>[GLOB.dynamic_high_pop_limit]</b></a>.
  -		<br/>The threshold at which "high population override" will be in effect. <br/>
  -		<br/>
  -		<b>Stacking threeshold:</b> Current value : <a href='?src=[REF(src)];[HrefToken()];f_dynamic_stacking_limit=1'><b>[GLOB.dynamic_stacking_limit]</b></a>.
  -		<br/>The threshold at which "round-ender" rulesets will stack. A value higher than 100 ensure this never happens. <br/>
  -		<h3>Advanced parameters</h3>
  -		Curve centre: <A href='?src=[REF(src)];[HrefToken()];f_dynamic_roundstart_centre=1'>-> [GLOB.dynamic_curve_centre] <-</A><br>
  -		Curve width: <A href='?src=[REF(src)];[HrefToken()];f_dynamic_roundstart_width=1'>-> [GLOB.dynamic_curve_width] <-</A><br>
  -		Latejoin injection delay:<br>
  -		Minimum: <A href='?src=[REF(src)];[HrefToken()];f_dynamic_roundstart_latejoin_min=1'>-> [GLOB.dynamic_latejoin_delay_min / 60 / 10] <-</A> Minutes<br>
  -		Maximum: <A href='?src=[REF(src)];[HrefToken()];f_dynamic_roundstart_latejoin_max=1'>-> [GLOB.dynamic_latejoin_delay_max / 60 / 10] <-</A> Minutes<br>
  -		Midround injection delay:<br>
  -		Minimum: <A href='?src=[REF(src)];[HrefToken()];f_dynamic_roundstart_midround_min=1'>-> [GLOB.dynamic_midround_delay_min / 60 / 10] <-</A> Minutes<br>
  -		Maximum: <A href='?src=[REF(src)];[HrefToken()];f_dynamic_roundstart_midround_max=1'>-> [GLOB.dynamic_midround_delay_max / 60 / 10] <-</A> Minutes<br>
  -		"}
   
   	user << browse(dat, "window=dyn_mode_options;size=900x650")
   
  
positive.code: 		"}
  	if(GLOB.master_mode == "secret")
  		dat += "<A href='?src=[REF(src)];[HrefToken()];f_secret=1'>(Force Secret Mode)</A><br>"
  		
  	if(GLOB.master_mode == "dynamic")
  		if(SSticker.current_state <= GAME_STATE_PREGAME)
  			dat += "<A href='?src=[REF(src)];[HrefToken()];f_dynamic_roundstart=1'>(Force Roundstart Rulesets)</A><br>"
  
negative.code: 		log_admin("Announce: [key_name(usr)] : [message]")
  	SSblackbox.record_feedback("tally", "admin_verb", 1, "Announce") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  
  /datum/admins/proc/set_admin_notice()
  	set category = "Special Verbs"
  	set name = "Set Admin Notice"
  	set desc ="Set an announcement that appears to everyone who joins the server. Only lasts this round"
  	if(!check_rights(0))
  		return
  
  	var/new_admin_notice = input(src,"Set a public notice for this round. Everyone who joins the server will see it.\n(Leaving it blank will delete the current notice):","Set Notice",GLOB.admin_notice) as message|null
  	if(new_admin_notice == null)
  		return
  	if(new_admin_notice == GLOB.admin_notice)
  		return
  	if(new_admin_notice == "")
  		message_admins("[key_name(usr)] removed the admin notice.")
  		log_admin("[key_name(usr)] removed the admin notice:\n[GLOB.admin_notice]")
  	else
  		message_admins("[key_name(usr)] set the admin notice.")
  		log_admin("[key_name(usr)] set the admin notice:\n[new_admin_notice]")
  		to_chat(world, "<span class ='adminnotice'><b>Admin Notice:</b>\n \t [new_admin_notice]</span>")
  	SSblackbox.record_feedback("tally", "admin_verb", 1, "Set Admin Notice") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  	GLOB.admin_notice = new_admin_notice
  	return
  
  /datum/admins/proc/toggleooc()
  	set category = "Server"
  	set desc="Toggle dis bitch"
  	set name="Toggle OOC"
  	toggle_ooc()
  	log_admin("[key_name(usr)] toggled OOC.")
  	message_admins("[key_name_admin(usr)] toggled OOC.")
  	SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle OOC", "[GLOB.ooc_allowed ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  
  /datum/admins/proc/toggleoocdead()
  	set category = "Server"
  	set desc="Toggle dis bitch"
  	set name="Toggle Dead OOC"
  	toggle_dooc()
  
  	log_admin("[key_name(usr)] toggled OOC.")
  	message_admins("[key_name_admin(usr)] toggled Dead OOC.")
  	SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Dead OOC", "[GLOB.dooc_allowed ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  
  /datum/admins/proc/startnow()
  	set category = "Server"
  	set desc="Start the round RIGHT NOW"
  	set name="Start Now"
  	if(SSticker.current_state == GAME_STATE_PREGAME || SSticker.current_state == GAME_STATE_STARTUP)
  		SSticker.start_immediately = TRUE
  		log_admin("[usr.key] has started the game.")
  		var/msg = ""
  		if(SSticker.current_state == GAME_STATE_STARTUP)
  			msg = " (The server is still setting up, but the round will be \
  				started as soon as possible.)"
  		message_admins("<font color='blue'>\
  			[usr.key] has started the game.[msg]</font>")
  		SSblackbox.record_feedback("tally", "admin_verb", 1, "Start Now") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  		return 1
  	else
  		to_chat(usr, "<font color='red'>Error: Start Now: Game has already started.</font>", confidential=TRUE)
  
  	return 0
  
  /datum/admins/proc/toggleenter()
  	set category = "Server"
  	set desc="People can't enter"
  	set name="Toggle Entering"
  	GLOB.enter_allowed = !( GLOB.enter_allowed )
  	if (!( GLOB.enter_allowed ))
  		to_chat(world, "<B>New players may no longer enter the game.</B>")
  	else
  		to_chat(world, "<B>New players may now enter the game.</B>")
  	log_admin("[key_name(usr)] toggled new player game entering.")
  	message_admins("<span class='adminnotice'>[key_name_admin(usr)] toggled new player game entering.</span>")
  	world.update_status()
  	SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Entering", "[GLOB.enter_allowed ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  
  /datum/admins/proc/toggleAI()
  	set category = "Server"
  	set desc="People can't be AI"
  	set name="Toggle AI"
  	var/alai = CONFIG_GET(flag/allow_ai)
  	CONFIG_SET(flag/allow_ai, !alai)
  	if (alai)
  		to_chat(world, "<B>The AI job is no longer chooseable.</B>")
  	else
  		to_chat(world, "<B>The AI job is chooseable now.</B>")
  	log_admin("[key_name(usr)] toggled AI allowed.")
  	world.update_status()
  	SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle AI", "[!alai ? "Disabled" : "Enabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  
  /datum/admins/proc/toggleaban()
  	set category = "Server"
  	set desc="Respawn basically"
  	set name="Toggle Respawn"
  	var/new_nores = !CONFIG_GET(flag/norespawn)
  	CONFIG_SET(flag/norespawn, new_nores)
  	if (!new_nores)
  		to_chat(world, "<B>You may now respawn.</B>")
  	else
  		to_chat(world, "<B>You may no longer respawn :(</B>")
  	message_admins("<span class='adminnotice'>[key_name_admin(usr)] toggled respawn to [!new_nores ? "On" : "Off"].</span>")
  	log_admin("[key_name(usr)] toggled respawn to [!new_nores ? "On" : "Off"].")
  	world.update_status()
  	SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Respawn", "[!new_nores ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  
  /datum/admins/proc/delay()
  	set category = "Server"
  	set desc="Delay the game start"
  	set name="Delay pre-game"
  
  	var/newtime = input("Set a new time in seconds. Set -1 for indefinite delay.","Set Delay",round(SSticker.GetTimeLeft()/10)) as num|null
  	if(SSticker.current_state > GAME_STATE_PREGAME)
  		return alert("Too late... The game has already started!")
  	if(newtime)
  		newtime = newtime*10
  		SSticker.SetTimeLeft(newtime)
  		if(newtime < 0)
  			to_chat(world, "<b>The game start has been delayed.</b>")
  			log_admin("[key_name(usr)] delayed the round start.")
  		else
  			to_chat(world, "<b>The game will start in [DisplayTimeText(newtime)].</b>")
  			SEND_SOUND(world, sound('sound/ai/attention.ogg'))
  			log_admin("[key_name(usr)] set the pre-game delay to [DisplayTimeText(newtime)].")
  		SSblackbox.record_feedback("tally", "admin_verb", 1, "Delay Game Start") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  
  /datum/admins/proc/unprison(mob/M in GLOB.mob_list)
  	set category = "Admin"
  	set name = "Unprison"
  	if (is_centcom_level(M.z))
  		SSjob.SendToLateJoin(M)
  		message_admins("[key_name_admin(usr)] has unprisoned [key_name_admin(M)]")
  		log_admin("[key_name(usr)] has unprisoned [key_name(M)]")
  	else
  		alert("[M.name] is not prisoned.")
  	SSblackbox.record_feedback("tally", "admin_verb", 1, "Unprison") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  
  ////////////////////////////////////////////////////////////////////////////////////////////////ADMIN HELPER PROCS
  
  /datum/admins/proc/spawn_atom(object as text)
  	set category = "Debug"
  	set desc = "(atom path) Spawn an atom"
  	set name = "Spawn"
  
  	if(!check_rights(R_SPAWN))
  		return
  
  	var/chosen = pick_closest_path(object)
  	if(!chosen)
  		return
  	var/turf/T = get_turf(usr)
  
  	if(ispath(chosen, /turf))
  		T.ChangeTurf(chosen)
  	else
  		var/atom/A = new chosen(T)
  		A.flags_1 |= ADMIN_SPAWNED_1
  
  	log_admin("[key_name(usr)] spawned [chosen] at [AREACOORD(usr)]")
  	SSblackbox.record_feedback("tally", "admin_verb", 1, "Spawn Atom") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  
  /datum/admins/proc/podspawn_atom(object as text)
  	set category = "Debug"
  	set desc = "(atom path) Spawn an atom via supply drop"
  	set name = "Podspawn"
  
  	if(!check_rights(R_SPAWN))
  		return
  
  	var/chosen = pick_closest_path(object)
  	if(!chosen)
  		return
  	var/turf/T = get_turf(usr)
  
  	if(ispath(chosen, /turf))
  		T.ChangeTurf(chosen)
  	else
  		var/obj/structure/closet/supplypod/centcompod/pod = new()
  		var/atom/A = new chosen(pod)
  		A.flags_1 |= ADMIN_SPAWNED_1
  		new /obj/effect/DPtarget(T, pod)
  
  	log_admin("[key_name(usr)] pod-spawned [chosen] at [AREACOORD(usr)]")
  	SSblackbox.record_feedback("tally", "admin_verb", 1, "Podspawn Atom") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  
  /datum/admins/proc/spawn_cargo(object as text)
  	set category = "Debug"
  	set desc = "(atom path) Spawn a cargo crate"
  	set name = "Spawn Cargo"
  
  	if(!check_rights(R_SPAWN))
  		return
  
  	var/chosen = pick_closest_path(object, make_types_fancy(subtypesof(/datum/supply_pack)))
  	if(!chosen)
  		return
  	var/datum/supply_pack/S = new chosen
  	S.admin_spawned = TRUE
  	S.generate(get_turf(usr))
  
  	log_admin("[key_name(usr)] spawned cargo pack [chosen] at [AREACOORD(usr)]")
  	SSblackbox.record_feedback("tally", "admin_verb", 1, "Spawn Cargo") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  
  
  /datum/admins/proc/show_traitor_panel(mob/M in GLOB.mob_list)
  	set category = "Admin"
  	set desc = "Edit mobs's memory and role"
  	set name = "Show Traitor Panel"
  
  	if(!istype(M))
  		to_chat(usr, "This can only be used on instances of type /mob", confidential=TRUE)
  		return
  	if(!M.mind)
  		to_chat(usr, "This mob has no mind!", confidential=TRUE)
  		return
  
  	M.mind.traitor_panel()
  	SSblackbox.record_feedback("tally", "admin_verb", 1, "Traitor Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  
  
  /datum/admins/proc/toggletintedweldhelmets()
  	set category = "Debug"
  	set desc="Reduces view range when wearing welding helmets"
  	set name="Toggle tinted welding helmes"
  	GLOB.tinted_weldhelh = !( GLOB.tinted_weldhelh )
  	if (GLOB.tinted_weldhelh)
  		to_chat(world, "<B>The tinted_weldhelh has been enabled!</B>")
  	else
  		to_chat(world, "<B>The tinted_weldhelh has been disabled!</B>")
  	log_admin("[key_name(usr)] toggled tinted_weldhelh.")
  	message_admins("[key_name_admin(usr)] toggled tinted_weldhelh.")
  	SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Tinted Welding Helmets", "[GLOB.tinted_weldhelh ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  
  /datum/admins/proc/toggleguests()
  	set category = "Server"
  	set desc="Guests can't enter"
  	set name="Toggle guests"
  	var/new_guest_ban = !CONFIG_GET(flag/guest_ban)
  	CONFIG_SET(flag/guest_ban, new_guest_ban)
  	if (new_guest_ban)
  		to_chat(world, "<B>Guests may no longer enter the game.</B>")
  	else
  		to_chat(world, "<B>Guests may now enter the game.</B>")
  	log_admin("[key_name(usr)] toggled guests game entering [!new_guest_ban ? "" : "dis"]allowed.")
  	message_admins("<span class='adminnotice'>[key_name_admin(usr)] toggled guests game entering [!new_guest_ban ? "" : "dis"]allowed.</span>")
  	SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Guests", "[!new_guest_ban ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
  
  /datum/admins/proc/output_ai_laws()
  	var/ai_number = 0
  	for(var/i in GLOB.silicon_mobs)
  		var/mob/living/silicon/S = i
  		ai_number++
  		if(isAI(S))
  			to_chat(usr, "<b>AI [key_name(S, usr)]'s laws:</b>", confidential=TRUE)
  		else if(iscyborg(S))
  			var/mob/living/silicon/robot/R = S
  			to_chat(usr, "<b>CYBORG [key_name(S, usr)] [R.connected_ai?"(Slaved to: [key_name(R.connected_ai)])":"(Independent)"]: laws:</b>", confidential=TRUE)
  		else if (ispAI(S))
  			to_chat(usr, "<b>pAI [key_name(S, usr)]'s laws:</b>", confidential=TRUE)
  		else
  			to_chat(usr, "<b>SOMETHING SILICON [key_name(S, usr)]'s laws:</b>", confidential=TRUE)
  
  		if (S.laws == null)
  			to_chat(usr, "[key_name(S, usr)]'s laws are null?? Contact a coder.", confidential=TRUE)
  		else
  			S.laws.show_laws(usr)
  	if(!ai_number)
  		to_chat(usr, "<b>No AIs located</b>" , confidential=TRUE)
  
  /datum/admins/proc/output_all_devil_info()
  	var/devil_number = 0
  	for(var/datum/mind/D in SSticker.mode.devils)
  		devil_number++
  		var/datum/antagonist/devil/devil = D.has_antag_datum(/datum/antagonist/devil)
  		to_chat(usr, "Devil #[devil_number]:<br><br>" + devil.printdevilinfo(), confidential=TRUE)
  	if(!devil_number)
  		to_chat(usr, "<b>No Devils located</b>" , confidential=TRUE)
  
  /datum/admins/proc/output_devil_info(mob/living/M)
  	if(is_devil(M))
  		var/datum/antagonist/devil/devil = M.mind.has_antag_datum(/datum/antagonist/devil)
  		to_chat(usr, devil.printdevilinfo(), confidential=TRUE)
  	else
  		to_chat(usr, "<b>[M] is not a devil.", confidential=TRUE)
  
  /datum/admins/proc/manage_free_slots()
  	if(!check_rights())
  		return
  	var/datum/browser/browser = new(usr, "jobmanagement", "Manage Free Slots", 520)
  	var/list/dat = list()
  	var/count = 0
  
  	if(!SSjob.initialized)
  		alert(usr, "You cannot manage jobs before the job subsystem is initialized!")
  		return
  
  	dat += "<table>"
  
  	for(var/j in SSjob.occupations)
  		var/datum/job/job = j
  		count++
  		var/J_title = html_encode(job.title)
  		var/J_opPos = html_encode(job.total_positions - (job.total_positions - job.current_positions))
  		var/J_totPos = html_encode(job.total_positions)
  		dat += "<tr><td>[J_title]:</td> <td>[J_opPos]/[job.total_positions < 0 ? " (unlimited)" : J_totPos]"
  
  		dat += "</td>"
  		dat += "<td>"
  		if(job.total_positions >= 0)
  			dat += "<A href='?src=[REF(src)];[HrefToken()];customjobslot=[job.title]'>Custom</A> | "
  			dat += "<A href='?src=[REF(src)];[HrefToken()];addjobslot=[job.title]'>Add 1</A> | "
  			if(job.total_positions > job.current_positions)
  				dat += "<A href='?src=[REF(src)];[HrefToken()];removejobslot=[job.title]'>Remove</A> | "
  			else
  				dat += "Remove | "
  			dat += "<A href='?src=[REF(src)];[HrefToken()];unlimitjobslot=[job.title]'>Unlimit</A></td>"
  		else
  			dat += "<A href='?src=[REF(src)];[HrefToken()];limitjobslot=[job.title]'>Limit</A></td>"
  
  	browser.height = min(100 + count * 20, 650)
  	browser.set_content(dat.Join())
  	browser.open()
  
  /datum/admins/proc/dynamic_mode_options(mob/user)
  	var/dat = {"
  		<center><B><h2>Dynamic Mode Options</h2></B></center><hr>
  		<br/>
  		<h3>Common options</h3>
  		<i>All these options can be changed midround.</i> <br/>
  		<br/>
  