diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 643f1756ed4..1fe74e5c85e 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -171,8 +171,8 @@
desc = "A suit that completely restrains the wearer."
icon_state = "straight_jacket"
item_state = "straight_jacket"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
- flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|HANDS
+ flags_inv = HIDEGLOVES|HIDEJUMPSUIT
/obj/item/clothing/suit/straight_jacket/equipped(var/mob/user, var/slot)
if (slot == slot_wear_suit)
diff --git a/code/modules/mob/living/carbon/resist.dm b/code/modules/mob/living/carbon/resist.dm
index 91f2d508437..e2b93d0fd48 100644
--- a/code/modules/mob/living/carbon/resist.dm
+++ b/code/modules/mob/living/carbon/resist.dm
@@ -26,6 +26,41 @@
else if(legcuffed)
spawn() escape_legcuffs()
+/mob/living/carbon/human/process_resist()
+ if (istype(wear_suit, /obj/item/clothing/suit/straight_jacket))
+ spawn
+ escape_jacket()
+ return
+ ..()
+
+/mob/living/carbon/human/proc/escape_jacket()
+ visible_message(
+ "\The [src] attempts to escape [wear_suit]!",
+ "You attempt to escape [wear_suit]. (This will take around 6 minutes and you need to stand still)"
+ )
+ if (!do_after(src, 1.5 MINUTES, act_target = wear_suit))
+ return
+ visible_message(
+ "\The [src] is shifting in their [wear_suit]!",
+ "You start to loosen the [wear_suit]."
+ )
+ if (!do_after(src, 1.5 MINUTES, act_target = wear_suit))
+ return
+ visible_message(
+ "\The [src] is moving in their [wear_suit]!",
+ "You slip one of your arms out of the [wear_suit]."
+ )
+ if (!do_after(src, 1.5 MINUTES, act_target = wear_suit))
+ return
+ visible_message(
+ "\The [src] is moving around in their [wear_suit] - it looks like they are about to break out!",
+ "You start to pull loose the straps on the straightjacket[wear_suit]."
+ )
+ if (do_after(src, 1.5 MINUTES, act_target = wear_suit))
+ var/obj/ex_suit = wear_suit
+ remove_from_mob(wear_suit)
+ ex_suit.forceMove(get_turf(src))
+
/mob/living/carbon/proc/escape_handcuffs()
//if(!(last_special <= world.time)) return
@@ -182,3 +217,4 @@
visible_message("[usr] manages to unbuckle themself!",
"You successfully unbuckle yourself.")
buckled.user_unbuckle_mob(src)
+
diff --git a/html/changelogs/Changelog-Straightjackets.yml b/html/changelogs/Changelog-Straightjackets.yml
new file mode 100644
index 00000000000..5d0e080bad2
--- /dev/null
+++ b/html/changelogs/Changelog-Straightjackets.yml
@@ -0,0 +1,37 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+# balance
+#################################
+
+# Your name.
+author: Kaedwuff
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "Straightjackets can now be escaped from, if you have sufficient time alone, and new sprites have been given to make them more jackety."
\ No newline at end of file
diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi
index 15b5c08a5a9..33af57a43de 100644
Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index b73cc027223..857b9578d21 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ