diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm
index a94a18bce614e..f4c2a5a27f4e7 100644
--- a/code/modules/clothing/glasses/_glasses.dm
+++ b/code/modules/clothing/glasses/_glasses.dm
@@ -128,8 +128,31 @@
/obj/item/clothing/glasses/eyepatch
name = "eyepatch"
desc = "Yarr."
- icon_state = "eyepatch"
- item_state = "eyepatch"
+ icon_state = "eyepatch-0"
+ item_state = "eyepatch-0"
+ var/flipped = FALSE
+
+/obj/item/clothing/glasses/eyepatch/AltClick(mob/user)
+ . = ..()
+ flipped = !flipped
+ to_chat(user, "You shift the eyepatch to cover the [flipped == 0 ? "right" : "left"] eye.")
+ icon_state = "eyepatch-[flipped]"
+ item_state = "eyepatch-[flipped]"
+ update_appearance()
+
+/obj/item/clothing/glasses/eyepatch/examine(mob/user)
+ . = ..()
+ . += "It is currently aligned to the [flipped == 0 ? "right" : "left"] side."
+
+/obj/item/clothing/glasses/eyepatch/attackby(obj/item/I, mob/user, params)
+ . = ..()
+ if(istype(I, /obj/item/clothing/glasses/eyepatch))
+ var/obj/item/clothing/glasses/eyepatch/old_patch = I
+ var/obj/item/clothing/glasses/blindfold/eyepatch/double_patch = new/obj/item/clothing/glasses/blindfold/eyepatch
+ double_patch.forceMove(user.drop_location())
+ to_chat(user, "You combine the eyepatches with a knot.")
+ old_patch.Destroy()
+ Destroy()
/obj/item/clothing/glasses/monocle
name = "monocle"
@@ -348,6 +371,21 @@
M.color = "#[H.eye_color]"
. += M
+/obj/item/clothing/glasses/blindfold/eyepatch
+ name = "double eyepatch"
+ desc = "For those pirates who've been at it a while. May interfere with navigating ability."
+ icon_state = "eyepatchd"
+ item_state = "eyepatchd"
+
+/obj/item/clothing/glasses/blindfold/eyepatch/attack_self(mob/user)
+ . = ..()
+ var/obj/item/clothing/glasses/eyepatch/patch_one = new/obj/item/clothing/glasses/eyepatch
+ var/obj/item/clothing/glasses/eyepatch/patch_two = new/obj/item/clothing/glasses/eyepatch
+ patch_one.forceMove(user.drop_location())
+ patch_two.forceMove(user.drop_location())
+ to_chat(user, "You undo the knot on the eyepatches.")
+ Destroy()
+
/obj/item/clothing/glasses/sunglasses/big
desc = "Strangely ancient technology used to help provide rudimentary eye cover. Larger than average enhanced shielding blocks flashes."
icon_state = "bigsunglasses"
@@ -411,8 +449,21 @@
/obj/item/clothing/glasses/thermal/eyepatch
name = "optical thermal eyepatch"
desc = "An eyepatch with built-in thermal optics."
- icon_state = "eyepatch"
- item_state = "eyepatch"
+ icon_state = "eyepatch-0"
+ item_state = "eyepatch-0"
+ var/flipped = FALSE
+
+/obj/item/clothing/glasses/thermal/eyepatch/AltClick(mob/user)
+ . = ..()
+ flipped = !flipped
+ to_chat(user, "You shift the eyepatch to cover the [flipped == 0 ? "right" : "left"] eye.")
+ icon_state = "eyepatch-[flipped]"
+ item_state = "eyepatch-[flipped]"
+ update_appearance()
+
+/obj/item/clothing/glasses/thermal/eyepatch/examine(mob/user)
+ . = ..()
+ . += "It is currently aligned to the [flipped == 0 ? "right" : "left"] side."
/obj/item/clothing/glasses/cold
name = "cold goggles"
diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm
index bd5cedd2e3d72..fd802cf55ec69 100644
--- a/code/modules/clothing/glasses/hud.dm
+++ b/code/modules/clothing/glasses/hud.dm
@@ -128,7 +128,20 @@
/obj/item/clothing/glasses/hud/security/sunglasses/eyepatch
name = "eyepatch HUD"
desc = "A heads-up display that connects directly to the optical nerve of the user, replacing the need for that useless eyeball."
- icon_state = "hudpatch"
+ icon_state = "hudpatch-0"
+ var/flipped = FALSE
+
+/obj/item/clothing/glasses/hud/security/sunglasses/eyepatch/AltClick(mob/user)
+ . = ..()
+ flipped = !flipped
+ to_chat(user, "You shift the hudpatch to cover the [flipped == 0 ? "right" : "left"] eye.")
+ icon_state = "hudpatch-[flipped]"
+ item_state = "hudpatch-[flipped]"
+ update_appearance()
+
+/obj/item/clothing/glasses/hud/security/sunglasses/eyepatch/examine(mob/user)
+ . = ..()
+ . += "It is currently aligned to the [flipped == 0 ? "right" : "left"] side."
/obj/item/clothing/glasses/hud/security/sunglasses
name = "security HUDSunglasses"
diff --git a/icons/mob/clothing/eyes.dmi b/icons/mob/clothing/eyes.dmi
index bdfe41995f6d7..9af8d7dc8bba5 100644
Binary files a/icons/mob/clothing/eyes.dmi and b/icons/mob/clothing/eyes.dmi differ
diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi
index c32434c83f1ec..45d868f696921 100644
Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ