diff --git a/code/modules/clothing/masks/misc_masks.dm b/code/modules/clothing/masks/misc_masks.dm
index b26f2dc893f..810173d286e 100644
--- a/code/modules/clothing/masks/misc_masks.dm
+++ b/code/modules/clothing/masks/misc_masks.dm
@@ -378,7 +378,69 @@
actions_types = list(/datum/action/item_action/adjust)
/obj/item/clothing/mask/bandana/attack_self__legacy__attackchain(mob/user)
- adjustmask(user)
+ if(slot_flags & ITEM_SLOT_MASK || slot_flags & ITEM_SLOT_HEAD)
+ adjustmask(user)
+
+/obj/item/clothing/mask/bandana/examine(mob/user)
+ . = ..()
+ if(slot_flags & ITEM_SLOT_NECK)
+ . += "Alt-click to untie it to wear as a mask!"
+ else
+ . += "Alt-click to tie it up to wear on your neck!"
+
+
+/obj/item/clothing/mask/bandana/AltClick(mob/user)
+ if(!iscarbon(user))
+ return
+
+ var/mob/living/carbon/char = user
+ if((char.get_item_by_slot(ITEM_SLOT_NECK) == src) || (char.get_item_by_slot(ITEM_SLOT_MASK) == src) || (char.get_item_by_slot(ITEM_SLOT_HEAD) == src))
+ to_chat(user, ("You can't tie [src] while wearing it!"))
+ return
+
+ if(slot_flags & ITEM_SLOT_NECK)
+ icon = initial(icon)
+ flags_inv = initial(flags_inv)
+ flags_cover = initial(flags_cover)
+ slot_flags = initial(slot_flags)
+ icon_state = replacetext(icon_state, "_neck", "")
+ dyeable = initial(dyeable)
+ can_toggle = initial(can_toggle)
+
+ sprite_sheets = list(
+ "Vox" = 'icons/mob/clothing/species/vox/mask.dmi',
+ "Unathi" = 'icons/mob/clothing/species/unathi/mask.dmi',
+ "Tajaran" = 'icons/mob/clothing/species/tajaran/mask.dmi',
+ "Vulpkanin" = 'icons/mob/clothing/species/vulpkanin/mask.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/mask.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/mask.dmi'
+ )
+ actions_types = list(/datum/action/item_action/adjust)
+ var/datum/action/item_action/adjust/act = new(src)
+ if(loc == user)
+ act.Grant(user)
+ to_chat(user, ("You untie the neckercheif."))
+ else
+ icon = 'icons/obj/clothing/neck.dmi'
+ flags_inv = FALSE
+ flags_cover = FALSE
+ slot_flags = ITEM_SLOT_NECK
+ if(up)
+ icon_state = replacetext(icon_state, "_up", "")
+ up = FALSE
+ icon_state += "_neck"
+ dyeable = FALSE
+ can_toggle = FALSE
+
+ sprite_sheets = list(
+ "Vox" = 'icons/mob/clothing/species/vox/neck.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/neck.dmi',
+ )
+ actions_types = list()
+ for(var/datum/action/item_action/adjust/act in actions)
+ act.Remove(user)
+ qdel(act)
+ to_chat(user, ("You tie [src] up like a neckerchief."))
/obj/item/clothing/mask/bandana/red
name = "red bandana"
diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi
index 4e9d4ff1a61..0a02e6b6f37 100644
Binary files a/icons/mob/clothing/mask.dmi and b/icons/mob/clothing/mask.dmi differ
diff --git a/icons/mob/clothing/neck.dmi b/icons/mob/clothing/neck.dmi
index fd1e22cb72f..d977ae229dc 100644
Binary files a/icons/mob/clothing/neck.dmi and b/icons/mob/clothing/neck.dmi differ
diff --git a/icons/mob/clothing/species/grey/neck.dmi b/icons/mob/clothing/species/grey/neck.dmi
new file mode 100644
index 00000000000..22f32dd41a0
Binary files /dev/null and b/icons/mob/clothing/species/grey/neck.dmi differ
diff --git a/icons/mob/clothing/species/vox/neck.dmi b/icons/mob/clothing/species/vox/neck.dmi
index e49ab4e91f6..a964cd6e851 100644
Binary files a/icons/mob/clothing/species/vox/neck.dmi and b/icons/mob/clothing/species/vox/neck.dmi differ
diff --git a/icons/obj/clothing/neck.dmi b/icons/obj/clothing/neck.dmi
index dc6419550b8..24929d5ef88 100644
Binary files a/icons/obj/clothing/neck.dmi and b/icons/obj/clothing/neck.dmi differ