diff --git a/code/modules/client/preference_setup/loadout/loadout_cosmetics_vr.dm b/code/modules/client/preference_setup/loadout/loadout_cosmetics_vr.dm
index 8a1935d3549..7ff9876a4a9 100644
--- a/code/modules/client/preference_setup/loadout/loadout_cosmetics_vr.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_cosmetics_vr.dm
@@ -1,5 +1,6 @@
/datum/gear/cosmetic/nailpolish
display_name = "nail polish (colorable)"
+ description = "Nail polish, available in every color of the rainbow! Doesn't come with nail polish remover."
path = /obj/item/weapon/nailpolish
/datum/gear/cosmetic/nailpolish/New()
@@ -11,4 +12,8 @@
polish.set_colour(polish.color)
polish.color = null
return polish
-
\ No newline at end of file
+
+/datum/gear/cosmetic/nailpolish_remover
+ display_name = "nail polish remover"
+ description = "Nail polish remover, for when the fun's over. Doesn't come with nail polish."
+ path = /obj/item/weapon/nailpolish_remover
\ No newline at end of file
diff --git a/code/modules/makeup/nailpolish.dm b/code/modules/makeup/nailpolish.dm
index 95e0fd24cd1..ee901825e6b 100644
--- a/code/modules/makeup/nailpolish.dm
+++ b/code/modules/makeup/nailpolish.dm
@@ -2,6 +2,7 @@
/obj/item/weapon/nailpolish
name = "nail polish"
+ desc = "Nail polish, to paint your nails with. Or someone else's!"
icon = 'icons/obj/nailpolish_vr.dmi'
icon_state = "nailpolish"
var/colour = "#FF0000"
@@ -100,7 +101,51 @@
return
body_part.nail_polish = polish
target.update_icons_body()
+
+/obj/item/weapon/nailpolish_remover
+ name = "nail polish remover"
+ desc = "Paint thinner, acetone, nail polish remover; whatever you call it, it gets the job done."
+ drop_sound = 'sound/items/drop/helm.ogg'
+ pickup_sound = 'sound/items/pickup/helm.ogg'
+ icon = 'icons/obj/nailpolish_vr.dmi'
+ icon_state = "nailpolishremover"
+ var/open = FALSE
+
+/obj/item/weapon/nailpolish_remover/attack_self(var/mob/user)
+ open = !open
+ to_chat(user, SPAN_NOTICE("You [open ? "open" : "close"] \the [src]."))
+ update_icon()
+
+/obj/item/weapon/nailpolish_remover/update_icon()
+ . = ..()
+ icon_state = "[initial(icon_state)][open ? "open" : null]"
+
+/obj/item/weapon/nailpolish_remover/attack(var/mob/user, var/mob/living/carbon/human/target)
+ if(!open)
+ return
+
+ if(!istype(target))
+ return
+ var/bp = user.zone_sel.selecting
+ var/obj/item/organ/external/body_part = target.get_organ(bp)
+ if(!body_part)
+ to_chat(user, SPAN_WARNING("[target] is missing that limb!"))
+ return
+ if(!body_part.nail_polish)
+ to_chat(user, SPAN_NOTICE("[target]'s [body_part.name] has no nail polish to remove!"))
+ return
+ if(user == target)
+ user.visible_message("\The [user] removes their nail polish with \the [src].", "You remove your nail polish with \the [src].")
+ else
+ if(do_after(user, 2 SECONDS, target))
+ user.visible_message("\The [user] removes \the [target]'s nail polish with \the [src].", "You remove \the [target]'s nail polish with \the [src].")
+ else
+ to_chat(user, SPAN_NOTICE("Both you and [target] must stay still!"))
+ return
+ body_part.nail_polish = null
+ target.update_icons_body()
+
/datum/nail_polish
var/icon = 'icons/obj/nailpolish_vr.dmi'
var/icon_state
diff --git a/icons/obj/nailpolish_vr.dmi b/icons/obj/nailpolish_vr.dmi
index 1adfe631970..e3bddf098e8 100644
Binary files a/icons/obj/nailpolish_vr.dmi and b/icons/obj/nailpolish_vr.dmi differ