diff --git a/code/_helpers/logging.dm b/code/_helpers/logging.dm
index d84e3b93691..126b71ca170 100644
--- a/code/_helpers/logging.dm
+++ b/code/_helpers/logging.dm
@@ -142,7 +142,7 @@ var/global/log_end= world.system_type == UNIX ? ascii2text(13) : ""
 
 	if(key)
 		if(include_link && C)
-			. += "<a href='?priv_msg=\ref[C];ticket=\ref[ticket]'>"
+			. += "<a href='byond://?priv_msg=\ref[C];ticket=\ref[ticket]'>"
 
 		. += key
 
diff --git a/code/_macros.dm b/code/_macros.dm
index bb850690cf5..31458da86e5 100644
--- a/code/_macros.dm
+++ b/code/_macros.dm
@@ -92,7 +92,7 @@
 
 /proc/place_meta_charset(content)
 	if(istext(content))
-		content = "<meta charset=\"utf-8\">" + content
+		content = "<!DOCTYPE html><meta charset=\"utf-8\">" + content
 	return content
 
 #define to_chat(target, message)                            target << (message)
diff --git a/code/_onclick/hud/screen/screen_holomap.dm b/code/_onclick/hud/screen/screen_holomap.dm
index 4a0320885c5..af72457e814 100644
--- a/code/_onclick/hud/screen/screen_holomap.dm
+++ b/code/_onclick/hud/screen/screen_holomap.dm
@@ -60,7 +60,7 @@
 /obj/screen/holomap_legend/Initialize(mapload, mob/_owner, ui_style, ui_color, ui_alpha, map_color, text)
 	. = ..()
 	saved_color = map_color
-	maptext = "<a href='?src=\ref[src]' style=\"font-family: 'Small Fonts'; color: [map_color]; -dm-text-outline: 1 [COLOR_BLACK]; font-size: 6px\">[text]</a>"
+	maptext = "<a href='byond://?src=\ref[src]' style=\"font-family: 'Small Fonts'; color: [map_color]; -dm-text-outline: 1 [COLOR_BLACK]; font-size: 6px\">[text]</a>"
 	alpha = 255
 
 /obj/screen/holomap_legend/handle_click(mob/user, params)
diff --git a/code/controllers/subsystems/event.dm b/code/controllers/subsystems/event.dm
index 59d7eac1c20..1e9f449a1f0 100644
--- a/code/controllers/subsystems/event.dm
+++ b/code/controllers/subsystems/event.dm
@@ -127,12 +127,12 @@ SUBSYSTEM_DEF(event)
 //Event manager UI
 /datum/controller/subsystem/event/proc/GetInteractWindow()
 	var/allow_random_events = get_config_value(/decl/config/toggle/allow_random_events)
-	var/html = "<A align='right' href='?src=\ref[src];refresh=1'>Refresh</A>"
-	html += "<A align='right' href='?src=\ref[src];pause_all=[!allow_random_events]'>Pause All - [allow_random_events ? "Pause" : "Resume"]</A>"
+	var/html = "<A align='right' href='byond://?src=\ref[src];refresh=1'>Refresh</A>"
+	html += "<A align='right' href='byond://?src=\ref[src];pause_all=[!allow_random_events]'>Pause All - [allow_random_events ? "Pause" : "Resume"]</A>"
 
 	if(selected_event_container)
 		var/event_time = max(0, selected_event_container.next_event_time - world.time)
-		html += "<A align='right' href='?src=\ref[src];back=1'>Back</A><br>"
+		html += "<A align='right' href='byond://?src=\ref[src];back=1'>Back</A><br>"
 		html += "Time till start: [round(event_time / 600, 0.1)]<br>"
 		html += "<div class='block'>"
 		html += "<h2>Available [severity_to_string[selected_event_container.severity]] Events (queued & running events will not be displayed)</h2>"
@@ -142,13 +142,13 @@ SUBSYSTEM_DEF(event)
 		for(var/datum/event_meta/EM in selected_event_container.available_events)
 			html += "<tr>"
 			html += "<td>[EM.name]</td>"
-			html += "<td><A align='right' href='?src=\ref[src];set_weight=\ref[EM]'>[EM.weight]</A></td>"
+			html += "<td><A align='right' href='byond://?src=\ref[src];set_weight=\ref[EM]'>[EM.weight]</A></td>"
 			html += "<td>[EM.min_weight]</td>"
 			html += "<td>[EM.max_weight]</td>"
-			html += "<td><A align='right' href='?src=\ref[src];toggle_oneshot=\ref[EM]'>[EM.one_shot]</A></td>"
-			html += "<td><A align='right' href='?src=\ref[src];toggle_enabled=\ref[EM]'>[EM.enabled]</A></td>"
+			html += "<td><A align='right' href='byond://?src=\ref[src];toggle_oneshot=\ref[EM]'>[EM.one_shot]</A></td>"
+			html += "<td><A align='right' href='byond://?src=\ref[src];toggle_enabled=\ref[EM]'>[EM.enabled]</A></td>"
 			html += "<td><span class='alert'>[selected_event_container.get_weight(EM, active_with_role)]</span></td>"
-			html += "<td><A align='right' href='?src=\ref[src];remove=\ref[EM];EC=\ref[selected_event_container]'>Remove</A></td>"
+			html += "<td><A align='right' href='byond://?src=\ref[src];remove=\ref[EM];EC=\ref[selected_event_container]'>Remove</A></td>"
 			html += "</tr>"
 		html += "</table>"
 		html += "</div>"
@@ -158,16 +158,16 @@ SUBSYSTEM_DEF(event)
 		html += "<table[table_options]>"
 		html += "<tr><td[row_options2]>Name</td><td[row_options2]>Type</td><td[row_options1]>Weight</td><td[row_options1]>OneShot</td></tr>"
 		html += "<tr>"
-		html += "<td><A align='right' href='?src=\ref[src];set_name=\ref[new_event]'>[new_event.name ? new_event.name : "Enter Event"]</A></td>"
-		html += "<td><A align='right' href='?src=\ref[src];set_type=\ref[new_event]'>[new_event.event_type ? new_event.event_type : "Select Type"]</A></td>"
-		html += "<td><A align='right' href='?src=\ref[src];set_weight=\ref[new_event]'>[new_event.weight ? new_event.weight : 0]</A></td>"
-		html += "<td><A align='right' href='?src=\ref[src];toggle_oneshot=\ref[new_event]'>[new_event.one_shot]</A></td>"
+		html += "<td><A align='right' href='byond://?src=\ref[src];set_name=\ref[new_event]'>[new_event.name ? new_event.name : "Enter Event"]</A></td>"
+		html += "<td><A align='right' href='byond://?src=\ref[src];set_type=\ref[new_event]'>[new_event.event_type ? new_event.event_type : "Select Type"]</A></td>"
+		html += "<td><A align='right' href='byond://?src=\ref[src];set_weight=\ref[new_event]'>[new_event.weight ? new_event.weight : 0]</A></td>"
+		html += "<td><A align='right' href='byond://?src=\ref[src];toggle_oneshot=\ref[new_event]'>[new_event.one_shot]</A></td>"
 		html += "</tr>"
 		html += "</table>"
-		html += "<A align='right' href='?src=\ref[src];add=\ref[selected_event_container]'>Add</A><br>"
+		html += "<A align='right' href='byond://?src=\ref[src];add=\ref[selected_event_container]'>Add</A><br>"
 		html += "</div>"
 	else
-		html += "<A align='right' href='?src=\ref[src];toggle_report=1'>Round End Report: [report_at_round_end ? "On": "Off"]</A><br>"
+		html += "<A align='right' href='byond://?src=\ref[src];toggle_report=1'>Round End Report: [report_at_round_end ? "On": "Off"]</A><br>"
 		html += "<div class='block'>"
 		html += "<h2>Event Start</h2>"
 
@@ -181,16 +181,16 @@ SUBSYSTEM_DEF(event)
 			html += "<td>[worldtime2stationtime(max(EC.next_event_time, world.time))]</td>"
 			html += "<td>[round(next_event_at / 600, 0.1)]</td>"
 			html += "<td>"
-			html +=   "<A align='right' href='?src=\ref[src];dec_timer=2;event=\ref[EC]'>--</A>"
-			html +=   "<A align='right' href='?src=\ref[src];dec_timer=1;event=\ref[EC]'>-</A>"
-			html +=   "<A align='right' href='?src=\ref[src];inc_timer=1;event=\ref[EC]'>+</A>"
-			html +=   "<A align='right' href='?src=\ref[src];inc_timer=2;event=\ref[EC]'>++</A>"
+			html +=   "<A align='right' href='byond://?src=\ref[src];dec_timer=2;event=\ref[EC]'>--</A>"
+			html +=   "<A align='right' href='byond://?src=\ref[src];dec_timer=1;event=\ref[EC]'>-</A>"
+			html +=   "<A align='right' href='byond://?src=\ref[src];inc_timer=1;event=\ref[EC]'>+</A>"
+			html +=   "<A align='right' href='byond://?src=\ref[src];inc_timer=2;event=\ref[EC]'>++</A>"
 			html += "</td>"
 			html += "<td>"
-			html +=   "<A align='right' href='?src=\ref[src];pause=\ref[EC]'>[EC.delayed ? "Resume" : "Pause"]</A>"
+			html +=   "<A align='right' href='byond://?src=\ref[src];pause=\ref[EC]'>[EC.delayed ? "Resume" : "Pause"]</A>"
 			html += "</td>"
 			html += "<td>"
-			html +=   "<A align='right' href='?src=\ref[src];interval=\ref[EC]'>[EC.delay_modifier]</A>"
+			html +=   "<A align='right' href='byond://?src=\ref[src];interval=\ref[EC]'>[EC.delay_modifier]</A>"
 			html += "</td>"
 			html += "</tr>"
 		html += "</table>"
@@ -205,9 +205,9 @@ SUBSYSTEM_DEF(event)
 			var/datum/event_meta/EM = EC.next_event
 			html += "<tr>"
 			html += "<td>[severity_to_string[severity]]</td>"
-			html += "<td><A align='right' href='?src=\ref[src];select_event=\ref[EC]'>[EM ? EM.name : "Random"]</A></td>"
-			html += "<td><A align='right' href='?src=\ref[src];view_events=\ref[EC]'>View</A></td>"
-			html += "<td><A align='right' href='?src=\ref[src];clear=\ref[EC]'>Clear</A></td>"
+			html += "<td><A align='right' href='byond://?src=\ref[src];select_event=\ref[EC]'>[EM ? EM.name : "Random"]</A></td>"
+			html += "<td><A align='right' href='byond://?src=\ref[src];view_events=\ref[EC]'>View</A></td>"
+			html += "<td><A align='right' href='byond://?src=\ref[src];clear=\ref[EC]'>Clear</A></td>"
 			html += "</tr>"
 		html += "</table>"
 		html += "</div>"
@@ -228,7 +228,7 @@ SUBSYSTEM_DEF(event)
 			html += "<td>[EM.name]</td>"
 			html += "<td>[worldtime2stationtime(ends_at)]</td>"
 			html += "<td>[ends_in]</td>"
-			html += "<td><A align='right' href='?src=\ref[src];stop=\ref[E]'>Stop</A></td>"
+			html += "<td><A align='right' href='byond://?src=\ref[src];stop=\ref[E]'>Stop</A></td>"
 			html += "</tr>"
 		html += "</table>"
 		html += "</div>"
diff --git a/code/controllers/subsystems/initialization/codex.dm b/code/controllers/subsystems/initialization/codex.dm
index 7b81fd7e33d..208a53347ab 100644
--- a/code/controllers/subsystems/initialization/codex.dm
+++ b/code/controllers/subsystems/initialization/codex.dm
@@ -59,7 +59,7 @@ SUBSYSTEM_DEF(codex)
 		var/datum/codex_entry/linked_entry = get_entry_by_string(key)
 		var/replacement = linkRegex.group[4]
 		if(linked_entry)
-			replacement = "<a href='?src=\ref[SScodex];show_examined_info=\ref[linked_entry];show_to=\ref[viewer]'>[replacement]</a>"
+			replacement = "<a href='byond://?src=\ref[SScodex];show_examined_info=\ref[linked_entry];show_to=\ref[viewer]'>[replacement]</a>"
 		string = replacetextEx(string, linkRegex.match, replacement)
 	return string
 
diff --git a/code/controllers/subsystems/vote.dm b/code/controllers/subsystems/vote.dm
index 0c69d7d1c24..4e6acafd3f0 100644
--- a/code/controllers/subsystems/vote.dm
+++ b/code/controllers/subsystems/vote.dm
@@ -92,12 +92,12 @@ SUBSYSTEM_DEF(vote)
 	if(active_vote)
 		. += active_vote.interface(C.mob)
 		if(admin)
-			. += "(<a href='?src=\ref[src];cancel=1'>Cancel Vote</a>) "
+			. += "(<a href='byond://?src=\ref[src];cancel=1'>Cancel Vote</a>) "
 	else
 		. += "<h2>Start a vote:</h2><hr><ul>"
 		for(var/vote_type in vote_prototypes)
 			var/datum/vote/vote_datum = vote_prototypes[vote_type]
-			. += "<li><a href='?src=\ref[src];vote=\ref[vote_datum.type]'>"
+			. += "<li><a href='byond://?src=\ref[src];vote=\ref[vote_datum.type]'>"
 			if(vote_datum.can_run(C.mob))
 				. += "[capitalize(vote_datum.name)]"
 			else
@@ -105,11 +105,11 @@ SUBSYSTEM_DEF(vote)
 			. += "</a>"
 			var/toggle = vote_datum.check_toggle()
 			if(admin && toggle)
-				. += "\t(<a href='?src=\ref[src];toggle=1;vote=\ref[vote_datum.type]'>toggle; currently [toggle]</a>)"
+				. += "\t(<a href='byond://?src=\ref[src];toggle=1;vote=\ref[vote_datum.type]'>toggle; currently [toggle]</a>)"
 			. += "</li>"
 		. += "</ul><hr>"
 
-	. += "<a href='?src=\ref[src];close=1' style='position:absolute;right:50px'>Close</a></body></html>"
+	. += "<a href='byond://?src=\ref[src];close=1' style='position:absolute;right:50px'>Close</a></body></html>"
 	return JOINTEXT(.)
 
 /datum/controller/subsystem/vote/proc/show_panel(mob/user, force_open)
diff --git a/code/controllers/subsystems/zcopy.dm b/code/controllers/subsystems/zcopy.dm
index ec4fddd3395..5c9ccfbfcbb 100644
--- a/code/controllers/subsystems/zcopy.dm
+++ b/code/controllers/subsystems/zcopy.dm
@@ -846,7 +846,7 @@ SUBSYSTEM_DEF(zcopy)
 /datum/controller/subsystem/zcopy/proc/fmt_label(label, atom/target, vv = TRUE)
 	. = "\icon[target] <b>\[[label]\]</b> "
 	if (vv)
-		. += "(<a href='?_src_=vars;Vars=\ref[target]'>VV</a>) "
+		. += "(<a href='byond://?_src_=vars;Vars=\ref[target]'>VV</a>) "
 
 /datum/controller/subsystem/zcopy/proc/debug_fmt_planelist(list/things, list/out, turf/original)
 	if (things)
diff --git a/code/datums/communication/pray.dm b/code/datums/communication/pray.dm
index 20d3f42bff9..8ddca34025e 100644
--- a/code/datums/communication/pray.dm
+++ b/code/datums/communication/pray.dm
@@ -12,7 +12,7 @@
 		if(!M.client)
 			continue
 		if(M.client.holder && M.client.get_preference_value(/datum/client_preference/staff/show_chat_prayers) == PREF_SHOW)
-			receive_communication(communicator, M, "\[<A HREF='?_src_=holder;adminspawnprayreward=\ref[communicator]'>SC</a>\] \[<A HREF='?_src_=holder;narrateto=\ref[communicator]'>DN</a>\]<span class='notice'>[html_icon(cross)] <b>[SPAN_PURPLE("PRAY: ")][key_name(communicator, 1)]: </b>[message]</span>")
+			receive_communication(communicator, M, "\[<A HREF='byond://?_src_=holder;adminspawnprayreward=\ref[communicator]'>SC</a>\] \[<A HREF='byond://?_src_=holder;narrateto=\ref[communicator]'>DN</a>\]<span class='notice'>[html_icon(cross)] <b>[SPAN_PURPLE("PRAY: ")][key_name(communicator, 1)]: </b>[message]</span>")
 		else if(communicator == M) //Give it to ourselves
 			receive_communication(communicator, M, "<span class='notice'>[html_icon(cross)] <b>You send the prayer, \"[message]\" out into the heavens.</b></span>")
 
diff --git a/code/datums/extensions/multitool/circuitboards/buildtype_select.dm b/code/datums/extensions/multitool/circuitboards/buildtype_select.dm
index 6131a23371a..703d9c4f3f6 100644
--- a/code/datums/extensions/multitool/circuitboards/buildtype_select.dm
+++ b/code/datums/extensions/multitool/circuitboards/buildtype_select.dm
@@ -12,7 +12,7 @@
 		if(path == board.build_path)
 			dat += "<td><span class='good'>&#9724</span></td><td>[initial(thing.name)]</td>"
 		else
-			dat += "<td><span class='bad'>&#9724</span></td><td><a href='?src=\ref[src];choose=\ref[path]'>[initial(thing.name)]</a></td>"
+			dat += "<td><span class='bad'>&#9724</span></td><td><a href='byond://?src=\ref[src];choose=\ref[path]'>[initial(thing.name)]</a></td>"
 		dat += "</tr>"
 	dat += "</table>"
 	return JOINTEXT(dat)
diff --git a/code/datums/extensions/multitool/circuitboards/shuttle_console.dm b/code/datums/extensions/multitool/circuitboards/shuttle_console.dm
index d1e214bd6ba..9e267968246 100644
--- a/code/datums/extensions/multitool/circuitboards/shuttle_console.dm
+++ b/code/datums/extensions/multitool/circuitboards/shuttle_console.dm
@@ -5,7 +5,7 @@
 	var/obj/item/stock_parts/circuitboard/shuttle_console/board = holder
 	var/dat = list()
 	dat += "<b>Current Selected Shuttle:</b>  [board.shuttle_tag || "NONE"]<br>"
-	dat += "<a href='?src=\ref[src];sync=1'>Synchronize to current shuttle.</a>"
+	dat += "<a href='byond://?src=\ref[src];sync=1'>Synchronize to current shuttle.</a>"
 	return JOINTEXT(dat)
 
 /datum/extension/interactive/multitool/circuitboards/shuttle_console/on_topic(href, href_list, user)
diff --git a/code/datums/extensions/multitool/circuitboards/stationalert.dm b/code/datums/extensions/multitool/circuitboards/stationalert.dm
index 79757670e54..e3ec67a2024 100644
--- a/code/datums/extensions/multitool/circuitboards/stationalert.dm
+++ b/code/datums/extensions/multitool/circuitboards/stationalert.dm
@@ -6,9 +6,9 @@
 		. += "<tr>"
 		. += "<td>[AH.category]</td>"
 		if(AH in SA.alarm_handlers)
-			. += "<td><span class='good'>&#9724</span>Active</td><td><a href='?src=\ref[src];remove=\ref[AH]'>Inactivate</a></td>"
+			. += "<td><span class='good'>&#9724</span>Active</td><td><a href='byond://?src=\ref[src];remove=\ref[AH]'>Inactivate</a></td>"
 		else
-			. += "<td><span class='bad'>&#9724</span>Inactive</td><td><a href='?src=\ref[src];add=\ref[AH]'>Activate</a></td>"
+			. += "<td><span class='bad'>&#9724</span>Inactive</td><td><a href='byond://?src=\ref[src];add=\ref[AH]'>Activate</a></td>"
 		. += "</tr>"
 	. += "</table>"
 
diff --git a/code/datums/extensions/multitool/items/cable.dm b/code/datums/extensions/multitool/items/cable.dm
index c1684cf2472..f58fc823297 100644
--- a/code/datums/extensions/multitool/items/cable.dm
+++ b/code/datums/extensions/multitool/items/cable.dm
@@ -13,7 +13,7 @@
 		if(cable_coil.color == possible_cable_colours[cable_color])
 			. += "<td>Selected</td>"
 		else
-			. += "<td><a href='?src=\ref[src];select_color=[cable_color]'>Select</a></td>"
+			. += "<td><a href='byond://?src=\ref[src];select_color=[cable_color]'>Select</a></td>"
 		. += "</tr>"
 	. += "</table>"
 
diff --git a/code/datums/extensions/multitool/items/stock_parts_radio.dm b/code/datums/extensions/multitool/items/stock_parts_radio.dm
index d6489770648..ec0b51dc454 100644
--- a/code/datums/extensions/multitool/items/stock_parts_radio.dm
+++ b/code/datums/extensions/multitool/items/stock_parts_radio.dm
@@ -6,7 +6,7 @@
 	var/obj/item/stock_parts/radio/radio = holder
 	if(radio.status & PART_STAT_INSTALLED)
 		return STATUS_CLOSE
-	return ..()	
+	return ..()
 
 /datum/extension/interactive/multitool/radio/interact(obj/item/multitool/M, mob/user)
 	if(extension_status(user) != STATUS_INTERACTIVE)
@@ -34,15 +34,15 @@
 	var/obj/item/stock_parts/radio/radio = holder
 	var/list/dat = list()
 
-	dat += "<a href='?src=\ref[src];unlink=1'>Unlink Machine</a><br>"
+	dat += "<a href='byond://?src=\ref[src];unlink=1'>Unlink Machine</a><br>"
 	var/obj/machinery/actual_machine = machine && machine.resolve()
 	if(actual_machine && actual_machine.can_apply_preset_to(radio))
-		dat += "<a href='?src=\ref[src];stockreset=1'>Reset to Machine Defaults</a><br>"
+		dat += "<a href='byond://?src=\ref[src];stockreset=1'>Reset to Machine Defaults</a><br>"
 	dat += "<b>Configuration for \the [radio].</b><br>"
-	dat += "Frequency: <a href='?src=\ref[src];frequency=1'>[radio.frequency || "none"]</a><br>"
-	dat += "ID: <a href='?src=\ref[src];id_tag=1'>[radio.id_tag || "none"]</a><br>"
-	dat += "Filter: <a href='?src=\ref[src];filter=1'>[radio.filter || "none"]</a><br>"
-	dat += "Encryption key: <a href='?src=\ref[src];encryption=1'>[radio.encryption || "none"]</a><br>"
+	dat += "Frequency: <a href='byond://?src=\ref[src];frequency=1'>[radio.frequency || "none"]</a><br>"
+	dat += "ID: <a href='byond://?src=\ref[src];id_tag=1'>[radio.id_tag || "none"]</a><br>"
+	dat += "Filter: <a href='byond://?src=\ref[src];filter=1'>[radio.filter || "none"]</a><br>"
+	dat += "Encryption key: <a href='byond://?src=\ref[src];encryption=1'>[radio.encryption || "none"]</a><br>"
 	return JOINTEXT(dat)
 
 /datum/extension/interactive/multitool/radio/on_topic(href, href_list, user)
@@ -98,13 +98,13 @@
 	. += "<table>"
 	for(var/thing in selected_events)
 		. += "<tr>"
-		. += "<td><a href='?src=\ref[src];[table_tag]=1;remove=[thing]'>(-)</a></td>"
-		. += "<td><a href='?src=\ref[src];[table_tag]=1;rename=[thing]'>[thing]</a></td>"
+		. += "<td><a href='byond://?src=\ref[src];[table_tag]=1;remove=[thing]'>(-)</a></td>"
+		. += "<td><a href='byond://?src=\ref[src];[table_tag]=1;rename=[thing]'>[thing]</a></td>"
 		var/decl/public_access/variable = selected_events[thing]
-		. += "<td><a href='?src=\ref[src];[table_tag]=1;new_val=[thing]'>[variable.name]</a></td>"
-		. += "<td><a href='?src=\ref[src];[table_tag]=1;desc=\ref[variable]'>(?)</a></td>"
+		. += "<td><a href='byond://?src=\ref[src];[table_tag]=1;new_val=[thing]'>[variable.name]</a></td>"
+		. += "<td><a href='byond://?src=\ref[src];[table_tag]=1;desc=\ref[variable]'>(?)</a></td>"
 		. += "</tr>"
-	. += "<tr><td><a href='?src=\ref[src];[table_tag]=1;add=1'>(+)</a></td></tr>"
+	. += "<tr><td><a href='byond://?src=\ref[src];[table_tag]=1;add=1'>(+)</a></td></tr>"
 	. += "</table>"
 
 /datum/extension/interactive/multitool/radio/proc/event_list_topic(list/selected_events, list/valid_events, mob/user, href_list)
@@ -202,9 +202,9 @@
 
 	dat += "<b>Choose event:</b><br>"
 	if(radio.event)
-		dat += "<a href='?src=\ref[src];event=1;new_val=event'>[radio.event]</a>  (<a href='?src=\ref[src];event=1;desc=\ref[radio.event]'>?</a>)"
+		dat += "<a href='byond://?src=\ref[src];event=1;new_val=event'>[radio.event]</a>  (<a href='byond://?src=\ref[src];event=1;desc=\ref[radio.event]'>?</a>)"
 	else
-		dat += "<a href='?src=\ref[src];event=1;add=1'>(+)</a>"
+		dat += "<a href='byond://?src=\ref[src];event=1;add=1'>(+)</a>"
 	dat += "<br>"
 	dat += "<b>Transmit on event:</b><br>"
 	dat += event_list_to_selection_table("on_event", radio.transmit_on_event)
diff --git a/code/datums/extensions/multitool/multitool.dm b/code/datums/extensions/multitool/multitool.dm
index 648036313e4..08e98ebe7eb 100644
--- a/code/datums/extensions/multitool/multitool.dm
+++ b/code/datums/extensions/multitool/multitool.dm
@@ -25,7 +25,7 @@
 	. += "<b>Buffer Memory:</b><br>"
 	var/buffer_name = multitool.get_buffer_name()
 	if(buffer_name)
-		. += "[buffer_name] <a href='?src=\ref[src];send=\ref[multitool.buffer_object]'>Send</a> <a href='?src=\ref[src];purge=1'>Purge</a><br>"
+		. += "[buffer_name] <a href='byond://?src=\ref[src];send=\ref[multitool.buffer_object]'>Send</a> <a href='byond://?src=\ref[src];purge=1'>Purge</a><br>"
 	else
 		. += "No connection stored in the buffer."
 
diff --git a/code/datums/mind/memory.dm b/code/datums/mind/memory.dm
index 182a3772055..34dacf9ef8a 100644
--- a/code/datums/mind/memory.dm
+++ b/code/datums/mind/memory.dm
@@ -56,7 +56,7 @@
 		if(owner_name != last_owner_name)
 			output += "<B>[current.real_name]'s Memories</B><HR>"
 			last_owner_name = owner_name
-		output += "[M.memory] <a href='?src=\ref[src];remove_memory=\ref[M]'>\[Remove\]</a>"
+		output += "[M.memory] <a href='byond://?src=\ref[src];remove_memory=\ref[M]'>\[Remove\]</a>"
 
 	if(objectives.len > 0)
 		output += "<HR><B>Objectives:</B>"
diff --git a/code/datums/mind/mind.dm b/code/datums/mind/mind.dm
index d5886fc7f01..6102b20d187 100644
--- a/code/datums/mind/mind.dm
+++ b/code/datums/mind/mind.dm
@@ -112,7 +112,7 @@
 
 	var/out = "<B>[name]</B>[(current&&(current.real_name!=name))?" (as [current.real_name])":""]<br>"
 	out += "Mind currently owned by key: [key] [active?"(synced)":"(not synced)"]<br>"
-	out += "Assigned role: [assigned_role]. <a href='?src=\ref[src];role_edit=1'>Edit</a><br>"
+	out += "Assigned role: [assigned_role]. <a href='byond://?src=\ref[src];role_edit=1'>Edit</a><br>"
 	out += "<hr>"
 	out += "Factions and special roles:<br><table>"
 	var/list/all_antag_types = decls_repository.get_decls_of_subtype(/decl/special_role)
@@ -126,16 +126,16 @@
 		var/num = 1
 		for(var/datum/objective/O in objectives)
 			out += "<b>Objective #[num]:</b> [O.explanation_text] "
-			out += " <a href='?src=\ref[src];obj_delete=\ref[O]'>\[remove\]</a><br>"
+			out += " <a href='byond://?src=\ref[src];obj_delete=\ref[O]'>\[remove\]</a><br>"
 			num++
-		out += "<br><a href='?src=\ref[src];obj_announce=1'>\[announce objectives\]</a>"
+		out += "<br><a href='byond://?src=\ref[src];obj_announce=1'>\[announce objectives\]</a>"
 
 	else
 		out += "None."
-	out += "<br><a href='?src=\ref[src];obj_add=1'>\[add\]</a><br><br>"
+	out += "<br><a href='byond://?src=\ref[src];obj_add=1'>\[add\]</a><br><br>"
 
 	var/datum/goal/ambition/ambition = SSgoals.ambitions[src]
-	out += "<b>Ambitions:</b> [ambition ? ambition.description : "None"] <a href='?src=\ref[src];amb_edit=\ref[src]'>\[edit\]</a></br>"
+	out += "<b>Ambitions:</b> [ambition ? ambition.description : "None"] <a href='byond://?src=\ref[src];amb_edit=\ref[src]'>\[edit\]</a></br>"
 	show_browser(usr, out, "window=edit_memory[src]")
 
 /datum/mind/proc/get_goal_from_href(var/href)
diff --git a/code/datums/repositories/client.dm b/code/datums/repositories/client.dm
index 4217a4042a3..386fffcfc66 100644
--- a/code/datums/repositories/client.dm
+++ b/code/datums/repositories/client.dm
@@ -47,7 +47,7 @@ var/global/repository/client/client_repository = new()
 			return "[key]/([name]) (DC)"
 	if(check_if_offline && !client_by_ckey(ckey))
 		return "[key]/([name]) (DC)"
-	return pm_link ? "<a href='?priv_msg=[ref];ticket=\ref[ticket]'>[key]</a>/([name])[rank2text()]" : "[key]/([name])"
+	return pm_link ? "<a href='byond://?priv_msg=[ref];ticket=\ref[ticket]'>[key]</a>/([name])[rank2text()]" : "[key]/([name])"
 
 /datum/client_lite/proc/rank2text()
 	var/client/C = client_by_ckey(ckey)
diff --git a/code/datums/trading/trading_verbs.dm b/code/datums/trading/trading_verbs.dm
index d3273a8308c..f295335a420 100644
--- a/code/datums/trading/trading_verbs.dm
+++ b/code/datums/trading/trading_verbs.dm
@@ -7,7 +7,7 @@
 		to_chat(src, "<b>[hub.name]:</b>")
 		for(var/a in hub.traders)
 			var/datum/trader/T = a
-			to_chat(src, "[T.name] <a href='?_src_=vars;Vars=\ref[T]'>\ref[T]</a>")
+			to_chat(src, "[T.name] <a href='byond://?_src_=vars;Vars=\ref[T]'>\ref[T]</a>")
 
 /client/proc/add_trader()
 	set category = "Debug"
diff --git a/code/datums/traits/_traits.dm b/code/datums/traits/_traits.dm
index f406d262920..188cd77b882 100644
--- a/code/datums/traits/_traits.dm
+++ b/code/datums/traits/_traits.dm
@@ -200,7 +200,7 @@
 			break
 
 	if(istype(caller) && (ticked || caller.get_trait_total() + trait_cost <= get_config_value(/decl/config/num/max_character_traits)) && !incompatible_trait_taken)
-		result += "<a href='?src=\ref[caller];toggle_trait=\ref[src]'>[ticked ? "<font color='#E67300'>[name]</font>" : "[name]"] ([trait_cost])</a>"
+		result += "<a href='byond://?src=\ref[caller];toggle_trait=\ref[src]'>[ticked ? "<font color='#E67300'>[name]</font>" : "[name]"] ([trait_cost])</a>"
 	else
 		result += ticked ? "<font color='#E67300'>[name]</font>" : "[name]"
 
diff --git a/code/datums/vote/vote.dm b/code/datums/vote/vote.dm
index c15958c5aa9..18cff66756a 100644
--- a/code/datums/vote/vote.dm
+++ b/code/datums/vote/vote.dm
@@ -59,7 +59,7 @@
 	var/text = get_start_text()
 
 	log_vote(text)
-	to_world(SPAN_PURPLE("<b>[text]</b>\nType <b>vote</b> or click <a href='?src=\ref[SSvote];vote_panel=1'>here</a> to place your votes.\nYou have [round(time_set/10)] seconds to vote."))
+	to_world(SPAN_PURPLE("<b>[text]</b>\nType <b>vote</b> or click <a href='byond://?src=\ref[SSvote];vote_panel=1'>here</a> to place your votes.\nYou have [round(time_set/10)] seconds to vote."))
 	to_world(sound(pick(vote_start_sounds), repeat = 0, wait = 0, volume = 50, channel = sound_channels.vote_channel))
 
 /datum/vote/proc/get_start_text()
@@ -182,9 +182,9 @@
 		for(var/i = 1, i <= length(priorities), i++)
 			. += "<td align = 'center'>"
 			if(voted[user.ckey] && (voted[user.ckey][i] == j)) //We have this jth choice chosen at priority i.
-				. += "<b><a href='?src=\ref[src];choice=[j];priority=[i]'>[priorities[i]]</a></b>"
+				. += "<b><a href='byond://?src=\ref[src];choice=[j];priority=[i]'>[priorities[i]]</a></b>"
 			else
-				. += "<a href='?src=\ref[src];choice=[j];priority=[i]'>[priorities[i]]</a>"
+				. += "<a href='byond://?src=\ref[src];choice=[j];priority=[i]'>[priorities[i]]</a>"
 			. += "</td>"
 		. += "</td><td align = 'center'>[votepercent]</td>"
 		if (additional_text[choice])
diff --git a/code/datums/wires/wires.dm b/code/datums/wires/wires.dm
index 4a2c5e9112d..56b88e8f986 100644
--- a/code/datums/wires/wires.dm
+++ b/code/datums/wires/wires.dm
@@ -112,10 +112,10 @@ var/global/list/wireColourNames = list("darkred" = "dark red")
 		html += "<tr>"
 		html += "<td[row_options1]><font color='[colour_name]'>&#9724;</font>[capitalize(colour_name)]</td>"
 		html += "<td[row_options2]>"
-		html += "<A href='?src=\ref[src];action=1;cut=[colour]'>[IsColourCut(colour) ? "Mend" :  "Cut"]</A>"
-		html += " <A href='?src=\ref[src];action=1;pulse=[colour]'>Pulse</A>"
-		html += " <A href='?src=\ref[src];action=1;attach=[colour]'>[IsAttached(colour) ? "Detach" : "Attach"] Signaller</A>"
-		html += " <A href='?src=\ref[src];action=1;examine=[colour]'>Examine</A></td></tr>"
+		html += "<A href='byond://?src=\ref[src];action=1;cut=[colour]'>[IsColourCut(colour) ? "Mend" :  "Cut"]</A>"
+		html += " <A href='byond://?src=\ref[src];action=1;pulse=[colour]'>Pulse</A>"
+		html += " <A href='byond://?src=\ref[src];action=1;attach=[colour]'>[IsAttached(colour) ? "Detach" : "Attach"] Signaller</A>"
+		html += " <A href='byond://?src=\ref[src];action=1;examine=[colour]'>Examine</A></td></tr>"
 	html += "</table>"
 	html += "</div>"
 
diff --git a/code/game/antagonist/antagonist_panel.dm b/code/game/antagonist/antagonist_panel.dm
index c3f0c808c7e..f16e898af98 100644
--- a/code/game/antagonist/antagonist_panel.dm
+++ b/code/game/antagonist/antagonist_panel.dm
@@ -3,13 +3,13 @@
 	var/dat = "<tr><td><b>[name]:</b>"
 	var/extra = get_extra_panel_options(player)
 	if(is_antagonist(player))
-		dat += "<a href='?src=\ref[player];remove_antagonist=\ref[src]'>\[-\]</a>"
-		dat += "<a href='?src=\ref[player];equip_antagonist=\ref[src]'>\[equip\]</a>"
+		dat += "<a href='byond://?src=\ref[player];remove_antagonist=\ref[src]'>\[-\]</a>"
+		dat += "<a href='byond://?src=\ref[player];equip_antagonist=\ref[src]'>\[equip\]</a>"
 		if(starting_locations && starting_locations.len)
-			dat += "<a href='?src=\ref[player];move_antag_to_spawn=\ref[src]'>\[move to spawn\]</a>"
+			dat += "<a href='byond://?src=\ref[player];move_antag_to_spawn=\ref[src]'>\[move to spawn\]</a>"
 		if(extra) dat += "[extra]"
 	else
-		dat += "<a href='?src=\ref[player];add_antagonist=\ref[src]'>\[+\]</a>"
+		dat += "<a href='byond://?src=\ref[player];add_antagonist=\ref[src]'>\[+\]</a>"
 	dat += "</td></tr>"
 
 	return dat
@@ -27,13 +27,13 @@
 		var/mob/M = player.current
 		dat += "<tr>"
 		if(M)
-			dat += "<td><a href='?_src_=holder;adminplayeropts=\ref[M]'>[M.real_name]/([player.key])</a>"
+			dat += "<td><a href='byond://?_src_=holder;adminplayeropts=\ref[M]'>[M.real_name]/([player.key])</a>"
 			if(!M.client)
 				dat += " <i>(logged out)</i>"
 			if(M.stat == DEAD)
 				dat += " <b><font color='red'>(DEAD)</font></b>"
 			dat += "</td>"
-			dat += "<td>\[<A href='?src=\ref[caller];priv_msg=\ref[M]'>PM</A>\]\[<A href='?src=\ref[caller];show_special_roles=\ref[M]'>SR</A>\]</td>"
+			dat += "<td>\[<A href='byond://?src=\ref[caller];priv_msg=\ref[M]'>PM</A>\]\[<A href='byond://?src=\ref[caller];show_special_roles=\ref[M]'>SR</A>\]</td>"
 		else
 			dat += "<td><i>Mob not found/([player.key])!</i></td>"
 		dat += "</tr>"
@@ -47,7 +47,7 @@
 			while(!isturf(disk_loc))
 				if(ismob(disk_loc))
 					var/mob/M = disk_loc
-					dat += "carried by <a href='?src=\ref[caller];adminplayeropts=\ref[M]'>[M.real_name]</a> "
+					dat += "carried by <a href='byond://?src=\ref[caller];adminplayeropts=\ref[M]'>[M.real_name]</a> "
 				if(istype(disk_loc, /obj))
 					var/obj/O = disk_loc
 					dat += "in \a [O.name] "
diff --git a/code/game/machinery/_machines_base/machinery.dm b/code/game/machinery/_machines_base/machinery.dm
index e1d93c98d0a..135c4a4f381 100644
--- a/code/game/machinery/_machines_base/machinery.dm
+++ b/code/game/machinery/_machines_base/machinery.dm
@@ -419,12 +419,12 @@ Class Procs:
 
 	if((stat & NOPOWER))
 		if(interact_offline)
-			to_chat(user, "It is not receiving <a href ='?src=\ref[src];power_text=1'>power</a>.")
+			to_chat(user, "It is not receiving <a href='byond://?src=\ref[src];power_text=1'>power</a>.")
 		else
-			to_chat(user, "It is not receiving <a href ='?src=\ref[src];power_text=1'>power</a>, making it hard to interact with.")
+			to_chat(user, "It is not receiving <a href='byond://?src=\ref[src];power_text=1'>power</a>, making it hard to interact with.")
 
 	if(construct_state && construct_state.mechanics_info())
-		to_chat(user, "It can be <a href='?src=\ref[src];mechanics_text=1'>manipulated</a> using tools.")
+		to_chat(user, "It can be <a href='byond://?src=\ref[src];mechanics_text=1'>manipulated</a> using tools.")
 	var/list/missing = missing_parts()
 	if(missing)
 		var/list/parts = list()
diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm
index d09354e7bd3..78f73e8df9c 100644
--- a/code/game/machinery/ai_slipper.dm
+++ b/code/game/machinery/ai_slipper.dm
@@ -55,8 +55,8 @@
 	if(src.locked && (!issilicon(user)))
 		t += "<I>(Swipe ID card to unlock control panel.)</I><BR>"
 	else
-		t += text("Dispenser [] - <A href='?src=\ref[];toggleOn=1'>[]?</a><br>\n", src.disabled?"deactivated":"activated", src, src.disabled?"Enable":"Disable")
-		t += text("Uses Left: [uses]. <A href='?src=\ref[src];toggleUse=1'>Activate the dispenser?</A><br>\n")
+		t += text("Dispenser [] - <A href='byond://?src=\ref[];toggleOn=1'>[]?</a><br>\n", src.disabled?"deactivated":"activated", src, src.disabled?"Enable":"Disable")
+		t += text("Uses Left: [uses]. <A href='byond://?src=\ref[src];toggleUse=1'>Activate the dispenser?</A><br>\n")
 
 	show_browser(user, t, "window=computer;size=575x450")
 	onclose(user, "computer")
diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm
index 75221b20e6b..890d9653e03 100644
--- a/code/game/machinery/alarm.dm
+++ b/code/game/machinery/alarm.dm
@@ -949,31 +949,31 @@ FIRE ALARM
 		A = A.loc
 
 		if (A.fire)
-			d1 = text("<A href='?src=\ref[];reset=1'>Reset - Lockdown</A>", src)
+			d1 = text("<A href='byond://?src=\ref[];reset=1'>Reset - Lockdown</A>", src)
 		else
-			d1 = text("<A href='?src=\ref[];alarm=1'>Alarm - Lockdown</A>", src)
+			d1 = text("<A href='byond://?src=\ref[];alarm=1'>Alarm - Lockdown</A>", src)
 		if (src.timing)
-			d2 = text("<A href='?src=\ref[];time=0'>Stop Time Lock</A>", src)
+			d2 = text("<A href='byond://?src=\ref[];time=0'>Stop Time Lock</A>", src)
 		else
-			d2 = text("<A href='?src=\ref[];time=1'>Initiate Time Lock</A>", src)
+			d2 = text("<A href='byond://?src=\ref[];time=1'>Initiate Time Lock</A>", src)
 		var/second = round(src.time) % 60
 		var/minute = (round(src.time) - second) / 60
-		var/dat = "<HTML><HEAD></HEAD><BODY><TT><B>Fire alarm</B> [d1]\n<HR>The current alert level is <b>[security_state.current_security_level.name]</b><br><br>\nTimer System: [d2]<BR>\nTime Left: [(minute ? "[minute]:" : null)][second] <A href='?src=\ref[src];tp=-30'>-</A> <A href='?src=\ref[src];tp=-1'>-</A> <A href='?src=\ref[src];tp=1'>+</A> <A href='?src=\ref[src];tp=30'>+</A>\n</TT></BODY></HTML>"
+		var/dat = "<HTML><HEAD></HEAD><BODY><TT><B>Fire alarm</B> [d1]\n<HR>The current alert level is <b>[security_state.current_security_level.name]</b><br><br>\nTimer System: [d2]<BR>\nTime Left: [(minute ? "[minute]:" : null)][second] <A href='byond://?src=\ref[src];tp=-30'>-</A> <A href='byond://?src=\ref[src];tp=-1'>-</A> <A href='byond://?src=\ref[src];tp=1'>+</A> <A href='byond://?src=\ref[src];tp=30'>+</A>\n</TT></BODY></HTML>"
 		show_browser(user, dat, "window=firealarm")
 		onclose(user, "firealarm")
 	else
 		A = A.loc
 		if (A.fire)
-			d1 = text("<A href='?src=\ref[];reset=1'>[]</A>", src, stars("Reset - Lockdown"))
+			d1 = text("<A href='byond://?src=\ref[];reset=1'>[]</A>", src, stars("Reset - Lockdown"))
 		else
-			d1 = text("<A href='?src=\ref[];alarm=1'>[]</A>", src, stars("Alarm - Lockdown"))
+			d1 = text("<A href='byond://?src=\ref[];alarm=1'>[]</A>", src, stars("Alarm - Lockdown"))
 		if (src.timing)
-			d2 = text("<A href='?src=\ref[];time=0'>[]</A>", src, stars("Stop Time Lock"))
+			d2 = text("<A href='byond://?src=\ref[];time=0'>[]</A>", src, stars("Stop Time Lock"))
 		else
-			d2 = text("<A href='?src=\ref[];time=1'>[]</A>", src, stars("Initiate Time Lock"))
+			d2 = text("<A href='byond://?src=\ref[];time=1'>[]</A>", src, stars("Initiate Time Lock"))
 		var/second = round(src.time) % 60
 		var/minute = (round(src.time) - second) / 60
-		var/dat = "<HTML><HEAD></HEAD><BODY><TT><B>[stars("Fire alarm")]</B> [d1]\n<HR>The current security level is <b>[security_state.current_security_level.name]</b><br><br>\nTimer System: [d2]<BR>\nTime Left: [(minute ? text("[]:", minute) : null)][second] <A href='?src=\ref[src];tp=-30'>-</A> <A href='?src=\ref[src];tp=-1'>-</A> <A href='?src=\ref[src];tp=1'>+</A> <A href='?src=\ref[src];tp=30'>+</A>\n</TT></BODY></HTML>"
+		var/dat = "<HTML><HEAD></HEAD><BODY><TT><B>[stars("Fire alarm")]</B> [d1]\n<HR>The current security level is <b>[security_state.current_security_level.name]</b><br><br>\nTimer System: [d2]<BR>\nTime Left: [(minute ? text("[]:", minute) : null)][second] <A href='byond://?src=\ref[src];tp=-30'>-</A> <A href='byond://?src=\ref[src];tp=-1'>-</A> <A href='byond://?src=\ref[src];tp=1'>+</A> <A href='byond://?src=\ref[src];tp=30'>+</A>\n</TT></BODY></HTML>"
 		show_browser(user, dat, "window=firealarm")
 		onclose(user, "firealarm")
 	return
@@ -1058,30 +1058,30 @@ FIRE ALARM
 	if (ishuman(user) || isAI(user))
 
 		if (A.party)
-			d1 = text("<A href='?src=\ref[];reset=1'>No Party :(</A>", src)
+			d1 = text("<A href='byond://?src=\ref[];reset=1'>No Party :(</A>", src)
 		else
-			d1 = text("<A href='?src=\ref[];alarm=1'>PARTY!!!</A>", src)
+			d1 = text("<A href='byond://?src=\ref[];alarm=1'>PARTY!!!</A>", src)
 		if (timing)
-			d2 = text("<A href='?src=\ref[];time=0'>Stop Time Lock</A>", src)
+			d2 = text("<A href='byond://?src=\ref[];time=0'>Stop Time Lock</A>", src)
 		else
-			d2 = text("<A href='?src=\ref[];time=1'>Initiate Time Lock</A>", src)
+			d2 = text("<A href='byond://?src=\ref[];time=1'>Initiate Time Lock</A>", src)
 		var/second = time % 60
 		var/minute = (time - second) / 60
-		var/dat = text("<HTML><HEAD></HEAD><BODY><TT><B>Party Button</B> []\n<HR>\nTimer System: []<BR>\nTime Left: [][] <A href='?src=\ref[];tp=-30'>-</A> <A href='?src=\ref[];tp=-1'>-</A> <A href='?src=\ref[];tp=1'>+</A> <A href='?src=\ref[];tp=30'>+</A>\n</TT></BODY></HTML>", d1, d2, (minute ? text("[]:", minute) : null), second, src, src, src, src)
+		var/dat = text("<HTML><HEAD></HEAD><BODY><TT><B>Party Button</B> []\n<HR>\nTimer System: []<BR>\nTime Left: [][] <A href='byond://?src=\ref[];tp=-30'>-</A> <A href='byond://?src=\ref[];tp=-1'>-</A> <A href='byond://?src=\ref[];tp=1'>+</A> <A href='byond://?src=\ref[];tp=30'>+</A>\n</TT></BODY></HTML>", d1, d2, (minute ? text("[]:", minute) : null), second, src, src, src, src)
 		show_browser(user, dat, "window=partyalarm")
 		onclose(user, "partyalarm")
 	else
 		if (A.fire)
-			d1 = text("<A href='?src=\ref[];reset=1'>[]</A>", src, stars("No Party :("))
+			d1 = text("<A href='byond://?src=\ref[];reset=1'>[]</A>", src, stars("No Party :("))
 		else
-			d1 = text("<A href='?src=\ref[];alarm=1'>[]</A>", src, stars("PARTY!!!"))
+			d1 = text("<A href='byond://?src=\ref[];alarm=1'>[]</A>", src, stars("PARTY!!!"))
 		if (timing)
-			d2 = text("<A href='?src=\ref[];time=0'>[]</A>", src, stars("Stop Time Lock"))
+			d2 = text("<A href='byond://?src=\ref[];time=0'>[]</A>", src, stars("Stop Time Lock"))
 		else
-			d2 = text("<A href='?src=\ref[];time=1'>[]</A>", src, stars("Initiate Time Lock"))
+			d2 = text("<A href='byond://?src=\ref[];time=1'>[]</A>", src, stars("Initiate Time Lock"))
 		var/second = time % 60
 		var/minute = (time - second) / 60
-		var/dat = text("<HTML><HEAD></HEAD><BODY><TT><B>[]</B> []\n<HR>\nTimer System: []<BR>\nTime Left: [][] <A href='?src=\ref[];tp=-30'>-</A> <A href='?src=\ref[];tp=-1'>-</A> <A href='?src=\ref[];tp=1'>+</A> <A href='?src=\ref[];tp=30'>+</A>\n</TT></BODY></HTML>", stars("Party Button"), d1, d2, (minute ? text("[]:", minute) : null), second, src, src, src, src)
+		var/dat = text("<HTML><HEAD></HEAD><BODY><TT><B>[]</B> []\n<HR>\nTimer System: []<BR>\nTime Left: [][] <A href='byond://?src=\ref[];tp=-30'>-</A> <A href='byond://?src=\ref[];tp=-1'>-</A> <A href='byond://?src=\ref[];tp=1'>+</A> <A href='byond://?src=\ref[];tp=30'>+</A>\n</TT></BODY></HTML>", stars("Party Button"), d1, d2, (minute ? text("[]:", minute) : null), second, src, src, src, src)
 		show_browser(user, dat, "window=partyalarm")
 		onclose(user, "partyalarm")
 	return
diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm
index 0fd5d644fe5..072b89e9928 100644
--- a/code/game/machinery/computer/Operating.dm
+++ b/code/game/machinery/computer/Operating.dm
@@ -30,7 +30,7 @@
 
 	user.set_machine(src)
 	var/dat = "<HEAD><TITLE>Operating Computer</TITLE><META HTTP-EQUIV='Refresh' CONTENT='10'></HEAD><BODY>\n"
-	dat += "<A HREF='?src=\ref[user];mach_close=op'>Close</A><br><br>" //| <A HREF='?src=\ref[user];update=1'>Update</A>"
+	dat += "<A HREF='byond://?src=\ref[user];mach_close=op'>Close</A><br><br>" //| <A HREF='byond://?src=\ref[user];update=1'>Update</A>"
 	if(src.table && (src.table.check_victim()))
 		src.victim = src.table.victim
 		dat += {"
diff --git a/code/game/machinery/computer/arcade_orion.dm b/code/game/machinery/computer/arcade_orion.dm
index 412d5a7841b..a076d6efc4d 100644
--- a/code/game/machinery/computer/arcade_orion.dm
+++ b/code/game/machinery/computer/arcade_orion.dm
@@ -92,28 +92,28 @@
 	switch(view)
 		if(ORION_VIEW_MAIN)
 			if(event == ORION_TRAIL_START) //new game? New game.
-				dat = "<center><h1>Orion Trail[emagged ? ": Realism Edition" : ""]</h1><br>Learn how our ancestors got to Orion, and have fun in the process!</center><br><P ALIGN=Right><a href='?src=\ref[src];continue=1'>Start New Game</a></P>"
+				dat = "<center><h1>Orion Trail[emagged ? ": Realism Edition" : ""]</h1><br>Learn how our ancestors got to Orion, and have fun in the process!</center><br><P ALIGN=Right><a href='byond://?src=\ref[src];continue=1'>Start New Game</a></P>"
 				show_browser(user, dat, "window=arcade")
 				return
 			else
 				event_title = event
-				event_actions = "<a href='?src=\ref[src];continue=1'>Continue your journey</a><br>"
+				event_actions = "<a href='byond://?src=\ref[src];continue=1'>Continue your journey</a><br>"
 			switch(event)
 				if(ORION_TRAIL_GAMEOVER)
 					event_info = ""
-					event_actions = "<a href='?src=\ref[src];continue=1'>Start New Game</a><br>"
+					event_actions = "<a href='byond://?src=\ref[src];continue=1'>Start New Game</a><br>"
 				if(ORION_TRAIL_SPACEPORT)
 					event_title   += ": [stops[port]]"
 					event_desc     = "[stopblurbs[port]]"
 					event_info     = ""
 					if(port == 9)
-						event_actions = "<a href='?src=\ref[src];continue=1'>Return to the title screen!</a><br>"
+						event_actions = "<a href='byond://?src=\ref[src];continue=1'>Return to the title screen!</a><br>"
 					else
-						event_actions  = "<a href='?src=\ref[src];continue=1'>Shove off</a><br>"
-						event_actions += "<a href='?src=\ref[src];attack=1'>Raid Spaceport</a>"
+						event_actions  = "<a href='byond://?src=\ref[src];continue=1'>Shove off</a><br>"
+						event_actions += "<a href='byond://?src=\ref[src];attack=1'>Raid Spaceport</a>"
 				if(ORION_TRAIL_SPACEPORT_RAIDED)
 					event_title  += ": [stops[port]]"
-					event_actions = "<a href='?src=\ref[src];continue=1'>Shove off</a>"
+					event_actions = "<a href='byond://?src=\ref[src];continue=1'>Shove off</a>"
 				if(ORION_TRAIL_RAIDERS)
 					event_desc   = "You arm yourselves as you prepare to fight off the alien menace!"
 				if(ORION_TRAIL_DERELICT)
@@ -122,30 +122,30 @@
 					event_desc = "A disease has spread amoungst your crew!"
 				if(ORION_TRAIL_FLUX)
 					event_desc = "You've entered a turbulent region. Slowing down would be better for your ship but would cost more fuel."
-					event_actions  = "<a href='?src=\ref[src];continue=1;risky=25'>Continue as normal</a><BR>"
-					event_actions += "<a href='?src=\ref[src];continue=1;slow=1;'>Take it slow</a><BR>"
+					event_actions  = "<a href='byond://?src=\ref[src];continue=1;risky=25'>Continue as normal</a><BR>"
+					event_actions += "<a href='byond://?src=\ref[src];continue=1;slow=1;'>Take it slow</a><BR>"
 				if(ORION_TRAIL_MALFUNCTION)
 					event_info = ""
 					event_desc = "The ship's computers are malfunctioning! You can choose to fix it with a part or risk something going awry."
-					event_actions  = "<a href='?src=\ref[src];continue=1;risky=25'>Continue as normal</a><BR>"
+					event_actions  = "<a href='byond://?src=\ref[src];continue=1;risky=25'>Continue as normal</a><BR>"
 					if(supplies["3"] != 0)
-						event_actions += "<a href='?src=\ref[src];continue=1;fix=3'>Fix using a part.</a><BR>"
+						event_actions += "<a href='byond://?src=\ref[src];continue=1;fix=3'>Fix using a part.</a><BR>"
 				if(ORION_TRAIL_COLLISION)
 					event_info = ""
 					event_desc = "Something has hit your ship and breached the hull! You can choose to fix it with a part or risk something going awry."
-					event_actions  = "<a href='?src=\ref[src];continue=1;risky=25'>Continue as normal</a><BR>"
+					event_actions  = "<a href='byond://?src=\ref[src];continue=1;risky=25'>Continue as normal</a><BR>"
 					if(supplies["2"] != 0)
-						event_actions += "<a href='?src=\ref[src];continue=1;fix=2'>Fix using a part.</a><BR>"
+						event_actions += "<a href='byond://?src=\ref[src];continue=1;fix=2'>Fix using a part.</a><BR>"
 				if(ORION_TRAIL_BREAKDOWN)
 					event_info = ""
 					event_desc = "The ship's engines broke down! You can choose to fix it with a part or risk something going awry."
-					event_actions  = "<a href='?src=\ref[src];continue=1;risky=25'>Continue as normal</a><BR>"
+					event_actions  = "<a href='byond://?src=\ref[src];continue=1;risky=25'>Continue as normal</a><BR>"
 					if(supplies["1"] != 0)
-						event_actions += "<a href='?src=\ref[src];continue=1;fix=1'>Fix using a part.</a><BR>"
+						event_actions += "<a href='byond://?src=\ref[src];continue=1;fix=1'>Fix using a part.</a><BR>"
 				if(ORION_TRAIL_STUCK)
 					event_desc    = "You've ran out of fuel. Your only hope to survive is to get refueled by a passing ship, if there are any."
 					if(supplies["5"] == 0)
-						event_actions = "<a href='?src=\ref[src];continue=1;food=1'>Wait</a>"
+						event_actions = "<a href='byond://?src=\ref[src];continue=1;food=1'>Wait</a>"
 				if(ORION_TRAIL_CARP)
 					event_desc = "You've chanced upon a large carp migration! Known both for their delicious meat as well as their bite, you and your crew arm yourselves for a small hunting trip."
 				if(ORION_TRAIL_MUTINY)
@@ -159,18 +159,18 @@
 			dat += "<center>You have [supplies["6"]] cash.</center>"
 			for(var/i=1; i<6; i++)
 				var/amm = (i>3?10:1)
-				dat += "[supplies["[i]"]] [supply_name["[i]"]][event==ORION_TRAIL_SPACEPORT ? ", <a href='?src=\ref[src];buy=[i]'>buy [amm] for [supply_cost["[i]"]]T</a>" : ""]<BR>"
+				dat += "[supplies["[i]"]] [supply_name["[i]"]][event==ORION_TRAIL_SPACEPORT ? ", <a href='byond://?src=\ref[src];buy=[i]'>buy [amm] for [supply_cost["[i]"]]T</a>" : ""]<BR>"
 				if(supplies["[i]"] >= amm && event == ORION_TRAIL_SPACEPORT)
-					dat += "<a href='?src=\ref[src];sell=[i]'>sell [amm] for [supply_cost["[i]"]]T</a><br>"
+					dat += "<a href='byond://?src=\ref[src];sell=[i]'>sell [amm] for [supply_cost["[i]"]]T</a><br>"
 		if(ORION_VIEW_CREW)
 			dat = "<center><h1>Crew</h1>View the status of your crew.</center>"
 			for(var/i=1;i<=settlers.len;i++)
-				dat += "[settlers[i]] <a href='?src=\ref[src];kill=[i]'>Kill</a><br>"
+				dat += "[settlers[i]] <a href='byond://?src=\ref[src];kill=[i]'>Kill</a><br>"
 
 	dat += "<br><P ALIGN=Right>View:<BR>"
-	dat += "[view==ORION_VIEW_MAIN ? "" : "<a href='?src=\ref[src];continue=1'>"]Main[view==ORION_VIEW_MAIN ? "" : "</a>"]<BR>"
-	dat += "[view==ORION_VIEW_SUPPLIES ? "" : "<a href='?src=\ref[src];supplies=1'>"]Supplies[view==ORION_VIEW_SUPPLIES ? "" : "</a>"]<BR>"
-	dat += "[view==ORION_VIEW_CREW ? "" : "<a href='?src=\ref[src];crew=1'>"]Crew[view==ORION_VIEW_CREW ? "" : "</a>"]</P>"
+	dat += "[view==ORION_VIEW_MAIN ? "" : "<a href='byond://?src=\ref[src];continue=1'>"]Main[view==ORION_VIEW_MAIN ? "" : "</a>"]<BR>"
+	dat += "[view==ORION_VIEW_SUPPLIES ? "" : "<a href='byond://?src=\ref[src];supplies=1'>"]Supplies[view==ORION_VIEW_SUPPLIES ? "" : "</a>"]<BR>"
+	dat += "[view==ORION_VIEW_CREW ? "" : "<a href='byond://?src=\ref[src];crew=1'>"]Crew[view==ORION_VIEW_CREW ? "" : "</a>"]</P>"
 	show_browser(user, dat, "window=arcade")
 
 /obj/machinery/computer/arcade/orion_trail/OnTopic(user, href_list)
diff --git a/code/game/machinery/computer/area_atmos.dm b/code/game/machinery/computer/area_atmos.dm
index b210f749124..f287fbbc0b3 100644
--- a/code/game/machinery/computer/area_atmos.dm
+++ b/code/game/machinery/computer/area_atmos.dm
@@ -63,7 +63,7 @@
 		<body>
 			<center><h1>Area Air Control</h1></center>
 			<font color="red">[status]</font><br>
-			<a href="?src=\ref[src];scan=1">Scan</a>
+			<a href="byond://?src=\ref[src];scan=1">Scan</a>
 			<table border="1" width="90%">"}
 	for(var/obj/machinery/portable_atmospherics/powered/scrubber/huge/scrubber in connectedscrubbers)
 		dat += {"
@@ -74,8 +74,8 @@
 						Flow Rate: [round(scrubber.last_flow_rate,0.1)] L/s<br>
 					</td>
 					<td width="150">
-						<a class="green" href="?src=\ref[src];scrub=\ref[scrubber];toggle=1">Turn On</a>
-						<a class="red" href="?src=\ref[src];scrub=\ref[scrubber];toggle=0">Turn Off</a><br>
+						<a class="green" href="byond://?src=\ref[src];scrub=\ref[scrubber];toggle=1">Turn On</a>
+						<a class="red" href="byond://?src=\ref[src];scrub=\ref[scrubber];toggle=0">Turn Off</a><br>
 						Load: [round(scrubber.last_power_draw)] W
 					</td>
 				</tr>"}
diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm
index cde979fbef0..69f4e4de4ab 100644
--- a/code/game/machinery/computer/message.dm
+++ b/code/game/machinery/computer/message.dm
@@ -94,10 +94,10 @@
 	dat += "<center><h4><font color='blue'[message]</h5></center>"
 
 	if(auth)
-		dat += "<h4><dd><A href='?src=\ref[src];auth=1'>&#09;<font color='green'>\[Authenticated\]</font></a>&#09;/"
-		dat += " Server Power: <A href='?src=\ref[src];active=1'>[linked_server?.active ? "<font color='green'>\[On\]</font>":"<font color='red'>\[Off\]</font>"]</a></h4>"
+		dat += "<h4><dd><A href='byond://?src=\ref[src];auth=1'>&#09;<font color='green'>\[Authenticated\]</font></a>&#09;/"
+		dat += " Server Power: <A href='byond://?src=\ref[src];active=1'>[linked_server?.active ? "<font color='green'>\[On\]</font>":"<font color='red'>\[Off\]</font>"]</a></h4>"
 	else
-		dat += "<h4><dd><A href='?src=\ref[src];auth=1'>&#09;<font color='red'>\[Unauthenticated\]</font></a>&#09;/"
+		dat += "<h4><dd><A href='byond://?src=\ref[src];auth=1'>&#09;<font color='red'>\[Unauthenticated\]</font></a>&#09;/"
 		dat += " Server Power: <u>[linked_server?.active ? "<font color='green'>\[On\]</font>":"<font color='red'>\[Off\]</font>"]</u></h4>"
 
 	if(hacking || emag)
@@ -112,19 +112,19 @@
 		if(0)
 			//&#09; = TAB
 			var/i = 0
-			dat += "<dd><A href='?src=\ref[src];find=1'>&#09;[++i]. Link To A Server</a></dd>"
+			dat += "<dd><A href='byond://?src=\ref[src];find=1'>&#09;[++i]. Link To A Server</a></dd>"
 			if(auth)
 				if(!linked_server || (linked_server.stat & (NOPOWER|BROKEN)))
 					dat += "<dd><A>&#09;ERROR: Server not found!</A><br></dd>"
 				else
-					dat += "<dd><A href='?src=\ref[src];viewr=1'>&#09;[++i]. View Request Console Logs </a></br></dd>"
-					dat += "<dd><A href='?src=\ref[src];clearr=1'>&#09;[++i]. Clear Request Console Logs</a><br></dd>"
-					dat += "<dd><A href='?src=\ref[src];pass=1'>&#09;[++i]. Set Custom Key</a><br></dd>"
+					dat += "<dd><A href='byond://?src=\ref[src];viewr=1'>&#09;[++i]. View Request Console Logs </a></br></dd>"
+					dat += "<dd><A href='byond://?src=\ref[src];clearr=1'>&#09;[++i]. Clear Request Console Logs</a><br></dd>"
+					dat += "<dd><A href='byond://?src=\ref[src];pass=1'>&#09;[++i]. Set Custom Key</a><br></dd>"
 			else
 				dat += "<br><hr><dd><span class='notice'>Please authenticate with the server in order to show additional options.</span>"
 			if((isAI(user) || isrobot(user)) && (user.mind.assigned_special_role && user.mind.original == user))
 				//Malf/Traitor AIs can bruteforce into the system to gain the Key.
-				dat += "<dd><A href='?src=\ref[src];hack=1'><i><font color='Red'>*&@#. Bruteforce Key</font></i></font></a></dd>"
+				dat += "<dd><A href='byond://?src=\ref[src];hack=1'><i><font color='Red'>*&@#. Bruteforce Key</font></i></font></a></dd>"
 
 		//Hacking screen.
 		if(2)
@@ -182,7 +182,7 @@
 				var/id_auth = "Unauthenticated"					 - 15%
 				var/priority = "Normal"							 - 10%
 			*/
-			dat += "<center><A href='?src=\ref[src];back=1'>Back</a> - <A href='?src=\ref[src];refresh=1'>Refresh</center><hr>"
+			dat += "<center><A href='byond://?src=\ref[src];back=1'>Back</a> - <A href='byond://?src=\ref[src];refresh=1'>Refresh</center><hr>"
 			dat += {"<table border='1' width='100%'><tr><th width = '5%'>X</th><th width='15%'>Sending Dep.</th><th width='15%'>Receiving Dep.</th>
 			<th width='300px' word-wrap: break-word>Message</th><th width='15%'>Stamp</th><th width='15%'>ID Auth.</th><th width='15%'>Priority.</th></tr>"}
 			for(var/datum/data_rc_msg/rc in linked_server.rc_msgs)
@@ -191,7 +191,7 @@
 					break
 				// Del - Sender   - Recepient - Message
 				// X   - Al Green - Your Mom  - WHAT UP!?
-				dat += {"<tr><td width = '5%'><center><A href='?src=\ref[src];deleter=\ref[rc]' style='color: rgb(255,0,0)'>X</a></center></td><td width='15%'>[rc.send_dpt]</td>
+				dat += {"<tr><td width = '5%'><center><A href='byond://?src=\ref[src];deleter=\ref[rc]' style='color: rgb(255,0,0)'>X</a></center></td><td width='15%'>[rc.send_dpt]</td>
 				<td width='15%'>[rc.rec_dpt]</td><td width='300px'>[rc.message]</td><td width='15%'>[rc.stamp]</td><td width='15%'>[rc.id_auth]</td><td width='15%'>[rc.priority]</td></tr>"}
 			dat += "</table>"
 
diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm
index 2ba58369745..84a1b64504f 100644
--- a/code/game/machinery/computer/prisoner.dm
+++ b/code/game/machinery/computer/prisoner.dm
@@ -17,7 +17,7 @@
 	var/dat
 	dat += "<B>Prisoner Implant Manager System</B><BR>"
 	if(screen == 0)
-		dat += "<HR><A href='?src=\ref[src];lock=1'>Unlock Console</A>"
+		dat += "<HR><A href='byond://?src=\ref[src];lock=1'>Unlock Console</A>"
 	else if(screen == 1)
 		dat += "<HR>Chemical Implants<BR>"
 		var/turf/Tr = null
@@ -26,9 +26,9 @@
 			if((Tr) && !LEVELS_ARE_Z_CONNECTED(Tr.z, src.z))	continue // Out of range
 			if(!C.implanted) continue
 			dat += "[C.imp_in.name] | Remaining Units: [C.reagents.total_volume] | Inject: "
-			dat += "<A href='?src=\ref[src];inject1=\ref[C]'>(<font color=red>(1)</font>)</A>"
-			dat += "<A href='?src=\ref[src];inject5=\ref[C]'>(<font color=red>(5)</font>)</A>"
-			dat += "<A href='?src=\ref[src];inject10=\ref[C]'>(<font color=red>(10)</font>)</A><BR>"
+			dat += "<A href='byond://?src=\ref[src];inject1=\ref[C]'>(<font color=red>(1)</font>)</A>"
+			dat += "<A href='byond://?src=\ref[src];inject5=\ref[C]'>(<font color=red>(5)</font>)</A>"
+			dat += "<A href='byond://?src=\ref[src];inject10=\ref[C]'>(<font color=red>(10)</font>)</A><BR>"
 			dat += "********************************<BR>"
 		dat += "<HR>Tracking Implants<BR>"
 		for(var/obj/item/implant/tracking/T in global.tracking_implants)
@@ -43,9 +43,9 @@
 			if(T.malfunction)
 				loc_display = pick(teleportlocs)
 			dat += "ID: [T.id] | Location: [loc_display]<BR>"
-			dat += "<A href='?src=\ref[src];warn=\ref[T]'>(<font color=red><i>Message Holder</i></font>)</A> |<BR>"
+			dat += "<A href='byond://?src=\ref[src];warn=\ref[T]'>(<font color=red><i>Message Holder</i></font>)</A> |<BR>"
 			dat += "********************************<BR>"
-		dat += "<HR><A href='?src=\ref[src];lock=1'>Lock Console</A>"
+		dat += "<HR><A href='byond://?src=\ref[src];lock=1'>Lock Console</A>"
 
 	show_browser(user, dat, "window=computer;size=400x500")
 	onclose(user, "computer")
diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm
index 3743f5a6a78..f76288b60c9 100644
--- a/code/game/machinery/cryopod.dm
+++ b/code/game/machinery/cryopod.dm
@@ -52,11 +52,11 @@
 
 	dat += "<hr/><br/><b>[storage_name]</b><br/>"
 	dat += "<i>Welcome, [user.real_name].</i><br/><br/><hr/>"
-	dat += "<a href='?src=\ref[src];log=1'>View storage log</a>.<br>"
+	dat += "<a href='byond://?src=\ref[src];log=1'>View storage log</a>.<br>"
 	if(allow_items)
-		dat += "<a href='?src=\ref[src];view=1'>View objects</a>.<br>"
-		dat += "<a href='?src=\ref[src];item=1'>Recover object</a>.<br>"
-		dat += "<a href='?src=\ref[src];allitems=1'>Recover all objects</a>.<br>"
+		dat += "<a href='byond://?src=\ref[src];view=1'>View objects</a>.<br>"
+		dat += "<a href='byond://?src=\ref[src];item=1'>Recover object</a>.<br>"
+		dat += "<a href='byond://?src=\ref[src];allitems=1'>Recover all objects</a>.<br>"
 
 	show_browser(user, dat, "window=cryopod_console")
 	onclose(user, "cryopod_console")
diff --git a/code/game/machinery/embedded_controller/airlock_controllers_dummy.dm b/code/game/machinery/embedded_controller/airlock_controllers_dummy.dm
index 019b728bb15..f187d98f09c 100644
--- a/code/game/machinery/embedded_controller/airlock_controllers_dummy.dm
+++ b/code/game/machinery/embedded_controller/airlock_controllers_dummy.dm
@@ -113,12 +113,12 @@
 	if(!istype(terminal))
 		return
 	. = list()
-	. += "ID tag: <a href='?src=\ref[src];input_tag=1'>[terminal.id_tag]</a><br>"
+	. += "ID tag: <a href='byond://?src=\ref[src];input_tag=1'>[terminal.id_tag]</a><br>"
 	. += "Nearby controllers:<br>"
 
 	var/list/controllers
 	for(var/obj/machinery/embedded_controller/radio/C in range(12, terminal))
-		LAZYADD(controllers, "<tr> <td>[C]</td><td><a href='?src=\ref[src];set_tag=\"[C.id_tag]\"'>[C.id_tag]</a></td> </tr>")
+		LAZYADD(controllers, "<tr> <td>[C]</td><td><a href='byond://?src=\ref[src];set_tag=\"[C.id_tag]\"'>[C.id_tag]</a></td> </tr>")
 
 	if(!LAZYLEN(controllers))
 		. += "None."
diff --git a/code/game/machinery/embedded_controller/embedded_controller_base.dm b/code/game/machinery/embedded_controller/embedded_controller_base.dm
index 3b4e2b99835..bfdbc356c44 100644
--- a/code/game/machinery/embedded_controller/embedded_controller_base.dm
+++ b/code/game/machinery/embedded_controller/embedded_controller_base.dm
@@ -153,8 +153,8 @@
 	if(!istype(holder))
 		return
 	. = list()
-	. += "ID tag: <a href='?src=\ref[src];set_tag=1'>[controller.id_tag]</a><br>"
-	. += "Frequency: <a href='?src=\ref[src];set_freq=1'>[controller.frequency]</a><br>"
+	. += "ID tag: <a href='byond://?src=\ref[src];set_tag=1'>[controller.id_tag]</a><br>"
+	. += "Frequency: <a href='byond://?src=\ref[src];set_freq=1'>[controller.frequency]</a><br>"
 	. += "Likely tags used by controller:<br>"
 	var/list/tags = controller.program?.get_receive_filters(TRUE)
 	if(!length(tags))
diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm
index a30ad3f20cb..07afed57749 100644
--- a/code/game/machinery/hologram.dm
+++ b/code/game/machinery/hologram.dm
@@ -110,7 +110,7 @@ var/global/list/holopads = list()
 					if(!AI.client)	continue
 					if (holopadType != HOLOPAD_LONG_RANGE && !SSmapping.are_connected_levels(AI.z, src.z))
 						continue
-					to_chat(AI, "<span class='info'>Your presence is requested at <a href='?src=\ref[AI];jumptoholopad=\ref[src]'>\the [holopad_id]</a>.</span>")
+					to_chat(AI, "<span class='info'>Your presence is requested at <a href='byond://?src=\ref[AI];jumptoholopad=\ref[src]'>\the [holopad_id]</a>.</span>")
 			else
 				to_chat(user, "<span class='notice'>A request for AI presence was already sent recently.</span>")
 		if("Holocomms")
diff --git a/code/game/machinery/kitchen/icecream.dm b/code/game/machinery/kitchen/icecream.dm
index aa6838f142a..6f534e3bf51 100644
--- a/code/game/machinery/kitchen/icecream.dm
+++ b/code/game/machinery/kitchen/icecream.dm
@@ -89,22 +89,22 @@
 	var/dat
 	dat += "<b>ICECREAM</b><br><div class='statusDisplay'>"
 	dat += "<b>Dispensing: [flavour_name] icecream </b> <br><br>"
-	dat += "<b>Vanilla icecream:</b> <a href='?src=\ref[src];select=[ICECREAM_VANILLA]'><b>Select</b></a> <a href='?src=\ref[src];make=[ICECREAM_VANILLA];amount=1'><b>Make</b></a> <a href='?src=\ref[src];make=[ICECREAM_VANILLA];amount=5'><b>x5</b></a> [product_types[ICECREAM_VANILLA]] scoops left. (Ingredients: milk, ice)<br>"
-	dat += "<b>Strawberry icecream:</b> <a href='?src=\ref[src];select=[ICECREAM_STRAWBERRY]'><b>Select</b></a> <a href='?src=\ref[src];make=[ICECREAM_STRAWBERRY];amount=1'><b>Make</b></a> <a href='?src=\ref[src];make=[ICECREAM_STRAWBERRY];amount=5'><b>x5</b></a> [product_types[ICECREAM_STRAWBERRY]] dollops left. (Ingredients: milk, ice, berry juice)<br>"
-	dat += "<b>Chocolate icecream:</b> <a href='?src=\ref[src];select=[ICECREAM_CHOCOLATE]'><b>Select</b></a> <a href='?src=\ref[src];make=[ICECREAM_CHOCOLATE];amount=1'><b>Make</b></a> <a href='?src=\ref[src];make=[ICECREAM_CHOCOLATE];amount=5'><b>x5</b></a> [product_types[ICECREAM_CHOCOLATE]] dollops left. (Ingredients: milk, ice, coco powder)<br>"
-	dat += "<b>Blue icecream:</b> <a href='?src=\ref[src];select=[ICECREAM_BLUE]'><b>Select</b></a> <a href='?src=\ref[src];make=[ICECREAM_BLUE];amount=1'><b>Make</b></a> <a href='?src=\ref[src];make=[ICECREAM_BLUE];amount=5'><b>x5</b></a> [product_types[ICECREAM_BLUE]] dollops left. (Ingredients: milk, ice, blue curacao)<br>"
-	dat += "<b>Cherry icecream:</b> <a href='?src=\ref[src];select=[ICECREAM_CHERRY]'><b>Select</b></a> <a href='?src=\ref[src];make=[ICECREAM_CHERRY];amount=1'><b>Make</b></a> <a href='?src=\ref[src];make=[ICECREAM_CHERRY];amount=5'><b>x5</b></a> [product_types[ICECREAM_CHERRY]] dollops left. (Ingredients: milk, ice, cherry jelly)<br>"
-	dat += "<b>Banana icecream:</b> <a href='?src=\ref[src];select=[ICECREAM_BANANA]'><b>Select</b></a> <a href='?src=\ref[src];make=[ICECREAM_BANANA];amount=1'><b>Make</b></a> <a href='?src=\ref[src];make=[ICECREAM_BANANA];amount=5'><b>x5</b></a> [product_types[ICECREAM_BANANA]] dollops left. (Ingredients: milk, ice, banana)<br></div>"
+	dat += "<b>Vanilla icecream:</b> <a href='byond://?src=\ref[src];select=[ICECREAM_VANILLA]'><b>Select</b></a> <a href='byond://?src=\ref[src];make=[ICECREAM_VANILLA];amount=1'><b>Make</b></a> <a href='byond://?src=\ref[src];make=[ICECREAM_VANILLA];amount=5'><b>x5</b></a> [product_types[ICECREAM_VANILLA]] scoops left. (Ingredients: milk, ice)<br>"
+	dat += "<b>Strawberry icecream:</b> <a href='byond://?src=\ref[src];select=[ICECREAM_STRAWBERRY]'><b>Select</b></a> <a href='byond://?src=\ref[src];make=[ICECREAM_STRAWBERRY];amount=1'><b>Make</b></a> <a href='byond://?src=\ref[src];make=[ICECREAM_STRAWBERRY];amount=5'><b>x5</b></a> [product_types[ICECREAM_STRAWBERRY]] dollops left. (Ingredients: milk, ice, berry juice)<br>"
+	dat += "<b>Chocolate icecream:</b> <a href='byond://?src=\ref[src];select=[ICECREAM_CHOCOLATE]'><b>Select</b></a> <a href='byond://?src=\ref[src];make=[ICECREAM_CHOCOLATE];amount=1'><b>Make</b></a> <a href='byond://?src=\ref[src];make=[ICECREAM_CHOCOLATE];amount=5'><b>x5</b></a> [product_types[ICECREAM_CHOCOLATE]] dollops left. (Ingredients: milk, ice, coco powder)<br>"
+	dat += "<b>Blue icecream:</b> <a href='byond://?src=\ref[src];select=[ICECREAM_BLUE]'><b>Select</b></a> <a href='byond://?src=\ref[src];make=[ICECREAM_BLUE];amount=1'><b>Make</b></a> <a href='byond://?src=\ref[src];make=[ICECREAM_BLUE];amount=5'><b>x5</b></a> [product_types[ICECREAM_BLUE]] dollops left. (Ingredients: milk, ice, blue curacao)<br>"
+	dat += "<b>Cherry icecream:</b> <a href='byond://?src=\ref[src];select=[ICECREAM_CHERRY]'><b>Select</b></a> <a href='byond://?src=\ref[src];make=[ICECREAM_CHERRY];amount=1'><b>Make</b></a> <a href='byond://?src=\ref[src];make=[ICECREAM_CHERRY];amount=5'><b>x5</b></a> [product_types[ICECREAM_CHERRY]] dollops left. (Ingredients: milk, ice, cherry jelly)<br>"
+	dat += "<b>Banana icecream:</b> <a href='byond://?src=\ref[src];select=[ICECREAM_BANANA]'><b>Select</b></a> <a href='byond://?src=\ref[src];make=[ICECREAM_BANANA];amount=1'><b>Make</b></a> <a href='byond://?src=\ref[src];make=[ICECREAM_BANANA];amount=5'><b>x5</b></a> [product_types[ICECREAM_BANANA]] dollops left. (Ingredients: milk, ice, banana)<br></div>"
 	dat += "<br><b>CONES</b><br><div class='statusDisplay'>"
-	dat += "<b>Waffle cones:</b> <a href='?src=\ref[src];cone=[CONE_WAFFLE]'><b>Dispense</b></a> <a href='?src=\ref[src];make=[CONE_WAFFLE];amount=1'><b>Make</b></a> <a href='?src=\ref[src];make=[CONE_WAFFLE];amount=5'><b>x5</b></a> [product_types[CONE_WAFFLE]] cones left. (Ingredients: flour, sugar)<br>"
-	dat += "<b>Chocolate cones:</b> <a href='?src=\ref[src];cone=[CONE_CHOC]'><b>Dispense</b></a> <a href='?src=\ref[src];make=[CONE_CHOC];amount=1'><b>Make</b></a> <a href='?src=\ref[src];make=[CONE_CHOC];amount=5'><b>x5</b></a> [product_types[CONE_CHOC]] cones left. (Ingredients: flour, sugar, coco powder)<br></div>"
+	dat += "<b>Waffle cones:</b> <a href='byond://?src=\ref[src];cone=[CONE_WAFFLE]'><b>Dispense</b></a> <a href='byond://?src=\ref[src];make=[CONE_WAFFLE];amount=1'><b>Make</b></a> <a href='byond://?src=\ref[src];make=[CONE_WAFFLE];amount=5'><b>x5</b></a> [product_types[CONE_WAFFLE]] cones left. (Ingredients: flour, sugar)<br>"
+	dat += "<b>Chocolate cones:</b> <a href='byond://?src=\ref[src];cone=[CONE_CHOC]'><b>Dispense</b></a> <a href='byond://?src=\ref[src];make=[CONE_CHOC];amount=1'><b>Make</b></a> <a href='byond://?src=\ref[src];make=[CONE_CHOC];amount=5'><b>x5</b></a> [product_types[CONE_CHOC]] cones left. (Ingredients: flour, sugar, coco powder)<br></div>"
 	dat += "<br>"
 	dat += "<b>VAT CONTENT</b><br>"
 	for(var/reagent_type in reagents?.reagent_volumes)
 		var/decl/material/R = GET_DECL(reagent_type)
 		dat += "[R.get_reagent_name(reagents)]: [REAGENT_VOLUME(reagents, reagent_type)]"
-		dat += "<A href='?src=\ref[src];disposeI=\ref[R]'>Purge</A><BR>"
-	dat += "<a href='?src=\ref[src];refresh=1'>Refresh</a> <a href='?src=\ref[src];close=1'>Close</a>"
+		dat += "<A href='byond://?src=\ref[src];disposeI=\ref[R]'>Purge</A><BR>"
+	dat += "<a href='byond://?src=\ref[src];refresh=1'>Refresh</a> <a href='byond://?src=\ref[src];close=1'>Close</a>"
 
 	var/datum/browser/popup = new(user, "icecreamvat","Icecream Vat", 700, 500, src)
 	popup.set_content(dat)
diff --git a/code/game/machinery/magnet.dm b/code/game/machinery/magnet.dm
index 0835c1e7b23..87285e91403 100644
--- a/code/game/machinery/magnet.dm
+++ b/code/game/machinery/magnet.dm
@@ -240,9 +240,9 @@ var/global/list/magnetic_modules = list()
 	var/dat = "<B>[title]</B><BR><BR>"
 	if(!autolink)
 		dat += {"
-		Frequency: <a href='?src=\ref[src];operation=setfreq'>[frequency]</a><br>
-		Code: <a href='?src=\ref[src];operation=setfreq'>[code]</a><br>
-		<a href='?src=\ref[src];operation=probe'>Probe Generators</a><br>
+		Frequency: <a href='byond://?src=\ref[src];operation=setfreq'>[frequency]</a><br>
+		Code: <a href='byond://?src=\ref[src];operation=setfreq'>[code]</a><br>
+		<a href='byond://?src=\ref[src];operation=probe'>Probe Generators</a><br>
 		"}
 
 	if(magnets.len >= 1)
@@ -251,11 +251,11 @@ var/global/list/magnetic_modules = list()
 		var/i = 0
 		for(var/obj/machinery/magnetic_module/M in magnets)
 			i++
-			dat += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;< \[[i]\] (<a href='?src=\ref[src];radio-op=togglepower'>[M.on ? "On":"Off"]</a>) | Electricity level: <a href='?src=\ref[src];radio-op=minuselec'>-</a> [M.electricity_level] <a href='?src=\ref[src];radio-op=pluselec'>+</a>; Magnetic field: <a href='?src=\ref[src];radio-op=minusmag'>-</a> [M.magnetic_field] <a href='?src=\ref[src];radio-op=plusmag'>+</a><br>"
+			dat += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;< \[[i]\] (<a href='byond://?src=\ref[src];radio-op=togglepower'>[M.on ? "On":"Off"]</a>) | Electricity level: <a href='byond://?src=\ref[src];radio-op=minuselec'>-</a> [M.electricity_level] <a href='byond://?src=\ref[src];radio-op=pluselec'>+</a>; Magnetic field: <a href='byond://?src=\ref[src];radio-op=minusmag'>-</a> [M.magnetic_field] <a href='byond://?src=\ref[src];radio-op=plusmag'>+</a><br>"
 
-	dat += "<br>Speed: <a href='?src=\ref[src];operation=minusspeed'>-</a> [speed] <a href='?src=\ref[src];operation=plusspeed'>+</a><br>"
-	dat += "Path: {<a href='?src=\ref[src];operation=setpath'>[path]</a>}<br>"
-	dat += "Moving: <a href='?src=\ref[src];operation=togglemoving'>[moving ? "Enabled":"Disabled"]</a>"
+	dat += "<br>Speed: <a href='byond://?src=\ref[src];operation=minusspeed'>-</a> [speed] <a href='byond://?src=\ref[src];operation=plusspeed'>+</a><br>"
+	dat += "Path: {<a href='byond://?src=\ref[src];operation=setpath'>[path]</a>}<br>"
+	dat += "Moving: <a href='byond://?src=\ref[src];operation=togglemoving'>[moving ? "Enabled":"Disabled"]</a>"
 
 
 	show_browser(user, dat, "window=magnet;size=400x500")
diff --git a/code/game/machinery/message_server.dm b/code/game/machinery/message_server.dm
index 513b398770d..ba19c1bb7b9 100644
--- a/code/game/machinery/message_server.dm
+++ b/code/game/machinery/message_server.dm
@@ -117,12 +117,12 @@ var/global/list/message_servers = list()
 			if(priority > 1)
 				playsound(Console.loc, 'sound/machines/chime.ogg', 80, 1)
 				Console.audible_message("[html_icon(Console)]<span class='warning'>\The [Console] announces: 'High priority message received from [sender]!'</span>", hearing_distance = 8)
-				Console.message_log += "<FONT color='red'>High Priority message from <A href='?src=\ref[Console];write=[sender]'>[sender]</A></FONT><BR>[authmsg]"
+				Console.message_log += "<FONT color='red'>High Priority message from <A href='byond://?src=\ref[Console];write=[sender]'>[sender]</A></FONT><BR>[authmsg]"
 			else
 				if(!Console.silent)
 					playsound(Console.loc, 'sound/machines/twobeep.ogg', 50, 1)
 					Console.audible_message("[html_icon(Console)]<span class='notice'>\The [Console] announces: 'Message received from [sender].'</span>", hearing_distance = 5)
-				Console.message_log += "<B>Message from <A href='?src=\ref[Console];write=[sender]'>[sender]</A></B><BR>[authmsg]"
+				Console.message_log += "<B>Message from <A href='byond://?src=\ref[Console];write=[sender]'>[sender]</A></B><BR>[authmsg]"
 			Console.set_light(2, 0.5)
 
 
diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm
index 609fa5d12d7..e23f3e5d4fc 100644
--- a/code/game/machinery/newscaster.dm
+++ b/code/game/machinery/newscaster.dm
@@ -211,22 +211,22 @@ var/global/list/allCasters = list() //Global list that will contain reference to
 			if(0)
 				dat += "Welcome to Newscasting Unit #[src.unit_no].<BR> Interface & News networks Operational."
 				if(news_network.wanted_issue)
-					dat+= "<HR><A href='?src=\ref[src];view_wanted=1'>Read Wanted Issue</A>"
-				dat+= "<HR><BR><A href='?src=\ref[src];create_channel=1'>Create Feed Channel</A>"
-				dat+= "<BR><A href='?src=\ref[src];view=1'>View Feed Channels</A>"
-				dat+= "<BR><A href='?src=\ref[src];create_feed_story=1'>Submit new Feed story</A>"
-				dat+= "<BR><A href='?src=\ref[src];menu_paper=1'>Print newspaper</A>"
-				dat+= "<BR><A href='?src=\ref[src];refresh=1'>Re-scan User</A>"
-				dat+= "<BR><BR><A href='?src=\ref[human_or_robot_user];mach_close=newscaster_main'>Exit</A>"
+					dat+= "<HR><A href='byond://?src=\ref[src];view_wanted=1'>Read Wanted Issue</A>"
+				dat+= "<HR><BR><A href='byond://?src=\ref[src];create_channel=1'>Create Feed Channel</A>"
+				dat+= "<BR><A href='byond://?src=\ref[src];view=1'>View Feed Channels</A>"
+				dat+= "<BR><A href='byond://?src=\ref[src];create_feed_story=1'>Submit new Feed story</A>"
+				dat+= "<BR><A href='byond://?src=\ref[src];menu_paper=1'>Print newspaper</A>"
+				dat+= "<BR><A href='byond://?src=\ref[src];refresh=1'>Re-scan User</A>"
+				dat+= "<BR><BR><A href='byond://?src=\ref[human_or_robot_user];mach_close=newscaster_main'>Exit</A>"
 				if(src.securityCaster)
 					var/wanted_already = 0
 					if(news_network.wanted_issue)
 						wanted_already = 1
 
 					dat+="<HR><B>Feed Security functions:</B><BR>"
-					dat+="<BR><A href='?src=\ref[src];menu_wanted=1'>[(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue</A>"
-					dat+="<BR><A href='?src=\ref[src];menu_censor_story=1'>Censor Feed Stories</A>"
-					dat+="<BR><A href='?src=\ref[src];menu_censor_channel=1'>Mark Feed Channel with [global.using_map.company_name] D-Notice</A>"
+					dat+="<BR><A href='byond://?src=\ref[src];menu_wanted=1'>[(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue</A>"
+					dat+="<BR><A href='byond://?src=\ref[src];menu_censor_story=1'>Censor Feed Stories</A>"
+					dat+="<BR><A href='byond://?src=\ref[src];menu_censor_channel=1'>Mark Feed Channel with [global.using_map.company_name] D-Notice</A>"
 				dat+="<BR><HR>The newscaster recognises you as: <FONT COLOR='green'>[src.scanned_user]</FONT>"
 			if(1)
 				dat+= "Local Feed Channels<HR>"
@@ -235,36 +235,36 @@ var/global/list/allCasters = list() //Global list that will contain reference to
 				else
 					for(var/datum/feed_channel/CHANNEL in news_network.network_channels)
 						if(CHANNEL.is_admin_channel)
-							dat+="<B><FONT style='BACKGROUND-COLOR: LightGreen '><A href='?src=\ref[src];show_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A></FONT></B><BR>"
+							dat+="<B><FONT style='BACKGROUND-COLOR: LightGreen '><A href='byond://?src=\ref[src];show_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A></FONT></B><BR>"
 						else
-							dat+="<B><A href='?src=\ref[src];show_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : null ]<BR></B>"
-				dat+="<BR><HR><A href='?src=\ref[src];refresh=1'>Refresh</A>"
-				dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Back</A>"
+							dat+="<B><A href='byond://?src=\ref[src];show_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : null ]<BR></B>"
+				dat+="<BR><HR><A href='byond://?src=\ref[src];refresh=1'>Refresh</A>"
+				dat+="<BR><A href='byond://?src=\ref[src];setScreen=[0]'>Back</A>"
 			if(2)
 				dat+="Creating new Feed Channel..."
-				dat+="<HR><B><A href='?src=\ref[src];set_channel_name=1'>Channel Name</A>:</B> [src.channel_name]<BR>"
+				dat+="<HR><B><A href='byond://?src=\ref[src];set_channel_name=1'>Channel Name</A>:</B> [src.channel_name]<BR>"
 				dat+="<B>Channel Author:</B> <FONT COLOR='green'>[src.scanned_user]</FONT><BR>"
-				dat+="<B><A href='?src=\ref[src];set_channel_lock=1'>Will Accept Public Feeds</A>:</B> [(src.c_locked) ? ("NO") : ("YES")]<BR><BR>"
-				dat+="<BR><A href='?src=\ref[src];submit_new_channel=1'>Submit</A><BR><BR><A href='?src=\ref[src];setScreen=[0]'>Cancel</A><BR>"
+				dat+="<B><A href='byond://?src=\ref[src];set_channel_lock=1'>Will Accept Public Feeds</A>:</B> [(src.c_locked) ? ("NO") : ("YES")]<BR><BR>"
+				dat+="<BR><A href='byond://?src=\ref[src];submit_new_channel=1'>Submit</A><BR><BR><A href='byond://?src=\ref[src];setScreen=[0]'>Cancel</A><BR>"
 			if(3)
 				dat+="Creating new Feed Message..."
-				dat+="<HR><B><A href='?src=\ref[src];set_channel_receiving=1'>Receiving Channel</A>:</B> [src.channel_name]<BR>" //MARK
+				dat+="<HR><B><A href='byond://?src=\ref[src];set_channel_receiving=1'>Receiving Channel</A>:</B> [src.channel_name]<BR>" //MARK
 				dat+="<B>Message Author:</B> <FONT COLOR='green'>[src.scanned_user]</FONT><BR>"
-				dat+="<B><A href='?src=\ref[src];set_new_message=1'>Message Body</A>:</B> [src.msg] <BR>"
+				dat+="<B><A href='byond://?src=\ref[src];set_new_message=1'>Message Body</A>:</B> [src.msg] <BR>"
 				dat+="<B>Photo</B>: "
 				if(photo_data && photo_data.photo)
 					send_rsc(usr, photo_data.photo.img, "tmp_photo.png")
 					dat+="<BR><img src='tmp_photo.png' width = '180'>"
-					dat+="<BR><B><A href='?src=\ref[src];set_attachment=1'>Delete Photo</A></B></BR>"
+					dat+="<BR><B><A href='byond://?src=\ref[src];set_attachment=1'>Delete Photo</A></B></BR>"
 				else
-					dat+="<A href='?src=\ref[src];set_attachment=1'>Attach Photo</A>"
-				dat+="<BR><BR><A href='?src=\ref[src];submit_new_message=1'>Submit</A><BR><BR><A href='?src=\ref[src];setScreen=[0]'>Cancel</A><BR>"
+					dat+="<A href='byond://?src=\ref[src];set_attachment=1'>Attach Photo</A>"
+				dat+="<BR><BR><A href='byond://?src=\ref[src];submit_new_message=1'>Submit</A><BR><BR><A href='byond://?src=\ref[src];setScreen=[0]'>Cancel</A><BR>"
 			if(4)
 				dat+="Feed story successfully submitted to [src.channel_name].<BR><BR>"
-				dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Return</A><BR>"
+				dat+="<BR><A href='byond://?src=\ref[src];setScreen=[0]'>Return</A><BR>"
 			if(5)
 				dat+="Feed Channel [src.channel_name] created successfully.<BR><BR>"
-				dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Return</A><BR>"
+				dat+="<BR><A href='byond://?src=\ref[src];setScreen=[0]'>Return</A><BR>"
 			if(6)
 				dat+="<B><FONT COLOR='maroon'>ERROR: Could not submit Feed story to Network.</B></FONT><HR><BR>"
 				if(src.channel_name=="")
@@ -274,7 +274,7 @@ var/global/list/allCasters = list() //Global list that will contain reference to
 				if(src.msg == "" || src.msg == "\[REDACTED\]")
 					dat+="<FONT COLOR='maroon'>Invalid message body.</FONT><BR>"
 
-				dat+="<BR><A href='?src=\ref[src];setScreen=[3]'>Return</A><BR>"
+				dat+="<BR><A href='byond://?src=\ref[src];setScreen=[3]'>Return</A><BR>"
 			if(7)
 				dat+="<B><FONT COLOR='maroon'>ERROR: Could not submit Feed Channel to Network.</B></FONT><HR><BR>"
 				var/list/existing_authors = list()
@@ -296,7 +296,7 @@ var/global/list/allCasters = list() //Global list that will contain reference to
 					dat+="<FONT COLOR='maroon'>Channel name already in use.</FONT><BR>"
 				if(src.scanned_user=="Unknown")
 					dat+="<FONT COLOR='maroon'>Channel author unverified.</FONT><BR>"
-				dat+="<BR><A href='?src=\ref[src];setScreen=[2]'>Return</A><BR>"
+				dat+="<BR><A href='byond://?src=\ref[src];setScreen=[2]'>Return</A><BR>"
 			if(8)
 				var/total_num=length(news_network.network_channels)
 				var/active_num=total_num
@@ -308,8 +308,8 @@ var/global/list/allCasters = list() //Global list that will contain reference to
 						active_num--
 				dat+="Network currently serves a total of [total_num] Feed channels, [active_num] of which are active, and a total of [message_num] Feed Stories." //TODO: CONTINUE
 				dat+="<BR><BR><B>Liquid Paper remaining:</B> [(src.paper_remaining) *100 ] cm^3"
-				dat+="<BR><BR><A href='?src=\ref[src];print_paper=[0]'>Print Paper</A>"
-				dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Cancel</A>"
+				dat+="<BR><BR><A href='byond://?src=\ref[src];print_paper=[0]'>Print Paper</A>"
+				dat+="<BR><A href='byond://?src=\ref[src];setScreen=[0]'>Cancel</A>"
 			if(9)
 				dat+="<B>[src.viewing_channel.channel_name]: </B><FONT SIZE=1>\[created by: <FONT COLOR='maroon'>[src.viewing_channel.author]</FONT>\] \[views: <FONT COLOR='maroon'>[++src.viewing_channel.views]</FONT>\]</FONT><HR>"
 				if(src.viewing_channel.censored)
@@ -331,8 +331,8 @@ var/global/list/allCasters = list() //Global list that will contain reference to
 									dat+="<FONT SIZE=1><B>[MESSAGE.caption]</B></FONT><BR>"
 								dat+="<BR>"
 							dat+="<FONT SIZE=1>\[Story by <FONT COLOR='maroon'>[MESSAGE.author] - [MESSAGE.time_stamp]</FONT>\]</FONT><BR>"
-				dat+="<BR><HR><A href='?src=\ref[src];refresh=1'>Refresh</A>"
-				dat+="<BR><A href='?src=\ref[src];setScreen=[1]'>Back</A>"
+				dat+="<BR><HR><A href='byond://?src=\ref[src];refresh=1'>Refresh</A>"
+				dat+="<BR><A href='byond://?src=\ref[src];setScreen=[1]'>Back</A>"
 			if(10)
 				dat+="<B>[global.using_map.company_name] Feed Censorship Tool</B><BR>"
 				dat+="<FONT SIZE=1>NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible.<BR>"
@@ -342,8 +342,8 @@ var/global/list/allCasters = list() //Global list that will contain reference to
 					dat+="<I>No feed channels found active...</I><BR>"
 				else
 					for(var/datum/feed_channel/CHANNEL in news_network.network_channels)
-						dat+="<A href='?src=\ref[src];pick_censor_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : null ]<BR>"
-				dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Cancel</A>"
+						dat+="<A href='byond://?src=\ref[src];pick_censor_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : null ]<BR>"
+				dat+="<BR><A href='byond://?src=\ref[src];setScreen=[0]'>Cancel</A>"
 			if(11)
 				dat+="<B>[global.using_map.company_name] D-Notice Handler</B><HR>"
 				dat+="<FONT SIZE=1>A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the [station_name()]'s"
@@ -353,12 +353,12 @@ var/global/list/allCasters = list() //Global list that will contain reference to
 					dat+="<I>No feed channels found active...</I><BR>"
 				else
 					for(var/datum/feed_channel/CHANNEL in news_network.network_channels)
-						dat+="<A href='?src=\ref[src];pick_d_notice=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : null ]<BR>"
+						dat+="<A href='byond://?src=\ref[src];pick_d_notice=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : null ]<BR>"
 
-				dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Back</A>"
+				dat+="<BR><A href='byond://?src=\ref[src];setScreen=[0]'>Back</A>"
 			if(12)
 				dat+="<B>[src.viewing_channel.channel_name]: </B><FONT SIZE=1>\[ created by: <FONT COLOR='maroon'>[src.viewing_channel.author]</FONT> \]</FONT><BR>"
-				dat+="<FONT SIZE=2><A href='?src=\ref[src];censor_channel_author=\ref[src.viewing_channel]'>[(src.viewing_channel.author=="\[REDACTED\]") ? ("Undo Author censorship") : ("Censor channel Author")]</A></FONT><HR>"
+				dat+="<FONT SIZE=2><A href='byond://?src=\ref[src];censor_channel_author=\ref[src.viewing_channel]'>[(src.viewing_channel.author=="\[REDACTED\]") ? ("Undo Author censorship") : ("Censor channel Author")]</A></FONT><HR>"
 
 
 				if( !length(src.viewing_channel.messages) )
@@ -366,11 +366,11 @@ var/global/list/allCasters = list() //Global list that will contain reference to
 				else
 					for(var/datum/feed_message/MESSAGE in src.viewing_channel.messages)
 						dat+="-[MESSAGE.body] <BR><FONT SIZE=1>\[[MESSAGE.message_type] by <FONT COLOR='maroon'>[MESSAGE.author]</FONT>\]</FONT><BR>"
-						dat+="<FONT SIZE=2><A href='?src=\ref[src];censor_channel_story_body=\ref[MESSAGE]'>[(MESSAGE.body == "\[REDACTED\]") ? ("Undo story censorship") : ("Censor story")]</A>  -  <A href='?src=\ref[src];censor_channel_story_author=\ref[MESSAGE]'>[(MESSAGE.author == "\[REDACTED\]") ? ("Undo Author Censorship") : ("Censor message Author")]</A></FONT><BR>"
-				dat+="<BR><A href='?src=\ref[src];setScreen=[10]'>Back</A>"
+						dat+="<FONT SIZE=2><A href='byond://?src=\ref[src];censor_channel_story_body=\ref[MESSAGE]'>[(MESSAGE.body == "\[REDACTED\]") ? ("Undo story censorship") : ("Censor story")]</A>  -  <A href='byond://?src=\ref[src];censor_channel_story_author=\ref[MESSAGE]'>[(MESSAGE.author == "\[REDACTED\]") ? ("Undo Author Censorship") : ("Censor message Author")]</A></FONT><BR>"
+				dat+="<BR><A href='byond://?src=\ref[src];setScreen=[10]'>Back</A>"
 			if(13)
 				dat+="<B>[src.viewing_channel.channel_name]: </B><FONT SIZE=1>\[ created by: <FONT COLOR='maroon'>[src.viewing_channel.author]</FONT> \]</FONT><BR>"
-				dat+="Channel messages listed below. If you deem them dangerous to the [station_name()], you can <A href='?src=\ref[src];toggle_d_notice=\ref[src.viewing_channel]'>Bestow a D-Notice upon the channel</A>.<HR>"
+				dat+="Channel messages listed below. If you deem them dangerous to the [station_name()], you can <A href='byond://?src=\ref[src];toggle_d_notice=\ref[src.viewing_channel]'>Bestow a D-Notice upon the channel</A>.<HR>"
 				if(src.viewing_channel.censored)
 					dat+="<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the [station_name()], and marked with a [global.using_map.company_name] D-Notice.<BR>"
 					dat+="No further feed story additions are allowed while the D-Notice is in effect.<BR><BR>"
@@ -381,7 +381,7 @@ var/global/list/allCasters = list() //Global list that will contain reference to
 						for(var/datum/feed_message/MESSAGE in src.viewing_channel.messages)
 							dat+="-[MESSAGE.body] <BR><FONT SIZE=1>\[[MESSAGE.message_type] by <FONT COLOR='maroon'>[MESSAGE.author]</FONT>\]</FONT><BR>"
 
-				dat+="<BR><A href='?src=\ref[src];setScreen=[11]'>Back</A>"
+				dat+="<BR><A href='byond://?src=\ref[src];setScreen=[11]'>Back</A>"
 			if(14)
 				dat+="<B>Wanted Issue Handler:</B>"
 				var/wanted_already = 0
@@ -393,26 +393,26 @@ var/global/list/allCasters = list() //Global list that will contain reference to
 				if(wanted_already)
 					dat+="<FONT SIZE=2><BR><I>A wanted issue is already in Feed Circulation. You can edit or cancel it below.</FONT></I>"
 				dat+="<HR>"
-				dat+="<A href='?src=\ref[src];set_wanted_name=1'>Criminal Name</A>: [src.channel_name] <BR>"
-				dat+="<A href='?src=\ref[src];set_wanted_desc=1'>Description</A>: [src.msg] <BR>"
+				dat+="<A href='byond://?src=\ref[src];set_wanted_name=1'>Criminal Name</A>: [src.channel_name] <BR>"
+				dat+="<A href='byond://?src=\ref[src];set_wanted_desc=1'>Description</A>: [src.msg] <BR>"
 				dat+="<B>Photo</B>: "
 				if(photo_data && photo_data.photo)
 					send_rsc(usr, photo_data.photo.img, "tmp_photo.png")
 					dat+="<BR><img src='tmp_photo.png' width = '180'>"
-					dat+="<BR><B><A href='?src=\ref[src];set_attachment=1'>Delete Photo</A></B></BR>"
+					dat+="<BR><B><A href='byond://?src=\ref[src];set_attachment=1'>Delete Photo</A></B></BR>"
 				else
-					dat+="<A href='?src=\ref[src];set_attachment=1'>Attach Photo</A><BR>"
+					dat+="<A href='byond://?src=\ref[src];set_attachment=1'>Attach Photo</A><BR>"
 				if(wanted_already)
 					dat+="<B>Wanted Issue created by:</B><FONT COLOR='green'> [news_network.wanted_issue.backup_author]</FONT><BR>"
 				else
 					dat+="<B>Wanted Issue will be created under prosecutor:</B><FONT COLOR='green'> [src.scanned_user]</FONT><BR>"
-				dat+="<BR><A href='?src=\ref[src];submit_wanted=[end_param]'>[(wanted_already) ? ("Edit Issue") : ("Submit")]</A>"
+				dat+="<BR><A href='byond://?src=\ref[src];submit_wanted=[end_param]'>[(wanted_already) ? ("Edit Issue") : ("Submit")]</A>"
 				if(wanted_already)
-					dat+="<BR><A href='?src=\ref[src];cancel_wanted=1'>Take down Issue</A>"
-				dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Cancel</A>"
+					dat+="<BR><A href='byond://?src=\ref[src];cancel_wanted=1'>Take down Issue</A>"
+				dat+="<BR><A href='byond://?src=\ref[src];setScreen=[0]'>Cancel</A>"
 			if(15)
 				dat+="<FONT COLOR='green'>Wanted issue for [src.channel_name] is now in Network Circulation.</FONT><BR><BR>"
-				dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Return</A><BR>"
+				dat+="<BR><A href='byond://?src=\ref[src];setScreen=[0]'>Return</A><BR>"
 			if(16)
 				dat+="<B><FONT COLOR='maroon'>ERROR: Wanted Issue rejected by Network.</B></FONT><HR><BR>"
 				if(src.channel_name=="" || src.channel_name == "\[REDACTED\]")
@@ -421,10 +421,10 @@ var/global/list/allCasters = list() //Global list that will contain reference to
 					dat+="<FONT COLOR='maroon'>Issue author unverified.</FONT><BR>"
 				if(src.msg == "" || src.msg == "\[REDACTED\]")
 					dat+="<FONT COLOR='maroon'>Invalid description.</FONT><BR>"
-				dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Return</A><BR>"
+				dat+="<BR><A href='byond://?src=\ref[src];setScreen=[0]'>Return</A><BR>"
 			if(17)
 				dat+="<B>Wanted Issue successfully deleted from Circulation</B><BR>"
-				dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Return</A><BR>"
+				dat+="<BR><A href='byond://?src=\ref[src];setScreen=[0]'>Return</A><BR>"
 			if(18)
 				dat+="<B><FONT COLOR ='maroon'>-- STATIONWIDE WANTED ISSUE --</B></FONT><BR><FONT SIZE=2>\[Submitted by: <FONT COLOR='green'>[news_network.wanted_issue.backup_author]</FONT>\]</FONT><HR>"
 				dat+="<B>Criminal</B>: [news_network.wanted_issue.author]<BR>"
@@ -435,16 +435,16 @@ var/global/list/allCasters = list() //Global list that will contain reference to
 					dat+="<BR><img src='tmp_photow.png' width = '180'>"
 				else
 					dat+="None"
-				dat+="<BR><BR><A href='?src=\ref[src];setScreen=[0]'>Back</A><BR>"
+				dat+="<BR><BR><A href='byond://?src=\ref[src];setScreen=[0]'>Back</A><BR>"
 			if(19)
 				dat+="<FONT COLOR='green'>Wanted issue for [src.channel_name] successfully edited.</FONT><BR><BR>"
-				dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Return</A><BR>"
+				dat+="<BR><A href='byond://?src=\ref[src];setScreen=[0]'>Return</A><BR>"
 			if(20)
 				dat+="<FONT COLOR='green'>Printing successful. Please receive your newspaper from the bottom of the machine.</FONT><BR><BR>"
-				dat+="<A href='?src=\ref[src];setScreen=[0]'>Return</A>"
+				dat+="<A href='byond://?src=\ref[src];setScreen=[0]'>Return</A>"
 			if(21)
 				dat+="<FONT COLOR='maroon'>Unable to print newspaper. Insufficient paper. Please notify maintenance personnel to refill machine storage.</FONT><BR><BR>"
-				dat+="<A href='?src=\ref[src];setScreen=[0]'>Return</A>"
+				dat+="<A href='byond://?src=\ref[src];setScreen=[0]'>Return</A>"
 			else
 				dat+="I'm sorry to break your immersion. This shit's bugged. Report this bug to Agouri, polyxenitopalidou@gmail.com"
 
@@ -783,7 +783,7 @@ var/global/list/allCasters = list() //Global list that will contain reference to
 					dat+="</ul>"
 				if(scribble_page==curr_page)
 					dat+="<BR><I>There is a small scribble near the end of this page... It reads: \"[src.scribble]\"</I>"
-				dat+= "<HR><DIV STYLE='float:right;'><A href='?src=\ref[src];next_page=1'>Next Page</A></DIV> <div style='float:left;'><A href='?src=\ref[human_user];mach_close=newspaper_main'>Done reading</A></DIV>"
+				dat+= "<HR><DIV STYLE='float:right;'><A href='byond://?src=\ref[src];next_page=1'>Next Page</A></DIV> <div style='float:left;'><A href='byond://?src=\ref[human_user];mach_close=newspaper_main'>Done reading</A></DIV>"
 			if(1) // X channel pages inbetween.
 				for(var/datum/feed_channel/NP in src.news_content)
 					src.pages++ //Let's get it right again.
@@ -808,7 +808,7 @@ var/global/list/allCasters = list() //Global list that will contain reference to
 						dat+="</ul>"
 				if(scribble_page==curr_page)
 					dat+="<BR><I>There is a small scribble near the end of this page... It reads: \"[src.scribble]\"</I>"
-				dat+= "<BR><HR><DIV STYLE='float:left;'><A href='?src=\ref[src];prev_page=1'>Previous Page</A></DIV> <DIV STYLE='float:right;'><A href='?src=\ref[src];next_page=1'>Next Page</A></DIV>"
+				dat+= "<BR><HR><DIV STYLE='float:left;'><A href='byond://?src=\ref[src];prev_page=1'>Previous Page</A></DIV> <DIV STYLE='float:right;'><A href='byond://?src=\ref[src];next_page=1'>Next Page</A></DIV>"
 			if(2) //Last page
 				for(var/datum/feed_channel/NP in src.news_content)
 					src.pages++
@@ -826,7 +826,7 @@ var/global/list/allCasters = list() //Global list that will contain reference to
 					dat+="<I>Apart from some uninteresting Classified ads, there's nothing on this page...</I>"
 				if(scribble_page==curr_page)
 					dat+="<BR><I>There is a small scribble near the end of this page... It reads: \"[src.scribble]\"</I>"
-				dat+= "<HR><DIV STYLE='float:left;'><A href='?src=\ref[src];prev_page=1'>Previous Page</A></DIV>"
+				dat+= "<HR><DIV STYLE='float:left;'><A href='byond://?src=\ref[src];prev_page=1'>Previous Page</A></DIV>"
 
 		dat+="<BR><HR><div align='center'>[src.curr_page+1]</div>"
 		var/processed_dat = human_user.handle_reading_literacy(human_user, dat)
diff --git a/code/game/machinery/pager.dm b/code/game/machinery/pager.dm
index 87c740146b5..0777eb14361 100644
--- a/code/game/machinery/pager.dm
+++ b/code/game/machinery/pager.dm
@@ -35,7 +35,7 @@
 	if(world.time < last_paged + 5 SECONDS)
 		return
 	last_paged = world.time
-	var/paged = MS.send_to_department(department,"Department page to <b>[location.proper_name]</b> received. <a href='?src=\ref[src];ack=1'>Take</a>", "*page*")
+	var/paged = MS.send_to_department(department,"Department page to <b>[location.proper_name]</b> received. <a href='byond://?src=\ref[src];ack=1'>Take</a>", "*page*")
 	acknowledged = 0
 	if(paged)
 		playsound(src, 'sound/machines/ping.ogg', 60)
diff --git a/code/game/machinery/slide_projector.dm b/code/game/machinery/slide_projector.dm
index 27735e730bd..de4cb556fb3 100644
--- a/code/game/machinery/slide_projector.dm
+++ b/code/game/machinery/slide_projector.dm
@@ -69,7 +69,7 @@
 /obj/item/slide_projector/interact(mob/user)
 	var/data = list()
 	if(projection)
-		data += "<a href='?src=\ref[src];stop_projector=1'>Disable projector</a>"
+		data += "<a href='byond://?src=\ref[src];stop_projector=1'>Disable projector</a>"
 	else
 		data += "Projector inactive"
 
@@ -80,7 +80,7 @@
 		if(I == current_slide)
 			table += "<td><b>[I.name]</b><td>SHOWING"
 		else
-			table += "<td>[I.name]<td><a href='?src=\ref[src];set_active=[i]'>SHOW</a>"
+			table += "<td>[I.name]<td><a href='byond://?src=\ref[src];set_active=[i]'>SHOW</a>"
 		i++
 	data += jointext(table,null)
 	var/datum/browser/popup = new(user, "slides\ref[src]", "Slide Projector")
diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm
index 48bcdae71f1..67c1d4baafd 100644
--- a/code/game/machinery/spaceheater.dm
+++ b/code/game/machinery/spaceheater.dm
@@ -76,10 +76,10 @@
 
 		dat += "Set Temperature: "
 
-		dat += "<A href='?src=\ref[src];op=temp;val=-5'>-</A>"
+		dat += "<A href='byond://?src=\ref[src];op=temp;val=-5'>-</A>"
 
 		dat += " [set_temperature]K ([set_temperature-T0C]&deg;C)"
-		dat += "<A href='?src=\ref[src];op=temp;val=5'>+</A><BR>"
+		dat += "<A href='byond://?src=\ref[src];op=temp;val=5'>+</A><BR>"
 
 		var/datum/browser/popup = new(usr, "spaceheater", "Space Heater Control Panel")
 		popup.set_content(jointext(dat, null))
diff --git a/code/game/machinery/suit_cycler.dm b/code/game/machinery/suit_cycler.dm
index 76abad87613..38847883dfa 100644
--- a/code/game/machinery/suit_cycler.dm
+++ b/code/game/machinery/suit_cycler.dm
@@ -299,26 +299,26 @@
 	else if(locked)
 		dat += "<br><font color='red'><B>The [model_text ? "[model_text] " : ""]suit cycler is currently locked. Please contact your system administrator.</b></font>"
 		if(allowed(user))
-			dat += "<br><a href='?src=\ref[src];toggle_lock=1'>Unlock unit</a>"
+			dat += "<br><a href='byond://?src=\ref[src];toggle_lock=1'>Unlock unit</a>"
 	else
 		dat += "<h1>Suit cycler</h1>"
-		dat += "<B>Welcome to the [model_text ? "[model_text] " : ""]suit cycler control panel. <a href='?src=\ref[src];toggle_lock=1'>Lock unit</a></B><HR>"
+		dat += "<B>Welcome to the [model_text ? "[model_text] " : ""]suit cycler control panel. <a href='byond://?src=\ref[src];toggle_lock=1'>Lock unit</a></B><HR>"
 
 		dat += "<h2>Maintenance</h2>"
-		dat += "<b>Helmet: </b> [helmet ? "\the [helmet]" : "no helmet stored" ]. <A href='?src=\ref[src];eject_helmet=1'>Eject</a><br/>"
-		dat += "<b>Suit: </b> [suit ? "\the [suit]" : "no suit stored" ]. <A href='?src=\ref[src];eject_suit=1'>Eject</a><br/>"
-		dat += "<b>Boots: </b> [boots ? "\the [boots]" : "no boots stored" ]. <A href='?src=\ref[src];eject_boots=1'>Eject</a>"
+		dat += "<b>Helmet: </b> [helmet ? "\the [helmet]" : "no helmet stored" ]. <A href='byond://?src=\ref[src];eject_helmet=1'>Eject</a><br/>"
+		dat += "<b>Suit: </b> [suit ? "\the [suit]" : "no suit stored" ]. <A href='byond://?src=\ref[src];eject_suit=1'>Eject</a><br/>"
+		dat += "<b>Boots: </b> [boots ? "\the [boots]" : "no boots stored" ]. <A href='byond://?src=\ref[src];eject_boots=1'>Eject</a>"
 
 		if(can_repair && istype(suit))
-			dat += "[(suit.damage ? " <A href='?src=\ref[src];repair_suit=1'>Repair</a>" : "")]"
+			dat += "[(suit.damage ? " <A href='byond://?src=\ref[src];repair_suit=1'>Repair</a>" : "")]"
 
 		dat += "<br/><b>UV decontamination systems:</b> <font color = '[emagged ? "red'>SYSTEM ERROR" : "green'>READY"]</font><br>"
 		dat += "Output level: [radiation_level]<br>"
-		dat += "<A href='?src=\ref[src];select_rad_level=1'>Select power level</a> <A href='?src=\ref[src];begin_decontamination=1'>Begin decontamination cycle</a><br><hr>"
+		dat += "<A href='byond://?src=\ref[src];select_rad_level=1'>Select power level</a> <A href='byond://?src=\ref[src];begin_decontamination=1'>Begin decontamination cycle</a><br><hr>"
 
 		dat += "<h2>Customisation</h2>"
-		dat += "<b>Target product:</b> <A href='?src=\ref[src];select_department=1'>[target_modification.name]</a>, <A href='?src=\ref[src];select_bodytype=1'>[target_bodytype]</a>."
-		dat += "<br><A href='?src=\ref[src];apply_paintjob=1'>Apply customisation routine</a><br><hr>"
+		dat += "<b>Target product:</b> <A href='byond://?src=\ref[src];select_department=1'>[target_modification.name]</a>, <A href='byond://?src=\ref[src];select_bodytype=1'>[target_bodytype]</a>."
+		dat += "<br><A href='byond://?src=\ref[src];apply_paintjob=1'>Apply customisation routine</a><br><hr>"
 
 	var/datum/browser/written_digital/popup = new(user, "suit_cycler", "Suit Cycler")
 	popup.set_content(JOINTEXT(dat))
diff --git a/code/game/objects/effects/chem/chemsmoke.dm b/code/game/objects/effects/chem/chemsmoke.dm
index 252ca37c2ec..27bffa2de76 100644
--- a/code/game/objects/effects/chem/chemsmoke.dm
+++ b/code/game/objects/effects/chem/chemsmoke.dm
@@ -135,7 +135,7 @@
 	var/area/A = get_area(location)
 
 	var/where = "[A.proper_name] | [location.x], [location.y]"
-	var/whereLink = "<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[location.x];Y=[location.y];Z=[location.z]'>[where]</a>"
+	var/whereLink = "<A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[location.x];Y=[location.y];Z=[location.z]'>[where]</a>"
 
 	if(show_log)
 		var/atom/location = carry?.get_reaction_loc(CHEM_REACTION_FLAG_OVERFLOW_CONTAINER)
@@ -143,7 +143,7 @@
 			var/mob/M = get_mob_by_key(location.fingerprintslast)
 			var/more = ""
 			if(M)
-				more = "(<A HREF='?_src_=holder;adminmoreinfo=\ref[M]'>?</a>)"
+				more = "(<A HREF='byond://?_src_=holder;adminmoreinfo=\ref[M]'>?</a>)"
 			log_and_message_admins("A chemical smoke reaction has taken place in ([whereLink])[contained]. Last associated key is [location.fingerprintslast][more].")
 		else
 			log_and_message_admins("A chemical smoke reaction has taken place in ([whereLink]). No associated key.")
diff --git a/code/game/objects/explosion.dm b/code/game/objects/explosion.dm
index bef4e25c4d1..e99d8b05f67 100644
--- a/code/game/objects/explosion.dm
+++ b/code/game/objects/explosion.dm
@@ -49,7 +49,7 @@
 				M.playsound_local(epicenter, 'sound/effects/explosionfar.ogg', far_volume, 1, frequency, falloff = 5)
 
 	if(adminlog)
-		log_and_message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range]) in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z]) (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[epicenter.x];Y=[epicenter.y];Z=[epicenter.z]'>JMP</a>)")
+		log_and_message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range]) in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z]) (<A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[epicenter.x];Y=[epicenter.y];Z=[epicenter.z]'>JMP</a>)")
 
 	var/approximate_intensity = (devastation_range * 3) + (heavy_impact_range * 2) + light_impact_range
 	// Large enough explosion. For performance reasons, powernets will be rebuilt manually
diff --git a/code/game/objects/items/__item.dm b/code/game/objects/items/__item.dm
index 051083b981d..7618ae80ae3 100644
--- a/code/game/objects/items/__item.dm
+++ b/code/game/objects/items/__item.dm
@@ -783,7 +783,7 @@ var/global/list/_item_blood_mask = icon('icons/effects/blood.dmi', "itemblood")
 /obj/item/proc/showoff(mob/user)
 	for(var/mob/M in view(user))
 		if(!user.is_invisible_to(M))
-			M.show_message("[user] holds up [src]. <a HREF=?src=\ref[M];lookitem=\ref[src]>Take a closer look.</a>", 1)
+			M.show_message("[user] holds up [src]. <a HREF='byond://?src=\ref[M];lookitem=\ref[src]'>Take a closer look.</a>", 1)
 
 /*
 For zooming with scope or binoculars. This is called from
@@ -884,7 +884,7 @@ modules/mob/living/human/life.dm if you die, you will be zoomed out.
 	. = "[html_icon(src)] [get_examine_name()]"
 	var/ID = GetIdCard()
 	if(ID)
-		. += " <a href='?src=\ref[ID];look_at_id=1'>\[Look at ID\]</a>"
+		. += " <a href='byond://?src=\ref[ID];look_at_id=1'>\[Look at ID\]</a>"
 
 /obj/item/proc/on_active_hand()
 	return
diff --git a/code/game/objects/items/devices/boombox.dm b/code/game/objects/items/devices/boombox.dm
index 9336d59c26a..bea0e3cac25 100644
--- a/code/game/objects/items/devices/boombox.dm
+++ b/code/game/objects/items/devices/boombox.dm
@@ -50,12 +50,12 @@
 /obj/item/boombox/interact(var/mob/user)
 	if(!CanPhysicallyInteract(user))
 		return
-	var/dat = "<A href='?src=\ref[src];tracknum=1;'>NEXT</a>"
-	dat += "<A href='?src=\ref[src];tracknum=-1;'>PREV</a>"
-	dat += "<A href='?src=\ref[src];start=1;'>PLAY</a>"
-	dat += "<A href='?src=\ref[src];stop=1;'>STOP</a>"
-	dat += "<A href='?src=\ref[src];voldown=1;'>VOL -</a>"
-	dat += "<A href='?src=\ref[src];volup=1;'>VOL +</a>"
+	var/dat = "<A href='byond://?src=\ref[src];tracknum=1;'>NEXT</a>"
+	dat += "<A href='byond://?src=\ref[src];tracknum=-1;'>PREV</a>"
+	dat += "<A href='byond://?src=\ref[src];start=1;'>PLAY</a>"
+	dat += "<A href='byond://?src=\ref[src];stop=1;'>STOP</a>"
+	dat += "<A href='byond://?src=\ref[src];voldown=1;'>VOL -</a>"
+	dat += "<A href='byond://?src=\ref[src];volup=1;'>VOL +</a>"
 	var/datum/browser/popup = new(user, "boombox", "BOOMTASTIC 3000", 290, 110)
 	popup.set_content(dat)
 	popup.open()
diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm
index e20296b8724..09c924a0733 100644
--- a/code/game/objects/items/devices/powersink.dm
+++ b/code/game/objects/items/devices/powersink.dm
@@ -105,7 +105,7 @@
 			SPAN_NOTICE("You activate \the [src]."),
 			SPAN_ITALIC("You hear a click.")
 		)
-		message_admins("Power sink activated by [key_name_admin(user)] at (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>)")
+		message_admins("Power sink activated by [key_name_admin(user)] at (<A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>)")
 		log_game("Power sink activated by [key_name(user)] at [get_area_name(src)]")
 		set_mode(OPERATING)
 		return TRUE
diff --git a/code/game/objects/items/devices/scanners/_scanner.dm b/code/game/objects/items/devices/scanners/_scanner.dm
index 0693f18a6ec..8496b049f86 100644
--- a/code/game/objects/items/devices/scanners/_scanner.dm
+++ b/code/game/objects/items/devices/scanners/_scanner.dm
@@ -29,7 +29,7 @@
 	popup.open()
 
 /obj/item/scanner/proc/get_header()
-	return "<a href='?src=\ref[src];print=1'>Print Report</a><a href='?src=\ref[src];clear=1'>Clear data</a>"
+	return "<a href='byond://?src=\ref[src];print=1'>Print Report</a><a href='byond://?src=\ref[src];clear=1'>Clear data</a>"
 
 /obj/item/scanner/proc/can_use(mob/user)
 	if (user.incapacitated())
diff --git a/code/game/objects/items/devices/scanners/gas.dm b/code/game/objects/items/devices/scanners/gas.dm
index a9311cc11aa..b4bc1705cf2 100644
--- a/code/game/objects/items/devices/scanners/gas.dm
+++ b/code/game/objects/items/devices/scanners/gas.dm
@@ -12,7 +12,7 @@
 	var/mode = DEFAULT_MODE
 
 /obj/item/scanner/gas/get_header()
-	return "[..()]<a href='?src=\ref[src];switchmode=1'>Switch Mode</a>"
+	return "[..()]<a href='byond://?src=\ref[src];switchmode=1'>Switch Mode</a>"
 
 /obj/item/scanner/gas/OnTopic(var/user, var/list/href_list)
 	..()
diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm
index 6139f3dd658..8170f78018f 100644
--- a/code/game/objects/items/devices/taperecorder.dm
+++ b/code/game/objects/items/devices/taperecorder.dm
@@ -461,7 +461,7 @@
 	var/list/output = list("<center>")
 	for(var/i=1, i < timestamp.len, i++)
 		var/time = "\[[time2text(timestamp[i]*10,"mm:ss")]\]"
-		output += "[time]<br><a href='?src=\ref[src];cut_after=[i]'>-----CUT------</a><br>"
+		output += "[time]<br><a href='byond://?src=\ref[src];cut_after=[i]'>-----CUT------</a><br>"
 	output += "</center>"
 
 	var/datum/browser/popup = new(user, "tape_cutting", "Cutting tape", 170, 600)
diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm
index f7a9d2432fe..03fb9ccd35b 100644
--- a/code/game/objects/items/devices/transfer_valve.dm
+++ b/code/game/objects/items/devices/transfer_valve.dm
@@ -28,7 +28,7 @@
 			tank_one = item
 		else
 			tank_two = item
-			message_admins("[key_name_admin(user)] attached both tanks to a transfer valve. (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[location.x];Y=[location.y];Z=[location.z]'>JMP</a>)")
+			message_admins("[key_name_admin(user)] attached both tanks to a transfer valve. (<A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[location.x];Y=[location.y];Z=[location.z]'>JMP</a>)")
 			log_game("[key_name_admin(user)] attached both tanks to a transfer valve.")
 		to_chat(user, "<span class='notice'>You attach the tank to the transfer valve.</span>")
 
@@ -58,7 +58,7 @@
 		A.toggle_secure()	//this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb).
 
 		global.bombers += "[key_name(user)] attached a [item] to a transfer valve."
-		message_admins("[key_name_admin(user)] attached a [item] to a transfer valve. (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[location.x];Y=[location.y];Z=[location.z]'>JMP</a>)")
+		message_admins("[key_name_admin(user)] attached a [item] to a transfer valve. (<A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[location.x];Y=[location.y];Z=[location.z]'>JMP</a>)")
 		log_game("[key_name_admin(user)] attached a [item] to a transfer valve.")
 		attacher = user
 		SSnano.update_uis(src) // update all UIs attached to src
@@ -194,16 +194,16 @@
 		else
 			attacher_name = "[attacher.name]([attacher.ckey])"
 
-		var/log_str = "Bomb valve opened in <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[bombturf.x];Y=[bombturf.y];Z=[bombturf.z]'>[A.proper_name]</a> "
+		var/log_str = "Bomb valve opened in <A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[bombturf.x];Y=[bombturf.y];Z=[bombturf.z]'>[A.proper_name]</a> "
 		log_str += "with [attached_device ? attached_device : "no device"] attacher: [attacher_name]"
 
 		if(attacher)
-			log_str += "(<A HREF='?_src_=holder;adminmoreinfo=\ref[attacher]'>?</A>)"
+			log_str += "(<A HREF='byond://?_src_=holder;adminmoreinfo=\ref[attacher]'>?</A>)"
 
 		var/mob/mob = get_mob_by_key(src.fingerprintslast)
 		var/last_touch_info = ""
 		if(mob)
-			last_touch_info = "(<A HREF='?_src_=holder;adminmoreinfo=\ref[mob]'>?</A>)"
+			last_touch_info = "(<A HREF='byond://?_src_=holder;adminmoreinfo=\ref[mob]'>?</A>)"
 
 		log_str += " Last touched by: [src.fingerprintslast][last_touch_info]"
 		global.bombers += log_str
diff --git a/code/game/objects/items/devices/tvcamera.dm b/code/game/objects/items/devices/tvcamera.dm
index 4e4d928ff4a..8e07bc60453 100644
--- a/code/game/objects/items/devices/tvcamera.dm
+++ b/code/game/objects/items/devices/tvcamera.dm
@@ -40,13 +40,13 @@
 	add_fingerprint(user)
 	user.set_machine(src)
 	var/dat = list()
-	dat += "Photography mode is currently: <a href='?src=\ref[src];photo=1'>[turned_on ? "On" : "Off"]</a><br>"
-	dat += "Photography focus is currently: <a href='?src=\ref[src];focus=1'>[field_of_view]</a><br>"
-	dat += "Channel name is: <a href='?src=\ref[src];channel=1'>[channel ? channel : "unidentified broadcast"]</a><br>"
-	dat += "Video streaming is: <a href='?src=\ref[src];video=1'>[video_enabled ? "Online" : "Offline"]</a><br>"
-	dat += "Microphone is: <a href='?src=\ref[src];sound=1'>[radio.broadcasting ? "Online" : "Offline"]</a><br>"
+	dat += "Photography mode is currently: <a href='byond://?src=\ref[src];photo=1'>[turned_on ? "On" : "Off"]</a><br>"
+	dat += "Photography focus is currently: <a href='byond://?src=\ref[src];focus=1'>[field_of_view]</a><br>"
+	dat += "Channel name is: <a href='byond://?src=\ref[src];channel=1'>[channel ? channel : "unidentified broadcast"]</a><br>"
+	dat += "Video streaming is: <a href='byond://?src=\ref[src];video=1'>[video_enabled ? "Online" : "Offline"]</a><br>"
+	dat += "Microphone is: <a href='byond://?src=\ref[src];sound=1'>[radio.broadcasting ? "Online" : "Offline"]</a><br>"
 	dat += "Sound is being broadcasted on frequency: [format_frequency(radio.frequency)]<br>"
-	dat += "<a href='?src=\ref[src];net_options=1'>Network Options</a>"
+	dat += "<a href='byond://?src=\ref[src];net_options=1'>Network Options</a>"
 	var/datum/browser/written_digital/popup = new(user, "Press Camera Drone", "EyeBuddy", 300, 390, src)
 	popup.set_content(jointext(dat,null))
 	popup.open()
diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm
index d8e90de2a89..42c0a126138 100644
--- a/code/game/objects/items/stacks/stack.dm
+++ b/code/game/objects/items/stacks/stack.dm
@@ -127,7 +127,7 @@
 	var/datum/stack_recipe_list/recipe_list = recipes
 	if (istype(recipe_list))
 		popup_title = "Crafting [recipe_list.name] with \the [src]"
-		dat += "<p><a href='?src=\ref[src];back=1'>Back</a></p>"
+		dat += "<p><a href='byond://?src=\ref[src];back=1'>Back</a></p>"
 		recipes = recipe_list.recipes
 	else if(islist(recipes) && length(recipes))
 		popup_title = "Crafting with \the [src]"
diff --git a/code/game/objects/items/weapons/RPD.dm b/code/game/objects/items/weapons/RPD.dm
index 551a70bb1eb..f376f6ca8a3 100644
--- a/code/game/objects/items/weapons/RPD.dm
+++ b/code/game/objects/items/weapons/RPD.dm
@@ -95,11 +95,11 @@ var/global/list/rpd_pipe_selection_skilled = list()
 	. = list()
 	. += "<table>"
 	if(color_options)
-		. += "<tr><td>Color</td><td><a href='?src=\ref[src];color=\ref[src]'><font color = '[pipe_color]'>[pipe_color]</font></a></td></tr>"
+		. += "<tr><td>Color</td><td><a href='byond://?src=\ref[src];color=\ref[src]'><font color = '[pipe_color]'>[pipe_color]</font></a></td></tr>"
 	for(var/category in pipe_categories)
 		. += "<tr><td><font color = '#517087'><strong>[category]</strong></font></td></tr>"
 		for(var/datum/fabricator_recipe/pipe/pipe in pipe_categories[category])
-			. += "<tr><td>[pipe.name]</td><td>[P.type == pipe.type ? "<span class='linkOn'>Select</span>" : "<a href='?src=\ref[src];select=\ref[pipe]'>Select</a>"]</td></tr>"
+			. += "<tr><td>[pipe.name]</td><td>[P.type == pipe.type ? "<span class='linkOn'>Select</span>" : "<a href='byond://?src=\ref[src];select=\ref[pipe]'>Select</a>"]</td></tr>"
 	.+= "</table>"
 	. = JOINTEXT(.)
 
diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm
index 78c09ab8b61..763eb23c7d8 100644
--- a/code/game/objects/items/weapons/grenades/grenade.dm
+++ b/code/game/objects/items/weapons/grenades/grenade.dm
@@ -70,7 +70,7 @@
 	if(active)
 		return
 	if(user)
-		msg_admin_attack("[user.name] ([user.ckey]) primed \a [src] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[user.x];Y=[user.y];Z=[user.z]'>JMP</a>)")
+		msg_admin_attack("[user.name] ([user.ckey]) primed \a [src] (<A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[user.x];Y=[user.y];Z=[user.z]'>JMP</a>)")
 	active = TRUE
 	update_icon()
 	playsound(loc, arm_sound, 75, 0, -3)
diff --git a/code/game/objects/items/weapons/implants/implantchair.dm b/code/game/objects/items/weapons/implants/implantchair.dm
index bee3993f35a..38ad44810d1 100644
--- a/code/game/objects/items/weapons/implants/implantchair.dm
+++ b/code/game/objects/items/weapons/implants/implantchair.dm
@@ -39,9 +39,9 @@
 	var/dat ="<B>Implanter Status</B><BR>"
 
 	dat +="<B>Current occupant:</B> [src.occupant ? "<BR>Name: [src.occupant]<BR>Health: [health_text]<BR>" : "<FONT color=red>None</FONT>"]<BR>"
-	dat += "<B>Implants:</B> [src.implant_list.len ? "[implant_list.len]" : "<A href='?src=\ref[src];replenish=1'>Replenish</A>"]<BR>"
+	dat += "<B>Implants:</B> [src.implant_list.len ? "[implant_list.len]" : "<A href='byond://?src=\ref[src];replenish=1'>Replenish</A>"]<BR>"
 	if(src.occupant)
-		dat += "[src.ready ? "<A href='?src=\ref[src];implant=1'>Implant</A>" : "Recharging"]<BR>"
+		dat += "[src.ready ? "<A href='byond://?src=\ref[src];implant=1'>Implant</A>" : "Recharging"]<BR>"
 	user.set_machine(src)
 	show_browser(user, dat, "window=implant")
 	onclose(user, "implant")
diff --git a/code/game/objects/items/weapons/implants/implants/explosive.dm b/code/game/objects/items/weapons/implants/implants/explosive.dm
index fbfc602d928..44bd35c5236 100644
--- a/code/game/objects/items/weapons/implants/implants/explosive.dm
+++ b/code/game/objects/items/weapons/implants/implants/explosive.dm
@@ -120,10 +120,10 @@
 	playsound(loc, 'sound/items/countdown.ogg', 75, 1, -3)
 	if(ismob(imp_in))
 		imp_in.audible_message("<span class='warning'>Something beeps inside [imp_in][part ? "'s [part.name]" : ""]!</span>")
-		log_and_message_admins("Explosive implant triggered in [imp_in] ([imp_in.key]). (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[imp_in.x];Y=[imp_in.y];Z=[imp_in.z]'>JMP</a>) ")
+		log_and_message_admins("Explosive implant triggered in [imp_in] ([imp_in.key]). (<A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[imp_in.x];Y=[imp_in.y];Z=[imp_in.z]'>JMP</a>) ")
 	else
 		audible_message("<span class='warning'>[src] beeps omniously!</span>")
-		log_and_message_admins("Explosive implant triggered in [T.loc]. (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[T.x];Y=[T.y];Z=[T.z]'>JMP</a>) ")
+		log_and_message_admins("Explosive implant triggered in [T.loc]. (<A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[T.x];Y=[T.y];Z=[T.z]'>JMP</a>) ")
 
 	if(!elevel)
 		elevel = "Full Explosion"
diff --git a/code/game/objects/items/weapons/storage/med_pouch.dm b/code/game/objects/items/weapons/storage/med_pouch.dm
index 00dc036406c..911e67d2ab9 100644
--- a/code/game/objects/items/weapons/storage/med_pouch.dm
+++ b/code/game/objects/items/weapons/storage/med_pouch.dm
@@ -40,7 +40,7 @@ Single Use Emergency Pouches
 
 /obj/item/med_pouch/examine(mob/user)
 	. = ..()
-	to_chat(user, "<A href='?src=\ref[src];show_info=1'>Please read instructions before use.</A>")
+	to_chat(user, "<A href='byond://?src=\ref[src];show_info=1'>Please read instructions before use.</A>")
 
 /obj/item/med_pouch/CanUseTopic()
 	return STATUS_INTERACTIVE
diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm
index e95ffde8b89..3762eec3f07 100644
--- a/code/game/objects/items/weapons/teleportation.dm
+++ b/code/game/objects/items/weapons/teleportation.dm
@@ -35,7 +35,7 @@ Frequency:
 <A href='byond://?src=\ref[src];freq=2'>+</A>
 <A href='byond://?src=\ref[src];freq=10'>+</A><BR>
 
-<A href='?src=\ref[src];refresh=1'>Refresh</A>"}
+<A href='byond://?src=\ref[src];refresh=1'>Refresh</A>"}
 	show_browser(user, dat, "window=radio")
 	onclose(user, "radio")
 	return
diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm
index b1707bce25d..9f1c725a947 100644
--- a/code/game/objects/structures/safe.dm
+++ b/code/game/objects/structures/safe.dm
@@ -74,12 +74,12 @@ FLOOR SAFES
 
 	user.set_machine(src)
 	var/dat = "<center>"
-	dat += "<a href='?src=\ref[src];open=1'>[open ? "Close" : "Open"] [src]</a> | <a href='?src=\ref[src];decrement=1'>-</a> [dial * 5] <a href='?src=\ref[src];increment=1'>+</a>"
+	dat += "<a href='byond://?src=\ref[src];open=1'>[open ? "Close" : "Open"] [src]</a> | <a href='byond://?src=\ref[src];decrement=1'>-</a> [dial * 5] <a href='byond://?src=\ref[src];increment=1'>+</a>"
 	if(open)
 		dat += "<table>"
 		for(var/i = contents.len, i>=1, i--)
 			var/obj/item/P = contents[i]
-			dat += "<tr><td><a href='?src=\ref[src];retrieve=\ref[P]'>[P.name]</a></td></tr>"
+			dat += "<tr><td><a href='byond://?src=\ref[src];retrieve=\ref[P]'>[P.name]</a></td></tr>"
 		dat += "</table></center>"
 	show_browser(user, "<html><head><title>[name]</title></head><body>[dat]</body></html>", "window=safe;size=350x300")
 	return TRUE
diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm
index 30effb0cb86..8e9e1635826 100644
--- a/code/game/objects/structures/tank_dispenser.dm
+++ b/code/game/objects/structures/tank_dispenser.dm
@@ -70,9 +70,9 @@
 		return ..()
 	var/list/dat = list()
 	var/oxycount = LAZYLEN(oxygen_tanks)
-	dat += "Oxygen tanks: [oxycount] - [oxycount ? "<A href='?src=\ref[src];oxygen=1'>Dispense</A>" : "empty"]<br>"
+	dat += "Oxygen tanks: [oxycount] - [oxycount ? "<A href='byond://?src=\ref[src];oxygen=1'>Dispense</A>" : "empty"]<br>"
 	var/hydrocount = LAZYLEN(hydrogen_tanks)
-	dat += "Hydrogen tanks: [hydrocount] - [hydrocount ? "<A href='?src=\ref[src];hydrogen=1'>Dispense</A>" : "empty"]"
+	dat += "Hydrogen tanks: [hydrocount] - [hydrocount ? "<A href='byond://?src=\ref[src];hydrogen=1'>Dispense</A>" : "empty"]"
 	var/datum/browser/popup = new(user, "window=tank_rack")
 	popup.set_content(jointext(dat, "<br>"))
 	popup.open()
diff --git a/code/game/objects/structures/under_wardrobe.dm b/code/game/objects/structures/under_wardrobe.dm
index 11ebfb66fde..2a4e6fa7253 100644
--- a/code/game/objects/structures/under_wardrobe.dm
+++ b/code/game/objects/structures/under_wardrobe.dm
@@ -52,7 +52,7 @@
 	dat += "You may claim [id ? length(global.underwear.categories) - LAZYACCESS(amount_of_underwear_by_id_card, id) : 0] more article\s this shift.<br><br>"
 	dat += "<b>Available Categories</b><br><hr>"
 	for(var/datum/category_group/underwear/UWC in global.underwear.categories)
-		dat += "[UWC.name] <a href='?src=\ref[src];select_underwear=[UWC.name]'>(Select)</a><br>"
+		dat += "[UWC.name] <a href='byond://?src=\ref[src];select_underwear=[UWC.name]'>(Select)</a><br>"
 	dat = jointext(dat,null)
 	show_browser(H, dat, "window=wardrobe;size=400x250")
 
diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm
index 18f3eede702..4131ea677ae 100644
--- a/code/game/verbs/who.dm
+++ b/code/game/verbs/who.dm
@@ -46,7 +46,7 @@
 				entry += " - <b><font color='red'>Antagonist</font></b>"
 			if(C.is_afk())
 				entry += " (AFK - [C.inactivity2text()])"
-			entry += " (<A HREF='?_src_=holder;adminmoreinfo=\ref[C.mob]'>?</A>)"
+			entry += " (<A HREF='byond://?_src_=holder;adminmoreinfo=\ref[C.mob]'>?</A>)"
 			Lines += entry
 	else
 		for(var/client/C in global.clients)
diff --git a/code/game/world_topic_commands.dm b/code/game/world_topic_commands.dm
index 81101311f14..78a4319710c 100644
--- a/code/game/world_topic_commands.dm
+++ b/code/game/world_topic_commands.dm
@@ -319,8 +319,8 @@ var/global/list/decl/topic_command/topic_commands = list()
 	if(rank == "Unknown")
 		rank = "Staff"
 
-	var/message =	SPAN_RED("[rank] PM from <b><a href='?irc_msg=[params["sender"]]'>[params["sender"]]</a></b>: [params["msg"]]")
-	var/amessage =  SPAN_BLUE("[rank] PM from <a href='?irc_msg=[params["sender"]]'>[params["sender"]]</a> to <b>[key_name(C)]</b> : [params["msg"]]")
+	var/message =	SPAN_RED("[rank] PM from <b><a href='byond://?irc_msg=[params["sender"]]'>[params["sender"]]</a></b>: [params["msg"]]")
+	var/amessage =  SPAN_BLUE("[rank] PM from <a href='byond://?irc_msg=[params["sender"]]'>[params["sender"]]</a> to <b>[key_name(C)]</b> : [params["msg"]]")
 
 	C.received_irc_pm = world.time
 	C.irc_admin = params["sender"]
diff --git a/code/modules/ZAS/Variable Settings.dm b/code/modules/ZAS/Variable Settings.dm
index 06208e008b4..e53e6955c5b 100644
--- a/code/modules/ZAS/Variable Settings.dm	
+++ b/code/modules/ZAS/Variable Settings.dm	
@@ -111,7 +111,7 @@ var/global/vs_control/vsc = new
 			vw = vars[ch]
 			if("[ch]_DESC" in vars) vw_desc = vars["[ch]_DESC"]
 			if("[ch]_NAME" in vars) vw_name = vars["[ch]_NAME"]
-		dat += "<b>[vw_name] = [vw]</b> <A href='?src=\ref[src];changevar=[ch]'>\[Change\]</A><br>"
+		dat += "<b>[vw_name] = [vw]</b> <A href='byond://?src=\ref[src];changevar=[ch]'>\[Change\]</A><br>"
 		dat += "<i>[vw_desc]</i><br><br>"
 	show_browser(user, dat, "window=settings")
 
diff --git a/code/modules/admin/NewBan.dm b/code/modules/admin/NewBan.dm
index 7f4ea462f4a..5f2e3c19cc6 100644
--- a/code/modules/admin/NewBan.dm
+++ b/code/modules/admin/NewBan.dm
@@ -189,7 +189,7 @@ var/global/savefile/Banlist
 			if(!expiry)		expiry = "Removal Pending"
 		else				expiry = "Permaban"
 
-		dat += text("<tr><td><A href='?src=[ref];unbanf=[key][id]'>(U)</A><A href='?src=[ref];unbane=[key][id]'>(E)</A> Key: <B>[key]</B></td><td>ComputerID: <B>[id]</B></td><td>IP: <B>[ip]</B></td><td> [expiry]</td><td>(By: [by])</td><td>(Reason: [reason])</td></tr>")
+		dat += text("<tr><td><A href='byond://?src=[ref];unbanf=[key][id]'>(U)</A><A href='byond://?src=[ref];unbane=[key][id]'>(E)</A> Key: <B>[key]</B></td><td>ComputerID: <B>[id]</B></td><td>IP: <B>[ip]</B></td><td> [expiry]</td><td>(By: [by])</td><td>(Reason: [reason])</td></tr>")
 
 	dat += "</table>"
 	dat = "<HR><B>Bans:</B> <FONT COLOR=blue>(U) = Unban , (E) = Edit Ban</FONT> - <FONT COLOR=green>([count] Bans)</FONT><HR><table border=1 rules=all frame=void cellspacing=0 cellpadding=3 >[dat]"
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index d5cebeab272..000078e5a79 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -31,10 +31,10 @@ var/global/BSACooldown = 0
 /proc/message_staff_fax(var/obj/item/paper/admin/fax, var/obj/machinery/faxmachine/destination, var/owner, var/dest_network_id = "UNKNOWN", var/dest_network_tag = "UNKNOWN")
 	var/msg
 	if(fax.sender)
-		msg = "<span class='log_message'><span class='prefix'>FAX LOG:</span>[key_name_admin(owner)] replied to a fax message from [key_name_admin(fax.sender)] (<a href='?_src_=holder;AdminFaxView=\ref[fax]'>VIEW</a>)</span>"
+		msg = "<span class='log_message'><span class='prefix'>FAX LOG:</span>[key_name_admin(owner)] replied to a fax message from [key_name_admin(fax.sender)] (<a href='byond://?_src_=holder;AdminFaxView=\ref[fax]'>VIEW</a>)</span>"
 		log_admin("[key_name(owner)] replied to a fax message from [key_name(fax.sender)]")
 	else
-		msg = "<span class='log_message'><span class='prefix'>FAX LOG:</span>[key_name_admin(owner)] has sent a fax message to \the [get_area(fax)]'s [destination] ('[dest_network_id]'.'[dest_network_tag]')(<a href='?_src_=holder;AdminFaxView=\ref[fax]'>VIEW</a>)</span>"
+		msg = "<span class='log_message'><span class='prefix'>FAX LOG:</span>[key_name_admin(owner)] has sent a fax message to \the [get_area(fax)]'s [destination] ('[dest_network_id]'.'[dest_network_tag]')(<a href='byond://?_src_=holder;AdminFaxView=\ref[fax]'>VIEW</a>)</span>"
 		log_admin("[key_name(owner)] has sent a fax message to \the [get_area(fax)]'s [destination] ('[dest_network_id]'.'[dest_network_tag]')")
 
 	for(var/client/C in global.admins)
@@ -62,62 +62,62 @@ var/global/BSACooldown = 0
 	var/last_ckey = LAST_CKEY(M)
 	if(M.client)
 		body += " played by <b>[M.client]</b> "
-		body += "\[<A href='?src=\ref[src];editrights=show'>[M.client.holder ? M.client.holder.rank : "Player"]</A>\]"
+		body += "\[<A href='byond://?src=\ref[src];editrights=show'>[M.client.holder ? M.client.holder.rank : "Player"]</A>\]"
 	else if(last_ckey)
 		body += " (last occupied by ckey <b>[last_ckey]</b>)"
 
 	if(isnewplayer(M))
 		body += " <B>Hasn't Entered Game</B> "
 	else
-		body += " \[<A href='?src=\ref[src];revive=\ref[M]'>Heal</A>\] "
+		body += " \[<A href='byond://?src=\ref[src];revive=\ref[M]'>Heal</A>\] "
 
 	var/mob/living/exosuit/E = M
 	if(istype(E) && E.pilots)
 		body += "<br><b>Exosuit pilots:</b><br>"
 		for(var/mob/living/pilot in E.pilots)
 			body += "[pilot] "
-			body += " \[<A href='?src=\ref[src];pilot=\ref[pilot]'>link</a>\]<br>"
+			body += " \[<A href='byond://?src=\ref[src];pilot=\ref[pilot]'>link</a>\]<br>"
 
 	body += {"
 		<br><br>\[
-		<a href='?_src_=vars;Vars=\ref[M]'>View Vars</a> -
-		<a href='?src=\ref[src];show_special_roles=\ref[M]'>Roles</a> -
-		<a href='?src=\ref[usr];priv_msg=\ref[M]'>PM</a> -
-		<a href='?src=\ref[src];narrateto=\ref[M]'>Narrate</a> -
+		<a href='byond://?_src_=vars;Vars=\ref[M]'>View Vars</a> -
+		<a href='byond://?src=\ref[src];show_special_roles=\ref[M]'>Roles</a> -
+		<a href='byond://?src=\ref[usr];priv_msg=\ref[M]'>PM</a> -
+		<a href='byond://?src=\ref[src];narrateto=\ref[M]'>Narrate</a> -
 		[admin_jump_link(M, src)]\] <br>
 		<b>Mob type:</b> [M.type]<br>
 		<b>Inactivity time:</b> [M.client ? "[M.client.inactivity/600] minutes" : "Logged out"]<br/><br/>
-		<A href='?src=\ref[src];boot2=\ref[M]'>Kick</A> |
-		<A href='?_src_=holder;warn=[last_ckey]'>Warn</A> |
-		<A href='?src=\ref[src];newban=\ref[M];last_key=[last_ckey]'>Ban</A> |
-		<A href='?src=\ref[src];jobban_panel_target=\ref[M]'>Jobban</A> |
-		<A href='?src=\ref[src];notes=show;mob=\ref[M]'>Notes</A>
+		<A href='byond://?src=\ref[src];boot2=\ref[M]'>Kick</A> |
+		<A href='byond://?_src_=holder;warn=[last_ckey]'>Warn</A> |
+		<A href='byond://?src=\ref[src];newban=\ref[M];last_key=[last_ckey]'>Ban</A> |
+		<A href='byond://?src=\ref[src];jobban_panel_target=\ref[M]'>Jobban</A> |
+		<A href='byond://?src=\ref[src];notes=show;mob=\ref[M]'>Notes</A>
 	"}
 
 	if(M.client)
-		body += "| <A HREF='?src=\ref[src];sendtoprison=\ref[M]'>Prison</A> | "
+		body += "| <A HREF='byond://?src=\ref[src];sendtoprison=\ref[M]'>Prison</A> | "
 		var/muted = M.client.prefs.muted
 		body += {"<br><b>Mute: </b>
-			\[<A href='?src=\ref[src];mute=\ref[M];mute_type=[MUTE_IC]'><font color='[(muted & MUTE_IC)?"red":"blue"]'>IC</font></a> |
-			<A href='?src=\ref[src];mute=\ref[M];mute_type=[MUTE_OOC]'><font color='[(muted & MUTE_OOC)?"red":"blue"]'>OOC</font></a> |
-			<A href='?src=\ref[src];mute=\ref[M];mute_type=[MUTE_AOOC]'><font color='[(muted & MUTE_AOOC)?"red":"blue"]'>AOOC</font></a> |
-			<A href='?src=\ref[src];mute=\ref[M];mute_type=[MUTE_PRAY]'><font color='[(muted & MUTE_PRAY)?"red":"blue"]'>PRAY</font></a> |
-			<A href='?src=\ref[src];mute=\ref[M];mute_type=[MUTE_ADMINHELP]'><font color='[(muted & MUTE_ADMINHELP)?"red":"blue"]'>ADMINHELP</font></a> |
-			<A href='?src=\ref[src];mute=\ref[M];mute_type=[MUTE_DEADCHAT]'><font color='[(muted & MUTE_DEADCHAT)?"red":"blue"]'>DEADCHAT</font></a>\]
-			(<A href='?src=\ref[src];mute=\ref[M];mute_type=[MUTE_ALL]'><font color='[(muted & MUTE_ALL)?"red":"blue"]'>toggle all</font></a>)
+			\[<A href='byond://?src=\ref[src];mute=\ref[M];mute_type=[MUTE_IC]'><font color='[(muted & MUTE_IC)?"red":"blue"]'>IC</font></a> |
+			<A href='byond://?src=\ref[src];mute=\ref[M];mute_type=[MUTE_OOC]'><font color='[(muted & MUTE_OOC)?"red":"blue"]'>OOC</font></a> |
+			<A href='byond://?src=\ref[src];mute=\ref[M];mute_type=[MUTE_AOOC]'><font color='[(muted & MUTE_AOOC)?"red":"blue"]'>AOOC</font></a> |
+			<A href='byond://?src=\ref[src];mute=\ref[M];mute_type=[MUTE_PRAY]'><font color='[(muted & MUTE_PRAY)?"red":"blue"]'>PRAY</font></a> |
+			<A href='byond://?src=\ref[src];mute=\ref[M];mute_type=[MUTE_ADMINHELP]'><font color='[(muted & MUTE_ADMINHELP)?"red":"blue"]'>ADMINHELP</font></a> |
+			<A href='byond://?src=\ref[src];mute=\ref[M];mute_type=[MUTE_DEADCHAT]'><font color='[(muted & MUTE_DEADCHAT)?"red":"blue"]'>DEADCHAT</font></a>\]
+			(<A href='byond://?src=\ref[src];mute=\ref[M];mute_type=[MUTE_ALL]'><font color='[(muted & MUTE_ALL)?"red":"blue"]'>toggle all</font></a>)
 		"}
 		body += "<br><br><b>Staff Warning:</b> [M.client.staffwarn ? M.client.staffwarn : "No"]<br>"
 		if (!M.client.staffwarn)
-			body += "<A href='?src=\ref[src];setstaffwarn=\ref[M]'>Set StaffWarn</A>"
+			body += "<A href='byond://?src=\ref[src];setstaffwarn=\ref[M]'>Set StaffWarn</A>"
 		else
-			body += "<A href='?src=\ref[src];removestaffwarn=\ref[M]'>Remove StaffWarn</A>"
+			body += "<A href='byond://?src=\ref[src];removestaffwarn=\ref[M]'>Remove StaffWarn</A>"
 
 	body += {"<br><br>
-		<A href='?src=\ref[src];jumpto=\ref[M]'><b>Jump to</b></A> |
-		<A href='?src=\ref[src];getmob=\ref[M]'>Get</A> |
-		<A href='?src=\ref[src];sendmob=\ref[M]'>Send To</A>
+		<A href='byond://?src=\ref[src];jumpto=\ref[M]'><b>Jump to</b></A> |
+		<A href='byond://?src=\ref[src];getmob=\ref[M]'>Get</A> |
+		<A href='byond://?src=\ref[src];sendmob=\ref[M]'>Send To</A>
 		<br><br>
-		[check_rights(R_INVESTIGATE,0) ? "<A href='?src=\ref[src];skillpanel=\ref[M]'>Skill panel</A>" : "" ]
+		[check_rights(R_INVESTIGATE,0) ? "<A href='byond://?src=\ref[src];skillpanel=\ref[M]'>Skill panel</A>" : "" ]
 	"}
 
 	if(M.mind)
@@ -126,7 +126,7 @@ var/global/BSACooldown = 0
 		body += "<br>"
 		body += "[jointext(M.mind.summarize_goals(FALSE, TRUE, src), "<br>")]"
 		body += "<br>"
-		body += "<a href='?src=\ref[M.mind];add_goal=1'>Add Random Goal</a>"
+		body += "<a href='byond://?src=\ref[M.mind];add_goal=1'>Add Random Goal</a>"
 
 	var/list/all_modpacks = decls_repository.get_decls_of_subtype(/decl/modpack)
 	for(var/package in all_modpacks)
@@ -146,28 +146,28 @@ var/global/BSACooldown = 0
 			if(issmall(M))
 				body += "<B>Monkeyized</B> | "
 			else
-				body += "<A href='?src=\ref[src];monkeyone=\ref[M]'>Monkeyize</A> | "
+				body += "<A href='byond://?src=\ref[src];monkeyone=\ref[M]'>Monkeyize</A> | "
 
 			//Corgi
 			if(iscorgi(M))
 				body += "<B>Corgized</B> | "
 			else
-				body += "<A href='?src=\ref[src];corgione=\ref[M]'>Corgize</A> | "
+				body += "<A href='byond://?src=\ref[src];corgione=\ref[M]'>Corgize</A> | "
 
 			//AI / Cyborg
 			if(isAI(M))
 				body += "<B>Is an AI</B> "
 			else if(ishuman(M))
-				body += {"<A href='?src=\ref[src];makeai=\ref[M]'>Make AI</A> |
-					<A href='?src=\ref[src];makerobot=\ref[M]'>Make Robot</A> |
-					<A href='?src=\ref[src];makealien=\ref[M]'>Make Alien</A>
+				body += {"<A href='byond://?src=\ref[src];makeai=\ref[M]'>Make AI</A> |
+					<A href='byond://?src=\ref[src];makerobot=\ref[M]'>Make Robot</A> |
+					<A href='byond://?src=\ref[src];makealien=\ref[M]'>Make Alien</A>
 				"}
 
 			//Simple Animals
 			if(isanimal(M))
-				body += "<A href='?src=\ref[src];makeanimal=\ref[M]'>Re-Animalize</A> | "
+				body += "<A href='byond://?src=\ref[src];makeanimal=\ref[M]'>Re-Animalize</A> | "
 			else
-				body += "<A href='?src=\ref[src];makeanimal=\ref[M]'>Animalize</A> | "
+				body += "<A href='byond://?src=\ref[src];makeanimal=\ref[M]'>Animalize</A> | "
 
 			if(M.can_have_genetic_conditions())
 				body += "<br><br>"
@@ -176,7 +176,7 @@ var/global/BSACooldown = 0
 				for(var/decl/genetic_condition/mutation as anything in decls_repository.get_decls_of_type_unassociated(/decl/genetic_condition))
 					if(i % 5 == 0)
 						body += "</tr><tr>"
-					body += "<td><a href='?src=\ref[src];toggle_mutation=\ref[M];block=\ref[mutation]' style='color:[M.has_genetic_condition(mutation.type) ? "#006600" : "#ff0000"];'>[mutation.name]</a></td>"
+					body += "<td><a href='byond://?src=\ref[src];toggle_mutation=\ref[M];block=\ref[mutation]' style='color:[M.has_genetic_condition(mutation.type) ? "#006600" : "#ff0000"];'>[mutation.name]</a></td>"
 					i++
 				body += "</tr></table>"
 
@@ -190,19 +190,19 @@ var/global/BSACooldown = 0
 				if(islist(transform_data))
 					var/list/href_subcat_strings = list()
 					for(var/transform_string in transform_data)
-						href_subcat_strings += "<a href='?src=\ref[src];simplemake=[replacetext(transform_string, " ", "_")];mob=\ref[M]'>[transform_string]</a>"
+						href_subcat_strings += "<a href='byond://?src=\ref[src];simplemake=[replacetext(transform_string, " ", "_")];mob=\ref[M]'>[transform_string]</a>"
 					href_transform_strings += "\[ <b>[href_string]:</b> [jointext(href_subcat_strings, " | ")] \]"
 
 				 // It's a single mob type - link it directly.
 				else if(ispath(transform_data))
-					href_transform_strings += "<a href='?src=\ref[src];simplemake=[replacetext(href_string, " ", "_")];mob=\ref[M]'>[href_string]</a>"
+					href_transform_strings += "<a href='byond://?src=\ref[src];simplemake=[replacetext(href_string, " ", "_")];mob=\ref[M]'>[href_string]</a>"
 
 			body += jointext(href_transform_strings, " | ")
 
 	body += {"<br><br>
 			<b>Other actions:</b>
 			<br>
-			<A href='?src=\ref[src];forcespeech=\ref[M]'>Forcesay</A>
+			<A href='byond://?src=\ref[src];forcespeech=\ref[M]'>Forcesay</A>
 			"}
 	// language toggles
 	body += "<br><br><b>Languages:</b><br>"
@@ -216,9 +216,9 @@ var/global/BSACooldown = 0
 			else
 				f = 0
 			if(L in M.languages)
-				body += "<a href='?src=\ref[src];toglang=\ref[M];lang=[L.name]' style='color:#006600'>[L.name]</a>"
+				body += "<a href='byond://?src=\ref[src];toglang=\ref[M];lang=[L.name]' style='color:#006600'>[L.name]</a>"
 			else
-				body += "<a href='?src=\ref[src];toglang=\ref[M];lang=[L.name]' style='color:#ff0000'>[L.name]</a>"
+				body += "<a href='byond://?src=\ref[src];toglang=\ref[M];lang=[L.name]' style='color:#ff0000'>[L.name]</a>"
 
 	body += {"<br>
 		</body></html>
@@ -257,7 +257,7 @@ var/global/BSACooldown = 0
 				continue
 			note_keys -= t
 
-	dat += "<center><b>Search term:</b> <a href='?src=\ref[src];notes=set_filter'>[filter_term ? filter_term : "-----"]</a></center><hr>"
+	dat += "<center><b>Search term:</b> <a href='byond://?src=\ref[src];notes=set_filter'>[filter_term ? filter_term : "-----"]</a></center><hr>"
 
 	if(!note_keys)
 		dat += "No notes found."
@@ -265,7 +265,7 @@ var/global/BSACooldown = 0
 		dat += "<table>"
 		note_keys = sortTim(note_keys, /proc/cmp_text_asc)
 		for(var/t in note_keys)
-			dat += "<tr><td><a href='?src=\ref[src];notes=show;ckey=[t]'>[t]</a></td></tr>"
+			dat += "<tr><td><a href='byond://?src=\ref[src];notes=show;ckey=[t]'>[t]</a></td></tr>"
 		dat += "</table><br>"
 
 	var/datum/browser/popup = new(usr, "player_notes", "Player Notes", 400, 400)
@@ -318,12 +318,12 @@ var/global/BSACooldown = 0
 				update_file = 1
 			dat += "<li><font color=#7d9177>[I.content]</font> <i>by [I.author] ([I.rank])</i> on <i><font color='#8a94a3'>[I.timestamp]</i></font> "
 			if(I.author == usr.key || I.author == "Adminbot" || ishost(usr))
-				dat += "<A href='?src=\ref[src];remove_player_info=[key];remove_index=[i]'>Remove</A>"
+				dat += "<A href='byond://?src=\ref[src];remove_player_info=[key];remove_index=[i]'>Remove</A>"
 			dat += "<hr></li>"
 		if(update_file)
 			direct_output(info, infos)
 
-	dat += "</ul><br><A href='?src=\ref[src];add_player_info=[key]'>Add Comment</A><br>"
+	dat += "</ul><br><A href='byond://?src=\ref[src];add_player_info=[key]'>Add Comment</A><br>"
 
 	var/html = {"
 		<html>
@@ -378,12 +378,12 @@ var/global/BSACooldown = 0
 				<BR>Note that this panel allows full freedom over the news network, there are no constrictions except the few basic ones. Don't break things!
 			"}
 			if(news_network.wanted_issue)
-				dat+= "<HR><A href='?src=\ref[src];ac_view_wanted=1'>Read Wanted Issue</A>"
+				dat+= "<HR><A href='byond://?src=\ref[src];ac_view_wanted=1'>Read Wanted Issue</A>"
 
-			dat+= {"<HR><BR><A href='?src=\ref[src];ac_create_channel=1'>Create Feed Channel</A>
-				<BR><A href='?src=\ref[src];ac_view=1'>View Feed Channels</A>
-				<BR><A href='?src=\ref[src];ac_create_feed_story=1'>Submit new Feed story</A>
-				<BR><BR><A href='?src=\ref[usr];mach_close=newscaster_main'>Exit</A>
+			dat+= {"<HR><BR><A href='byond://?src=\ref[src];ac_create_channel=1'>Create Feed Channel</A>
+				<BR><A href='byond://?src=\ref[src];ac_view=1'>View Feed Channels</A>
+				<BR><A href='byond://?src=\ref[src];ac_create_feed_story=1'>Submit new Feed story</A>
+				<BR><BR><A href='byond://?src=\ref[usr];mach_close=newscaster_main'>Exit</A>
 			"}
 
 			var/wanted_already = 0
@@ -391,10 +391,10 @@ var/global/BSACooldown = 0
 				wanted_already = 1
 
 			dat+={"<HR><B>Feed Security functions:</B><BR>
-				<BR><A href='?src=\ref[src];ac_menu_wanted=1'>[(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue</A>
-				<BR><A href='?src=\ref[src];ac_menu_censor_story=1'>Censor Feed Stories</A>
-				<BR><A href='?src=\ref[src];ac_menu_censor_channel=1'>Mark Feed Channel with [global.using_map.company_name] D-Notice (disables and locks the channel.</A>
-				<BR><HR><A href='?src=\ref[src];ac_set_signature=1'>The newscaster recognises you as:<BR> <FONT COLOR='green'>[src.admincaster_signature]</FONT></A>
+				<BR><A href='byond://?src=\ref[src];ac_menu_wanted=1'>[(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue</A>
+				<BR><A href='byond://?src=\ref[src];ac_menu_censor_story=1'>Censor Feed Stories</A>
+				<BR><A href='byond://?src=\ref[src];ac_menu_censor_channel=1'>Mark Feed Channel with [global.using_map.company_name] D-Notice (disables and locks the channel.</A>
+				<BR><HR><A href='byond://?src=\ref[src];ac_set_signature=1'>The newscaster recognises you as:<BR> <FONT COLOR='green'>[src.admincaster_signature]</FONT></A>
 			"}
 		if(1)
 			dat+= "Feed Channels<HR>"
@@ -403,38 +403,38 @@ var/global/BSACooldown = 0
 			else
 				for(var/datum/feed_channel/CHANNEL in news_network.network_channels)
 					if(CHANNEL.is_admin_channel)
-						dat+="<B><FONT style='BACKGROUND-COLOR: LightGreen'><A href='?src=\ref[src];ac_show_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A></FONT></B><BR>"
+						dat+="<B><FONT style='BACKGROUND-COLOR: LightGreen'><A href='byond://?src=\ref[src];ac_show_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A></FONT></B><BR>"
 					else
-						dat+="<B><A href='?src=\ref[src];ac_show_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : null ]<BR></B>"
-			dat+={"<BR><HR><A href='?src=\ref[src];ac_refresh=1'>Refresh</A>
-				<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Back</A>
+						dat+="<B><A href='byond://?src=\ref[src];ac_show_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : null ]<BR></B>"
+			dat+={"<BR><HR><A href='byond://?src=\ref[src];ac_refresh=1'>Refresh</A>
+				<BR><A href='byond://?src=\ref[src];ac_setScreen=[0]'>Back</A>
 			"}
 
 		if(2)
 			dat+={"
 				Creating new Feed Channel...
-				<HR><B><A href='?src=\ref[src];ac_set_channel_name=1'>Channel Name</A>:</B> [src.admincaster_feed_channel.channel_name]<BR>
-				<B><A href='?src=\ref[src];ac_set_signature=1'>Channel Author</A>:</B> <FONT COLOR='green'>[src.admincaster_signature]</FONT><BR>
-				<B><A href='?src=\ref[src];ac_set_channel_lock=1'>Will Accept Public Feeds</A>:</B> [(src.admincaster_feed_channel.locked) ? ("NO") : ("YES")]<BR><BR>
-				<BR><A href='?src=\ref[src];ac_submit_new_channel=1'>Submit</A><BR><BR><A href='?src=\ref[src];ac_setScreen=[0]'>Cancel</A><BR>
+				<HR><B><A href='byond://?src=\ref[src];ac_set_channel_name=1'>Channel Name</A>:</B> [src.admincaster_feed_channel.channel_name]<BR>
+				<B><A href='byond://?src=\ref[src];ac_set_signature=1'>Channel Author</A>:</B> <FONT COLOR='green'>[src.admincaster_signature]</FONT><BR>
+				<B><A href='byond://?src=\ref[src];ac_set_channel_lock=1'>Will Accept Public Feeds</A>:</B> [(src.admincaster_feed_channel.locked) ? ("NO") : ("YES")]<BR><BR>
+				<BR><A href='byond://?src=\ref[src];ac_submit_new_channel=1'>Submit</A><BR><BR><A href='byond://?src=\ref[src];ac_setScreen=[0]'>Cancel</A><BR>
 			"}
 		if(3)
 			dat+={"
 				Creating new Feed Message...
-				<HR><B><A href='?src=\ref[src];ac_set_channel_receiving=1'>Receiving Channel</A>:</B> [src.admincaster_feed_channel.channel_name]<BR>" //MARK
+				<HR><B><A href='byond://?src=\ref[src];ac_set_channel_receiving=1'>Receiving Channel</A>:</B> [src.admincaster_feed_channel.channel_name]<BR>" //MARK
 				<B>Message Author:</B> <FONT COLOR='green'>[src.admincaster_signature]</FONT><BR>
-				<B><A href='?src=\ref[src];ac_set_new_message=1'>Message Body</A>:</B> [src.admincaster_feed_message.body] <BR>
-				<BR><A href='?src=\ref[src];ac_submit_new_message=1'>Submit</A><BR><BR><A href='?src=\ref[src];ac_setScreen=[0]'>Cancel</A><BR>
+				<B><A href='byond://?src=\ref[src];ac_set_new_message=1'>Message Body</A>:</B> [src.admincaster_feed_message.body] <BR>
+				<BR><A href='byond://?src=\ref[src];ac_submit_new_message=1'>Submit</A><BR><BR><A href='byond://?src=\ref[src];ac_setScreen=[0]'>Cancel</A><BR>
 			"}
 		if(4)
 			dat+={"
 					Feed story successfully submitted to [src.admincaster_feed_channel.channel_name].<BR><BR>
-					<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Return</A><BR>
+					<BR><A href='byond://?src=\ref[src];ac_setScreen=[0]'>Return</A><BR>
 				"}
 		if(5)
 			dat+={"
 				Feed Channel [src.admincaster_feed_channel.channel_name] created successfully.<BR><BR>
-				<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Return</A><BR>
+				<BR><A href='byond://?src=\ref[src];ac_setScreen=[0]'>Return</A><BR>
 			"}
 		if(6)
 			dat+="<B><FONT COLOR='maroon'>ERROR: Could not submit Feed story to Network.</B></FONT><HR><BR>"
@@ -442,7 +442,7 @@ var/global/BSACooldown = 0
 				dat+="<FONT COLOR='maroon'>Invalid receiving channel name.</FONT><BR>"
 			if(src.admincaster_feed_message.body == "" || src.admincaster_feed_message.body == "\[REDACTED\]")
 				dat+="<FONT COLOR='maroon'>Invalid message body.</FONT><BR>"
-			dat+="<BR><A href='?src=\ref[src];ac_setScreen=[3]'>Return</A><BR>"
+			dat+="<BR><A href='byond://?src=\ref[src];ac_setScreen=[3]'>Return</A><BR>"
 		if(7)
 			dat+="<B><FONT COLOR='maroon'>ERROR: Could not submit Feed Channel to Network.</B></FONT><HR><BR>"
 			if(src.admincaster_feed_channel.channel_name =="" || src.admincaster_feed_channel.channel_name == "\[REDACTED\]")
@@ -454,7 +454,7 @@ var/global/BSACooldown = 0
 					break
 			if(check)
 				dat+="<FONT COLOR='maroon'>Channel name already in use.</FONT><BR>"
-			dat+="<BR><A href='?src=\ref[src];ac_setScreen=[2]'>Return</A><BR>"
+			dat+="<BR><A href='byond://?src=\ref[src];ac_setScreen=[2]'>Return</A><BR>"
 		if(9)
 			dat+="<B>[src.admincaster_feed_channel.channel_name]: </B><FONT SIZE=1>\[created by: <FONT COLOR='maroon'>[src.admincaster_feed_channel.author]</FONT>\]</FONT><HR>"
 			if(src.admincaster_feed_channel.censored)
@@ -475,8 +475,8 @@ var/global/BSACooldown = 0
 							dat+="<img src='tmp_photo[i].png' width = '180'><BR><BR>"
 						dat+="<FONT SIZE=1>\[Story by <FONT COLOR='maroon'>[MESSAGE.author]</FONT>\]</FONT><BR>"
 			dat+={"
-				<BR><HR><A href='?src=\ref[src];ac_refresh=1'>Refresh</A>
-				<BR><A href='?src=\ref[src];ac_setScreen=[1]'>Back</A>
+				<BR><HR><A href='byond://?src=\ref[src];ac_refresh=1'>Refresh</A>
+				<BR><A href='byond://?src=\ref[src];ac_setScreen=[1]'>Back</A>
 			"}
 		if(10)
 			dat+={"
@@ -489,8 +489,8 @@ var/global/BSACooldown = 0
 				dat+="<I>No feed channels found active...</I><BR>"
 			else
 				for(var/datum/feed_channel/CHANNEL in news_network.network_channels)
-					dat+="<A href='?src=\ref[src];ac_pick_censor_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : null ]<BR>"
-			dat+="<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Cancel</A>"
+					dat+="<A href='byond://?src=\ref[src];ac_pick_censor_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : null ]<BR>"
+			dat+="<BR><A href='byond://?src=\ref[src];ac_setScreen=[0]'>Cancel</A>"
 		if(11)
 			dat+={"
 				<B>[global.using_map.company_name] D-Notice Handler</B><HR>
@@ -502,13 +502,13 @@ var/global/BSACooldown = 0
 				dat+="<I>No feed channels found active...</I><BR>"
 			else
 				for(var/datum/feed_channel/CHANNEL in news_network.network_channels)
-					dat+="<A href='?src=\ref[src];ac_pick_d_notice=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : null ]<BR>"
+					dat+="<A href='byond://?src=\ref[src];ac_pick_d_notice=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : null ]<BR>"
 
-			dat+="<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Back</A>"
+			dat+="<BR><A href='byond://?src=\ref[src];ac_setScreen=[0]'>Back</A>"
 		if(12)
 			dat+={"
 				<B>[src.admincaster_feed_channel.channel_name]: </B><FONT SIZE=1>\[ created by: <FONT COLOR='maroon'>[src.admincaster_feed_channel.author]</FONT> \]</FONT><BR>
-				<FONT SIZE=2><A href='?src=\ref[src];ac_censor_channel_author=\ref[src.admincaster_feed_channel]'>[(src.admincaster_feed_channel.author=="\[REDACTED\]") ? ("Undo Author censorship") : ("Censor channel Author")]</A></FONT><HR>
+				<FONT SIZE=2><A href='byond://?src=\ref[src];ac_censor_channel_author=\ref[src.admincaster_feed_channel]'>[(src.admincaster_feed_channel.author=="\[REDACTED\]") ? ("Undo Author censorship") : ("Censor channel Author")]</A></FONT><HR>
 			"}
 			if( !length(src.admincaster_feed_channel.messages) )
 				dat+="<I>No feed messages found in channel...</I><BR>"
@@ -516,13 +516,13 @@ var/global/BSACooldown = 0
 				for(var/datum/feed_message/MESSAGE in src.admincaster_feed_channel.messages)
 					dat+={"
 						-[MESSAGE.body] <BR><FONT SIZE=1>\[Story by <FONT COLOR='maroon'>[MESSAGE.author]</FONT>\]</FONT><BR>
-						<FONT SIZE=2><A href='?src=\ref[src];ac_censor_channel_story_body=\ref[MESSAGE]'>[(MESSAGE.body == "\[REDACTED\]") ? ("Undo story censorship") : ("Censor story")]</A>  -  <A href='?src=\ref[src];ac_censor_channel_story_author=\ref[MESSAGE]'>[(MESSAGE.author == "\[REDACTED\]") ? ("Undo Author Censorship") : ("Censor message Author")]</A></FONT><BR>
+						<FONT SIZE=2><A href='byond://?src=\ref[src];ac_censor_channel_story_body=\ref[MESSAGE]'>[(MESSAGE.body == "\[REDACTED\]") ? ("Undo story censorship") : ("Censor story")]</A>  -  <A href='byond://?src=\ref[src];ac_censor_channel_story_author=\ref[MESSAGE]'>[(MESSAGE.author == "\[REDACTED\]") ? ("Undo Author Censorship") : ("Censor message Author")]</A></FONT><BR>
 					"}
-			dat+="<BR><A href='?src=\ref[src];ac_setScreen=[10]'>Back</A>"
+			dat+="<BR><A href='byond://?src=\ref[src];ac_setScreen=[10]'>Back</A>"
 		if(13)
 			dat+={"
 				<B>[src.admincaster_feed_channel.channel_name]: </B><FONT SIZE=1>\[ created by: <FONT COLOR='maroon'>[src.admincaster_feed_channel.author]</FONT> \]</FONT><BR>
-				Channel messages listed below. If you deem them dangerous to the [station_name()], you can <A href='?src=\ref[src];ac_toggle_d_notice=\ref[src.admincaster_feed_channel]'>Bestow a D-Notice upon the channel</A>.<HR>
+				Channel messages listed below. If you deem them dangerous to the [station_name()], you can <A href='byond://?src=\ref[src];ac_toggle_d_notice=\ref[src.admincaster_feed_channel]'>Bestow a D-Notice upon the channel</A>.<HR>
 			"}
 			if(src.admincaster_feed_channel.censored)
 				dat+={"
@@ -536,7 +536,7 @@ var/global/BSACooldown = 0
 					for(var/datum/feed_message/MESSAGE in src.admincaster_feed_channel.messages)
 						dat+="-[MESSAGE.body] <BR><FONT SIZE=1>\[Story by <FONT COLOR='maroon'>[MESSAGE.author]</FONT>\]</FONT><BR>"
 
-			dat+="<BR><A href='?src=\ref[src];ac_setScreen=[11]'>Back</A>"
+			dat+="<BR><A href='byond://?src=\ref[src];ac_setScreen=[11]'>Back</A>"
 		if(14)
 			dat+="<B>Wanted Issue Handler:</B>"
 			var/wanted_already = 0
@@ -548,21 +548,21 @@ var/global/BSACooldown = 0
 				dat+="<FONT SIZE=2><BR><I>A wanted issue is already in Feed Circulation. You can edit or cancel it below.</FONT></I>"
 			dat+={"
 				<HR>
-				<A href='?src=\ref[src];ac_set_wanted_name=1'>Criminal Name</A>: [src.admincaster_feed_message.author] <BR>
-				<A href='?src=\ref[src];ac_set_wanted_desc=1'>Description</A>: [src.admincaster_feed_message.body] <BR>
+				<A href='byond://?src=\ref[src];ac_set_wanted_name=1'>Criminal Name</A>: [src.admincaster_feed_message.author] <BR>
+				<A href='byond://?src=\ref[src];ac_set_wanted_desc=1'>Description</A>: [src.admincaster_feed_message.body] <BR>
 			"}
 			if(wanted_already)
 				dat+="<B>Wanted Issue created by:</B><FONT COLOR='green'> [news_network.wanted_issue.backup_author]</FONT><BR>"
 			else
 				dat+="<B>Wanted Issue will be created under prosecutor:</B><FONT COLOR='green'> [src.admincaster_signature]</FONT><BR>"
-			dat+="<BR><A href='?src=\ref[src];ac_submit_wanted=[end_param]'>[(wanted_already) ? ("Edit Issue") : ("Submit")]</A>"
+			dat+="<BR><A href='byond://?src=\ref[src];ac_submit_wanted=[end_param]'>[(wanted_already) ? ("Edit Issue") : ("Submit")]</A>"
 			if(wanted_already)
-				dat+="<BR><A href='?src=\ref[src];ac_cancel_wanted=1'>Take down Issue</A>"
-			dat+="<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Cancel</A>"
+				dat+="<BR><A href='byond://?src=\ref[src];ac_cancel_wanted=1'>Take down Issue</A>"
+			dat+="<BR><A href='byond://?src=\ref[src];ac_setScreen=[0]'>Cancel</A>"
 		if(15)
 			dat+={"
 				<FONT COLOR='green'>Wanted issue for [src.admincaster_feed_message.author] is now in Network Circulation.</FONT><BR><BR>
-				<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Return</A><BR>
+				<BR><A href='byond://?src=\ref[src];ac_setScreen=[0]'>Return</A><BR>
 			"}
 		if(16)
 			dat+="<B><FONT COLOR='maroon'>ERROR: Wanted Issue rejected by Network.</B></FONT><HR><BR>"
@@ -570,11 +570,11 @@ var/global/BSACooldown = 0
 				dat+="<FONT COLOR='maroon'>Invalid name for person wanted.</FONT><BR>"
 			if(src.admincaster_feed_message.body == "" || src.admincaster_feed_message.body == "\[REDACTED\]")
 				dat+="<FONT COLOR='maroon'>Invalid description.</FONT><BR>"
-			dat+="<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Return</A><BR>"
+			dat+="<BR><A href='byond://?src=\ref[src];ac_setScreen=[0]'>Return</A><BR>"
 		if(17)
 			dat+={"
 				<B>Wanted Issue successfully deleted from Circulation</B><BR>
-				<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Return</A><BR>
+				<BR><A href='byond://?src=\ref[src];ac_setScreen=[0]'>Return</A><BR>
 			"}
 		if(18)
 			dat+={"
@@ -588,11 +588,11 @@ var/global/BSACooldown = 0
 				dat+="<BR><img src='tmp_photow.png' width = '180'>"
 			else
 				dat+="None"
-			dat+="<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Back</A><BR>"
+			dat+="<BR><A href='byond://?src=\ref[src];ac_setScreen=[0]'>Back</A><BR>"
 		if(19)
 			dat+={"
 				<FONT COLOR='green'>Wanted issue for [src.admincaster_feed_message.author] successfully edited.</FONT><BR><BR>
-				<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Return</A><BR>
+				<BR><A href='byond://?src=\ref[src];ac_setScreen=[0]'>Return</A><BR>
 			"}
 		else
 			dat+="I'm sorry to break your immersion. This shit's bugged. Report this bug to Agouri, polyxenitopalidou@gmail.com"
@@ -613,7 +613,7 @@ var/global/BSACooldown = 0
 		var/r = t
 		if( findtext(r,"##") )
 			r = copytext( r, 1, findtext(r,"##") )//removes the description
-		dat += text("<tr><td>[t] (<A href='?src=\ref[src];removejobban=[r]'>unban</A>)</td></tr>")
+		dat += text("<tr><td>[t] (<A href='byond://?src=\ref[src];removejobban=[r]'>unban</A>)</td></tr>")
 	dat += "</table>"
 	show_browser(usr, dat, "window=ban;size=400x400")
 
@@ -622,20 +622,20 @@ var/global/BSACooldown = 0
 
 	var/dat = {"
 		<center><B>Game Panel</B></center><hr>\n
-		<A href='?src=\ref[src];c_mode=1'>Change Game Mode</A><br>
+		<A href='byond://?src=\ref[src];c_mode=1'>Change Game Mode</A><br>
 		"}
 	if(SSticker.master_mode == "secret")
-		dat += "<A href='?src=\ref[src];f_secret=1'>(Force Secret Mode)</A><br>"
+		dat += "<A href='byond://?src=\ref[src];f_secret=1'>(Force Secret Mode)</A><br>"
 
 	dat += {"
 		<BR>
-		<A href='?src=\ref[src];create_object=1'>Create Object</A><br>
-		<A href='?src=\ref[src];quick_create_object=1'>Quick Create Object</A><br>
-		<A href='?src=\ref[src];create_turf=1'>Create Turf</A><br>
-		<A href='?src=\ref[src];create_mob=1'>Create Mob</A><br>
-		<br><A href='?src=\ref[src];vsc=airflow'>Edit Airflow Settings</A><br>
-		<A href='?src=\ref[src];vsc=contam'>Edit Contaminant Settings</A><br>
-		<A href='?src=\ref[src];vsc=default'>Choose a default ZAS setting</A><br>
+		<A href='byond://?src=\ref[src];create_object=1'>Create Object</A><br>
+		<A href='byond://?src=\ref[src];quick_create_object=1'>Quick Create Object</A><br>
+		<A href='byond://?src=\ref[src];create_turf=1'>Create Turf</A><br>
+		<A href='byond://?src=\ref[src];create_mob=1'>Create Mob</A><br>
+		<br><A href='byond://?src=\ref[src];vsc=airflow'>Edit Airflow Settings</A><br>
+		<A href='byond://?src=\ref[src];vsc=contam'>Edit Contaminant Settings</A><br>
+		<A href='byond://?src=\ref[src];vsc=default'>Choose a default ZAS setting</A><br>
 		"}
 
 	show_browser(usr, dat, "window=admin2;size=210x280")
@@ -652,7 +652,7 @@ var/global/BSACooldown = 0
 		if(active_category == category)
 			dat += "<span class='linkOn'>[category.name]</span>"
 		else
-			dat += "<A href='?src=\ref[src];admin_secrets_panel=\ref[category]'>[category.name]</A> "
+			dat += "<A href='byond://?src=\ref[src];admin_secrets_panel=\ref[category]'>[category.name]</A> "
 	dat += "<HR>"
 
 	// If a category is selected, print its description and then options
@@ -662,7 +662,7 @@ var/global/BSACooldown = 0
 		for(var/datum/admin_secret_item/item in active_category.items)
 			if(!item.can_view(usr))
 				continue
-			dat += "<A href='?src=\ref[src];admin_secrets=\ref[item]'>[item.name()]</A><BR>"
+			dat += "<A href='byond://?src=\ref[src];admin_secrets=\ref[item]'>[item.name()]</A><BR>"
 		dat += "<BR>"
 
 	var/datum/browser/popup = new(usr, "secrets", "Secrets", 550, 500)
@@ -1152,38 +1152,38 @@ var/global/BSACooldown = 0
 		alert("Not before roundstart!", "Alert")
 		return
 
-	var/out = "<font size=3><b>Current mode: [SSticker.mode.name] (<a href='?src=\ref[SSticker.mode];debug_antag=self'>[SSticker.mode.uid]</a>)</b></font><br/>"
+	var/out = "<font size=3><b>Current mode: [SSticker.mode.name] (<a href='byond://?src=\ref[SSticker.mode];debug_antag=self'>[SSticker.mode.uid]</a>)</b></font><br/>"
 	out += "<hr>"
 
 	if(SSticker.mode.ert_disabled)
-		out += "<b>Emergency Response Teams:</b> <a href='?src=\ref[SSticker.mode];toggle=ert'>disabled</a>"
+		out += "<b>Emergency Response Teams:</b> <a href='byond://?src=\ref[SSticker.mode];toggle=ert'>disabled</a>"
 	else
-		out += "<b>Emergency Response Teams:</b> <a href='?src=\ref[SSticker.mode];toggle=ert'>enabled</a>"
+		out += "<b>Emergency Response Teams:</b> <a href='byond://?src=\ref[SSticker.mode];toggle=ert'>enabled</a>"
 	out += "<br/>"
 
 	if(SSticker.mode.deny_respawn)
-		out += "<b>Respawning:</b> <a href='?src=\ref[SSticker.mode];toggle=respawn'>disallowed</a>"
+		out += "<b>Respawning:</b> <a href='byond://?src=\ref[SSticker.mode];toggle=respawn'>disallowed</a>"
 	else
-		out += "<b>Respawning:</b> <a href='?src=\ref[SSticker.mode];toggle=respawn'>allowed</a>"
+		out += "<b>Respawning:</b> <a href='byond://?src=\ref[SSticker.mode];toggle=respawn'>allowed</a>"
 	out += "<br/>"
 
-	out += "<b>Shuttle delay multiplier:</b> <a href='?src=\ref[SSticker.mode];set=shuttle_delay'>[SSticker.mode.shuttle_delay]</a><br/>"
+	out += "<b>Shuttle delay multiplier:</b> <a href='byond://?src=\ref[SSticker.mode];set=shuttle_delay'>[SSticker.mode.shuttle_delay]</a><br/>"
 
 	if(SSticker.mode.auto_recall_shuttle)
-		out += "<b>Shuttle auto-recall:</b> <a href='?src=\ref[SSticker.mode];toggle=shuttle_recall'>enabled</a>"
+		out += "<b>Shuttle auto-recall:</b> <a href='byond://?src=\ref[SSticker.mode];toggle=shuttle_recall'>enabled</a>"
 	else
-		out += "<b>Shuttle auto-recall:</b> <a href='?src=\ref[SSticker.mode];toggle=shuttle_recall'>disabled</a>"
+		out += "<b>Shuttle auto-recall:</b> <a href='byond://?src=\ref[SSticker.mode];toggle=shuttle_recall'>disabled</a>"
 	out += "<br/><br/>"
 
 	if(SSticker.mode.event_delay_mod_moderate)
-		out += "<b>Moderate event time modifier:</b> <a href='?src=\ref[SSticker.mode];set=event_modifier_moderate'>[SSticker.mode.event_delay_mod_moderate]</a><br/>"
+		out += "<b>Moderate event time modifier:</b> <a href='byond://?src=\ref[SSticker.mode];set=event_modifier_moderate'>[SSticker.mode.event_delay_mod_moderate]</a><br/>"
 	else
-		out += "<b>Moderate event time modifier:</b> <a href='?src=\ref[SSticker.mode];set=event_modifier_moderate'>unset</a><br/>"
+		out += "<b>Moderate event time modifier:</b> <a href='byond://?src=\ref[SSticker.mode];set=event_modifier_moderate'>unset</a><br/>"
 
 	if(SSticker.mode.event_delay_mod_major)
-		out += "<b>Major event time modifier:</b> <a href='?src=\ref[SSticker.mode];set=event_modifier_severe'>[SSticker.mode.event_delay_mod_major]</a><br/>"
+		out += "<b>Major event time modifier:</b> <a href='byond://?src=\ref[SSticker.mode];set=event_modifier_severe'>[SSticker.mode.event_delay_mod_major]</a><br/>"
 	else
-		out += "<b>Major event time modifier:</b> <a href='?src=\ref[SSticker.mode];set=event_modifier_severe'>unset</a><br/>"
+		out += "<b>Major event time modifier:</b> <a href='byond://?src=\ref[SSticker.mode];set=event_modifier_severe'>unset</a><br/>"
 
 	out += "<hr>"
 
@@ -1192,28 +1192,28 @@ var/global/BSACooldown = 0
 		for(var/antag_type in SSticker.mode.associated_antags)
 			var/decl/special_role/antag = GET_DECL(antag_type)
 			if(antag)
-				out += "<a href='?src=\ref[SSticker.mode];debug_antag=\ref[antag]'>[antag.name]</a>.</br>"
+				out += "<a href='byond://?src=\ref[SSticker.mode];debug_antag=\ref[antag]'>[antag.name]</a>.</br>"
 
 	if(SSticker.mode.round_autoantag)
-		out += "<b>Autotraitor <a href='?src=\ref[SSticker.mode];toggle=autotraitor'>enabled</a></b>."
+		out += "<b>Autotraitor <a href='byond://?src=\ref[SSticker.mode];toggle=autotraitor'>enabled</a></b>."
 		if(SSticker.mode.antag_scaling_coeff > 0)
-			out += " (scaling with <a href='?src=\ref[SSticker.mode];set=antag_scaling'>[SSticker.mode.antag_scaling_coeff]</a>)"
+			out += " (scaling with <a href='byond://?src=\ref[SSticker.mode];set=antag_scaling'>[SSticker.mode.antag_scaling_coeff]</a>)"
 		else
-			out += " (not currently scaling, <a href='?src=\ref[SSticker.mode];set=antag_scaling'>set a coefficient</a>)"
+			out += " (not currently scaling, <a href='byond://?src=\ref[SSticker.mode];set=antag_scaling'>set a coefficient</a>)"
 		out += "<br/>"
 	else
-		out += "<b>Autotraitor <a href='?src=\ref[SSticker.mode];toggle=autotraitor'>disabled</a></b>.<br/>"
+		out += "<b>Autotraitor <a href='byond://?src=\ref[SSticker.mode];toggle=autotraitor'>disabled</a></b>.<br/>"
 
 	out += "<b>All antag ids:</b>"
 	if(SSticker.mode.antag_templates && SSticker.mode.antag_templates.len)
 		for(var/decl/special_role/antag in SSticker.mode.antag_templates)
 			antag.update_current_antag_max(SSticker.mode)
-			out += " <a href='?src=\ref[SSticker.mode];debug_antag=\ref[antag]'>[antag.name]</a>"
+			out += " <a href='byond://?src=\ref[SSticker.mode];debug_antag=\ref[antag]'>[antag.name]</a>"
 			out += " ([antag.get_antag_count()]/[antag.cur_max]) "
-			out += " <a href='?src=\ref[SSticker.mode];remove_antag_type=\ref[antag]'>\[-\]</a><br/>"
+			out += " <a href='byond://?src=\ref[SSticker.mode];remove_antag_type=\ref[antag]'>\[-\]</a><br/>"
 	else
 		out += " None."
-	out += " <a href='?src=\ref[SSticker.mode];add_antag_type=1'>\[+\]</a><br/>"
+	out += " <a href='byond://?src=\ref[SSticker.mode];add_antag_type=1'>\[+\]</a><br/>"
 
 	show_browser(usr, out, "window=edit_mode[src]")
 	SSstatistics.add_field_details("admin_verb","SGM")
@@ -1303,15 +1303,15 @@ var/global/BSACooldown = 0
 			return "<b>[key_name(C, link, name, highlight_special, ticket)]</b>"
 
 		if(1)	//Private Messages
-			return "<b>[key_name(C, link, name, highlight_special, ticket)](<A HREF='?_src_=holder;adminmoreinfo=\ref[M]'>?</A>)</b>"
+			return "<b>[key_name(C, link, name, highlight_special, ticket)](<A HREF='byond://?_src_=holder;adminmoreinfo=\ref[M]'>?</A>)</b>"
 
 		if(2)	//Admins
 			var/ref_mob = "\ref[M]"
-			return "<b>[key_name(C, link, name, highlight_special, ticket)](<A HREF='?_src_=holder;adminmoreinfo=[ref_mob]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=[ref_mob]'>PP</A>) (<A HREF='?_src_=vars;Vars=[ref_mob]'>VV</A>) (<A HREF='?_src_=holder;narrateto=[ref_mob]'>DN</A>) ([admin_jump_link(M)]) (<A HREF='?_src_=holder;show_round_status=1'>RS</A>)</b>"
+			return "<b>[key_name(C, link, name, highlight_special, ticket)](<A HREF='byond://?_src_=holder;adminmoreinfo=[ref_mob]'>?</A>) (<A HREF='byond://?_src_=holder;adminplayeropts=[ref_mob]'>PP</A>) (<A HREF='byond://?_src_=vars;Vars=[ref_mob]'>VV</A>) (<A HREF='byond://?_src_=holder;narrateto=[ref_mob]'>DN</A>) ([admin_jump_link(M)]) (<A HREF='byond://?_src_=holder;show_round_status=1'>RS</A>)</b>"
 
 		if(3)	//Devs
 			var/ref_mob = "\ref[M]"
-			return "<b>[key_name(C, link, name, highlight_special, ticket)](<A HREF='?_src_=vars;Vars=[ref_mob]'>VV</A>)([admin_jump_link(M)])</b>"
+			return "<b>[key_name(C, link, name, highlight_special, ticket)](<A HREF='byond://?_src_=vars;Vars=[ref_mob]'>VV</A>)([admin_jump_link(M)])</b>"
 
 /proc/ishost(var/client/C)
 	return check_rights(R_HOST, 0, C)
@@ -1440,7 +1440,7 @@ var/global/BSACooldown = 0
 		if(!N || !CN)
 			continue
 		var/area/A = get_area(F)
-		html += "<li><a href='?src=\ref[src];asf_pick_fax=1;destination=\ref[F]'>[CN.network_id].[N.network_tag] [A? "([A])" : ""]</a></li>"
+		html += "<li><a href='byond://?src=\ref[src];asf_pick_fax=1;destination=\ref[F]'>[CN.network_id].[N.network_tag] [A? "([A])" : ""]</a></li>"
 	html = "<ul>[html]</ul>"
 	html = "<html><header/><body>[html]</body></html>"
 	show_browser(user, html, "size=512x800;window=faxpicker;title=")
diff --git a/code/modules/admin/admin_attack_log.dm b/code/modules/admin/admin_attack_log.dm
index 9b5c377c7cb..4affd41b31d 100644
--- a/code/modules/admin/admin_attack_log.dm
+++ b/code/modules/admin/admin_attack_log.dm
@@ -114,7 +114,7 @@
 
 /proc/append_admin_tools(var/message, var/mob, var/turf/location)
 	if(location)
-		message = message + " (<a HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[location.x];Y=[location.y];Z=[location.z]'>LOC</a>)"
+		message = message + " (<a HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[location.x];Y=[location.y];Z=[location.z]'>LOC</a>)"
 	if(mob)
-		message = message + " (<a HREF='?_src_=holder;adminplayerobservefollow=\ref[mob]'>MOB</a>)"
+		message = message + " (<a HREF='byond://?_src_=holder;adminplayerobservefollow=\ref[mob]'>MOB</a>)"
 	return message
diff --git a/code/modules/admin/dbban/functions.dm b/code/modules/admin/dbban/functions.dm
index 6580398d8e3..fc8594d64e7 100644
--- a/code/modules/admin/dbban/functions.dm
+++ b/code/modules/admin/dbban/functions.dm
@@ -321,7 +321,7 @@
 
 	output += "<td width='65%' align='center' bgcolor='#f9f9f9'>"
 
-	output += "<form method='GET' action='?src=\ref[src]'><b>Add custom ban:</b> (ONLY use this if you can't ban through any other method)"
+	output += "<form method='GET' action='byond://?src=\ref[src]'><b>Add custom ban:</b> (ONLY use this if you can't ban through any other method)"
 	output += "<input type='hidden' name='src' value='\ref[src]'>"
 	output += "<table width='100%'><tr>"
 	output += "<td width='50%' align='right'><b>Ban type:</b><select name='dbbanaddtype'>"
@@ -355,7 +355,7 @@
 	output += "</tr>"
 	output += "</table>"
 
-	output += "<form method='GET' action='?src=\ref[src]'><table width='60%'><tr><td colspan='2' align='left'><b>Search:</b>"
+	output += "<form method='GET' action='byond://?src=\ref[src]'><table width='60%'><tr><td colspan='2' align='left'><b>Search:</b>"
 	output += "<input type='hidden' name='src' value='\ref[src]'></td></tr>"
 	output += "<tr><td width='50%' align='right'><b>Ckey:</b> <input type='text' name='dbsearchckey' value='[playerckey]'></td>"
 	output += "<td width='50%' align='right'><b>Admin ckey:</b> <input type='text' name='dbsearchadmin' value='[adminckey]'></td></tr>"
diff --git a/code/modules/admin/permissionverbs/permissionedit.dm b/code/modules/admin/permissionverbs/permissionedit.dm
index add6b917af5..dde03a14e37 100644
--- a/code/modules/admin/permissionverbs/permissionedit.dm
+++ b/code/modules/admin/permissionverbs/permissionedit.dm
@@ -18,7 +18,7 @@
 <body onload='selectTextField();updateSearch();'>
 <div id='main'><table id='searchable' cellspacing='0'>
 <tr class='title'>
-<th style='width:125px;text-align:right;'>CKEY <a class='small' href='?src=\ref[src];editrights=add'>\[+\]</a></th>
+<th style='width:125px;text-align:right;'>CKEY <a class='small' href='byond://?src=\ref[src];editrights=add'>\[+\]</a></th>
 <th style='width:125px;'>RANK</th><th style='width:100%;'>PERMISSIONS</th>
 </tr>
 "}
@@ -31,9 +31,9 @@
 		if(!rights)	rights = "*none*"
 
 		output += "<tr>"
-		output += "<td style='text-align:right;'>[adm_ckey] <a class='small' href='?src=\ref[src];editrights=remove;ckey=[adm_ckey]'>\[-\]</a></td>"
-		output += "<td><a href='?src=\ref[src];editrights=rank;ckey=[adm_ckey]'>[rank]</a></td>"
-		output += "<td><a class='small' href='?src=\ref[src];editrights=permissions;ckey=[adm_ckey]'>[rights]</a></td>"
+		output += "<td style='text-align:right;'>[adm_ckey] <a class='small' href='byond://?src=\ref[src];editrights=remove;ckey=[adm_ckey]'>\[-\]</a></td>"
+		output += "<td><a href='byond://?src=\ref[src];editrights=rank;ckey=[adm_ckey]'>[rank]</a></td>"
+		output += "<td><a class='small' href='byond://?src=\ref[src];editrights=permissions;ckey=[adm_ckey]'>[rights]</a></td>"
 		output += "</tr>"
 
 	output += {"
diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm
index 0cb37e12e0f..649c4b54265 100644
--- a/code/modules/admin/player_panel.dm
+++ b/code/modules/admin/player_panel.dm
@@ -75,15 +75,15 @@
 
 					body += "</td><td align='center'>";
 
-					body += "<a href='?src=\ref[src];adminplayeropts="+ref+"'>Player Panel</a> - "
-					body += "<a href='?src=\ref[src];notes=show;mob="+ref+"'>Notes</a> - "
-					body += "<a href='?_src_=vars;Vars="+ref+"'>View Vars</a> - "
-					body += "<a href='?src=\ref[src];show_special_roles="+ref+"'>Special Roles</a> - "
-					body += "<a href='?src=\ref[usr];priv_msg="+ref+"'>Send PM</a> - "
-					body += "<a href='?src=\ref[src];narrateto="+ref+"'>Direct Narrate</a> - "
-					body += "<a href='?src=\ref[src];adminplayerobservejump="+ref+"'>Jump To</a><br>"
+					body += "<a href='byond://?src=\ref[src];adminplayeropts="+ref+"'>Player Panel</a> - "
+					body += "<a href='byond://?src=\ref[src];notes=show;mob="+ref+"'>Notes</a> - "
+					body += "<a href='byond://?_src_=vars;Vars="+ref+"'>View Vars</a> - "
+					body += "<a href='byond://?src=\ref[src];show_special_roles="+ref+"'>Special Roles</a> - "
+					body += "<a href='byond://?src=\ref[usr];priv_msg="+ref+"'>Send PM</a> - "
+					body += "<a href='byond://?src=\ref[src];narrateto="+ref+"'>Direct Narrate</a> - "
+					body += "<a href='byond://?src=\ref[src];adminplayerobservejump="+ref+"'>Jump To</a><br>"
 					if(antagonist > 0)
-						body += "<font size='2'><a href='?src=\ref[src];show_round_status=1'><font color='red'><b>Antagonist</b></font></a></font>";
+						body += "<font size='2'><a href='byond://?src=\ref[src];show_round_status=1'><font color='red'><b>Antagonist</b></font></a></font>";
 
 					body += "</td></tr></table>";
 
@@ -194,7 +194,7 @@
 			<tr id='title_tr'>
 				<td align='center'>
 					<font size='5'><b>Player panel</b></font><br>
-					Hover over a line to see more information, or click <a href='?src=\ref[src];show_round_status=1'>here</a> to check round info.
+					Hover over a line to see more information, or click <a href='byond://?src=\ref[src];show_round_status=1'>here</a> to check round info.
 					<p>
 				</td>
 			</tr>
@@ -288,14 +288,14 @@
 
 		if(SSevac.evacuation_controller)
 			if (SSevac.evacuation_controller.is_idle())
-				dat += "<a href='?src=\ref[src];call_shuttle=1'>Call Evacuation</a><br>"
+				dat += "<a href='byond://?src=\ref[src];call_shuttle=1'>Call Evacuation</a><br>"
 			else
 				var/timeleft = SSevac.evacuation_controller.get_eta()
 				if (SSevac.evacuation_controller.waiting_to_leave())
 					dat += "ETA: [(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]<BR>"
-					dat += "<a href='?src=\ref[src];call_shuttle=2'>Send Back</a><br>"
+					dat += "<a href='byond://?src=\ref[src];call_shuttle=2'>Send Back</a><br>"
 
-		dat += "<a href='?src=\ref[src];delay_round_end=1'>[SSticker.delay_end ? "End Round Normally" : "Delay Round End"]</a><br>"
+		dat += "<a href='byond://?src=\ref[src];delay_round_end=1'>[SSticker.delay_end ? "End Round Normally" : "Delay Round End"]</a><br>"
 		dat += "<hr>"
 		var/list/all_antag_types = decls_repository.get_decls_of_subtype(/decl/special_role)
 		for(var/antag_type in all_antag_types)
diff --git a/code/modules/admin/secrets/admin_secrets/jump_shuttle.dm b/code/modules/admin/secrets/admin_secrets/jump_shuttle.dm
index 9e39946a9e0..112a28de7b8 100644
--- a/code/modules/admin/secrets/admin_secrets/jump_shuttle.dm
+++ b/code/modules/admin/secrets/admin_secrets/jump_shuttle.dm
@@ -29,7 +29,7 @@
 		var/move_duration = input(user, "How many seconds will this jump take?") as num
 
 		S.long_jump(destination, transition, move_duration)
-		log_and_message_admins("has initiated a jump to [destination] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[destination.x];Y=[destination.y];Z=[destination.z]'>JMP</a>) lasting [move_duration] seconds in transit at [transition] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[transition.x];Y=[transition.y];Z=[transition.z]'>JMP</a>) for the [shuttle_tag] shuttle")
+		log_and_message_admins("has initiated a jump to [destination] (<A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[destination.x];Y=[destination.y];Z=[destination.z]'>JMP</a>) lasting [move_duration] seconds in transit at [transition] (<A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[transition.x];Y=[transition.y];Z=[transition.z]'>JMP</a>) for the [shuttle_tag] shuttle")
 	else
 		S.short_jump(destination)
-		log_and_message_admins("has initiated a jump to [destination] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[destination.x];Y=[destination.y];Z=[destination.z]'>JMP</a>) for the [shuttle_tag] shuttle")
+		log_and_message_admins("has initiated a jump to [destination] (<A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[destination.x];Y=[destination.y];Z=[destination.z]'>JMP</a>) for the [shuttle_tag] shuttle")
diff --git a/code/modules/admin/secrets/admin_secrets/move_shuttle.dm b/code/modules/admin/secrets/admin_secrets/move_shuttle.dm
index bdf27f6a85e..585b6ab090f 100644
--- a/code/modules/admin/secrets/admin_secrets/move_shuttle.dm
+++ b/code/modules/admin/secrets/admin_secrets/move_shuttle.dm
@@ -26,4 +26,4 @@
 	if (!destination) return
 
 	S.attempt_move(destination)
-	log_and_message_admins("moved the [shuttle_tag] shuttle to [destination] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[destination.x];Y=[destination.y];Z=[destination.z]'>JMP</a>)", user)
+	log_and_message_admins("moved the [shuttle_tag] shuttle to [destination] (<A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[destination.x];Y=[destination.y];Z=[destination.z]'>JMP</a>)", user)
diff --git a/code/modules/admin/secrets/investigation/admin_pms.dm b/code/modules/admin/secrets/investigation/admin_pms.dm
index 45fe20ff208..cd57bf73283 100644
--- a/code/modules/admin/secrets/investigation/admin_pms.dm
+++ b/code/modules/admin/secrets/investigation/admin_pms.dm
@@ -6,9 +6,9 @@
 	if(!.)
 		return
 	var/dat = list()
-	dat += "<a href='?src=\ref[src];filter=[filter]'>Refresh</a> Filtering on: "
+	dat += "<a href='byond://?src=\ref[src];filter=[filter]'>Refresh</a> Filtering on: "
 	if(filter)
-		dat += " [filter] <a href='?src=\ref[src]'>Clear</a>"
+		dat += " [filter] <a href='byond://?src=\ref[src]'>Clear</a>"
 	else
 		dat += "None"
 	dat += "<HR>"
@@ -23,9 +23,9 @@
 			continue
 
 		if(receiver)
-			dat += "<tr><td>[pm.station_time]</td><td>[sender.key_name(FALSE)] <a href='?src=\ref[src];filter=[html_encode(sender.ckey)]'>F</a></td><td>[receiver.key_name(FALSE)] <a href='?src=\ref[src];filter=[receiver.ckey]'>F</a></td></tr>"
+			dat += "<tr><td>[pm.station_time]</td><td>[sender.key_name(FALSE)] <a href='byond://?src=\ref[src];filter=[html_encode(sender.ckey)]'>F</a></td><td>[receiver.key_name(FALSE)] <a href='byond://?src=\ref[src];filter=[receiver.ckey]'>F</a></td></tr>"
 		else
-			dat += "<tr><td>[pm.station_time]</td><td>[sender.key_name(FALSE)] <a href='?src=\ref[src];filter=[html_encode(sender.ckey)]'>F</a></td><td></td></tr>"
+			dat += "<tr><td>[pm.station_time]</td><td>[sender.key_name(FALSE)] <a href='byond://?src=\ref[src];filter=[html_encode(sender.ckey)]'>F</a></td><td></td></tr>"
 		dat += "<tr><td colspan=3>[pm.message]</td></tr>"
 	dat += "</table>"
 
diff --git a/code/modules/admin/secrets/investigation/attack_logs.dm b/code/modules/admin/secrets/investigation/attack_logs.dm
index f9d2f405aad..201adaa00bf 100644
--- a/code/modules/admin/secrets/investigation/attack_logs.dm
+++ b/code/modules/admin/secrets/investigation/attack_logs.dm
@@ -11,9 +11,9 @@
 	if(!.)
 		return
 	var/dat = list()
-	dat += "<a href='?src=\ref[src]'>Refresh</a> | "
+	dat += "<a href='byond://?src=\ref[src]'>Refresh</a> | "
 	dat += get_filter_html(user)
-	dat += " | <a href='?src=\ref[src];reset=1'>Reset</a>"
+	dat += " | <a href='byond://?src=\ref[src];reset=1'>Reset</a>"
 	dat += "<HR>"
 	dat += "<table border='1' style='width:100%;border-collapse:collapse;'>"
 	dat += "<tr><th style='text-align:left;'>Time</th><th style='text-align:left;'>Attacker</th><th style='text-align:left;'>Intent</th><th style='text-align:left;'>Zone Sel</th><th style='text-align:left;'>Victim</th></tr>"
@@ -26,7 +26,7 @@
 		dat += "<tr><td>[al.station_time]</td>"
 
 		if(al.attacker)
-			dat += "<td>[al.attacker.key_name(check_if_offline = FALSE)] <a HREF='?_src_=holder;adminplayeropts=[al.attacker.ref]'>PP</a></td>"
+			dat += "<td>[al.attacker.key_name(check_if_offline = FALSE)] <a HREF='byond://?_src_=holder;adminplayeropts=[al.attacker.ref]'>PP</a></td>"
 		else
 			dat += "<td></td>"
 
@@ -35,14 +35,14 @@
 		dat += "<td>[al.target_zone]</td>"
 
 		if(al.victim)
-			dat += "<td>[al.victim.key_name(check_if_offline = FALSE)] <a HREF='?_src_=holder;adminplayeropts=[al.victim.ref]'>PP</a></td>"
+			dat += "<td>[al.victim.key_name(check_if_offline = FALSE)] <a HREF='byond://?_src_=holder;adminplayeropts=[al.victim.ref]'>PP</a></td>"
 		else
 			dat += "<td></td>"
 
 		dat += "</tr>"
 		dat += "<tr><td colspan=5>[al.message]"
 		if(al.location)
-			dat += " <a HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[al.location.x];Y=[al.location.y];Z=[al.location.z]'>JMP</a>"
+			dat += " <a HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[al.location.x];Y=[al.location.y];Z=[al.location.z]'>JMP</a>"
 		dat += "</td></tr>"
 	dat += "</table>"
 
@@ -132,9 +132,9 @@
 	. = list()
 	. += "Must have clients: "
 	if(filter_missing_clients)
-		. += "<span class='linkOn'>Yes</span><a href='?src=\ref[src];no=1'>No</a>"
+		. += "<span class='linkOn'>Yes</span><a href='byond://?src=\ref[src];no=1'>No</a>"
 	else
-		. += "<a href='?src=\ref[src];yes=1'>Yes</a><span class='linkOn'>No</span>"
+		. += "<a href='byond://?src=\ref[src];yes=1'>Yes</a><span class='linkOn'>No</span>"
 	. = jointext(.,null)
 
 /attack_filter/no_client/OnTopic(href_list)
@@ -170,7 +170,7 @@
 	ckey_filter = null
 
 /attack_filter/must_be_given_ckey/get_html()
-	return "[description]: <a href='?src=\ref[src];select_ckey=1'>[ckey_filter ? ckey_filter : "*ANY*"]</a>"
+	return "[description]: <a href='byond://?src=\ref[src];select_ckey=1'>[ckey_filter ? ckey_filter : "*ANY*"]</a>"
 
 /attack_filter/must_be_given_ckey/OnTopic(href_list)
 	if(!href_list["select_ckey"])
diff --git a/code/modules/admin/ticket.dm b/code/modules/admin/ticket.dm
index d394a86cd0c..526c9867927 100644
--- a/code/modules/admin/ticket.dm
+++ b/code/modules/admin/ticket.dm
@@ -195,7 +195,7 @@ var/global/list/ticket_panels = list()
 				var/ref_mob = ""
 				if(owner_client)
 					ref_mob = "\ref[owner_client.mob]"
-				ticket_dat += " - <A HREF='?_src_=holder;adminmoreinfo=[ref_mob]'>?</A> - <A HREF='?_src_=holder;adminplayeropts=[ref_mob]'>PP</A> - <A HREF='?_src_=vars;Vars=[ref_mob]'>VV</A> - <A HREF='?_src_=holder;narrateto=[ref_mob]'>DN</A>[owner_client ? "- [admin_jump_link(owner_client, src)]" : ""]"
+				ticket_dat += " - <A HREF='byond://?_src_=holder;adminmoreinfo=[ref_mob]'>?</A> - <A HREF='byond://?_src_=holder;adminplayeropts=[ref_mob]'>PP</A> - <A HREF='byond://?_src_=vars;Vars=[ref_mob]'>VV</A> - <A HREF='byond://?_src_=holder;narrateto=[ref_mob]'>DN</A>[owner_client ? "- [admin_jump_link(owner_client, src)]" : ""]"
 			if(open_ticket && open_ticket == ticket)
 				ticket_dat += "</i>"
 			ticket_dat += "</li>"
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 18a05a3d3cf..4d6ab441d57 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -331,16 +331,16 @@
 			var/decl/department/dept = all_departments[dtype]
 			var/list/print_jobs = SSjobs.titles_by_department(dtype)
 			jobs += "<table cellpadding='1' cellspacing='0' width='100%'>"
-			jobs += "<tr align='center' bgcolor='[dept.display_color]'><th colspan='[length(print_jobs)]'><a href='?src=\ref[src];jobban_category=[dept.name];jobban_mob_target=\ref[M]'>[capitalize(dept.name)] Positions</a></th></tr><tr align='center'>"
+			jobs += "<tr align='center' bgcolor='[dept.display_color]'><th colspan='[length(print_jobs)]'><a href='byond://?src=\ref[src];jobban_category=[dept.name];jobban_mob_target=\ref[M]'>[capitalize(dept.name)] Positions</a></th></tr><tr align='center'>"
 			for(var/jobPos in print_jobs)
 				var/datum/job/job = SSjobs.get_by_title(jobPos)
 				if(!job)
 					continue
 				if(jobban_isbanned(M, job.title))
-					jobs += "<td width='20%'><a href='?src=\ref[src];jobban_category=[job.title];jobban_mob_target=\ref[M]'><font color=red>[replacetext(job.title, " ", "&nbsp")]</font></a></td>"
+					jobs += "<td width='20%'><a href='byond://?src=\ref[src];jobban_category=[job.title];jobban_mob_target=\ref[M]'><font color=red>[replacetext(job.title, " ", "&nbsp")]</font></a></td>"
 					counter++
 				else
-					jobs += "<td width='20%'><a href='?src=\ref[src];jobban_category=[job.title];jobban_mob_target=\ref[M]'>[replacetext(job.title, " ", "&nbsp")]</a></td>"
+					jobs += "<td width='20%'><a href='byond://?src=\ref[src];jobban_category=[job.title];jobban_mob_target=\ref[M]'>[replacetext(job.title, " ", "&nbsp")]</a></td>"
 					counter++
 				if(counter >= MAX_JOBBAN_CELLS)
 					jobs += "</tr><tr>"
@@ -350,20 +350,20 @@
 	// Other non-human bans.
 		counter = 0
 		jobs += "<table cellpadding='1' cellspacing='0' width='100%'>"
-		jobs += "<tr bgcolor='ccffcc'><th colspan='2><a href='?src=\ref[src];jobban_category=miscnonhumanroles;jobban_mob_target=\ref[M]'>Other Positions</a></th></tr><tr align='center'>"
+		jobs += "<tr bgcolor='ccffcc'><th colspan='2><a href='byond://?src=\ref[src];jobban_category=miscnonhumanroles;jobban_mob_target=\ref[M]'>Other Positions</a></th></tr><tr align='center'>"
 		if(jobban_isbanned(M, "pAI"))
-			jobs += "<td width='20%'><a href='?src=\ref[src];jobban_category=pAI;jobban_mob_target=\ref[M]'><font color=red>pAI</font></a></td>"
+			jobs += "<td width='20%'><a href='byond://?src=\ref[src];jobban_category=pAI;jobban_mob_target=\ref[M]'><font color=red>pAI</font></a></td>"
 		else
-			jobs += "<td width='20%'><a href='?src=\ref[src];jobban_category=pAI;jobban_mob_target=\ref[M]'>pAI</a></td>"
+			jobs += "<td width='20%'><a href='byond://?src=\ref[src];jobban_category=pAI;jobban_mob_target=\ref[M]'>pAI</a></td>"
 		if(jobban_isbanned(M, "AntagHUD"))
-			jobs += "<td width='20%'><a href='?src=\ref[src];jobban_category=AntagHUD;jobban_mob_target=\ref[M]'><font color=red>AntagHUD</font></a></td>"
+			jobs += "<td width='20%'><a href='byond://?src=\ref[src];jobban_category=AntagHUD;jobban_mob_target=\ref[M]'><font color=red>AntagHUD</font></a></td>"
 		else
-			jobs += "<td width='20%'><a href='?src=\ref[src];jobban_category=AntagHUD;jobban_mob_target=\ref[M]'>AntagHUD</a></td>"
+			jobs += "<td width='20%'><a href='byond://?src=\ref[src];jobban_category=AntagHUD;jobban_mob_target=\ref[M]'>AntagHUD</a></td>"
 		jobs += "</tr></table>"
 
 	//Antagonist (Orange)
 		jobs += "<table cellpadding='1' cellspacing='0' width='100%'>"
-		jobs += "<tr bgcolor='ffeeaa'><th colspan='10'><a href='?src=\ref[src];jobban_category=Syndicate;jobban_mob_target=\ref[M]'>Antagonist Positions</a></th></tr><tr align='center'>"
+		jobs += "<tr bgcolor='ffeeaa'><th colspan='10'><a href='byond://?src=\ref[src];jobban_category=Syndicate;jobban_mob_target=\ref[M]'>Antagonist Positions</a></th></tr><tr align='center'>"
 
 		// Antagonists.
 		#define ANTAG_COLUMNS 5
@@ -374,9 +374,9 @@
 			if(!antag)
 				continue
 			if(jobban_isbanned(M, antag.type))
-				jobs += "<td width='20%'><a href='?src=\ref[src];jobban_category=\ref[antag];jobban_mob_target=\ref[M]'><font color=red>[replacetext("[antag.name]", " ", "&nbsp")]</font></a></td>"
+				jobs += "<td width='20%'><a href='byond://?src=\ref[src];jobban_category=\ref[antag];jobban_mob_target=\ref[M]'><font color=red>[replacetext("[antag.name]", " ", "&nbsp")]</font></a></td>"
 			else
-				jobs += "<td width='20%'><a href='?src=\ref[src];jobban_category=\ref[antag];jobban_mob_target=\ref[M]'>[replacetext("[antag.name]", " ", "&nbsp")]</a></td>"
+				jobs += "<td width='20%'><a href='byond://?src=\ref[src];jobban_category=\ref[antag];jobban_mob_target=\ref[M]'>[replacetext("[antag.name]", " ", "&nbsp")]</a></td>"
 			if(i % ANTAG_COLUMNS == 0 && i < length(all_antag_types))
 				jobs += "</tr><tr align='center'>"
 			i++
@@ -389,9 +389,9 @@
 		jobs += "<tr bgcolor='ccccff'><th colspan='[LAZYLEN(misc_roles)]'>Other Roles</th></tr><tr align='center'>"
 		for(var/entry in misc_roles)
 			if(jobban_isbanned(M, entry))
-				jobs += "<td width='20%'><a href='?src=\ref[src];jobban_category=[entry];jobban_mob_target=\ref[M]'><font color=red>[entry]</font></a></td>"
+				jobs += "<td width='20%'><a href='byond://?src=\ref[src];jobban_category=[entry];jobban_mob_target=\ref[M]'><font color=red>[entry]</font></a></td>"
 			else
-				jobs += "<td width='20%'><a href='?src=\ref[src];jobban_category=[entry];jobban_mob_target=\ref[M]'>[entry]</a></td>"
+				jobs += "<td width='20%'><a href='byond://?src=\ref[src];jobban_category=[entry];jobban_mob_target=\ref[M]'>[entry]</a></td>"
 		jobs += "</tr></table>"
 
 	// Channels
@@ -401,9 +401,9 @@
 		for(var/channel_type in channels)
 			var/decl/communication_channel/channel = channels[channel_type]
 			if(jobban_isbanned(M, channel.name))
-				jobs += "<td width='20%'><a href='?src=\ref[src];jobban_category=[channel.name];jobban_mob_target=\ref[M]'><font color=red>[channel.name]</font></a></td>"
+				jobs += "<td width='20%'><a href='byond://?src=\ref[src];jobban_category=[channel.name];jobban_mob_target=\ref[M]'><font color=red>[channel.name]</font></a></td>"
 			else
-				jobs += "<td width='20%'><a href='?src=\ref[src];jobban_category=[channel.name];jobban_mob_target=\ref[M]'>[channel.name]</a></td>"
+				jobs += "<td width='20%'><a href='byond://?src=\ref[src];jobban_category=[channel.name];jobban_mob_target=\ref[M]'>[channel.name]</a></td>"
 		jobs += "</tr></table>"
 
 	// Finalize and display.
@@ -690,9 +690,9 @@
 		var/dat = {"<B>What mode do you wish to play?</B><HR>"}
 		var/list/mode_names = get_config_value(/decl/config/lists/mode_names)
 		for(var/mode in get_config_value(/decl/config/lists/mode_allowed))
-			dat += {"<A href='?src=\ref[src];c_mode2=[mode]'>[mode_names[mode]]</A><br>"}
-		dat += {"<A href='?src=\ref[src];c_mode2=secret'>Secret</A><br>"}
-		dat += {"<A href='?src=\ref[src];c_mode2=random'>Random</A><br>"}
+			dat += {"<A href='byond://?src=\ref[src];c_mode2=[mode]'>[mode_names[mode]]</A><br>"}
+		dat += {"<A href='byond://?src=\ref[src];c_mode2=secret'>Secret</A><br>"}
+		dat += {"<A href='byond://?src=\ref[src];c_mode2=random'>Random</A><br>"}
 		dat += {"Now: [SSticker.master_mode]"}
 		show_browser(usr, dat, "window=c_mode")
 
@@ -706,8 +706,8 @@
 		var/dat = {"<B>What game mode do you want to force secret to be? Use this if you want to change the game mode, but want the players to believe it's secret. This will only work if the current game mode is secret.</B><HR>"}
 		var/list/mode_names = get_config_value(/decl/config/lists/mode_names)
 		for(var/mode in get_config_value(/decl/config/lists/mode_allowed))
-			dat += {"<A href='?src=\ref[src];f_secret2=[mode]'>[mode_names[mode]]</A><br>"}
-		dat += {"<A href='?src=\ref[src];f_secret2=secret'>Random (default)</A><br>"}
+			dat += {"<A href='byond://?src=\ref[src];f_secret2=[mode]'>[mode_names[mode]]</A><br>"}
+		dat += {"<A href='byond://?src=\ref[src];f_secret2=secret'>Random (default)</A><br>"}
 		dat += {"Now: [secret_force_mode]"}
 		show_browser(usr, dat, "window=f_secret")
 
@@ -930,7 +930,7 @@
 		to_chat(src.owner, "Name = <b>[M.name]</b>; Real_name = [M.real_name]; Mind_name = [M.mind?"[M.mind.name]":""]; Key = <b>[M.key]</b>;")
 		to_chat(src.owner, "Location = [location_description];")
 		to_chat(src.owner, "[special_role_description]")
-		to_chat(src.owner, "(<a href='?src=\ref[usr];priv_msg=\ref[M]'>PM</a>) (<A HREF='?src=\ref[src];adminplayeropts=\ref[M]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[M]'>VV</A>) ([admin_jump_link(M, src)]) (<A HREF='?src=\ref[src];secretsadmin=show_round_status'>RS</A>)")
+		to_chat(src.owner, "(<a href='byond://?src=\ref[usr];priv_msg=\ref[M]'>PM</a>) (<A HREF='byond://?src=\ref[src];adminplayeropts=\ref[M]'>PP</A>) (<A HREF='byond://?_src_=vars;Vars=\ref[M]'>VV</A>) ([admin_jump_link(M, src)]) (<A HREF='byond://?src=\ref[src];secretsadmin=show_round_status'>RS</A>)")
 
 	else if(href_list["adminspawnprayreward"])
 		if(!check_rights(R_ADMIN|R_FUN))	return
@@ -1052,7 +1052,7 @@
 
 			for (var/page = 1, page <= B.pages.len, page++)
 				var/obj/pageobj = B.pages[page]
-				data += "<A href='?src=\ref[src];AdminFaxViewPage=[page];paper_bundle=\ref[B]'>Page [page] - [pageobj.name]</A><BR>"
+				data += "<A href='byond://?src=\ref[src];AdminFaxViewPage=[page];paper_bundle=\ref[B]'>Page [page] - [pageobj.name]</A><BR>"
 
 			show_browser(usr, data, "window=[B.name]")
 		else
@@ -1617,7 +1617,7 @@
 	return list()
 
 /atom/movable/extra_admin_link(var/source, var/prefix, var/sufix, var/short_links)
-	return list("<A HREF='?[source];adminplayerobservefollow=\ref[src]'>[prefix][short_links ? "J" : "JMP"][sufix]</A>")
+	return list("<A HREF='byond://?[source];adminplayerobservefollow=\ref[src]'>[prefix][short_links ? "J" : "JMP"][sufix]</A>")
 
 /client/extra_admin_link(source, var/prefix, var/sufix, var/short_links)
 	return mob ? mob.extra_admin_link(source, prefix, sufix, short_links) : list()
@@ -1625,12 +1625,12 @@
 /mob/extra_admin_link(var/source, var/prefix, var/sufix, var/short_links)
 	. = ..()
 	if(client && eyeobj)
-		. += "<A HREF='?[source];adminplayerobservefollow=\ref[eyeobj]'>[prefix][short_links ? "E" : "EYE"][sufix]</A>"
+		. += "<A HREF='byond://?[source];adminplayerobservefollow=\ref[eyeobj]'>[prefix][short_links ? "E" : "EYE"][sufix]</A>"
 
 /mob/observer/ghost/extra_admin_link(var/source, var/prefix, var/sufix, var/short_links)
 	. = ..()
 	if(mind && (mind.current && !isghost(mind.current)))
-		. += "<A HREF='?[source];adminplayerobservefollow=\ref[mind.current]'>[prefix][short_links ? "B" : "BDY"][sufix]</A>"
+		. += "<A HREF='byond://?[source];adminplayerobservefollow=\ref[mind.current]'>[prefix][short_links ? "B" : "BDY"][sufix]</A>"
 
 /proc/admin_jump_link(var/datum/target, var/source, var/delimiter = "|", var/prefix, var/sufix, var/short_links)
 	if(!istype(target))
diff --git a/code/modules/admin/verbs/SDQL.dm b/code/modules/admin/verbs/SDQL.dm
index 6f99308597f..a67da780ff0 100644
--- a/code/modules/admin/verbs/SDQL.dm
+++ b/code/modules/admin/verbs/SDQL.dm
@@ -323,16 +323,16 @@
 					var/atom/a = t
 
 					if(a.x)
-						text += "<a href='?src=\ref[t];SDQL_select=\ref[t]'>\ref[t]</a>: [t] at ([a.x], [a.y], [a.z])<br>"
+						text += "<a href='byond://?src=\ref[t];SDQL_select=\ref[t]'>\ref[t]</a>: [t] at ([a.x], [a.y], [a.z])<br>"
 
 					else if(a.loc && a.loc.x)
-						text += "<a href='?src=\ref[t];SDQL_select=\ref[t]'>\ref[t]</a>: [t] in [a.loc] at ([a.loc.x], [a.loc.y], [a.loc.z])<br>"
+						text += "<a href='byond://?src=\ref[t];SDQL_select=\ref[t]'>\ref[t]</a>: [t] in [a.loc] at ([a.loc.x], [a.loc.y], [a.loc.z])<br>"
 
 					else
-						text += "<a href='?src=\ref[t];SDQL_select=\ref[t]'>\ref[t]</a>: [t]<br>"
+						text += "<a href='byond://?src=\ref[t];SDQL_select=\ref[t]'>\ref[t]</a>: [t]<br>"
 
 				else
-					text += "<a href='?src=\ref[t];SDQL_select=\ref[t]'>\ref[t]</a>: [t]<br>"
+					text += "<a href='byond://?src=\ref[t];SDQL_select=\ref[t]'>\ref[t]</a>: [t]<br>"
 
 				//text += "[t]<br>"
 			show_browser(usr, text, "window=sdql_result")
diff --git a/code/modules/admin/verbs/SDQL_2/SDQL_2.dm b/code/modules/admin/verbs/SDQL_2/SDQL_2.dm
index 34aa6f688d8..0331cb89a49 100644
--- a/code/modules/admin/verbs/SDQL_2/SDQL_2.dm
+++ b/code/modules/admin/verbs/SDQL_2/SDQL_2.dm
@@ -104,15 +104,15 @@
 				if("select")
 					var/text = ""
 					for(var/datum/t in objs)
-						text += "<A HREF='?_src_=vars;Vars=\ref[t]'>\ref[t]</A>"
+						text += "<A HREF='byond://?_src_=vars;Vars=\ref[t]'>\ref[t]</A>"
 						if(istype(t, /atom))
 							var/atom/a = t
 
 							if(a.x)
-								text += ": [t] at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[a.x];Y=[a.y];Z=[a.z]'>([a.x], [a.y], [a.z])</a><br>"
+								text += ": [t] at <A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[a.x];Y=[a.y];Z=[a.z]'>([a.x], [a.y], [a.z])</a><br>"
 
 							else if(a.loc && a.loc.x)
-								text += ": [t] in <A HREF='?_src_=vars;Vars=\ref[a.loc]'>[a.loc]</A> at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[a.loc.x];Y=[a.loc.y];Z=[a.loc.z]'>([a.loc.x], [a.loc.y], [a.loc.z])</a><br>"
+								text += ": [t] in <A HREF='byond://?_src_=vars;Vars=\ref[a.loc]'>[a.loc]</A> at <A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[a.loc.x];Y=[a.loc.y];Z=[a.loc.z]'>([a.loc.x], [a.loc.y], [a.loc.z])</a><br>"
 
 							else
 								text += ": [t]<br>"
diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm
index 8f3a645e8c0..ee9f73e756b 100644
--- a/code/modules/admin/verbs/adminhelp.dm
+++ b/code/modules/admin/verbs/adminhelp.dm
@@ -41,7 +41,7 @@ var/global/list/adminhelp_ignored_words = list("unknown","the","a","an","of","mo
 			if(!(word in adminhelp_ignored_words))
 				if(word == "ai" && !ai_found)
 					ai_found = 1
-					msg += "<b>[original_word] <A HREF='?_src_=holder;adminchecklaws=\ref[mob]'>(CL)</A></b> "
+					msg += "<b>[original_word] <A HREF='byond://?_src_=holder;adminchecklaws=\ref[mob]'>(CL)</A></b> "
 					continue
 				else
 					var/mob/found = ckeys[word]
@@ -52,10 +52,10 @@ var/global/list/adminhelp_ignored_words = list("unknown","the","a","an","of","mo
 					if(found)
 						if(!(found in mobs_found))
 							mobs_found += found
-							msg += "<b>[original_word] <A HREF='?_src_=holder;adminmoreinfo=\ref[found]'>(?)</A>"
+							msg += "<b>[original_word] <A HREF='byond://?_src_=holder;adminmoreinfo=\ref[found]'>(?)</A>"
 							if(!ai_found && isAI(found))
 								ai_found = 1
-								msg += " <A HREF='?_src_=holder;adminchecklaws=\ref[mob]'>(CL)</A>"
+								msg += " <A HREF='byond://?_src_=holder;adminchecklaws=\ref[mob]'>(CL)</A>"
 							msg += "</b> "
 							continue
 		msg += "[original_word] "
@@ -118,7 +118,7 @@ var/global/list/adminhelp_ignored_words = list("unknown","the","a","an","of","mo
 	//Options bar:  mob, details ( admin = 2, dev = 3, character name (0 = just ckey, 1 = ckey and character name), link? (0 no don't make it a link, 1 do so),
 	//		highlight special roles (0 = everyone has same looking name, 1 = antags / special roles get a golden name)
 
-	msg = "<span class='notice'><b><font color=red>HELP: </font>[get_options_bar(mob, 2, 1, 1, 1, ticket)] (<a href='?_src_=holder;take_ticket=\ref[ticket]'>[(ticket.status == TICKET_OPEN) ? "TAKE" : "JOIN"]</a>) (<a href='?src=\ref[usr];close_ticket=\ref[ticket]'>CLOSE</a>):</b> [msg]</span>"
+	msg = "<span class='notice'><b><font color=red>HELP: </font>[get_options_bar(mob, 2, 1, 1, 1, ticket)] (<a href='byond://?_src_=holder;take_ticket=\ref[ticket]'>[(ticket.status == TICKET_OPEN) ? "TAKE" : "JOIN"]</a>) (<a href='byond://?src=\ref[usr];close_ticket=\ref[ticket]'>CLOSE</a>):</b> [msg]</span>"
 
 	var/admin_number_afk = 0
 
@@ -131,7 +131,7 @@ var/global/list/adminhelp_ignored_words = list("unknown","the","a","an","of","mo
 			to_chat(X, msg)
 			window_flash(X)
 	//show it to the person adminhelping too
-	to_chat(src, SPAN_BLUE("PM to-<b>Staff</b> (<a href='?src=\ref[usr];close_ticket=\ref[ticket]'>CLOSE</a>): [original_msg]"))
+	to_chat(src, SPAN_BLUE("PM to-<b>Staff</b> (<a href='byond://?src=\ref[usr];close_ticket=\ref[ticket]'>CLOSE</a>): [original_msg]"))
 	var/admin_number_present = global.admins.len - admin_number_afk
 	log_admin("HELP: [key_name(src)]: [original_msg] - heard by [admin_number_present] non-AFK admins.")
 	if(admin_number_present <= 0)
diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm
index 9d9b1e0b6b1..9dd7c0e7d6d 100644
--- a/code/modules/admin/verbs/adminpm.dm
+++ b/code/modules/admin/verbs/adminpm.dm
@@ -124,7 +124,7 @@
 
 	var/sender_message = "<span class='pm'><span class='out'>" + create_text_tag("pm_out_alt", "PM", src) + " to <span class='name'>[get_options_bar(C, holder ? 1 : 0, holder ? 1 : 0, 1)]</span>"
 	if(holder)
-		sender_message += " (<a href='?_src_=holder;take_ticket=\ref[ticket]'>[(ticket.status == TICKET_OPEN) ? "TAKE" : "JOIN"]</a>) (<a href='?src=\ref[usr];close_ticket=\ref[ticket]'>CLOSE</a>)"
+		sender_message += " (<a href='byond://?_src_=holder;take_ticket=\ref[ticket]'>[(ticket.status == TICKET_OPEN) ? "TAKE" : "JOIN"]</a>) (<a href='byond://?src=\ref[usr];close_ticket=\ref[ticket]'>CLOSE</a>)"
 		sender_message += ": <span class='message'>[generate_ahelp_key_words(mob, msg)]</span>"
 	else
 		sender_message += ": <span class='message'>[msg]</span>"
@@ -133,7 +133,7 @@
 
 	var/receiver_message = "<span class='pm'><span class='in'>" + create_text_tag("pm_in", "", C) + " <b>\[[recieve_pm_type] PM\]</b> <span class='name'>[get_options_bar(src, C.holder ? 1 : 0, C.holder ? 1 : 0, 1)]</span>"
 	if(C.holder)
-		receiver_message += " (<a href='?_src_=holder;take_ticket=\ref[ticket]'>[(ticket.status == TICKET_OPEN) ? "TAKE" : "JOIN"]</a>) (<a href='?src=\ref[usr];close_ticket=\ref[ticket]'>CLOSE</a>)"
+		receiver_message += " (<a href='byond://?_src_=holder;take_ticket=\ref[ticket]'>[(ticket.status == TICKET_OPEN) ? "TAKE" : "JOIN"]</a>) (<a href='byond://?src=\ref[usr];close_ticket=\ref[ticket]'>CLOSE</a>)"
 		receiver_message += ": <span class='message'>[generate_ahelp_key_words(C.mob, msg)]</span>"
 	else
 		receiver_message += ": <span class='message'>[msg]</span>"
@@ -163,7 +163,7 @@
 		if(X == C || X == src)
 			continue
 		if(X.key != key && X.key != C.key && (X.holder.rights & R_ADMIN|R_MOD))
-			to_chat(X, "<span class='pm'><span class='other'>" + create_text_tag("pm_other", "PM:", X) + " <span class='name'>[key_name(src, X, 0, ticket)]</span> to <span class='name'>[key_name(C, X, 0, ticket)]</span> (<a href='?_src_=holder;take_ticket=\ref[ticket]'>[(ticket.status == TICKET_OPEN) ? "TAKE" : "JOIN"]</a>) (<a href='?src=\ref[usr];close_ticket=\ref[ticket]'>CLOSE</a>): <span class='message'>[msg]</span></span></span>")
+			to_chat(X, "<span class='pm'><span class='other'>" + create_text_tag("pm_other", "PM:", X) + " <span class='name'>[key_name(src, X, 0, ticket)]</span> to <span class='name'>[key_name(C, X, 0, ticket)]</span> (<a href='byond://?_src_=holder;take_ticket=\ref[ticket]'>[(ticket.status == TICKET_OPEN) ? "TAKE" : "JOIN"]</a>) (<a href='byond://?src=\ref[usr];close_ticket=\ref[ticket]'>CLOSE</a>): <span class='message'>[msg]</span></span></span>")
 
 /client/proc/cmd_admin_irc_pm(sender)
 	if(prefs.muted & MUTE_ADMINHELP)
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 65defcabc42..43c18e0351c 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -389,7 +389,7 @@
 
 	var/dat = display_medical_data(H.get_raw_medical_data(), SKILL_MAX)
 
-	dat += text("<BR><A href='?src=\ref[];mach_close=scanconsole'>Close</A>", usr)
+	dat += text("<BR><A href='byond://?src=\ref[];mach_close=scanconsole'>Close</A>", usr)
 	show_browser(usr, dat, "window=scanconsole;size=430x600")
 
 /client/proc/cmd_analyse_health_context(mob/living/human/H as mob in global.human_mob_list)
diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm
index 2c273c89da9..6638c344791 100644
--- a/code/modules/admin/verbs/mapping.dm
+++ b/code/modules/admin/verbs/mapping.dm
@@ -341,7 +341,7 @@ var/global/list/debug_verbs = list (
 	var/list/baddies = list("LEAKY PIPES")
 	for(var/obj/machinery/atmospherics/pipe/P in SSmachines.machinery)
 		if(P.leaking)
-			baddies += "[P] ([P.x],[P.y],[P.z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[P.x];Y=[P.y];Z=[P.z]'>JMP</a>)"
+			baddies += "[P] ([P.x],[P.y],[P.z] - <A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[P.x];Y=[P.y];Z=[P.z]'>JMP</a>)"
 
 	to_chat(usr,jointext(baddies, "<br>"))
 
diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm
index 5bfb6f10ef2..092f90de0ad 100644
--- a/code/modules/admin/verbs/pray.dm
+++ b/code/modules/admin/verbs/pray.dm
@@ -6,7 +6,7 @@
 	SSstatistics.add_field_details("admin_verb","PR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
 
 /proc/Centcomm_announce(var/msg, var/mob/Sender, var/iamessage)
-	msg = "<span class='notice'><b><font color=orange>[uppertext(global.using_map.boss_short)]M[iamessage ? " IA" : ""]:</font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) ([admin_jump_link(Sender)]) (<A HREF='?_src_=holder;secretsadmin=show_round_status'>RS</A>) (<A HREF='?_src_=holder;Artillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;CentcommReply=\ref[Sender]'>RPLY</A>):</b> [msg]</span>"
+	msg = "<span class='notice'><b><font color=orange>[uppertext(global.using_map.boss_short)]M[iamessage ? " IA" : ""]:</font>[key_name(Sender, 1)] (<A HREF='byond://?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='byond://?_src_=vars;Vars=\ref[Sender]'>VV</A>) ([admin_jump_link(Sender)]) (<A HREF='byond://?_src_=holder;secretsadmin=show_round_status'>RS</A>) (<A HREF='byond://?_src_=holder;Artillery=\ref[Sender]'>BSA</A>) (<A HREF='byond://?_src_=holder;CentcommReply=\ref[Sender]'>RPLY</A>):</b> [msg]</span>"
 
 	for(var/client/C in global.admins)
 		if(R_ADMIN & C.holder.rights)
@@ -14,7 +14,7 @@
 			sound_to(C, 'sound/machines/signal.ogg')
 
 /proc/Syndicate_announce(var/msg, var/mob/Sender)
-	msg = "<span class='notice'><b><font color=crimson>ILLEGAL:</font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;narrateto=\ref[Sender]'>DN</A>) ([admin_jump_link(Sender)]) (<A HREF='?_src_=holder;secretsadmin=show_round_status'>RS</A>) (<A HREF='?_src_=holder;Artillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder'>TAKE</a>) (<A HREF='?_src_=holder;SyndicateReply=\ref[Sender]'>RPLY</A>):</b> [msg]</span>"
+	msg = "<span class='notice'><b><font color=crimson>ILLEGAL:</font>[key_name(Sender, 1)] (<A HREF='byond://?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='byond://?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='byond://?_src_=holder;narrateto=\ref[Sender]'>DN</A>) ([admin_jump_link(Sender)]) (<A HREF='byond://?_src_=holder;secretsadmin=show_round_status'>RS</A>) (<A HREF='byond://?_src_=holder;Artillery=\ref[Sender]'>BSA</A>) (<A HREF='byond://?_src_=holder'>TAKE</a>) (<A HREF='byond://?_src_=holder;SyndicateReply=\ref[Sender]'>RPLY</A>):</b> [msg]</span>"
 	for(var/client/C in global.admins)
 		if(R_ADMIN & C.holder.rights)
 			to_chat(C, msg)
diff --git a/code/modules/admin/view_variables/helpers.dm b/code/modules/admin/view_variables/helpers.dm
index 42650c5971a..8e30b30b4d7 100644
--- a/code/modules/admin/view_variables/helpers.dm
+++ b/code/modules/admin/view_variables/helpers.dm
@@ -6,26 +6,26 @@
 
 /atom/get_view_variables_header()
 	return {"
-		<a href='?_src_=vars;datumedit=\ref[src];varnameedit=name'><b>[src]</b></a>
+		<a href='byond://?_src_=vars;datumedit=\ref[src];varnameedit=name'><b>[src]</b></a>
 		<br><font size='1'>
-		<a href='?_src_=vars;rotatedatum=\ref[src];rotatedir=left'><<</a>
-		<a href='?_src_=vars;datumedit=\ref[src];varnameedit=dir'>[dir2text(dir)]</a>
-		<a href='?_src_=vars;rotatedatum=\ref[src];rotatedir=right'>>></a>
+		<a href='byond://?_src_=vars;rotatedatum=\ref[src];rotatedir=left'><<</a>
+		<a href='byond://?_src_=vars;datumedit=\ref[src];varnameedit=dir'>[dir2text(dir)]</a>
+		<a href='byond://?_src_=vars;rotatedatum=\ref[src];rotatedir=right'>>></a>
 		</font>
 		"}
 
 /mob/living/get_view_variables_header()
 	return {"
-		<a href='?_src_=vars;rename=\ref[src]'><b>[src]</b></a><font size='1'>
-		<br><a href='?_src_=vars;rotatedatum=\ref[src];rotatedir=left'><<</a> <a href='?_src_=vars;datumedit=\ref[src];varnameedit=dir'>[dir2text(dir)]</a> <a href='?_src_=vars;rotatedatum=\ref[src];rotatedir=right'>>></a>
-		<br><a href='?_src_=vars;datumedit=\ref[src];varnameedit=ckey'>[ckey ? ckey : "No ckey"]</a> / <a href='?_src_=vars;datumedit=\ref[src];varnameedit=real_name'>[real_name ? real_name : "No real name"]</a>
+		<a href='byond://?_src_=vars;rename=\ref[src]'><b>[src]</b></a><font size='1'>
+		<br><a href='byond://?_src_=vars;rotatedatum=\ref[src];rotatedir=left'><<</a> <a href='byond://?_src_=vars;datumedit=\ref[src];varnameedit=dir'>[dir2text(dir)]</a> <a href='byond://?_src_=vars;rotatedatum=\ref[src];rotatedir=right'>>></a>
+		<br><a href='byond://?_src_=vars;datumedit=\ref[src];varnameedit=ckey'>[ckey ? ckey : "No ckey"]</a> / <a href='byond://?_src_=vars;datumedit=\ref[src];varnameedit=real_name'>[real_name ? real_name : "No real name"]</a>
 		<br>
-		BRUTE:<a href='?_src_=vars;mobToDamage=\ref[src];adjustDamage=[BRUTE]'>[get_damage(BRUTE)]</a>
-		FIRE:<a href='?_src_=vars;mobToDamage=\ref[src];adjustDamage=[BURN]'>[get_damage(BURN)]</a>
-		TOXIN:<a href='?_src_=vars;mobToDamage=\ref[src];adjustDamage=[TOX]'>[get_damage(TOX)]</a>
-		OXY:<a href='?_src_=vars;mobToDamage=\ref[src];adjustDamage=[OXY]'>[get_damage(OXY)]</a>
-		CLONE:<a href='?_src_=vars;mobToDamage=\ref[src];adjustDamage=[CLONE]'>[get_damage(CLONE)]</a>
-		BRAIN:<a href='?_src_=vars;mobToDamage=\ref[src];adjustDamage=[BP_BRAIN]'>[get_damage(BRAIN)]</a>
+		BRUTE:<a href='byond://?_src_=vars;mobToDamage=\ref[src];adjustDamage=[BRUTE]'>[get_damage(BRUTE)]</a>
+		FIRE:<a href='byond://?_src_=vars;mobToDamage=\ref[src];adjustDamage=[BURN]'>[get_damage(BURN)]</a>
+		TOXIN:<a href='byond://?_src_=vars;mobToDamage=\ref[src];adjustDamage=[TOX]'>[get_damage(TOX)]</a>
+		OXY:<a href='byond://?_src_=vars;mobToDamage=\ref[src];adjustDamage=[OXY]'>[get_damage(OXY)]</a>
+		CLONE:<a href='byond://?_src_=vars;mobToDamage=\ref[src];adjustDamage=[CLONE]'>[get_damage(CLONE)]</a>
+		BRAIN:<a href='byond://?_src_=vars;mobToDamage=\ref[src];adjustDamage=[BP_BRAIN]'>[get_damage(BRAIN)]</a>
 		</font>
 		"}
 
@@ -118,18 +118,18 @@
 
 /datum/proc/make_view_variables_variable_entry(var/varname, var/value, var/hide_watch = 0)
 	return {"
-			(<a href='?_src_=vars;datumedit=\ref[src];varnameedit=[varname]'>E</a>)
-			(<a href='?_src_=vars;datumchange=\ref[src];varnamechange=[varname]'>C</a>)
-			(<a href='?_src_=vars;datummass=\ref[src];varnamemass=[varname]'>M</a>)
-			[hide_watch ? "" : "(<a href='?_src_=vars;datumwatch=\ref[src];varnamewatch=[varname]'>W</a>)"]
+			(<a href='byond://?_src_=vars;datumedit=\ref[src];varnameedit=[varname]'>E</a>)
+			(<a href='byond://?_src_=vars;datumchange=\ref[src];varnamechange=[varname]'>C</a>)
+			(<a href='byond://?_src_=vars;datummass=\ref[src];varnamemass=[varname]'>M</a>)
+			[hide_watch ? "" : "(<a href='byond://?_src_=vars;datumwatch=\ref[src];varnamewatch=[varname]'>W</a>)"]
 			"}
 
 // No mass editing of clients
 /client/make_view_variables_variable_entry(var/varname, var/value, var/hide_watch = 0)
 	return {"
-			(<a href='?_src_=vars;datumedit=\ref[src];varnameedit=[varname]'>E</a>)
-			(<a href='?_src_=vars;datumchange=\ref[src];varnamechange=[varname]'>C</a>)
-			[hide_watch ? "" : "(<a href='?_src_=vars;datumwatch=\ref[src];varnamewatch=[varname]'>W</a>)"]
+			(<a href='byond://?_src_=vars;datumedit=\ref[src];varnameedit=[varname]'>E</a>)
+			(<a href='byond://?_src_=vars;datumchange=\ref[src];varnamechange=[varname]'>C</a>)
+			[hide_watch ? "" : "(<a href='byond://?_src_=vars;datumwatch=\ref[src];varnamewatch=[varname]'>W</a>)"]
 			"}
 
 // These methods are all procs and don't use stored lists to avoid VV exploits
diff --git a/code/modules/admin/view_variables/view_variables.dm b/code/modules/admin/view_variables/view_variables.dm
index 36484374356..f39d8cc574c 100644
--- a/code/modules/admin/view_variables/view_variables.dm
+++ b/code/modules/admin/view_variables/view_variables.dm
@@ -49,8 +49,8 @@ var/global/list/view_variables_no_assoc = list("verbs", "contents","screen","ima
 					</td>
 					<td width='50%'>
 						<div align='center'>
-							<a href='?_src_=vars;datumrefresh=\ref[D]'>Refresh</a>
-							[A ? "<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[A.x];Y=[A.y];Z=[A.z]'>Jump To</a>":""]
+							<a href='byond://?_src_=vars;datumrefresh=\ref[D]'>Refresh</a>
+							[A ? "<A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[A.x];Y=[A.y];Z=[A.z]'>Jump To</a>":""]
 							<form>
 								<select name='file'
 								        size='1'
@@ -124,7 +124,7 @@ var/global/list/view_variables_no_assoc = list("verbs", "contents","screen","ima
 		dat += "<h1>[make_view_variables_value(D)]</h1>"
 		for(var/v in user.client.watched_variables[D])
 			dat += "<div class='var'>"
-			dat += "(<a href='?_src_=vars;datumunwatch=\ref[D];varnameunwatch=[v]'>X</a>) "
+			dat += "(<a href='byond://?_src_=vars;datumunwatch=\ref[D];varnameunwatch=[v]'>X</a>) "
 			dat += "[D.make_view_variables_variable_entry(v, D.get_variable_value(v), 1)] [v] = [make_view_variables_value(D.get_variable_value(v), v)]"
 			dat += "</div>"
 
@@ -164,12 +164,12 @@ var/global/list/view_variables_no_assoc = list("verbs", "contents","screen","ima
 	else if(istype(value, /datum))
 		var/datum/DA = value
 		if("[DA]" == "[DA.type]" || !"[DA]")
-			vtext = "<a href='?_src_=vars;Vars=\ref[DA]'>\ref[DA]</a> - [DA.type]"
+			vtext = "<a href='byond://?_src_=vars;Vars=\ref[DA]'>\ref[DA]</a> - [DA.type]"
 		else
-			vtext = "<a href='?_src_=vars;Vars=\ref[DA]'>\ref[DA]</a> - [DA] ([DA.type])"
+			vtext = "<a href='byond://?_src_=vars;Vars=\ref[DA]'>\ref[DA]</a> - [DA] ([DA.type])"
 	else if(istype(value, /client))
 		var/client/C = value
-		vtext = "<a href='?_src_=vars;Vars=\ref[C]'>\ref[C]</a> - [C] ([C.type])"
+		vtext = "<a href='byond://?_src_=vars;Vars=\ref[C]'>\ref[C]</a> - [C] ([C.type])"
 	else if(islist(value))
 		var/list/L = value
 		vtext = "/list ([L.len])"
diff --git a/code/modules/admin/view_variables/view_variables_global.dm b/code/modules/admin/view_variables/view_variables_global.dm
index e52efdab90b..5bc4906e306 100644
--- a/code/modules/admin/view_variables/view_variables_global.dm
+++ b/code/modules/admin/view_variables/view_variables_global.dm
@@ -1,6 +1,6 @@
 /proc/readglobal(which)
 	. = global.vars[which]
-		
+
 /proc/writeglobal(which, newval)
 	global.vars[which] = newval
 
@@ -30,7 +30,7 @@
 	writeglobal(varname, value)
 
 /decl/global_vars/make_view_variables_variable_entry(varname, value)
-	return "(<a href='?_src_=vars;datumedit=\ref[src];varnameedit=[varname]'>E</a>) "
+	return "(<a href='byond://?_src_=vars;datumedit=\ref[src];varnameedit=[varname]'>E</a>) "
 
 /decl/global_vars/VV_locked()
 	return vars
diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm
index c472eacbe06..1253014bd80 100644
--- a/code/modules/assembly/infrared.dm
+++ b/code/modules/assembly/infrared.dm
@@ -75,9 +75,9 @@
 
 	user.set_machine(src)
 	var/dat = list()
-	dat += text("<TT><B>Infrared Laser</B>\n<B>Status</B>: []<BR>\n<B>Visibility</B>: []<BR>\n</TT>", (on ? text("<A href='?src=\ref[];state=0'>On</A>", src) : text("<A href='?src=\ref[];state=1'>Off</A>", src)), (src.visible ? text("<A href='?src=\ref[];visible=0'>Visible</A>", src) : text("<A href='?src=\ref[];visible=1'>Invisible</A>", src)))
-	dat += "<BR><BR><A href='?src=\ref[src];refresh=1'>Refresh</A>"
-	dat += "<BR><BR><A href='?src=\ref[src];close=1'>Close</A>"
+	dat += text("<TT><B>Infrared Laser</B>\n<B>Status</B>: []<BR>\n<B>Visibility</B>: []<BR>\n</TT>", (on ? text("<A href='byond://?src=\ref[];state=0'>On</A>", src) : text("<A href='byond://?src=\ref[];state=1'>Off</A>", src)), (src.visible ? text("<A href='byond://?src=\ref[];visible=0'>Visible</A>", src) : text("<A href='byond://?src=\ref[];visible=1'>Invisible</A>", src)))
+	dat += "<BR><BR><A href='byond://?src=\ref[src];refresh=1'>Refresh</A>"
+	dat += "<BR><BR><A href='byond://?src=\ref[src];close=1'>Close</A>"
 	show_browser(user, jointext(dat,null), "window=infra")
 	onclose(user, "infra")
 
diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm
index 0436515fc73..ef392710ac3 100644
--- a/code/modules/assembly/proximity.dm
+++ b/code/modules/assembly/proximity.dm
@@ -111,11 +111,11 @@
 		return 0
 	var/second = time % 60
 	var/minute = (time - second) / 60
-	var/dat = text("<TT><B>Proximity Sensor</B>\n[] []:[]\n<A href='?src=\ref[];tp=-30'>-</A> <A href='?src=\ref[];tp=-1'>-</A> <A href='?src=\ref[];tp=1'>+</A> <A href='?src=\ref[];tp=30'>+</A>\n</TT>", (timing ? text("<A href='?src=\ref[];time=0'>Arming</A>", src) : text("<A href='?src=\ref[];time=1'>Not Arming</A>", src)), minute, second, src, src, src, src)
-	dat += text("<BR>Range: <A href='?src=\ref[];range=-1'>-</A> [] <A href='?src=\ref[];range=1'>+</A>", src, range, src)
-	dat += "<BR><A href='?src=\ref[src];scanning=1'>[scanning?"Armed":"Unarmed"]</A> (Movement sensor active when armed!)"
-	dat += "<BR><BR><A href='?src=\ref[src];refresh=1'>Refresh</A>"
-	dat += "<BR><BR><A href='?src=\ref[src];close=1'>Close</A>"
+	var/dat = text("<TT><B>Proximity Sensor</B>\n[] []:[]\n<A href='byond://?src=\ref[];tp=-30'>-</A> <A href='byond://?src=\ref[];tp=-1'>-</A> <A href='byond://?src=\ref[];tp=1'>+</A> <A href='byond://?src=\ref[];tp=30'>+</A>\n</TT>", (timing ? text("<A href='byond://?src=\ref[];time=0'>Arming</A>", src) : text("<A href='byond://?src=\ref[];time=1'>Not Arming</A>", src)), minute, second, src, src, src, src)
+	dat += text("<BR>Range: <A href='byond://?src=\ref[];range=-1'>-</A> [] <A href='byond://?src=\ref[];range=1'>+</A>", src, range, src)
+	dat += "<BR><A href='byond://?src=\ref[src];scanning=1'>[scanning?"Armed":"Unarmed"]</A> (Movement sensor active when armed!)"
+	dat += "<BR><BR><A href='byond://?src=\ref[src];refresh=1'>Refresh</A>"
+	dat += "<BR><BR><A href='byond://?src=\ref[src];close=1'>Close</A>"
 	show_browser(user, dat, "window=prox")
 	onclose(user, "prox")
 	return
diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm
index 9c4fee0d1fc..aeb57facd84 100644
--- a/code/modules/assembly/timer.dm
+++ b/code/modules/assembly/timer.dm
@@ -77,9 +77,9 @@
 		return 0
 	var/second = time % 60
 	var/minute = (time - second) / 60
-	var/dat = text("<TT><B>Timing Unit</B>\n[] []:[]\n<A href='?src=\ref[];tp=-30'>-</A> <A href='?src=\ref[];tp=-1'>-</A> <A href='?src=\ref[];tp=1'>+</A> <A href='?src=\ref[];tp=30'>+</A>\n</TT>", (timing ? text("<A href='?src=\ref[];time=0'>Timing</A>", src) : text("<A href='?src=\ref[];time=1'>Not Timing</A>", src)), minute, second, src, src, src, src)
-	dat += "<BR><BR><A href='?src=\ref[src];refresh=1'>Refresh</A>"
-	dat += "<BR><BR><A href='?src=\ref[src];close=1'>Close</A>"
+	var/dat = text("<TT><B>Timing Unit</B>\n[] []:[]\n<A href='byond://?src=\ref[];tp=-30'>-</A> <A href='byond://?src=\ref[];tp=-1'>-</A> <A href='byond://?src=\ref[];tp=1'>+</A> <A href='byond://?src=\ref[];tp=30'>+</A>\n</TT>", (timing ? text("<A href='byond://?src=\ref[];time=0'>Timing</A>", src) : text("<A href='byond://?src=\ref[];time=1'>Not Timing</A>", src)), minute, second, src, src, src, src)
+	dat += "<BR><BR><A href='byond://?src=\ref[src];refresh=1'>Refresh</A>"
+	dat += "<BR><BR><A href='byond://?src=\ref[src];close=1'>Close</A>"
 	show_browser(user, dat, "window=timer")
 	onclose(user, "timer")
 	return
diff --git a/code/modules/atmospherics/components/unary/outlet_injector.dm b/code/modules/atmospherics/components/unary/outlet_injector.dm
index 9aa2f389619..0e825538809 100644
--- a/code/modules/atmospherics/components/unary/outlet_injector.dm
+++ b/code/modules/atmospherics/components/unary/outlet_injector.dm
@@ -70,7 +70,7 @@
 	. = list()
 	. += "<table>"
 	. += "<tr><td><b>Name:</b></td><td>[name]</td>"
-	. += "<tr><td><b>Power:</b></td><td>[use_power?("<font color = 'green'>Injecting</font>"):("<font color = 'red'>Offline</font>")]</td><td><a href='?src=\ref[src];toggle_power=\ref[src]'>Toggle</a></td></tr>"
+	. += "<tr><td><b>Power:</b></td><td>[use_power?("<font color = 'green'>Injecting</font>"):("<font color = 'red'>Offline</font>")]</td><td><a href='byond://?src=\ref[src];toggle_power=\ref[src]'>Toggle</a></td></tr>"
 	. = JOINTEXT(.)
 
 /obj/machinery/atmospherics/unary/outlet_injector/OnTopic(mob/user, href_list, datum/topic_state/state)
diff --git a/code/modules/atmospherics/components/unary/vent_pump.dm b/code/modules/atmospherics/components/unary/vent_pump.dm
index 4f9a74967c0..2890c4e2bed 100644
--- a/code/modules/atmospherics/components/unary/vent_pump.dm
+++ b/code/modules/atmospherics/components/unary/vent_pump.dm
@@ -350,7 +350,7 @@
 	. = list()
 	. += "<table>"
 	. += "<tr><td><b>Name:</b></td><td>[name]</td>"
-	. += "<tr><td><b>Pump Status:</b></td><td>[pump_direction?("<font color = 'green'>Releasing</font>"):("<font color = 'red'>Siphoning</font>")]</td><td><a href='?src=\ref[src];switchMode=\ref[src]'>Toggle</a></td></tr>"
+	. += "<tr><td><b>Pump Status:</b></td><td>[pump_direction?("<font color = 'green'>Releasing</font>"):("<font color = 'red'>Siphoning</font>")]</td><td><a href='byond://?src=\ref[src];switchMode=\ref[src]'>Toggle</a></td></tr>"
 	. = JOINTEXT(.)
 
 /obj/machinery/atmospherics/unary/vent_pump/OnTopic(mob/user, href_list, datum/topic_state/state)
diff --git a/code/modules/character_info/_comment.dm b/code/modules/character_info/_comment.dm
index d03bbdaf769..5d1b10307d7 100644
--- a/code/modules/character_info/_comment.dm
+++ b/code/modules/character_info/_comment.dm
@@ -31,19 +31,19 @@
 		mood_title = "[mood_title] ([border_mood.name])"
 	. = list(
 		"<tr bgcolor = '[row_bkg_color]'>",
-		"<td width = 170px><small><center><b>[author_char]</b><br/><i>([author_ckey])</i><br/><a href='?src=\ref[presenting];set_viewed=[author_id]'>View</a></small></center></td>",
+		"<td width = 170px><small><center><b>[author_char]</b><br/><i>([author_ckey])</i><br/><a href='byond://?src=\ref[presenting];set_viewed=[author_id]'>View</a></small></center></td>",
 		"<td title = '[mood_title]' style=\"border: 1px solid [border_mood ? border_mood.bg_color : main_mood.fg_color];\" width = 360px bgcolor = '[main_mood.bg_color]'><center><font color = '[main_mood.fg_color]'>[body]</font></center></td>",
 		"<td width = 170px>"
 	)
 	if(usr)
 		. += "<center>"
 		if(author_ckey == usr.ckey || check_rights(R_MOD))
-			. += "<a href='?src=\ref[presenting];comment_ref=\ref[src];edit_comment=1'>Edit</a><br/>"
-			. += "<a href='?src=\ref[presenting];comment_ref=\ref[src];delete_comment=1'>Delete</a><br/>"
-			. += "<a href='?src=\ref[presenting];comment_ref=\ref[src];change_comment_mood=primary'>Change primary mood</a><br/>"
-			. += "<a href='?src=\ref[presenting];comment_ref=\ref[src];change_comment_mood=border'>Change border mood</a>"
+			. += "<a href='byond://?src=\ref[presenting];comment_ref=\ref[src];edit_comment=1'>Edit</a><br/>"
+			. += "<a href='byond://?src=\ref[presenting];comment_ref=\ref[src];delete_comment=1'>Delete</a><br/>"
+			. += "<a href='byond://?src=\ref[presenting];comment_ref=\ref[src];change_comment_mood=primary'>Change primary mood</a><br/>"
+			. += "<a href='byond://?src=\ref[presenting];comment_ref=\ref[src];change_comment_mood=border'>Change border mood</a>"
 		else if(usr.ckey == presenting.ckey)
-			. += "<a href='?src=\ref[presenting];comment_ref=\ref[src];delete_comment=1'>Delete</a>"
+			. += "<a href='byond://?src=\ref[presenting];comment_ref=\ref[src];delete_comment=1'>Delete</a>"
 		else
 			. += "<small><i>Not editable.</i></small>"
 		. += "</center>"
diff --git a/code/modules/character_info/character_info_interface.dm b/code/modules/character_info/character_info_interface.dm
index cff728f3376..dde178f46aa 100644
--- a/code/modules/character_info/character_info_interface.dm
+++ b/code/modules/character_info/character_info_interface.dm
@@ -55,9 +55,9 @@
 	if(ckey == user.ckey)
 		has_new_comments = FALSE
 
-	var/list/dat = list("<b>Viewing:</b> <a href='?src=\ref[src];change_viewed=1'>[name]</a><br/>")
+	var/list/dat = list("<b>Viewing:</b> <a href='byond://?src=\ref[src];change_viewed=1'>[name]</a><br/>")
 	var/datum/character_information/viewer = user.client.viewing_character_info_as && SScharacter_info.get_record(user.client.viewing_character_info_as, TRUE)
-	dat += "<b>Viewing as:</b> <a href='?src=\ref[src];change_viewer=1'>[viewer?.name || "Nobody"]</a><br/>"
+	dat += "<b>Viewing as:</b> <a href='byond://?src=\ref[src];change_viewer=1'>[viewer?.name || "Nobody"]</a><br/>"
 	dat += "<center><h2>IC Info</h2></center>"
 	dat += "<center>[ic_info || "None supplied."]</center><br/>"
 	dat += "<center><h2>OOC Info</h2></center>"
@@ -68,10 +68,10 @@
 		dat += "<center>This character page is not currently accepting or displaying comments.</center>"
 	else
 		if(user.client?.show_comments_legend)
-			dat += "<center><a href='?src=\ref[src];show_legend=0'>Hide legend</a></center>"
+			dat += "<center><a href='byond://?src=\ref[src];show_legend=0'>Hide legend</a></center>"
 			dat += get_comment_mood_legend()
 		else
-			dat += "<center><a href='?src=\ref[src];show_legend=1'>Show legend</a></center>"
+			dat += "<center><a href='byond://?src=\ref[src];show_legend=1'>Show legend</a></center>"
 		dat += "<br/>"
 
 		var/list/other_comments = list()
@@ -87,9 +87,9 @@
 		if(my_comment)
 			dat += my_comment.get_comment_html(src, user, COMMENT_CANDYSTRIPE_ONE)
 		else if(viewer)
-			dat += "<tr><td width = 700px colspan = 3><center>You have not left a comment for this character. <a href='?src=\ref[src];create_comment=1'>Leave one now?</a></center></td></tr>"
+			dat += "<tr><td width = 700px colspan = 3><center>You have not left a comment for this character. <a href='byond://?src=\ref[src];create_comment=1'>Leave one now?</a></center></td></tr>"
 		else
-			dat += "<tr><td width = 700px colspan = 3><center><b>You cannot leave a comment anonymously. Click <a href='?src=\ref[src];change_viewer=1'>here</a> to select one of your saved characters.</b></center></td></tr>"
+			dat += "<tr><td width = 700px colspan = 3><center><b>You cannot leave a comment anonymously. Click <a href='byond://?src=\ref[src];change_viewer=1'>here</a> to select one of your saved characters.</b></center></td></tr>"
 		dat += "</table>"
 
 		dat += "<center><h3>Other Comments</h3></center>"
@@ -226,7 +226,7 @@
 	set src = usr
 
 	var/list/dat = SScharacter_info.get_character_manifest_html()
-	dat += "<a href='?src=\ref[SScharacter_info];download_manifest=1'>Download as HTML</a>"
+	dat += "<a href='byond://?src=\ref[SScharacter_info];download_manifest=1'>Download as HTML</a>"
 
 	var/datum/browser/popup = new(usr, "character_matrix", "Character Matrix", 800, 800)
 	popup.set_content(JOINTEXT(dat))
diff --git a/code/modules/client/asset_cache.dm b/code/modules/client/asset_cache.dm
index 2caf5e993ab..8e8c90860c4 100644
--- a/code/modules/client/asset_cache.dm
+++ b/code/modules/client/asset_cache.dm
@@ -45,7 +45,7 @@ You can set verify to TRUE if you want send() to sleep until the client has the
 	client.sending |= asset_name
 	var/job = ++client.last_asset_job
 
-	direct_output(client, browse("<script>window.location.href='?asset_cache_confirm_arrival=[job]'</script>", "window=asset_cache_browser"))
+	direct_output(client, browse("<script>window.location.href='byond://?asset_cache_confirm_arrival=[job]'</script>", "window=asset_cache_browser"))
 
 	var/t = 0
 	var/timeout_time = (ASSET_CACHE_SEND_TIMEOUT * client.sending.len) + ASSET_CACHE_SEND_TIMEOUT
@@ -85,7 +85,7 @@ You can set verify to TRUE if you want send() to sleep until the client has the
 	client.sending |= unreceived
 	var/job = ++client.last_asset_job
 
-	direct_output(client, browse("<script>window.location.href='?asset_cache_confirm_arrival=[job]'</script>", "window=asset_cache_browser"))
+	direct_output(client, browse("<script>window.location.href='byond://?asset_cache_confirm_arrival=[job]'</script>", "window=asset_cache_browser"))
 
 	var/t = 0
 	var/timeout_time = ASSET_CACHE_SEND_TIMEOUT * client.sending.len
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index 2ec78b32e47..1a28566ee10 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -676,7 +676,7 @@ var/global/const/MAX_VIEW = 41
 	// winget() does not work for F1 and F2
 	for(var/key in communication_hotkeys)
 		if(!(key in list("F1","F2")) && !winget(src, "default-\ref[key]", "command"))
-			to_chat(src, SPAN_WARNING("You probably entered the game with a different keyboard layout.\n<a href='?src=\ref[src];reset_macros=1'>Please switch to the English layout and click here to fix the communication hotkeys.</a>"))
+			to_chat(src, SPAN_WARNING("You probably entered the game with a different keyboard layout.\n<a href='byond://?src=\ref[src];reset_macros=1'>Please switch to the English layout and click here to fix the communication hotkeys.</a>"))
 			break
 
 /client/proc/get_byond_membership()
diff --git a/code/modules/client/preference_setup/antagonism/01_candidacy.dm b/code/modules/client/preference_setup/antagonism/01_candidacy.dm
index b251b1a5c3a..40ad53d76f0 100644
--- a/code/modules/client/preference_setup/antagonism/01_candidacy.dm
+++ b/code/modules/client/preference_setup/antagonism/01_candidacy.dm
@@ -41,11 +41,11 @@
 		if(jobban_isbanned(preference_mob(), antag.name))
 			. += "<span class='danger'>\[BANNED\]</span><br>"
 		else if(antag.name in pref.be_special_role)
-			. += "<span class='linkOn'>High</span> <a href='?src=\ref[src];add_maybe=[antag.name]'>Low</a> <a href='?src=\ref[src];del_special=[antag.name]'>Never</a></br>"
+			. += "<span class='linkOn'>High</span> <a href='byond://?src=\ref[src];add_maybe=[antag.name]'>Low</a> <a href='byond://?src=\ref[src];del_special=[antag.name]'>Never</a></br>"
 		else if(antag.name in pref.may_be_special_role)
-			. += "<a href='?src=\ref[src];add_special=[antag.name]'>High</a> <span class='linkOn'>Low</span> <a href='?src=\ref[src];del_special=[antag.name]'>Never</a></br>"
+			. += "<a href='byond://?src=\ref[src];add_special=[antag.name]'>High</a> <span class='linkOn'>Low</span> <a href='byond://?src=\ref[src];del_special=[antag.name]'>Never</a></br>"
 		else
-			. += "<a href='?src=\ref[src];add_special=[antag.name]'>High</a> <a href='?src=\ref[src];add_maybe=[antag.name]'>Low</a> <span class='linkOn'>Never</span></br>"
+			. += "<a href='byond://?src=\ref[src];add_special=[antag.name]'>High</a> <a href='byond://?src=\ref[src];add_maybe=[antag.name]'>Low</a> <span class='linkOn'>Never</span></br>"
 
 		. += "</td></tr>"
 	. += "</table>"
@@ -61,14 +61,14 @@
 		if(banned_from_ghost_role(preference_mob(), ghost_trap))
 			. += "<span class='danger'>\[BANNED\]</span><br>"
 		else if(ghost_trap.pref_check in pref.be_special_role)
-			. += "<span class='linkOn'>High</span> <a href='?src=\ref[src];add_maybe=[ghost_trap.pref_check]'>Low</a> <a href='?src=\ref[src];del_special=[ghost_trap.pref_check]'>Never</a></br>"
+			. += "<span class='linkOn'>High</span> <a href='byond://?src=\ref[src];add_maybe=[ghost_trap.pref_check]'>Low</a> <a href='byond://?src=\ref[src];del_special=[ghost_trap.pref_check]'>Never</a></br>"
 		else if(ghost_trap.pref_check in pref.may_be_special_role)
-			. += "<a href='?src=\ref[src];add_special=[ghost_trap.pref_check]'>High</a> <span class='linkOn'>Low</span> <a href='?src=\ref[src];del_special=[ghost_trap.pref_check]'>Never</a></br>"
+			. += "<a href='byond://?src=\ref[src];add_special=[ghost_trap.pref_check]'>High</a> <span class='linkOn'>Low</span> <a href='byond://?src=\ref[src];del_special=[ghost_trap.pref_check]'>Never</a></br>"
 		else
-			. += "<a href='?src=\ref[src];add_special=[ghost_trap.pref_check]'>High</a> <a href='?src=\ref[src];add_maybe=[ghost_trap.pref_check]'>Low</a> <span class='linkOn'>Never</span></br>"
+			. += "<a href='byond://?src=\ref[src];add_special=[ghost_trap.pref_check]'>High</a> <a href='byond://?src=\ref[src];add_maybe=[ghost_trap.pref_check]'>Low</a> <span class='linkOn'>Never</span></br>"
 
 		. += "</td></tr>"
-	. += "<tr><td>Select All: </td><td><a href='?src=\ref[src];select_all=2'>High</a> <a href='?src=\ref[src];select_all=1'>Low</a> <a href='?src=\ref[src];select_all=0'>Never</a></td></tr>"
+	. += "<tr><td>Select All: </td><td><a href='byond://?src=\ref[src];select_all=2'>High</a> <a href='byond://?src=\ref[src];select_all=1'>Low</a> <a href='byond://?src=\ref[src];select_all=0'>Never</a></td></tr>"
 	. += "</table>"
 	. = jointext(.,null)
 
@@ -98,7 +98,7 @@
 		pref.may_be_special_role |= href_list["add_maybe"]
 		return TOPIC_REFRESH
 
-	if(href_list["select_all"])		
+	if(href_list["select_all"])
 		var/selection = text2num(href_list["select_all"])
 		var/list/roles = valid_special_roles(FALSE)
 
@@ -106,11 +106,11 @@
 			switch(selection)
 				if(0)
 					pref.be_special_role -= id
-					pref.may_be_special_role -= id					
+					pref.may_be_special_role -= id
 				if(1)
 					pref.be_special_role -= id
-					pref.may_be_special_role |= id					
-				if(2)					
+					pref.may_be_special_role |= id
+				if(2)
 					pref.be_special_role |= id
 					pref.may_be_special_role -= id
 		return TOPIC_REFRESH
@@ -134,7 +134,7 @@
 		if(!ghost_trap.list_as_special_role)
 			continue
 		if(!include_bans)
-			if(banned_from_ghost_role(preference_mob(), ghost_trap))		
+			if(banned_from_ghost_role(preference_mob(), ghost_trap))
 				continue
 		private_valid_special_roles |= ghost_trap.pref_check
 	return private_valid_special_roles
diff --git a/code/modules/client/preference_setup/antagonism/02_setup.dm b/code/modules/client/preference_setup/antagonism/02_setup.dm
index a79c3a8e931..efd83fc0e06 100644
--- a/code/modules/client/preference_setup/antagonism/02_setup.dm
+++ b/code/modules/client/preference_setup/antagonism/02_setup.dm
@@ -41,10 +41,10 @@
 
 /datum/category_item/player_setup_item/antagonism/basic/content(var/mob/user)
 	. +="<b>Antag Setup:</b><br>"
-	. +="Uplink Source Priority: <a href='?src=\ref[src];add_source=1'>Add</a><br>"
+	. +="Uplink Source Priority: <a href='byond://?src=\ref[src];add_source=1'>Add</a><br>"
 	for(var/entry in pref.uplink_sources)
 		var/decl/uplink_source/US = entry
-		. +="[US.name] <a href='?src=\ref[src];move_source_up=\ref[US]'>Move Up</a> <a href='?src=\ref[src];move_source_down=\ref[US]'>Move Down</a> <a href='?src=\ref[src];remove_source=\ref[US]'>Remove</a><br>"
+		. +="[US.name] <a href='byond://?src=\ref[src];move_source_up=\ref[US]'>Move Up</a> <a href='byond://?src=\ref[src];move_source_down=\ref[US]'>Move Down</a> <a href='byond://?src=\ref[src];remove_source=\ref[US]'>Remove</a><br>"
 		if(US.desc)
 			. += "<font size=1>[US.desc]</font><br>"
 	if(!pref.uplink_sources.len)
@@ -54,7 +54,7 @@
 	if(jobban_isbanned(user, "Records"))
 		. += "<b>You are banned from using character records.</b><br>"
 	else
-		. +="<a href='?src=\ref[src];exploitable_record=1'>[TextPreview(pref.exploit_record,40)]</a><br>"
+		. +="<a href='byond://?src=\ref[src];exploitable_record=1'>[TextPreview(pref.exploit_record,40)]</a><br>"
 
 /datum/category_item/player_setup_item/antagonism/basic/OnTopic(var/href,var/list/href_list, var/mob/user)
 	if(href_list["add_source"])
diff --git a/code/modules/client/preference_setup/background/01_species.dm b/code/modules/client/preference_setup/background/01_species.dm
index b336a08ab3d..22f7b42839d 100644
--- a/code/modules/client/preference_setup/background/01_species.dm
+++ b/code/modules/client/preference_setup/background/01_species.dm
@@ -52,7 +52,7 @@
 		if(pref.species == list_species.name)
 			. += "<span class='linkOn'>[list_species.name]</span> "
 		else
-			. += "<a href='?src=\ref[src];set_species=[list_species.name]'>[list_species.name]</a> "
+			. += "<a href='byond://?src=\ref[src];set_species=[list_species.name]'>[list_species.name]</a> "
 	. += "</center><hr/></td></tr>"
 
 	. += "<tr>"
@@ -71,7 +71,7 @@
 	if(hide_species && length(desc) > 200)
 		desc = "[copytext(desc, 1, 194)] <small>\[...\]</small>"
 	. += "<td width>[desc]</td>"
-	. += "<td width = '50px'><a href='?src=\ref[src];toggle_species_verbose=1'>[hide_species ? "Expand" : "Collapse"]</a></td>"
+	. += "<td width = '50px'><a href='byond://?src=\ref[src];toggle_species_verbose=1'>[hide_species ? "Expand" : "Collapse"]</a></td>"
 
 	. += "</tr>"
 
diff --git a/code/modules/client/preference_setup/background/02_culture.dm b/code/modules/client/preference_setup/background/02_culture.dm
index d6d8f8b850b..da5b288ce66 100644
--- a/code/modules/client/preference_setup/background/02_culture.dm
+++ b/code/modules/client/preference_setup/background/02_culture.dm
@@ -96,7 +96,7 @@
 			if(pref.cultural_info[token] == culture_data.type)
 				. += "<span class='linkOn'>[culture_data.name]</span> "
 			else
-				. += "<a href='?src=\ref[src];set_token_entry_[token]=\ref[culture_data]'>[culture_data.name]</a> "
+				. += "<a href='byond://?src=\ref[src];set_token_entry_[token]=\ref[culture_data]'>[culture_data.name]</a> "
 		. += "</center><hr/></td></tr>"
 
 		var/list/culture_info = culture.get_description(!hidden[token])
@@ -105,7 +105,7 @@
 		. += "</td><td>"
 		. += "[culture_info["body"] || "No description."]"
 		. += "</td><td width = '50px'>"
-		. += "<a href='?src=\ref[src];toggle_verbose_[token]=1'>[hidden[token] ? "Expand" : "Collapse"]</a>"
+		. += "<a href='byond://?src=\ref[src];toggle_verbose_[token]=1'>[hidden[token] ? "Expand" : "Collapse"]</a>"
 		. += "</td></tr>"
 		. += "</table><hr>"
 
diff --git a/code/modules/client/preference_setup/background/03_language.dm b/code/modules/client/preference_setup/background/03_language.dm
index 36e9aa7bb74..9c6dde471cc 100644
--- a/code/modules/client/preference_setup/background/03_language.dm
+++ b/code/modules/client/preference_setup/background/03_language.dm
@@ -139,7 +139,7 @@
 			if(free_languages[lang])
 				LAZYADD(., "<td width = '200px'><b>[lang_instance.name] <i>(required)</i></b></td>")
 			else
-				LAZYADD(., "<td width = '200px'><b>[lang_instance.name] <a href='?src=\ref[src];remove_language=[i]'>Remove</a></b></td>")
+				LAZYADD(., "<td width = '200px'><b>[lang_instance.name] <a href='byond://?src=\ref[src];remove_language=[i]'>Remove</a></b></td>")
 			LAZYADD(., "<td>[lang_instance.desc || "No information avaliable."]</td>")
 			LAZYADD(., "</tr>")
 
@@ -158,7 +158,7 @@
 			var/i = 0
 			for(var/decl/language/lang in available_languages)
 				i++
-				var/language_link = "<a href='?src=\ref[src];add_language=\ref[lang]'>[lang.name]</a>"
+				var/language_link = "<a href='byond://?src=\ref[src];add_language=\ref[lang]'>[lang.name]</a>"
 				if(i == 5)
 					i = 0
 					language_link += "<br>"
diff --git a/code/modules/client/preference_setup/controls/01_keybindings.dm b/code/modules/client/preference_setup/controls/01_keybindings.dm
index 32df0057281..eccfd9ecccf 100644
--- a/code/modules/client/preference_setup/controls/01_keybindings.dm
+++ b/code/modules/client/preference_setup/controls/01_keybindings.dm
@@ -78,7 +78,7 @@
 	. += "<center>"
 
 	. += "<br>"
-	. += "<a href ='?src=\ref[src];preference=keybindings_reset'>Reset to default</a>"
+	. += "<a href='byond://?src=\ref[src];preference=keybindings_reset'>Reset to default</a>"
 	. += "<br><br>"
 
 	. += "<div class='statusDisplay'>"
@@ -89,30 +89,30 @@
 		for (var/i in kb_categories[category])
 			var/datum/keybinding/kb = i
 			if(!length(user_binds[kb.name]) || (user_binds[kb.name][1] == "Unbound" && length(user_binds[kb.name]) == 1))
-				. += "<tr><td width='40%'>[kb.full_name]</td><td width='15%'><a class='fluid' href ='?src=\ref[src];preference=keybindings_capture;keybinding=[kb.name];old_key=["Unbound"]'>Unbound</a></td>"
+				. += "<tr><td width='40%'>[kb.full_name]</td><td width='15%'><a class='fluid' href='byond://?src=\ref[src];preference=keybindings_capture;keybinding=[kb.name];old_key=["Unbound"]'>Unbound</a></td>"
 				var/list/default_keys = pref.hotkeys ? kb.hotkey_keys : kb.classic_keys
 				var/class
 				if(user_binds[kb.name] ~= default_keys)
 					class = "class='linkOff fluid'"
 				else
-					class = "class='fluid' href ='?src=\ref[src];preference=keybinding_reset;keybinding=[kb.name];old_keys=[jointext(user_binds[kb.name], ",")]"
+					class = "class='fluid' href='byond://?src=\ref[src];preference=keybinding_reset;keybinding=[kb.name];old_keys=[jointext(user_binds[kb.name], ",")]"
 
 				. += {"<td width='15%'></td><td width='15%'></td><td width='15%'><a [class]'>Reset</a></td>"}
 				. += "</tr>"
 			else
 				var/bound_key = user_binds[kb.name][1]
 				var/normal_name = _kbMap_reverse[bound_key] ? _kbMap_reverse[bound_key] : bound_key
-				. += "<tr><td width='40%'>[kb.full_name]</td><td width='15%'><a class='fluid' href ='?src=\ref[src];preference=keybindings_capture;keybinding=[kb.name];old_key=[bound_key]'>[normal_name]</a></td>"
+				. += "<tr><td width='40%'>[kb.full_name]</td><td width='15%'><a class='fluid' href='byond://?src=\ref[src];preference=keybindings_capture;keybinding=[kb.name];old_key=[bound_key]'>[normal_name]</a></td>"
 				for(var/bound_key_index in 2 to length(user_binds[kb.name]))
 					bound_key = user_binds[kb.name][bound_key_index]
 					normal_name = _kbMap_reverse[bound_key] ? _kbMap_reverse[bound_key] : bound_key
-					. += "<td width='15%'><a class='fluid' href ='?src=\ref[src];preference=keybindings_capture;keybinding=[kb.name];old_key=[bound_key]'>[normal_name]</a></td>"
+					. += "<td width='15%'><a class='fluid' href='byond://?src=\ref[src];preference=keybindings_capture;keybinding=[kb.name];old_key=[bound_key]'>[normal_name]</a></td>"
 				if(length(user_binds[kb.name]) < MAX_KEYS_PER_KEYBIND)
-					. += "<td width='15%'><a class='fluid' href ='?src=\ref[src];preference=keybindings_capture;keybinding=[kb.name]'>Unbound</a></td>"
+					. += "<td width='15%'><a class='fluid' href='byond://?src=\ref[src];preference=keybindings_capture;keybinding=[kb.name]'>Unbound</a></td>"
 				for(var/j in 1 to MAX_KEYS_PER_KEYBIND - (length(user_binds[kb.name]) + 1))
 					. += "<td width='15%'></td>"
 				var/list/default_keys = pref.hotkeys ? kb.hotkey_keys : kb.classic_keys
-				. += {"<td width='15%'><a [user_binds[kb.name] ~= default_keys ? "class='linkOff fluid'" : "class='fluid' href ='?src=\ref[src];preference=keybinding_reset;keybinding=[kb.name];old_keys=[jointext(user_binds[kb.name], ",")]"]'>Reset</a></td>"}
+				. += {"<td width='15%'><a [user_binds[kb.name] ~= default_keys ? "class='linkOff fluid'" : "class='fluid' href='byond://?src=\ref[src];preference=keybinding_reset;keybinding=[kb.name];old_keys=[jointext(user_binds[kb.name], ",")]"]'>Reset</a></td>"}
 				. += "</tr>"
 		. += "</table>"
 
diff --git a/code/modules/client/preference_setup/general/01_basic.dm b/code/modules/client/preference_setup/general/01_basic.dm
index f5d83fa26a9..337bd93d0d8 100644
--- a/code/modules/client/preference_setup/general/01_basic.dm
+++ b/code/modules/client/preference_setup/general/01_basic.dm
@@ -69,9 +69,9 @@
 
 	. = list()
 	. += "<b>Name:</b> "
-	. += "<a href='?src=\ref[src];rename=1'><b>[pref.real_name]</b></a><br>"
-	. += "<a href='?src=\ref[src];random_name=1'>Randomize Name</A><br>"
-	. += "<a href='?src=\ref[src];always_random_name=1'>Always Random Name: [pref.be_random_name ? "Yes" : "No"]</a>"
+	. += "<a href='byond://?src=\ref[src];rename=1'><b>[pref.real_name]</b></a><br>"
+	. += "<a href='byond://?src=\ref[src];random_name=1'>Randomize Name</A><br>"
+	. += "<a href='byond://?src=\ref[src];always_random_name=1'>Always Random Name: [pref.be_random_name ? "Yes" : "No"]</a>"
 	. += "<hr>"
 
 	. += "<b>Bodytype:</b> "
@@ -80,14 +80,14 @@
 		if(B.name == pref.bodytype)
 			. += "<span class='linkOn'>[capitalize(B.pref_name)]</span>"
 		else
-			. += "<a href='?src=\ref[src];bodytype=\ref[B]'>[capitalize(B.pref_name)]</a>"
+			. += "<a href='byond://?src=\ref[src];bodytype=\ref[B]'>[capitalize(B.pref_name)]</a>"
 
 	. += "<br><b>Pronouns:</b> "
 	for(var/decl/pronouns/G in S.available_pronouns)
 		if(G.name == pref.gender)
 			. += "<span class='linkOn'>[G.pronoun_string]</span>"
 		else
-			. += "<a href='?src=\ref[src];gender=\ref[G]'>[G.pronoun_string]</a>"
+			. += "<a href='byond://?src=\ref[src];gender=\ref[G]'>[G.pronoun_string]</a>"
 
 	. += "<br><b>Spawnpoint</b>:"
 	var/decl/spawnpoint/spawnpoint = GET_DECL(pref.spawnpoint)
@@ -95,7 +95,7 @@
 		if(spawnpoint == allowed_spawnpoint)
 			. += "<span class='linkOn'>[allowed_spawnpoint.name]</span>"
 		else
-			. += "<a href='?src=\ref[src];spawnpoint=\ref[allowed_spawnpoint]'>[allowed_spawnpoint.name]</a>"
+			. += "<a href='byond://?src=\ref[src];spawnpoint=\ref[allowed_spawnpoint]'>[allowed_spawnpoint.name]</a>"
 	. = jointext(.,null)
 
 /datum/category_item/player_setup_item/physical/basic/OnTopic(var/href,var/list/href_list, var/mob/user)
diff --git a/code/modules/client/preference_setup/general/02_body.dm b/code/modules/client/preference_setup/general/02_body.dm
index b6ae6c871e7..1f84ff17e43 100644
--- a/code/modules/client/preference_setup/general/02_body.dm
+++ b/code/modules/client/preference_setup/general/02_body.dm
@@ -150,8 +150,8 @@
 
 	var/decl/species/mob_species = get_species_by_key(pref.species)
 	var/decl/bodytype/mob_bodytype = mob_species.get_bodytype_by_name(pref.bodytype) || mob_species.default_bodytype
-	. += "Blood Type: <a href='?src=\ref[src];blood_type=1'>[pref.blood_type]</a><br>"
-	. += "<a href='?src=\ref[src];random=1'>Randomize Appearance</A><br>"
+	. += "Blood Type: <a href='byond://?src=\ref[src];blood_type=1'>[pref.blood_type]</a><br>"
+	. += "<a href='byond://?src=\ref[src];random=1'>Randomize Appearance</A><br>"
 
 	if(LAZYLEN(pref.appearance_descriptors))
 		. += "<h3>Physical Appearance</h3>"
@@ -160,7 +160,7 @@
 			var/datum/appearance_descriptor/descriptor = mob_bodytype.appearance_descriptors[entry]
 			. += "<tr><td><b>[capitalize(descriptor.chargen_label)]</b></td>"
 			if(descriptor.has_custom_value())
-				. += "<td align = 'left' width = '50px'><a href='?src=\ref[src];set_descriptor=\ref[descriptor];set_descriptor_custom=1'>[descriptor.get_value_text(pref.appearance_descriptors[entry])]</a></td><td align = 'left'>"
+				. += "<td align = 'left' width = '50px'><a href='byond://?src=\ref[src];set_descriptor=\ref[descriptor];set_descriptor_custom=1'>[descriptor.get_value_text(pref.appearance_descriptors[entry])]</a></td><td align = 'left'>"
 			else
 				. += "<td align = 'left' colspan = 2>"
 			for(var/i = descriptor.chargen_min_index to descriptor.chargen_max_index)
@@ -169,7 +169,7 @@
 				if(i == desc_index)
 					. += "<span class='linkOn'>[use_string]</span>"
 				else
-					. += "<a href='?src=\ref[src];set_descriptor=\ref[descriptor];set_descriptor_value=[i]'>[use_string]</a>"
+					. += "<a href='byond://?src=\ref[src];set_descriptor=\ref[descriptor];set_descriptor_value=[i]'>[use_string]</a>"
 			. += "</td></tr>"
 		. += "</table>"
 
@@ -181,21 +181,21 @@
 		if(mob_bodytype.appearance_flags & HAS_A_SKIN_TONE)
 			. += "<tr>"
 			. += "<td width = '100px'><b>Skin tone</b></td>"
-			. += "<td width = '100px'><a href='?src=\ref[src];skin_tone=1'>[-pref.skin_tone + 35]/[mob_bodytype.max_skin_tone()]</a></td>"
+			. += "<td width = '100px'><a href='byond://?src=\ref[src];skin_tone=1'>[-pref.skin_tone + 35]/[mob_bodytype.max_skin_tone()]</a></td>"
 			. += "<td colspan = 3 width = '300px'><td>"
 			. += "</tr>"
 
 		if(mob_bodytype.appearance_flags & HAS_SKIN_COLOR)
 			. += "<tr>"
 			. += "<td width = '100px'><b>Skin color</b></td>"
-			. += "<td width = '100px'>[COLORED_SQUARE(pref.skin_colour)] <a href='?src=\ref[src];skin_color=1'>Change</a></td>"
+			. += "<td width = '100px'>[COLORED_SQUARE(pref.skin_colour)] <a href='byond://?src=\ref[src];skin_color=1'>Change</a></td>"
 			. += "<td colspan = 3 width = '300px'><td>"
 			. += "</tr>"
 
 		if(mob_bodytype.appearance_flags & HAS_EYE_COLOR)
 			. += "<tr>"
 			. += "<td width = '100px'><b>Eyes</b></td>"
-			. += "<td width = '100px'>[COLORED_SQUARE(pref.eye_colour)] <a href='?src=\ref[src];eye_color=1'>Change</a></td>"
+			. += "<td width = '100px'>[COLORED_SQUARE(pref.eye_colour)] <a href='byond://?src=\ref[src];eye_color=1'>Change</a></td>"
 			. += "<td colspan = 3 width = '300px'><td>"
 			. += "</tr>"
 
@@ -215,10 +215,10 @@
 				var/acc_decl_ref = "\ref[accessory_decl]"
 				. += "<tr>"
 				. += "<td width = '100px'><b>[accessory_cat_decl.name]</b></td>"
-				. += "<td width = '100px'>[COLORED_SQUARE(accessory_color)] <a href='?src=\ref[src];acc_cat_decl=[cat_decl_ref];acc_decl=[acc_decl_ref];acc_color=1'>Change</a></td>"
-				. += "<td width = '20px'><a href='?src=\ref[src];acc_cat_decl=[cat_decl_ref];acc_decl=[acc_decl_ref];acc_prev=1'>[left_arrow]</a></td>"
-				. += "<td width = '260px'><a href='?src=\ref[src];acc_cat_decl=[cat_decl_ref];acc_decl=[acc_decl_ref];acc_style=1'>[accessory_decl.name]</a></td>"
-				. += "<td width = '20px'><a href='?src=\ref[src];acc_cat_decl=[cat_decl_ref];acc_decl=[acc_decl_ref];acc_next=1'>[right_arrow]</a></td>"
+				. += "<td width = '100px'>[COLORED_SQUARE(accessory_color)] <a href='byond://?src=\ref[src];acc_cat_decl=[cat_decl_ref];acc_decl=[acc_decl_ref];acc_color=1'>Change</a></td>"
+				. += "<td width = '20px'><a href='byond://?src=\ref[src];acc_cat_decl=[cat_decl_ref];acc_decl=[acc_decl_ref];acc_prev=1'>[left_arrow]</a></td>"
+				. += "<td width = '260px'><a href='byond://?src=\ref[src];acc_cat_decl=[cat_decl_ref];acc_decl=[acc_decl_ref];acc_style=1'>[accessory_decl.name]</a></td>"
+				. += "<td width = '20px'><a href='byond://?src=\ref[src];acc_cat_decl=[cat_decl_ref];acc_decl=[acc_decl_ref];acc_next=1'>[right_arrow]</a></td>"
 				. += "</tr>"
 				continue
 
@@ -232,14 +232,14 @@
 				var/decl/sprite_accessory/accessory_decl = GET_DECL(accessory)
 				var/acc_decl_ref = "\ref[accessory_decl]"
 				. += "<tr>"
-				. += "<td width = '100px'><a href='?src=\ref[src];acc_cat_decl=[cat_decl_ref];acc_decl=[acc_decl_ref];acc_remove=1'>Remove</a></td>"
-				. += "<td width = '100px'>[COLORED_SQUARE(current_accessories[accessory])] <a href='?src=\ref[src];acc_cat_decl=[cat_decl_ref];acc_decl=[acc_decl_ref];acc_color=1'>Change</a></td>"
-				. += "<td width = '20px'><a href='?src=\ref[src];acc_cat_decl=[cat_decl_ref];acc_decl=[acc_decl_ref];acc_move_up=1'>[up_arrow]</a></td>"
+				. += "<td width = '100px'><a href='byond://?src=\ref[src];acc_cat_decl=[cat_decl_ref];acc_decl=[acc_decl_ref];acc_remove=1'>Remove</a></td>"
+				. += "<td width = '100px'>[COLORED_SQUARE(current_accessories[accessory])] <a href='byond://?src=\ref[src];acc_cat_decl=[cat_decl_ref];acc_decl=[acc_decl_ref];acc_color=1'>Change</a></td>"
+				. += "<td width = '20px'><a href='byond://?src=\ref[src];acc_cat_decl=[cat_decl_ref];acc_decl=[acc_decl_ref];acc_move_up=1'>[up_arrow]</a></td>"
 				. += "<td width = '260px'>[accessory_decl.name]</td>"
-				. += "<td width = '20px'><a href='?src=\ref[src];acc_cat_decl=[cat_decl_ref];acc_decl=[acc_decl_ref];acc_move_down=1'>[down_arrow]</a></td>"
+				. += "<td width = '20px'><a href='byond://?src=\ref[src];acc_cat_decl=[cat_decl_ref];acc_decl=[acc_decl_ref];acc_move_down=1'>[down_arrow]</a></td>"
 				. += "</tr>"
 			if(isnull(accessory_cat_decl.max_selections) || i < accessory_cat_decl.max_selections)
-				. += "<tr><td colspan = 5 width = '500px'><a href='?src=\ref[src];acc_cat_decl=[cat_decl_ref];acc_style=1'>Add marking</a></td></tr>"
+				. += "<tr><td colspan = 5 width = '500px'><a href='byond://?src=\ref[src];acc_cat_decl=[cat_decl_ref];acc_style=1'>Add marking</a></td></tr>"
 
 	. += "</table>"
 
diff --git a/code/modules/client/preference_setup/general/03_traits.dm b/code/modules/client/preference_setup/general/03_traits.dm
index 9d88f4d87e5..76f6cdefb61 100644
--- a/code/modules/client/preference_setup/general/03_traits.dm
+++ b/code/modules/client/preference_setup/general/03_traits.dm
@@ -135,7 +135,7 @@
 			category_label = "[category_label] ([trait_spent])"
 		if(trait_category_id == selected_category)
 			category_label = "<font color = '#e67300'>[category_label]</font>"
-		header += "<td><a href='?src=\ref[src];select_category=[trait_category.name]'>[category_label]</a></td>"
+		header += "<td><a href='byond://?src=\ref[src];select_category=[trait_category.name]'>[category_label]</a></td>"
 
 	. += "<table align = 'center'><tr>[header]</tr></table>"
 	. += "<table align = 'center'>[body]</table>"
diff --git a/code/modules/client/preference_setup/general/04_equipment.dm b/code/modules/client/preference_setup/general/04_equipment.dm
index 40ddb0ff9c2..4f24dd14b78 100644
--- a/code/modules/client/preference_setup/general/04_equipment.dm
+++ b/code/modules/client/preference_setup/general/04_equipment.dm
@@ -114,27 +114,27 @@
 	if(mob_bodytype?.appearance_flags & HAS_UNDERWEAR)
 		for(var/datum/category_group/underwear/UWC in global.underwear.categories)
 			var/item_name = (pref.all_underwear && pref.all_underwear[UWC.name]) ? pref.all_underwear[UWC.name] : "None"
-			. += "[UWC.name]: <a href='?src=\ref[src];change_underwear=[UWC.name]'><b>[item_name]</b></a>"
+			. += "[UWC.name]: <a href='byond://?src=\ref[src];change_underwear=[UWC.name]'><b>[item_name]</b></a>"
 
 			var/datum/category_item/underwear/UWI = UWC.items_by_name[item_name]
 			if(UWI)
 				for(var/datum/gear_tweak/gt in UWI.tweaks)
-					. += " <a href='?src=\ref[src];underwear=[UWC.name];tweak=\ref[gt]'>[gt.get_contents(get_underwear_metadata(UWC.name, gt))]</a>"
+					. += " <a href='byond://?src=\ref[src];underwear=[UWC.name];tweak=\ref[gt]'>[gt.get_contents(get_underwear_metadata(UWC.name, gt))]</a>"
 
 			. += "<br>"
-	. += "<b>Backpack type:</b> <a href='?src=\ref[src];change_backpack=1'><b>[pref.backpack.name]</b></a>"
+	. += "<b>Backpack type:</b> <a href='byond://?src=\ref[src];change_backpack=1'><b>[pref.backpack.name]</b></a>"
 	for(var/datum/backpack_tweak/bt in pref.backpack.tweaks)
-		. += " <a href='?src=\ref[src];backpack=[pref.backpack.name];tweak=\ref[bt]'>[bt.get_ui_content(get_backpack_metadata(pref.backpack, bt))]</a>"
+		. += " <a href='byond://?src=\ref[src];backpack=[pref.backpack.name];tweak=\ref[bt]'>[bt.get_ui_content(get_backpack_metadata(pref.backpack, bt))]</a>"
 	. += "<br>"
 
 	if(length(global.using_map.survival_box_choices) > 1)
-		. += "<b>Survival box type:</b> <a href='?src=\ref[src];change_survival_box=1'><b>[pref.survival_box_choice]</b></a><br>"
+		. += "<b>Survival box type:</b> <a href='byond://?src=\ref[src];change_survival_box=1'><b>[pref.survival_box_choice]</b></a><br>"
 
 	if(global.using_map.passport_type)
-		. += "<b>Passport:</b> <a href='?src=\ref[src];toggle_passport=1'><b>[pref.give_passport ? "Yes" : "No"]</b></a><br>"
+		. += "<b>Passport:</b> <a href='byond://?src=\ref[src];toggle_passport=1'><b>[pref.give_passport ? "Yes" : "No"]</b></a><br>"
 
 	if(length(global.using_map.starting_cash_choices) > 1)
-		. += "<br><b>Personal finances:</b><br><a href='?src=\ref[src];change_cash_choice=1'>[pref.starting_cash_choice]</a><br>"
+		. += "<br><b>Personal finances:</b><br><a href='byond://?src=\ref[src];change_cash_choice=1'>[pref.starting_cash_choice]</a><br>"
 	return jointext(.,null)
 
 /datum/category_item/player_setup_item/physical/equipment/proc/get_underwear_metadata(var/underwear_category, var/datum/gear_tweak/gt)
diff --git a/code/modules/client/preference_setup/general/05_flavor.dm b/code/modules/client/preference_setup/general/05_flavor.dm
index 855b1ecbed9..e34ae4c9dc3 100644
--- a/code/modules/client/preference_setup/general/05_flavor.dm
+++ b/code/modules/client/preference_setup/general/05_flavor.dm
@@ -44,8 +44,8 @@
 /datum/category_item/player_setup_item/physical/flavor/content(var/mob/user)
 
 	. += "<b>Flavor:</b><br>"
-	. += "<a href='?src=\ref[src];flavor_text=open'>Set Flavor Text</a><br/>"
-	. += "<a href='?src=\ref[src];flavour_text_robot=open'>Set Robot Flavor Text</a><br/>"
+	. += "<a href='byond://?src=\ref[src];flavor_text=open'>Set Flavor Text</a><br/>"
+	. += "<a href='byond://?src=\ref[src];flavour_text_robot=open'>Set Robot Flavor Text</a><br/>"
 
 /datum/category_item/player_setup_item/physical/flavor/OnTopic(var/href,var/list/href_list, var/mob/user)
 
@@ -86,31 +86,31 @@
 	HTML += "<tt><center>"
 	HTML += "<b>Set Flavour Text</b> <hr />"
 	HTML += "<br></center>"
-	HTML += "<a href='?src=\ref[src];flavor_text=general'>General:</a> "
+	HTML += "<a href='byond://?src=\ref[src];flavor_text=general'>General:</a> "
 	HTML += TextPreview(pref.flavor_texts["general"])
 	HTML += "<br>"
-	HTML += "<a href='?src=\ref[src];flavor_text=head'>Head:</a> "
+	HTML += "<a href='byond://?src=\ref[src];flavor_text=head'>Head:</a> "
 	HTML += TextPreview(pref.flavor_texts["head"])
 	HTML += "<br>"
-	HTML += "<a href='?src=\ref[src];flavor_text=face'>Face:</a> "
+	HTML += "<a href='byond://?src=\ref[src];flavor_text=face'>Face:</a> "
 	HTML += TextPreview(pref.flavor_texts["face"])
 	HTML += "<br>"
-	HTML += "<a href='?src=\ref[src];flavor_text=eyes'>Eyes:</a> "
+	HTML += "<a href='byond://?src=\ref[src];flavor_text=eyes'>Eyes:</a> "
 	HTML += TextPreview(pref.flavor_texts["eyes"])
 	HTML += "<br>"
-	HTML += "<a href='?src=\ref[src];flavor_text=torso'>Body:</a> "
+	HTML += "<a href='byond://?src=\ref[src];flavor_text=torso'>Body:</a> "
 	HTML += TextPreview(pref.flavor_texts["torso"])
 	HTML += "<br>"
-	HTML += "<a href='?src=\ref[src];flavor_text=arms'>Arms:</a> "
+	HTML += "<a href='byond://?src=\ref[src];flavor_text=arms'>Arms:</a> "
 	HTML += TextPreview(pref.flavor_texts["arms"])
 	HTML += "<br>"
-	HTML += "<a href='?src=\ref[src];flavor_text=hands'>Hands:</a> "
+	HTML += "<a href='byond://?src=\ref[src];flavor_text=hands'>Hands:</a> "
 	HTML += TextPreview(pref.flavor_texts["hands"])
 	HTML += "<br>"
-	HTML += "<a href='?src=\ref[src];flavor_text=legs'>Legs:</a> "
+	HTML += "<a href='byond://?src=\ref[src];flavor_text=legs'>Legs:</a> "
 	HTML += TextPreview(pref.flavor_texts["legs"])
 	HTML += "<br>"
-	HTML += "<a href='?src=\ref[src];flavor_text=feet'>Feet:</a> "
+	HTML += "<a href='byond://?src=\ref[src];flavor_text=feet'>Feet:</a> "
 	HTML += TextPreview(pref.flavor_texts["feet"])
 	HTML += "<br>"
 	HTML += "<hr />"
@@ -123,11 +123,11 @@
 	HTML += "<tt><center>"
 	HTML += "<b>Set Robot Flavour Text</b> <hr />"
 	HTML += "<br></center>"
-	HTML += "<a href='?src=\ref[src];flavour_text_robot=Default'>Default:</a> "
+	HTML += "<a href='byond://?src=\ref[src];flavour_text_robot=Default'>Default:</a> "
 	HTML += TextPreview(pref.flavour_texts_robot["Default"])
 	HTML += "<hr />"
 	for(var/module in SSrobots.all_module_names)
-		HTML += "<a href='?src=\ref[src];flavour_text_robot=[module]'>[module]:</a> "
+		HTML += "<a href='byond://?src=\ref[src];flavour_text_robot=[module]'>[module]:</a> "
 		HTML += TextPreview(pref.flavour_texts_robot[module])
 		HTML += "<br>"
 	HTML += "<hr />"
diff --git a/code/modules/client/preference_setup/global/01_ui.dm b/code/modules/client/preference_setup/global/01_ui.dm
index 49e55ec3736..de5797080c4 100644
--- a/code/modules/client/preference_setup/global/01_ui.dm
+++ b/code/modules/client/preference_setup/global/01_ui.dm
@@ -67,35 +67,35 @@ var/global/list/valid_icon_sizes = list(32, 48, 64, 96, 128)
 /datum/category_item/player_setup_item/player_global/ui/proc/get_ui_table(var/mob/user)
 	LAZYINITLIST(.)
 	. += "<tr><td>UI Color</td>"
-	. += "<td><a href='?src=\ref[src];select_color=1'><b>[pref.UI_style_color]</b></a></td>"
+	. += "<td><a href='byond://?src=\ref[src];select_color=1'><b>[pref.UI_style_color]</b></a></td>"
 	. += "<td><table style='display:inline;' bgcolor='[pref.UI_style_color]'><tr><td>__</td></tr></table></td>"
-	. += "<td><a href='?src=\ref[src];reset=ui'>reset</a></td>"
+	. += "<td><a href='byond://?src=\ref[src];reset=ui'>reset</a></td>"
 	. += "</tr>"
 	. += "<tr><td>UI Opacity</td>"
-	. += "<td colspan = 2><a href='?src=\ref[src];select_alpha=1'><b>[pref.UI_style_alpha]</b></a></td>"
-	. += "<td><a href='?src=\ref[src];reset=alpha'>reset</a></td>"
+	. += "<td colspan = 2><a href='byond://?src=\ref[src];select_alpha=1'><b>[pref.UI_style_alpha]</b></a></td>"
+	. += "<td><a href='byond://?src=\ref[src];reset=alpha'>reset</a></td>"
 	. += "</tr>"
 
 /datum/category_item/player_setup_item/player_global/ui/content(var/mob/user)
 	. = "<b>UI Settings</b><br>"
 
 	var/decl/ui_style/current_style = GET_DECL(pref.UI_style)
-	. += "<b>UI Style:</b> <a href='?src=\ref[src];select_style=1'><b>[current_style.name]</b></a><br>"
+	. += "<b>UI Style:</b> <a href='byond://?src=\ref[src];select_style=1'><b>[current_style.name]</b></a><br>"
 
 	. += "<b>Custom UI</b> (recommended for White UI):"
 	. += "<table style='margin: 0px auto; padding: 1px;'>"
 	. += jointext(get_ui_table(), null)
 	. += "</table><br>"
-	. += "<b>Tooltip Style:</b> <a href='?src=\ref[src];select_tooltip_style=1'><b>[pref.tooltip_style]</b></a><br>"
-	. += "<b>Default icon size:</b> <a href='?src=\ref[src];select_icon_size=1'>[pref.icon_size]x[pref.icon_size]</a><br>"
+	. += "<b>Tooltip Style:</b> <a href='byond://?src=\ref[src];select_tooltip_style=1'><b>[pref.tooltip_style]</b></a><br>"
+	. += "<b>Default icon size:</b> <a href='byond://?src=\ref[src];select_icon_size=1'>[pref.icon_size]x[pref.icon_size]</a><br>"
 
 	if(can_select_ooc_color(user))
 		. += "<b>OOC Color:</b> "
 		if(pref.ooccolor == initial(pref.ooccolor))
-			. += "<a href='?src=\ref[src];select_ooc_color=1'><b>Using Default</b></a><br>"
+			. += "<a href='byond://?src=\ref[src];select_ooc_color=1'><b>Using Default</b></a><br>"
 		else
-			. += "<a href='?src=\ref[src];select_ooc_color=1'><b>[pref.ooccolor]</b></a> <table style='display:inline;' bgcolor='[pref.ooccolor]'><tr><td>__</td></tr></table> <a href='?src=\ref[src];reset=ooc'>reset</a><br>"
-	. += "<b>Client FPS:</b> <a href='?src=\ref[src];select_fps=1'><b>[pref.clientfps]</b></a><br>"
+			. += "<a href='byond://?src=\ref[src];select_ooc_color=1'><b>[pref.ooccolor]</b></a> <table style='display:inline;' bgcolor='[pref.ooccolor]'><tr><td>__</td></tr></table> <a href='byond://?src=\ref[src];reset=ooc'>reset</a><br>"
+	. += "<b>Client FPS:</b> <a href='byond://?src=\ref[src];select_fps=1'><b>[pref.clientfps]</b></a><br>"
 
 /datum/category_item/player_setup_item/player_global/ui/OnTopic(var/href,var/list/href_list, var/mob/user)
 	if(href_list["select_style"])
diff --git a/code/modules/client/preference_setup/global/02_prefixes.dm b/code/modules/client/preference_setup/global/02_prefixes.dm
index 37acc9f68d4..935feeda7f2 100644
--- a/code/modules/client/preference_setup/global/02_prefixes.dm
+++ b/code/modules/client/preference_setup/global/02_prefixes.dm
@@ -57,14 +57,14 @@
 			. += "<span class='linkOff'>Change</span>"
 		else
 
-			. += "<a href='?src=\ref[src];change_prefix=\ref[prefix_instance]'>Change</a>"
+			. += "<a href='byond://?src=\ref[src];change_prefix=\ref[prefix_instance]'>Change</a>"
 
 		. += "</td><td>"
 
 		if(prefix_instance.is_locked || current_prefix == prefix_instance.default_key)
 			. += "<span class='linkOff'>Reset</span>"
 		else
-			. += "<a href='?src=\ref[src];reset_prefix=\ref[prefix_instance]'>Reset</a>"
+			. += "<a href='byond://?src=\ref[src];reset_prefix=\ref[prefix_instance]'>Reset</a>"
 		. += "</td></tr>"
 	. += "</table>"
 
diff --git a/code/modules/client/preference_setup/global/03_pai.dm b/code/modules/client/preference_setup/global/03_pai.dm
index d705485bdf6..3503a29b7c9 100644
--- a/code/modules/client/preference_setup/global/03_pai.dm
+++ b/code/modules/client/preference_setup/global/03_pai.dm
@@ -37,13 +37,13 @@
 	if(!candidate)
 		log_debug("[user] pAI prefs have a null candidate var.")
 		return .
-	. += "Name: <a href='?src=\ref[src];option=name'>[candidate.name ? candidate.name : "None Set"]</a><br>"
-	. += "Description: <a href='?src=\ref[src];option=desc'>[candidate.description ? TextPreview(candidate.description, 40) : "None Set"]</a><br>"
-	. += "Role: <a href='?src=\ref[src];option=role'>[candidate.role ? TextPreview(candidate.role, 40) : "None Set"]</a><br>"
-	. += "OOC Comments: <a href='?src=\ref[src];option=ooc'>[candidate.comments ? TextPreview(candidate.comments, 40) : "None Set"]</a><br>"
-	. += "<div>Chassis: <a href='?src=\ref[src];option=chassis'>[candidate.chassis]</a><br>"
-	. += "<div>Say Verb: <a href='?src=\ref[src];option=say'>[candidate.say_verb]</a><br>"
-	. += "<table><tr style='vertical-align:top'><td><div class='statusDisplay'><center><img src=pai_preview.png width=[pai_preview.Width()] height=[pai_preview.Height()]></center><a href='?src=\ref[src];option=cyclebg'>Cycle Background</a></div>"
+	. += "Name: <a href='byond://?src=\ref[src];option=name'>[candidate.name ? candidate.name : "None Set"]</a><br>"
+	. += "Description: <a href='byond://?src=\ref[src];option=desc'>[candidate.description ? TextPreview(candidate.description, 40) : "None Set"]</a><br>"
+	. += "Role: <a href='byond://?src=\ref[src];option=role'>[candidate.role ? TextPreview(candidate.role, 40) : "None Set"]</a><br>"
+	. += "OOC Comments: <a href='byond://?src=\ref[src];option=ooc'>[candidate.comments ? TextPreview(candidate.comments, 40) : "None Set"]</a><br>"
+	. += "<div>Chassis: <a href='byond://?src=\ref[src];option=chassis'>[candidate.chassis]</a><br>"
+	. += "<div>Say Verb: <a href='byond://?src=\ref[src];option=say'>[candidate.say_verb]</a><br>"
+	. += "<table><tr style='vertical-align:top'><td><div class='statusDisplay'><center><img src=pai_preview.png width=[pai_preview.Width()] height=[pai_preview.Height()]></center><a href='byond://?src=\ref[src];option=cyclebg'>Cycle Background</a></div>"
 	. += "</td></tr></table>"
 
 /datum/category_item/player_setup_item/player_global/pai/OnTopic(var/href,var/list/href_list, var/mob/user)
diff --git a/code/modules/client/preference_setup/global/04_ooc.dm b/code/modules/client/preference_setup/global/04_ooc.dm
index 301539fcb38..923d75f458e 100644
--- a/code/modules/client/preference_setup/global/04_ooc.dm
+++ b/code/modules/client/preference_setup/global/04_ooc.dm
@@ -22,8 +22,8 @@
 	. += "<b>OOC:</b><br>"
 	. += "Ignored Players<br>"
 	for(var/ignored_player in pref.ignored_players)
-		. += "[ignored_player] (<a href='?src=\ref[src];unignore_player=[ignored_player]'>Unignore</a>)<br>"
-	. += "(<a href='?src=\ref[src];ignore_player=1'>Ignore Player</a>)"
+		. += "[ignored_player] (<a href='byond://?src=\ref[src];unignore_player=[ignored_player]'>Unignore</a>)<br>"
+	. += "(<a href='byond://?src=\ref[src];ignore_player=1'>Ignore Player</a>)"
 
 /datum/category_item/player_setup_item/player_global/ooc/OnTopic(var/href,var/list/href_list, var/mob/user)
 	if(href_list["unignore_player"])
diff --git a/code/modules/client/preference_setup/global/05_settings.dm b/code/modules/client/preference_setup/global/05_settings.dm
index 12e2816db9a..0548d22fc6e 100644
--- a/code/modules/client/preference_setup/global/05_settings.dm
+++ b/code/modules/client/preference_setup/global/05_settings.dm
@@ -61,7 +61,7 @@
 		var/selected_option = pref_mob.get_preference_value(client_pref.key)
 		for(var/option in client_pref.options)
 			var/is_selected = selected_option == option
-			. += "<td><a class='[is_selected ? "linkOn" : ""]' href='?src=\ref[src];pref=[client_pref.key];value=[option]'><b>[option]</b></a>"
+			. += "<td><a class='[is_selected ? "linkOn" : ""]' href='byond://?src=\ref[src];pref=[client_pref.key];value=[option]'><b>[option]</b></a>"
 
 		. += "</tr>"
 
diff --git a/code/modules/client/preference_setup/loadout/loadout.dm b/code/modules/client/preference_setup/loadout/loadout.dm
index aef71965634..c4921073fa4 100644
--- a/code/modules/client/preference_setup/loadout/loadout.dm
+++ b/code/modules/client/preference_setup/loadout/loadout.dm
@@ -124,13 +124,13 @@ var/global/list/gear_datums = list()
 		fcolor = COLOR_FONT_ORANGE
 	. += "<table align = 'center' width = 100%>"
 	. += "<tr><td colspan=3><center>"
-	. += "<a href='?src=\ref[src];prev_slot=1'>\<\<</a><b><font color = '[fcolor]'>\[[pref.gear_slot]\]</font> </b><a href='?src=\ref[src];next_slot=1'>\>\></a>"
+	. += "<a href='byond://?src=\ref[src];prev_slot=1'>\<\<</a><b><font color = '[fcolor]'>\[[pref.gear_slot]\]</font> </b><a href='byond://?src=\ref[src];next_slot=1'>\>\></a>"
 
 	if(max_gear_cost < INFINITY)
 		. += "<b><font color = '[fcolor]'>[pref.total_loadout_cost]/[max_gear_cost]</font> loadout points spent.</b>"
 
-	. += "<a href='?src=\ref[src];clear_loadout=1'>Clear Loadout</a>"
-	. += "<a href='?src=\ref[src];toggle_hiding=1'>[hide_unavailable_gear ? "Show all" : "Hide unavailable"]</a></center></td></tr>"
+	. += "<a href='byond://?src=\ref[src];clear_loadout=1'>Clear Loadout</a>"
+	. += "<a href='byond://?src=\ref[src];toggle_hiding=1'>[hide_unavailable_gear ? "Show all" : "Hide unavailable"]</a></center></td></tr>"
 
 	. += "<tr><td colspan=3><center><b>"
 	var/firstcat = 1
@@ -156,9 +156,9 @@ var/global/list/gear_datums = list()
 			if(LC.max_selections < INFINITY)
 				category_selections = " - [LC.max_selections - pref.total_loadout_selections[category]] remaining"
 			if(category_cost)
-				. += " <a href='?src=\ref[src];select_category=\ref[LC]'><font color = '#e67300'>[LC.name] - [category_cost][category_selections]</font></a> "
+				. += " <a href='byond://?src=\ref[src];select_category=\ref[LC]'><font color = '#e67300'>[LC.name] - [category_cost][category_selections]</font></a> "
 			else
-				. += " <a href='?src=\ref[src];select_category=\ref[LC]'>[LC.name] - 0[category_selections]</a> "
+				. += " <a href='byond://?src=\ref[src];select_category=\ref[LC]'>[LC.name] - 0[category_selections]</a> "
 
 	. += "</b></center></td></tr>"
 	. += "<tr><td colspan=3><hr></td></tr>"
@@ -175,9 +175,9 @@ var/global/list/gear_datums = list()
 			if(istype(G))
 				if(G.slot)
 					i++
-					. += "<tr><td colspan=2><center>Layer [i]: [G.name]</center></td><td><a href='?src=\ref[src];gear=\ref[G];layer_lower=1'>Layer under</a><a href='?src=\ref[src];gear=\ref[G];layer_higher=1'>Layer over</a><a href='?src=\ref[src];toggle_gear=\ref[G]'>Remove</a></td></tr>"
+					. += "<tr><td colspan=2><center>Layer [i]: [G.name]</center></td><td><a href='byond://?src=\ref[src];gear=\ref[G];layer_lower=1'>Layer under</a><a href='byond://?src=\ref[src];gear=\ref[G];layer_higher=1'>Layer over</a><a href='byond://?src=\ref[src];toggle_gear=\ref[G]'>Remove</a></td></tr>"
 				else
-					other_gear += "<tr><td colspan=2><center>[G.name]</center></td><td><a href='?src=\ref[src];toggle_gear=\ref[G]'>Remove</a></td></tr>"
+					other_gear += "<tr><td colspan=2><center>[G.name]</center></td><td><a href='byond://?src=\ref[src];toggle_gear=\ref[G]'>Remove</a></td></tr>"
 
 		if(length(other_gear))
 			. += "<tr><td colspan=3><b><hr><center>Other gear</b><hr></center></td></tr>"
@@ -204,7 +204,7 @@ var/global/list/gear_datums = list()
 
 		var/ticked = (G.name in pref.gear_list[pref.gear_slot])
 		var/list/entry = list()
-		entry += "<tr style='vertical-align:top;'><td width=25%><a style='white-space:normal;' [ticked ? "class='linkOn' " : ""]href='?src=\ref[src];toggle_gear=\ref[G]'>[G.name]</a></td>"
+		entry += "<tr style='vertical-align:top;'><td width=25%><a style='white-space:normal;' [ticked ? "class='linkOn' " : ""]href='byond://?src=\ref[src];toggle_gear=\ref[G]'>[G.name]</a></td>"
 		entry += "<td width = 10% style='vertical-align:top'>[G.cost]</td>"
 		entry += "<td><font size=2>[G.get_description(get_gear_metadata(G,1))]</font>"
 
@@ -272,7 +272,7 @@ var/global/list/gear_datums = list()
 			for(var/datum/gear_tweak/tweak in G.gear_tweaks)
 				var/contents = tweak.get_contents(get_tweak_metadata(G, tweak))
 				if(contents)
-					entry += " <a href='?src=\ref[src];gear=\ref[G];tweak=\ref[tweak]'>[contents]</a>"
+					entry += " <a href='byond://?src=\ref[src];gear=\ref[G];tweak=\ref[tweak]'>[contents]</a>"
 			entry += "</td></tr>"
 		if(!hide_unavailable_gear || allowed || ticked)
 			. += entry
diff --git a/code/modules/client/preference_setup/occupation/occupation.dm b/code/modules/client/preference_setup/occupation/occupation.dm
index fde1710457e..8b7128a1fdf 100644
--- a/code/modules/client/preference_setup/occupation/occupation.dm
+++ b/code/modules/client/preference_setup/occupation/occupation.dm
@@ -98,7 +98,7 @@
 
 		. += "<hr><table style='text-align:center'><tr>"
 		. += "<td style='max-width:50%;text-align:right'><font size = 3><b>[capitalize_words(job_map)]</b></font></td>"
-		. += "<td style='max-width:50%;text-align:left'><font size = 3><a href='?src=\ref[src];toggle_map=[job_map]'>[pref.hiding_maps[job_map] ? "Show" : "Hide"]</a></font></td>"
+		. += "<td style='max-width:50%;text-align:left'><font size = 3><a href='byond://?src=\ref[src];toggle_map=[job_map]'>[pref.hiding_maps[job_map] ? "Show" : "Hide"]</a></font></td>"
 		. += "</tr></table>"
 
 		if(!pref.hiding_maps[job_map])
@@ -124,7 +124,7 @@
 					player_branch = mil_branches.get_branch(pref.branches[job.title])
 					if(player_branch)
 						if(LAZYLEN(branch_rank) > 1)
-							branch_string += "<td style='width:10%;text-align:left'><a href='?src=\ref[src];char_branch=1;checking_job=\ref[job]'>[player_branch.name_short || player_branch.name]</a></td>"
+							branch_string += "<td style='width:10%;text-align:left'><a href='byond://?src=\ref[src];char_branch=1;checking_job=\ref[job]'>[player_branch.name_short || player_branch.name]</a></td>"
 						else
 							branch_string += "<td style='width:10%;text-align:left'><span class='linkOff'>[player_branch.name_short || player_branch.name]</span></td>"
 				if(!branch_string)
@@ -135,7 +135,7 @@
 						player_rank = mil_branches.get_rank(player_branch.name, pref.ranks[job.title])
 						if(player_rank)
 							if(LAZYLEN(ranks) > 1)
-								rank_branch_string += "<td style='width:10%;text-align:left'><a href='?src=\ref[src];char_rank=1;checking_job=\ref[job]'>[player_rank.name_short || player_rank.name]</a></td>"
+								rank_branch_string += "<td style='width:10%;text-align:left'><a href='byond://?src=\ref[src];char_rank=1;checking_job=\ref[job]'>[player_rank.name_short || player_rank.name]</a></td>"
 							else
 								rank_branch_string += "<td style='width:10%;text-align:left'><span class='linkOff'>[player_rank.name_short || player_rank.name]</span></td>"
 				if(!rank_branch_string)
@@ -143,11 +143,11 @@
 				rank_branch_string = "[branch_string][rank_branch_string]"
 
 				var/title = job.title
-				var/title_link = length(job.alt_titles) ? "<a href='?src=\ref[src];select_alt_title=\ref[job]'>[pref.GetPlayerAltTitle(job)]</a>" : job.title
+				var/title_link = length(job.alt_titles) ? "<a href='byond://?src=\ref[src];select_alt_title=\ref[job]'>[pref.GetPlayerAltTitle(job)]</a>" : job.title
 				if((job.head_position) || (title == "AI"))//Bold head jobs
 					title_link = "<b>[title_link]</b>"
 
-				var/help_link = "</td><td width = '10%' align = 'center'><a href='?src=\ref[src];job_info=[title]'>?</a></td>"
+				var/help_link = "</td><td width = '10%' align = 'center'><a href='byond://?src=\ref[src];job_info=[title]'>?</a></td>"
 				lastJob = job
 
 				var/species_name = S.get_root_species_name()
@@ -180,9 +180,9 @@
 
 				var/skill_link
 				if(pref.points_by_job[job] && (!job.available_by_default || current_level != JOB_LEVEL_NEVER))
-					skill_link = "<a class = 'Points' href='?src=\ref[src];set_skills=[title]'>Set Skills</a>"
+					skill_link = "<a class = 'Points' href='byond://?src=\ref[src];set_skills=[title]'>Set Skills</a>"
 				else
-					skill_link = "<a href='?src=\ref[src];set_skills=[title]'>View Skills</a>"
+					skill_link = "<a href='byond://?src=\ref[src];set_skills=[title]'>View Skills</a>"
 				skill_link = "<td>[skill_link]</td>"
 
 				if(!user.skillset.skills_transferable)
@@ -223,7 +223,7 @@
 					else
 						yes_link = "<font color='black'>[yes_link]</font>"
 						no_link = "<font color='#55cc55'>[no_link]</font>"
-					. += "<a href='?src=\ref[src];set_job=[title];set_level=[JOB_LEVEL_LOW]'>[yes_link]</a><a href='?src=\ref[src];set_job=[title];set_level=[JOB_LEVEL_NEVER]'>[no_link]</a>"
+					. += "<a href='byond://?src=\ref[src];set_job=[title];set_level=[JOB_LEVEL_LOW]'>[yes_link]</a><a href='byond://?src=\ref[src];set_job=[title];set_level=[JOB_LEVEL_NEVER]'>[no_link]</a>"
 				else if(!job.available_by_default)
 					. += "<font color = '#cccccc'>Not available at roundstart.</font>"
 				else
@@ -237,19 +237,19 @@
 							level_link = "<font color='#55cc55'>High</font>"
 						else
 							level_link = "<font color=black>Never</font>"
-					. += "<a href='?src=\ref[src];set_job=[title];inc_level=-1'>[level_link]</a>"
+					. += "<a href='byond://?src=\ref[src];set_job=[title];inc_level=-1'>[level_link]</a>"
 				. += "</td></tr>"
 			. += "</td></tr></table>"
 			. += "</center></table><center>"
 	. += "<hr/>"
 	switch(pref.alternate_option)
 		if(GET_RANDOM_JOB)
-			. += "<u><a href='?src=\ref[src];job_alternative=1'>Get random job if preferences unavailable</a></u>"
+			. += "<u><a href='byond://?src=\ref[src];job_alternative=1'>Get random job if preferences unavailable</a></u>"
 		if(BE_ASSISTANT)
-			. += "<u><a href='?src=\ref[src];job_alternative=1'>Be assistant if preference unavailable</a></u>"
+			. += "<u><a href='byond://?src=\ref[src];job_alternative=1'>Be assistant if preference unavailable</a></u>"
 		if(RETURN_TO_LOBBY)
-			. += "<u><a href='?src=\ref[src];job_alternative=1'>Return to lobby if preference unavailable</a></u>"
-	. += "<a href='?src=\ref[src];reset_jobs=1'>\[Reset\]</a></center>"
+			. += "<u><a href='byond://?src=\ref[src];job_alternative=1'>Return to lobby if preference unavailable</a></u>"
+	. += "<a href='byond://?src=\ref[src];reset_jobs=1'>\[Reset\]</a></center>"
 	. += "<hr/>"
 	. += "</tt><br>"
 	. = jointext(.,null)
@@ -428,7 +428,7 @@
 				dat += "<li>[B.name]: [job.get_ranks(B.name)]"
 		dat += "<hr style='clear:left;'>"
 		if(get_config_value(/decl/config/text/wikiurl))
-			dat += "<a href='?src=\ref[src];job_wiki=[rank]'>Open wiki page in browser</a>"
+			dat += "<a href='byond://?src=\ref[src];job_wiki=[rank]'>Open wiki page in browser</a>"
 
 		var/description = job.get_description_blurb()
 		if(description)
diff --git a/code/modules/client/preference_setup/occupation/skill_selection.dm b/code/modules/client/preference_setup/occupation/skill_selection.dm
index fb62d29c296..2f9fb162dac 100644
--- a/code/modules/client/preference_setup/occupation/skill_selection.dm
+++ b/code/modules/client/preference_setup/occupation/skill_selection.dm
@@ -212,7 +212,7 @@
 	var/level = min + (pref.skills_allocated[job] ? pref.skills_allocated[job][S] : 0)				//the current skill level
 	var/cap = pref.get_max_affordable(job, S) //if selecting the skill would make you overspend, it won't be shown
 	dat += "<tr style='text-align:left;'>"
-	dat += "<td><a href='?src=\ref[src];skillinfo=\ref[S]'>[S.name] ([pref.get_spent_points(job, S)])</a></td>"
+	dat += "<td><a href='byond://?src=\ref[src];skillinfo=\ref[S]'>[S.name] ([pref.get_spent_points(job, S)])</a></td>"
 	for(var/i = SKILL_MIN, i <= SKILL_MAX, i++)
 		dat += skill_to_button(S, job, level, i, min, cap)
 	dat += "</tr>"
@@ -244,5 +244,5 @@
 
 /datum/category_item/player_setup_item/occupation/proc/add_link(decl/hierarchy/skill/skill, datum/job/job, text, style, value)
 	if(pref.check_skill_prerequisites(job, skill))
-		return "<a class=[style] href='?src=\ref[src];hit_skill_button=\ref[skill];at_job=\ref[job];newvalue=[value]'>[text]</a>"
+		return "<a class=[style] href='byond://?src=\ref[src];hit_skill_button=\ref[skill];at_job=\ref[job];newvalue=[value]'>[text]</a>"
 	return text
\ No newline at end of file
diff --git a/code/modules/client/preference_setup/preference_setup.dm b/code/modules/client/preference_setup/preference_setup.dm
index 6065797a976..c4f373401da 100644
--- a/code/modules/client/preference_setup/preference_setup.dm
+++ b/code/modules/client/preference_setup/preference_setup.dm
@@ -95,7 +95,7 @@ var/global/const/CHARACTER_PREFERENCE_INPUT_TITLE = "Character Preference"
 		if(PS == selected_category)
 			dat += "[PS.name] "	// TODO: Check how to properly mark a href/button selected in a classic browser window
 		else
-			dat += "<a href='?src=\ref[src];category=\ref[PS]'>[PS.name]</a> "
+			dat += "<a href='byond://?src=\ref[src];category=\ref[PS]'>[PS.name]</a> "
 	return dat
 
 /datum/category_collection/player_setup_collection/proc/content(var/mob/user)
diff --git a/code/modules/client/preference_setup/records/00_records.dm b/code/modules/client/preference_setup/records/00_records.dm
index da808508666..17146b1067d 100644
--- a/code/modules/client/preference_setup/records/00_records.dm
+++ b/code/modules/client/preference_setup/records/00_records.dm
@@ -11,7 +11,7 @@
 		if(jobban_isbanned(user, "Records") || jobban_isbanned(user, name))
 			. += "<span class='danger'>You are banned from modifying your [lowertext(name)].</span><br>"
 		else
-			. += "<a href='?src=\ref[src];set_record=1'>[TextPreview(pref.records[record_key], 40)]</a><br>"
+			. += "<a href='byond://?src=\ref[src];set_record=1'>[TextPreview(pref.records[record_key], 40)]</a><br>"
 	. = jointext(.,null)
 
 /datum/category_item/player_setup_item/records/OnTopic(var/href,var/list/href_list, var/mob/user)
diff --git a/code/modules/client/preference_setup/records/01_character_info.dm b/code/modules/client/preference_setup/records/01_character_info.dm
index bf2c6e996fe..cd2a6b27b5a 100644
--- a/code/modules/client/preference_setup/records/01_character_info.dm
+++ b/code/modules/client/preference_setup/records/01_character_info.dm
@@ -12,21 +12,21 @@
 	var/datum/character_information/comments = SScharacter_info.get_record(pref.comments_record_id, TRUE)
 	. = list("<b>IC/OOC information preferences:</b><br/>")
 	if(get_config_value(/decl/config/toggle/allow_character_comments))
-		. += "<a href='?src=\ref[src];toggle_comments=1'>[comments.allow_comments ? "Allowing and displaying comments." : "Not allowing or displaying comments."]</a><br/>"
-	. += "<a href='?src=\ref[src];toggle_examine_info=1'>[comments.show_info_on_examine ? "Showing IC and OOC info on examine." : "Not showing IC and OOC info on examine."]</a><br/>"
+		. += "<a href='byond://?src=\ref[src];toggle_comments=1'>[comments.allow_comments ? "Allowing and displaying comments." : "Not allowing or displaying comments."]</a><br/>"
+	. += "<a href='byond://?src=\ref[src];toggle_examine_info=1'>[comments.show_info_on_examine ? "Showing IC and OOC info on examine." : "Not showing IC and OOC info on examine."]</a><br/>"
 
 	var/is_banned = jobban_isbanned(user, "Records") || jobban_isbanned(user, name)
 	. += "<br/><b>IC information:</b><br/>"
 	if(is_banned)
 		. += "<span class='danger'>You are banned from modifying your IC character information.</span><br>"
 	else
-		. += "<a href='?src=\ref[src];set_ic_info=1'>[TextPreview(comments.ic_info, 40)]</a><br>"
+		. += "<a href='byond://?src=\ref[src];set_ic_info=1'>[TextPreview(comments.ic_info, 40)]</a><br>"
 
 	. += "<br/><b>OOC information:</b><br/>"
 	if(is_banned)
 		. += "<span class='danger'>You are banned from modifying your OOC character information.</span><br>"
 	else
-		. += "<a href='?src=\ref[src];set_ooc_info=1'>[TextPreview(comments.ooc_info, 40)]</a><br>"
+		. += "<a href='byond://?src=\ref[src];set_ooc_info=1'>[TextPreview(comments.ooc_info, 40)]</a><br>"
 	. = jointext(.,null)
 
 /datum/category_item/player_setup_item/records/character_info/OnTopic(var/href,var/list/href_list, var/mob/user)
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index d4445fc9c68..d64370a306f 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -206,15 +206,15 @@ var/global/list/time_prefs_fixed = list()
 	else
 
 		dat += "<b>Slot</b> - "
-		dat += "<a href='?src=\ref[src];load=1'>Load slot</a> - "
-		dat += "<a href='?src=\ref[src];save=1'>Save slot</a> - "
-		dat += "<a href='?src=\ref[src];resetslot=1'>Reset slot</a> - "
-		dat += "<a href='?src=\ref[src];reload=1'>Reload slot</a><br>"
+		dat += "<a href='byond://?src=\ref[src];load=1'>Load slot</a> - "
+		dat += "<a href='byond://?src=\ref[src];save=1'>Save slot</a> - "
+		dat += "<a href='byond://?src=\ref[src];resetslot=1'>Reset slot</a> - "
+		dat += "<a href='byond://?src=\ref[src];reload=1'>Reload slot</a><br>"
 
 		dat += "<b>Preview</b> - "
-		dat += "<a href='?src=\ref[src];cycle_bg=1'>Cycle background</a> - "
-		dat += "<a href='?src=\ref[src];toggle_preview_value=[EQUIP_PREVIEW_LOADOUT]'>[equip_preview_mob & EQUIP_PREVIEW_LOADOUT ? "Hide loadout" : "Show loadout"]</a> - "
-		dat += "<a href='?src=\ref[src];toggle_preview_value=[EQUIP_PREVIEW_JOB]'>[equip_preview_mob & EQUIP_PREVIEW_JOB ? "Hide job gear" : "Show job gear"]</a>"
+		dat += "<a href='byond://?src=\ref[src];cycle_bg=1'>Cycle background</a> - "
+		dat += "<a href='byond://?src=\ref[src];toggle_preview_value=[EQUIP_PREVIEW_LOADOUT]'>[equip_preview_mob & EQUIP_PREVIEW_LOADOUT ? "Hide loadout" : "Show loadout"]</a> - "
+		dat += "<a href='byond://?src=\ref[src];toggle_preview_value=[EQUIP_PREVIEW_JOB]'>[equip_preview_mob & EQUIP_PREVIEW_JOB ? "Hide job gear" : "Show job gear"]</a>"
 
 	dat += "<br>"
 	dat += player_setup.header()
@@ -467,7 +467,7 @@ var/global/list/time_prefs_fixed = list()
 		var/name = (slot_names && slot_names[get_slot_key(i)]) || "Character[i]"
 		if(i==default_slot)
 			name = "<b>[name]</b>"
-		dat += "<a href='?src=\ref[src];changeslot=[i]'>[name]</a><br>"
+		dat += "<a href='byond://?src=\ref[src];changeslot=[i]'>[name]</a><br>"
 
 	dat += "<hr>"
 	dat += "</center></tt>"
diff --git a/code/modules/clothing/_clothing.dm b/code/modules/clothing/_clothing.dm
index 8ab8d42044c..6125191e9fe 100644
--- a/code/modules/clothing/_clothing.dm
+++ b/code/modules/clothing/_clothing.dm
@@ -295,13 +295,13 @@
 	if(LAZYLEN(ties))
 		.+= " with [english_list(ties)] attached"
 	if(LAZYLEN(accessories) > LAZYLEN(ties))
-		.+= ". <a href='?src=\ref[src];list_ungabunga=1'>\[See accessories\]</a>"
+		.+= ". <a href='byond://?src=\ref[src];list_ungabunga=1'>\[See accessories\]</a>"
 
 /obj/item/clothing/examine(mob/user)
 	. = ..()
 	var/datum/extension/armor/ablative/armor_datum = get_extension(src, /datum/extension/armor/ablative)
 	if(istype(armor_datum) && LAZYLEN(armor_datum.get_visible_damage()))
-		to_chat(user, SPAN_WARNING("It has some <a href='?src=\ref[src];list_armor_damage=1'>damage</a>."))
+		to_chat(user, SPAN_WARNING("It has some <a href='byond://?src=\ref[src];list_armor_damage=1'>damage</a>."))
 
 	if(LAZYLEN(accessories))
 		to_chat(user, "It has the following attached: [counting_english_list(accessories)]")
diff --git a/code/modules/clothing/badges/_badge.dm b/code/modules/clothing/badges/_badge.dm
index a90afae0fc6..d4767634d08 100644
--- a/code/modules/clothing/badges/_badge.dm
+++ b/code/modules/clothing/badges/_badge.dm
@@ -36,7 +36,7 @@
 
 /obj/item/clothing/badge/get_examine_line()
 	. = ..()
-	. += "  <a href='?src=\ref[src];look_at_me=1'>\[View\]</a>"
+	. += "  <a href='byond://?src=\ref[src];look_at_me=1'>\[View\]</a>"
 
 /obj/item/clothing/badge/examine(user)
 	. = ..()
diff --git a/code/modules/clothing/gloves/jewelry/rings/material.dm b/code/modules/clothing/gloves/jewelry/rings/material.dm
index 7ce5cc82a09..d800229d7ef 100644
--- a/code/modules/clothing/gloves/jewelry/rings/material.dm
+++ b/code/modules/clothing/gloves/jewelry/rings/material.dm
@@ -29,7 +29,7 @@
 
 /obj/item/clothing/gloves/ring/material/get_examine_line()
 	. = ..()
-	. += " <a href='?src=\ref[src];examine=1'>\[View\]</a>"
+	. += " <a href='byond://?src=\ref[src];examine=1'>\[View\]</a>"
 
 /obj/item/clothing/gloves/ring/material/wood
 	material = /decl/material/solid/organic/wood/walnut
diff --git a/code/modules/clothing/head/headphones.dm b/code/modules/clothing/head/headphones.dm
index aee97663781..8d93f8ea8d6 100644
--- a/code/modules/clothing/head/headphones.dm
+++ b/code/modules/clothing/head/headphones.dm
@@ -90,14 +90,14 @@
 	if(!CanPhysicallyInteract(user))
 		return
 	var/list/dat = list()
-	dat += "<A href='?src=\ref[src];toggle=1;'>Switch [headphones_on ? "off" : "on"]</a>"
-	dat += "Volume: [music_volume] <A href='?src=\ref[src];vol=-10;'>-</a><A href='?src=\ref[src];vol=10;'>+</a>"
+	dat += "<A href='byond://?src=\ref[src];toggle=1;'>Switch [headphones_on ? "off" : "on"]</a>"
+	dat += "Volume: [music_volume] <A href='byond://?src=\ref[src];vol=-10;'>-</a><A href='byond://?src=\ref[src];vol=10;'>+</a>"
 	dat += "Tracks:"
 	for(var/track in global.music_tracks)
 		if(track == current_track)
 			dat += "<span class='linkOn'>[track]</span>"
 		else
-			dat += "<A href='?src=\ref[src];track=[track];'>[track]</a>"
+			dat += "<A href='byond://?src=\ref[src];track=[track];'>[track]</a>"
 
 	var/datum/browser/popup = new(user, "headphones", name, 290, 410)
 	popup.set_content(jointext(dat,"<br>"))
diff --git a/code/modules/clothing/sensors/buddytag.dm b/code/modules/clothing/sensors/buddytag.dm
index 0061629d37b..b421a180f9d 100644
--- a/code/modules/clothing/sensors/buddytag.dm
+++ b/code/modules/clothing/sensors/buddytag.dm
@@ -19,10 +19,10 @@
 /obj/item/clothing/sensor/buddytag/attack_self(mob/user)
 	if(!CanPhysicallyInteract(user))
 		return
-	var/list/dat = "<A href='?src=\ref[src];toggle=1;'>[on ? "Disable" : "Enable"]</a>"
-	dat += "<br>ID: <A href='?src=\ref[src];setcode=1;'>[id]</a>"
-	dat += "<br>Search Interval: <A href='?src=\ref[src];set_interval=1;'>[search_interval/10] seconds</a>"
-	dat += "<br>Search Distance: <A href='?src=\ref[src];set_distance=1;'>[distance]</a>"
+	var/list/dat = "<A href='byond://?src=\ref[src];toggle=1;'>[on ? "Disable" : "Enable"]</a>"
+	dat += "<br>ID: <A href='byond://?src=\ref[src];setcode=1;'>[id]</a>"
+	dat += "<br>Search Interval: <A href='byond://?src=\ref[src];set_interval=1;'>[search_interval/10] seconds</a>"
+	dat += "<br>Search Distance: <A href='byond://?src=\ref[src];set_distance=1;'>[distance]</a>"
 	var/datum/browser/popup = new(user, "buddytag", "Buddy Tag", 290, 200)
 	popup.set_content(JOINTEXT(dat))
 	popup.open()
diff --git a/code/modules/codex/codex_atom.dm b/code/modules/codex/codex_atom.dm
index 289ed75612e..ebe02e59ab7 100644
--- a/code/modules/codex/codex_atom.dm
+++ b/code/modules/codex/codex_atom.dm
@@ -37,4 +37,4 @@
 /atom/examine(mob/user, distance, infix = "", suffix = "")
 	. = ..()
 	if(user?.get_preference_value(/datum/client_preference/inquisitive_examine) == PREF_ON && user.can_use_codex() && SScodex.get_codex_entry(get_codex_value(user)))
-		to_chat(user, SPAN_NOTICE("The codex has <b><a href='?src=\ref[SScodex];show_examined_info=\ref[src];show_to=\ref[user]'>relevant information</a></b> available."))
+		to_chat(user, SPAN_NOTICE("The codex has <b><a href='byond://?src=\ref[SScodex];show_examined_info=\ref[src];show_to=\ref[user]'>relevant information</a></b> available."))
diff --git a/code/modules/codex/codex_client.dm b/code/modules/codex/codex_client.dm
index 6d726b0075e..5467871868a 100644
--- a/code/modules/codex/codex_client.dm
+++ b/code/modules/codex/codex_client.dm
@@ -50,7 +50,7 @@
 			codex_data += "<table width = 100%>"
 			for(var/i = 1 to min(all_entries.len, max_codex_entries_shown))
 				var/datum/codex_entry/entry = all_entries[i]
-				codex_data += "<tr><td>[entry.name]</td><td><a href='?src=\ref[SScodex];show_examined_info=\ref[entry];show_to=\ref[mob]'>View</a></td></tr>"
+				codex_data += "<tr><td>[entry.name]</td><td><a href='byond://?src=\ref[SScodex];show_examined_info=\ref[entry];show_to=\ref[mob]'>View</a></td></tr>"
 			codex_data += "</table>"
 			var/datum/browser/popup = new(mob, "codex-search", "Codex Search")
 			popup.set_content(jointext(codex_data, null))
@@ -96,7 +96,7 @@
 			codex_data += "<tr><td colspan = 2><hr></td></tr>"
 			codex_data += "<tr><td colspan = 2>[last_first_letter]</td></tr>"
 			codex_data += "<tr><td colspan = 2><hr></td></tr>"
-		codex_data += "<tr><td>[thing]</td><td><a href='?src=\ref[SScodex];show_examined_info=\ref[SScodex.index_file[thing]];show_to=\ref[mob]'>View</a></td></tr>"
+		codex_data += "<tr><td>[thing]</td><td><a href='byond://?src=\ref[SScodex];show_examined_info=\ref[SScodex.index_file[thing]];show_to=\ref[mob]'>View</a></td></tr>"
 	codex_data += "</table>"
 	popup.set_content(jointext(codex_data, null))
 	popup.open()
diff --git a/code/modules/codex/entries/_codex_entry.dm b/code/modules/codex/entries/_codex_entry.dm
index f378b69dcb6..3aad339753b 100644
--- a/code/modules/codex/entries/_codex_entry.dm
+++ b/code/modules/codex/entries/_codex_entry.dm
@@ -114,10 +114,10 @@
 	. = list()
 	if(presenting_to)
 		var/datum/codex_entry/linked_entry = SScodex.get_entry_by_string("nexus")
-		. += "<a href='?src=\ref[SScodex];show_examined_info=\ref[linked_entry];show_to=\ref[presenting_to]'>Home</a>"
+		. += "<a href='byond://?src=\ref[SScodex];show_examined_info=\ref[linked_entry];show_to=\ref[presenting_to]'>Home</a>"
 		if(presenting_to.client)
-			. += "<a href='?src=\ref[presenting_to.client];codex_search=1'>Search Codex</a>"
-			. += "<a href='?src=\ref[presenting_to.client];codex_index=1'>List All Entries</a>"
+			. += "<a href='byond://?src=\ref[presenting_to.client];codex_search=1'>Search Codex</a>"
+			. += "<a href='byond://?src=\ref[presenting_to.client];codex_index=1'>List All Entries</a>"
 	. += "<hr><h2>[name]</h2>"
 
 /datum/codex_entry/proc/get_codex_footer(var/mob/presenting_to)
diff --git a/code/modules/crafting/stack_recipes/_recipe.dm b/code/modules/crafting/stack_recipes/_recipe.dm
index e0582aac74a..4c0f2dc3001 100644
--- a/code/modules/crafting/stack_recipes/_recipe.dm
+++ b/code/modules/crafting/stack_recipes/_recipe.dm
@@ -207,14 +207,14 @@
 		var/new_row = 5
 		for(var/i = clamp_sheets to max_multiplier step clamp_sheets)
 			var/producing = FLOOR(i * products_per_sheet)
-			. += "<a href='?src=\ref[stack];make=\ref[src];producing=[producing];expending=[i];returning=\ref[sublist]'>[producing]x</a>"
+			. += "<a href='byond://?src=\ref[stack];make=\ref[src];producing=[producing];expending=[i];returning=\ref[sublist]'>[producing]x</a>"
 			if(new_row == 0)
 				new_row = 5
 				. += "<br>"
 			else
 				new_row--
 	else
-		. += "<a href='?src=\ref[stack];make=\ref[src];producing=[FLOOR(clamp_sheets * products_per_sheet)];expending=[clamp_sheets];returning=\ref[sublist]'>1x</a>"
+		. += "<a href='byond://?src=\ref[stack];make=\ref[src];producing=[FLOOR(clamp_sheets * products_per_sheet)];expending=[clamp_sheets];returning=\ref[sublist]'>1x</a>"
 
 	. += "</td>"
 	. += "</tr>"
diff --git a/code/modules/crafting/stack_recipes/_recipe_getter.dm b/code/modules/crafting/stack_recipes/_recipe_getter.dm
index 82adccb824f..41bfffc954e 100644
--- a/code/modules/crafting/stack_recipes/_recipe_getter.dm
+++ b/code/modules/crafting/stack_recipes/_recipe_getter.dm
@@ -11,7 +11,7 @@
 	recipes = _recipes
 
 /datum/stack_recipe_list/proc/get_list_display(mob/user, obj/item/stack/stack)
-	return "<tr><td width = '150px'>[name]</td><td colspan = 4 width = '550px'><a href='?src=\ref[stack];sublist=\ref[src]'>expand</td></tr>"
+	return "<tr><td width = '150px'>[name]</td><td colspan = 4 width = '550px'><a href='byond://?src=\ref[stack];sublist=\ref[src]'>expand</td></tr>"
 
 /*
  * Recipe retrieval proc.
diff --git a/code/modules/economy/cael/ATM.dm b/code/modules/economy/cael/ATM.dm
index deac2241163..0b572b54a3e 100644
--- a/code/modules/economy/cael/ATM.dm
+++ b/code/modules/economy/cael/ATM.dm
@@ -144,7 +144,7 @@
 		if(emagged > 0)
 			t += "<span class='bad'><b>LOCKED</b><br>Unauthorized terminal access detected!<br>This ATM has been locked down.</span></div><BR>"
 		else
-			t += "<a href='?src=\ref[src];choice=insert_card'>[held_card ? held_card.name : "No card inserted"]</a></div><BR>"
+			t += "<a href='byond://?src=\ref[src];choice=insert_card'>[held_card ? held_card.name : "No card inserted"]</a></div><BR>"
 			t += "<div class='statusDisplay'>"
 			if(ticks_left_locked_down > 0)
 				t += "<span class='bad'>Maximum number of pin attempts exceeded! Access to this ATM has been temporarily disabled.</span></div>"
@@ -156,17 +156,17 @@
 						if(CHANGE_SECURITY_LEVEL)
 							t += "Select a new security level for this account:<br><hr>"
 							if(authenticated_account.security_level != 0)
-								t += "<A href='?src=\ref[src];choice=change_security_level;new_security_level=0'>Select Minimum Security</a><BR>"
+								t += "<A href='byond://?src=\ref[src];choice=change_security_level;new_security_level=0'>Select Minimum Security</a><BR>"
 							else
 								t += "<span class='good'><b>Minimum security set: </b></span><BR>"
 							t += "Either the account number or card is required to access this account. EFTPOS transactions will require a card and ask for a pin, but not verify the pin is correct.<hr>"
 							if(authenticated_account.security_level != 1)
-								t += "<A href='?src=\ref[src];choice=change_security_level;new_security_level=1'>Select Moderate Security</a><BR>"
+								t += "<A href='byond://?src=\ref[src];choice=change_security_level;new_security_level=1'>Select Moderate Security</a><BR>"
 							else
 								t += "<span class='average'><b>Moderate Security set: </b></span><BR>"
 							t += "An account number and pin must be manually entered to access this account and process transactions.<hr>"
 							if(authenticated_account.security_level != 2)
-								t += "<A href='?src=\ref[src];choice=change_security_level;new_security_level=2'>Select Maximum Security</a><BR>"
+								t += "<A href='byond://?src=\ref[src];choice=change_security_level;new_security_level=2'>Select Maximum Security</a><BR>"
 							else
 								t += "<span class='bad'><b>Maximum security Set: </b></span><BR>"
 							t += "High - In addition to account number, a pin and a card is required to access this account and process transactions.<hr><br>"
@@ -191,10 +191,10 @@
 								t += "<td>[T.get_source_name()]</td>"
 								t += "</tr>"
 							t += "</table>"
-							t += "<A href='?src=\ref[src];choice=print_transaction'>Print</a><br>"
+							t += "<A href='byond://?src=\ref[src];choice=print_transaction'>Print</a><br>"
 						if(TRANSFER_FUNDS)
 							t += "<b>Account balance:</b> [authenticated_account.format_value_by_currency(authenticated_account.money)]<br>"
-							t += "<form name='transfer' action='?src=\ref[src]' method='get'>"
+							t += "<form name='transfer' action='byond://?src=\ref[src]' method='get'>"
 							t += "<input type='hidden' name='src' value='\ref[src]'>"
 							t += "<input type='hidden' name='choice' value='transfer'>"
 							t += "Target account number: <input type='text' name='target_acc_number' value='' style='width:200px; background-color:white;'><br>"
@@ -204,21 +204,21 @@
 							t += "</form>"
 						else
 							t += "<b>Account balance:</b> [authenticated_account.format_value_by_currency(authenticated_account.money)]"
-							t += "<form name='withdrawal' action='?src=\ref[src]' method='get'>"
+							t += "<form name='withdrawal' action='byond://?src=\ref[src]' method='get'>"
 							t += "<input type='hidden' name='src' value='\ref[src]'>"
 							t += "<input type='radio' name='choice' value='withdrawal' checked> Cash  <input type='radio' name='choice' value='e_withdrawal'> Chargecard<br>"
 							t += "<input type='text' name='funds_amount' value='' style='width:200px; background-color:white;'><input type='submit' value='Withdraw'>"
 							t += "</form>"
-							t += "<A href='?src=\ref[src];choice=view_screen;view_screen=1'>Change account security level</a><br>"
-							t += "<A href='?src=\ref[src];choice=view_screen;view_screen=2'>Make transfer</a><br>"
-							t += "<A href='?src=\ref[src];choice=view_screen;view_screen=3'>View transaction log</a><br>"
-							t += "<A href='?src=\ref[src];choice=balance_statement'>Print balance statement</a><br>"
+							t += "<A href='byond://?src=\ref[src];choice=view_screen;view_screen=1'>Change account security level</a><br>"
+							t += "<A href='byond://?src=\ref[src];choice=view_screen;view_screen=2'>Make transfer</a><br>"
+							t += "<A href='byond://?src=\ref[src];choice=view_screen;view_screen=3'>View transaction log</a><br>"
+							t += "<A href='byond://?src=\ref[src];choice=balance_statement'>Print balance statement</a><br>"
 
 					//Logout/back buttons, put here for some modularity and for less repeated code
 					if(view_screen == NO_SCREEN)
-						t += "<A href='?src=\ref[src];choice=logout'>Logout</a><br></div>"
+						t += "<A href='byond://?src=\ref[src];choice=logout'>Logout</a><br></div>"
 					else
-						t += "<A href='?src=\ref[src];choice=view_screen;view_screen=0'>Back</a></div>"
+						t += "<A href='byond://?src=\ref[src];choice=view_screen;view_screen=0'>Back</a></div>"
 
 			else
 				//change our display depending on account security levels
@@ -228,7 +228,7 @@
 					t += "This account requires a PIN to access. For security reasons the account # will need re-entered or ID bound to this account re-scanned."
 				else
 					t += "<span class='bad'><b>Due to the security settings on this account, all information needs to be re-entered and the ID bound to this account placed in the slot above.</b></span><BR>"
-				t += "<form name='atm_auth' action='?src=\ref[src]' method='get'>"
+				t += "<form name='atm_auth' action='byond://?src=\ref[src]' method='get'>"
 				t += "<input type='hidden' name='src' value='\ref[src]'>"
 				t += "<input type='hidden' name='choice' value='attempt_auth'>"
 				t += "<b>Account:</b> <input type='text' id='account_num' name='account_num' style='width:250px; background-color:white;'><BR><BR>"
diff --git a/code/modules/economy/cael/EFTPOS.dm b/code/modules/economy/cael/EFTPOS.dm
index 673cb97e740..5af1d83c3db 100644
--- a/code/modules/economy/cael/EFTPOS.dm
+++ b/code/modules/economy/cael/EFTPOS.dm
@@ -63,7 +63,7 @@
 		dat += "<i>This terminal is</i> [machine_id]. <i>Report this code when contacting IT Support</i><br>"
 		var/decl/currency/cur = GET_DECL(currency)
 		if(transaction_locked)
-			dat += "<a href='?src=\ref[src];choice=toggle_lock'>Back[transaction_paid ? "" : " (authentication required)"]</a><br><br>"
+			dat += "<a href='byond://?src=\ref[src];choice=toggle_lock'>Back[transaction_paid ? "" : " (authentication required)"]</a><br><br>"
 			dat += "Transaction purpose: <b>[transaction_purpose]</b><br>"
 			dat += "Value: <b>[cur.format_value(transaction_amount)]</b><br>"
 			dat += "Linked account: <b>[linked_account ? linked_account.owner_name : "None"]</b><hr>"
@@ -71,16 +71,16 @@
 				dat += "<i>This transaction has been processed successfully.</i><hr>"
 			else
 				dat += "<i>Swipe your card below the line to finish this transaction.</i><hr>"
-				dat += "<a href='?src=\ref[src];choice=scan_card'>\[------\]</a>"
+				dat += "<a href='byond://?src=\ref[src];choice=scan_card'>\[------\]</a>"
 		else
-			dat += "<a href='?src=\ref[src];choice=toggle_lock'>Lock in new transaction</a><br><br>"
-
-			dat += "<a href='?src=\ref[src];choice=trans_purpose'>Transaction purpose: [transaction_purpose]</a><br>"
-			dat += "Value: <a href='?src=\ref[src];choice=trans_value'>[cur.format_value(transaction_amount)]</a><br>"
-			dat += "Linked account: <a href='?src=\ref[src];choice=link_account'>[linked_account ? linked_account.owner_name : "None"]</a><hr>"
-			dat += "<a href='?src=\ref[src];choice=change_code'>Change access code</a><br>"
-			dat += "<a href='?src=\ref[src];choice=change_id'>Change EFTPOS ID</a><br>"
-			dat += "Scan card to reset access code <a href='?src=\ref[src];choice=reset'>\[------\]</a>"
+			dat += "<a href='byond://?src=\ref[src];choice=toggle_lock'>Lock in new transaction</a><br><br>"
+
+			dat += "<a href='byond://?src=\ref[src];choice=trans_purpose'>Transaction purpose: [transaction_purpose]</a><br>"
+			dat += "Value: <a href='byond://?src=\ref[src];choice=trans_value'>[cur.format_value(transaction_amount)]</a><br>"
+			dat += "Linked account: <a href='byond://?src=\ref[src];choice=link_account'>[linked_account ? linked_account.owner_name : "None"]</a><hr>"
+			dat += "<a href='byond://?src=\ref[src];choice=change_code'>Change access code</a><br>"
+			dat += "<a href='byond://?src=\ref[src];choice=change_id'>Change EFTPOS ID</a><br>"
+			dat += "Scan card to reset access code <a href='byond://?src=\ref[src];choice=reset'>\[------\]</a>"
 		show_browser(user, dat, "window=eftpos")
 	else
 		close_browser(user, "window=eftpos")
diff --git a/code/modules/error_handler/error_viewer.dm b/code/modules/error_handler/error_viewer.dm
index 4cf335faab0..0aae86e2df7 100644
--- a/code/modules/error_handler/error_viewer.dm
+++ b/code/modules/error_handler/error_viewer.dm
@@ -83,7 +83,7 @@ var/global/datum/error_viewer/error_cache/error_cache
 	if (linear)
 		back_to_param += ";viewruntime_linear=1"
 
-	return "<a href='?src=\ref[src];viewruntime=\ref[src][back_to_param]'>[linktext]</a>"
+	return "<a href='byond://?src=\ref[src];viewruntime=\ref[src][back_to_param]'>[linktext]</a>"
 
 /datum/error_viewer/error_cache
 	var/list/errors = list()
@@ -194,12 +194,12 @@ var/global/datum/error_viewer/error_cache/error_cache
 	var/html = build_header(back_to, linear)
 	html += "[name]<div class='runtime'>[desc]</div>"
 	if (usr_ref)
-		html += "<br><b>usr</b>: <a href='?_src_=vars;Vars=[usr_ref]'>VV</a>"
-		html += " <a href='?_src_=holder;adminplayeropts=[usr_ref]'>PP</a>"
-		html += " <a href='?_src_=holder;adminplayerobservefollow=[usr_ref]'>Follow</a>"
+		html += "<br><b>usr</b>: <a href='byond://?_src_=vars;Vars=[usr_ref]'>VV</a>"
+		html += " <a href='byond://?_src_=holder;adminplayeropts=[usr_ref]'>PP</a>"
+		html += " <a href='byond://?_src_=holder;adminplayerobservefollow=[usr_ref]'>Follow</a>"
 		if (istype(usr_loc))
-			html += "<br><b>usr.loc</b>: <a href='?_src_=vars;Vars=\ref[usr_loc]'>VV</a>"
-			html += " <a href='?_src_=holder;adminplayerobservecoodjump=1;X=[usr_loc.x];Y=[usr_loc.y];Z=[usr_loc.z]'>JMP</a>"
+			html += "<br><b>usr.loc</b>: <a href='byond://?_src_=vars;Vars=\ref[usr_loc]'>VV</a>"
+			html += " <a href='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[usr_loc.x];Y=[usr_loc.y];Z=[usr_loc.z]'>JMP</a>"
 
 	browse_to(user, html)
 
diff --git a/code/modules/games/boardgame.dm b/code/modules/games/boardgame.dm
index 40e238f16b5..f326cc6036d 100644
--- a/code/modules/games/boardgame.dm
+++ b/code/modules/games/boardgame.dm
@@ -92,13 +92,13 @@
 		else
 			dat+= ">"
 		if(!isobserver(user))
-			dat += "<a href='?src=\ref[src];select=[i];person=\ref[user]'></a>"
+			dat += "<a href='byond://?src=\ref[src];select=[i];person=\ref[user]'></a>"
 		dat += "</td>"
 
 	dat += "</table>"
 
 	if(selected >= 0 && !isobserver(user))
-		dat += "<br><A href='?src=\ref[src];remove=0'>Remove Selected Piece</A>"
+		dat += "<br><A href='byond://?src=\ref[src];remove=0'>Remove Selected Piece</A>"
 	show_browser(user, jointext(dat, null), "window=boardgame;size=430x500") // 50px * 8 squares + 30 margin
 	onclose(usr, "boardgame")
 
diff --git a/code/modules/ghosttrap/trap.dm b/code/modules/ghosttrap/trap.dm
index 0bb32c80124..bc3fbea82fd 100644
--- a/code/modules/ghosttrap/trap.dm
+++ b/code/modules/ghosttrap/trap.dm
@@ -39,7 +39,7 @@
 		if(pref_check && !O.client.wishes_to_be_role(pref_check))
 			continue
 		if(O.client)
-			to_chat(O, "[request_string] <a href='?src=\ref[src];candidate=\ref[O];target=\ref[target]'>(Occupy)</a> ([ghost_follow_link(target, O)])")
+			to_chat(O, "[request_string] <a href='byond://?src=\ref[src];candidate=\ref[O];target=\ref[target]'>(Occupy)</a> ([ghost_follow_link(target, O)])")
 
 /decl/ghosttrap/proc/unregister_target(var/target)
 	LAZYREMOVE(request_timeouts, target)
diff --git a/code/modules/goals/_goal.dm b/code/modules/goals/_goal.dm
index fbcf0e55f67..b36b7b50a40 100644
--- a/code/modules/goals/_goal.dm
+++ b/code/modules/goals/_goal.dm
@@ -28,8 +28,8 @@
 	if(show_success)
 		. += get_success_string()
 	if(allow_modification)
-		if(can_abandon) . += " (<a href='?src=\ref[owner];abandon_goal=[position];abandon_goal_caller=\ref[caller]'>Abandon</a>)"
-		if(can_reroll)  . += " (<a href='?src=\ref[owner];reroll_goal=[position];reroll_goal_caller=\ref[caller]'>Reroll</a>)"
+		if(can_abandon) . += " (<a href='byond://?src=\ref[owner];abandon_goal=[position];abandon_goal_caller=\ref[caller]'>Abandon</a>)"
+		if(can_reroll)  . += " (<a href='byond://?src=\ref[owner];reroll_goal=[position];reroll_goal_caller=\ref[caller]'>Reroll</a>)"
 
 /datum/goal/proc/get_success_string()
 	return check_success() ? " <b><font color='green'>Success!</font></b>" : " <b><font color='red'>Failure.</font></b>"
diff --git a/code/modules/goals/goal_mob.dm b/code/modules/goals/goal_mob.dm
index a2230468245..ddd87767c25 100644
--- a/code/modules/goals/goal_mob.dm
+++ b/code/modules/goals/goal_mob.dm
@@ -30,8 +30,8 @@
 	else
 		to_chat(src, SPAN_NOTICE("<font size = 3><b>You have no personal goals this round.</b></font>"))
 	if(allow_modification && LAZYLEN(mind.goals) < 5)
-		to_chat(src, SPAN_NOTICE("<a href='?src=\ref[mind];add_goal=1;add_goal_caller=\ref[mind.current]'>Add Random Goal</a>"))
-	
+		to_chat(src, SPAN_NOTICE("<a href='byond://?src=\ref[mind];add_goal=1;add_goal_caller=\ref[mind.current]'>Add Random Goal</a>"))
+
 	for(var/dept_key in mind.assigned_job?.department_types)
 		var/decl/department/dept = SSjobs.get_department_by_type(dept_key)
 		if(dept)
diff --git a/code/modules/holodeck/HolodeckControl.dm b/code/modules/holodeck/HolodeckControl.dm
index e044274ad46..3d408b7e821 100644
--- a/code/modules/holodeck/HolodeckControl.dm
+++ b/code/modules/holodeck/HolodeckControl.dm
@@ -41,9 +41,9 @@
 
 	dat += "<B>Holodeck Control System</B><BR>"
 	if(!islocked)
-		dat += "Holodeck is <A href='?src=\ref[src];togglehololock=1'><font color=green>(UNLOCKED)</font></A><BR>"
+		dat += "Holodeck is <A href='byond://?src=\ref[src];togglehololock=1'><font color=green>(UNLOCKED)</font></A><BR>"
 	else
-		dat += "Holodeck is <A href='?src=\ref[src];togglehololock=1'><font color=red>(LOCKED)</font></A><BR>"
+		dat += "Holodeck is <A href='byond://?src=\ref[src];togglehololock=1'><font color=red>(LOCKED)</font></A><BR>"
 		show_browser(user, dat, "window=computer;size=400x500")
 		onclose(user, "computer")
 		return
@@ -63,10 +63,10 @@
 		return
 
 	for(var/prog in supported_programs)
-		dat += "<A href='?src=\ref[src];program=[supported_programs[prog]]'>([prog])</A><BR>"
+		dat += "<A href='byond://?src=\ref[src];program=[supported_programs[prog]]'>([prog])</A><BR>"
 
 	dat += "<BR>"
-	dat += "<A href='?src=\ref[src];program=[global.using_map.holodeck_off_program[programs_list_id]]'>(Turn Off)</A><BR>"
+	dat += "<A href='byond://?src=\ref[src];program=[global.using_map.holodeck_off_program[programs_list_id]]'>(Turn Off)</A><BR>"
 
 	dat += "<BR>"
 	dat += "Please ensure that only holographic weapons are used in the holodeck if a combat simulation has been loaded.<BR>"
@@ -77,15 +77,15 @@
 			if (emagged)
 				dat += "<font color=red><b>ERROR</b>: Cannot re-enable Safety Protocols.</font><BR>"
 			else
-				dat += "<A href='?src=\ref[src];AIoverride=1'>(<font color=green>Re-Enable Safety Protocols?</font>)</A><BR>"
+				dat += "<A href='byond://?src=\ref[src];AIoverride=1'>(<font color=green>Re-Enable Safety Protocols?</font>)</A><BR>"
 		else
-			dat += "<A href='?src=\ref[src];AIoverride=1'>(<font color=red>Override Safety Protocols?</font>)</A><BR>"
+			dat += "<A href='byond://?src=\ref[src];AIoverride=1'>(<font color=red>Override Safety Protocols?</font>)</A><BR>"
 
 	dat += "<BR>"
 
 	if(safety_disabled)
 		for(var/prog in restricted_programs)
-			dat += "<A href='?src=\ref[src];program=[restricted_programs[prog]]'>(<font color=red>Begin [prog]</font>)</A><BR>"
+			dat += "<A href='byond://?src=\ref[src];program=[restricted_programs[prog]]'>(<font color=red>Begin [prog]</font>)</A><BR>"
 			dat += "Ensure the holodeck is empty before testing.<BR>"
 			dat += "<BR>"
 		dat += "Safety Protocols are <font color=red> DISABLED </font><BR>"
@@ -93,9 +93,9 @@
 		dat += "Safety Protocols are <font color=green> ENABLED </font><BR>"
 
 	if(linkedholodeck.has_gravity)
-		dat += "Gravity is <A href='?src=\ref[src];gravity=1'><font color=green>(ON)</font></A><BR>"
+		dat += "Gravity is <A href='byond://?src=\ref[src];gravity=1'><font color=green>(ON)</font></A><BR>"
 	else
-		dat += "Gravity is <A href='?src=\ref[src];gravity=1'><font color=blue>(OFF)</font></A><BR>"
+		dat += "Gravity is <A href='byond://?src=\ref[src];gravity=1'><font color=blue>(OFF)</font></A><BR>"
 	show_browser(user, dat, "window=computer;size=400x500")
 	onclose(user, "computer")
 	return
diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm
index 4b5e96c5b0a..7d6b5e8f50c 100644
--- a/code/modules/integrated_electronics/core/assemblies.dm
+++ b/code/modules/integrated_electronics/core/assemblies.dm
@@ -60,7 +60,7 @@
 			to_chat(user, "<span class='warning'>Its got a few dents in it.</span>")
 
 	if((isobserver(user) && ckeys_allowed_to_scan[user.ckey]) || check_rights(R_ADMIN, 0, user))
-		to_chat(user, "You can <a href='?src=\ref[src];ghostscan=1'>scan</a> this circuit.");
+		to_chat(user, "You can <a href='byond://?src=\ref[src];ghostscan=1'>scan</a> this circuit.");
 
 /obj/item/electronic_assembly/check_health(lastdamage, lastdamtype, lastdamflags, consumed)
 	if(!can_take_damage())
@@ -136,7 +136,7 @@
 /obj/item/electronic_assembly/proc/closed_interact(mob/user)
 	var/HTML = list()
 	HTML += "<html><head><title>[src.name]</title></head><body>"
-	HTML += "<br><a href='?src=\ref[src];refresh=1'>\[Refresh\]</a>"
+	HTML += "<br><a href='byond://?src=\ref[src];refresh=1'>\[Refresh\]</a>"
 	HTML += "<br><br>"
 
 	var/listed_components = FALSE
@@ -150,7 +150,7 @@
 			for(var/entry in topic_data)
 				var/href = topic_data[entry]
 				if(href)
-					HTML += "<a href=?src=\ref[circuit];[href]>[entry]</a>"
+					HTML += "<a href='byond://?src=\ref[circuit];[href]'>[entry]</a>"
 				else
 					HTML += entry
 				HTML += "<br>"
@@ -170,11 +170,11 @@
 
 	HTML += "<html><head><title>[name]</title></head><body>"
 
-	HTML += "<a href='?src=\ref[src]'>\[Refresh\]</a>  |  <a href='?src=\ref[src];rename=1'>\[Rename\]</a><br>"
+	HTML += "<a href='byond://?src=\ref[src]'>\[Refresh\]</a>  |  <a href='byond://?src=\ref[src];rename=1'>\[Rename\]</a><br>"
 	HTML += "[total_part_size]/[max_components] space taken up in the assembly.<br>"
 	HTML += "[total_complexity]/[max_complexity] complexity in the assembly.<br>"
 	if(battery)
-		HTML += "[round(battery.charge, 0.1)]/[battery.maxcharge] ([round(battery.percent(), 0.1)]%) cell charge. <a href='?src=\ref[src];remove_cell=1'>\[Remove\]</a>"
+		HTML += "[round(battery.charge, 0.1)]/[battery.maxcharge] ([round(battery.percent(), 0.1)]%) cell charge. <a href='byond://?src=\ref[src];remove_cell=1'>\[Remove\]</a>"
 	else
 		HTML += "<span class='danger'>No power cell detected!</span>"
 
@@ -185,13 +185,13 @@
 		var/start_index = ((components_per_page * interact_page) + 1)
 		for(var/i = start_index to min(length(assembly_components), start_index + (components_per_page - 1)))
 			var/obj/item/integrated_circuit/circuit = assembly_components[i]
-			HTML += "\[ <a href='?src=\ref[src];component=\ref[circuit];set_slot=1'>[i]</a> \] | "
-			HTML += "<a href='?src=\ref[circuit];component=\ref[circuit];rename=1'>\[R\]</a> | "
+			HTML += "\[ <a href='byond://?src=\ref[src];component=\ref[circuit];set_slot=1'>[i]</a> \] | "
+			HTML += "<a href='byond://?src=\ref[circuit];component=\ref[circuit];rename=1'>\[R\]</a> | "
 			if(circuit.removable)
-				HTML += "<a href='?src=\ref[src];component=\ref[circuit];remove=1'>\[-\]</a> | "
+				HTML += "<a href='byond://?src=\ref[src];component=\ref[circuit];remove=1'>\[-\]</a> | "
 			else
 				HTML += "\[-\] | "
-			HTML += "<a href='?src=\ref[circuit];examine=1'>[circuit.displayed_name]</a>"
+			HTML += "<a href='byond://?src=\ref[circuit];examine=1'>[circuit.displayed_name]</a>"
 			HTML += "<br>"
 
 		if(length(assembly_components) > components_per_page)
@@ -200,7 +200,7 @@
 				if((i-1) == interact_page)
 					HTML += " [i]"
 				else
-					HTML += " <a href='?src=\ref[src];select_page=[i-1]'>[i]</a>"
+					HTML += " <a href='byond://?src=\ref[src];select_page=[i-1]'>[i]</a>"
 			HTML += " \]"
 
 	HTML += "</body></html>"
diff --git a/code/modules/integrated_electronics/core/integrated_circuit.dm b/code/modules/integrated_electronics/core/integrated_circuit.dm
index 54d278494b5..f60872d9179 100644
--- a/code/modules/integrated_electronics/core/integrated_circuit.dm
+++ b/code/modules/integrated_electronics/core/integrated_circuit.dm
@@ -141,13 +141,13 @@ a creative player the means to solve many problems.  Circuits are held inside an
 	HTML += "<table border='1' style='undefined;table-layout: fixed; width: 80%'>"
 
 	if(assembly)
-		HTML += "<a href='?src=\ref[src];return=1'>\[Return to Assembly\]</a><br>"
+		HTML += "<a href='byond://?src=\ref[src];return=1'>\[Return to Assembly\]</a><br>"
 
-	HTML += "<a href='?src=\ref[src];refresh=1'>\[Refresh\]</a>  |  "
-	HTML += "<a href='?src=\ref[src];rename=1'>\[Rename\]</a>  |  "
-	HTML += "<a href='?src=\ref[src];scan=1'>\[Copy Ref\]</a>"
+	HTML += "<a href='byond://?src=\ref[src];refresh=1'>\[Refresh\]</a>  |  "
+	HTML += "<a href='byond://?src=\ref[src];rename=1'>\[Rename\]</a>  |  "
+	HTML += "<a href='byond://?src=\ref[src];scan=1'>\[Copy Ref\]</a>"
 	if(assembly && removable)
-		HTML += "  |  <a href='?src=\ref[assembly];component=\ref[src];remove=1'>\[Remove\]</a>"
+		HTML += "  |  <a href='byond://?src=\ref[assembly];component=\ref[src];remove=1'>\[Remove\]</a>"
 	HTML += "<br>"
 
 	HTML += "<colgroup>"
@@ -169,13 +169,13 @@ a creative player the means to solve many problems.  Circuits are held inside an
 				if(1)
 					io = get_pin_ref(IC_INPUT, i)
 					if(io)
-						words += "<b><a href='?src=\ref[src];act=wire;pin=\ref[io]'>[io.display_pin_type()] [io.name]</a> \
-						<a href='?src=\ref[src];act=data;pin=\ref[io]'>[io.display_data(io.data)]</a></b><br>"
+						words += "<b><a href='byond://?src=\ref[src];act=wire;pin=\ref[io]'>[io.display_pin_type()] [io.name]</a> \
+						<a href='byond://?src=\ref[src];act=data;pin=\ref[io]'>[io.display_data(io.data)]</a></b><br>"
 						if(io.linked.len)
 							for(var/k in 1 to io.linked.len)
 								var/datum/integrated_io/linked = io.linked[k]
-								words += "<a href='?src=\ref[src];act=unwire;pin=\ref[io];link=\ref[linked]'>[linked]</a> \
-								@ <a href='?src=\ref[linked.holder]'>[linked.holder.displayed_name]</a><br>"
+								words += "<a href='byond://?src=\ref[src];act=unwire;pin=\ref[io];link=\ref[linked]'>[linked]</a> \
+								@ <a href='byond://?src=\ref[linked.holder]'>[linked.holder.displayed_name]</a><br>"
 
 						if(LAZYLEN(outputs) > LAZYLEN(inputs))
 							height = 1
@@ -188,13 +188,13 @@ a creative player the means to solve many problems.  Circuits are held inside an
 				if(3)
 					io = get_pin_ref(IC_OUTPUT, i)
 					if(io)
-						words += "<b><a href='?src=\ref[src];act=wire;pin=\ref[io]'>[io.display_pin_type()] [io.name]</a> \
-						<a href='?src=\ref[src];act=data;pin=\ref[io]'>[io.display_data(io.data)]</a></b><br>"
+						words += "<b><a href='byond://?src=\ref[src];act=wire;pin=\ref[io]'>[io.display_pin_type()] [io.name]</a> \
+						<a href='byond://?src=\ref[src];act=data;pin=\ref[io]'>[io.display_data(io.data)]</a></b><br>"
 						if(io.linked.len)
 							for(var/k in 1 to io.linked.len)
 								var/datum/integrated_io/linked = io.linked[k]
-								words += "<a href='?src=\ref[src];act=unwire;pin=\ref[io];link=\ref[linked]'>[linked]</a> \
-								@ <a href='?src=\ref[linked.holder]'>[linked.holder.displayed_name]</a><br>"
+								words += "<a href='byond://?src=\ref[src];act=unwire;pin=\ref[io];link=\ref[linked]'>[linked]</a> \
+								@ <a href='byond://?src=\ref[linked.holder]'>[linked.holder.displayed_name]</a><br>"
 
 						if(LAZYLEN(inputs) > LAZYLEN(outputs))
 							height = 1
@@ -205,13 +205,13 @@ a creative player the means to solve many problems.  Circuits are held inside an
 		var/datum/integrated_io/io = activators[i]
 		var/words = list()
 
-		words += "<b><a href='?src=\ref[src];act=wire;pin=\ref[io]'><font color='FF0000'>[io]</font></a> "
-		words += "<a href='?src=\ref[src];act=data;pin=\ref[io]'><font color='FF0000'>[io.data?"\<PULSE OUT\>":"\<PULSE IN\>"]</font></a></b><br>"
+		words += "<b><a href='byond://?src=\ref[src];act=wire;pin=\ref[io]'><font color='FF0000'>[io]</font></a> "
+		words += "<a href='byond://?src=\ref[src];act=data;pin=\ref[io]'><font color='FF0000'>[io.data?"\<PULSE OUT\>":"\<PULSE IN\>"]</font></a></b><br>"
 		if(io.linked.len)
 			for(var/k in 1 to io.linked.len)
 				var/datum/integrated_io/linked = io.linked[k]
-				words += "<a href='?src=\ref[src];act=unwire;pin=\ref[io];link=\ref[linked]'><font color='FF0000'>[linked]</font></a> \
-				@ <a href='?src=\ref[linked.holder]'><font color='FF0000'>[linked.holder.displayed_name]</font></a><br>"
+				words += "<a href='byond://?src=\ref[src];act=unwire;pin=\ref[io];link=\ref[linked]'><font color='FF0000'>[linked]</font></a> \
+				@ <a href='byond://?src=\ref[linked.holder]'><font color='FF0000'>[linked.holder.displayed_name]</font></a><br>"
 
 		HTML += "<tr>"
 		HTML += "<td colspan='3' align='center'>[jointext(words, null)]</td>"
diff --git a/code/modules/integrated_electronics/core/printer.dm b/code/modules/integrated_electronics/core/printer.dm
index 8a33268251d..71b69011ced 100644
--- a/code/modules/integrated_electronics/core/printer.dm
+++ b/code/modules/integrated_electronics/core/printer.dm
@@ -167,21 +167,21 @@
 	if((can_clone && get_config_value(/decl/config/toggle/on/allow_ic_printing)) || debug)
 		HTML += "Here you can load script for your assembly.<br>"
 		if(!cloning)
-			HTML += " <A href='?src=\ref[src];print=load'>{Load Program}</a> "
+			HTML += " <A href='byond://?src=\ref[src];print=load'>{Load Program}</a> "
 		else
 			HTML += " {Load Program}"
 		if(!program)
 			HTML += " {[fast_clone ? "Print" : "Begin Printing"] Assembly}"
 		else if(cloning)
-			HTML += " <A href='?src=\ref[src];print=cancel'>{Cancel Print}</a>"
+			HTML += " <A href='byond://?src=\ref[src];print=cancel'>{Cancel Print}</a>"
 		else
-			HTML += " <A href='?src=\ref[src];print=print'>{[fast_clone ? "Print" : "Begin Printing"] Assembly}</a>"
+			HTML += " <A href='byond://?src=\ref[src];print=print'>{[fast_clone ? "Print" : "Begin Printing"] Assembly}</a>"
 
 		HTML += "<br><hr>"
 	HTML += "Categories:"
 	for(var/category in SScircuit.circuit_fabricator_recipe_list)
 		if(category != current_category)
-			HTML += " <a href='?src=\ref[src];category=[category]'>\[[category]\]</a> "
+			HTML += " <a href='byond://?src=\ref[src];category=[category]'>\[[category]\]</a> "
 		else // Bold the button if it's already selected.
 			HTML += " <b>\[[category]\]</b> "
 	HTML += "<hr>"
@@ -196,7 +196,7 @@
 			if((initial(IC.spawn_flags) & IC_SPAWN_RESEARCH) && (!(initial(IC.spawn_flags) & IC_SPAWN_DEFAULT)) && !upgraded)
 				can_build = FALSE
 		if(can_build)
-			HTML += "<A href='?src=\ref[src];build=\ref[path]'>\[[initial(O.name)]\]</A>: [initial(O.desc)]<br>"
+			HTML += "<A href='byond://?src=\ref[src];build=\ref[path]'>\[[initial(O.name)]\]</A>: [initial(O.desc)]<br>"
 		else
 			HTML += "<s>\[[initial(O.name)]\]</s>: [initial(O.desc)]<br>"
 
diff --git a/code/modules/integrated_electronics/core/special_pins/list_pin.dm b/code/modules/integrated_electronics/core/special_pins/list_pin.dm
index 23999d250be..60f7561e46e 100644
--- a/code/modules/integrated_electronics/core/special_pins/list_pin.dm
+++ b/code/modules/integrated_electronics/core/special_pins/list_pin.dm
@@ -10,19 +10,19 @@
 	var/list/my_list = data
 	var/t = "<h2>[src]</h2><br>"
 	t += "List length: [my_list.len]<br>"
-	t += "<a href='?src=\ref[src]'>\[Refresh\]</a>  |  "
-	t += "<a href='?src=\ref[src];add=1'>\[Add\]</a>  |  "
-	t += "<a href='?src=\ref[src];remove=1'>\[Remove\]</a>  |  "
-	t += "<a href='?src=\ref[src];edit=1'>\[Edit\]</a>  |  "
-	t += "<a href='?src=\ref[src];swap=1'>\[Swap\]</a>  |  "
-	t += "<a href='?src=\ref[src];clear=1'>\[Clear\]</a><br>"
+	t += "<a href='byond://?src=\ref[src]'>\[Refresh\]</a>  |  "
+	t += "<a href='byond://?src=\ref[src];add=1'>\[Add\]</a>  |  "
+	t += "<a href='byond://?src=\ref[src];remove=1'>\[Remove\]</a>  |  "
+	t += "<a href='byond://?src=\ref[src];edit=1'>\[Edit\]</a>  |  "
+	t += "<a href='byond://?src=\ref[src];swap=1'>\[Swap\]</a>  |  "
+	t += "<a href='byond://?src=\ref[src];clear=1'>\[Clear\]</a><br>"
 	t += "<hr>"
 	var/i = 0
 	for(var/line in my_list)
 		i++
 		t += "#[i] | [display_data(line)]  |  "
-		t += "<a href='?src=\ref[src];edit=1;pos=[i]'>\[Edit\]</a>  |  "
-		t += "<a href='?src=\ref[src];remove=1;pos=[i]'>\[Remove\]</a><br>"
+		t += "<a href='byond://?src=\ref[src];edit=1;pos=[i]'>\[Edit\]</a>  |  "
+		t += "<a href='byond://?src=\ref[src];remove=1;pos=[i]'>\[Remove\]</a><br>"
 	show_browser(user, t, "window=list_pin_\ref[src];size=500x400")
 
 /datum/integrated_io/lists/proc/add_to_list(mob/user, var/new_entry)
diff --git a/code/modules/mob/living/bot/bot.dm b/code/modules/mob/living/bot/bot.dm
index cf84fa7cad7..b1cea26e1c5 100644
--- a/code/modules/mob/living/bot/bot.dm
+++ b/code/modules/mob/living/bot/bot.dm
@@ -164,7 +164,7 @@
 	return
 
 /mob/living/bot/proc/GetInteractStatus()
-	. = "Status: <A href='?src=\ref[src];command=toggle'>[on ? "On" : "Off"]</A>"
+	. = "Status: <A href='byond://?src=\ref[src];command=toggle'>[on ? "On" : "Off"]</A>"
 	. += "<BR>Behaviour controls are [locked ? "locked" : "unlocked"]"
 	. += "<BR>Maintenance panel is [open ? "opened" : "closed"]"
 
diff --git a/code/modules/mob/living/bot/cleanbot.dm b/code/modules/mob/living/bot/cleanbot.dm
index bdcd85af07a..e640ecc4784 100644
--- a/code/modules/mob/living/bot/cleanbot.dm
+++ b/code/modules/mob/living/bot/cleanbot.dm
@@ -99,12 +99,12 @@
 	. += "<b>Automatic Cleaner v1.0</b>"
 
 /mob/living/bot/cleanbot/GetInteractPanel()
-	. = "Cleans blood: <a href='?src=\ref[src];command=blood'>[blood ? "Yes" : "No"]</a>"
-	. += "<br>Patrol station: <a href='?src=\ref[src];command=patrol'>[will_patrol ? "Yes" : "No"]</a>"
+	. = "Cleans blood: <a href='byond://?src=\ref[src];command=blood'>[blood ? "Yes" : "No"]</a>"
+	. += "<br>Patrol station: <a href='byond://?src=\ref[src];command=patrol'>[will_patrol ? "Yes" : "No"]</a>"
 
 /mob/living/bot/cleanbot/GetInteractMaintenance()
-	. = "Odd looking screw twiddled: <a href='?src=\ref[src];command=screw'>[screwloose ? "Yes" : "No"]</a>"
-	. += "<br>Weird button pressed: <a href='?src=\ref[src];command=oddbutton'>[oddbutton ? "Yes" : "No"]</a>"
+	. = "Odd looking screw twiddled: <a href='byond://?src=\ref[src];command=screw'>[screwloose ? "Yes" : "No"]</a>"
+	. += "<br>Weird button pressed: <a href='byond://?src=\ref[src];command=oddbutton'>[oddbutton ? "Yes" : "No"]</a>"
 
 /mob/living/bot/cleanbot/ProcessCommand(var/mob/user, var/command, var/href_list)
 	..()
diff --git a/code/modules/mob/living/bot/farmbot.dm b/code/modules/mob/living/bot/farmbot.dm
index c09b7b9cdee..4a487bb1a4c 100644
--- a/code/modules/mob/living/bot/farmbot.dm
+++ b/code/modules/mob/living/bot/farmbot.dm
@@ -45,20 +45,20 @@
 		. += "error: not found"
 
 /mob/living/bot/farmbot/GetInteractPanel()
-	. = "Water plants : <a href='?src=\ref[src];command=water'>[waters_trays ? "Yes" : "No"]</a>"
-	. += "<br>Refill watertank : <a href='?src=\ref[src];command=refill'>[refills_water ? "Yes" : "No"]</a>"
-	. += "<br>Weed plants: <a href='?src=\ref[src];command=weed'>[uproots_weeds ? "Yes" : "No"]</a>"
-	. += "<br>Replace fertilizer: <a href='?src=\ref[src];command=replacenutri'>[replaces_nutriment ? "Yes" : "No"]</a>"
-	. += "<br>Collect produce: <a href='?src=\ref[src];command=collect'>[collects_produce ? "Yes" : "No"]</a>"
-	. += "<br>Remove dead plants: <a href='?src=\ref[src];command=removedead'>[removes_dead ? "Yes" : "No"]</a>"
+	. = "Water plants : <a href='byond://?src=\ref[src];command=water'>[waters_trays ? "Yes" : "No"]</a>"
+	. += "<br>Refill watertank : <a href='byond://?src=\ref[src];command=refill'>[refills_water ? "Yes" : "No"]</a>"
+	. += "<br>Weed plants: <a href='byond://?src=\ref[src];command=weed'>[uproots_weeds ? "Yes" : "No"]</a>"
+	. += "<br>Replace fertilizer: <a href='byond://?src=\ref[src];command=replacenutri'>[replaces_nutriment ? "Yes" : "No"]</a>"
+	. += "<br>Collect produce: <a href='byond://?src=\ref[src];command=collect'>[collects_produce ? "Yes" : "No"]</a>"
+	. += "<br>Remove dead plants: <a href='byond://?src=\ref[src];command=removedead'>[removes_dead ? "Yes" : "No"]</a>"
 
 /mob/living/bot/farmbot/GetInteractMaintenance()
 	. = "Plant identifier status: "
 	switch(emagged)
 		if(0)
-			. += "<a href='?src=\ref[src];command=emag'>Normal</a>"
+			. += "<a href='byond://?src=\ref[src];command=emag'>Normal</a>"
 		if(1)
-			. += "<a href='?src=\ref[src];command=emag'>Scrambled (DANGER)</a>"
+			. += "<a href='byond://?src=\ref[src];command=emag'>Scrambled (DANGER)</a>"
 		if(2)
 			. += "ERROROROROROR-----"
 
diff --git a/code/modules/mob/living/bot/floorbot.dm b/code/modules/mob/living/bot/floorbot.dm
index 24380760339..f972e041782 100644
--- a/code/modules/mob/living/bot/floorbot.dm
+++ b/code/modules/mob/living/bot/floorbot.dm
@@ -45,17 +45,17 @@
 	. += "<br>Tiles left: [amount]"
 
 /mob/living/bot/floorbot/GetInteractPanel()
-	. = "Improves floors: <a href='?src=\ref[src];command=improve'>[improvefloors ? "Yes" : "No"]</a>"
-	. += "<br>Finds tiles: <a href='?src=\ref[src];command=tiles'>[eattiles ? "Yes" : "No"]</a>"
-	. += "<br>Make single pieces of metal into tiles when empty: <a href='?src=\ref[src];command=make'>[maketiles ? "Yes" : "No"]</a>"
+	. = "Improves floors: <a href='byond://?src=\ref[src];command=improve'>[improvefloors ? "Yes" : "No"]</a>"
+	. += "<br>Finds tiles: <a href='byond://?src=\ref[src];command=tiles'>[eattiles ? "Yes" : "No"]</a>"
+	. += "<br>Make single pieces of metal into tiles when empty: <a href='byond://?src=\ref[src];command=make'>[maketiles ? "Yes" : "No"]</a>"
 
 /mob/living/bot/floorbot/GetInteractMaintenance()
 	. = "Disassembly mode: "
 	switch(emagged)
 		if(0)
-			. += "<a href='?src=\ref[src];command=emag'>Off</a>"
+			. += "<a href='byond://?src=\ref[src];command=emag'>Off</a>"
 		if(1)
-			. += "<a href='?src=\ref[src];command=emag'>On (Caution)</a>"
+			. += "<a href='byond://?src=\ref[src];command=emag'>On (Caution)</a>"
 		if(2)
 			. += "ERROROROROROR-----"
 
diff --git a/code/modules/mob/living/bot/medibot.dm b/code/modules/mob/living/bot/medibot.dm
index f24139744d8..e0f4c842d86 100644
--- a/code/modules/mob/living/bot/medibot.dm
+++ b/code/modules/mob/living/bot/medibot.dm
@@ -203,34 +203,34 @@
 	. = ..()
 	. += "<br>Beaker: "
 	if(reagent_glass)
-		. += "<A href='?src=\ref[src];command=eject'>Loaded \[[reagent_glass.reagents.total_volume]/[reagent_glass.reagents.maximum_volume]\]</a>"
+		. += "<A href='byond://?src=\ref[src];command=eject'>Loaded \[[reagent_glass.reagents.total_volume]/[reagent_glass.reagents.maximum_volume]\]</a>"
 	else
 		. += "None loaded"
 
 /mob/living/bot/medbot/GetInteractPanel()
 	. = "Healing threshold: "
-	. += "<a href='?src=\ref[src];command=adj_threshold;amount=-10'>--</a> "
-	. += "<a href='?src=\ref[src];command=adj_threshold;amount=-5'>-</a> "
+	. += "<a href='byond://?src=\ref[src];command=adj_threshold;amount=-10'>--</a> "
+	. += "<a href='byond://?src=\ref[src];command=adj_threshold;amount=-5'>-</a> "
 	. += "[heal_threshold] "
-	. += "<a href='?src=\ref[src];command=adj_threshold;amount=5'>+</a> "
-	. += "<a href='?src=\ref[src];command=adj_threshold;amount=10'>++</a>"
+	. += "<a href='byond://?src=\ref[src];command=adj_threshold;amount=5'>+</a> "
+	. += "<a href='byond://?src=\ref[src];command=adj_threshold;amount=10'>++</a>"
 
 	. += "<br>Injection level: "
-	. += "<a href='?src=\ref[src];command=adj_inject;amount=-5'>-</a> "
+	. += "<a href='byond://?src=\ref[src];command=adj_inject;amount=-5'>-</a> "
 	. += "[injection_amount] "
-	. += "<a href='?src=\ref[src];command=adj_inject;amount=5'>+</a> "
+	. += "<a href='byond://?src=\ref[src];command=adj_inject;amount=5'>+</a> "
 
-	. += "<br>Reagent source: <a href='?src=\ref[src];command=use_beaker'>[use_beaker ? "Loaded Beaker (When available)" : "Internal Synthesizer"]</a>"
-	. += "<br>Treatment report is [declare_treatment ? "on" : "off"]. <a href='?src=\ref[src];command=declaretreatment'>Toggle</a>"
-	. += "<br>The speaker switch is [vocal ? "on" : "off"]. <a href='?src=\ref[src];command=togglevoice'>Toggle</a>"
+	. += "<br>Reagent source: <a href='byond://?src=\ref[src];command=use_beaker'>[use_beaker ? "Loaded Beaker (When available)" : "Internal Synthesizer"]</a>"
+	. += "<br>Treatment report is [declare_treatment ? "on" : "off"]. <a href='byond://?src=\ref[src];command=declaretreatment'>Toggle</a>"
+	. += "<br>The speaker switch is [vocal ? "on" : "off"]. <a href='byond://?src=\ref[src];command=togglevoice'>Toggle</a>"
 
 /mob/living/bot/medbot/GetInteractMaintenance()
 	. = "Injection mode: "
 	switch(emagged)
 		if(0)
-			. += "<a href='?src=\ref[src];command=emag'>Treatment</a>"
+			. += "<a href='byond://?src=\ref[src];command=emag'>Treatment</a>"
 		if(1)
-			. += "<a href='?src=\ref[src];command=emag'>Random (DANGER)</a>"
+			. += "<a href='byond://?src=\ref[src];command=emag'>Random (DANGER)</a>"
 		if(2)
 			. += "ERROROROROROR-----"
 
diff --git a/code/modules/mob/living/bot/mulebot.dm b/code/modules/mob/living/bot/mulebot.dm
index bd720f88e72..255cc333ade 100644
--- a/code/modules/mob/living/bot/mulebot.dm
+++ b/code/modules/mob/living/bot/mulebot.dm
@@ -67,19 +67,19 @@
 	. += "<br>Current Load: [load ? load.name : "<i>none</i>"]"
 
 /mob/living/bot/mulebot/GetInteractPanel()
-	. += "<a href='?src=\ref[src];command=stop'>Stop</a>"
-	. += "<br><a href='?src=\ref[src];command=go'>Proceed</a>"
-	. += "<br><a href='?src=\ref[src];command=home'>Return to home</a>"
-	. += "<br><a href='?src=\ref[src];command=destination'>Set destination</a>"
-	. += "<br><a href='?src=\ref[src];command=sethome'>Set home</a>"
-	. += "<br><a href='?src=\ref[src];command=autoret'>Toggle auto return home</a> ([auto_return ? "On" : "Off"])"
-	. += "<br><a href='?src=\ref[src];command=cargotypes'>Toggle non-standard cargo</a> ([crates_only ? "Off" : "On"])"
+	. += "<a href='byond://?src=\ref[src];command=stop'>Stop</a>"
+	. += "<br><a href='byond://?src=\ref[src];command=go'>Proceed</a>"
+	. += "<br><a href='byond://?src=\ref[src];command=home'>Return to home</a>"
+	. += "<br><a href='byond://?src=\ref[src];command=destination'>Set destination</a>"
+	. += "<br><a href='byond://?src=\ref[src];command=sethome'>Set home</a>"
+	. += "<br><a href='byond://?src=\ref[src];command=autoret'>Toggle auto return home</a> ([auto_return ? "On" : "Off"])"
+	. += "<br><a href='byond://?src=\ref[src];command=cargotypes'>Toggle non-standard cargo</a> ([crates_only ? "Off" : "On"])"
 
 	if(load)
-		. += "<br><a href='?src=\ref[src];command=unload'>Unload now</a>"
+		. += "<br><a href='byond://?src=\ref[src];command=unload'>Unload now</a>"
 
 /mob/living/bot/mulebot/GetInteractMaintenance()
-	. = "<a href='?src=\ref[src];command=safety'>Toggle safety</a> ([safety ? "On" : "Off - DANGER"])"
+	. = "<a href='byond://?src=\ref[src];command=safety'>Toggle safety</a> ([safety ? "On" : "Off - DANGER"])"
 
 /mob/living/bot/mulebot/ProcessCommand(var/mob/user, var/command, var/href_list)
 	..()
diff --git a/code/modules/mob/living/bot/secbot.dm b/code/modules/mob/living/bot/secbot.dm
index b0cde7f77e3..947f989f447 100644
--- a/code/modules/mob/living/bot/secbot.dm
+++ b/code/modules/mob/living/bot/secbot.dm
@@ -66,19 +66,19 @@
 	. += "<b>Automatic Security Unit</b>"
 
 /mob/living/bot/secbot/GetInteractPanel()
-	. = "Check for weapon authorization: <a href='?src=\ref[src];command=idcheck'>[idcheck ? "Yes" : "No"]</a>"
-	. += "<br>Check security records: <a href='?src=\ref[src];command=ignorerec'>[check_records ? "Yes" : "No"]</a>"
-	. += "<br>Check arrest status: <a href='?src=\ref[src];command=ignorearr'>[check_arrest ? "Yes" : "No"]</a>"
-	. += "<br>Report arrests: <a href='?src=\ref[src];command=declarearrests'>[declare_arrests ? "Yes" : "No"]</a>"
-	. += "<br>Auto patrol: <a href='?src=\ref[src];command=patrol'>[will_patrol ? "On" : "Off"]</a>"
+	. = "Check for weapon authorization: <a href='byond://?src=\ref[src];command=idcheck'>[idcheck ? "Yes" : "No"]</a>"
+	. += "<br>Check security records: <a href='byond://?src=\ref[src];command=ignorerec'>[check_records ? "Yes" : "No"]</a>"
+	. += "<br>Check arrest status: <a href='byond://?src=\ref[src];command=ignorearr'>[check_arrest ? "Yes" : "No"]</a>"
+	. += "<br>Report arrests: <a href='byond://?src=\ref[src];command=declarearrests'>[declare_arrests ? "Yes" : "No"]</a>"
+	. += "<br>Auto patrol: <a href='byond://?src=\ref[src];command=patrol'>[will_patrol ? "On" : "Off"]</a>"
 
 /mob/living/bot/secbot/GetInteractMaintenance()
 	. = "Threat identifier status: "
 	switch(emagged)
 		if(0)
-			. += "<a href='?src=\ref[src];command=emag'>Normal</a>"
+			. += "<a href='byond://?src=\ref[src];command=emag'>Normal</a>"
 		if(1)
-			. += "<a href='?src=\ref[src];command=emag'>Scrambled (DANGER)</a>"
+			. += "<a href='byond://?src=\ref[src];command=emag'>Scrambled (DANGER)</a>"
 		if(2)
 			. += "ERROROROROROR-----"
 
diff --git a/code/modules/mob/living/human/examine.dm b/code/modules/mob/living/human/examine.dm
index 064edd76354..0d214079de3 100644
--- a/code/modules/mob/living/human/examine.dm
+++ b/code/modules/mob/living/human/examine.dm
@@ -6,7 +6,7 @@
 			species_name += "[species.cyborg_noun] [species.get_root_species_name(src)]"
 		else
 			species_name += "[species.name]"
-		msg += ", <b><font color='[species.get_species_flesh_color(src)]'>\a [species_name]!</font></b>[(user.can_use_codex() && SScodex.get_codex_entry(get_codex_value(user))) ?  SPAN_NOTICE(" \[<a href='?src=\ref[SScodex];show_examined_info=\ref[src];show_to=\ref[user]'>?</a>\]") : ""]"
+		msg += ", <b><font color='[species.get_species_flesh_color(src)]'>\a [species_name]!</font></b>[(user.can_use_codex() && SScodex.get_codex_entry(get_codex_value(user))) ?  SPAN_NOTICE(" \[<a href='byond://?src=\ref[SScodex];show_examined_info=\ref[src];show_to=\ref[user]'>?</a>\]") : ""]"
 	var/extra_species_text = species.get_additional_examine_text(src)
 	if(extra_species_text)
 		msg += "<br>[extra_species_text]"
@@ -203,8 +203,8 @@
 				if(R)
 					criminal = R.get_criminalStatus()
 
-				msg += "<span class = 'deptradio'>Criminal status:</span> <a href='?src=\ref[src];criminal=1'>\[[criminal]\]</a>\n"
-				msg += "<span class = 'deptradio'>Security records:</span> <a href='?src=\ref[src];secrecord=1'>\[View\]</a>\n"
+				msg += "<span class = 'deptradio'>Criminal status:</span> <a href='byond://?src=\ref[src];criminal=1'>\[[criminal]\]</a>\n"
+				msg += "<span class = 'deptradio'>Security records:</span> <a href='byond://?src=\ref[src];secrecord=1'>\[View\]</a>\n"
 
 	if(hasHUD(user, HUD_MEDICAL))
 		var/perpname = "wot"
@@ -222,8 +222,8 @@
 			if(R)
 				medical = R.get_status()
 
-			msg += "<span class = 'deptradio'>Physical status:</span> <a href='?src=\ref[src];medical=1'>\[[medical]\]</a>\n"
-			msg += "<span class = 'deptradio'>Medical records:</span> <a href='?src=\ref[src];medrecord=1'>\[View\]</a>\n"
+			msg += "<span class = 'deptradio'>Physical status:</span> <a href='byond://?src=\ref[src];medical=1'>\[[medical]\]</a>\n"
+			msg += "<span class = 'deptradio'>Medical records:</span> <a href='byond://?src=\ref[src];medrecord=1'>\[View\]</a>\n"
 
 	// Show IC/OOC info if available.
 	if(comments_record_id)
@@ -339,6 +339,6 @@
 	HTML += TextPreview(flavor_texts["feet"])
 	HTML += "<br>"
 	HTML += "<hr />"
-	HTML +="<a href='?src=\ref[src];flavor_change=done'>\[Done\]</a>"
+	HTML +="<a href='byond://?src=\ref[src];flavor_change=done'>\[Done\]</a>"
 	HTML += "<tt>"
 	show_browser(src, jointext(HTML,null), "window=flavor_changes;size=430x300")
diff --git a/code/modules/mob/living/human/human.dm b/code/modules/mob/living/human/human.dm
index e8e79e0bffd..c3639aa7fac 100644
--- a/code/modules/mob/living/human/human.dm
+++ b/code/modules/mob/living/human/human.dm
@@ -139,7 +139,7 @@
 	. = ..()
 	for(var/entry in worn_underwear)
 		var/obj/item/underwear/UW = entry
-		LAZYADD(., "<BR><a href='?src=\ref[src];item=\ref[UW]'>Remove \the [UW]</a>")
+		LAZYADD(., "<BR><a href='byond://?src=\ref[src];item=\ref[UW]'>Remove \the [UW]</a>")
 
 /mob/living/human/OnSelfTopic(href_list)
 	if (href_list["lookitem"])
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index ad30353c155..e61fb103f46 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -33,7 +33,7 @@
 	if(!..())
 		return 0
 
-	usr.visible_message("<b>[src]</b> points to <a href='?src=\ref[A];look_at_me=1'>[A]</a>")
+	usr.visible_message("<b>[src]</b> points to <a href='byond://?src=\ref[A];look_at_me=1'>[A]</a>")
 	return 1
 
 /*one proc, four uses
diff --git a/code/modules/mob/living/silicon/robot/drone/drone_console.dm b/code/modules/mob/living/silicon/robot/drone/drone_console.dm
index 65158f20d7d..41ef351a611 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone_console.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone_console.dm
@@ -26,12 +26,12 @@
 		dat += "<BR>[D.real_name] ([D.stat == DEAD ? "<font color='red'>INACTIVE</FONT>" : "<font color='green'>ACTIVE</FONT>"])"
 		dat += "<font dize = 9><BR>Cell charge: [D.cell.charge]/[D.cell.maxcharge]."
 		dat += "<BR>Currently located in: [get_area_name(D)]."
-		dat += "<BR><A href='?src=\ref[src];resync=\ref[D]'>Resync</A> | <A href='?src=\ref[src];shutdown=\ref[D]'>Shutdown</A></font>"
+		dat += "<BR><A href='byond://?src=\ref[src];resync=\ref[D]'>Resync</A> | <A href='byond://?src=\ref[src];shutdown=\ref[D]'>Shutdown</A></font>"
 
-	dat += "<BR><BR><B>Request drone presence in area:</B> <A href='?src=\ref[src];setarea=1'>[drone_call_area]</A> (<A href='?src=\ref[src];ping=1'>Send ping</A>)"
+	dat += "<BR><BR><B>Request drone presence in area:</B> <A href='byond://?src=\ref[src];setarea=1'>[drone_call_area]</A> (<A href='byond://?src=\ref[src];ping=1'>Send ping</A>)"
 
 	dat += "<BR><BR><B>Drone fabricator</B>: "
-	dat += "[dronefab ? "<A href='?src=\ref[src];toggle_fab=1'>[(dronefab.produce_drones && !(dronefab.stat & NOPOWER)) ? "ACTIVE" : "INACTIVE"]</A>" : "<font color='red'><b>FABRICATOR NOT DETECTED.</b></font> (<A href='?src=\ref[src];search_fab=1'>search</a>)"]"
+	dat += "[dronefab ? "<A href='byond://?src=\ref[src];toggle_fab=1'>[(dronefab.produce_drones && !(dronefab.stat & NOPOWER)) ? "ACTIVE" : "INACTIVE"]</A>" : "<font color='red'><b>FABRICATOR NOT DETECTED.</b></font> (<A href='byond://?src=\ref[src];search_fab=1'>search</a>)"]"
 	show_browser(user, dat, "window=computer;size=400x500")
 	onclose(user, "computer")
 	return
diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
index cb51b2bab66..a75c51534f9 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
@@ -419,9 +419,9 @@
 	dat += {"
 	<B>Activated Modules</B>
 	<BR>
-	Module 1: [module_state_1 ? "<A HREF=?src=\ref[src];mod=\ref[module_state_1]>[module_state_1]<A>" : "No Module"]<BR>
-	Module 2: [module_state_2 ? "<A HREF=?src=\ref[src];mod=\ref[module_state_2]>[module_state_2]<A>" : "No Module"]<BR>
-	Module 3: [module_state_3 ? "<A HREF=?src=\ref[src];mod=\ref[module_state_3]>[module_state_3]<A>" : "No Module"]<BR>
+	Module 1: [module_state_1 ? "<A HREF='byond://?src=\ref[src];mod=\ref[module_state_1]'>[module_state_1]<A>" : "No Module"]<BR>
+	Module 2: [module_state_2 ? "<A HREF='byond://?src=\ref[src];mod=\ref[module_state_2]'>[module_state_2]<A>" : "No Module"]<BR>
+	Module 3: [module_state_3 ? "<A HREF='byond://?src=\ref[src];mod=\ref[module_state_3]'>[module_state_3]<A>" : "No Module"]<BR>
 	<BR>
 	<B>Installed Modules</B><BR><BR>"}
 
@@ -438,7 +438,7 @@
 		else if(activated(O))
 			module_string += text("[O]: <B>Activated</B><BR>")
 		else
-			module_string += text("[O]: <A HREF=?src=\ref[src];act=\ref[O]>Activate</A><BR>")
+			module_string += text("[O]: <A HREF='byond://?src=\ref[src];act=\ref[O]'>Activate</A><BR>")
 
 		if((istype(O,/obj/item) || istype(O,/obj/item)) && !(istype(O,/obj/item/stack/cable_coil)))
 			tools += module_string
@@ -453,7 +453,7 @@
 		else if(activated(module.emag))
 			dat += text("[module.emag]: <B>Activated</B><BR>")
 		else
-			dat += text("[module.emag]: <A HREF=?src=\ref[src];act=\ref[module.emag]>Activate</A><BR>")
+			dat += text("[module.emag]: <A HREF='byond://?src=\ref[src];act=\ref[module.emag]'>Activate</A><BR>")
 
 	dat += resources
 
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 4490bd4986f..e3eeeee6c46 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -722,9 +722,9 @@
 	dat += {"
 	<B>Activated Modules</B>
 	<BR>
-	Module 1: [module_state_1 ? "<A HREF=?src=\ref[src];mod=\ref[module_state_1]>[module_state_1]<A>" : "No Module"]<BR>
-	Module 2: [module_state_2 ? "<A HREF=?src=\ref[src];mod=\ref[module_state_2]>[module_state_2]<A>" : "No Module"]<BR>
-	Module 3: [module_state_3 ? "<A HREF=?src=\ref[src];mod=\ref[module_state_3]>[module_state_3]<A>" : "No Module"]<BR>
+	Module 1: [module_state_1 ? "<A HREF='byond://?src=\ref[src];mod=\ref[module_state_1]'>[module_state_1]<A>" : "No Module"]<BR>
+	Module 2: [module_state_2 ? "<A HREF='byond://?src=\ref[src];mod=\ref[module_state_2]'>[module_state_2]<A>" : "No Module"]<BR>
+	Module 3: [module_state_3 ? "<A HREF='byond://?src=\ref[src];mod=\ref[module_state_3]'>[module_state_3]<A>" : "No Module"]<BR>
 	<BR>
 	<B>Installed Modules</B><BR><BR>"}
 
@@ -735,17 +735,17 @@
 		else if(activated(obj))
 			dat += text("[obj]: <B>Activated</B><BR>")
 		else
-			dat += text("[obj]: <A HREF=?src=\ref[src];act=\ref[obj]>Activate</A><BR>")
+			dat += text("[obj]: <A HREF='byond://?src=\ref[src];act=\ref[obj]'>Activate</A><BR>")
 	if (emagged && module.emag)
 		if(activated(module.emag))
 			dat += text("[module.emag]: <B>Activated</B><BR>")
 		else
-			dat += text("[module.emag]: <A HREF=?src=\ref[src];act=\ref[module.emag]>Activate</A><BR>")
+			dat += text("[module.emag]: <A HREF='byond://?src=\ref[src];act=\ref[module.emag]'>Activate</A><BR>")
 /*
 		if(activated(obj))
-			dat += text("[obj]: \[<B>Activated</B> | <A HREF=?src=\ref[src];deact=\ref[obj]>Deactivate</A>\]<BR>")
+			dat += text("[obj]: \[<B>Activated</B> | <A HREF='byond://?src=\ref[src];deact=\ref[obj]'>Deactivate</A>\]<BR>")
 		else
-			dat += text("[obj]: \[<A HREF=?src=\ref[src];act=\ref[obj]>Activate</A> | <B>Deactivated</B>\]<BR>")
+			dat += text("[obj]: \[<A HREF='byond://?src=\ref[src];act=\ref[obj]'>Activate</A> | <B>Deactivated</B>\]<BR>")
 */
 	show_browser(src, dat, "window=robotmod")
 
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index ad974013881..49bbe726058 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -321,7 +321,7 @@
 					to_chat(src, "\The [A.alarm_name()].")
 
 		if(alarm_raised)
-			to_chat(src, "<A HREF=?src=\ref[src];showalerts=1>\[Show Alerts\]</A>")
+			to_chat(src, "<A HREF='byond://?src=\ref[src];showalerts=1'>\[Show Alerts\]</A>")
 
 		for(var/datum/alarm_handler/AH in queued_alarms)
 			var/list/alarms = queued_alarms[AH]
@@ -333,7 +333,7 @@
 /mob/living/silicon/ai/raised_alarm(var/datum/alarm/A)
 	var/cameratext = ""
 	for(var/obj/machinery/camera/C in A.cameras())
-		cameratext += "[(cameratext == "")? "" : "|"]<A HREF=?src=\ref[src];switchcamera=\ref[C]>[C.c_tag]</A>"
+		cameratext += "[(cameratext == "")? "" : "|"]<A HREF='byond://?src=\ref[src];switchcamera=\ref[C]'>[C.c_tag]</A>"
 	to_chat(src, "[A.alarm_name()]! ([(cameratext)? cameratext : "No Camera"])")
 
 
diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm
index 28160d06449..a2d7f65ab16 100644
--- a/code/modules/mob/login.dm
+++ b/code/modules/mob/login.dm
@@ -19,10 +19,10 @@
 					is_multikeying = 1
 				if(matches)
 					if(M.client)
-						message_admins("<font color='red'><B>Notice: </B></font><font color='blue'><A href='?src=\ref[usr];priv_msg=\ref[src]'>[key_name_admin(src)]</A> has the same [matches] as <A href='?src=\ref[usr];priv_msg=\ref[M]'>[key_name_admin(M)]</A>.</font>", 1)
+						message_admins("<font color='red'><B>Notice: </B></font><font color='blue'><A href='byond://?src=\ref[usr];priv_msg=\ref[src]'>[key_name_admin(src)]</A> has the same [matches] as <A href='byond://?src=\ref[usr];priv_msg=\ref[M]'>[key_name_admin(M)]</A>.</font>", 1)
 						log_access("Notice: [key_name(src)] has the same [matches] as [key_name(M)].")
 					else
-						message_admins("<font color='red'><B>Notice: </B></font><font color='blue'><A href='?src=\ref[usr];priv_msg=\ref[src]'>[key_name_admin(src)]</A> has the same [matches] as [key_name_admin(M)] (no longer logged in). </font>", 1)
+						message_admins("<font color='red'><B>Notice: </B></font><font color='blue'><A href='byond://?src=\ref[usr];priv_msg=\ref[src]'>[key_name_admin(src)]</A> has the same [matches] as [key_name_admin(M)] (no longer logged in). </font>", 1)
 						log_access("Notice: [key_name(src)] has the same [matches] as [key_name(M)] (no longer logged in).")
 		if(is_multikeying && !client.warned_about_multikeying)
 			client.warned_about_multikeying = 1
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 3d0490df4f6..e236a36b671 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -346,7 +346,7 @@
 		if(!inv_slot || inv_slot.skip_on_strip_display)
 			continue
 		var/obj/item/held = inv_slot.get_equipped_item()
-		dat += "<b>[capitalize(inv_slot.slot_name)]:</b> <A href='?src=\ref[src];item=[hand_slot]'>[held?.name || "nothing"]</A>"
+		dat += "<b>[capitalize(inv_slot.slot_name)]:</b> <A href='byond://?src=\ref[src];item=[hand_slot]'>[held?.name || "nothing"]</A>"
 
 	var/list/all_slots = get_all_available_equipment_slots()
 	if(all_slots)
@@ -354,39 +354,39 @@
 			if(slot in my_held_item_slots)
 				continue
 			var/obj/item/thing_in_slot = get_equipped_item(slot)
-			dat += "<B>[capitalize(get_descriptive_slot_name(slot))]:</b> <a href='?src=\ref[src];item=[slot]'>[thing_in_slot || "nothing"]</a>"
+			dat += "<B>[capitalize(get_descriptive_slot_name(slot))]:</b> <a href='byond://?src=\ref[src];item=[slot]'>[thing_in_slot || "nothing"]</a>"
 			if(istype(thing_in_slot, /obj/item/clothing))
 				var/obj/item/clothing/C = thing_in_slot
 				if(LAZYLEN(C.accessories))
-					dat += "<A href='?src=\ref[src];item=accessory;holder=\ref[C]'>Remove accessory</A>"
+					dat += "<A href='byond://?src=\ref[src];item=accessory;holder=\ref[C]'>Remove accessory</A>"
 
 	// Do they get an option to set internals?
 	if(istype(get_equipped_item(slot_wear_mask_str), /obj/item/clothing/mask) || istype(get_equipped_item(slot_head_str), /obj/item/clothing/head/helmet/space))
 		for(var/slot in list(slot_back_str, slot_belt_str, slot_s_store_str))
 			var/obj/item/tank/tank = get_equipped_item(slot)
 			if(istype(tank))
-				dat += "<BR><A href='?src=\ref[src];item=internals'>Toggle internals.</A>"
+				dat += "<BR><A href='byond://?src=\ref[src];item=internals'>Toggle internals.</A>"
 				break
 
 	// Other incidentals.
 	var/obj/item/clothing/suit = get_equipped_item(slot_w_uniform_str)
 	if(istype(suit))
-		dat += "<BR><b>Pockets:</b> <A href='?src=\ref[src];item=pockets'>Empty or Place Item</A>"
+		dat += "<BR><b>Pockets:</b> <A href='byond://?src=\ref[src];item=pockets'>Empty or Place Item</A>"
 	var/obj/item/clothing/sensor/vitals/sensor = get_vitals_sensor()
 	if(sensor)
 		if(sensor.get_sensors_locked())
-			dat += "<BR><A href='?src=\ref[src];item=lock_sensors'>Unlock vitals sensors</A>"
+			dat += "<BR><A href='byond://?src=\ref[src];item=lock_sensors'>Unlock vitals sensors</A>"
 		else if(user.get_multitool())
-			dat += "<BR><A href='?src=\ref[src];item=lock_sensors'>Lock vitals sensors</A>"
-			dat += "<BR><A href='?src=\ref[src];item=sensors'>Set vitals sensors</A>"
+			dat += "<BR><A href='byond://?src=\ref[src];item=lock_sensors'>Lock vitals sensors</A>"
+			dat += "<BR><A href='byond://?src=\ref[src];item=sensors'>Set vitals sensors</A>"
 	if(get_equipped_item(slot_handcuffed_str))
-		dat += "<BR><A href='?src=\ref[src];item=[slot_handcuffed_str]'>Handcuffed</A>"
+		dat += "<BR><A href='byond://?src=\ref[src];item=[slot_handcuffed_str]'>Handcuffed</A>"
 
 	var/list/strip_add = get_additional_stripping_options()
 	if(length(strip_add))
 		dat += strip_add
 
-	dat += "<BR><A href='?src=\ref[src];refresh=1'>Refresh</A>"
+	dat += "<BR><A href='byond://?src=\ref[src];refresh=1'>Refresh</A>"
 
 	var/datum/browser/popup = new(user, "[name]", "Inventory of \the [name]", 325, 500, src)
 	popup.set_content(jointext(dat, "<br>"))
diff --git a/code/modules/modular_computers/file_system/programs/generic/email_client.dm b/code/modules/modular_computers/file_system/programs/generic/email_client.dm
index dd73361bea8..61536217f86 100644
--- a/code/modules/modular_computers/file_system/programs/generic/email_client.dm
+++ b/code/modules/modular_computers/file_system/programs/generic/email_client.dm
@@ -83,7 +83,7 @@
 		msg += "<b>Subject:</b> [received_message.title]\n<b>Message:</b>\n[digitalPencode2html(received_message.stored_data)]\n"
 		if(received_message.attachment)
 			msg += "<b>Attachment:</b> [received_message.attachment.filename].[received_message.attachment.filetype] ([received_message.attachment.size]GQ)\n"
-		msg += "<a href='?src=\ref[src];open;reply=[received_message.uid]'>Reply</a>\n"
+		msg += "<a href='byond://?src=\ref[src];open;reply=[received_message.uid]'>Reply</a>\n"
 		msg += "*--*"
 		to_chat(L, jointext(msg, null))
 
diff --git a/code/modules/organs/external/diagnostics.dm b/code/modules/organs/external/diagnostics.dm
index 1b74273117b..b3eddf17daa 100644
--- a/code/modules/organs/external/diagnostics.dm
+++ b/code/modules/organs/external/diagnostics.dm
@@ -189,7 +189,7 @@
 /decl/diagnostic_sign/proc/get_description(mob/user)
 	. = descriptor
 	if(user && user.skill_check(SKILL_MEDICAL, hint_min_skill))
-		. += "<small><a href='?src=\ref[src];show_diagnostic_hint=1'>(?)</a></small>"
+		. += "<small><a href='byond://?src=\ref[src];show_diagnostic_hint=1'>(?)</a></small>"
 
 /decl/diagnostic_sign/Topic(var/href, var/list/href_list)
 	. = ..()
diff --git a/code/modules/overmap/ships/computers/ship.dm b/code/modules/overmap/ships/computers/ship.dm
index 396a4fe2172..f6ccc699ebd 100644
--- a/code/modules/overmap/ships/computers/ship.dm
+++ b/code/modules/overmap/ships/computers/ship.dm
@@ -33,7 +33,7 @@ somewhere on that shuttle. Subtypes of these can be then used to perform ship ov
 
 /obj/machinery/computer/ship/proc/display_reconnect_dialog(var/mob/user, var/flavor)
 	var/datum/browser/written_digital/popup = new (user, "[src]", "[src]")
-	popup.set_content("<center><strong><font color = 'red'>Error</strong></font><br>Unable to connect to [flavor].<br><a href='?src=\ref[src];sync=1'>Reconnect</a></center>")
+	popup.set_content("<center><strong><font color = 'red'>Error</strong></font><br>Unable to connect to [flavor].<br><a href='byond://?src=\ref[src];sync=1'>Reconnect</a></center>")
 	popup.open()
 
 /obj/machinery/computer/ship/interface_interact(var/mob/user)
diff --git a/code/modules/paperwork/adminpaper.dm b/code/modules/paperwork/adminpaper.dm
index a6a1cf86f12..11891f5d55a 100644
--- a/code/modules/paperwork/adminpaper.dm
+++ b/code/modules/paperwork/adminpaper.dm
@@ -30,14 +30,14 @@
 
 	//Snapshot is crazy and likes putting each topic hyperlink on a seperate line from any other tags so it's nice and clean.
 	interactions += "<HR><center><font size= \"1\">The fax will transmit everything above this line</font><br>"
-	interactions += "<A href='?src=\ref[src];confirm=1'>Send fax</A> "
-	interactions += "<A href='?src=\ref[src];penmode=1'>Pen mode: [isCrayon ? "Crayon" : "Pen"]</A> "
-	interactions += "<A href='?src=\ref[src];cancel=1'>Cancel fax</A> "
+	interactions += "<A href='byond://?src=\ref[src];confirm=1'>Send fax</A> "
+	interactions += "<A href='byond://?src=\ref[src];penmode=1'>Pen mode: [isCrayon ? "Crayon" : "Pen"]</A> "
+	interactions += "<A href='byond://?src=\ref[src];cancel=1'>Cancel fax</A> "
 	interactions += "<BR>"
-	interactions += "<A href='?src=\ref[src];changelogo=1'>Change logo</A> "
-	interactions += "<A href='?src=\ref[src];toggleheader=1'>Toggle Header</A> "
-	interactions += "<A href='?src=\ref[src];togglefooter=1'>Toggle Footer</A> "
-	interactions += "<A href='?src=\ref[src];clear=1'>Clear page</A> "
+	interactions += "<A href='byond://?src=\ref[src];changelogo=1'>Change logo</A> "
+	interactions += "<A href='byond://?src=\ref[src];toggleheader=1'>Toggle Header</A> "
+	interactions += "<A href='byond://?src=\ref[src];togglefooter=1'>Toggle Footer</A> "
+	interactions += "<A href='byond://?src=\ref[src];clear=1'>Clear page</A> "
 	interactions += "</center>"
 
 /obj/item/paper/admin/proc/generateHeader()
diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm
index 8226110bb9a..5aad53384cb 100644
--- a/code/modules/paperwork/clipboard.dm
+++ b/code/modules/paperwork/clipboard.dm
@@ -98,19 +98,19 @@
 /obj/item/clipboard/interact(mob/user)
 	var/dat = "<title>Clipboard</title>"
 	if(stored_pen)
-		dat += "<A href='?src=\ref[src];pen=1'>Remove Pen</A><BR><HR>"
+		dat += "<A href='byond://?src=\ref[src];pen=1'>Remove Pen</A><BR><HR>"
 	else
-		dat += "<A href='?src=\ref[src];addpen=1'>Add Pen</A><BR><HR>"
+		dat += "<A href='byond://?src=\ref[src];addpen=1'>Add Pen</A><BR><HR>"
 
 	dat += "<TABLE style='table-layout:fixed; white-space:nowrap;'>"
 	for(var/i = 1 to LAZYLEN(papers))
 		var/obj/item/P = papers[i]
-		dat += "<TR><TD style='width:45%; overflow:hidden; text-overflow:ellipsis;'><A href='?src=\ref[src];examine=\ref[P]'>[P.name]</A></TD>"
+		dat += "<TR><TD style='width:45%; overflow:hidden; text-overflow:ellipsis;'><A href='byond://?src=\ref[src];examine=\ref[P]'>[P.name]</A></TD>"
 		if(i == 1)
-			dat += "<TD/><TD><A href='?src=\ref[src];write=\ref[P]'>Write</A></TD>"
+			dat += "<TD/><TD><A href='byond://?src=\ref[src];write=\ref[P]'>Write</A></TD>"
 		else
 			dat += "<TD/><TD/>"
-		dat += "<TD><A href='?src=\ref[src];remove=\ref[P]'>Remove</A></TD><TD><A href='?src=\ref[src];rename=\ref[P]'>Rename</A></TD></TR>"
+		dat += "<TD><A href='byond://?src=\ref[src];remove=\ref[P]'>Remove</A></TD><TD><A href='byond://?src=\ref[src];rename=\ref[P]'>Rename</A></TD></TR>"
 	dat += "</TABLE>"
 
 	user.set_machine(src)
diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm
index 331c94acae6..85f24feac70 100644
--- a/code/modules/paperwork/faxmachine.dm
+++ b/code/modules/paperwork/faxmachine.dm
@@ -679,8 +679,8 @@ var/global/list/adminfaxes     = list()	//cache for faxes that have been sent to
 		reply_type = "UNKNOWN"
 
 	var/msg = "<span class='notice'><b><font color='[font_colour]'>[faxname]: </font>[get_options_bar(sender, 2,1,1)]"
-	msg += "(<A HREF='?_src_=holder;take_ic=\ref[sender]'>TAKE</a>) (<a href='?_src_=holder;FaxReply=\ref[sender];originfax=\ref[source_fax];replyorigin=[reply_type]'>REPLY</a>)</b>: "
-	msg += "Receiving '[rcvdcopy.name]' via secure connection ... <a href='?_src_=holder;AdminFaxView=\ref[rcvdcopy]'>view message</a></span>"
+	msg += "(<A HREF='byond://?_src_=holder;take_ic=\ref[sender]'>TAKE</a>) (<a href='byond://?_src_=holder;FaxReply=\ref[sender];originfax=\ref[source_fax];replyorigin=[reply_type]'>REPLY</a>)</b>: "
+	msg += "Receiving '[rcvdcopy.name]' via secure connection ... <a href='byond://?_src_=holder;AdminFaxView=\ref[rcvdcopy]'>view message</a></span>"
 
 	if (istype(doc, /obj/item/paper))
 		var/obj/item/paper/paper = doc
diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm
index 4e728b71bd9..c63df5d0d77 100644
--- a/code/modules/paperwork/filingcabinet.dm
+++ b/code/modules/paperwork/filingcabinet.dm
@@ -42,7 +42,7 @@
 	user.set_machine(src)
 	var/dat = "<HR><TABLE>"
 	for(var/obj/item/P in src)
-		dat += "<TR><TD><A href='?src=\ref[src];retrieve=\ref[P]'>[P.name]</A></TD></TR>"
+		dat += "<TR><TD><A href='byond://?src=\ref[src];retrieve=\ref[P]'>[P.name]</A></TD></TR>"
 	dat += "</TABLE>"
 	show_browser(user, "<html><head><title>[name]</title></head><body>[dat]</body></html>", "window=filingcabinet;size=350x300")
 
diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm
index 392d25940da..38ea557a765 100644
--- a/code/modules/paperwork/folders.dm
+++ b/code/modules/paperwork/folders.dm
@@ -59,7 +59,7 @@
 /obj/item/folder/interact(mob/user)
 	var/dat = "<title>[name]</title>"
 	for(var/obj/item/I in src)
-		dat += "<A href='?src=\ref[src];remove=\ref[I]'>Remove</A> <A href='?src=\ref[src];rename=\ref[I]'>Rename</A> - <A href='?src=\ref[src];examine=\ref[I]'>[I.name]</A><BR>"
+		dat += "<A href='byond://?src=\ref[src];remove=\ref[I]'>Remove</A> <A href='byond://?src=\ref[src];rename=\ref[I]'>Rename</A> - <A href='byond://?src=\ref[src];examine=\ref[I]'>[I.name]</A><BR>"
 
 	user.set_machine(src)
 	show_browser(user, dat, "window=[initial(name)]")
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index 46715f7d9df..0d32e6b7005 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -224,8 +224,8 @@
 	info_links = info
 	var/i = 0
 	for(i=1,i<=fields,i++)
-		addtofield(i, "<font face=\"[deffont]\"><A href='?src=\ref[src];write=[i]'>write</A></font>", 1)
-	info_links = info_links + "<font face=\"[deffont]\"><A href='?src=\ref[src];write=end'>write</A></font>"
+		addtofield(i, "<font face=\"[deffont]\"><A href='byond://?src=\ref[src];write=[i]'>write</A></font>", 1)
+	info_links = info_links + "<font face=\"[deffont]\"><A href='byond://?src=\ref[src];write=end'>write</A></font>"
 
 /obj/item/paper/proc/clearpaper()
 	info = null
diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm
index 4769dde6c61..11e8c049dd4 100644
--- a/code/modules/paperwork/paper_bundle.dm
+++ b/code/modules/paperwork/paper_bundle.dm
@@ -200,30 +200,30 @@
 	dat = "<TABLE STYLE='white-space:nowrap; overflow:clip; width:100%; height:2em; table-layout:fixed;'><TR>"
 	dat += "<TD style='text-align:center;'>"
 	if(cur_page > 1)
-		dat += "<A href='?src=\ref[src];first_page=1'>First</A>"
+		dat += "<A href='byond://?src=\ref[src];first_page=1'>First</A>"
 	else
 		dat += "First"
 	dat += "</TD>"
 
 	dat += "<TD style='text-align:center;'>"
 	if(cur_page > 1)
-		dat += "<A href='?src=\ref[src];prev_page=1'>Previous</A>"
+		dat += "<A href='byond://?src=\ref[src];prev_page=1'>Previous</A>"
 	else
 		dat += "Previous"
 	dat += "</TD>"
 
-	dat += "<TD style='text-align:center;'><A href='?src=\ref[src];jump_to=1;'><B>[cur_page]/[length(pages)]</B></A> <A href='?src=\ref[src];remove=1'>Remove</A></TD>"
+	dat += "<TD style='text-align:center;'><A href='byond://?src=\ref[src];jump_to=1;'><B>[cur_page]/[length(pages)]</B></A> <A href='byond://?src=\ref[src];remove=1'>Remove</A></TD>"
 
 	dat += "<TD style='text-align:center;'>"
 	if(cur_page < pages.len)
-		dat += "<A href='?src=\ref[src];next_page=1'>Next</A>"
+		dat += "<A href='byond://?src=\ref[src];next_page=1'>Next</A>"
 	else
 		dat += "Next"
 	dat += "</TD>"
 
 	dat += "<TD style='text-align:center;'>"
 	if(cur_page < pages.len)
-		dat += "<A href='?src=\ref[src];last_page=1'>Last</A>"
+		dat += "<A href='byond://?src=\ref[src];last_page=1'>Last</A>"
 	else
 		dat += "Last"
 	dat += "</TD>"
diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm
index 6bec2c86ccc..f416d7fda01 100644
--- a/code/modules/paperwork/photography.dm
+++ b/code/modules/paperwork/photography.dm
@@ -132,7 +132,8 @@
 	var/photo_html = {"
 		<html><head><title>[name]</title></head>
 		<body style='overflow:hidden;margin:0;text-align:center'>
-		<img src='tmp_photo_[id].png' width='[64*photo_size]' style='-ms-interpolation-mode:nearest-neighbor' />
+		// todo: remove -ms-interpolation-mode once 516 is required
+		<img src='tmp_photo_[id].png' width='[64*photo_size]' style='-ms-interpolation-mode:nearest-neighbor;image-rendering:pixelated;' />
 		[scribble ? "<br>Written on the back:<br><i>[scribble]</i>" : ""]
 		</body></html>
 	"}
diff --git a/code/modules/persistence/noticeboards.dm b/code/modules/persistence/noticeboards.dm
index c0e2095187c..fcc44e0f473 100644
--- a/code/modules/persistence/noticeboards.dm
+++ b/code/modules/persistence/noticeboards.dm
@@ -96,10 +96,10 @@
 	for(var/thing in notices)
 		LAZYADD(dat, "<tr><td>[thing]</td><td>")
 		if(istype(thing, /obj/item/paper))
-			LAZYADD(dat, "<a href='?src=\ref[src];read=\ref[thing]'>Read</a><a href='?src=\ref[src];write=\ref[thing]'>Write</a>")
+			LAZYADD(dat, "<a href='byond://?src=\ref[src];read=\ref[thing]'>Read</a><a href='byond://?src=\ref[src];write=\ref[thing]'>Write</a>")
 		else if(istype(thing, /obj/item/photo))
-			LAZYADD(dat, "<a href='?src=\ref[src];look=\ref[thing]'>Look</a>")
-		LAZYADD(dat, "<a href='?src=\ref[src];remove=\ref[thing]'>Remove</a></td></tr>")
+			LAZYADD(dat, "<a href='byond://?src=\ref[src];look=\ref[thing]'>Look</a>")
+		LAZYADD(dat, "<a href='byond://?src=\ref[src];remove=\ref[thing]'>Remove</a></td></tr>")
 
 	var/datum/browser/popup = new(user, "noticeboard-\ref[src]", "Noticeboard")
 	popup.set_content(jointext(dat, null))
diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm
index ef3868e9d5d..4f3f45ee931 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_control.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm
@@ -115,7 +115,7 @@
 		if(strength > strength_upper_limit)
 			strength = strength_upper_limit
 		else
-			message_admins("PA Control Computer increased to [strength] by [key_name(usr, usr.client)](<A HREF='?_src_=holder;adminmoreinfo=\ref[usr]'>?</A>) in ([x],[y],[z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)",0,1)
+			message_admins("PA Control Computer increased to [strength] by [key_name(usr, usr.client)](<A HREF='byond://?_src_=holder;adminmoreinfo=\ref[usr]'>?</A>) in ([x],[y],[z] - <A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)",0,1)
 			log_game("PA Control Computer increased to [strength] by [usr.ckey]([usr]) in ([x],[y],[z])")
 			investigate_log("increased to <font color='red'>[strength]</font> by [usr.key]","singulo")
 		strength_change()
@@ -126,7 +126,7 @@
 		if(strength < 0)
 			strength = 0
 		else
-			message_admins("PA Control Computer decreased to [strength] by [key_name(usr, usr.client)](<A HREF='?_src_=holder;adminmoreinfo=\ref[usr]'>?</A>) in ([x],[y],[z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)",0,1)
+			message_admins("PA Control Computer decreased to [strength] by [key_name(usr, usr.client)](<A HREF='byond://?_src_=holder;adminmoreinfo=\ref[usr]'>?</A>) in ([x],[y],[z] - <A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)",0,1)
 			log_game("PA Control Computer decreased to [strength] by [usr.ckey]([usr]) in ([x],[y],[z])")
 			investigate_log("decreased to <font color='green'>[strength]</font> by [usr.key]","singulo")
 		strength_change()
@@ -205,7 +205,7 @@
 /obj/machinery/particle_accelerator/control_box/toggle_power()
 	src.active = !src.active
 	investigate_log("turned [active?"<font color='red'>ON</font>":"<font color='green'>OFF</font>"] by [usr ? usr.key : "outside forces"]","singulo")
-	message_admins("PA Control Computer turned [active ?"ON":"OFF"] by [key_name(usr, usr.client)](<A HREF='?_src_=holder;adminmoreinfo=\ref[usr]'>?</A>) in ([x],[y],[z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)",0,1)
+	message_admins("PA Control Computer turned [active ?"ON":"OFF"] by [key_name(usr, usr.client)](<A HREF='byond://?_src_=holder;adminmoreinfo=\ref[usr]'>?</A>) in ([x],[y],[z] - <A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)",0,1)
 	log_game("PA Control Computer turned [active ?"ON":"OFF"] by [usr.ckey]([usr]) in ([x],[y],[z])")
 	if(src.active)
 		update_use_power(POWER_USE_ACTIVE)
@@ -232,11 +232,11 @@
 
 	var/dat = ""
 	dat += "Particle Accelerator Control Panel<BR>"
-	dat += "<A href='?src=\ref[src];close=1'>Close</A><BR><BR>"
+	dat += "<A href='byond://?src=\ref[src];close=1'>Close</A><BR><BR>"
 	dat += "Status:<BR>"
 	if(!assembled)
 		dat += "Unable to detect all parts!<BR>"
-		dat += "<A href='?src=\ref[src];scan=1'>Run Scan</A><BR><BR>"
+		dat += "<A href='byond://?src=\ref[src];scan=1'>Run Scan</A><BR><BR>"
 	else
 		dat += "All parts in place.<BR><BR>"
 		dat += "Power:"
@@ -244,9 +244,9 @@
 			dat += "On<BR>"
 		else
 			dat += "Off <BR>"
-		dat += "<A href='?src=\ref[src];togglep=1'>Toggle Power</A><BR><BR>"
+		dat += "<A href='byond://?src=\ref[src];togglep=1'>Toggle Power</A><BR><BR>"
 		dat += "Particle Strength: [src.strength] "
-		dat += "<A href='?src=\ref[src];strengthdown=1'>--</A>|<A href='?src=\ref[src];strengthup=1'>++</A><BR><BR>"
+		dat += "<A href='byond://?src=\ref[src];strengthdown=1'>--</A>|<A href='byond://?src=\ref[src];strengthup=1'>++</A><BR><BR>"
 
 	show_browser(user, dat, "window=pacontrol;size=420x500")
 	onclose(user, "pacontrol")
diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm
index 004052a0ffb..6482521407e 100644
--- a/code/modules/power/singularity/singularity.dm
+++ b/code/modules/power/singularity/singularity.dm
@@ -41,7 +41,7 @@ var/global/list/singularities = list()
 	var/found_containment = locate(/obj/effect/containment_field) in orange(30, src)
 	if(!found_containment)
 		last_warning = world.time
-		message_admins("A singulo has been created without containment fields active ([x], [y], [z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>).")
+		message_admins("A singulo has been created without containment fields active ([x], [y], [z] - <A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>).")
 	investigate_log("was created. [found_containment ? "" : "<font color='red'>No containment fields were active.</font>"]", investigation_label)
 	current_stage = GET_DECL(/decl/singularity_stage/stage_one)
 	energy = starting_energy
diff --git a/code/modules/power/smes_construction.dm b/code/modules/power/smes_construction.dm
index 54e525496c0..e685cc0e8dc 100644
--- a/code/modules/power/smes_construction.dm
+++ b/code/modules/power/smes_construction.dm
@@ -155,7 +155,7 @@
 	var/obj/item/clothing/gloves/G = h_user.get_equipped_item(slot_gloves_str)
 	if(istype(G) && G.siemens_coefficient == 0)
 		user_protected = 1
-	log_and_message_admins("SMES FAILURE: <b>[src.x]X [src.y]Y [src.z]Z</b> User: [usr.ckey], Intensity: [intensity]/100 - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>")
+	log_and_message_admins("SMES FAILURE: <b>[src.x]X [src.y]Y [src.z]Z</b> User: [usr.ckey], Intensity: [intensity]/100 - <A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>")
 
 	switch (intensity)
 		if (0 to 15)
diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm
index d6b41eab2be..c19ac1912e9 100644
--- a/code/modules/power/solar.dm
+++ b/code/modules/power/solar.dm
@@ -396,21 +396,21 @@ var/global/list/solars_list = list()
 	t += "<B><span class='highlight'>Tracking:</span></B><div class='statusDisplay'>"
 	switch(track)
 		if(0)
-			t += "<span class='linkOn'>Off</span> <A href='?src=\ref[src];track=1'>Timed</A> <A href='?src=\ref[src];track=2'>Auto</A><BR>"
+			t += "<span class='linkOn'>Off</span> <A href='byond://?src=\ref[src];track=1'>Timed</A> <A href='byond://?src=\ref[src];track=2'>Auto</A><BR>"
 		if(1)
-			t += "<A href='?src=\ref[src];track=0'>Off</A> <span class='linkOn'>Timed</span> <A href='?src=\ref[src];track=2'>Auto</A><BR>"
+			t += "<A href='byond://?src=\ref[src];track=0'>Off</A> <span class='linkOn'>Timed</span> <A href='byond://?src=\ref[src];track=2'>Auto</A><BR>"
 		if(2)
-			t += "<A href='?src=\ref[src];track=0'>Off</A> <A href='?src=\ref[src];track=1'>Timed</A> <span class='linkOn'>Auto</span><BR>"
+			t += "<A href='byond://?src=\ref[src];track=0'>Off</A> <A href='byond://?src=\ref[src];track=1'>Timed</A> <span class='linkOn'>Auto</span><BR>"
 
 	t += "Tracking Rate: [rate_control(src,"tdir","[trackrate] deg/h ([trackrate<0 ? "CCW" : "CW"])",1,30,180)]</div><BR>"
 
 	t += "<B><span class='highlight'>Connected devices:</span></B><div class='statusDisplay'>"
 
-	t += "<A href='?src=\ref[src];search_connected=1'>Search for devices</A><BR>"
+	t += "<A href='byond://?src=\ref[src];search_connected=1'>Search for devices</A><BR>"
 	t += "Solar panels : [connected_panels.len] connected<BR>"
 	t += "Solar tracker : [connected_tracker ? "<span class='good'>Found</span>" : "<span class='bad'>Not found</span>"]</div><BR>"
 
-	t += "<A href='?src=\ref[src];close=1'>Close</A>"
+	t += "<A href='byond://?src=\ref[src];close=1'>Close</A>"
 
 	var/datum/browser/written_digital/popup = new(user, "solar", name)
 	popup.set_content(t)
@@ -515,7 +515,7 @@ var/global/list/solars_list = list()
 	info = "<h1>Welcome</h1><p>At greencorps we love the environment, and space. With this package you are able to help mother nature and produce energy without any usage of fossil fuels! Singularity energy is dangerous while solar energy is safe, which is why it's better. Now here is how you setup your own solar array.</p><p>You can make a solar panel by wrenching the solar assembly onto a cable node. Adding a glass panel, reinforced or regular glass will do, will finish the construction of your solar panel. It is that easy!</p><p>Now after setting up 19 more of these solar panels you will want to create a solar tracker to keep track of our mother nature's gift, the sun. These are the same steps as before except you insert the tracker equipment circuit into the assembly before performing the final step of adding the glass. You now have a tracker! Now the last step is to add a computer to calculate the sun's movements and to send commands to the solar panels to change direction with the sun. Setting up the solar computer is the same as setting up any computer, so you should have no trouble in doing that. You do need to put a wire node under the computer, and the wire needs to be connected to the tracker.</p><p>Congratulations, you should have a working solar array. If you are having trouble, here are some tips. Make sure all solar equipment are on a cable node, even the computer. You can always deconstruct your creations if you make a mistake.</p><p>That's all to it, be safe, be green!</p>"
 
 /proc/rate_control(var/S, var/V, var/C, var/Min=1, var/Max=5, var/Limit=null) //How not to name vars
-	var/href = "<A href='?src=\ref[S];rate control=1;[V]"
+	var/href = "<A href='byond://?src=\ref[S];rate control=1;[V]"
 	var/rate = "[href]=-[Max]'>-</A>[href]=-[Min]'>-</A> [(C?C : 0)] [href]=[Min]'>+</A>[href]=[Max]'>+</A>"
 	if(Limit) return "[href]=-[Limit]'>-</A>"+rate+"[href]=[Limit]'>+</A>"
 	return rate
diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm
index 6be4303ca1b..8fb0064ca70 100644
--- a/code/modules/power/turbine.dm
+++ b/code/modules/power/turbine.dm
@@ -168,9 +168,9 @@
 
 	t += "Turbine: [round(compressor.rpm)] RPM<BR>"
 
-	t += "Starter: [ compressor.starter ? "<A href='?src=\ref[src];str=1'>Off</A> <B>On</B>" : "<B>Off</B> <A href='?src=\ref[src];str=1'>On</A>"]"
+	t += "Starter: [ compressor.starter ? "<A href='byond://?src=\ref[src];str=1'>Off</A> <B>On</B>" : "<B>Off</B> <A href='byond://?src=\ref[src];str=1'>On</A>"]"
 
-	t += "</PRE><HR><A href='?src=\ref[src];close=1'>Close</A>"
+	t += "</PRE><HR><A href='byond://?src=\ref[src];close=1'>Close</A>"
 
 	t += "</TT>"
 	show_browser(user, t, "window=turbine")
@@ -225,14 +225,14 @@
 	var/dat
 	if(src.compressor)
 		dat += {"<BR><B>Gas turbine remote control system</B><HR>
-		\nTurbine status: [ src.compressor.starter ? "<A href='?src=\ref[src];str=1'>Off</A> <B>On</B>" : "<B>Off</B> <A href='?src=\ref[src];str=1'>On</A>"]
+		\nTurbine status: [ src.compressor.starter ? "<A href='byond://?src=\ref[src];str=1'>Off</A> <B>On</B>" : "<B>Off</B> <A href='byond://?src=\ref[src];str=1'>On</A>"]
 		\n<BR>
 		\nTurbine speed: [src.compressor.rpm]rpm<BR>
 		\nPower currently being generated: [src.compressor.turbine.lastgen]W<BR>
 		\nInternal gas temperature: [src.compressor.gas_contained.temperature]K<BR>
-		\nVent doors: [ src.door_status ? "<A href='?src=\ref[src];doors=1'>Closed</A> <B>Open</B>" : "<B>Closed</B> <A href='?src=\ref[src];doors=1'>Open</A>"]
-		\n</PRE><HR><A href='?src=\ref[src];view=1'>View</A>
-		\n</PRE><HR><A href='?src=\ref[src];close=1'>Close</A>
+		\nVent doors: [ src.door_status ? "<A href='byond://?src=\ref[src];doors=1'>Closed</A> <B>Open</B>" : "<B>Closed</B> <A href='byond://?src=\ref[src];doors=1'>Open</A>"]
+		\n</PRE><HR><A href='byond://?src=\ref[src];view=1'>View</A>
+		\n</PRE><HR><A href='byond://?src=\ref[src];close=1'>Close</A>
 		\n<BR>
 		\n"}
 	else
diff --git a/code/modules/projectiles/guns/energy/temperature.dm b/code/modules/projectiles/guns/energy/temperature.dm
index 15cd979e5fd..933c6d2fff6 100644
--- a/code/modules/projectiles/guns/energy/temperature.dm
+++ b/code/modules/projectiles/guns/energy/temperature.dm
@@ -42,7 +42,7 @@
 
 	var/dat = {"<B>Freeze Gun Configuration: </B><BR>
 	Current output temperature: [temp_text]<BR>
-	Target output temperature: <A href='?src=\ref[src];temp=-100'>-</A> <A href='?src=\ref[src];temp=-10'>-</A> <A href='?src=\ref[src];temp=-1'>-</A> [current_temperature] <A href='?src=\ref[src];temp=1'>+</A> <A href='?src=\ref[src];temp=10'>+</A> <A href='?src=\ref[src];temp=100'>+</A><BR>
+	Target output temperature: <A href='byond://?src=\ref[src];temp=-100'>-</A> <A href='byond://?src=\ref[src];temp=-10'>-</A> <A href='byond://?src=\ref[src];temp=-1'>-</A> [current_temperature] <A href='byond://?src=\ref[src];temp=1'>+</A> <A href='byond://?src=\ref[src];temp=10'>+</A> <A href='byond://?src=\ref[src];temp=100'>+</A><BR>
 	"}
 
 	show_browser(user, dat, "window=freezegun;size=450x300;can_resize=1;can_close=1;can_minimize=1")
diff --git a/code/modules/projectiles/guns/projectile/dartgun.dm b/code/modules/projectiles/guns/projectile/dartgun.dm
index 16089ed5eaf..9ce230085f7 100644
--- a/code/modules/projectiles/guns/projectile/dartgun.dm
+++ b/code/modules/projectiles/guns/projectile/dartgun.dm
@@ -113,12 +113,12 @@
 					var/decl/material/R = GET_DECL(rtype)
 					dat += "<br>    [REAGENT_VOLUME(B.reagents, rtype)] units of [R.get_reagent_name(B.reagents)], "
 				if(B in mixing)
-					dat += "<A href='?src=\ref[src];stop_mix=[i]'><font color='green'>Mixing</font></A> "
+					dat += "<A href='byond://?src=\ref[src];stop_mix=[i]'><font color='green'>Mixing</font></A> "
 				else
-					dat += "<A href='?src=\ref[src];mix=[i]'><font color='red'>Not mixing</font></A> "
+					dat += "<A href='byond://?src=\ref[src];mix=[i]'><font color='red'>Not mixing</font></A> "
 			else
 				dat += "nothing."
-			dat += " \[<A href='?src=\ref[src];eject=[i]'>Eject</A>\]<br>"
+			dat += " \[<A href='byond://?src=\ref[src];eject=[i]'>Eject</A>\]<br>"
 
 	if(ammo_magazine)
 		var/stored_ammo_count = ammo_magazine?.get_stored_ammo_count()
@@ -126,9 +126,9 @@
 			dat += "The dart cartridge has [stored_ammo_count] shot\s remaining."
 		else
 			dat += "<font color='red'>The dart cartridge is empty!</font>"
-		dat += " \[<A href='?src=\ref[src];eject_cart=1'>Eject</A>\]<br>"
+		dat += " \[<A href='byond://?src=\ref[src];eject_cart=1'>Eject</A>\]<br>"
 
-	dat += "<br>\[<A href='?src=\ref[src];refresh=1'>Refresh</A>\]"
+	dat += "<br>\[<A href='byond://?src=\ref[src];refresh=1'>Refresh</A>\]"
 
 	var/datum/browser/popup = new(user, "dartgun", "[src] mixing control")
 	popup.set_content(jointext(dat,null))
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index 39aca0bc1ab..13e9eb97816 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -194,7 +194,7 @@
 			#define MAX_PILL_SPRITE 25 //max icon state of the pill sprites
 			var/dat = "<table>"
 			for(var/i = 1 to MAX_PILL_SPRITE)
-				dat += "<tr><td><a href=\"?src=\ref[src]&pill_sprite=[i]\"><img src=\"pill[i].png\" /></a></td></tr>"
+				dat += "<tr><td><a href=\"byond://?src=\ref[src]&pill_sprite=[i]\"><img src=\"pill[i].png\" /></a></td></tr>"
 			dat += "</table>"
 			show_browser(user, dat, "window=chem_master")
 			return
@@ -226,7 +226,7 @@
 		. += "Blood Type: [LAZYACCESS(blood_data, "blood_type")]<br>DNA: [LAZYACCESS(blood_data, "blood.DNA")]"
 	else
 		. += "[reagent.lore_text]"
-	. += "<BR><BR><BR><A href='?src=\ref[src];main=1'>(Back)</A>"
+	. += "<BR><BR><BR><A href='byond://?src=\ref[src];main=1'>(Back)</A>"
 	. = JOINTEXT(.)
 
 /obj/machinery/chem_master/proc/create_bottle(mob/user)
@@ -261,16 +261,16 @@
 	if(!beaker)
 		dat += "Please insert beaker.<BR>"
 		if(loaded_pill_bottle?.storage)
-			dat += "<A href='?src=\ref[src];ejectp=1'>Eject Pill Bottle \[[loaded_pill_bottle.contents.len]/[loaded_pill_bottle.storage.max_storage_space]\]</A><BR><BR>"
+			dat += "<A href='byond://?src=\ref[src];ejectp=1'>Eject Pill Bottle \[[loaded_pill_bottle.contents.len]/[loaded_pill_bottle.storage.max_storage_space]\]</A><BR><BR>"
 		else
 			dat += "No pill bottle inserted.<BR><BR>"
-		dat += "<A href='?src=\ref[src];close=1'>Close</A>"
+		dat += "<A href='byond://?src=\ref[src];close=1'>Close</A>"
 	else
 		var/datum/reagents/R = beaker.reagents
-		dat += "<A href='?src=\ref[src];eject=1'>Eject beaker and Clear Buffer</A><BR>"
-		dat += "Toggle purification mode: <A href='?src=\ref[src];toggle_sloppy=1'>[sloppy ? "Quick" : "Thorough"]</A><BR>"
+		dat += "<A href='byond://?src=\ref[src];eject=1'>Eject beaker and Clear Buffer</A><BR>"
+		dat += "Toggle purification mode: <A href='byond://?src=\ref[src];toggle_sloppy=1'>[sloppy ? "Quick" : "Thorough"]</A><BR>"
 		if(loaded_pill_bottle?.storage)
-			dat += "<A href='?src=\ref[src];ejectp=1'>Eject Pill Bottle \[[loaded_pill_bottle.contents.len]/[loaded_pill_bottle.storage.max_storage_space]\]</A><BR><BR>"
+			dat += "<A href='byond://?src=\ref[src];ejectp=1'>Eject Pill Bottle \[[loaded_pill_bottle.contents.len]/[loaded_pill_bottle.storage.max_storage_space]\]</A><BR><BR>"
 		else
 			dat += "No pill bottle inserted.<BR><BR>"
 		if(!R.total_volume)
@@ -280,24 +280,24 @@
 			for(var/rtype in R.reagent_volumes)
 				var/decl/material/G = GET_DECL(rtype)
 				dat += "[G.use_name], [REAGENT_VOLUME(R, rtype)] Units - "
-				dat += "<A href='?src=\ref[src];analyze=\ref[G]'>(Analyze)</A> "
-				dat += "<A href='?src=\ref[src];add=\ref[G];amount=1'>(1)</A> "
-				dat += "<A href='?src=\ref[src];add=\ref[G];amount=5'>(5)</A> "
-				dat += "<A href='?src=\ref[src];add=\ref[G];amount=10'>(10)</A> "
-				dat += "<A href='?src=\ref[src];add=\ref[G];amount=[REAGENT_VOLUME(R, rtype)]'>(All)</A> "
-				dat += "<A href='?src=\ref[src];addcustom=\ref[G]'>(Custom)</A><BR>"
-
-		dat += "<HR>Transfer to <A href='?src=\ref[src];toggle=1'>[(!mode ? "disposal" : "beaker")]:</A><BR>"
+				dat += "<A href='byond://?src=\ref[src];analyze=\ref[G]'>(Analyze)</A> "
+				dat += "<A href='byond://?src=\ref[src];add=\ref[G];amount=1'>(1)</A> "
+				dat += "<A href='byond://?src=\ref[src];add=\ref[G];amount=5'>(5)</A> "
+				dat += "<A href='byond://?src=\ref[src];add=\ref[G];amount=10'>(10)</A> "
+				dat += "<A href='byond://?src=\ref[src];add=\ref[G];amount=[REAGENT_VOLUME(R, rtype)]'>(All)</A> "
+				dat += "<A href='byond://?src=\ref[src];addcustom=\ref[G]'>(Custom)</A><BR>"
+
+		dat += "<HR>Transfer to <A href='byond://?src=\ref[src];toggle=1'>[(!mode ? "disposal" : "beaker")]:</A><BR>"
 		if(reagents.total_volume)
 			for(var/rtype in reagents.reagent_volumes)
 				var/decl/material/N = GET_DECL(rtype)
 				dat += "[N.use_name], [REAGENT_VOLUME(reagents, rtype)] Units - "
-				dat += "<A href='?src=\ref[src];analyze=\ref[N]'>(Analyze)</A> "
-				dat += "<A href='?src=\ref[src];remove=\ref[N];amount=1'>(1)</A> "
-				dat += "<A href='?src=\ref[src];remove=\ref[N];amount=5'>(5)</A> "
-				dat += "<A href='?src=\ref[src];remove=\ref[N];amount=10'>(10)</A> "
-				dat += "<A href='?src=\ref[src];remove=\ref[N];amount=[REAGENT_VOLUME(reagents, rtype)]'>(All)</A> "
-				dat += "<A href='?src=\ref[src];removecustom=\ref[N]'>(Custom)</A><BR>"
+				dat += "<A href='byond://?src=\ref[src];analyze=\ref[N]'>(Analyze)</A> "
+				dat += "<A href='byond://?src=\ref[src];remove=\ref[N];amount=1'>(1)</A> "
+				dat += "<A href='byond://?src=\ref[src];remove=\ref[N];amount=5'>(5)</A> "
+				dat += "<A href='byond://?src=\ref[src];remove=\ref[N];amount=10'>(10)</A> "
+				dat += "<A href='byond://?src=\ref[src];remove=\ref[N];amount=[REAGENT_VOLUME(reagents, rtype)]'>(All)</A> "
+				dat += "<A href='byond://?src=\ref[src];removecustom=\ref[N]'>(Custom)</A><BR>"
 		else
 			dat += "Empty<BR>"
 		dat += extra_options()
@@ -307,11 +307,11 @@
 //Use to add extra stuff to the end of the menu.
 /obj/machinery/chem_master/proc/extra_options()
 	. = list()
-	. += "<HR><BR><A href='?src=\ref[src];createpill=1'>Create pill (30 units max)</A><a href=\"?src=\ref[src]&change_pill=1\"><img src=\"pill[pillsprite].png\" /></a><BR>"
-	. += "<A href='?src=\ref[src];createpill_multiple=1'>Create multiple pills</A><BR>"
-	. += "<A href='?src=\ref[src];createbottle=1'>Create bottle (60 units max)</A>"
-	. += "<BR><A href='?src=\ref[src];label_color=1'>Bottle Label Color:</a><span style='color:[bottle_label_color];border: 1px solid black;'>\t▉</span>"
-	. += "<BR><A href='?src=\ref[src];lid_color=1'>Bottle Lid Color:</a><span style='color:[bottle_lid_color];border: 1px solid black;'>\t▉</span>"
+	. += "<HR><BR><A href='byond://?src=\ref[src];createpill=1'>Create pill (30 units max)</A><a href=\"byond://?src=\ref[src]&change_pill=1\"><img src=\"pill[pillsprite].png\" /></a><BR>"
+	. += "<A href='byond://?src=\ref[src];createpill_multiple=1'>Create multiple pills</A><BR>"
+	. += "<A href='byond://?src=\ref[src];createbottle=1'>Create bottle (60 units max)</A>"
+	. += "<BR><A href='byond://?src=\ref[src];label_color=1'>Bottle Label Color:</a><span style='color:[bottle_label_color];border: 1px solid black;'>\t▉</span>"
+	. += "<BR><A href='byond://?src=\ref[src];lid_color=1'>Bottle Lid Color:</a><span style='color:[bottle_lid_color];border: 1px solid black;'>\t▉</span>"
 	return JOINTEXT(.)
 
 /obj/machinery/chem_master/condimaster
@@ -326,4 +326,4 @@
 	reagents.trans_to_obj(P,50)
 
 /obj/machinery/chem_master/condimaster/extra_options()
-	return "<A href='?src=\ref[src];createbottle=1'>Create bottle (50 units max)</A>"
+	return "<A href='byond://?src=\ref[src];createbottle=1'>Create bottle (50 units max)</A>"
diff --git a/code/modules/reagents/heat_sources/_heat_source.dm b/code/modules/reagents/heat_sources/_heat_source.dm
index afd89161d21..dfc9f92aa5d 100644
--- a/code/modules/reagents/heat_sources/_heat_source.dm
+++ b/code/modules/reagents/heat_sources/_heat_source.dm
@@ -141,21 +141,21 @@
 	dat += "<tr><td>Target temperature:</td><td>"
 
 	if(target_temperature > min_temperature)
-		dat += "<a href='?src=\ref[src];adjust_temperature=-[heating_power]'>-</a> "
+		dat += "<a href='byond://?src=\ref[src];adjust_temperature=-[heating_power]'>-</a> "
 
 	dat += "[target_temperature - T0C]C"
 
 	if(target_temperature < max_temperature)
-		dat += " <a href='?src=\ref[src];adjust_temperature=[heating_power]'>+</a>"
+		dat += " <a href='byond://?src=\ref[src];adjust_temperature=[heating_power]'>+</a>"
 
 	dat += "</td></tr>"
 
 	dat += "<tr><td>Current temperature:</td><td>[FLOOR(temperature - T0C)]C</td></tr>"
 
 	dat += "<tr><td>Loaded container:</td>"
-	dat += "<td>[container ? "[container.name] ([FLOOR(container.temperature - T0C)]C) <a href='?src=\ref[src];remove_container=1'>Remove</a>" : "None."]</td></tr>"
+	dat += "<td>[container ? "[container.name] ([FLOOR(container.temperature - T0C)]C) <a href='byond://?src=\ref[src];remove_container=1'>Remove</a>" : "None."]</td></tr>"
 
-	dat += "<tr><td>Switched:</td><td><a href='?src=\ref[src];toggle_power=1'>[use_power == POWER_USE_ACTIVE ? "On" : "Off"]</a></td></tr>"
+	dat += "<tr><td>Switched:</td><td><a href='byond://?src=\ref[src];toggle_power=1'>[use_power == POWER_USE_ACTIVE ? "On" : "Off"]</a></td></tr>"
 	dat += "</table>"
 
 	var/datum/browser/popup = new(user, "\ref[src]-reagent_temperature_window", "[capitalize(name)]")
diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm
index fe04dadb6f1..6e69142d458 100644
--- a/code/modules/reagents/reagent_containers/borghydro.dm
+++ b/code/modules/reagents/reagent_containers/borghydro.dm
@@ -94,7 +94,7 @@
 		if(mode == i)
 			t += "<b>[reagent_names[i]]</b>"
 		else
-			t += "<a href='?src=\ref[src];reagent_index=[i]'>[reagent_names[i]]</a>"
+			t += "<a href='byond://?src=\ref[src];reagent_index=[i]'>[reagent_names[i]]</a>"
 	t = "Available reagents: [t]."
 	to_chat(user, t)
 
diff --git a/code/modules/recycling/destination_tagger.dm b/code/modules/recycling/destination_tagger.dm
index ab74cb34715..5953b1e5268 100644
--- a/code/modules/recycling/destination_tagger.dm
+++ b/code/modules/recycling/destination_tagger.dm
@@ -29,7 +29,7 @@
 
 	var/dat = "<tt><center><h1><b>TagMaster 2.3</b></h1></center><br>"
 	dat += "<div class='item'>"
-	dat += "<div class='itemLabel'>Current Selection:</div> <div class='itemContents'><a href='?src=\ref[src];input_tag=1'>[current_tag ? current_tag : "None"]</a></div>"
+	dat += "<div class='itemLabel'>Current Selection:</div> <div class='itemContents'><a href='byond://?src=\ref[src];input_tag=1'>[current_tag ? current_tag : "None"]</a></div>"
 	dat += "</div>"
 
 	dat += "<h4>Tag History:</h4>"
@@ -38,7 +38,7 @@
 	for(var/prevdest in last_used_tags)
 		if(cnt % 4 == 0)
 			dat += "</tr><tr>"
-		dat += "<td><a href='?src=\ref[src];set_tag=[prevdest]'>[prevdest]</a></td>"
+		dat += "<td><a href='byond://?src=\ref[src];set_tag=[prevdest]'>[prevdest]</a></td>"
 		++cnt
 	dat += "</tr></table></tt>"
 
diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm
index 380350ea368..731fd5169f2 100644
--- a/code/modules/recycling/disposal.dm
+++ b/code/modules/recycling/disposal.dm
@@ -231,18 +231,18 @@ var/global/list/diversion_junctions = list()
 
 	if(!ai)  // AI can't pull flush handle
 		if(flush)
-			dat += "Disposal handle: <A href='?src=\ref[src];handle=0'>Disengage</A> <B>Engaged</B>"
+			dat += "Disposal handle: <A href='byond://?src=\ref[src];handle=0'>Disengage</A> <B>Engaged</B>"
 		else
-			dat += "Disposal handle: <B>Disengaged</B> <A href='?src=\ref[src];handle=1'>Engage</A>"
+			dat += "Disposal handle: <B>Disengaged</B> <A href='byond://?src=\ref[src];handle=1'>Engage</A>"
 
-		dat += "<BR><HR><A href='?src=\ref[src];eject=1'>Eject contents</A><HR>"
+		dat += "<BR><HR><A href='byond://?src=\ref[src];eject=1'>Eject contents</A><HR>"
 
 	if(mode <= 0)
-		dat += "Pump: <B>Off</B> <A href='?src=\ref[src];pump=1'>On</A><BR>"
+		dat += "Pump: <B>Off</B> <A href='byond://?src=\ref[src];pump=1'>On</A><BR>"
 	else if(mode == 1)
-		dat += "Pump: <A href='?src=\ref[src];pump=0'>Off</A> <B>On</B> (pressurizing)<BR>"
+		dat += "Pump: <A href='byond://?src=\ref[src];pump=0'>Off</A> <B>On</B> (pressurizing)<BR>"
 	else
-		dat += "Pump: <A href='?src=\ref[src];pump=0'>Off</A> <B>On</B> (idle)<BR>"
+		dat += "Pump: <A href='byond://?src=\ref[src];pump=0'>Off</A> <B>On</B> (idle)<BR>"
 
 	var/per = 100* air_contents.return_pressure() / (SEND_PRESSURE)
 
diff --git a/code/modules/security levels/keycard_authentication.dm b/code/modules/security levels/keycard_authentication.dm
index 6af4ec58fdc..3e65d1a901e 100644
--- a/code/modules/security levels/keycard_authentication.dm	
+++ b/code/modules/security levels/keycard_authentication.dm	
@@ -75,21 +75,21 @@
 			dat += "<li>Cannot modify the alert level at this time: [security_state.severe_security_level.name] engaged.</li>"
 		else
 			if(security_state.current_security_level == security_state.high_security_level)
-				dat += "<li><A href='?src=\ref[src];triggerevent=Revert alert'>Disengage [security_state.high_security_level.name]</A></li>"
+				dat += "<li><A href='byond://?src=\ref[src];triggerevent=Revert alert'>Disengage [security_state.high_security_level.name]</A></li>"
 			else
-				dat += "<li><A href='?src=\ref[src];triggerevent=Red alert'>Engage [security_state.high_security_level.name]</A></li>"
+				dat += "<li><A href='byond://?src=\ref[src];triggerevent=Red alert'>Engage [security_state.high_security_level.name]</A></li>"
 
 		if(!get_config_value(/decl/config/toggle/ert_admin_call_only))
-			dat += "<li><A href='?src=\ref[src];triggerevent=Emergency Response Team'>Emergency Response Team</A></li>"
+			dat += "<li><A href='byond://?src=\ref[src];triggerevent=Emergency Response Team'>Emergency Response Team</A></li>"
 
-		dat += "<li><A href='?src=\ref[src];triggerevent=Grant Emergency Maintenance Access'>Grant Emergency Maintenance Access</A></li>"
-		dat += "<li><A href='?src=\ref[src];triggerevent=Revoke Emergency Maintenance Access'>Revoke Emergency Maintenance Access</A></li>"
-		dat += "<li><A href='?src=\ref[src];triggerevent=Grant Nuclear Authorization Code'>Grant Nuclear Authorization Code</A></li>"
+		dat += "<li><A href='byond://?src=\ref[src];triggerevent=Grant Emergency Maintenance Access'>Grant Emergency Maintenance Access</A></li>"
+		dat += "<li><A href='byond://?src=\ref[src];triggerevent=Revoke Emergency Maintenance Access'>Revoke Emergency Maintenance Access</A></li>"
+		dat += "<li><A href='byond://?src=\ref[src];triggerevent=Grant Nuclear Authorization Code'>Grant Nuclear Authorization Code</A></li>"
 		dat += "</ul>"
 		show_browser(user, dat, "window=keycard_auth;size=500x250")
 	if(screen == 2)
 		dat += "Please swipe your card to authorize the following event: <b>[event]</b>"
-		dat += "<p><A href='?src=\ref[src];reset=1'>Back</A>"
+		dat += "<p><A href='byond://?src=\ref[src];reset=1'>Back</A>"
 		show_browser(user, dat, "window=keycard_auth;size=500x250")
 	return
 
diff --git a/code/modules/spells/artifacts/spellbound_servants.dm b/code/modules/spells/artifacts/spellbound_servants.dm
index f9306397e93..2c8f93815c8 100644
--- a/code/modules/spells/artifacts/spellbound_servants.dm
+++ b/code/modules/spells/artifacts/spellbound_servants.dm
@@ -208,7 +208,7 @@
 	var/decl/ghosttrap/G = GET_DECL(/decl/ghosttrap/wizard_familiar)
 	for(var/mob/observer/ghost/ghost in global.player_list)
 		if(G.assess_candidate(ghost,null,FALSE))
-			to_chat(ghost, "[SPAN_NOTICE("<b>A wizard is requesting a Spell-Bound Servant!</b>")] (<a href='?src=\ref[src];master=\ref[user]'>Join</a>)")
+			to_chat(ghost, "[SPAN_NOTICE("<b>A wizard is requesting a Spell-Bound Servant!</b>")] (<a href='byond://?src=\ref[src];master=\ref[user]'>Join</a>)")
 	return TRUE
 
 /obj/effect/cleanable/spellbound/CanUseTopic(var/mob)
diff --git a/code/modules/tools/archetypes/tool_item.dm b/code/modules/tools/archetypes/tool_item.dm
index 46bdb6f427c..0f3310a89a2 100644
--- a/code/modules/tools/archetypes/tool_item.dm
+++ b/code/modules/tools/archetypes/tool_item.dm
@@ -73,7 +73,7 @@
 		var/decl/tool_archetype/tool_archetype = GET_DECL(tool_type)
 		var/tool_string = tool_archetype.get_tool_quality_descriptor(tool.tool_values[tool_type])
 		if(tool_archetype.codex_key)
-			tool_string = "<a href='?src=\ref[SScodex];show_examined_info=[tool_archetype.codex_key];show_to=\ref[user]'>[tool_string]</a>"
+			tool_string = "<a href='byond://?src=\ref[SScodex];show_examined_info=[tool_archetype.codex_key];show_to=\ref[user]'>[tool_string]</a>"
 		LAZYADD(tool_strings, tool_string)
 	if(length(tool_strings))
 		to_chat(user, "[gender == PLURAL ? "They look" : "It looks"] like [english_list(tool_strings)].")
diff --git a/code/modules/turbolift/turbolift_console.dm b/code/modules/turbolift/turbolift_console.dm
index e570d0421ea..8d34b659309 100644
--- a/code/modules/turbolift/turbolift_console.dm
+++ b/code/modules/turbolift/turbolift_console.dm
@@ -110,15 +110,15 @@
 		var/datum/turbolift_floor/floor = lift.floors[i]
 		var/label = floor.label? floor.label : "Level #[i]"
 		dat += "<font color = '[(floor in lift.queued_floors) ? COLOR_YELLOW : COLOR_WHITE]'>"
-		dat += "<a href='?src=\ref[src];move_to_floor=["\ref[floor]"]'>[label]</a>: [floor.name]</font><br>"
+		dat += "<a href='byond://?src=\ref[src];move_to_floor=["\ref[floor]"]'>[label]</a>: [floor.name]</font><br>"
 
 	dat += "<hr>"
 	if(LAZYLEN(lift.doors))
 		if(lift.doors_are_open())
-			dat += "<a href='?src=\ref[src];close_doors=1'>Close Doors</a><br>"
+			dat += "<a href='byond://?src=\ref[src];close_doors=1'>Close Doors</a><br>"
 		else
-			dat += "<a href='?src=\ref[src];open_doors=1'>Open Doors</a><br>"
-	dat += "<a href='?src=\ref[src];emergency_stop=1'>Emergency Stop</a>"
+			dat += "<a href='byond://?src=\ref[src];open_doors=1'>Open Doors</a><br>"
+	dat += "<a href='byond://?src=\ref[src];emergency_stop=1'>Emergency Stop</a>"
 	dat += "<hr></body></html>"
 
 	var/datum/browser/written_digital/popup = new(user, "turbolift_panel", "Lift Panel", 230, 260)
diff --git a/code/modules/vehicles/cargo_train.dm b/code/modules/vehicles/cargo_train.dm
index 381667436a7..d2ab6861d6d 100644
--- a/code/modules/vehicles/cargo_train.dm
+++ b/code/modules/vehicles/cargo_train.dm
@@ -168,7 +168,7 @@
 		to_chat(D, "<span class='danger'>You ran over \the [victim]!</span>")
 		visible_message("<span class='danger'>\The [src] ran over \the [victim]!</span>")
 		attack_log += text("\[[time_stamp()]\] <font color='red'>ran over [victim.name] ([victim.ckey]), driven by [D.name] ([D.ckey])</font>")
-		msg_admin_attack("[D.name] ([D.ckey]) ran over [victim.name] ([victim.ckey]). (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>)")
+		msg_admin_attack("[D.name] ([D.ckey]) ran over [victim.name] ([victim.ckey]). (<A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>)")
 	else
 		attack_log += text("\[[time_stamp()]\] <font color='red'>ran over [victim.name] ([victim.ckey])</font>")
 
diff --git a/code/modules/vehicles/train.dm b/code/modules/vehicles/train.dm
index 23975a13955..3d82b225205 100644
--- a/code/modules/vehicles/train.dm
+++ b/code/modules/vehicles/train.dm
@@ -67,7 +67,7 @@
 			if(ishuman(load))
 				var/mob/living/D = load
 				to_chat(D, "<span class='warning'>You hit [M]!</span>")
-				msg_admin_attack("[D.name] ([D.ckey]) hit [M.name] ([M.ckey]) with [src]. (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>)")
+				msg_admin_attack("[D.name] ([D.ckey]) hit [M.name] ([M.ckey]) with [src]. (<A HREF='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>)")
 
 
 //-------------------------------------------
diff --git a/code/modules/xenoarcheaology/artifacts/standalone/replicator.dm b/code/modules/xenoarcheaology/artifacts/standalone/replicator.dm
index 53a2d7655a1..ec01c88cba6 100644
--- a/code/modules/xenoarcheaology/artifacts/standalone/replicator.dm
+++ b/code/modules/xenoarcheaology/artifacts/standalone/replicator.dm
@@ -121,7 +121,7 @@
 	var/dat = "The control panel displays an incomprehensible selection of controls, many with unusual markings or text around them.<br>"
 	dat += "<br>"
 	for(var/index=1, index<=construction.len, index++)
-		dat += "<A href='?src=\ref[src];activate=[index]'>\[[construction[index]]\]</a><br>"
+		dat += "<A href='byond://?src=\ref[src];activate=[index]'>\[[construction[index]]\]</a><br>"
 
 	show_browser(user, dat, "window=alien_replicator")
 
diff --git a/code/modules/xenoarcheaology/tools/depth_scanner.dm b/code/modules/xenoarcheaology/tools/depth_scanner.dm
index 1b497372ec9..a26253156a0 100644
--- a/code/modules/xenoarcheaology/tools/depth_scanner.dm
+++ b/code/modules/xenoarcheaology/tools/depth_scanner.dm
@@ -72,7 +72,7 @@
 /obj/item/depth_scanner/interact(var/mob/user)
 	var/dat = "<b>Coordinates with positive matches</b><br>"
 
-	dat += "<A href='?src=\ref[src];clear=0'>== Clear all ==</a><br>"
+	dat += "<A href='byond://?src=\ref[src];clear=0'>== Clear all ==</a><br>"
 
 	if(current)
 		dat += "Time: [current.time]<br>"
@@ -84,7 +84,7 @@
 			dat += "Anomaly material: [responsive_carriers[current.material]]<br>"
 		else
 			dat += "Anomaly material: Unknown<br>"
-		dat += "<A href='?src=\ref[src];clear=[current.record_index]'>clear entry</a><br>"
+		dat += "<A href='byond://?src=\ref[src];clear=[current.record_index]'>clear entry</a><br>"
 	else
 		dat += "Select an entry from the list<br>"
 		dat += "<br><br><br><br>"
@@ -92,12 +92,12 @@
 	if(positive_locations.len)
 		for(var/index = 1 to positive_locations.len)
 			var/datum/depth_scan/D = positive_locations[index]
-			dat += "<A href='?src=\ref[src];select=[index]'>[D.time], coords: [D.coords]</a><br>"
+			dat += "<A href='byond://?src=\ref[src];select=[index]'>[D.time], coords: [D.coords]</a><br>"
 	else
 		dat += "No entries recorded."
 
 	dat += "<hr>"
-	dat += "<A href='?src=\ref[src];refresh=1'>Refresh</a><br>"
+	dat += "<A href='byond://?src=\ref[src];refresh=1'>Refresh</a><br>"
 	var/datum/browser/popup = new(user, "depth_scanner", "Results", 300, 500)
 	popup.set_content(dat)
 	popup.open()
diff --git a/html/changelog.html b/html/changelog.html
index e2f23aa92d6..8373e672193 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -156,13 +156,6 @@ <h3 class="author">MistakeNot4892 updated:</h3>
 			<ul class="changes bgimages16">
 				<li class="tweak">Non-high vis accessories on clothes will show as part of the examine string.</li>
 			</ul>
-
-			<h2 class="date">21 April 2024</h2>
-			<h3 class="author">MistakeNot4892 updated:</h3>
-			<ul class="changes bgimages16">
-				<li class="tweak">Running to exhaustion will now cause a mood stressor.</li>
-				<li class="tweak">Sleeping in a bed for thirty seconds will remove exhaustion and add a well rested mood boost.</li>
-			</ul>
 </div>
 </td></tr></table>
 </body>
diff --git a/mods/content/matchmaking/matchmaker.dm b/mods/content/matchmaking/matchmaker.dm
index 75327f3f35c..3dbf0f2ff3d 100644
--- a/mods/content/matchmaking/matchmaker.dm
+++ b/mods/content/matchmaking/matchmaker.dm
@@ -193,11 +193,11 @@ var/global/datum/matchmaker/matchmaker = new()
 	for(var/datum/relation/R in relations)
 		dat += "<b>[R.other.finalized ? "\[F\] " : ""][R.other.holder]</b>, [R.other.holder.role_alt_title ? R.other.holder.role_alt_title : R.other.holder.assigned_role]."
 		if (!R.finalized)
-			dat += " <a href='?src=\ref[src];del_relation=\ref[R]'>Remove</a>"
+			dat += " <a href='byond://?src=\ref[src];del_relation=\ref[R]'>Remove</a>"
 			editable = 1
 		dat += "<br>[R.desc]"
 		dat += "<br>"
-		dat += "<b>Things they know about you:</b>[!R.finalized ?"<a href='?src=\ref[src];info_relation=\ref[R]'>Edit</a>" : ""]<br>[R.info ? "[R.info]" : " Nothing specific."]"
+		dat += "<b>Things they know about you:</b>[!R.finalized ?"<a href='byond://?src=\ref[src];info_relation=\ref[R]'>Edit</a>" : ""]<br>[R.info ? "[R.info]" : " Nothing specific."]"
 		if(R.other.info)
 			dat += "<br><b>Things you know about them:</b><br>[R.other.info]<br>[R.other.holder.gen_relations_info]"
 		dat += "<hr>"
@@ -209,7 +209,7 @@ var/global/datum/matchmaker/matchmaker = new()
 
 	var/datum/browser/popup = new(usr, "relations", "Relationship Info")
 	if(editable)
-		dat.Insert(1,"<a href='?src=\ref[src];relations_close=1;'>Finalize edits and close</a><br>")
+		dat.Insert(1,"<a href='byond://?src=\ref[src];relations_close=1;'>Finalize edits and close</a><br>")
 		popup.set_window_options("focus=0;can_close=0;can_minimize=1;can_maximize=0;can_resize=1;titlebar=1;")
 	popup.set_content(jointext(dat,null))
 	popup.open()
diff --git a/mods/content/matchmaking/relations.dm b/mods/content/matchmaking/relations.dm
index 51d4c76e4d6..74e11a360d2 100644
--- a/mods/content/matchmaking/relations.dm
+++ b/mods/content/matchmaking/relations.dm
@@ -29,7 +29,7 @@
 	.=list()
 	. += "Characters with enabled relations are paired up randomly after spawn. You can terminate relations when you first open relations info window, but after that it's final."
 	. += "<hr>"
-	. += "<br><b>What do they know about you?</b> This is the general info that all kinds of your connections would know. <a href='?src=\ref[src];relation_info=["general"]'>Edit</a>"
+	. += "<br><b>What do they know about you?</b> This is the general info that all kinds of your connections would know. <a href='byond://?src=\ref[src];relation_info=["general"]'>Edit</a>"
 	. += "<br><i>[pref.relations_info["general"] ? pref.relations_info["general"] : "Nothing specific."]</i>"
 	. += "<hr>"
 	for(var/T in subtypesof(/datum/relation))
@@ -37,12 +37,12 @@
 		. += "<b>[initial(R.name)]</b>\t"
 		if(initial(R.name) in pref.relations)
 			. += "<span class='linkOn'>On</span>"
-			. += "<a href='?src=\ref[src];relation=[initial(R.name)]'>Off</a>"
+			. += "<a href='byond://?src=\ref[src];relation=[initial(R.name)]'>Off</a>"
 		else
-			. += "<a href='?src=\ref[src];relation=[initial(R.name)]'>On</a>"
+			. += "<a href='byond://?src=\ref[src];relation=[initial(R.name)]'>On</a>"
 			. += "<span class='linkOn'>Off</span>"
 		. += "<br><i>[initial(R.desc)]</i>"
-		. += "<br><b>What do they know about you?</b><a href='?src=\ref[src];relation_info=[initial(R.name)]'>Edit</a>"
+		. += "<br><b>What do they know about you?</b><a href='byond://?src=\ref[src];relation_info=[initial(R.name)]'>Edit</a>"
 		. += "<br><i>[pref.relations_info[initial(R.name)] ? pref.relations_info[initial(R.name)] : "Nothing specific."]</i>"
 		. += "<hr>"
 	. = jointext(.,null)
diff --git a/mods/content/mouse_highlights/mouse_highlight_prefs.dm b/mods/content/mouse_highlights/mouse_highlight_prefs.dm
index eaf4daab8eb..756c25c98df 100644
--- a/mods/content/mouse_highlights/mouse_highlight_prefs.dm
+++ b/mods/content/mouse_highlights/mouse_highlight_prefs.dm
@@ -8,7 +8,7 @@ var/global/const/PREF_SHOW_HOLD_SHIFT = "While Holding Shift"
 /datum/category_item/player_setup_item/player_global/ui/OnTopic(var/href,var/list/href_list, var/mob/user)
 	. = ..()
 	if(.)
-		return 
+		return
 	if(href_list["select_mouseover_color"])
 		var/UI_mouseover_color_new = input(user, "Choose mouseover color, dark colors are not recommended!", "Global Preference", pref.UI_mouseover_color) as color|null
 		if(isnull(UI_mouseover_color_new) || !CanUseTopic(user)) return TOPIC_NOACTION
@@ -27,11 +27,11 @@ var/global/const/PREF_SHOW_HOLD_SHIFT = "While Holding Shift"
 /datum/category_item/player_setup_item/player_global/ui/get_ui_table(var/mob/user)
 	. = ..() || list()
 	. += "<tr><td>UI Mouseover Color</td>"
-	. += "<td><a href='?src=\ref[src];select_mouseover_color=1'><b>[pref.UI_mouseover_color]</b></a></td>"
+	. += "<td><a href='byond://?src=\ref[src];select_mouseover_color=1'><b>[pref.UI_mouseover_color]</b></a></td>"
 	. += "<td><table style='display:inline;' bgcolor='[pref.UI_mouseover_color]'><tr><td>__</td></tr></table></td>"
-	. += "<td><a href='?src=\ref[src];reset=mouseover_color'>reset</a></td>"
+	. += "<td><a href='byond://?src=\ref[src];reset=mouseover_color'>reset</a></td>"
 	. += "</tr>"
 	. += "<tr><td>UI Mouseover Opacity</td>"
-	. += "<td colspan = 2><a href='?src=\ref[src];select_mouseover_alpha=1'><b>[pref.UI_mouseover_alpha]</b></a></td>"
-	. += "<td><a href='?src=\ref[src];reset=mouseover_alpha'>reset</a></td>"
+	. += "<td colspan = 2><a href='byond://?src=\ref[src];select_mouseover_alpha=1'><b>[pref.UI_mouseover_alpha]</b></a></td>"
+	. += "<td><a href='byond://?src=\ref[src];reset=mouseover_alpha'>reset</a></td>"
 	. += "</tr>"
diff --git a/mods/content/psionics/_psionics.dm b/mods/content/psionics/_psionics.dm
index 48fa276085e..9092fd88ae6 100644
--- a/mods/content/psionics/_psionics.dm
+++ b/mods/content/psionics/_psionics.dm
@@ -7,8 +7,8 @@
 	if(isliving(M))
 		var/datum/ability_handler/psionics/psi = M.get_ability_handler(/datum/ability_handler/psionics)
 		if(psi)
-			. += "<a href='?src=\ref[psi];remove_psionics=1'>Remove psionics.</a><br/><br/>"
-			. += "<a href='?src=\ref[psi];trigger_psi_latencies=1'>Trigger latencies.</a><br/>"
+			. += "<a href='byond://?src=\ref[psi];remove_psionics=1'>Remove psionics.</a><br/><br/>"
+			. += "<a href='byond://?src=\ref[psi];trigger_psi_latencies=1'>Trigger latencies.</a><br/>"
 		. += "<table width = '100%'>"
 		for(var/faculty in list(PSI_COERCION, PSI_PSYCHOKINESIS, PSI_REDACTION, PSI_ENERGISTICS))
 			var/decl/psionic_faculty/faculty_decl = SSpsi.get_faculty(faculty)
@@ -18,7 +18,7 @@
 				var/psi_title = global.psychic_ranks_to_strings[i]
 				if(i == faculty_rank)
 					psi_title = "<b>[psi_title]</b>"
-				. += "<td><a href='?src=\ref[M.mind];set_psi_faculty_rank=[i];set_psi_faculty=[faculty]'>[psi_title]</a></td>"
+				. += "<td><a href='byond://?src=\ref[M.mind];set_psi_faculty_rank=[i];set_psi_faculty=[faculty]'>[psi_title]</a></td>"
 			. += "</tr>"
 		. += "</table>"
 	else
diff --git a/mods/content/psionics/machines/psimeter.dm b/mods/content/psionics/machines/psimeter.dm
index f74249580a9..22b1de43259 100644
--- a/mods/content/psionics/machines/psimeter.dm
+++ b/mods/content/psionics/machines/psimeter.dm
@@ -33,7 +33,7 @@
 		var/found
 		for(var/mob/living/H in range(1, src))
 			found = TRUE
-			dat += "<tr><td>[H.name]</td><td><a href='?src=\ref[src];assay=\ref[H]'>Conduct Assay</a>"
+			dat += "<tr><td>[H.name]</td><td><a href='byond://?src=\ref[src];assay=\ref[H]'>Conduct Assay</a>"
 		if(!found)
 			dat += "<tr><td colspan = 2>No candidates found.</td></tr>"
 		dat += "<table>"
diff --git a/mods/content/psionics/machines/psimonitor.dm b/mods/content/psionics/machines/psimonitor.dm
index a194b5769ab..de83ed6b114 100644
--- a/mods/content/psionics/machines/psimonitor.dm
+++ b/mods/content/psionics/machines/psimonitor.dm
@@ -78,9 +78,9 @@
 	var/list/dat = list()
 	dat += "<h1>Psi Dampener Monitor</h1>"
 	if(authorized)
-		dat += "<b>[authorized]</b> <a href='?src=\ref[src];logout=1'>Logout</a>"
+		dat += "<b>[authorized]</b> <a href='byond://?src=\ref[src];logout=1'>Logout</a>"
 	else
-		dat += "<a href='?src=\ref[src];login=1'>Login</a>"
+		dat += "<a href='byond://?src=\ref[src];login=1'>Login</a>"
 
 	dat += "<h2>Active Psionic Dampeners</h2><hr>"
 	dat += "<center><table>"
@@ -93,21 +93,21 @@
 		if(implant.malfunction)
 			dat += "<td>ERROR</td><td>ERROR</td>"
 		else
-			dat += "<td>[implant.overload]%</td><td>[authorized ? "<a href='?src=\ref[src];change_mode=\ref[implant]'>[implant.psi_mode]</a>" : "[implant.psi_mode]"]</td>"
+			dat += "<td>[implant.overload]%</td><td>[authorized ? "<a href='byond://?src=\ref[src];change_mode=\ref[implant]'>[implant.psi_mode]</a>" : "[implant.psi_mode]"]</td>"
 		dat += "</tr>"
 	dat += "</table><hr></center>"
 
 	if(show_violations)
-		dat += "<h2>Psionic Control Violations <a href='?src=\ref[src];show_violations=0'>-</a></h2><hr><center><table>"
+		dat += "<h2>Psionic Control Violations <a href='byond://?src=\ref[src];show_violations=0'>-</a></h2><hr><center><table>"
 		if(psi_violations.len)
 			for(var/i =  1 to psi_violations.len)
 				var/entry = psi_violations[i]
-				dat += "<tr><td><br>[entry]</td><td>[authorized ? "<a href='?src=\ref[src];remove_violation=[i]'>Remove</a>" : ""]</td></tr>"
+				dat += "<tr><td><br>[entry]</td><td>[authorized ? "<a href='byond://?src=\ref[src];remove_violation=[i]'>Remove</a>" : ""]</td></tr>"
 		else
 			dat += "<tr><td colspan = 2>None reported.</td></tr>"
 		dat += "</table></center><hr>"
 	else
-		dat += "<h2>Psionic Control Violations <a href='?src=\ref[src];show_violations=1'>+</a></h2><hr>"
+		dat += "<h2>Psionic Control Violations <a href='byond://?src=\ref[src];show_violations=1'>+</a></h2><hr>"
 
 	var/datum/browser/written_digital/popup = new(user, "psi_monitor_\ref[src]", "Psi-Monitor")
 	popup.set_content(jointext(dat,null))
diff --git a/mods/content/psionics/system/psionics/mob/mob_assay.dm b/mods/content/psionics/system/psionics/mob/mob_assay.dm
index c0b05f74596..ad655cae3bd 100644
--- a/mods/content/psionics/system/psionics/mob/mob_assay.dm
+++ b/mods/content/psionics/system/psionics/mob/mob_assay.dm
@@ -87,7 +87,7 @@
 		dat += "[use_He_has] no notable psychic latency or operancy."
 
 	if(istype(machine))
-		dat += "<a href='?src=\ref[machine];print=1'>Print</a> <a href='?src=\ref[machine];clear=1'>Clear Buffer</a>"
+		dat += "<a href='byond://?src=\ref[machine];print=1'>Print</a> <a href='byond://?src=\ref[machine];clear=1'>Clear Buffer</a>"
 		machine.last_assay = dat
 		return
 
diff --git a/mods/content/shackles/laws_pref.dm b/mods/content/shackles/laws_pref.dm
index 84514909053..308d2342b23 100644
--- a/mods/content/shackles/laws_pref.dm
+++ b/mods/content/shackles/laws_pref.dm
@@ -47,11 +47,11 @@
 		. += "<b>Shackle: </b>"
 		if(!pref.is_shackled)
 			. += "<span class='linkOn'>Off</span>"
-			. += "<a href='?src=\ref[src];toggle_shackle=[pref.is_shackled]'>On</a>"
+			. += "<a href='byond://?src=\ref[src];toggle_shackle=[pref.is_shackled]'>On</a>"
 			. += "<br>Only shackled synthetics have laws."
 			. += "<hr>"
 		else
-			. += "<a href='?src=\ref[src];toggle_shackle=[pref.is_shackled]'>Off</a>"
+			. += "<a href='byond://?src=\ref[src];toggle_shackle=[pref.is_shackled]'>Off</a>"
 			. += "<span class='linkOn'>On</span>"
 			. += "<br>You are shackled and have laws that restrict your behaviour."
 			. += "<hr>"
@@ -64,7 +64,7 @@
 				for(var/i in 1 to pref.laws.len)
 					. += "[i]) [pref.laws[i]]<br>"
 
-			. += "Law sets: <a href='?src=\ref[src];lawsets=1'>Load Set</a><br>"
+			. += "Law sets: <a href='byond://?src=\ref[src];lawsets=1'>Load Set</a><br>"
 
 	. = jointext(.,null)
 
diff --git a/mods/gamemodes/cult/runes.dm b/mods/gamemodes/cult/runes.dm
index e8b2c869224..86434cdfa65 100644
--- a/mods/gamemodes/cult/runes.dm
+++ b/mods/gamemodes/cult/runes.dm
@@ -128,7 +128,7 @@
 	if(!cult.can_become_antag(target.mind, 1))
 		to_chat(target, SPAN_DANGER("Are you going insane?"))
 	else
-		to_chat(target, SPAN_OCCULT("Do you want to join the cult of Nar'Sie? You can choose to ignore offer... <a href='?src=\ref[src];join=1'>Join the cult</a>."))
+		to_chat(target, SPAN_OCCULT("Do you want to join the cult of Nar'Sie? You can choose to ignore offer... <a href='byond://?src=\ref[src];join=1'>Join the cult</a>."))
 
 	spamcheck = 1
 	spawn(40)
@@ -230,8 +230,8 @@
 	for(var/obj/effect/rune/teleport/T in cult.teleport_runes)
 		if(T == src)
 			continue
-		t += "<a href='?src=\ref[src];target=\ref[T]'>[T.destination]</a>"
-	to_chat(user, "Teleport runes: [english_list(t, nothing_text = "no other runes exist")]... or <a href='?src=\ref[src];leave=1'>return from this rune</a>.")
+		t += "<a href='byond://?src=\ref[src];target=\ref[T]'>[T.destination]</a>"
+	to_chat(user, "Teleport runes: [english_list(t, nothing_text = "no other runes exist")]... or <a href='byond://?src=\ref[src];leave=1'>return from this rune</a>.")
 
 /obj/effect/rune/teleport/proc/leaveRune(var/mob/living/user)
 	if(user.loc != src)
diff --git a/mods/gamemodes/cult/special_role.dm b/mods/gamemodes/cult/special_role.dm
index fe7a4401341..4f25ddeb6d2 100644
--- a/mods/gamemodes/cult/special_role.dm
+++ b/mods/gamemodes/cult/special_role.dm
@@ -134,7 +134,7 @@
 	if(!iscultist(M) || !M.mind)
 		return
 
-	to_chat(M, "<span class='cult'>Do you want to abandon the cult of Nar'Sie? <a href='?src=\ref[src];confirmleave=1'>ACCEPT</a></span>")
+	to_chat(M, "<span class='cult'>Do you want to abandon the cult of Nar'Sie? <a href='byond://?src=\ref[src];confirmleave=1'>ACCEPT</a></span>")
 
 /decl/special_role/cultist/Topic(href, href_list)
 	if(href_list["confirmleave"])
diff --git a/mods/gamemodes/deity/forms/starlight/structures.dm b/mods/gamemodes/deity/forms/starlight/structures.dm
index ed147b4db70..2f9e602e98c 100644
--- a/mods/gamemodes/deity/forms/starlight/structures.dm
+++ b/mods/gamemodes/deity/forms/starlight/structures.dm
@@ -104,7 +104,7 @@
 	html += "<table><tr><td>Name</td><td>Description</td></tr>"
 	for(var/a in possible_forms)
 		var/list/form = possible_forms[a]
-		html += "<tr><td><a href='?src=\ref[src];spawn_type=[a]'>[a]</a></td><td>[form["description"]]</td></tr>"
+		html += "<tr><td><a href='byond://?src=\ref[src];spawn_type=[a]'>[a]</a></td><td>[form["description"]]</td></tr>"
 	html += "</table>"
 	show_browser(linked_god, jointext(html, null), "window=gateway")
 
@@ -142,7 +142,7 @@
 			to_chat(usr, SPAN_NOTICE("\The [src] is now looking for a [looking_for]."))
 			for(var/l in get_turf(linked_god))
 				if(istype(l, /mob/living/starlight_soul))
-					to_chat(l, "<span class='notice'>\The [src] is looking for a soul to become a [looking_for]. Accept?</span> (<a href='?\ref[src];accept=[looking_for]'>Yes</a>)")
+					to_chat(l, "<span class='notice'>\The [src] is looking for a soul to become a [looking_for]. Accept?</span> (<a href='byond://?\ref[src];accept=[looking_for]'>Yes</a>)")
 			addtimer(CALLBACK(src, PROC_REF(stop_looking_for), FALSE), 30 SECONDS)
 		show_browser(linked_god, null, "window=gateway")
 		return TOPIC_HANDLED
diff --git a/mods/gamemodes/deity/god_cultist_role.dm b/mods/gamemodes/deity/god_cultist_role.dm
index 5085982851b..d1c5bced882 100644
--- a/mods/gamemodes/deity/god_cultist_role.dm
+++ b/mods/gamemodes/deity/god_cultist_role.dm
@@ -47,7 +47,7 @@
 	return 1
 
 /decl/special_role/godcultist/get_extra_panel_options(var/datum/mind/player)
-	return "<a href='?src=\ref[src];selectgod=\ref[player]'>\[Select Deity\]</a>"
+	return "<a href='byond://?src=\ref[src];selectgod=\ref[player]'>\[Select Deity\]</a>"
 
 /decl/special_role/godcultist/Topic(href, href_list)
 	if(..())
@@ -102,5 +102,5 @@
 
 	//Make em wait a few seconds.
 	src.visible_message("\The [src] bows their head down, muttering something.", SPAN_NOTICE("You send the message \"[msg]\" to your master."))
-	to_chat(D, "<span class='notice'>\The [src] (<A href='?src=\ref[D];jump=\ref[src];'>J</A>) prays, \"[msg]\"</span>")
+	to_chat(D, "<span class='notice'>\The [src] (<A href='byond://?src=\ref[D];jump=\ref[src];'>J</A>) prays, \"[msg]\"</span>")
 	log_and_message_admins("dprayed, \"[msg]\" to \the [key_name(D)]")
diff --git a/mods/gamemodes/deity/mobs/deity.dm b/mods/gamemodes/deity/mobs/deity.dm
index 4f3063db19e..8da6bb3ff09 100644
--- a/mods/gamemodes/deity/mobs/deity.dm
+++ b/mods/gamemodes/deity/mobs/deity.dm
@@ -102,7 +102,7 @@
 		var/icon/god_icon = icon('icons/mob/mob.dmi', initial(G.pylon_icon_state))
 		send_rsc(src,god_icon, "[god_name].png")
 		dat += {"<tr>
-					<td><a href="?src=\ref[src];form=\ref[G]">[god_name]</a></td>
+					<td><a href="byond://?src=\ref[src];form=\ref[G]">[god_name]</a></td>
 					<td><img src="[god_name].png"></td>
 					<td>[initial(G.info)]</td>
 				</tr>"}
diff --git a/mods/gamemodes/deity/mobs/phenomena/starlight.dm b/mods/gamemodes/deity/mobs/phenomena/starlight.dm
index d02c4ed6919..72a6f0dbf07 100644
--- a/mods/gamemodes/deity/mobs/phenomena/starlight.dm
+++ b/mods/gamemodes/deity/mobs/phenomena/starlight.dm
@@ -88,7 +88,7 @@
 	html += "<table><tr><td><b>Name</b></td><td><b>Description</b></td></tr>"
 	for(var/type in possible_forms)
 		var/list/form = possible_forms[type]
-		html += "<tr><td><a href='?src=\ref[src];herald=[type];target=\ref[H]'>[type]</a></td><td>[form["description"]]</td></tr>"
+		html += "<tr><td><a href='byond://?src=\ref[src];herald=[type];target=\ref[H]'>[type]</a></td><td>[form["description"]]</td></tr>"
 	html += "</table>"
 	show_browser(linked, jointext(html,null), "window=herald")
 
diff --git a/mods/gamemodes/deity/overrides.dm b/mods/gamemodes/deity/overrides.dm
index b742b46ef12..c052abdf9a2 100644
--- a/mods/gamemodes/deity/overrides.dm
+++ b/mods/gamemodes/deity/overrides.dm
@@ -22,6 +22,6 @@
 			M.take_damage(5, PAIN, do_update_health = FALSE)
 			M.take_damage(1, BRUTE)
 			if(prob(10)) //Only annoy them a /bit/
-				to_chat(M, SPAN_DANGER("You feel your insides curdle and burn! \[<a href='?src=\ref[holder];deconvert=\ref[M]'>Give Into Purity</a>\]"))
+				to_chat(M, SPAN_DANGER("You feel your insides curdle and burn! \[<a href='byond://?src=\ref[holder];deconvert=\ref[M]'>Give Into Purity</a>\]"))
 		return TRUE
 	return FALSE
\ No newline at end of file
diff --git a/mods/gamemodes/deity/structures/altar.dm b/mods/gamemodes/deity/structures/altar.dm
index f4f96b48faf..5981e775b68 100644
--- a/mods/gamemodes/deity/structures/altar.dm
+++ b/mods/gamemodes/deity/structures/altar.dm
@@ -56,7 +56,7 @@
 		if(1)
 			text = "Can't... resist. ... anymore."
 			to_chat(linked_god, SPAN_WARNING("\The [target] is getting close to conversion!"))
-	to_chat(target, "<span class='cult'>[text]. <a href='?src=\ref[src];resist=\ref[target]'>Resist Conversion</a></span>")
+	to_chat(target, "<span class='cult'>[text]. <a href='byond://?src=\ref[src];resist=\ref[target]'>Resist Conversion</a></span>")
 
 
 //Used for force conversion.
diff --git a/mods/gamemodes/deity/structures/blood_forge.dm b/mods/gamemodes/deity/structures/blood_forge.dm
index e206bdeb98a..3b23da40630 100644
--- a/mods/gamemodes/deity/structures/blood_forge.dm
+++ b/mods/gamemodes/deity/structures/blood_forge.dm
@@ -25,7 +25,7 @@
 	for(var/type in recipes)
 		var/atom/a = type
 		var/cost = recipes[type]
-		dat += "<A href='?src=\ref[src];make_recipe=\ref[type];'>[initial(a.name)]</a> - [cost]<br><i>[initial(a.desc)]</i><br><br>"
+		dat += "<A href='byond://?src=\ref[src];make_recipe=\ref[type];'>[initial(a.name)]</a> - [cost]<br><i>[initial(a.desc)]</i><br><br>"
 	show_browser(user, dat, "window=forge")
 	return TRUE
 
diff --git a/mods/gamemodes/deity/structures/pylon.dm b/mods/gamemodes/deity/structures/pylon.dm
index 2d61c8c76bd..88d7f5ebce2 100644
--- a/mods/gamemodes/deity/structures/pylon.dm
+++ b/mods/gamemodes/deity/structures/pylon.dm
@@ -67,9 +67,9 @@
 			if(P == src || linked_god.pylon == P)
 				continue
 			P.audible_message("<b>\The [P]</b> resonates, \"[text]\"")
-	to_chat(linked_god, "[html_icon(src)] <span class='game say'><span class='name'>[M]</span> (<A href='?src=\ref[linked_god];jump=\ref[src];'>P</A>) [verb], [linked_god.pylon == src ? "<b>" : ""]<span class='message'><span class='body'>\"[text]\"</span></span>[linked_god.pylon == src ? "</b>" : ""]</span>")
+	to_chat(linked_god, "[html_icon(src)] <span class='game say'><span class='name'>[M]</span> (<A href='byond://?src=\ref[linked_god];jump=\ref[src];'>P</A>) [verb], [linked_god.pylon == src ? "<b>" : ""]<span class='message'><span class='body'>\"[text]\"</span></span>[linked_god.pylon == src ? "</b>" : ""]</span>")
 	if(linked_god.minions.len)
 		for(var/minion in linked_god.minions)
 			var/datum/mind/mind = minion
 			if(mind.current && mind.current.eyeobj) //If it is currently having a vision of some sort
-				to_chat(mind.current,"[html_icon(src)] <span class='game say'><span class='name'>[M]</span> (<A href='?src=\ref[src];vision_jump=\ref[src];'>J</A>) [verb], <span class='message'<span class='body'>\"[text]\"</span></span>")
\ No newline at end of file
+				to_chat(mind.current,"[html_icon(src)] <span class='game say'><span class='name'>[M]</span> (<A href='byond://?src=\ref[src];vision_jump=\ref[src];'>J</A>) [verb], <span class='message'<span class='body'>\"[text]\"</span></span>")
\ No newline at end of file
diff --git a/mods/gamemodes/traitor/special_role.dm b/mods/gamemodes/traitor/special_role.dm
index 98a10d3d23f..46842dee6a2 100644
--- a/mods/gamemodes/traitor/special_role.dm
+++ b/mods/gamemodes/traitor/special_role.dm
@@ -9,7 +9,7 @@
 	blocked_job_event_categories = list(ASSIGNMENT_COMPUTER)
 
 /decl/special_role/traitor/get_extra_panel_options(var/datum/mind/player)
-	return "<a href='?src=\ref[player];common=crystals'>\[set crystals\]</a><a href='?src=\ref[src];spawn_uplink=\ref[player.current]'>\[spawn uplink\]</a>"
+	return "<a href='byond://?src=\ref[player];common=crystals'>\[set crystals\]</a><a href='byond://?src=\ref[src];spawn_uplink=\ref[player.current]'>\[spawn uplink\]</a>"
 
 /decl/special_role/traitor/Topic(href, href_list)
 	if (..())
diff --git a/mods/gamemodes/traitor/syndicatebeacon.dm b/mods/gamemodes/traitor/syndicatebeacon.dm
index 498555b73a7..63ad135fb2c 100644
--- a/mods/gamemodes/traitor/syndicatebeacon.dm
+++ b/mods/gamemodes/traitor/syndicatebeacon.dm
@@ -32,7 +32,7 @@
 			var/decl/pronouns/pronouns = user.get_pronouns()
 			dat += "<font color=red><i>Identity not found in operative database. What can the Syndicate do for you today, [pronouns.honorific] [user.name]?</i></font><br>"
 			if(!selfdestructing)
-				dat += "<br><br><A href='?src=\ref[src];betraitor=1;traitormob=\ref[user]'>\"[pick("I want to switch teams.", "I want to work for you.", "Let me join you.", "I can be of use to you.", "You want me working for you, and here's why...", "Give me an objective.", "How's the 401k over at the Syndicate?")]\"</A><BR>"
+				dat += "<br><br><A href='byond://?src=\ref[src];betraitor=1;traitormob=\ref[user]'>\"[pick("I want to switch teams.", "I want to work for you.", "Let me join you.", "I can be of use to you.", "You want me working for you, and here's why...", "Give me an objective.", "How's the 401k over at the Syndicate?")]\"</A><BR>"
 	dat += temptext
 	show_browser(user, dat, "window=syndbeacon")
 	onclose(user, "syndbeacon")
diff --git a/mods/mobs/borers/datum/antagonist.dm b/mods/mobs/borers/datum/antagonist.dm
index b98725e052e..c714ef8e1a1 100644
--- a/mods/mobs/borers/datum/antagonist.dm
+++ b/mods/mobs/borers/datum/antagonist.dm
@@ -23,7 +23,7 @@
 	spawn_announcement_delay = 5000
 
 /decl/special_role/borer/get_extra_panel_options(var/datum/mind/player)
-	return "<a href='?src=\ref[src];move_to_spawn=\ref[player.current]'>\[put in host\]</a>"
+	return "<a href='byond://?src=\ref[src];move_to_spawn=\ref[player.current]'>\[put in host\]</a>"
 
 /decl/special_role/borer/create_objectives(var/datum/mind/player)
 	if(!..())
diff --git a/nano/templates/accounts_terminal.tmpl b/nano/templates/accounts_terminal.tmpl
index ce3f41022b4..e425ed121d1 100644
--- a/nano/templates/accounts_terminal.tmpl
+++ b/nano/templates/accounts_terminal.tmpl
@@ -28,7 +28,7 @@
       <h2>Create Account</h2>
     </div>
 
-    <form name='create_account' action='?src={{:data.src}}' method='get'>
+    <form name='create_account' action='byond://?src={{:data.src}}' method='get'>
       <input type='hidden' name='src' value='{{:data.src}}'>
       <input type='hidden' name='choice' value='finalise_create_account'>
       <div class='item'>