anchor.diff:  			if(!check_rights(0))
   				return
   
  ->>>>>>> 6656ce6... Gives admins the ability to show a read only vv window to a player (#30463)
   			var/mob/M = locate(href_list["rename"]) in GLOB.mob_list
  -			if(!istype(M))
  -				to_chat(usr, "This can only be used on instances of type /mob")
  -				return
  -
  -			var/new_name = stripped_input(usr,"What would you like to name this mob?","Input a name",M.real_name,MAX_NAME_LEN)
  -			if( !new_name || !M )
  -				return
  -
  -			message_admins("Admin [key_name_admin(usr)] renamed [key_name_admin(M)] to [new_name].")
  -			M.fully_replace_character_name(M.real_name,new_name)
  -			href_list["datumrefresh"] = href_list["rename"]
  -
  -		else if(href_list["varnameedit"] && href_list["datumedit"])
  -			if(!check_rights(0))
  -				return
  -
  -			var/D = locate(href_list["datumedit"])
  +			if(!istype(M))
  +				to_chat(usr, "This can only be used on instances of type /mob")
  +				return
  +
  +			var/new_name = stripped_input(usr,"What would you like to name this mob?","Input a name",M.real_name,MAX_NAME_LEN)
  +			if( !new_name || !M )
  +				return
  +
  +			message_admins("Admin [key_name_admin(usr)] renamed [key_name_admin(M)] to [new_name].")
  +			M.fully_replace_character_name(M.real_name,new_name)
  +			href_list["datumrefresh"] = href_list["rename"]
  +
  +		else if(href_list["varnameedit"] && href_list["datumedit"])
  +			if(!check_rights(0))
  +				return
  +
  +			var/D = locate(href_list["datumedit"])
   			if(!istype(D, /datum))
  -				to_chat(usr, "This can only be used on datums")
  -				return
  -
  -			modify_variables(D, href_list["varnameedit"], 1)
  -
  -		else if(href_list["varnamechange"] && href_list["datumchange"])
  -			if(!check_rights(0))
  -				return
  -
  -			var/D = locate(href_list["datumchange"])
  +				to_chat(usr, "This can only be used on datums")
  +				return
  +
  +			modify_variables(D, href_list["varnameedit"], 1)
  +
  +		else if(href_list["varnamechange"] && href_list["datumchange"])
  +			if(!check_rights(0))
  +				return
  +
  +			var/D = locate(href_list["datumchange"])
   			if(!istype(D, /datum))
  -				to_chat(usr, "This can only be used on datums")
  -				return
  -
  -			modify_variables(D, href_list["varnamechange"], 0)
  -
  -		else if(href_list["varnamemass"] && href_list["datummass"])
  -			if(!check_rights(0))
  -				return
  -
  -			var/datum/D = locate(href_list["datummass"])
  -			if(!istype(D))
  -				to_chat(usr, "This can only be used on instances of type /datum")
  -				return
  -
  -			cmd_mass_modify_object_variables(D, href_list["varnamemass"])
  -
  -		else if(href_list["listedit"] && href_list["index"])
  -			var/index = text2num(href_list["index"])
  -			if (!index)
  -				return
  -
  -			var/list/L = locate(href_list["listedit"])
  -			if (!istype(L))
  -				to_chat(usr, "This can only be used on instances of type /list")
  -				return
  -
  -			mod_list(L, null, "list", "contents", index, autodetect_class = TRUE)
  -
  -		else if(href_list["listchange"] && href_list["index"])
  -			var/index = text2num(href_list["index"])
  -			if (!index)
  -				return
  -
  -			var/list/L = locate(href_list["listchange"])
  -			if (!istype(L))
  -				to_chat(usr, "This can only be used on instances of type /list")
  -				return
  -
  -			mod_list(L, null, "list", "contents", index, autodetect_class = FALSE)
  -
  -		else if(href_list["listremove"] && href_list["index"])
  -			var/index = text2num(href_list["index"])
  -			if (!index)
  -				return
  -
  -			var/list/L = locate(href_list["listremove"])
  -			if (!istype(L))
  -				to_chat(usr, "This can only be used on instances of type /list")
  -				return
  -
  -			var/variable = L[index]
  -			var/prompt = alert("Do you want to remove item number [index] from list?", "Confirm", "Yes", "No")
  -			if (prompt != "Yes")
  -				return
  -			L.Cut(index, index+1)
  -			log_world("### ListVarEdit by [src]: /list's contents: REMOVED=[html_encode("[variable]")]")
  -			log_admin("[key_name(src)] modified list's contents: REMOVED=[variable]")
  -			message_admins("[key_name_admin(src)] modified list's contents: REMOVED=[variable]")
  -
  -		else if(href_list["listadd"])
  -			var/list/L = locate(href_list["listadd"])
  -			if (!istype(L))
  -				to_chat(usr, "This can only be used on instances of type /list")
  -				return
  -
  -			mod_list_add(L, null, "list", "contents")
  -
  -		else if(href_list["listdupes"])
  -			var/list/L = locate(href_list["listdupes"])
  -			if (!istype(L))
  -				to_chat(usr, "This can only be used on instances of type /list")
  -				return
  -
  -			uniqueList_inplace(L)
  -			log_world("### ListVarEdit by [src]: /list contents: CLEAR DUPES")
  -			log_admin("[key_name(src)] modified list's contents: CLEAR DUPES")
  -			message_admins("[key_name_admin(src)] modified list's contents: CLEAR DUPES")
  -
  -		else if(href_list["listnulls"])
  -			var/list/L = locate(href_list["listnulls"])
  -			if (!istype(L))
  -				to_chat(usr, "This can only be used on instances of type /list")
  -				return
  -
  -			listclearnulls(L)
  -			log_world("### ListVarEdit by [src]: /list contents: CLEAR NULLS")
  -			log_admin("[key_name(src)] modified list's contents: CLEAR NULLS")
  -			message_admins("[key_name_admin(src)] modified list's contents: CLEAR NULLS")
  -
  -		else if(href_list["listlen"])
  -			var/list/L = locate(href_list["listlen"])
  -			if (!istype(L))
  -				to_chat(usr, "This can only be used on instances of type /list")
  -				return
  -			var/value = vv_get_value(VV_NUM)
  -			if (value["class"] != VV_NUM)
  -				return
  -
  -			L.len = value["value"]
  -			log_world("### ListVarEdit by [src]: /list len: [L.len]")
  -			log_admin("[key_name(src)] modified list's len: [L.len]")
  -			message_admins("[key_name_admin(src)] modified list's len: [L.len]")
  -
  -		else if(href_list["listshuffle"])
  -			var/list/L = locate(href_list["listshuffle"])
  -			if (!istype(L))
  -				to_chat(usr, "This can only be used on instances of type /list")
  -				return
  -
  -			shuffle_inplace(L)
  -			log_world("### ListVarEdit by [src]: /list contents: SHUFFLE")
  -			log_admin("[key_name(src)] modified list's contents: SHUFFLE")
  -			message_admins("[key_name_admin(src)] modified list's contents: SHUFFLE")
  -
  -		else if(href_list["give_spell"])
  -			if(!check_rights(0))
  -				return
  -
  +				to_chat(usr, "This can only be used on datums")
  +				return
  +
  +			modify_variables(D, href_list["varnamechange"], 0)
  +
  +		else if(href_list["varnamemass"] && href_list["datummass"])
  +			if(!check_rights(0))
  +				return
  +
  +			var/datum/D = locate(href_list["datummass"])
  +			if(!istype(D))
  +				to_chat(usr, "This can only be used on instances of type /datum")
  +				return
  +
  +			cmd_mass_modify_object_variables(D, href_list["varnamemass"])
  +
  +		else if(href_list["listedit"] && href_list["index"])
  +			var/index = text2num(href_list["index"])
  +			if (!index)
  +				return
  +
  +			var/list/L = locate(href_list["listedit"])
  +			if (!istype(L))
  +				to_chat(usr, "This can only be used on instances of type /list")
  +				return
  +
  +			mod_list(L, null, "list", "contents", index, autodetect_class = TRUE)
  +
  +		else if(href_list["listchange"] && href_list["index"])
  +			var/index = text2num(href_list["index"])
  +			if (!index)
  +				return
  +
  +			var/list/L = locate(href_list["listchange"])
  +			if (!istype(L))
  +				to_chat(usr, "This can only be used on instances of type /list")
  +				return
  +
  +			mod_list(L, null, "list", "contents", index, autodetect_class = FALSE)
  +
  +		else if(href_list["listremove"] && href_list["index"])
  +			var/index = text2num(href_list["index"])
  +			if (!index)
  +				return
  +
  +			var/list/L = locate(href_list["listremove"])
  +			if (!istype(L))
  +				to_chat(usr, "This can only be used on instances of type /list")
  +				return
  +
  +			var/variable = L[index]
  +			var/prompt = alert("Do you want to remove item number [index] from list?", "Confirm", "Yes", "No")
  +			if (prompt != "Yes")
  +				return
  +			L.Cut(index, index+1)
  +			log_world("### ListVarEdit by [src]: /list's contents: REMOVED=[html_encode("[variable]")]")
  +			log_admin("[key_name(src)] modified list's contents: REMOVED=[variable]")
  +			message_admins("[key_name_admin(src)] modified list's contents: REMOVED=[variable]")
  +
  +		else if(href_list["listadd"])
  +			var/list/L = locate(href_list["listadd"])
  +			if (!istype(L))
  +				to_chat(usr, "This can only be used on instances of type /list")
  +				return
  +
  +			mod_list_add(L, null, "list", "contents")
  +
  +		else if(href_list["listdupes"])
  +			var/list/L = locate(href_list["listdupes"])
  +			if (!istype(L))
  +				to_chat(usr, "This can only be used on instances of type /list")
  +				return
  +
  +			uniqueList_inplace(L)
  +			log_world("### ListVarEdit by [src]: /list contents: CLEAR DUPES")
  +			log_admin("[key_name(src)] modified list's contents: CLEAR DUPES")
  +			message_admins("[key_name_admin(src)] modified list's contents: CLEAR DUPES")
  +
  +		else if(href_list["listnulls"])
  +			var/list/L = locate(href_list["listnulls"])
  +			if (!istype(L))
  +				to_chat(usr, "This can only be used on instances of type /list")
  +				return
  +
  +			listclearnulls(L)
  +			log_world("### ListVarEdit by [src]: /list contents: CLEAR NULLS")
  +			log_admin("[key_name(src)] modified list's contents: CLEAR NULLS")
  +			message_admins("[key_name_admin(src)] modified list's contents: CLEAR NULLS")
  +
  +		else if(href_list["listlen"])
  +			var/list/L = locate(href_list["listlen"])
  +			if (!istype(L))
  +				to_chat(usr, "This can only be used on instances of type /list")
  +				return
  +			var/value = vv_get_value(VV_NUM)
  +			if (value["class"] != VV_NUM)
  +				return
  +
  +			L.len = value["value"]
  +			log_world("### ListVarEdit by [src]: /list len: [L.len]")
  +			log_admin("[key_name(src)] modified list's len: [L.len]")
  +			message_admins("[key_name_admin(src)] modified list's len: [L.len]")
  +
  +		else if(href_list["listshuffle"])
  +			var/list/L = locate(href_list["listshuffle"])
  +			if (!istype(L))
  +				to_chat(usr, "This can only be used on instances of type /list")
  +				return
  +
  +			shuffle_inplace(L)
  +			log_world("### ListVarEdit by [src]: /list contents: SHUFFLE")
  +			log_admin("[key_name(src)] modified list's contents: SHUFFLE")
  +			message_admins("[key_name_admin(src)] modified list's contents: SHUFFLE")
  +
  +		else if(href_list["give_spell"])
  +			if(!check_rights(0))
  +				return
  +
   			var/mob/M = locate(href_list["give_spell"]) in GLOB.mob_list
  -			if(!istype(M))
  -				to_chat(usr, "This can only be used on instances of type /mob")
  -				return
  -
  -			src.give_spell(M)
  -			href_list["datumrefresh"] = href_list["give_spell"]
  -
  -		else if(href_list["remove_spell"])
  -			if(!check_rights(0))
  -				return
  -
  +			if(!istype(M))
  +				to_chat(usr, "This can only be used on instances of type /mob")
  +				return
  +
  +			src.give_spell(M)
  +			href_list["datumrefresh"] = href_list["give_spell"]
  +
  +		else if(href_list["remove_spell"])
  +			if(!check_rights(0))
  +				return
  +
   			var/mob/M = locate(href_list["remove_spell"]) in GLOB.mob_list
  -			if(!istype(M))
  -				to_chat(usr, "This can only be used on instances of type /mob")
  -				return
  -
  -			remove_spell(M)
  -			href_list["datumrefresh"] = href_list["remove_spell"]
  -
  -		else if(href_list["give_disease"])
  -			if(!check_rights(0))
  -				return
  -
  +			if(!istype(M))
  +				to_chat(usr, "This can only be used on instances of type /mob")
  +				return
  +
  +			remove_spell(M)
  +			href_list["datumrefresh"] = href_list["remove_spell"]
  +
  +		else if(href_list["give_disease"])
  +			if(!check_rights(0))
  +				return
  +
   			var/mob/M = locate(href_list["give_disease"]) in GLOB.mob_list
  -			if(!istype(M))
  -				to_chat(usr, "This can only be used on instances of type /mob")
  -				return
  -
  -			src.give_disease(M)
  -			href_list["datumrefresh"] = href_list["give_spell"]
  -
  -		else if(href_list["gib"])
  -			if(!check_rights(R_FUN))
  -				return
  -
  +			if(!istype(M))
  +				to_chat(usr, "This can only be used on instances of type /mob")
  +				return
  +
  +			src.give_disease(M)
  +			href_list["datumrefresh"] = href_list["give_spell"]
  +
  +		else if(href_list["gib"])
  +			if(!check_rights(R_FUN))
  +				return
  +
   			var/mob/M = locate(href_list["gib"]) in GLOB.mob_list
  -			if(!istype(M))
  -				to_chat(usr, "This can only be used on instances of type /mob")
  -				return
  -
  -			src.cmd_admin_gib(M)
  -
  -		else if(href_list["build_mode"])
  -			if(!check_rights(R_BUILDMODE))
  -				return
  -
  +			if(!istype(M))
  +				to_chat(usr, "This can only be used on instances of type /mob")
  +				return
  +
  +			src.cmd_admin_gib(M)
  +
  +		else if(href_list["build_mode"])
  +			if(!check_rights(R_BUILDMODE))
  +				return
  +
   			var/mob/M = locate(href_list["build_mode"]) in GLOB.mob_list
  -			if(!istype(M))
  -				to_chat(usr, "This can only be used on instances of type /mob")
  -				return
  -
  -			togglebuildmode(M)
  -			href_list["datumrefresh"] = href_list["build_mode"]
  -
  -		else if(href_list["drop_everything"])
  -			if(!check_rights(0))
  -				return
  -
  +			if(!istype(M))
  +				to_chat(usr, "This can only be used on instances of type /mob")
  +				return
  +
  +			togglebuildmode(M)
  +			href_list["datumrefresh"] = href_list["build_mode"]
  +
  +		else if(href_list["drop_everything"])
  +			if(!check_rights(0))
  +				return
  +
   			var/mob/M = locate(href_list["drop_everything"]) in GLOB.mob_list
  -			if(!istype(M))
  -				to_chat(usr, "This can only be used on instances of type /mob")
  -				return
  -
  -			if(usr.client)
  -				usr.client.cmd_admin_drop_everything(M)
  -
  -		else if(href_list["direct_control"])
  -			if(!check_rights(0))
  -				return
  -
  +			if(!istype(M))
  +				to_chat(usr, "This can only be used on instances of type /mob")
  +				return
  +
  +			if(usr.client)
  +				usr.client.cmd_admin_drop_everything(M)
  +
  +		else if(href_list["direct_control"])
  +			if(!check_rights(0))
  +				return
  +
   			var/mob/M = locate(href_list["direct_control"]) in GLOB.mob_list
  -			if(!istype(M))
  -				to_chat(usr, "This can only be used on instances of type /mob")
  -				return
  -
  -			if(usr.client)
  -				usr.client.cmd_assume_direct_control(M)
  -
  -		else if(href_list["offer_control"])
  -			if(!check_rights(0))
  -				return
  -
  +			if(!istype(M))
  +				to_chat(usr, "This can only be used on instances of type /mob")
  +				return
  +
  +			if(usr.client)
  +				usr.client.cmd_assume_direct_control(M)
  +
  +		else if(href_list["offer_control"])
  +			if(!check_rights(0))
  +				return
  +
   			var/mob/M = locate(href_list["offer_control"]) in GLOB.mob_list
  -			if(!istype(M))
  -				to_chat(usr, "This can only be used on instances of type /mob")
  -				return
  -			offer_control(M)
  -
  -		else if(href_list["delall"])
  -			if(!check_rights(R_DEBUG|R_SERVER))
  -				return
  -
  -			var/obj/O = locate(href_list["delall"])
  -			if(!isobj(O))
  -				to_chat(usr, "This can only be used on instances of type /obj")
  -				return
  -
  -			var/action_type = alert("Strict type ([O.type]) or type and all subtypes?",,"Strict type","Type and subtypes","Cancel")
  -			if(action_type == "Cancel" || !action_type)
  -				return
  -
  -			if(alert("Are you really sure you want to delete all objects of type [O.type]?",,"Yes","No") != "Yes")
  -				return
  -
  -			if(alert("Second confirmation required. Delete?",,"Yes","No") != "Yes")
  -				return
  -
  -			var/O_type = O.type
  -			switch(action_type)
  -				if("Strict type")
  -					var/i = 0
  -					for(var/obj/Obj in world)
  -						if(Obj.type == O_type)
  -							i++
  -							qdel(Obj)
  -						CHECK_TICK
  -					if(!i)
  -						to_chat(usr, "No objects of this type exist")
  -						return
  -					log_admin("[key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted) ")
  -					message_admins("<span class='notice'>[key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted) </span>")
  -				if("Type and subtypes")
  -					var/i = 0
  -					for(var/obj/Obj in world)
  -						if(istype(Obj,O_type))
  -							i++
  -							qdel(Obj)
  -						CHECK_TICK
  -					if(!i)
  -						to_chat(usr, "No objects of this type exist")
  -						return
  -					log_admin("[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) ")
  -					message_admins("<span class='notice'>[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) </span>")
  -
  -		else if(href_list["addreagent"])
  -			if(!check_rights(0))
  -				return
  -
  -			var/atom/A = locate(href_list["addreagent"])
  -
  -			if(!A.reagents)
  -				var/amount = input(usr, "Specify the reagent size of [A]", "Set Reagent Size", 50) as num
  -				if(amount)
  -					A.create_reagents(amount)
  -
  -			if(A.reagents)
  -				var/chosen_id
  -				var/list/reagent_options = sortList(GLOB.chemical_reagents_list)
  -				switch(alert(usr, "Choose a method.", "Add Reagents", "Enter ID", "Choose ID"))
  -					if("Enter ID")
  -						var/valid_id
  -						while(!valid_id)
  -							chosen_id = stripped_input(usr, "Enter the ID of the reagent you want to add.")
  -							if(!chosen_id) //Get me out of here!
  -								break
  -							for(var/ID in reagent_options)
  -								if(ID == chosen_id)
  -									valid_id = 1
  -							if(!valid_id)
  -								to_chat(usr, "<span class='warning'>A reagent with that ID doesn't exist!</span>")
  -					if("Choose ID")
  -						chosen_id = input(usr, "Choose a reagent to add.", "Choose a reagent.") as null|anything in reagent_options
  -				if(chosen_id)
  -					var/amount = input(usr, "Choose the amount to add.", "Choose the amount.", A.reagents.maximum_volume) as num
  -					if(amount)
  -						A.reagents.add_reagent(chosen_id, amount)
  -						log_admin("[key_name(usr)] has added [amount] units of [chosen_id] to \the [A]")
  -						message_admins("<span class='notice'>[key_name(usr)] has added [amount] units of [chosen_id] to \the [A]</span>")
  -
  -			href_list["datumrefresh"] = href_list["addreagent"]
  -
  -		else if(href_list["explode"])
  -			if(!check_rights(R_FUN))
  -				return
  -
  -			var/atom/A = locate(href_list["explode"])
  -			if(!isobj(A) && !ismob(A) && !isturf(A))
  -				to_chat(usr, "This can only be done to instances of type /obj, /mob and /turf")
  -				return
  -
  -			src.cmd_admin_explosion(A)
  -			href_list["datumrefresh"] = href_list["explode"]
  -
  -		else if(href_list["emp"])
  -			if(!check_rights(R_FUN))
  -				return
  -
  -			var/atom/A = locate(href_list["emp"])
  -			if(!isobj(A) && !ismob(A) && !isturf(A))
  -				to_chat(usr, "This can only be done to instances of type /obj, /mob and /turf")
  -				return
  -
  -			src.cmd_admin_emp(A)
  -			href_list["datumrefresh"] = href_list["emp"]
  -
  -		else if(href_list["rotatedatum"])
  -			if(!check_rights(0))
  -				return
  -
  -			var/atom/A = locate(href_list["rotatedatum"])
  -			if(!istype(A))
  -				to_chat(usr, "This can only be done to instances of type /atom")
  -				return
  -
  -			switch(href_list["rotatedir"])
  -				if("right")
  -					A.setDir(turn(A.dir, -45))
  -				if("left")
  -					A.setDir(turn(A.dir, 45))
  -			href_list["datumrefresh"] = href_list["rotatedatum"]
  -
  -		else if(href_list["editorgans"])
  -			if(!check_rights(0))
  -				return
  -
  +			if(!istype(M))
  +				to_chat(usr, "This can only be used on instances of type /mob")
  +				return
  +			offer_control(M)
  +
  +		else if(href_list["delall"])
  +			if(!check_rights(R_DEBUG|R_SERVER))
  +				return
  +
  +			var/obj/O = locate(href_list["delall"])
  +			if(!isobj(O))
  +				to_chat(usr, "This can only be used on instances of type /obj")
  +				return
  +
  +			var/action_type = alert("Strict type ([O.type]) or type and all subtypes?",,"Strict type","Type and subtypes","Cancel")
  +			if(action_type == "Cancel" || !action_type)
  +				return
  +
  +			if(alert("Are you really sure you want to delete all objects of type [O.type]?",,"Yes","No") != "Yes")
  +				return
  +
  +			if(alert("Second confirmation required. Delete?",,"Yes","No") != "Yes")
  +				return
  +
  +			var/O_type = O.type
  +			switch(action_type)
  +				if("Strict type")
  +					var/i = 0
  +					for(var/obj/Obj in world)
  +						if(Obj.type == O_type)
  +							i++
  +							qdel(Obj)
  +						CHECK_TICK
  +					if(!i)
  +						to_chat(usr, "No objects of this type exist")
  +						return
  +					log_admin("[key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted) ")
  +					message_admins("<span class='notice'>[key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted) </span>")
  +				if("Type and subtypes")
  +					var/i = 0
  +					for(var/obj/Obj in world)
  +						if(istype(Obj,O_type))
  +							i++
  +							qdel(Obj)
  +						CHECK_TICK
  +					if(!i)
  +						to_chat(usr, "No objects of this type exist")
  +						return
  +					log_admin("[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) ")
  +					message_admins("<span class='notice'>[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) </span>")
  +
  +		else if(href_list["addreagent"])
  +			if(!check_rights(0))
  +				return
  +
  +			var/atom/A = locate(href_list["addreagent"])
  +
  +			if(!A.reagents)
  +				var/amount = input(usr, "Specify the reagent size of [A]", "Set Reagent Size", 50) as num
  +				if(amount)
  +					A.create_reagents(amount)
  +
  +			if(A.reagents)
  +				var/chosen_id
  +				var/list/reagent_options = sortList(GLOB.chemical_reagents_list)
  +				switch(alert(usr, "Choose a method.", "Add Reagents", "Enter ID", "Choose ID"))
  +					if("Enter ID")
  +						var/valid_id
  +						while(!valid_id)
  +							chosen_id = stripped_input(usr, "Enter the ID of the reagent you want to add.")
  +							if(!chosen_id) //Get me out of here!
  +								break
  +							for(var/ID in reagent_options)
  +								if(ID == chosen_id)
  +									valid_id = 1
  +							if(!valid_id)
  +								to_chat(usr, "<span class='warning'>A reagent with that ID doesn't exist!</span>")
  +					if("Choose ID")
  +						chosen_id = input(usr, "Choose a reagent to add.", "Choose a reagent.") as null|anything in reagent_options
  +				if(chosen_id)
  +					var/amount = input(usr, "Choose the amount to add.", "Choose the amount.", A.reagents.maximum_volume) as num
  +					if(amount)
  +						A.reagents.add_reagent(chosen_id, amount)
  +						log_admin("[key_name(usr)] has added [amount] units of [chosen_id] to \the [A]")
  +						message_admins("<span class='notice'>[key_name(usr)] has added [amount] units of [chosen_id] to \the [A]</span>")
  +
  +			href_list["datumrefresh"] = href_list["addreagent"]
  +
  +		else if(href_list["explode"])
  +			if(!check_rights(R_FUN))
  +				return
  +
  +			var/atom/A = locate(href_list["explode"])
  +			if(!isobj(A) && !ismob(A) && !isturf(A))
  +				to_chat(usr, "This can only be done to instances of type /obj, /mob and /turf")
  +				return
  +
  +			src.cmd_admin_explosion(A)
  +			href_list["datumrefresh"] = href_list["explode"]
  +
  +		else if(href_list["emp"])
  +			if(!check_rights(R_FUN))
  +				return
  +
  +			var/atom/A = locate(href_list["emp"])
  +			if(!isobj(A) && !ismob(A) && !isturf(A))
  +				to_chat(usr, "This can only be done to instances of type /obj, /mob and /turf")
  +				return
  +
  +			src.cmd_admin_emp(A)
  +			href_list["datumrefresh"] = href_list["emp"]
  +
  +		else if(href_list["rotatedatum"])
  +			if(!check_rights(0))
  +				return
  +
  +			var/atom/A = locate(href_list["rotatedatum"])
  +			if(!istype(A))
  +				to_chat(usr, "This can only be done to instances of type /atom")
  +				return
  +
  +			switch(href_list["rotatedir"])
  +				if("right")
  +					A.setDir(turn(A.dir, -45))
  +				if("left")
  +					A.setDir(turn(A.dir, 45))
  +			href_list["datumrefresh"] = href_list["rotatedatum"]
  +
  +		else if(href_list["editorgans"])
  +			if(!check_rights(0))
  +				return
  +
   			var/mob/living/carbon/C = locate(href_list["editorgans"]) in GLOB.mob_list
  -			if(!istype(C))
  -				to_chat(usr, "This can only be done to instances of type /mob/living/carbon")
  -				return
  -
  -			manipulate_organs(C)
  -			href_list["datumrefresh"] = href_list["editorgans"]
  -
  +			if(!istype(C))
  +				to_chat(usr, "This can only be done to instances of type /mob/living/carbon")
  +				return
  +
  +			manipulate_organs(C)
  +			href_list["datumrefresh"] = href_list["editorgans"]
  +
   		else if(href_list["hallucinate"])
   			if(!check_rights(0))
   				return
  
positive.code: 		if(!check_rights(0))
  			return
  
  >>>>>>> 6656ce6... Gives admins the ability to show a read only vv window to a player (#30463)
  		var/mob/M = locate(href_list["mob_player_panel"]) in GLOB.mob_list
  		if(!istype(M))
  			to_chat(usr, "This can only be used on instances of type /mob")
  			return
  
  		src.holder.show_player_panel(M)
  		href_list["datumrefresh"] = href_list["mob_player_panel"]
  
  	else if(href_list["godmode"])
  		if(!check_rights(R_ADMIN))
  			return
  
  		var/mob/M = locate(href_list["godmode"]) in GLOB.mob_list
  		if(!istype(M))
  			to_chat(usr, "This can only be used on instances of type /mob")
  			return
  
  		src.cmd_admin_godmode(M)
  		href_list["datumrefresh"] = href_list["godmode"]
  
  	else if(href_list["mark_object"])
  		if(!check_rights(0))
  			return
  
  		var/datum/D = locate(href_list["mark_object"])
  		if(!istype(D))
  			to_chat(usr, "This can only be done to instances of type /datum")
  			return
  
  		src.holder.marked_datum = D
  		href_list["datumrefresh"] = href_list["mark_object"]
  
  	else if(href_list["proc_call"])
  		if(!check_rights(0))
  			return
  
  		var/T = locate(href_list["proc_call"])
  
  		if(T)
  			callproc_datum(T)
  
  	else if(href_list["delete"])
  		if(!check_rights(R_DEBUG, 0))
  			return
  
  		var/datum/D = locate(href_list["delete"])
  		if(!D)
  			to_chat(usr, "Unable to locate item!")
  		admin_delete(D)
  		href_list["datumrefresh"] = href_list["delete"]
  
  	else if(href_list["regenerateicons"])
  		if(!check_rights(0))
  			return
  
  		var/mob/M = locate(href_list["regenerateicons"]) in GLOB.mob_list
  <<<<<<< HEAD
  		if(!ismob(M))
  			to_chat(usr, "This can only be done to instances of type /mob")
  			return
  		M.regenerate_icons()
  
  //Needs +VAREDIT past this point
  
  	else if(check_rights(R_VAREDIT))
  
  
  	//~CARN: for renaming mobs (updates their name, real_name, mind.name, their ID/PDA and datacore records).
  
  		if(href_list["rename"])
  			if(!check_rights(0))
  				return
  
  =======
  		if(!ismob(M))
  			to_chat(usr, "This can only be done to instances of type /mob")
  			return
  
negative.code: 			if(result)
  				new result(C, TRUE)
  
  		else if(href_list["makehuman"])
  			if(!check_rights(R_SPAWN))
  				return
  
  			var/mob/living/carbon/monkey/Mo = locate(href_list["makehuman"]) in GLOB.mob_list
  			if(!istype(Mo))
  				to_chat(usr, "This can only be done to instances of type /mob/living/carbon/monkey")
  				return
  
  			if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform")
  				return
  			if(!Mo)
  				to_chat(usr, "Mob doesn't exist anymore")
  				return
  			holder.Topic(href, list("humanone"=href_list["makehuman"]))
  
  		else if(href_list["makemonkey"])
  			if(!check_rights(R_SPAWN))
  				return
  
  			var/mob/living/carbon/human/H = locate(href_list["makemonkey"]) in GLOB.mob_list
  			if(!istype(H))
  				to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human")
  				return
  
  			if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform")
  				return
  			if(!H)
  				to_chat(usr, "Mob doesn't exist anymore")
  				return
  			holder.Topic(href, list("monkeyone"=href_list["makemonkey"]))
  
  		else if(href_list["makerobot"])
  			if(!check_rights(R_SPAWN))
  				return
  
  			var/mob/living/carbon/human/H = locate(href_list["makerobot"]) in GLOB.mob_list
  			if(!istype(H))
  				to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human")
  				return
  
  			if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform")
  				return
  			if(!H)
  				to_chat(usr, "Mob doesn't exist anymore")
  				return
  			holder.Topic(href, list("makerobot"=href_list["makerobot"]))
  
  		else if(href_list["makealien"])
  			if(!check_rights(R_SPAWN))
  				return
  
  			var/mob/living/carbon/human/H = locate(href_list["makealien"]) in GLOB.mob_list
  			if(!istype(H))
  				to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human")
  				return
  
  			if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform")
  				return
  			if(!H)
  				to_chat(usr, "Mob doesn't exist anymore")
  				return
  			holder.Topic(href, list("makealien"=href_list["makealien"]))
  
  		else if(href_list["makeslime"])
  			if(!check_rights(R_SPAWN))
  				return
  
  			var/mob/living/carbon/human/H = locate(href_list["makeslime"]) in GLOB.mob_list
  			if(!istype(H))
  				to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human")
  				return
  
  			if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform")
  				return
  			if(!H)
  				to_chat(usr, "Mob doesn't exist anymore")
  				return
  			holder.Topic(href, list("makeslime"=href_list["makeslime"]))
  
  		else if(href_list["makeai"])
  			if(!check_rights(R_SPAWN))
  				return
  
  			var/mob/living/carbon/H = locate(href_list["makeai"]) in GLOB.mob_list
  			if(!istype(H))
  				to_chat(usr, "This can only be done to instances of type /mob/living/carbon")
  				return
  
  			if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform")
  				return
  			if(!H)
  				to_chat(usr, "Mob doesn't exist anymore")
  				return
  			holder.Topic(href, list("makeai"=href_list["makeai"]))
  
  		else if(href_list["setspecies"])
  			if(!check_rights(R_SPAWN))
  				return
  
  			var/mob/living/carbon/human/H = locate(href_list["setspecies"]) in GLOB.mob_list
  			if(!istype(H))
  				to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human")
  				return
  
  			var/result = input(usr, "Please choose a new species","Species") as null|anything in GLOB.species_list
  
  			if(!H)
  				to_chat(usr, "Mob doesn't exist anymore")
  				return
  
  			if(result)
  				var/newtype = GLOB.species_list[result]
  				admin_ticket_log("[key_name_admin(usr)] has modified the bodyparts of [H] to [result]")
  				H.set_species(newtype)
  
  		else if(href_list["editbodypart"])
  			if(!check_rights(R_SPAWN))
  				return
  
  			var/mob/living/carbon/C = locate(href_list["editbodypart"]) in GLOB.mob_list
  			if(!istype(C))
  				to_chat(usr, "This can only be done to instances of type /mob/living/carbon")
  				return
  
  			var/edit_action = input(usr, "What would you like to do?","Modify Body Part") as null|anything in list("add","remove", "augment")
  			if(!edit_action)
  				return
  			var/list/limb_list = list("head", "l_arm", "r_arm", "l_leg", "r_leg")
  			if(edit_action == "augment")
  				limb_list += "chest"
  			var/result = input(usr, "Please choose which body part to [edit_action]","[capitalize(edit_action)] Body Part") as null|anything in limb_list
  
  			if(!C)
  				to_chat(usr, "Mob doesn't exist anymore")
  				return
  
  			if(result)
  				var/obj/item/bodypart/BP = C.get_bodypart(result)
  				switch(edit_action)
  					if("remove")
  						if(BP)
  							BP.drop_limb()
  						else
  							to_chat(usr, "[C] doesn't have such bodypart.")
  					if("add")
  						if(BP)
  							to_chat(usr, "[C] already has such bodypart.")
  						else
  							if(!C.regenerate_limb(result))
  								to_chat(usr, "[C] cannot have such bodypart.")
  					if("augment")
  						if(ishuman(C))
  							if(BP)
  								BP.change_bodypart_status(BODYPART_ROBOTIC, TRUE, TRUE)
  							else
  								to_chat(usr, "[C] doesn't have such bodypart.")
  						else
  							to_chat(usr, "Only humans can be augmented.")
  			admin_ticket_log("[key_name_admin(usr)] has modified the bodyparts of [C]")
  
  
  		else if(href_list["purrbation"])
  			if(!check_rights(R_SPAWN))
  				return
  
  			var/mob/living/carbon/human/H = locate(href_list["purrbation"]) in GLOB.mob_list
  			if(!istype(H))
  				to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human")
  				return
  			if(!ishumanbasic(H))
  				to_chat(usr, "This can only be done to the basic human species at the moment.")
  				return
  
  			if(!H)
  				to_chat(usr, "Mob doesn't exist anymore")
  				return
  
  			var/success = purrbation_toggle(H)
  			if(success)
  				to_chat(usr, "Put [H] on purrbation.")
  				log_admin("[key_name(usr)] has put [key_name(H)] on purrbation.")
  				var/msg = "<span class='notice'>[key_name_admin(usr)] has put [key_name(H)] on purrbation.</span>"
  				message_admins(msg)
  				admin_ticket_log(H, msg)
  
  			else
  				to_chat(usr, "Removed [H] from purrbation.")
  				log_admin("[key_name(usr)] has removed [key_name(H)] from purrbation.")
  				var/msg = "<span class='notice'>[key_name_admin(usr)] has removed [key_name(H)] from purrbation.</span>"
  				message_admins(msg)
  				admin_ticket_log(H, msg)
  
  		else if(href_list["adjustDamage"] && href_list["mobToDamage"])
  			if(!check_rights(0))
  				return
  
  			var/mob/living/L = locate(href_list["mobToDamage"]) in GLOB.mob_list
  			if(!istype(L))
  				return
  
  			var/Text = href_list["adjustDamage"]
  
  			var/amount =  input("Deal how much damage to mob? (Negative values here heal)","Adjust [Text]loss",0) as num
  
  			if(!L)
  				to_chat(usr, "Mob doesn't exist anymore")
  				return
  
  			switch(Text)
  				if("brute")
  					L.adjustBruteLoss(amount)
  				if("fire")
  					L.adjustFireLoss(amount)
  				if("toxin")
  					L.adjustToxLoss(amount)
  				if("oxygen")
  					L.adjustOxyLoss(amount)
  				if("brain")
  					L.adjustBrainLoss(amount)
  				if("clone")
  					L.adjustCloneLoss(amount)
  				if("stamina")
  					L.adjustStaminaLoss(amount)
  				else
  					to_chat(usr, "You caused an error. DEBUG: Text:[Text] Mob:[L]")
  					return
  
  			if(amount != 0)
  				log_admin("[key_name(usr)] dealt [amount] amount of [Text] damage to [L] ")
  				var/msg = "<span class='notice'>[key_name(usr)] dealt [amount] amount of [Text] damage to [L] </span>"
  				message_admins(msg)
  				admin_ticket_log(L, msg)
  				href_list["datumrefresh"] = href_list["mobToDamage"]
  
  