NoOrbLimit
Every killed enemy always drops exactly one orb: no vanilla 3-orb cap and no player-proximity rule. Host-only. Tested on R.E.P.O. v0.5.0.NoOrbLimit
NoOrbLimit makes every enemy kill drop an orb.
In vanilla R.E.P.O. an enemy only drops an orb if a player was close to it during the last few seconds, and each enemy type has a small drop cap (usually 3). NoOrbLimit removes both limits, so a killed enemy always drops exactly one orb per death, no matter where on the map it died.
Only the host needs this mod. Orb drops are decided by the master client, so clients can join without installing anything.
What it does
- Every killed enemy drops one orb.
- The vanilla per-enemy cap (
spawnValuableMax, usually 3) is ignored. - The vanilla "player within 20 m in the last 10 seconds" rule is ignored.
- Duplicate
Despawn()calls for the same death cannot produce a second orb. - A per-level safety cap is available but disabled by default.
How it works
One orb per death
EnemyParent.Despawn() is the only place where enemy death orbs are spawned. NoOrbLimit wraps it with a Harmony patch and only changes the fields the vanilla condition reads; the original method still runs unchanged.
The spawnValuableMax cap is removed
Vanilla checks spawnValuableCurrent < spawnValuableMax. With RemoveOrbLimit = true, the cap is temporarily lifted for the duration of the call and restored afterwards, even if the original method throws.
The 20 m / 10 s proximity rule is removed
Vanilla also requires valuableSpawnTimer > 0; that timer only becomes positive when a player was within 20 m during the last 10 seconds. With IgnorePlayerProximity = true, the timer is set to 10 for the duration of the call, which is exactly what the vanilla proximity check would have done. The value is restored afterwards.
Duplicate protection
EnemyParent.Despawn() has no re-entry guard, so one death can call it more than once (for example from death code and from an animation event). NoOrbLimit remembers, per EnemyHealth component, that an orb was already produced for the current death and blocks any further attempt. The flag is reset in EnemyHealth.OnSpawn(), i.e. when the same enemy respawns, so its next death can drop one orb again.
Host only
- Drops are spawned by the master client.
- Clients do not need NoOrbLimit, and it does nothing on them.
- If you are a client, install it on the host's game to change the drops.
Configuration
The config file is created at BepInEx/config/com.reponoorblimit.host.cfg after the first launch.
| Setting | Default | Description |
|---|---|---|
Enabled |
true |
Master switch for the mod. |
RemoveOrbLimit |
true |
Ignore the vanilla per-enemy cap (spawnValuableMax, usually 3). |
MaxOrbsPerLevel |
0 |
Optional safety cap for enemy orbs per level. 0 = no cap. |
OrbDropChancePercent |
100 |
Extra drop chance rolled once per death. 100 = always drop. |
IgnorePlayerProximity |
true |
Ignore the vanilla 20 m / 10 s player-proximity rule. |
VerboseLogging |
false |
Log every drop decision and the reason it was blocked. |
The "exactly one orb per death" guarantee applies with the default values:
Enabled = true
RemoveOrbLimit = true
IgnorePlayerProximity = true
MaxOrbsPerLevel = 0
OrbDropChancePercent = 100
Known limitations
- Prefab-disabled drops are left untouched. Some enemies have
spawnValuable = falseorspawnValuableMax = 0in their prefab and never drop an orb. An example is the Tick before it reaches full HP. NoOrbLimit does not override prefab-level decisions by default. EnableVerboseLoggingto see the exact reason for each enemy inBepInEx/LogOutput.log. - Photon view ID ceiling. R.E.P.O. uses Photon and room objects share a pool of 999 view IDs (
1..999). Every orb is a room object. If a level creates enough networked objects, the pool can run out; NoOrbLimit cannot raise this limit.MaxOrbsPerLevelis the available safety valve if that ever happens. - Performance. A large number of orbs on one level means more networked and physics objects, which can cause lag or stutter, especially for clients with a weaker connection or CPU.
- Enemies without an
EnemyHealthcomponent can never drop an orb.
Compatibility
- Tested with R.E.P.O. v0.5.0.
- Requires BepInEx 5.4.23.5 (
BepInEx-BepInExPack-5.4.2305). - Host-side only; clients do not need the mod.
- Other mods that also patch
EnemyParent.Despawn()may conflict. If drops stop working, checkLogOutput.logfor Harmony or reflection errors.
AI-assisted
This mod was created with the help of AI (AI-assisted development). The code was reviewed and tested in game, but please report any issues you find.
Credits
Made by RuboMods.
