
Berserk
Toggle a berserk state: bleed health every second in exchange for a big Strength and Tumble Launch boost in R.E.P.O.Berserk
A BepInEx mod for R.E.P.O. that adds a toggleable berserk state: bleed health every second in exchange for a big Strength and Tumble Launch boost. Live fast, hit hard.
What This Mod Does
Press B to toggle berserk on or off. While it's on:
- You lose 10 HP every second (configurable — and it can kill you).
- You gain +5 Strength levels — stronger grab/throw force, and everything that reads your Strength level (Armor, the UI overlay, …) sees the boost too.
- You gain +5 Tumble Launch levels — more launch force, and if you run Increase Tumble Damage, your tumble hits land for a lot more.
A pulsing red BERSERK badge appears at the top of the screen so you always know it's active. It turns itself off automatically when you die or leave the level.
It's a glass-cannon trade: enormous burst power for a constant bleed. Pop it for a fight, then turn it off before the drain takes you.
How It Works (and why it plays nice with other mods)
The boost is applied two ways at once, and neither touches the saved upgrade data:
- Live game effect — exactly mirroring the game's own upgrade-apply helpers, but only on the live components:
physGrabber.grabStrength += 0.2 × StrengthBonustumble.tumbleLaunch += LaunchBonus
- Stat-level overlay — a temporary additive layer in Character Stats that other mods read, so Armor / Increase Tumble Damage / UI all treat you as
+5while berserk.
Because nothing is written into the game's playerUpgrade* dictionaries, Improve never absorbs the bonus and it's never baked into your .es3 save. The health drain bypasses Armor (it writes health directly instead of going through the damage path), so the bleed is never softened. Everything reverses to the exact applied amount when you toggle off.
In co-op as a client there is a third piece: the game computes grab forces and the tumble-launch impulse on the host's machine, from the host's copy of your character — a purely local boost would change nothing there. So Berserk carries the bonus over a small network bridge: when you toggle on, your bonus is sent to the host, and the Berserk installed on the host applies it to your character in its simulation (and reverses it when you toggle off, die, or the level ends). A handshake checks the host actually runs Berserk first — if it doesn't, the toggle refuses to activate, so you can never bleed health for nothing.
Configuration
Settings are in BepInEx/config/headclef.Berserk.cfg or in the in-game mod config menu:
| Key | Default | Range | Description |
|---|---|---|---|
| Toggle Key | B |
— | Key to toggle the berserk state |
| Health Drain Per Second | 10 |
0–100 | HP drained every second while active |
| Strength Bonus | 5 |
0–50 | Temporary Strength levels added while active |
| Launch Bonus | 5 |
0–50 | Temporary Tumble Launch levels added while active |
| Can Be Lethal | true |
— | If true the drain can take you to 0 HP and kill you; if false it stops at 1 HP |
| Show Indicator | true |
— | Show the on-screen BERSERK badge while active |
Requirements
- BepInEx 5.x installed for R.E.P.O.
- Character Stats — required dependency
Installation
- Install via Thunderstore (recommended) — Character Stats will be installed automatically.
- Or manually: place both
Character Stats.dllandBerserk.dllinto yourBepInEx/pluginsfolder. - Launch the game — the config file is generated on first run.
Multiplayer
- As the host or in single player: works with no requirements — your machine is the one simulating the physics.
- As a client: the host must also have Berserk installed. Grab and launch physics run on the host, so your bonus has to be applied there; the bridge does that automatically once the handshake confirms the host runs Berserk. Your own config values (bonus sizes, drain rate) are what gets applied — the host's config does not affect you.
- If the host doesn't have Berserk: pressing the toggle does nothing (a log line explains why). No drain, no half-active state — the mod is simply inactive for that lobby.
- Only you go berserk — the bonus is applied to your character only, and the bridge can never speak for another player (it mirrors the game's own owner-only RPC checks).
- Death is fully networked (it uses the game's own death call), so dying while berserk syncs correctly. The drain itself is applied locally, so other players' copy of your health bar may lag slightly until the next sync.
Development
Project Structure
├── Berserk.cs # Plugin entry point, config & the BERSERK HUD badge
├── NetworkBridge.cs # Co-op bridge — handshake + host-side stat application
├── Patches/
│ └── BerserkPatch.cs # Toggle, health drain + death, stat application, auto-off
└── README.md
Building
This project is part of the Repo.slnx solution and references Character Stats at compile time. Build the whole solution so dependencies build in the correct order:
dotnet build ../Repo.slnx
License
This project is licensed under the MIT License — see the LICENSE file for details.
These mods (all) generated by using AI tools. If there's anything wrong use NexusMods to give a feedback, I use there more than ThunderStore.