PvP Respawn Timer
Makes PvP deaths count. When another player hurts you, you're In Combat for 60 seconds. If you die during that time, by any cause, you wait 60 seconds to respawn instead of vanilla's 10. Every other death stays exactly as in vanilla.
What players see
- In Combat debuff: an icon with a 60 s timer, refreshed by every hit from another player.
- A PvP death: the screen stays clear on your body for 50 seconds, then fades to black exactly like a normal death and respawns at 60 s.
- Killed by overlay: "Killed by <name>" and "Respawning in N", counting from 60 to 0, on top of both the clear view and the black fade.
What counts as player damage
- Direct hits from another player, including hits fully blocked by a shield.
- Fire, spirit and poison ticks from a player's attack.
- Traps and defenses a player built (stakes and other area traps, turrets).
- A player's tames and staff summons.
Your own bombs, traps and creatures, mobs, falls and the environment never put you In Combat. If you die to any of them while already In Combat, the PvP timer applies and the kill is credited to the last player who hurt you.
Installation
Install on the server and every client. Players without the mod, or with a different minor version, can't join (Jotunn network compatibility check). Works on dedicated servers and player-hosted worlds.
With a mod manager (r2modman, Gale, Thunderstore Mod Manager), install this package; BepInExPack Valheim and Jotunn come with it.
Manual install: copy plugins/PvPRespawnTimer.dll to BepInEx/plugins/PvPRespawnTimer/, and install
BepInExPack Valheim and
Jotunn.
Configuration
BepInEx/config/caleb.PvPRespawnTimer.cfg. Everything except DebugLogging is set by the server and pushed
to clients; admins can change it while the server runs.
| Key | Default | Meaning |
|---|---|---|
CombatDurationSeconds |
60 | How long In Combat lasts; each player hit refreshes it |
PvpExtraRespawnDelaySeconds |
50 | Added to vanilla's 10 s respawn after a PvP death |
CountDamageOverTime |
true | Fire, spirit and poison ticks count as the attacker's |
CountTrapsAndDefenses |
true | Traps and turrets count as their builder's |
CountTames |
true | Tames count as their owner's |
CountSummons |
true | Summons count as their summoner's |
ServerCombatLog |
true | The server writes a daily combat log |
AnnounceKills |
false | Chat line "X was killed by Y" for everyone |
DebugLogging |
false | Verbose log (local only) |
Server combat log
With ServerCombatLog on, the server (dedicated or host) writes one line per hit and per PvP death to
BepInEx/PvPRespawnTimer/combat-YYYY-MM-DD.log:
2026-10-10 14:41:05.123 HIT victim="Bob" (2002) attacker="Odin" (1001) source=Direct
2026-10-10 14:41:20.456 KILL victim="Bob" (2002) killer="Odin" (1001) source=Trap finalBlow=Mob pos=(12.3, 30.0, -4.5)
Admin commands
Cheat-gated (F5 console with devcommands), meant for testing:
| Command | Does |
|---|---|
pvprt_status |
Combat state, last attacker, pending PvP death, overlay, config |
pvprt_tag <name> |
Pretend <name> just hit you |
pvprt_die |
Kill yourself (after pvprt_tag to test a PvP death) |
pvprt_clear |
Reset all state and remove In Combat |
pvprt_overlay [seconds] |
Preview the Killed by overlay without dying |
Compatibility
- Unfaded: not recommended together on a PvP server. Unfaded's own respawn delay and its Space-to-respawn can respawn you before the 60 s are up, and its fade removal and death banner overlap this mod's.
- DeathTweaks: expected to work. It changes items, food, skills and the spawn point on death, not the respawn timer or the fade.
- Other mods that patch
Player.OnDeath,Game.RequestRespawnorHud.UpdateBlackScreenmay interact. Please report problems with your mod list. - Crossplay: console players can't install mods, so they can't join a server that runs this mod.
Limits
- Each client runs its own timer, the same way vanilla trusts each client with its own character. A modified client could skip it.
- Logging out while In Combat is not punished.
- Leaving the world during the 60 s cancels the timer; on rejoin you respawn as normal.