

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.
Enabled toggle and MaxStacks value (0–99)UpgradePlayer* methods are auto-discovered via IL scanning and added to the configConfig 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.
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.
Install via Thunderstore Mod Manager / r2modman, or manually place UpgradeLimiter.dll in BepInEx/plugins/UpgradeLimiter/.
GAME_DIR="/path/to/REPO" ./package.sh
Builds the DLL and produces a Thunderstore-ready zip. Install the zip via r2modman.