diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 6c6ccefd541..5bbe774ed37 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -731,8 +731,12 @@ obj/item/toy/cards/deck/MouseDrop(atom/over_object)
else if(istype(over_object, /obj/screen))
switch(over_object.name)
if("l_hand")
+ if(!remove_item_from_storage(M))
+ M.unEquip(src)
M.put_in_l_hand(src)
else if("r_hand")
+ if(!remove_item_from_storage(M))
+ M.unEquip(src)
M.put_in_r_hand(src)
usr << "You pick up the deck."
else
diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm
index fc6636b6561..03bd60d66e7 100644
--- a/code/game/objects/items/weapons/handcuffs.dm
+++ b/code/game/objects/items/weapons/handcuffs.dm
@@ -131,7 +131,8 @@ var/last_chew = 0
var/obj/item/stack/rods/R = I
if (R.use(1))
var/obj/item/weapon/wirerod/W = new /obj/item/weapon/wirerod
- user.unEquip(src)
+ if(!remove_item_from_storage(user))
+ user.unEquip(src)
user.put_in_hands(W)
user << "You wrap the cable restraint around the top of the rod."
qdel(src)
diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm
index ca627bbdc8c..b1efb1168ff 100644
--- a/code/game/objects/items/weapons/storage/toolbox.dm
+++ b/code/game/objects/items/weapons/storage/toolbox.dm
@@ -84,10 +84,10 @@
New()
..()
- new /obj/item/weapon/screwdriver(src)
+ new /obj/item/weapon/screwdriver(src, "red")
new /obj/item/weapon/wrench(src)
new /obj/item/weapon/weldingtool/largetank(src)
- new /obj/item/weapon/crowbar(src)
- new /obj/item/weapon/wirecutters(src)
+ new /obj/item/weapon/crowbar/red(src)
+ new /obj/item/weapon/wirecutters(src, "red")
new /obj/item/device/multitool(src)
new /obj/item/clothing/gloves/combat(src)
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm
index 15e221910d3..ca44c514a61 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -112,8 +112,9 @@
sharp = 1
edge = 1
-/obj/item/weapon/wirecutters/New()
- if(prob(50))
+/obj/item/weapon/wirecutters/New(loc, var/param_color = null)
+ ..()
+ if((!param_color && prob(50)) || param_color == "yellow")
icon_state = "cutters-y"
item_state = "cutters_yellow"
diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm
index e80dd1d04a1..520de21301c 100644
--- a/code/game/objects/items/weapons/weaponry.dm
+++ b/code/game/objects/items/weapons/weaponry.dm
@@ -159,9 +159,10 @@ obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob, params)
..()
if(istype(I, /obj/item/weapon/shard))
var/obj/item/weapon/twohanded/spear/S = new /obj/item/weapon/twohanded/spear
-
+
+ if(!remove_item_from_storage(user))
+ user.unEquip(src)
user.unEquip(I)
- user.unEquip(src)
user.put_in_hands(S)
user << "You fasten the glass shard to the top of the rod with the cable."
@@ -171,8 +172,9 @@ obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob, params)
else if(istype(I, /obj/item/weapon/wirecutters))
var/obj/item/weapon/melee/baton/cattleprod/P = new /obj/item/weapon/melee/baton/cattleprod
+ if(!remove_item_from_storage(user))
+ user.unEquip(src)
user.unEquip(I)
- user.unEquip(src)
user.put_in_hands(P)
user << "You fasten the wirecutters to the top of the rod with the cable, prongs outward."
diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm
index d562098cc21..a37eeabcd9b 100644
--- a/code/modules/assembly/holder.dm
+++ b/code/modules/assembly/holder.dm
@@ -35,13 +35,16 @@
if((!D)||(!D2)) return 0
if((!isassembly(D))||(!isassembly(D2))) return 0
if((D:secured)||(D2:secured)) return 0
- if(user)
- user.remove_from_mob(D)
- user.remove_from_mob(D2)
+ if(!D.remove_item_from_storage(src))
+ if(user)
+ user.remove_from_mob(D)
+ D.loc = src
+ if(!D2.remove_item_from_storage(src))
+ if(user)
+ user.remove_from_mob(D2)
+ D2.loc = src
D:holder = src
D2:holder = src
- D.loc = src
- D2.loc = src
a_left = D
a_right = D2
name = "[D.name]-[D2.name] assembly"
diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm
index 71e64b61823..552f55051d1 100644
--- a/code/modules/paperwork/paperbin.dm
+++ b/code/modules/paperwork/paperbin.dm
@@ -36,12 +36,12 @@
else if(istype(over_object, /obj/screen))
switch(over_object.name)
if("r_hand")
- if(!M.unEquip(src))
- return
+ if(!remove_item_from_storage(M))
+ M.unEquip(src)
M.put_in_r_hand(src)
if("l_hand")
- if(!M.unEquip(src))
- return
+ if(!remove_item_from_storage(M))
+ M.unEquip(src)
M.put_in_l_hand(src)
add_fingerprint(M)