
You are viewing a potentially older version of this package. View Latest Version
RoundsPatchworkPlus
Universal stability patchwork engine for ROUNDS modpacks. Eliminates bullet passing/ghosting, reload NRE freezes, duplicate category crashes, Photon desyncs, and AI bugs.ROUNDS Patchwork Plus
ROUNDS Patchwork Plus is the all-in-one universal compatibility and stability patchwork engine for ROUNDS.
It silently intercepts, resolves, and suppresses hundreds of game-breaking crashes, NullReferenceExceptions, Photon network RPC desyncs, coroutine failures, and cross-mod incompatibilities common to heavily modded ROUNDS lobbies.
⚡ Key Features & Intercepted Incompatibilities
🛡️ Bullet Ghosting & Damage Interception Fix (CPCCore + PerformanceImprovements)
- When using performance optimization mods that send synthetic raycasts with null colliders (
PerformanceImprovements),CPCCorecrashed withNullReferenceExceptioninsideProjectileHit.Hit. - This caused bullets to pass right through players without dealing damage or triggering on-death explosions.
ROUNDS Patchwork Plussafely intercepts null colliders and wrapsProjectileHit.Hitwith a safety finalizer, guaranteeing bullets always deal damage, trigger effects, and destroy properly.
⏱️ Anti-Slow-Motion Watchdog (TimeHandler.timeStop / gameOverTime)
- Exceptions during bullet hit processing or round-end coroutines frequently corrupted hitstop and slow-motion curves, leaving
Time.timeScalelocked near zero. - The built-in watchdog monitors battle progress: if
timeStoporgameOverTimestays frozen for longer than expected during an active round, the engine automatically smoothly restores normal time (timeStop = 1.0f).
🔫 Reload Trigger NRE Cascade Elimination (DuringReloadTrigger)
- Modded cards with reload triggers frequently threw hundreds of
NullReferenceExceptionerrors per second insideDuringReloadTrigger.Update()when referencing uninitialized weapons. - Safely intercepts uninitialized
GunAmmoand weapon handlers, eliminating main-thread render lag and restoring smooth 60+ FPS.
🗂️ Duplicate Category Dictionary Crash Fix (Key: Root)
- Multiple card mods registering the
"Root"category without deduplication caused fatalArgumentException: An item with the same key has already been addedinsideUnboundLib.Utils.CardManagerandSandboxImprovements. - Deduplicates category registries before menu building, completely preventing card menu crashes.
📺 Twitch Shutdown Freeze Fix (RoundsWithViewers)
- Silences NREs and eliminates the forced 500ms synchronous main-thread sleep in
RWV.OnDestroy()when playing without an active Twitch connection.
🤖 Smart Bot Navigation & Teleport / Portal Awareness (AIMovementModule)
- Prevents bot AI from freezing or breaking on custom maps with teleporters, portals, or disconnected platforms (e.g.
Root_Maps). - Bots dynamically detect teleporter entrances when opponents are separated across portals or voids and step into them.
- Adds obstacle raycasting to automatically jump over walls and pits, with an anti-stuck watchdog to un-wedge trapped bots.
⏩ Ultra-Fast Round & Point Transitions
- Eliminates the 5-second artificial lag between points and rounds: accelerates
PlayerSpotlightfade durations to 0.15s, speeds up map entrance animation curves, and bypasses player readiness stall loops.
⚡ Instant Main Menu Loading & Lazy Card Visual Engine
- Eliminates the severe 30-60s main menu freeze in 1,000+ card modpacks (
ToggleCardsMenuHandlerandCardSpawnMenuHandler). Card visual instantiation is deferred lazily until category browsing.
👥 EveryonePicks + RoundsWithBots Simultaneous Bot Card Picking
- Eliminates the 25–45s screen freeze where bots took over the interactive draft loop (
IsLocalPlayer(bot) == true). - Bots pick simultaneously in the background with a realistic 1.0–1.8s delay using
RoundsWithBotsweighted AI (botCardPickerAI.PickCard), respecting category blacklists (NotForBots). - Updates the on-screen
PickBoardtoREADYin real time and automatically applies bot card upgrades viaModdingUtils.Utils.Cards.RPCA_AssignCard/ApplyCardStats.Pick.
🛡️ RayHitReflect, Photon RPC, & Coroutine Resilience
- RayHitReflect / CareenMono Collision Fixes: Dynamically initializes missing
MoveTransformandProjectileHitreferences, eliminating 80+ frame NREs inCosmicRounds. - Photon RPC Network Desync Protection: Prevents
ProjectileHit.RPCA_DoHitcrashes from invalid/orphaned Photon view IDs. - PCE SuperJumpEffect OnUpdate Protection: Stops 119+ frame NREs when dead or inactive players trigger PCE card effects.
- Explosion Missing Spawner Guard: Automatically provides fallback spawner contexts for
Explosion.DoExplosionEffects(fixes 59+ explosion NREs). - MapTransition & PlayerManager Coroutine Safety: Intercepts coroutine exceptions during round end and map transition, cleanly terminating destroyed player movements (
yield break) without stalling the match. - Leaver & Disconnect Resilience: Prevents crashes in
RWF.AssignPlayerIDandSetPlayerSpriteLayer.Startwhen players disconnect mid-round.
📦 Compatibility
Works seamlessly with any mod combination:
- CosmicRounds
- Player-Customization-Extended (PCE)
- Rounds With Friends (RWF)
- EveryonePicks
- UnboundLib
- Performance_Improvements
- CPCCore / CPC Crafter
- Cards+ / CardsPlusPlugin
- DemonicPact
- ModdingUtils
- Will's Wacky Cards (WWC)
- StatRevealMod
🛠️ Installation
- Install via r2modman or Thunderstore Mod Manager.
- Alternatively, place
RoundsPatchworkPlus.dll,manifest.json, andicon.pnginto your BepInEx plugins folder:BepInEx/plugins/naccel_inc-RoundsPatchworkPlus/