Risk of Rain 2
Install with App

Details

Latest version
1.5.1
Last Updated
First Uploaded
Downloads
2.8K
Likes
1
Size
141KB
Dependants

Categories

LateGamePerformance

Version 1.5.1 for Risk of Rain 2.

The mod reduces repeated calculations and adds optional gameplay changes. Each of the 18 groups has a separate switch.

Controls

Control Action
F4 Open or close the settings window.
F3 Open or close the stat window during a run.
Hold F2 Show the cursor for the stat badge. Release F2 to resume character input.
F5 Show or hide the damage meter.
F6 Show or hide the performance display.
Pause menu Select Mod settings or Stat points with the mouse or controller.

Change these shortcuts in the settings window. General settings include the menu shortcut. Key capture accepts a main key and modifiers.

The stat badge requires available points and permission to spend them. F2 controls the first local user. A pause-menu action selects that menu's local user.

Hidden windows reject pointer, Submit, and navigation input. If the game skin is unavailable, a window does not take character control.

Settings save in BepInEx/config/com.tim.LateGamePerformance.cfg. Display positions, health bar intervals, stat gains, and allocation limits update during a run.

A startup setting affects the next startup sequence. It cannot repeat a startup sequence that already ended.

Defaults

New configurations leave Sharing, CritOverstack, and StatPoints off. These groups change game balance. The other 15 groups start on.

Existing configurations retain their saved switches. An upgrade does not replace those choices.

The performance display starts hidden. Its log records continue while the display is hidden. Disable PerfReadout to stop collection.

Performance groups

Group Behavior and limit
BuffStatsFilter Avoids selected damage-over-time stat updates. RespectOtherMods retains game updates if another plugin, stat hook, or callback exists.
NavPathBudget Limits path calculations and rotates the visit order. Completed tasks remain available after the budget expires.
TargetSearchGc Reuses candidate buffers and reduces closures. Each result still has an independent array.
DamageNumberBatch Combines particle writes for each damage manager. Numbers can appear one frame later.
RaycastThrottle Limits obstruction checks. Expiry, large movement, and direction changes require a new check.
HealthBarThrottle Sets the update interval for active and inactive bars. Larger values delay visual feedback. Disable restores values that the feature still owns.
TeamItemCountCache Retains FocusConvergence and TPHealingNova counts briefly. Relevant changes clear the cache. Other Harmony owners disable this cache.
ModelCameraPass Limits buff overlay scans. The game retains its camera, fade, and obstruction methods. Fade and flash changes still update material state.
PerfReadout Shows local frame measurements and entity counts. Averages use the last 512 collected frames. Peak buckets cover approximately nine to ten seconds.
FixedTimeCatchup Limits catch-up during a solo stage. It does not clamp multiplayer, dedicated servers, or stage transitions. Heavy load can slow simulation and game time.

Performance measurements include active collection and transitions. Run changes and feature restarts clear prior measurements.

The mod does not establish a performance improvement through frame rate alone. Simulation progress also matters for FixedTimeCatchup.

Other groups

Group Behavior
SkipIntro Waits for game initialization, then skips the intro. A slow startup logs a warning after 120 seconds and continues to wait.
BugFixes Adds independent exception guards. The log reports guard application failures and limited recovery counts.
CritOverstack Converts crit chance above 100 percent into extra crit damage.
Sharing Shares permitted pickups and gold. Equipment sharing remains optional.
EmptyChests Removes opened chests, used barrels, and spent multishops after a delay. Adaptive chests and drone vendors remain outside its scope.
AutoSprint Starts sprint during movement. Hold the sprint key to walk. Incompatible skill states suppress sprint until they return to their main state.
DpsMeter Shows damage, contribution, average DPS, and recent DPS for each player. Minion damage can count toward its owner.
StatPoints Grants points from team levels. The host can allocate health, regeneration, damage, attack speed, crit chance, armor, and move speed.

Sharing rules

The host controls Sharing. Clients need no mod for inventory and money grants.

Tier filters apply to shared copies. Custom tiers remain private. Shared items grant inventory only. The original player receives the pickup effects.

Original Void Fields, Simulacrum, and Scavenger reward counts remain intact. The legacy ScaleSharedLoot setting has no effect.

Permitted rewards can therefore produce extra shared copies. This policy preserves private rewards, excluded tiers, dead-player rules, and different reward choices.

Equipment sharing uses the active slot. Replaced equipment drops remain private and cannot trigger another shared replacement.

If replacement drops are enabled and a recipient has no living body, that recipient keeps its existing equipment.

No replacement drop means no replacement.

Gold uses the game's GiveMoney method and retains collection callbacks. Positive fractional grants round up.

MoneyShareScalar scales team payments and grants to other players. An individual pickup leaves the original player's payment unchanged.

A scalar of one divided by the player count does not reproduce every base-game payment rule.

Stat point rules

Only a local user on the host can spend or refund points. Clients can receive synchronized allocations and bonuses.

Every remote peer must confirm compatible stat support. If any peer lacks that support, bonuses pause and allocations remain.

Enable StatPoints on each peer to use it in multiplayer. Sharing remains compatible with a client without this mod.

A health spend does not heal. Health and shields retain their absolute current amounts, subject to the new maximum.

Lower budgets and caps remove excess allocations in the displayed stat order. Changed gains recalculate existing bodies.

Disable removes bonuses immediately. Re-enable can reuse valid allocations within the same run. Points do not persist after the run.

Damage measurements

The collection period starts at stage entry or meter enable. A filter change starts a new period.

Average DPS uses elapsed game time for that period. Recent DPS uses twelve half-second buckets.

A compatible host sends periodic totals to modded clients. Matching filters permit history recovery after a late join.

If the host lacks support, uses different filters, or stops snapshots, the client uses locally observed damage. Earlier damage then remains unavailable.

The display does not promise exact simultaneous values between machines. Snapshot transport and local event timing can produce brief differences.

Requirements and installation

Install BepInExPack for Risk of Rain 2, version 5.4.2121. The manifest declares this dependency.

For a mod manager, import the release ZIP as a local mod.

For manual installation, copy LateGamePerformance.dll to BepInEx/plugins/LateGamePerformance/.

If the loader reports a missing assembly, verify or reinstall the declared BepInExPack. Do not replace core libraries with arbitrary versions.

Compatibility

These replacements can bypass another mod's changes inside the original method:

Method Group
BullseyeSearch.RefreshCandidates TargetSearchGc
BullseyeSearch.GetResults TargetSearchGc
DamageNumberManager.SpawnDamageNumber DamageNumberBatch
NodeGraphNavigationSystem.UpdateAgents NavPathBudget

NavPathBudget retains calls to UpdateAgent and ComputePath. TargetSearchGc retains CheckVisible and CheckLoS calls.

ModelCameraPass retains the game camera methods and their hooks. Its overlay interval can delay a buff overlay.

Use one pickup-sharing mod at a time. Multiple sharing mods can grant extra copies.

Keep RespectOtherMods on unless you verify every relevant stat hook.

Removal

Exit the game before removal. Remove BepInEx/plugins/LateGamePerformance/.

Remove BepInEx/config/com.tim.LateGamePerformance.cfg only if you want to discard the settings.

SkipIntro writes intro_skip and splash_skip as off during archive saves. Partial application also clears its flags.

Game tests for startup, multiplayer, layouts, and release removal remain necessary. See VALIDATION.md in the source folder.

Build evidence

The reference environment uses Steam app 632360, game build 21587608, and Unity 2021.3.33f1.

Compilation and offline checks do not establish full game compatibility. This revision still needs the runtime checks in VALIDATION.md.

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