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.
By SlavkyDev
| 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
BepInEx pack for IL2CPP x64 Unity games. Preconfigured and ready to use.
Preferred version: 6.0.755README
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 valueSetDifficultyderives 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
- Install BepInEx 6 Unity IL2CPP, Windows x64, build 755 or later. BepInEx 5 and Mono builds are not suitable.
- Extract the archive's
BepInExfolder into the game folder, or copyFeelingBetterAlready.dllintoBepInEx/plugins/FeelingBetterAlready/. - Launch the game and check
BepInEx/LogOutput.logfor 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.