diff --git a/code/game/dna/dna2_helpers.dm b/code/game/dna/dna2_helpers.dm
index 24ec0e7319..00e2f99541 100644
--- a/code/game/dna/dna2_helpers.dm
+++ b/code/game/dna/dna2_helpers.dm
@@ -269,7 +269,7 @@
H.custom_heat = dna.custom_heat
H.custom_cold = dna.custom_cold
var/datum/species/S = H.species
- S.produceCopy(dna.species_traits, H, dna.base_species, FALSE) // Traitgenes edit - reset_dna flag required, or genes get reset on resleeve
+ S.produceCopy(dna.species_traits, H, dna.base_species/*, FALSE*/) // Traitgenes edit - reset_dna flag required, or genes get reset on resleeve
// VOREStation Edit End
H.species.blood_reagents = dna.blood_reagents
diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm
index c82d91173d..5bcdb421fd 100644
--- a/code/game/objects/items/devices/gps.dm
+++ b/code/game/objects/items/devices/gps.dm
@@ -1,4 +1,4 @@
-var/list/GPS_list = list()
+GLOBAL_LIST_EMPTY(GPS_list)
/obj/item/gps
name = "global positioning system"
@@ -29,7 +29,7 @@ var/list/GPS_list = list()
/obj/item/gps/Initialize()
. = ..()
compass = new(src)
- GPS_list += src
+ GLOB.GPS_list += src
name = "global positioning system ([gps_tag])"
update_holder()
update_icon()
@@ -93,7 +93,7 @@ var/list/GPS_list = list()
/obj/item/gps/Destroy()
STOP_PROCESSING(SSobj, src)
is_in_processing_list = FALSE
- GPS_list -= src
+ GLOB.GPS_list -= src
update_holder()
QDEL_NULL(compass)
. = ..()
@@ -199,7 +199,7 @@ var/list/GPS_list = list()
dat["z_level_detection"] = using_map.get_map_levels(curr.z, long_range)
var/list/gps_list = list()
- for(var/obj/item/gps/G in GPS_list - src)
+ for(var/obj/item/gps/G in GLOB.GPS_list - src)
if(!can_track(G, dat["z_level_detection"]))
continue
diff --git a/code/modules/admin/modify_robot.dm b/code/modules/admin/modify_robot.dm
index c80a1c96f1..9578287f05 100644
--- a/code/modules/admin/modify_robot.dm
+++ b/code/modules/admin/modify_robot.dm
@@ -349,8 +349,8 @@
target.radio.keyslot = new /obj/item/encryptionkey/syndicate(target)
target.radio.syndie = 1
target.module.channels += list("[selected_radio_channel]" = 1)
- target.radio.channels[selected_radio_channel] += target.module.channels[selected_radio_channel]
- target.radio.secure_radio_connections[selected_radio_channel] += radio_controller.add_object(target.radio, radiochannels[selected_radio_channel], RADIO_CHAT)
+ target.radio.channels[selected_radio_channel] = target.module.channels[selected_radio_channel]
+ target.radio.secure_radio_connections[selected_radio_channel] = radio_controller.add_object(target.radio, radiochannels[selected_radio_channel], RADIO_CHAT)
return TRUE
if("rem_channel")
var/selected_radio_channel = params["channel"]
@@ -363,7 +363,7 @@
target.radio.syndie = 0
target.radio.channels = list()
for(var/n_chan in target.module.channels)
- target.radio.channels[n_chan] -= target.module.channels[n_chan]
+ target.radio.channels[n_chan] = target.module.channels[n_chan]
radio_controller.remove_object(target.radio, radiochannels[selected_radio_channel])
target.radio.secure_radio_connections -= selected_radio_channel
return TRUE
diff --git a/code/modules/admin/verbs/modify_robot.dm b/code/modules/admin/verbs/modify_robot.dm
index 2524f1b50b..20a846d6b2 100644
--- a/code/modules/admin/verbs/modify_robot.dm
+++ b/code/modules/admin/verbs/modify_robot.dm
@@ -240,8 +240,8 @@
target.radio.keyslot = new /obj/item/encryptionkey/syndicate(target)
target.radio.syndie = 1
target.module.channels += list("[selected_radio_channel]" = 1)
- target.radio.channels[selected_radio_channel] += target.module.channels[selected_radio_channel]
- target.radio.secure_radio_connections[selected_radio_channel] += radio_controller.add_object(target.radio, radiochannels[selected_radio_channel], RADIO_CHAT)
+ target.radio.channels[selected_radio_channel] = target.module.channels[selected_radio_channel]
+ target.radio.secure_radio_connections[selected_radio_channel] = radio_controller.add_object(target.radio, radiochannels[selected_radio_channel], RADIO_CHAT)
available_channels -= selected_radio_channel
to_chat(usr, span_danger("You added \"[selected_radio_channel]\" channel to [target]."))
if(MODIFIY_ROBOT_RADIOC_REMOVE)
@@ -258,7 +258,7 @@
target.radio.syndie = 0
target.radio.channels = list()
for(var/n_chan in target.module.channels)
- target.radio.channels[n_chan] -= target.module.channels[n_chan]
+ target.radio.channels[n_chan] = target.module.channels[n_chan]
radio_controller.remove_object(target.radio, radiochannels[selected_radio_channel])
target.radio.secure_radio_connections -= selected_radio_channel
to_chat(usr, span_danger("You removed \"[selected_radio_channel]\" channel from [target]."))
diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm
index 353b4da946..a5f84be39a 100644
--- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm
+++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm
@@ -162,9 +162,12 @@
/mob/living/silicon/robot/proc/apply_module(var/datum/robot_sprite/new_datum, var/new_module)
icon_selected = TRUE
var/module_type = robot_modules[new_module]
- modtype = new_module
- module = new module_type(src)
- feedback_inc("cyborg_[lowertext(new_module)]",1)
+ if(modtype != new_module || !module)
+ if(module)
+ qdel(module)
+ modtype = new_module
+ module = new module_type(src)
+ feedback_inc("cyborg_[lowertext(new_module)]",1)
updatename()
hud_used.update_robot_modules_display()
notify_ai(ROBOT_NOTIFICATION_NEW_MODULE, module.name)
diff --git a/code/modules/telesci/gps_advanced.dm b/code/modules/telesci/gps_advanced.dm
index 26770531dd..8c812f0a9b 100644
--- a/code/modules/telesci/gps_advanced.dm
+++ b/code/modules/telesci/gps_advanced.dm
@@ -36,7 +36,7 @@
t += "
Set Tag "
t += "
Tag: [gps_tag]"
- for(var/obj/item/gps/advanced/G in GPS_list)
+ for(var/obj/item/gps/advanced/G in GLOB.GPS_list)
var/turf/pos = get_turf(G)
var/area/gps_area = get_area(G)
var/tracked_gpstag = G.gps_tag