diff --git a/code/datums/supplypacks/supply.dm b/code/datums/supplypacks/supply.dm
index e9fa3f2d99..9414d6201d 100644
--- a/code/datums/supplypacks/supply.dm
+++ b/code/datums/supplypacks/supply.dm
@@ -39,7 +39,7 @@
/obj/item/clothing/head/soft/purple,
/obj/item/weapon/storage/belt/janitor,
/obj/item/clothing/shoes/galoshes,
- /obj/item/weapon/caution = 4,
+ /obj/item/clothing/suit/caution = 4,
/obj/item/weapon/storage/bag/trash,
/obj/item/device/lightreplacer,
/obj/item/weapon/reagent_containers/spray/cleaner,
diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index 99c0f753c8..8e7ccb4070 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -110,28 +110,6 @@
item_state = "gift"
w_class = ITEMSIZE_LARGE
-/obj/item/weapon/caution
- desc = "Caution! Wet Floor!"
- name = "wet floor sign"
- icon = 'icons/obj/janitor.dmi'
- icon_state = "caution"
- force = 1.0
- throwforce = 3.0
- throw_speed = 1
- throw_range = 5
- w_class = ITEMSIZE_SMALL
- attack_verb = list("warned", "cautioned", "smashed")
-
-/obj/item/weapon/caution/cone
- desc = "This cone is trying to warn you of something!"
- name = "warning cone"
- icon_state = "cone"
-
-/obj/item/weapon/caution/cone/candy
- desc = "This cone is trying to warn you of something! It has been painted to look like candy corn."
- name = "candy cone"
- icon_state = "candycone"
-
/*/obj/item/weapon/syndicate_uplink
name = "station bounced radio"
desc = "Remain silent about this..."
diff --git a/code/game/objects/random/maintenance.dm b/code/game/objects/random/maintenance.dm
index 37dcca8319..155a9abad0 100644
--- a/code/game/objects/random/maintenance.dm
+++ b/code/game/objects/random/maintenance.dm
@@ -101,8 +101,8 @@ something, make sure it's not in one of the other lists.*/
prob(1);/obj/item/clothing/under/tactical,
prob(3);/obj/item/clothing/accessory/storage/webbing,
prob(3);/obj/item/weapon/camera_assembly,
- prob(4);/obj/item/weapon/caution,
- prob(3);/obj/item/weapon/caution/cone,
+ prob(4);/obj/item/clothing/suit/caution,
+ prob(3);/obj/item/clothing/head/cone,
prob(1);/obj/item/weapon/card/emag_broken,
prob(2);/obj/item/device/camera,
prob(3);/obj/item/device/pda,
diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
index 72a3d29a07..4f73d4151c 100644
--- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
@@ -64,7 +64,7 @@
/obj/item/clothing/head/soft/purple,
/obj/item/clothing/head/beret/purple,
/obj/item/device/flashlight,
- /obj/item/weapon/caution = 4,
+ /obj/item/clothing/suit/caution = 4,
/obj/item/device/lightreplacer,
/obj/item/weapon/storage/bag/trash,
/obj/item/weapon/storage/belt/janitor,
diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm
index d14efeea5b..de07aa8de8 100644
--- a/code/game/objects/structures/janicart.dm
+++ b/code/game/objects/structures/janicart.dm
@@ -93,7 +93,7 @@ GLOBAL_LIST_BOILERPLATE(all_janitorial_carts, /obj/structure/janitorialcart)
to_chat(user, "You put [I] into [src].")
return 1
- else if(istype(I, /obj/item/weapon/caution))
+ else if(istype(I, /obj/item/clothing/suit/caution))
if(signs < 4)
user.unEquip(I, 0, src)
signs++
@@ -192,7 +192,7 @@ GLOBAL_LIST_BOILERPLATE(all_janitorial_carts, /obj/structure/janitorialcart)
myreplacer = null
if("sign")
if(signs)
- var/obj/item/weapon/caution/Sign = locate() in src
+ var/obj/item/clothing/suit/caution/Sign = locate() in src
if(Sign)
user.put_in_hands(Sign)
to_chat(user, "You take \a [Sign] from [src].")
@@ -258,7 +258,7 @@ GLOBAL_LIST_BOILERPLATE(all_janitorial_carts, /obj/structure/janitorialcart)
mybucket = null
if (signs)
- for (var/obj/item/weapon/caution/Sign in src)
+ for (var/obj/item/clothing/suit/caution/Sign in src)
if (prob(min((chance*2),100)))
signs--
Sign.forceMove(dropspot)
diff --git a/code/game/objects/structures/loot_piles.dm b/code/game/objects/structures/loot_piles.dm
index b11f7aa36c..f8578e121a 100644
--- a/code/game/objects/structures/loot_piles.dm
+++ b/code/game/objects/structures/loot_piles.dm
@@ -192,8 +192,8 @@ Loot piles can be depleted, if loot_depleted is turned on. Note that players wh
/obj/item/weapon/spacecash/c10,
/obj/item/weapon/spacecash/c20,
/obj/item/weapon/camera_assembly,
- /obj/item/weapon/caution,
- /obj/item/weapon/caution/cone,
+ /obj/item/clothing/suit/caution,
+ /obj/item/clothing/head/cone,
/obj/item/weapon/card/emag_broken,
/obj/item/device/camera,
/obj/item/device/pda,
diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm
index a3da836d7c..b23f70b185 100644
--- a/code/modules/clothing/head/misc_special.dm
+++ b/code/modules/clothing/head/misc_special.dm
@@ -7,6 +7,7 @@
* Kitty ears
* Holiday hats
Crown of Wrath
+ Warning cone
*/
/*
@@ -288,3 +289,19 @@
/obj/item/clothing/head/psy_crown/gluttony/activate_ability(var/mob/living/wearer)
..()
wearer.add_modifier(/datum/modifier/gluttonyregeneration, 45 SECONDS)
+
+/obj/item/clothing/head/cone
+ name = "warning cone"
+ desc = "This cone is trying to warn you of something!"
+ description_info = "It looks like you can wear it in your head slot."
+ icon_state = "cone"
+ item_state = "cone"
+ drop_sound = 'sound/items/drop/shoes.ogg'
+ force = 1
+ throwforce = 3
+ throw_speed = 2
+ throw_range = 5
+ w_class = 2
+ body_parts_covered = HEAD
+ attack_verb = list("warned", "cautioned", "smashed")
+ armor = list("melee" = 5, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
\ No newline at end of file
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 32e5e19743..6c12a2e68d 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -892,3 +892,38 @@ obj/item/clothing/suit/kamishimo
/obj/item/clothing/suit/storage/snowsuit/science
name = "science snowsuit"
icon_state = "snowsuit_science"
+
+/obj/item/clothing/suit/caution
+ name = "wet floor sign"
+ desc = "Caution! Wet Floor!"
+ description_fluff = "Used by the janitor to passive-aggressively point at when you eventually slip on one of their mopped floors."
+ description_info = "Alt-click, or click in-hand to toggle the caution lights. It looks like you can wear it in your suit slot."
+ icon_state = "caution"
+ drop_sound = 'sound/items/drop/shoes.ogg'
+ force = 1
+ throwforce = 3
+ throw_speed = 2
+ throw_range = 5
+ w_class = 2
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO
+ attack_verb = list("warned", "cautioned", "smashed")
+ armor = list("melee" = 5, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
+
+/obj/item/clothing/suit/caution/attack_self()
+ toggle()
+
+/obj/item/clothing/suit/caution/AltClick()
+ toggle()
+
+/obj/item/clothing/suit/caution/proc/toggle()
+ if(!usr || usr.stat || usr.lying || usr.restrained() || !Adjacent(usr)) return
+ else if(src.icon_state == "caution")
+ src.icon_state = "caution_blinking"
+ src.item_state = "caution_blinking"
+ usr.show_message("You turn the wet floor sign on.")
+ playsound(src.loc, 'sound/machines/button.ogg', 30, 1)
+ else
+ src.icon_state = "caution"
+ src.item_state = "caution"
+ usr.show_message("You turn the wet floor sign off.")
+ update_clothing_icon()
\ No newline at end of file
diff --git a/code/modules/xenoarcheaology/artifacts/replicator.dm b/code/modules/xenoarcheaology/artifacts/replicator.dm
index da5b123c16..49e24f8a97 100644
--- a/code/modules/xenoarcheaology/artifacts/replicator.dm
+++ b/code/modules/xenoarcheaology/artifacts/replicator.dm
@@ -42,8 +42,8 @@
/obj/item/weapon/bikehorn,
/obj/item/weapon/surgical/bonesetter,
/obj/item/weapon/material/knife/butch,
- /obj/item/weapon/caution,
- /obj/item/weapon/caution/cone,
+ /obj/item/clothing/suit/caution,
+ /obj/item/clothing/head/cone,
/obj/item/weapon/tool/crowbar,
/obj/item/weapon/clipboard,
/obj/item/weapon/cell,
diff --git a/html/changelogs/Lorilili - janiwear.yml b/html/changelogs/Lorilili - janiwear.yml
new file mode 100644
index 0000000000..25cab7fd3b
--- /dev/null
+++ b/html/changelogs/Lorilili - janiwear.yml
@@ -0,0 +1,4 @@
+author: Lorilili
+delete-after: True
+changes:
+ - rscadd: "You can now wear caution signs and warning cones."
\ No newline at end of file
diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi
index f241ee11e8..d2be45594c 100644
Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ
diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi
index 82d26fb02e..5fc3080206 100644
Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index 19d7de134f..6f8f14c6a2 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index 0421e0bff6..5c1f3246d5 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ
diff --git a/icons/obj/janitor.dmi b/icons/obj/janitor.dmi
index 3b7f9b4f60..607fef4bc7 100644
Binary files a/icons/obj/janitor.dmi and b/icons/obj/janitor.dmi differ
diff --git a/maps/southern_cross/southern_cross-1.dmm b/maps/southern_cross/southern_cross-1.dmm
index 1bf367399d..4068595924 100644
--- a/maps/southern_cross/southern_cross-1.dmm
+++ b/maps/southern_cross/southern_cross-1.dmm
@@ -811,7 +811,7 @@
"apE" = (/obj/structure/frame/computer,/turf/simulated/floor/tiled,/area/hangar/onecontrol)
"apF" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled,/area/hangar/onecontrol)
"apG" = (/obj/structure/disposalpipe/up,/obj/machinery/atmospherics/pipe/zpipe/up/scrubbers,/obj/machinery/atmospherics/pipe/zpipe/up/supply,/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/structure/cable{d1 = 16; d2 = 0; icon_state = "16-0"},/turf/simulated/floor/plating,/area/maintenance/firstdeck/foreport)
-"apH" = (/obj/item/weapon/caution/cone,/turf/simulated/floor,/area/maintenance/firstdeck/foreport)
+"apH" = (/obj/item/clothing/head/cone,/turf/simulated/floor,/area/maintenance/firstdeck/foreport)
"apI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/catwalk,/turf/simulated/floor/plating,/area/maintenance/firstdeck/foreport)
"apJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/obj/structure/catwalk,/turf/simulated/floor/plating,/area/maintenance/firstdeck/foreport)
"apK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/obj/effect/floor_decal/borderfloor/corner2{dir = 10},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/fpcenter)
diff --git a/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm b/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm
index 7da857ef05..7ee0f3cfa8 100644
--- a/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm
+++ b/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm
@@ -1,6 +1,6 @@
"aa" = (/turf/template_noop,/area/template_noop)
"ab" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
-"ac" = (/obj/item/weapon/caution/cone,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
+"ac" = (/obj/item/clothing/head/cone,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
"ad" = (/turf/simulated/shuttle/wall,/area/submap/cave/qShuttle)
"ae" = (/obj/structure/inflatable,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
"af" = (/obj/structure/inflatable/door,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)