Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
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
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2100README
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/.