diff --git a/code/modules/clothing/gloves/_gloves.dm b/code/modules/clothing/gloves/_gloves.dm
index 8ab897f5d9..0729317eac 100644
--- a/code/modules/clothing/gloves/_gloves.dm
+++ b/code/modules/clothing/gloves/_gloves.dm
@@ -11,6 +11,8 @@
var/transfer_blood = 0
strip_delay = 20
equip_delay_other = 40
+ var/strip_mod = 1 //how much they alter stripping items time by, higher is quicker
+ var/strip_silence = FALSE //if it shows a warning when stripping
/obj/item/clothing/gloves/ComponentInitialize()
. = ..()
diff --git a/code/modules/clothing/gloves/boxing.dm b/code/modules/clothing/gloves/boxing.dm
index a76ff7c583..fe07cc7ab9 100644
--- a/code/modules/clothing/gloves/boxing.dm
+++ b/code/modules/clothing/gloves/boxing.dm
@@ -5,6 +5,7 @@
item_state = "boxing"
equip_delay_other = 60
species_exception = list(/datum/species/golem) // now you too can be a golem boxing champion
+ strip_mod = 0.5
/obj/item/clothing/gloves/boxing/green
icon_state = "boxinggreen"
diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm
index b630b121a9..f4b04f5bfe 100644
--- a/code/modules/clothing/gloves/color.dm
+++ b/code/modules/clothing/gloves/color.dm
@@ -41,6 +41,7 @@
permeability_coefficient = 1
resistance_flags = NONE
transfer_prints = TRUE
+ strip_mod = 0.8
/obj/item/clothing/gloves/cut/family
desc = "The old gloves your great grandfather stole from Engineering, many moons ago. They've seen some tough times recently."
@@ -76,6 +77,7 @@
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
resistance_flags = NONE
var/can_be_cut = 1
+ strip_mod = 1.2
/obj/item/clothing/gloves/color/black/hos
item_color = "hosred" //Exists for washing machines. Is not different from black gloves in any way.
diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm
index efe32a1473..9f4b89f607 100644
--- a/code/modules/clothing/gloves/miscellaneous.dm
+++ b/code/modules/clothing/gloves/miscellaneous.dm
@@ -10,6 +10,7 @@
equip_delay_other = 20
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
+ strip_mod = 0.9
/obj/item/clothing/gloves/botanic_leather
name = "botanist's leather gloves"
@@ -23,6 +24,7 @@
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
resistance_flags = NONE
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 30)
+ strip_mod = 0.9
/obj/item/clothing/gloves/combat
name = "combat gloves"
@@ -38,6 +40,7 @@
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
resistance_flags = NONE
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 50)
+ strip_mod = 1.5
/obj/item/clothing/gloves/bracer
@@ -103,3 +106,15 @@
/obj/item/clothing/gloves/rapid/hug/attack_self(mob/user)
return FALSE
+
+/obj/item/clothing/gloves/thief
+ name = "black gloves"
+ desc = "Gloves made with completely frictionless, insulated cloth, easier to steal from people with."
+ icon_state = "thief"
+ item_state = "blackgloves"
+ siemens_coefficient = 0
+ permeability_coefficient = 0.05
+ strip_delay = 80
+ transfer_prints = FALSE
+ strip_mod = 5
+ strip_silence = TRUE
\ No newline at end of file
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index b3dc82a40f..9c8b2808ce 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -758,10 +758,22 @@
if(HAS_TRAIT(what, TRAIT_NODROP))
to_chat(src, "You can't remove \the [what.name], it appears to be stuck!")
return
- who.visible_message("[src] tries to remove [who]'s [what.name].", \
+ var/strip_mod = 1
+ var/strip_silence = FALSE
+ if (ishuman(src)) //carbon doesn't actually wear gloves
+ var/mob/living/carbon/C = src
+ var/obj/item/clothing/gloves/g = C.gloves
+ if (istype(g))
+ strip_mod = g.strip_mod
+ strip_silence = g.strip_silence
+ if (!strip_silence)
+ who.visible_message("[src] tries to remove [who]'s [what.name].", \
"[src] tries to remove [who]'s [what.name].")
- what.add_fingerprint(src)
- if(do_mob(src, who, what.strip_delay, ignorehelditem = TRUE))
+ what.add_fingerprint(src)
+ else
+ to_chat(src,"You try to remove [who]'s [what.name].")
+ what.add_fingerprint(src)
+ if(do_mob(src, who, round(what.strip_delay / strip_mod), ignorehelditem = TRUE))
if(what && Adjacent(who))
if(islist(where))
var/list/L = where
diff --git a/code/modules/uplink/uplink_items/uplink_clothing.dm b/code/modules/uplink/uplink_items/uplink_clothing.dm
index 5e2c09ec13..fcbe0fb9a6 100644
--- a/code/modules/uplink/uplink_items/uplink_clothing.dm
+++ b/code/modules/uplink/uplink_items/uplink_clothing.dm
@@ -78,3 +78,9 @@
cost = 30
include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops)
exclude_modes = list()
+
+/datum/uplink_item/suits/thiefgloves
+ name = "Thieving Gloves"
+ desc = "A pair of gloves that are insulated and frictionless, allowing you to steal easily from anyone you see."
+ item = /obj/item/clothing/gloves/thief
+ cost = 4
\ No newline at end of file
diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi
index 7e0d03abd5..515d6212c0 100644
Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ