ROUNDS
Install with App

Details

Latest version
1.2.5
Last Updated
First Uploaded
Downloads
2.2K
Likes
0
Size
149KB
Dependants

๐Ÿš€ RoundsPatchFpsFix โ€” Ultra High-FPS Engine & Performance Booster for ROUNDS

ROUNDS Version BepInEx Tested Performance

RoundsPatchFpsFix is the definitive high-performance FPS booster and engine acceleration pipeline for ROUNDS.

In vanilla ROUNDS and modpacks with dozens of cards, the game frequently locks to 30 FPS, stutters due to VSync mismatches, spawns millions of unthrottled particles, generates massive GC garbage from bullet raycasts, and lags the audio DSP thread.

RoundsPatchFpsFix completely unlocks your frame rate, accelerates physics, optimizes particles, and ensures maximum silky-smooth performance even on low-end laptops and integrated graphics!


๐ŸŒŸ What's New in v1.2.5 (Saw Optimization, Preset Logging & Card Player Aura Removal)

  • ๐Ÿ“‹ Comprehensive Preset Logging & Real-Time Active Preset Tracking:
    • Added ActivePreset ConfigEntry persisting the current preset choice (Balanced, High, Laptop, Custom).
    • Emits a formatted, readable diagnostic table in LogOutput.log both at game startup and immediately upon selecting any preset, clearly listing every modified setting and active checkbox.
    • In-game Unbound menu now displays the live active preset status ([BALANCED], [HIGH], [LAPTOP], or [CUSTOM]) and explains what each preset does.
  • ๐Ÿชš Map Saws & Destructible Objects Optimization (SawOptimizationPatch):
    • Loud Grinding Audio Loop Throttling: Eliminates ear-piercing saw screeching and DSP stutter by enforcing a customizable minimum interval (150ms default) between saw damage sound events.
    • Saw Contact Particle Clamping: Clamps excessive spark, blood, and impact debris particle bursts on saw contact to a lightweight ceiling (20 particles default).
    • Destructible Crate/Box Sound & Fragment Throttling: Limits crate destruction sound bursts and caps physics fragments when multiple boxes break simultaneously.
    • Screen Shake Scaling: Saws now properly respect the global ScreenShakeMultiplier.
  • โœจ Card Aura & Player Coloring Particle Stripping (PlayerAuraOptimizationPatch):
    • Added DisableCardPlayerAuras toggle (enabled in Laptop / Max preset, configurable in settings).
    • Completely strips decorative card perk aura particle systems (Toxic smoke, Frost mist, Decay, Lifesteal, orbiting card dots) and suppresses PlayerSkinParticle.BlinkColor allocations during battle for maximum low-end laptop FPS.
  • ๐Ÿงช Polygon Verification Suite Expanded (212/212 Tests Passed):
    • Full automated verification covering preset transitions, saw audio cooldowns, particle clamps, aura removal, and bot safety.

๐ŸŒŸ What's New in v1.2.4 (Full Integration & Modernization of Performance Improvements)

  • ๐Ÿš€ Full Integration & Modernization of "Performance Improvements":
    • Seamlessly integrates, modernizes, and supercharges all enhancements from the 3-year-old unmaintained Performance_Improvements mod directly into RoundsPatchFpsFix!
  • ๐ŸŽฎ Controller Input Stutter Fix (MenuControllerHandler):
    • Fixes catastrophic frametime spikes caused by vanilla MenuControllerHandler.Update() running FindObjectsOfType<ListMenuButton>() across the entire Unity scene hierarchy on EVERY single frame whenever any controller/gamepad input or stick movement occurred during battle.
  • โšก Bullet Hit Spark Throttling & Zero-Damage-Loss Collision Fix:
    • Dynamically throttles bullet impact sparks and flashes to prevent severe FPS drops during shotgun, barrage, and minigun fire.
    • Critical Fix over 3-year-old mod: The original mod passed null colliders in ProjectileCollision.Die(), causing NullReferenceException crashes and ghosting bullets in CPCCore and other mods. Our modern implementation guarantees 100% accurate, non-null collider references with zero damage loss or ghosting!
  • ๐ŸŒŒ Instant AABB Out-of-Bounds Bullet Purge:
    • Automatically detects and purges orphaned bullets that fly into the deep void far outside the arena using lightning-fast axis-aligned bounding boxes (AABB), eliminating CPU physics solver bloat.
  • ๐Ÿ›ก๏ธ StunPlayer & Orphaned Effect Safety:
    • Prevents fatal NullReferenceException crashes in StunPlayer.Go() when players disconnect or stun targets are destroyed.
    • Safely cleans up orphaned audio and edge bounce scripts.
  • ๐Ÿงน Spawned Objects & Decals Auto-Purge:
    • Tracks temporary objects, particles, and decals spawned during battle and purges them at point/round end.
  • ๐Ÿ“Š Adaptive Dynamic FPS Balancer (Zero-Allocation Engine):
    • Continuously monitors framerates using a lightweight exponential moving average without garbage collection allocations.
    • If FPS drops below 40 (e.g. during a massive 100-bullet explosion), it automatically engages throttles to stabilize the framerate at 60+ FPS, then smoothly restores full visual quality when combat settles.
  • ๐ŸŽ›๏ธ New In-Game Presets & Sliders (UnboundLib Menu):
    • Preset: Balanced โ€” full visual fidelity with essential physics, controller lag, and raycast optimizations.
    • Preset: High Performance โ€” tuned particle limits (100 max), 50% screen shake, 0% chromatic aberration.
    • Preset: Max Performance / Laptop Mode โ€” disables ambient background/foreground dust & embers, player skin auras, overhead light shake, and clamps particles for maximum FPS on low-end laptops!

๐ŸŒŸ What's New in v1.2.3

  • ๐Ÿค– Mass Bot/Player Spawning Prevention & Space Debouncing:
    • Completely fixes a critical vanilla engine bug in PlayerAssigner.LateUpdate() where holding Space or having unassigned/bot devices caused CreatePlayer(null) to be triggered on every single frame, spawning dozens of duplicate players/bots.
    • Replaces continuous Input.GetKey(Space) with debounced Input.GetKeyDown(Space) (0.8s cooldown) restricted to human keyboard joins.
    • Adds debouncing to KeyCode.B (0.5s cooldown) to prevent accidental duplicate bot additions.
  • ๐Ÿ›ก๏ธ Null-Device & Controller Sanitization (CharacterData.SetAI):
    • Guarantees newly created AI bots are assigned a non-null PlayerActions instance with Device = InputDevice.Null and inputType = Controller, completely preventing lobby and combat NullReferenceException cascades.
  • ๐ŸŽฎ Synchronized Lobby Auto-Ready:
    • When a human player locks in readiness in character selection, all unready AI bots automatically confirm readiness.

๐Ÿš€ Key Performance Features

1. ๐Ÿ”“ Unlocked 30 FPS Cap & Zero VSync Stutter

  • The Problem: ROUNDS natively engages a forced 30 FPS throttle (LowFrameRate) whenever windows lose focus, scenes transition, or frame pacing slips.
  • The Solution: Intercepts LowFrameRate calls, keeping the game strictly at unlocked maximum refresh rates (targetFrameRate = -1, vSyncCount = 0).

2. ๐Ÿ’ป Particle Burst Limiter (Tailored for Weak Laptops)

  • The Problem: Card packs with explosive effects (e.g. cluster bombs, phoenix revives, nuclear impacts) instantiate hundreds of simultaneous ParticleSystems, crashing FPS to single digits on Intel HD / AMD Radeon integrated graphics.
  • The Solution: Dynamically throttles excessive particle bursts above configured thresholds, retaining full visual flair while preserving smooth 60+ FPS gameplay.

3. ๐ŸŽฏ Zero-Allocation Physics Raycasting (RayCastTrailNonAllocPatch)

  • The Problem: Every projectile calculates trajectories every frame using allocating Physics2D.Raycast methods, continuously feeding the Mono garbage collector.
  • The Solution: Diverts raycasts into pre-allocated non-allocating buffers (Physics2D.RaycastNonAlloc), cutting GC memory pressure to 0 bytes.

4. ๐Ÿ”Š Audio Concurrency Voice Limiter

  • The Problem: Rapid-fire cards (miniguns, burst fire, buckshot) trigger hundreds of Sonigon audio events per second, overloading the audio DSP mixer and causing stutter.
  • The Solution: Dynamically limits concurrent duplicate sound instances, keeping audio crisp, clear, and free of DSP buffer overruns.

5. ใ€ฐ๏ธ Trail Dynamic Mesh Optimization

  • The Problem: Long bullet trails generate dense 3D meshes with thousands of vertices that stay active long after bullets ricochet or leave the screen.
  • The Solution: Dynamically trims vertex lifetimes and merges sub-pixel vertex distances, saving up to 70% of draw calls during intense fire fights.

โš™๏ธ In-Game Configuration

Configure options on the fly via Options โ†’ Mods โ†’ RoundsPatchFpsFix (UnboundLib menu):

  • Unlock FPS / VSync: Enable/disable frame rate unlock.
  • Particle Limiter: Toggle particle burst clamping.
  • Audio Voice Limiter: Toggle sound event throttling.
  • Auto Debris Purge: Enable periodic arena decal cleanup.

๐Ÿ› ๏ธ Installation

  1. Install via Thunderstore Mod Manager or r2modman.
  2. Alternatively, place RoundsPatchFpsFix.dll, manifest.json, and icon.png into your BepInEx plugins folder: BepInEx/plugins/naccel_inc-RoundsPatchFpsFix/

๐Ÿงฉ Compatibility

Tested and 100% compatible with:

  • UnboundLib
  • ModernStatsHUD
  • RoundsDashLoader
  • ROUNDS Patchwork Plus
  • Rounds With Friends (RWF)
  • EveryonePicks
  • All custom card packs and maps.

๐Ÿš€ Key Performance Features

1. ๐Ÿ”“ Unlocked 30 FPS Cap & Zero VSync Stutter

  • The Problem: ROUNDS natively engages a forced 30 FPS throttle (LowFrameRate) whenever windows lose focus, scenes transition, or frame pacing slips.
  • The Solution: Intercepts LowFrameRate calls, keeping the game strictly at unlocked maximum refresh rates (targetFrameRate = -1, vSyncCount = 0).

2. ๐Ÿ’ป Particle Burst Limiter (Tailored for Weak Laptops)

  • The Problem: Card packs with explosive effects (e.g. cluster bombs, phoenix revives, nuclear impacts) instantiate hundreds of simultaneous ParticleSystems, crashing FPS to single digits on Intel HD / AMD Radeon integrated graphics.
  • The Solution: Dynamically throttles excessive particle bursts above configured thresholds, retaining full visual flair while preserving smooth 60+ FPS gameplay.

3. ๐ŸŽฏ Zero-Allocation Physics Raycasting (RayCastTrailNonAllocPatch)

  • The Problem: Every projectile calculates trajectories every frame using allocating Physics2D.Raycast methods, continuously feeding the Mono garbage collector.
  • The Solution: Diverts raycasts into pre-allocated non-allocating buffers (Physics2D.RaycastNonAlloc), cutting GC memory pressure to 0 bytes.

4. ๐Ÿ”Š Audio Concurrency Voice Limiter

  • The Problem: Rapid-fire cards (miniguns, burst fire, buckshot) trigger hundreds of Sonigon audio events per second, overloading the audio DSP mixer and causing stutter.
  • The Solution: Dynamically limits concurrent duplicate sound instances, keeping audio crisp, clear, and free of DSP buffer overruns.

5. ใ€ฐ๏ธ Trail Dynamic Mesh Optimization

  • The Problem: Long bullet trails generate dense 3D meshes with thousands of vertices that stay active long after bullets ricochet or leave the screen.
  • The Solution: Dynamically trims vertex lifetimes and merges sub-pixel vertex distances, saving up to 70% of draw calls during intense fire fights.

โš™๏ธ In-Game Configuration

Configure options on the fly via Options โ†’ Mods โ†’ RoundsPatchFpsFix (UnboundLib menu):

  • Unlock FPS / VSync: Enable/disable frame rate unlock.
  • Particle Limiter: Toggle particle burst clamping.
  • Audio Voice Limiter: Toggle sound event throttling.
  • Auto Debris Purge: Enable periodic arena decal cleanup.

๐Ÿ› ๏ธ Installation

  1. Install via Thunderstore Mod Manager or r2modman.
  2. Alternatively, place RoundsPatchFpsFix.dll, manifest.json, and icon.png into your BepInEx plugins folder: BepInEx/plugins/naccel_inc-RoundsPatchFpsFix/

๐Ÿงฉ Compatibility

Tested and 100% compatible with:

  • UnboundLib
  • ModernStatsHUD
  • RoundsDashLoader
  • ROUNDS Patchwork Plus
  • Rounds With Friends (RWF)
  • EveryonePicks
  • All custom card packs and maps.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.