diff --git a/code/datums/spells/horsemask.dm b/code/datums/spells/horsemask.dm
index 7b880f00e42..f536041e807 100644
--- a/code/datums/spells/horsemask.dm
+++ b/code/datums/spells/horsemask.dm
@@ -36,7 +36,7 @@
return
var/obj/item/clothing/mask/horsehead/magichead = new /obj/item/clothing/mask/horsehead
- magichead.flags |= NODROP //curses!
+ magichead.flags |= NODROP | DROPDEL //curses!
magichead.flags_inv = null //so you can still see their face
magichead.voicechange = 1 //NEEEEIIGHH
target.visible_message( "[target]'s face lights up in fire, and after the event a horse's head takes its place!", \
diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm
index f6bed7b539f..71190d676e7 100644
--- a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm
+++ b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm
@@ -48,6 +48,10 @@
var/datum/action/A = X
A.UpdateButtonIcon()
+/obj/item/clothing/suit/armor/abductor/vest/dropped()
+ . = ..()
+ flags &= ~NODROP
+
/obj/item/clothing/suit/armor/abductor/vest/item_action_slot_check(slot, mob/user)
if(slot == slot_wear_suit) //we only give the mob the ability to activate the vest if he's actually wearing it.
return 1
diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm
index 7d941a41bde..aa0e7b15134 100644
--- a/code/game/gamemodes/wizard/spellbook.dm
+++ b/code/game/gamemodes/wizard/spellbook.dm
@@ -863,7 +863,7 @@
if(istype(user, /mob/living/carbon/human))
to_chat(user, "HOR-SIE HAS RISEN")
var/obj/item/clothing/mask/horsehead/magichead = new /obj/item/clothing/mask/horsehead
- magichead.flags |= NODROP //curses!
+ magichead.flags |= NODROP | DROPDEL //curses!
magichead.flags_inv = null //so you can still see their face
magichead.voicechange = 1 //NEEEEIIGHH
if(!user.unEquip(user.wear_mask))
diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm
index 547df1b96ef..400b9f0ca2e 100644
--- a/code/game/objects/effects/mines.dm
+++ b/code/game/objects/effects/mines.dm
@@ -141,7 +141,7 @@
new /obj/effect/hallucination/delusion(victim.loc, victim, force_kind = "demon", duration = duration, skip_nearby = 0)
var/obj/item/twohanded/required/chainsaw/doomslayer/chainsaw = new(victim.loc)
- chainsaw.flags |= NODROP
+ chainsaw.flags |= NODROP | DROPDEL
victim.drop_l_hand()
victim.drop_r_hand()
victim.put_in_hands(chainsaw)
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 073cd0df669..d6bd47f17ab 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -347,6 +347,8 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
A.Remove(user)
if(flags & DROPDEL)
qdel(src)
+ if((flags & NODROP) && !(initial(flags) & NODROP)) //Remove NODROP is dropped
+ flags &= ~NODROP
in_inventory = FALSE
SEND_SIGNAL(src, COMSIG_ITEM_DROPPED,user)
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 85d835651e3..249faf0aba7 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1930,7 +1930,7 @@
evilcookie.reagents.add_reagent("mutagen", 10)
evilcookie.desc = "It has a faint green glow."
evilcookie.bitesize = 100
- evilcookie.flags = NODROP
+ evilcookie.flags = NODROP | DROPDEL
H.drop_l_hand()
H.equip_to_slot_or_del(evilcookie, slot_l_hand)
logmsg = "a mutagen cookie."
@@ -1939,7 +1939,7 @@
evilcookie.reagents.add_reagent("hell_water", 25)
evilcookie.desc = "Sulphur-flavored."
evilcookie.bitesize = 100
- evilcookie.flags = NODROP
+ evilcookie.flags = NODROP | DROPDEL
H.drop_l_hand()
H.equip_to_slot_or_del(evilcookie, slot_l_hand)
logmsg = "a hellwater cookie."
diff --git a/code/modules/ninja/suit/gloves.dm b/code/modules/ninja/suit/gloves.dm
index b4c0a5305b7..3bd4b767d15 100644
--- a/code/modules/ninja/suit/gloves.dm
+++ b/code/modules/ninja/suit/gloves.dm
@@ -11,4 +11,8 @@
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
- transfer_prints = FALSE
\ No newline at end of file
+ transfer_prints = FALSE
+
+/obj/item/clothing/gloves/space_ninja/dropped()
+ . = ..()
+ flags &= ~NODROP
diff --git a/code/modules/ninja/suit/head.dm b/code/modules/ninja/suit/head.dm
index 6ed302feaad..bd8e6137a13 100644
--- a/code/modules/ninja/suit/head.dm
+++ b/code/modules/ninja/suit/head.dm
@@ -7,4 +7,8 @@
item_state = "s-ninja_hood"
armor = list(melee = 60, bullet = 60, laser = 45, energy = 15, bomb = 30, bio = 30, rad = 25)
unacidable = 1
- blockTracking = 1
\ No newline at end of file
+ blockTracking = 1
+
+/obj/item/clothing/head/helmet/space/space_ninja/dropped()
+ . = ..()
+ flags &= ~NODROP
diff --git a/code/modules/ninja/suit/mask.dm b/code/modules/ninja/suit/mask.dm
index 0ebec2e724f..f9f06fb8468 100644
--- a/code/modules/ninja/suit/mask.dm
+++ b/code/modules/ninja/suit/mask.dm
@@ -28,4 +28,8 @@ Contents:
/obj/item/clothing/mask/gas/space_ninja/Destroy()
QDEL_NULL(voice_changer)
- return ..()
\ No newline at end of file
+ return ..()
+
+/obj/item/clothing/mask/gas/voice/space_ninja/dropped()
+ . = ..()
+ flags &= ~NODROP
\ No newline at end of file
diff --git a/code/modules/ninja/suit/shoes.dm b/code/modules/ninja/suit/shoes.dm
index 5cb67e73db6..a1f37d6f76e 100644
--- a/code/modules/ninja/suit/shoes.dm
+++ b/code/modules/ninja/suit/shoes.dm
@@ -9,4 +9,9 @@
cold_protection = FEET
min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT
heat_protection = FEET
- max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT
\ No newline at end of file
+ max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT
+
+/obj/item/clothing/shoes/space_ninja/dropped()
+ . = ..()
+ flags &= ~NODROP
+
\ No newline at end of file
diff --git a/code/modules/ninja/suit/suit.dm b/code/modules/ninja/suit/suit.dm
index 6e550e64893..fbb953c7f5a 100644
--- a/code/modules/ninja/suit/suit.dm
+++ b/code/modules/ninja/suit/suit.dm
@@ -86,4 +86,8 @@ Contents:
suitShoes = null
suitOccupant = null
- return 1
\ No newline at end of file
+ return 1
+
+/obj/item/clothing/suit/space/space_ninja/dropped()
+ . = ..()
+ flags &= ~NODROP
\ No newline at end of file
diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm
index 9342b3afd29..bab7dc94e0d 100644
--- a/code/modules/surgery/organs/augments_arms.dm
+++ b/code/modules/surgery/organs/augments_arms.dm
@@ -85,7 +85,7 @@
holder = item
- holder.flags |= NODROP
+ holder.flags |= NODROP | DROPDEL
holder.unacidable = 1
holder.slot_flags = null
holder.w_class = WEIGHT_CLASS_HUGE