RoundsPatchFpsFix
Ultra-high FPS booster and performance acceleration engine for ROUNDS! Eliminates 30 FPS locks, VSync stutter, optimizes raycasts, limits audio thread lag, cleans decals, and boosts game smoothness.๐ RoundsPatchFpsFix โ Ultra High-FPS Engine & Performance Booster for ROUNDS
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
ActivePresetConfigEntry persisting the current preset choice (Balanced,High,Laptop,Custom). - Emits a formatted, readable diagnostic table in
LogOutput.logboth 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.
- Added
- ๐ช 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
DisableCardPlayerAurastoggle (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.BlinkColorallocations during battle for maximum low-end laptop FPS.
- Added
- ๐งช 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_Improvementsmod directly intoRoundsPatchFpsFix!
- Seamlessly integrates, modernizes, and supercharges all enhancements from the 3-year-old unmaintained
- ๐ฎ Controller Input Stutter Fix (
MenuControllerHandler):- Fixes catastrophic frametime spikes caused by vanilla
MenuControllerHandler.Update()runningFindObjectsOfType<ListMenuButton>()across the entire Unity scene hierarchy on EVERY single frame whenever any controller/gamepad input or stick movement occurred during battle.
- Fixes catastrophic frametime spikes caused by vanilla
- โก 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
nullcolliders inProjectileCollision.Die(), causingNullReferenceExceptioncrashes and ghosting bullets inCPCCoreand 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
NullReferenceExceptioncrashes inStunPlayer.Go()when players disconnect or stun targets are destroyed. - Safely cleans up orphaned audio and edge bounce scripts.
- Prevents fatal
- ๐งน 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 holdingSpaceor having unassigned/bot devices causedCreatePlayer(null)to be triggered on every single frame, spawning dozens of duplicate players/bots. - Replaces continuous
Input.GetKey(Space)with debouncedInput.GetKeyDown(Space)(0.8s cooldown) restricted to human keyboard joins. - Adds debouncing to
KeyCode.B(0.5s cooldown) to prevent accidental duplicate bot additions.
- Completely fixes a critical vanilla engine bug in
- ๐ก๏ธ Null-Device & Controller Sanitization (
CharacterData.SetAI):- Guarantees newly created AI bots are assigned a non-null
PlayerActionsinstance withDevice = InputDevice.NullandinputType = Controller, completely preventing lobby and combatNullReferenceExceptioncascades.
- Guarantees newly created AI bots are assigned a non-null
- ๐ฎ 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
LowFrameRatecalls, 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.Raycastmethods, 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
- Install via Thunderstore Mod Manager or r2modman.
- Alternatively, place
RoundsPatchFpsFix.dll,manifest.json, andicon.pnginto 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
LowFrameRatecalls, 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.Raycastmethods, 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
- Install via Thunderstore Mod Manager or r2modman.
- Alternatively, place
RoundsPatchFpsFix.dll,manifest.json, andicon.pnginto 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.
