From a3b2c3a251ad4dac09e7d985cbb3d6ac9e636b1b Mon Sep 17 00:00:00 2001
From: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>
Date: Tue, 28 Oct 2025 09:26:16 -0400
Subject: [PATCH] Refactors revenants to basic mobs (#30661)
---
code/datums/elements/rust_element.dm | 2 +-
code/game/objects/structures/tables_racks.dm | 2 +-
.../antagonists/_common/antag_spawner.dm | 4 +-
.../events}/revenant_spawn_event.dm | 4 +-
code/modules/mob/dead/observer/orbit.dm | 2 +-
.../basic/hostile}/revenant/revenant.dm | 71 ++++++++++---------
.../hostile}/revenant/revenant_abilities.dm | 28 ++++----
code/modules/mob/mob_misc_procs.dm | 2 +-
code/modules/tgui/states/default.dm | 2 +-
code/modules/tgui/states/hands.dm | 2 +-
code/modules/tgui/states/physical.dm | 2 +-
paradise.dme | 6 +-
tools/ci/check_simplemob_additions.py | 1 -
13 files changed, 65 insertions(+), 63 deletions(-)
rename code/{game/gamemodes/miniantags/revenant => modules/events}/revenant_spawn_event.dm (91%)
rename code/{game/gamemodes/miniantags => modules/mob/living/basic/hostile}/revenant/revenant.dm (87%)
rename code/{game/gamemodes/miniantags => modules/mob/living/basic/hostile}/revenant/revenant_abilities.dm (94%)
diff --git a/code/datums/elements/rust_element.dm b/code/datums/elements/rust_element.dm
index bdf5a5655d4..973455c23bb 100644
--- a/code/datums/elements/rust_element.dm
+++ b/code/datums/elements/rust_element.dm
@@ -95,7 +95,7 @@
if(!isliving(entered))
return
var/mob/living/victim = entered
- if(istype(victim, /mob/living/simple_animal/revenant))
+ if(istype(victim, /mob/living/basic/revenant))
return
victim.apply_status_effect(STATUS_EFFECT_RUST_CORRUPTION)
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index ae652bb1a84..f430de16a51 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -359,7 +359,7 @@
return 0 SECONDS // sure
if(!isanimal_or_basicmob(flipper))
return 0 SECONDS
- if(istype(flipper, /mob/living/simple_animal/revenant))
+ if(istype(flipper, /mob/living/basic/revenant))
return 0 SECONDS // funny ghost table
switch(flipper.mob_size)
if(MOB_SIZE_TINY)
diff --git a/code/modules/antagonists/_common/antag_spawner.dm b/code/modules/antagonists/_common/antag_spawner.dm
index 9ac3a19a84b..5bfc0d76f83 100644
--- a/code/modules/antagonists/_common/antag_spawner.dm
+++ b/code/modules/antagonists/_common/antag_spawner.dm
@@ -340,7 +340,7 @@
var/veil_msg = "The ectoplasm is awake and seeps \
away..."
var/objective_verb = "Harvest"
- var/mob/living/revenant = /mob/living/simple_animal/revenant
+ var/mob/living/revenant = /mob/living/basic/revenant
/obj/item/antag_spawner/revenant/attack_self__legacy__attackchain(mob/user)
if(level_blocks_magic(user.z)) //this is to make sure the wizard does NOT summon a revenant from the Den..
@@ -369,7 +369,7 @@
qdel(src)
/obj/item/antag_spawner/revenant/spawn_antag(client/C, turf/T, type = "", mob/user)
- var/mob/living/simple_animal/revenant/M = new /mob/living/simple_animal/revenant(pick(GLOB.xeno_spawn))
+ var/mob/living/basic/revenant/M = new /mob/living/basic/revenant(pick(GLOB.xeno_spawn))
M.key = C.key
var/list/messages = list()
diff --git a/code/game/gamemodes/miniantags/revenant/revenant_spawn_event.dm b/code/modules/events/revenant_spawn_event.dm
similarity index 91%
rename from code/game/gamemodes/miniantags/revenant/revenant_spawn_event.dm
rename to code/modules/events/revenant_spawn_event.dm
index 227d89666df..a7eef1906a0 100644
--- a/code/game/gamemodes/miniantags/revenant/revenant_spawn_event.dm
+++ b/code/modules/events/revenant_spawn_event.dm
@@ -13,7 +13,7 @@
return
spawn()
- var/list/candidates = SSghost_spawns.poll_candidates("Do you want to play as a revenant?", ROLE_REVENANT, TRUE, source = /mob/living/simple_animal/revenant)
+ var/list/candidates = SSghost_spawns.poll_candidates("Do you want to play as a revenant?", ROLE_REVENANT, TRUE, source = /mob/living/basic/revenant)
if(!length(candidates))
key_of_revenant = null
kill()
@@ -35,7 +35,7 @@
if(!spawn_locs) //If we can't find THAT, then give up
kill()
return
- var/mob/living/simple_animal/revenant/revvie = new /mob/living/simple_animal/revenant/(pick(spawn_locs))
+ var/mob/living/basic/revenant/revvie = new /mob/living/basic/revenant/(pick(spawn_locs))
player_mind.transfer_to(revvie)
dust_if_respawnable(C)
player_mind.assigned_role = SPECIAL_ROLE_REVENANT
diff --git a/code/modules/mob/dead/observer/orbit.dm b/code/modules/mob/dead/observer/orbit.dm
index 79d250ea17e..424df95b6ee 100644
--- a/code/modules/mob/dead/observer/orbit.dm
+++ b/code/modules/mob/dead/observer/orbit.dm
@@ -145,7 +145,7 @@ GLOBAL_DATUM_INIT(orbit_menu, /datum/orbit_menu, new)
var/list/antag_serialized = serialized.Copy()
antag_serialized["antag"] = "Terror Spider"
antagonists += list(antag_serialized)
- else if(istype(M, /mob/living/simple_animal/revenant))
+ else if(istype(M, /mob/living/basic/revenant))
var/list/antag_serialized = serialized.Copy()
antag_serialized["antag"] = "Revenant"
antagonists += list(antag_serialized)
diff --git a/code/game/gamemodes/miniantags/revenant/revenant.dm b/code/modules/mob/living/basic/hostile/revenant/revenant.dm
similarity index 87%
rename from code/game/gamemodes/miniantags/revenant/revenant.dm
rename to code/modules/mob/living/basic/hostile/revenant/revenant.dm
index 817a3574599..97dc0500ba6 100644
--- a/code/game/gamemodes/miniantags/revenant/revenant.dm
+++ b/code/modules/mob/living/basic/hostile/revenant/revenant.dm
@@ -6,7 +6,7 @@
#define INVISIBILITY_REVENANT 45
#define REVENANT_NAME_FILE "revenant_names.json"
-/mob/living/simple_animal/revenant
+/mob/living/basic/revenant
name = "revenant" //The name shown on examine
real_name = "revenant" //The name shown in dchat
desc = "A malevolent spirit."
@@ -17,20 +17,23 @@
incorporeal_move = INCORPOREAL_MOVE_HOLY_BLOCK
see_invisible = INVISIBILITY_REVENANT
invisibility = INVISIBILITY_REVENANT
- health = INFINITY //Revenants don't use health, they use essence instead
+ health = INFINITY // Revenants don't use health, they use essence instead
maxHealth = INFINITY
see_in_dark = 8
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
- response_help = "passes through"
- response_disarm = "swings at"
- response_harm = "punches"
+ response_help_continuous = "passes through"
+ response_help_simple = "pass through"
+ response_disarm_continuous = "swings at"
+ response_disarm_simple = "swing at"
+ response_harm_continuous = "punches"
+ response_harm_simple = "punch"
unsuitable_atmos_damage = 0
- minbodytemp = 0
- maxbodytemp = INFINITY
+ minimum_survivable_temperature = 0
+ maximum_survivable_temperature = INFINITY
harm_intent_damage = 0
- friendly = "touches"
+ friendly_verb_continuous = "touches"
+ friendly_verb_simple = "touch"
status_flags = 0
- wander = FALSE
density = FALSE
move_resist = INFINITY
mob_size = MOB_SIZE_TINY
@@ -80,7 +83,7 @@
/// Are we currently dying? extra check against becomming incorporeal
var/dying = FALSE
-/mob/living/simple_animal/revenant/Life(seconds, times_fired)
+/mob/living/basic/revenant/Life(seconds, times_fired)
..()
if(revealed && essence <= 0)
dying = TRUE
@@ -99,29 +102,29 @@
to_chat(src, "You can move again!")
update_spooky_icon()
-/mob/living/simple_animal/revenant/ex_act(severity)
+/mob/living/basic/revenant/ex_act(severity)
return TRUE //Immune to the effects of explosions.
-/mob/living/simple_animal/revenant/blob_act(obj/structure/blob/B)
+/mob/living/basic/revenant/blob_act(obj/structure/blob/B)
return //blah blah blobs aren't in tune with the spirit world, or something.
-/mob/living/simple_animal/revenant/singularity_act()
+/mob/living/basic/revenant/singularity_act()
return //don't walk into the singularity expecting to find corpses, okay?
-/mob/living/simple_animal/revenant/narsie_act()
+/mob/living/basic/revenant/narsie_act()
return //most humans will now be either bones or harvesters, but we're still un-alive.
-/mob/living/simple_animal/revenant/electrocute_act(shock_damage, source, siemens_coeff = 1, flags = NONE)
+/mob/living/basic/revenant/electrocute_act(shock_damage, source, siemens_coeff = 1, flags = NONE)
return FALSE //You are a ghost, atmos and grill makes sparks, and you make your own shocks with lights.
-/mob/living/simple_animal/revenant/adjustHealth(amount, updating_health = TRUE)
+/mob/living/basic/revenant/adjustHealth(amount, updating_health = TRUE)
if(!revealed)
return
essence = max(0, essence-amount)
if(!essence)
to_chat(src, "You feel your essence fraying!")
-/mob/living/simple_animal/revenant/say(message)
+/mob/living/basic/revenant/say(message)
if(!message)
return
log_say(message, src)
@@ -130,14 +133,14 @@
say_dead(message)
-/mob/living/simple_animal/revenant/get_status_tab_items()
+/mob/living/basic/revenant/get_status_tab_items()
var/list/status_tab_data = ..()
. = status_tab_data
status_tab_data[++status_tab_data.len] = list("Current essence:", "[essence]/[essence_regen_cap]E")
status_tab_data[++status_tab_data.len] = list("Stolen essence:", "[essence_accumulated]E")
status_tab_data[++status_tab_data.len] = list("Stolen perfect souls:", "[perfectsouls]")
-/mob/living/simple_animal/revenant/Initialize(mapload)
+/mob/living/basic/revenant/Initialize(mapload)
. = ..()
if(!mapload)
var/list/built_name = list()
@@ -154,13 +157,13 @@
giveSpells()
RegisterSignal(src, COMSIG_BODY_TRANSFER_TO, PROC_REF(make_revenant_antagonist))
-/mob/living/simple_animal/revenant/proc/make_revenant_antagonist(revenant)
+/mob/living/basic/revenant/proc/make_revenant_antagonist(revenant)
SIGNAL_HANDLER // COMSIG_BODY_TRANSFER_TO
mind.assigned_role = SPECIAL_ROLE_REVENANT
mind.special_role = SPECIAL_ROLE_REVENANT
giveObjectivesandGoals()
-/mob/living/simple_animal/revenant/proc/giveObjectivesandGoals()
+/mob/living/basic/revenant/proc/giveObjectivesandGoals()
if(!mind)
return
mind.wipe_memory() // someone kill this and give revenants their own minds please
@@ -180,7 +183,7 @@
messages.Add(mind.prepare_announce_objectives(FALSE))
to_chat(src, chat_box_red(messages.Join("
")))
-/mob/living/simple_animal/revenant/proc/giveSpells()
+/mob/living/basic/revenant/proc/giveSpells()
AddSpell(new /datum/spell/night_vision/revenant)
AddSpell(new /datum/spell/revenant_transmit)
AddSpell(new /datum/spell/aoe/revenant/defile)
@@ -190,13 +193,13 @@
AddSpell(new /datum/spell/aoe/revenant/hallucinations)
-/mob/living/simple_animal/revenant/dust()
+/mob/living/basic/revenant/dust()
return death()
-/mob/living/simple_animal/revenant/gib()
+/mob/living/basic/revenant/gib()
return death()
-/mob/living/simple_animal/revenant/death()
+/mob/living/basic/revenant/death()
if(!revealed)
return FALSE
// Only execute the below if we successfully died
@@ -221,7 +224,7 @@
move_resist = null
return ..()
-/mob/living/simple_animal/revenant/attack_by(obj/item/W, mob/living/user, params)
+/mob/living/basic/revenant/attack_by(obj/item/W, mob/living/user, params)
if(..())
return FINISH_ATTACK
@@ -235,7 +238,7 @@
return FINISH_ATTACK
-/mob/living/simple_animal/revenant/proc/castcheck(essence_cost)
+/mob/living/basic/revenant/proc/castcheck(essence_cost)
if(holy_check(src))
return
var/turf/T = get_turf(src)
@@ -250,7 +253,7 @@
return FALSE
return TRUE
-/mob/living/simple_animal/revenant/proc/change_essence_amount(essence_amt, silent = FALSE, source)
+/mob/living/basic/revenant/proc/change_essence_amount(essence_amt, silent = FALSE, source)
if(essence + essence_amt <= 0)
return
essence = max(0, essence + essence_amt)
@@ -263,7 +266,7 @@
to_chat(src, "Lost [essence_amt]E from [source].")
return TRUE
-/mob/living/simple_animal/revenant/proc/reveal(time)
+/mob/living/basic/revenant/proc/reveal(time)
if(time <= 0)
return
revealed = TRUE
@@ -277,7 +280,7 @@
unreveal_time = unreveal_time + time
update_spooky_icon()
-/mob/living/simple_animal/revenant/proc/stun(time)
+/mob/living/basic/revenant/proc/stun(time)
if(time <= 0)
return
notransform = TRUE
@@ -289,7 +292,7 @@
unstun_time = unstun_time + time
update_spooky_icon()
-/mob/living/simple_animal/revenant/proc/update_spooky_icon()
+/mob/living/basic/revenant/proc/update_spooky_icon()
if(dying)
return
@@ -321,9 +324,9 @@
/datum/objective/revenant/check_completion()
var/total_essence = 0
for(var/datum/mind/M in get_owners())
- if(!istype(M.current, /mob/living/simple_animal/revenant) || QDELETED(M.current))
+ if(!istype(M.current, /mob/living/basic/revenant) || QDELETED(M.current))
continue
- var/mob/living/simple_animal/revenant/R = M.current
+ var/mob/living/basic/revenant/R = M.current
total_essence += R.essence_accumulated
if(total_essence < targetAmount)
return FALSE
@@ -353,7 +356,7 @@
/datum/objective/revenant_fluff/check_completion()
return TRUE
-//no longer used
+// no longer used
/obj/item/ectoplasm
name = "glimmering residue"
desc = "A pile of fine blue dust. Small tendrils of violet mist swirl around it."
diff --git a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm b/code/modules/mob/living/basic/hostile/revenant/revenant_abilities.dm
similarity index 94%
rename from code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
rename to code/modules/mob/living/basic/hostile/revenant/revenant_abilities.dm
index 0198e183df2..1a14109410b 100644
--- a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
+++ b/code/modules/mob/living/basic/hostile/revenant/revenant_abilities.dm
@@ -1,5 +1,5 @@
///Harvest
-/mob/living/simple_animal/revenant/ClickOn(atom/A, params) //Copypaste from ghost code - revenants can't interact with the world directly.
+/mob/living/basic/revenant/ClickOn(atom/A, params) //Copypaste from ghost code - revenants can't interact with the world directly.
if(client.click_intercept)
client.click_intercept.InterceptClickOn(src, params, A)
@@ -39,7 +39,7 @@
return
Harvest(A)
-/mob/living/simple_animal/revenant/proc/Harvest(mob/living/carbon/human/target)
+/mob/living/basic/revenant/proc/Harvest(mob/living/carbon/human/target)
if(!castcheck(0))
return
if(draining)
@@ -141,7 +141,7 @@
T.allowed_type = /mob/living
return T
-/datum/spell/revenant_transmit/cast(list/targets, mob/living/simple_animal/revenant/user = usr)
+/datum/spell/revenant_transmit/cast(list/targets, mob/living/basic/revenant/user = usr)
for(var/mob/living/M in targets)
spawn(0)
var/msg = tgui_input_text(user, "What do you wish to tell [M]?", "Transmit")
@@ -180,10 +180,10 @@
/datum/spell/aoe/revenant/revert_cast(mob/user)
. = ..()
to_chat(user, "Your ability wavers and fails!")
- var/mob/living/simple_animal/revenant/R = user
+ var/mob/living/basic/revenant/R = user
R?.essence += cast_amount //refund the spell and reset
-/datum/spell/aoe/revenant/can_cast(mob/living/simple_animal/revenant/user = usr, charge_check = TRUE, show_message = FALSE)
+/datum/spell/aoe/revenant/can_cast(mob/living/basic/revenant/user = usr, charge_check = TRUE, show_message = FALSE)
if(user.inhibited)
return FALSE
if(cooldown_handler.is_on_cooldown())
@@ -195,7 +195,7 @@
return FALSE
return TRUE
-/datum/spell/aoe/revenant/proc/attempt_cast(mob/living/simple_animal/revenant/user = usr)
+/datum/spell/aoe/revenant/proc/attempt_cast(mob/living/basic/revenant/user = usr)
if(locked)
if(!user.castcheck(-unlock_amount))
cooldown_handler.revert_cast()
@@ -233,12 +233,12 @@
targeting.allowed_type = /obj/machinery/light
return targeting
-/datum/spell/aoe/revenant/overload/cast(list/targets, mob/living/simple_animal/revenant/user = usr)
+/datum/spell/aoe/revenant/overload/cast(list/targets, mob/living/basic/revenant/user = usr)
if(attempt_cast(user))
for(var/obj/machinery/light/L as anything in targets)
INVOKE_ASYNC(src, PROC_REF(shock_lights), L, user)
-/datum/spell/aoe/revenant/overload/proc/shock_lights(obj/machinery/light/L, mob/living/simple_animal/revenant/user)
+/datum/spell/aoe/revenant/overload/proc/shock_lights(obj/machinery/light/L, mob/living/basic/revenant/user)
if(!L.on)
return
L.visible_message("\The [L] suddenly flares brightly and begins to spark!")
@@ -274,7 +274,7 @@
targeting.range = aoe_range
return targeting
-/datum/spell/aoe/revenant/defile/cast(list/targets, mob/living/simple_animal/revenant/user = usr)
+/datum/spell/aoe/revenant/defile/cast(list/targets, mob/living/basic/revenant/user = usr)
if(!attempt_cast(user))
return
for(var/turf/T in targets)
@@ -313,12 +313,12 @@
return targeting
//A note to future coders: do not replace this with an EMP because it will wreck malf AIs and gang dominators and everyone will hate you.
-/datum/spell/aoe/revenant/malfunction/cast(list/targets, mob/living/simple_animal/revenant/user = usr)
+/datum/spell/aoe/revenant/malfunction/cast(list/targets, mob/living/basic/revenant/user = usr)
if(attempt_cast(user))
for(var/turf/T in targets)
INVOKE_ASYNC(src, PROC_REF(effect), user, T)
-/datum/spell/aoe/revenant/malfunction/proc/effect(mob/living/simple_animal/revenant/user, turf/T)
+/datum/spell/aoe/revenant/malfunction/proc/effect(mob/living/basic/revenant/user, turf/T)
T.rev_malfunction(TRUE)
for(var/atom/A in T.contents)
A.rev_malfunction(TRUE)
@@ -346,7 +346,7 @@
targeting.allowed_type = /obj/item
return targeting
-/datum/spell/aoe/revenant/haunt_object/cast(list/targets, mob/living/simple_animal/revenant/user = usr)
+/datum/spell/aoe/revenant/haunt_object/cast(list/targets, mob/living/basic/revenant/user = usr)
if(!attempt_cast(user))
return
@@ -382,7 +382,7 @@
addtimer(CALLBACK(src, PROC_REF(stop_timers)), 65 SECONDS, TIMER_UNIQUE)
/// Handles making an object haunted and setting it up to attack
-/datum/spell/aoe/revenant/haunt_object/proc/make_spooky(obj/item/item_to_possess, mob/living/simple_animal/revenant/user)
+/datum/spell/aoe/revenant/haunt_object/proc/make_spooky(obj/item/item_to_possess, mob/living/basic/revenant/user)
new /obj/effect/temp_visual/revenant(get_turf(item_to_possess)) // Thematic spooky visuals
var/mob/living/basic/possessed_object/revenant/possessed_object = new(item_to_possess) // Begin haunting object
addtimer(CALLBACK(possessed_object, TYPE_PROC_REF(/mob/living/basic/possessed_object, death)), 70 SECONDS, TIMER_UNIQUE) // De-haunt the object
@@ -411,7 +411,7 @@
targeting.allowed_type = /mob/living/carbon
return targeting
-/datum/spell/aoe/revenant/hallucinations/cast(list/targets, mob/living/simple_animal/revenant/user = usr)
+/datum/spell/aoe/revenant/hallucinations/cast(list/targets, mob/living/basic/revenant/user = usr)
if(!attempt_cast(user))
return
diff --git a/code/modules/mob/mob_misc_procs.dm b/code/modules/mob/mob_misc_procs.dm
index e500712d61e..ea2c82c3604 100644
--- a/code/modules/mob/mob_misc_procs.dm
+++ b/code/modules/mob/mob_misc_procs.dm
@@ -568,7 +568,7 @@
var/should_show_runechat = (subject && raw_message && !subject.orbiting_uid)
for(var/mob/M in GLOB.player_list)
- if(M.client && ((!isnewplayer(M) && M.stat == DEAD) || check_rights(R_ADMIN|R_MOD,0,M) || istype(M, /mob/living/simple_animal/revenant)) && M.get_preference(PREFTOGGLE_CHAT_DEAD))
+ if(M.client && ((!isnewplayer(M) && M.stat == DEAD) || check_rights(R_ADMIN|R_MOD,0,M) || istype(M, /mob/living/basic/revenant)) && M.get_preference(PREFTOGGLE_CHAT_DEAD))
var/follow
var/lname
if(subject)
diff --git a/code/modules/tgui/states/default.dm b/code/modules/tgui/states/default.dm
index 8f79c6a9196..27cc3fdfda5 100644
--- a/code/modules/tgui/states/default.dm
+++ b/code/modules/tgui/states/default.dm
@@ -49,7 +49,7 @@ GLOBAL_DATUM_INIT(default_state, /datum/ui_state/default, new)
return UI_INTERACTIVE
return UI_CLOSE
-/mob/living/simple_animal/revenant/default_can_use_topic(src_object)
+/mob/living/basic/revenant/default_can_use_topic(src_object)
return UI_UPDATE
/mob/living/simple_animal/demon/pulse_demon/default_can_use_topic(src_object)
diff --git a/code/modules/tgui/states/hands.dm b/code/modules/tgui/states/hands.dm
index 209cb5288c5..8e8d30a7572 100644
--- a/code/modules/tgui/states/hands.dm
+++ b/code/modules/tgui/states/hands.dm
@@ -29,5 +29,5 @@ GLOBAL_DATUM_INIT(hands_state, /datum/ui_state/hands_state, new)
return UI_INTERACTIVE
return UI_CLOSE
-/mob/living/simple_animal/revenant/hands_can_use_topic(src_object)
+/mob/living/basic/revenant/hands_can_use_topic(src_object)
return UI_UPDATE
diff --git a/code/modules/tgui/states/physical.dm b/code/modules/tgui/states/physical.dm
index 362e4ecd000..ea16eaf3d84 100644
--- a/code/modules/tgui/states/physical.dm
+++ b/code/modules/tgui/states/physical.dm
@@ -31,7 +31,7 @@ GLOBAL_DATUM_INIT(physical_state, /datum/ui_state/physical, new)
/mob/living/silicon/ai/physical_can_use_topic(src_object)
return UI_UPDATE // AIs are not physical.
-/mob/living/simple_animal/revenant/physical_can_use_topic(src_object)
+/mob/living/basic/revenant/physical_can_use_topic(src_object)
return UI_UPDATE
/**
diff --git a/paradise.dme b/paradise.dme
index 38e06cc0843..a8191cb67d3 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -947,9 +947,6 @@
#include "code\game\gamemodes\miniantags\pulsedemon\pulsedemon_event.dm"
#include "code\game\gamemodes\miniantags\pulsedemon\pulsedemon_interactions.dm"
#include "code\game\gamemodes\miniantags\pulsedemon\pulsedemon_objectives.dm"
-#include "code\game\gamemodes\miniantags\revenant\revenant.dm"
-#include "code\game\gamemodes\miniantags\revenant\revenant_abilities.dm"
-#include "code\game\gamemodes\miniantags\revenant\revenant_spawn_event.dm"
#include "code\game\gamemodes\miniantags\tourist\tourist_arrivals.dm"
#include "code\game\gamemodes\miniantags\tourist\tourist_objectives.dm"
#include "code\game\gamemodes\nuclear\nuclear.dm"
@@ -2130,6 +2127,7 @@
#include "code\modules\events\money_spam.dm"
#include "code\modules\events\prison_break.dm"
#include "code\modules\events\radiation_storm_event.dm"
+#include "code\modules\events\revenant_spawn_event.dm"
#include "code\modules\events\rogue_drones.dm"
#include "code\modules\events\sentience.dm"
#include "code\modules\events\slaughterevent.dm"
@@ -2518,6 +2516,8 @@
#include "code\modules\mob\living\basic\hostile\giant_spider\giant_spider_ai.dm"
#include "code\modules\mob\living\basic\hostile\gorilla\gorilla.dm"
#include "code\modules\mob\living\basic\hostile\gorilla\gorilla_emote.dm"
+#include "code\modules\mob\living\basic\hostile\revenant\revenant.dm"
+#include "code\modules\mob\living\basic\hostile\revenant\revenant_abilities.dm"
#include "code\modules\mob\living\basic\lavaland\goliath\goliath.dm"
#include "code\modules\mob\living\basic\lavaland\goliath\goliath_actions.dm"
#include "code\modules\mob\living\basic\lavaland\goliath\goliath_ai.dm"
diff --git a/tools/ci/check_simplemob_additions.py b/tools/ci/check_simplemob_additions.py
index e6b9c27e54a..09bef70e839 100644
--- a/tools/ci/check_simplemob_additions.py
+++ b/tools/ci/check_simplemob_additions.py
@@ -202,7 +202,6 @@ BURNDOWN_LIST = {
"/mob/living/simple_animal/pet/dog/fox/renault",
"/mob/living/simple_animal/pet/dog/fox/syndifox",
"/mob/living/simple_animal/pet/dog/pug",
- "/mob/living/simple_animal/revenant",
"/mob/living/simple_animal/shade",
"/mob/living/simple_animal/shade/cult",
"/mob/living/simple_animal/shade/holy",