R.E.P.O.
You are viewing a potentially older version of this package. View Latest Version
Install

Details

Date Uploaded
last week
Downloads
12K
Size
106KB
Dependency string
headclef-Improve-1.2.1

Improve

Improve in the main menu

A BepInEx mod for R.E.P.O. that adds a haul-based leveling system with spendable stat points.

What This Mod Does

Earn stat points by accumulating haul across all your sessions. Spend points on any of the 13 character stats to permanently power up your character — even during an active save.

How Haul Tracking Works

Unlike other leveling mods that only count haul when you die, Improve captures your haul after every level. This means:

  • Complete a level and extract 200K? → +200K added to your lifetime haul immediately
  • Play another level and earn 300K? → +300K added
  • Die on the next level? → No extra haul added (the level had 0 haul)
  • Join a multiplayer session mid-run? → Only haul you participate in earning counts

This lets you level up during a save, not just after dying.

Leveling Formula

Haul to reach level N: baseCost × difficulty × N²

Your level is the highest N whose threshold your lifetime haul has reached — i.e. level = floor(sqrt(lifetimeHaul / (baseCost × difficulty))). Each level is a single threshold, not a running total: reaching level 4 needs the level-4 haul, not the sum of levels 1–4.

Level Hardest (×1.0) Hard (×0.75) Standard (×0.5) Easy (×0.25)
1 1,000,000 750,000 500,000 250,000
2 4,000,000 3,000,000 2,000,000 1,000,000
3 9,000,000 6,750,000 4,500,000 2,250,000
4 16,000,000 12,000,000 8,000,000 4,000,000
5 25,000,000 18,750,000 12,500,000 6,250,000

Each level awards 1 stat point to spend on any stat you want.

Difficulty Presets

Difficulty Multiplier Description
Easy 0.25 Quick progression — great for casual play
Standard 0.5 Balanced (default)
Hard 0.75 Slower grind
Hardest 1.0 Full cost — for dedicated players

Changing difficulty mid-game? The mod recalculates your level instantly. If you increase difficulty and end up with more spent points than your new level allows, the menu will warn you and lock further spending until you earn more haul or reset your stats.

Spending Stat Points

Open the Improve menu (available in main menu, escape menu, and lobby) to see two panels:

Improve menu before spending points Improve menu after spending five points into Tumble Launch

Before and after spending points — five allocated into Tumble Launch drops Available Points from 5 to 0.

Left panel — Progress:

  • Lifetime Haul
  • Current Level
  • Available / Spent Points
  • Haul needed for next level
  • Current difficulty

Right panel — Skills:

  • Sliders for all 13 stats (Health, Speed, Stamina, Extra Jump, Grab Range, Strength, Throw, Tumble Launch, Tumble Climb, Tumble Wings, Crouch Rest, Map Player Count, Death Head Battery)
  • Overspent warning if difficulty was raised

Two Types of Reset

Button What it does Keep haul? Keep level?
Reset Stats Reclaim all spent points ✅ Yes ✅ Yes
Reset All Wipe everything ❌ No ❌ No

When Stats Apply

Stats are applied a few frames after you spawn into a level, then continuously re-enforced by a watchdog (and again after each network sync) so they survive host/mod overwrites. This means:

  • Your stat bonuses are active from the very start of each level
  • Allocations are applied idempotently — never stacked twice, even across sync events
  • Changing skill allocations in the menu takes effect next level, not mid-game
  • Compatible with other mods that read stats later (like Character Stats)

Allocated Tumble Launch points reflected in the game's own Upgrades panel Improve level shown in the UI overlay

Your allocations take effect in-game: the game's own Upgrades panel shows the five Tumble Launch points, and (with the UI mod) the overlay shows your Improve level.

Your bonus never gets baked into the save file. Improve writes its bonus into your live stats at runtime, but strips it out the instant the game saves and restores it right after — so the .es3 save only ever stores legitimately purchased upgrades. This means the bonus can't stack on itself across save / quit / relaunch, and uninstalling Improve leaves no inflated stats behind.

Configuration

Settings are in BepInEx/config/headclef.Improve.cfg or in the in-game mod config menu:

Key Default Range Description
Difficulty Multiplier 0.5 0.1–2.0 Cost multiplier for leveling
Base Cost 1,000,000 100k–10M Base cost for the first level

Save data is stored separately at: %AppData%/../LocalLow/semiwork/Repo/REPOModData/Improve/save.cfg

Upgrading from 1.1.9 — the bridge setting moved

If you turned on Host-Simulated Stat Bridge in 1.1.9, you must turn it on again in Relay — it is no longer read from Improve's config.

1.1.9 carried its own co-op bridge and its own switch. 1.2.0 moves both into Relay, so that Berserk can use the same bridge without depending on Improve, and so that only one mod ever writes those stats (two would corrupt each other — see Relay's readme).

1.1.9 1.2.0
File BepInEx/config/headclef.Improve.cfg BepInEx/config/headclef.Relay.cfg
Section [Multiplayer] [Multiplayer]
Key Host-Simulated Stat Bridge Enabled

Nothing migrates automatically, and nothing warns you — the old key is simply not read any more, so a bridge you had switched on will silently stop working until you switch Relay's on. As before, it must be on for both you and the host.

The old [Multiplayer] section may linger in headclef.Improve.cfg; it is inert and you can ignore or delete it. Every other Improve setting is unchanged, and your save data, haul and allocations are untouched.

Requirements

  • BepInEx 5.x installed for R.E.P.O.
  • MenuLib — for the in-game menu.
  • Relay — required as of 1.2.0. Improve will not load without it. Thunderstore installs it for you; if you install manually, install Relay too.

Installation

  1. Install via Thunderstore (recommended) — Relay and MenuLib come with it.
  2. Or manually: place Improve.dll into your BepInEx/plugins folder, along with Relay.dll and MenuLib.
  3. Launch the game — save file is created automatically.
  4. Open the Improve button in the main menu to start spending points.
  5. Playing as a co-op client and want Grab Strength, Tumble Launch, Throw or Tumble Wings to work? Turn on Relay's switch — see Multiplayer.

Multiplayer

  • Each player tracks their own haul and stat allocations independently (client-side save). Your numbers are always your own — the host's allocations never mix into yours.
  • Only haul earned during levels you participate in counts — no credit for joining a high-haul session midway.
  • Safe in any lobby — Improve only ever boosts your own player, never anyone else's.

As the host or in single player, every stat applies normally. Nothing below matters to you.

As a co-op client

R.E.P.O. splits your stats by which machine reads them, and that split decides what a mod can do for you.

These nine work on their own — your game reads them from your own memory, so Improve just applies them:

Health · Sprint Speed · Stamina · Extra Jump · Grab Range · Tumble Climb · Crouch Rest · Map Player Count · Death Head Battery

There is a subtlety here worth knowing, because it looked like a bug for a long time: the host overwrites your upgrade values with its own copy at every scene change, and its copy only knows what you bought — it never learns about Improve. On top of that, your character reads those values exactly once, when it spawns. So simply writing your bonus back afterwards did nothing: the character had already read the old number and never looks again. Improve now applies your allocation straight to the live character instead, which is why these stats are felt from the first second of a level. This is all local — no networking is involved, and it happens whether or not you use Relay.

These four need Relay:

Grab Strength · Tumble Launch · Throw · Tumble Wings

The game computes these on the host, from the host's copy of your character — and that copy only knows your purchased upgrades. Your own machine is never asked. Worse, every message the game has for changing a stat is host-only by design, so a client cannot even ask. No client-side mod can make these four work, on its own, ever.

Relay is the way around it: your client tells the host what you should have, and Relay on the host applies it there. Improve needs no setting of its own — it just reports your allocations, Train's trained levels included. To use it:

  1. You and the host both need Relay installed (it comes with Improve).
  2. You and the host both set BepInEx/config/headclef.Relay.cfg[Multiplayer]Enabled = true, or use the in-game mod config menu.
  3. Against a host who has not done this, nothing happens and nothing breaks — you just keep vanilla behaviour for those four.

Relay ships off by default because an earlier version of this bridge broke multiplayer connect outright. Please read Relay's readme before turning it on — it explains exactly what went wrong, what changed, and why the switch exists.

Compatibility

  • Works alongside other leveling mods (stats stack via PunManager.UpdateStat)
  • Compatible with Character Stats, Agility, Constitution, Armor, Increase Tumble Damage, and other headclef mods
  • Does not interfere with shop upgrades — your stat points add on top

Development

Project Structure

├── Improve.cs                      # Plugin entry point & config
├── SaveData.cs                     # Persistent save data & level calculations
├── StatEffectApplier.cs            # Co-op client — tops live components up to the full value
├── RelayReporter.cs                # Hands the host-simulated stats to Relay
├── ImproveMenu.cs                  # MenuLib UI — progress & skill panels
├── Patches/
│   └── ImprovePatch.cs             # Haul capture & stat application hooks
└── README.md

Building

dotnet build

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.

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.