diff --git a/code/game/objects/items/weapons/legcuffs.dm b/code/game/objects/items/weapons/legcuffs.dm
index 13ef6472e33..78bdf1ea2ec 100644
--- a/code/game/objects/items/weapons/legcuffs.dm
+++ b/code/game/objects/items/weapons/legcuffs.dm
@@ -15,7 +15,7 @@
name = "bear trap"
throw_speed = 1
throw_range = 1
- icon_state = "beartrap"
+ icon_state = "beartrap0"
desc = "A trap used to catch bears and other legged creatures."
origin_tech = "engineering=4"
var/armed = 0
@@ -25,7 +25,9 @@
/obj/item/restraints/legcuffs/beartrap/New()
..()
- icon_state = "[initial(icon_state)][armed]"
+
+/obj/item/restraints/legcuffs/beartrap/update_icon()
+ icon_state = "beartrap[armed]"
/obj/item/restraints/legcuffs/beartrap/Destroy()
QDEL_NULL(IED)
@@ -41,7 +43,7 @@
..()
if(ishuman(user) && !user.stat && !user.restrained())
armed = !armed
- icon_state = "[initial(icon_state)][armed]"
+ update_icon()
to_chat(user, "[src] is now [armed ? "armed" : "disarmed"]")
/obj/item/restraints/legcuffs/beartrap/attackby(obj/item/I, mob/user) //Let's get explosive.
@@ -93,7 +95,7 @@
if( (iscarbon(AM) || isanimal(AM)) && !istype(AM, /mob/living/simple_animal/parrot) && !istype(AM, /mob/living/simple_animal/hostile/construct) && !istype(AM, /mob/living/simple_animal/shade) && !istype(AM, /mob/living/simple_animal/hostile/viscerator))
var/mob/living/L = AM
armed = 0
- icon_state = "[initial(icon_state)][armed]"
+ update_icon()
playsound(src.loc, 'sound/effects/snap.ogg', 50, 1)
L.visible_message("[L] triggers \the [src].", \
"You trigger \the [src]!")
diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm
index 715c3754fc6..e5263fa168e 100644
--- a/code/game/objects/random/random.dm
+++ b/code/game/objects/random/random.dm
@@ -29,8 +29,8 @@
/obj/random/tool
name = "Random Tool"
desc = "This is a random tool"
- icon = 'icons/obj/items.dmi'
- icon_state = "welder"
+ icon = 'icons/obj/tools.dmi'
+ icon_state = "random_tool"
/obj/random/tool/item_to_spawn()
return pick(/obj/item/screwdriver,\
diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm
index ee5f33d1e6e..c4a15ef938e 100644
--- a/code/modules/research/experimentor.dm
+++ b/code/modules/research/experimentor.dm
@@ -610,6 +610,7 @@
name = "strange object"
desc = "What mysteries could this hold?"
icon = 'icons/obj/assemblies.dmi'
+ icon_state = "prox-radio1" // it is immediately overriden in New, but setting it here makes it show in mapeditor
origin_tech = "combat=1;plasmatech=1;powerstorage=1;materials=1"
var/realName = "defined object"
var/revealed = FALSE
diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm
index 2b9280bec7a..128faa3e43e 100644
--- a/code/modules/research/server.dm
+++ b/code/modules/research/server.dm
@@ -1,7 +1,7 @@
/obj/machinery/r_n_d/server
name = "R&D Server"
icon = 'icons/obj/machines/research.dmi'
- icon_state = "RD-server"
+ icon_state = "RD-server-off"
var/datum/research/files
var/health = 100
var/list/id_with_upload = list() //List of R&D consoles with upload to server access.
@@ -46,9 +46,9 @@
/obj/machinery/r_n_d/server/update_icon()
if(stat & NOPOWER)
- icon_state = "[initial(icon_state)]-off"
- return
- icon_state = "[initial(icon_state)]-on"
+ icon_state = "RD-server-off"
+ else
+ icon_state = "RD-server-on"
/obj/machinery/r_n_d/server/power_change()
. = ..()
diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi
index 7ff4d229863..b3f97f27b49 100644
Binary files a/icons/obj/tools.dmi and b/icons/obj/tools.dmi differ