diff --git a/code/modules/mob/living/basic/basic_mob.dm b/code/modules/mob/living/basic/basic_mob.dm
index 9964b5abcb9..048144b89c7 100644
--- a/code/modules/mob/living/basic/basic_mob.dm
+++ b/code/modules/mob/living/basic/basic_mob.dm
@@ -275,6 +275,16 @@ RESTRICT_TYPE(/mob/living/basic)
create_debug_log("woke up, trigger reason: [reason]")
med_hud_set_status()
+/mob/living/basic/revive()
+ ..()
+ density = initial(density)
+ health = maxHealth
+ icon = initial(icon)
+ icon_state = icon_living
+ density = initial(density)
+ if(TRAIT_FLYING in initial_traits)
+ ADD_TRAIT(src, TRAIT_FLYING, INNATE_TRAIT)
+
/mob/living/basic/death(gibbed)
. = ..()
if(!.)
diff --git a/code/modules/reagents/chemistry/reagents/medicine.dm b/code/modules/reagents/chemistry/reagents/medicine.dm
index dc3ed2953b5..f4b90e799cd 100644
--- a/code/modules/reagents/chemistry/reagents/medicine.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine.dm
@@ -940,6 +940,15 @@
SM.loot.Cut() //no abusing Lazarus Reagent for farming unlimited resources
SM.visible_message("[SM] seems to rise from the dead!")
+ if(isbasicmob(M) && method == REAGENT_TOUCH)
+ var/mob/living/basic/BM = M
+ if(BM.sentience_type != revive_type) // No reviving Ash Drakes for you
+ return
+ if(BM.stat == DEAD)
+ BM.revive()
+ BM.loot.Cut() //no abusing Lazarus Reagent for farming unlimited resources
+ BM.visible_message("[BM] seems to rise from the dead!")
+
if(iscarbon(M))
if(method == REAGENT_INGEST || (method == REAGENT_TOUCH && prob(25)))
if(M.stat == DEAD)