SlavkyDev-FeelingBetterAlready icon

FeelingBetterAlready

Health keeps regenerating one point at a time up to your difficulty's maximum, instead of stopping at 2 HP after a single point. Experimental.

Last updated 6 hours ago
Total downloads 3
Total rating 0 
Categories Mods
Dependency string SlavkyDev-FeelingBetterAlready-1.0.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack_IL2CPP-6.0.755 icon
BepInEx-BepInExPack_IL2CPP

BepInEx pack for IL2CPP x64 Unity games. Preconfigured and ready to use.

Preferred version: 6.0.755

README

FeelingBetterAlready 1.0.0

Health regeneration mod for Gunman Contracts – Stand Alone, built for the installed Windows x64 build using Unity 6000.0.41f1 / IL2CPP.

The stock game regenerates health only when you are sitting at exactly 1 HP, gives back exactly 1 point, and then parks its countdown at zero — so regeneration fires once per wound and stops at 2 HP, whatever the difficulty allows. This mod lifts both limits.

  • Health regenerates one point per regeneration interval (regainHealthTime, 5 seconds by default, with the game's existing in-combat multiplier).
  • It keeps going, interval after interval, up to playerHitPointsMaxRecharge — the value SetDifficulty derives from the difficulty's max HP, and the same ceiling the game already applies to health pickups and painkillers.
  • On a difficulty whose cap is 1 HP, regeneration stays off, which is the stock behaviour there.
  • Nothing else changes: damage, armour, the regeneration interval and the difficulty settings all behave as before.

Install

  1. Install BepInEx 6 Unity IL2CPP, Windows x64, build 755 or later. BepInEx 5 and Mono builds are not suitable.
  2. Extract the archive's BepInEx folder into the game folder, or copy FeelingBetterAlready.dll into BepInEx/plugins/FeelingBetterAlready/.
  3. Launch the game and check BepInEx/LogOutput.log for FeelingBetterAlready enabled.

Using MelonLoader 0.7 or later instead: put the FeelingBetterAlready-MelonLoader archive's FeelingBetterAlready.dll into Mods/, and check MelonLoader/Latest.log for the same line.

Patch data is embedded in the DLL. To uninstall, close the game and delete the DLL; game files are never modified, so nothing needs reverting.

The supported original GameAssembly.dll SHA-256 is 02e61d48b1da7e1ba16780a36775da51c7f8cdbdceba7cd105c4be33c88495fe (the 23 September 2026 update). Any other build is rejected without touching memory.

How it works

IL2CPP inlined ANBGameLogic.checkHealthRegeneration into ANBGameLogic.Update, and the inlined copy is the one that runs. Both copies get the same treatment: the health == 1.0 test becomes comiss against playerHitPointsMaxRecharge (+0xBBC) with a jae that skips only once the cap is reached.

That alone still heals just once, because Update sets the countdown to zero after restoring a point and only HurtPlayer and StartRegainHealth ever start it again. So the plugin adds a Harmony postfix on Update: while the countdown has run out and health is below the cap, it calls the game's own StartRegainHealth(), which reloads regainHealthTime. The pacing stays the game's.

The patch engine verifies the whole DLL's SHA-256, checks every patch site before writing, restores page protection afterwards and rolls back if any write fails.

Compatibility

Coexists with IDGAFMan: different functions, no overlapping patch sites. It does not touch scoring, so a regenerated run scores exactly as the game intends.

Validation

analysis/verify.py runs the real instructions in Unicorn, both the standalone function and the inlined Update copy: the unpatched build stops at 2 HP, the patched build climbs to the cap and never past it on caps from 1 to 5, and the countdown is consumed only when a point is actually restored.

Not yet playtested in a mission. Drop below the cap, wait out the interval, and confirm health keeps climbing one point at a time.