diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm
index 625772b4869..dbbb8c90e28 100644
--- a/code/game/gamemodes/changeling/changeling_powers.dm
+++ b/code/game/gamemodes/changeling/changeling_powers.dm
@@ -517,56 +517,7 @@
living_mob_list |= list(C)
C.stat = CONSCIOUS
C.tod = null
- C.setToxLoss(0)
- C.setOxyLoss(0)
- C.setCloneLoss(0)
- C.setBrainLoss(0)
- C.SetParalysis(0)
- C.SetStunned(0)
- C.SetWeakened(0)
- C.radiation = 0
- C.heal_overall_damage(C.getBruteLoss(), C.getFireLoss())
- C.reagents.clear_reagents()
- C.germ_level = 0
- C.next_pain_time = 0
- C.traumatic_shock = 0
- if(ishuman(C))
- var/mob/living/carbon/human/H = C
- H.timeofdeath = 0
- H.vessel.reagent_list = list()
- H.vessel.add_reagent("blood",560)
- H.shock_stage = 0
- spawn(1)
- H.fixblood()
- for(var/organ_name in H.organs_by_name)
- var/datum/organ/external/O = H.organs_by_name[organ_name]
- for(var/obj/item/weapon/shard/shrapnel/s in O.implants)
- if(istype(s))
- O.implants -= s
- H.contents -= s
- qdel(s)
- O.amputated = 0
- O.brute_dam = 0
- O.burn_dam = 0
- O.damage_state = "00"
- O.germ_level = 0
- O.hidden = null
- O.number_wounds = 0
- O.open = 0
- O.perma_injury = 0
- O.stage = 0
- O.status = 0
- O.trace_chemicals = list()
- O.wounds = list()
- O.wound_update_accuracy = 1
- for(var/organ_name in H.internal_organs_by_name)
- var/datum/organ/internal/IO = H.internal_organs_by_name[organ_name]
- IO.damage = 0
- IO.trace_chemicals.len = 0
- IO.germ_level = 0
- IO.status = 0
- IO.robotic = 0
- H.updatehealth()
+ C.revive(0)
C << "We have regenerated."
C.visible_message("[src] appears to wake from the dead, having healed all wounds.")
C.status_flags &= ~(FAKEDEATH)
@@ -584,6 +535,10 @@
if(!changeling) return
var/mob/living/carbon/C = src
+ if(C.suiciding)
+ C << "Why would we wish to regenerate if we have already committed suicide?"
+ return
+
if(!C.stat && alert("Are we sure we wish to fake our death?",,"Yes","No") == "No")//Confirmation for living changelings if they want to fake their death
return
C << "We will attempt to regenerate our form."
diff --git a/code/game/objects/structures/vehicles/adminbus_powers.dm b/code/game/objects/structures/vehicles/adminbus_powers.dm
index b202b90b314..462a0ed218f 100644
--- a/code/game/objects/structures/vehicles/adminbus_powers.dm
+++ b/code/game/objects/structures/vehicles/adminbus_powers.dm
@@ -198,6 +198,7 @@
for(var/mob/living/M in orange(src,3))
M.revive(1)
+ M.suiciding = 0
M << "THE ADMINBUS IS LOVE. THE ADMINBUS IS LIFE."
sleep(2)
update_rearview()
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 58ae475c361..c528d0e9d22 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1452,7 +1452,7 @@
if(config.allow_admin_rev)
L.revive(0)
message_admins("Admin [key_name_admin(usr)] healed / revived [key_name_admin(L)]!", 1)
- log_admin("[key_name(usr)] healed / Rrvived [key_name(L)]")
+ log_admin("[key_name(usr)] healed / revived [key_name(L)]")
else
usr << "Admin Rejuvinates have been disabled"
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index b5a285e47f0..dc0261f2f56 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -576,6 +576,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
return
if(config.allow_admin_rev)
M.revive(0)
+ M.suiciding = 0
log_admin("[key_name(usr)] healed / revived [key_name(M)]")
message_admins("Admin [key_name_admin(usr)] healed / revived [key_name_admin(M)]!", 1)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 788431da0bc..6f6914e8873 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -378,7 +378,13 @@
/mob/living/proc/restore_all_organs()
return
-
+/*
+NOTE TO ANYONE MAKING A PROC THAT USES REVIVE/REJUVENATE:
+If the proc calling either of these is:
+ -meant to be an admin/overpowered revival proc, make sure you set suiciding = 0
+ -meant to be something that a player uses to heal/revive themself or others, check if suiciding = 1 and prevent them from reviving if true.
+Thanks.
+*/
/mob/living/proc/revive(animation = 0)
rejuvenate(animation)