Skip to content

Repository files navigation

Developer: Mursisru

NORAM Adjust

Nuclear Option BepInEx 5 Version License: MIT .NET Framework 4.8


Warning

  • ~5.3 GB free RAM required - the mod pre-allocates a 5300 MB managed memory reservoir; insufficient RAM may cause allocation failure or system paging.
  • Do not combine with MpClientOpt memory_budget=1 - combined reservation can exceed 10 GB; disable one RAM mod or set memory_budget=0 in MpClientOpt.

Note

Zero IL patches - no PatchTool step; works solo, host, and dedicated client.

Pre-allocates a 5300 MB managed RAM reservoir for Nuclear Option to reduce GC stutter during gameplay.

Works for solo, host, and dedicated client — no session gate, no IL patches.


What it does

Expected log line:

[NORAMAdjust] reserved=5300MB (1.1.1 Build DEV1P4)

Install

Warning

~5.3 GB free RAM required — the mod pre-allocates a managed memory reservoir. Insufficient RAM may cause allocation failure or system paging.

Option A — release zip (recommended)

  1. Open Release v1.1.1.
  2. Download the zip for your loader:
    • BepInEx: NORAMAdjust-v1.1.1-BepInEx.zip
  3. Extract into the matching folder (see layouts below).
  4. Launch the game and confirm the log line above.

BepInEx layout:

Nuclear Option/BepInEx/plugins/com.at747.noramadjust/
  NORAMAdjust.dll

Config is created automatically at BepInEx/config/com.at747.noramadjust.cfg on first run.

No PatchTool step — this mod has zero IL patches.

Option B — build and deploy from source

Close the game before copying files.

BepInEx:

.\scripts\fetch-bepinex-libs.ps1          # once per machine
.\scripts\deploy-noram-adjust-bepinex.ps1

Configuration

Key Default Description
enabled 1 1 = allocate reservoir; 0 = mod loads but skips allocation
memory_reservoir_mb 5300 Target size in MB (decimal GB: 5.3 GB = 5300 MB)
chunk_mb 64 Allocation chunk size in MB

BepInEx (com.at747.noramadjust.cfg)

Edit BepInEx/config/com.at747.noramadjust.cfg. Defaults are created on first run.

[NORAM]
Enabled = true
MemoryReservoirMb = 5300
ChunkMb = 64
Key Default Description
Enabled true Allocate reservoir when true
MemoryReservoirMb 5300 Target size in MB (5.3 GB = 5300 MB)
ChunkMb 64 Allocation chunk size in MB

Disable without removing the mod:

[NORAM]
Enabled = false

Set MemoryReservoirMb = 0 to skip allocation while keeping Enabled = true.


Compatibility

Combination Result
MpClientOpt + NORAMAdjust (memory_budget=1) Avoid. MpClientOpt reserves ~5120 MB by default; combined usage can exceed 10 GB. Disable memory_budget in MpClientOpt or use only one RAM mod.
NORAMAdjust + other NOLoader mods Safe — no IL patch overlap.

Repository layout

NORAMAdjust/
  NORAMAdjust.sln                 # Visual Studio solution
  NOLoader.NORAMAdjust.csproj     # NOLoader mod (INOMod)
  BepInEx/NORAMAdjust/            # BepInEx plugin project
  src/
    NoramAdjustMod.cs             # NOLoader entry
    RamReservoir.cs               # Shared RAM logic
    NoramConfig.cs                # NOLoader INI parsing
  BepInEx/NORAMAdjust/
    NoramConfig.cs                # BepInEx ConfigEntry bindings
  mod.json                        # NOLoader manifest (id: com.at747.noramadjust)
  mod.ini                         # Default config template
  scripts/
    deploy-noram-adjust-mod.ps1
    deploy-noram-adjust-bepinex.ps1
    fetch-bepinex-libs.ps1
  Directory.Build.props           # NuclearOptionRoot, NOLoaderEngineRoot

Mod identity: com.at747.noramadjust · GUID: b3c4d5e6-f7a8-4901-9283-7465a6b7c8d9


Build from source

Open NORAMAdjust.sln in Visual Studio 2022+ or use the CLI:

dotnet build NORAMAdjust.sln -c Release    # BepInEx plugin
Project Configuration Output DLL
NORAMAdjust.BepInEx Release BepInEx/NORAMAdjust/bin/Release/net48/NORAMAdjust.dll

Prerequisites:

  • .NET SDK (builds net48)
  • Optional: run fetch-bepinex-libs.ps1 before building the BepInEx project (or copy BepInEx.dll / 0Harmony.dll from another local BepInEx mod into BepInEx/lib/)

Override game path via Directory.Build.user.props:

<Project>
  <PropertyGroup>
    <NuclearOptionRoot>C:\Path\To\Nuclear Option</NuclearOptionRoot>
    <NOLoaderEngineRoot>C:\Path\To\NOLoader_Engine</NOLoaderEngineRoot>
  </PropertyGroup>
</Project>

Verification

  • Main menu loads without loader errors
  • Log contains [NORAMAdjust] reserved=5300MB
  • Task Manager: managed memory ~+5.3 GB vs baseline at menu
  • enabled=0 / Enabled=false → no extra reservation after restart
  • Game exit → reserved memory released

BepInEx logs: BepInEx/LogOutput.log


License

MIT. Nuclear Option is property of its respective owners.

About

NOLoader mod for Nuclear Option — pre-allocates 5.3 GB managed RAM reservoir to reduce GC stutter.

Topics

Resources

Stars

Watchers

Forks

Releases

Contributors

Languages