UpgradeLimiter
Caps how many of each player upgrade can be stacked. Configurable per upgrade.
About this mod Author’s original text
UpgradeLimiter
A R.E.P.O. mod that caps how many of each player upgrade can be stacked. Each upgrade has its own enable toggle and max-stacks value.
When a player tries to consume an upgrade past the cap, the upgrade crystal is consumed normally but the stat does not increase. Decrements and resets pass through unchanged.
Features
- Per-upgrade Enabled toggle and MaxStacks value (0–99)
- Covers all 13 base-game player upgrades (Health, Energy, ExtraJump, TumbleLaunch, TumbleClimb, TumbleWings, SprintSpeed, CrouchRest, GrabStrength, ThrowStrength, GrabRange, DeathHeadBattery, MapPlayerCount)
- Modded UpgradePlayer* methods are auto-discovered via IL scanning and added to the config
- Host-to-client sync via Photon room properties — only the host needs to configure caps
- Live config reload: changing limits mid-run takes effect on the next pickup, no level reload needed
- Compatible with REPOConfig — adjust settings in-game
Configuration
Config file: BepInEx/config/darkharasho.UpgradeLimiter.cfg
Each upgrade gets its own section:
[Health]
Enabled = false
MaxStacks = 5
[SprintSpeed]
Enabled = true
MaxStacks = 2
| Key | Default | Range | Description |
|-----|---------|-------|-------------|
| Enabled | false | — | When true, the upgrade is capped. When false, it behaves vanilla. |
| MaxStacks | 5 | 0–99 | Maximum stacks of this upgrade per player. 0 blocks every pickup (effectively disables the upgrade). |
Plus a sync section:
[Sync]
SyncToClients = true
When SyncToClients = true, the host pushes its caps to every client via Photon room properties and clients ignore their own local caps while in the room. When false, each client uses its own local config.
Multiplayer
The cap is enforced on the host's authoritative state, so toggling caps on a client without host sync will not actually limit the upgrade — only the host's settings matter for enforcement.
Dependencies
- BepInExPack
Installation
Install Mod Manager / r2modman, or manually place UpgradeLimiter.dll in BepInEx/plugins/UpgradeLimiter.
Building
GAME_DIR="/path/to/REPO"./package.sh
Builds the DLL and produces a -ready zip. Install the zip via r2modman.
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.
Install these first, or the mod will not work: