diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index 3d2dfb8fb84..7a44148978e 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -615,12 +615,15 @@
if(iscarbon(M) && M.stat != DEAD)
var/mob/living/carbon/C = M
var/holycheck = ishumanbasic(C)
- if(!(holycheck || islizard(C)) || reac_volume < 5) // implying xenohumans are holy //as with all things,
+ if(reac_volume < 5 || !(holycheck || islizard(C) || (ismoth(C) && C.dna.features["moth_wings"] != "Burnt Off"))) // implying xenohumans are holy //as with all things,
if(method == INGEST && show_message)
to_chat(C, "You feel nothing but a terrible aftertaste.")
return ..()
-
- to_chat(C, "A terrible pain travels down your back as wings burst out!")
+ if(C.dna.species.has_innate_wings)
+ to_chat(C, "A terrible pain travels down your back as your wings change shape!")
+ C.dna.features["moth_wings"] = "None"
+ else
+ to_chat(C, "A terrible pain travels down your back as wings burst out!")
C.dna.species.GiveSpeciesFlight(C)
if(holycheck)
to_chat(C, "You feel blessed!")
diff --git a/code/modules/mob/dead/new_player/sprite_accessories.dm b/code/modules/mob/dead/new_player/sprite_accessories.dm
index e9cb770ccfd..3502bc1d867 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories.dm
@@ -1719,6 +1719,23 @@
center = TRUE
dimension_y = 32
+/datum/sprite_accessory/wings/megamoth
+ name = "Megamoth"
+ icon_state = "megamoth"
+ color_src = 0
+ dimension_x = 96
+ center = TRUE
+ dimension_y = 32
+ locked = TRUE
+
+/datum/sprite_accessory/wings_open/megamoth
+ name = "Megamoth"
+ icon_state = "megamoth"
+ color_src = 0
+ dimension_x = 96
+ center = TRUE
+ dimension_y = 32
+
/datum/sprite_accessory/frills
icon = 'icons/mob/mutant_bodyparts.dmi'
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 5ad72f33407..46ed7fcaee5 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -105,6 +105,8 @@ GLOBAL_LIST_EMPTY(roundstart_races)
var/datum/action/innate/flight/fly
///The icon used for the wings
var/wings_icon = "Angel"
+ ///Used to determine what description to give when using a potion of flight, if false it will describe them as growing new wings
+ var/has_innate_wings = FALSE
/// The natural temperature for a body
var/bodytemp_normal = BODYTEMP_NORMAL
diff --git a/code/modules/mob/living/carbon/human/species_types/mothmen.dm b/code/modules/mob/living/carbon/human/species_types/mothmen.dm
index f8865b97c79..e827fbf4f78 100644
--- a/code/modules/mob/living/carbon/human/species_types/mothmen.dm
+++ b/code/modules/mob/living/carbon/human/species_types/mothmen.dm
@@ -17,6 +17,8 @@
mutanteyes = /obj/item/organ/eyes/moth
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT
species_language_holder = /datum/language_holder/moth
+ wings_icon = "Megamoth"
+ has_innate_wings = TRUE
/datum/species/moth/regenerate_organs(mob/living/carbon/C,datum/species/old_species,replace_current=TRUE,list/excluded_zones)
. = ..()
@@ -42,6 +44,13 @@
if(H.dna.features["moth_wings"] != "Burnt Off" && H.bodytemperature >= 800 && H.fire_stacks > 0) //do not go into the extremely hot light. you will not survive
to_chat(H, "Your precious wings burn to a crisp!")
H.dna.features["moth_wings"] = "Burnt Off"
+ if(flying_species) //This is all exclusive to if the person has the effects of a potion of flight
+ if(H.movement_type & FLYING)
+ ToggleFlight(H)
+ H.Knockdown(1.5 SECONDS)
+ fly.Remove(H)
+ QDEL_NULL(fly)
+ H.dna.features["wings"] = "None"
handle_mutant_bodyparts(H)
/datum/species/moth/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
@@ -57,7 +66,7 @@
/datum/species/moth/space_move(mob/living/carbon/human/H)
. = ..()
- if(H.loc && !isspaceturf(H.loc) && H.dna.features["moth_wings"] != "Burnt Off")
+ if(H.loc && !isspaceturf(H.loc) && H.dna.features["moth_wings"] != "Burnt Off" && !flying_species) //"flying_species" is exclusive to the potion of flight, which has its flying mechanics. If they want to fly they can use that instead
var/datum/gas_mixture/current = H.loc.return_air()
if(current && (current.return_pressure() >= ONE_ATMOSPHERE*0.85)) //as long as there's reasonable pressure and no gravity, flight is possible
return TRUE
diff --git a/icons/mob/clothing/wings.dmi b/icons/mob/clothing/wings.dmi
index cc170ec2443..5532c46d9c0 100644
Binary files a/icons/mob/clothing/wings.dmi and b/icons/mob/clothing/wings.dmi differ