zoltan-EnemiesStayDead icon

EnemiesStayDead

Killed enemies stay killed. No respawn timer, no second wave of the same monster.

By zoltan
Last updated 5 hours ago
Total downloads 62
Total rating 0 
Categories Mods Server-side AI Generated
Dependency string zoltan-EnemiesStayDead-1.0.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100

README

EnemiesStayDead

Kill an enemy in R.E.P.O. and it stays dead for the rest of the level.

Built and compiled against game build v0.4.4 (Cosmetics Update line).

Why this exists

In vanilla, "death" isn't destruction. The enemy despawns and EnemyParent starts a DespawnedTimer; when it expires the same monster calls Spawn() again and walks back into the level. Killing something buys you a breather, not a removal.

This mod records the death and refuses the respawn.

Note this is different to UnkillableEnemyFixer, which force-despawns enemies that bug out and refuse to die. That fixes a monster not dying; this stops a properly dead one from coming back. They solve different problems and can be run together — set ForceDespawnOnDeath = false here if you use both.

Host only

Enemy spawning is authoritative on the master client. If the host never calls Spawn(), the spawn RPC never goes out and clients stay in sync without needing the mod installed. Patching the RPC receiver on clients would risk desync, so it deliberately doesn't.

Only the host needs this.

Config

BepInEx/config/benjamin.enemiesstaydead.cfg

Key Default Notes
Enabled true Master switch
Lives 1 Deaths before an enemy stops returning. Bump it to give monsters extra lives
BlockAllRespawns false Also blocks the routine despawn/respawn that happens when players wander far away. Makes levels much emptier
ForceDespawnOnDeath false Also calls Despawn() on death, for enemies that bug out and stay alive
Verbose false Logs every death and blocked respawn

Balance warning

Enemy count scales with level and moon phase, so on early levels this makes runs noticeably easier — clear a floor and it stays clear. It bites harder later, where the spawn pool is deep enough that you'll still be outnumbered but now every kill actually counts. Lives = 2 or 3 is a reasonable middle ground if 1 feels too generous.

Records are wiped on level change; every level generates fresh enemy objects so nothing carries between floors.

Building

Requires .NET SDK 8.0+. Add the NuGet feeds in nuget.config, then:

dotnet build -c Release

Output lands in bin/Release/netstandard2.1/EnemiesStayDead.dll. Drop it in BepInEx/plugins/.