ROUNDS
You are viewing a potentially older version of this package. View Latest Version
Install with App

Details

Date Uploaded
Downloads
696
Size
115KB

ROUNDS Patchwork Plus

ROUNDS Mod Version

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), CPCCore crashed with NullReferenceException inside ProjectileHit.Hit.
  • This caused bullets to pass right through players without dealing damage or triggering on-death explosions.
  • ROUNDS Patchwork Plus safely intercepts null colliders and wraps ProjectileHit.Hit with 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.timeScale locked near zero.
  • The built-in watchdog monitors battle progress: if timeStop or gameOverTime stays 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 NullReferenceException errors per second inside DuringReloadTrigger.Update() when referencing uninitialized weapons.
  • Safely intercepts uninitialized GunAmmo and 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 fatal ArgumentException: An item with the same key has already been added inside UnboundLib.Utils.CardManager and SandboxImprovements.
  • 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 PlayerSpotlight fade 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 (ToggleCardsMenuHandler and CardSpawnMenuHandler). 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 RoundsWithBots weighted AI (botCardPickerAI.PickCard), respecting category blacklists (NotForBots).
  • Updates the on-screen PickBoard to READY in real time and automatically applies bot card upgrades via ModdingUtils.Utils.Cards.RPCA_AssignCard / ApplyCardStats.Pick.

🛡️ RayHitReflect, Photon RPC, & Coroutine Resilience

  • RayHitReflect / CareenMono Collision Fixes: Dynamically initializes missing MoveTransform and ProjectileHit references, eliminating 80+ frame NREs in CosmicRounds.
  • Photon RPC Network Desync Protection: Prevents ProjectileHit.RPCA_DoHit crashes 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.AssignPlayerID and SetPlayerSpriteLayer.Start when 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

  1. Install via r2modman or Thunderstore Mod Manager.
  2. Alternatively, place RoundsPatchworkPlus.dll, manifest.json, and icon.png into your BepInEx plugins folder: BepInEx/plugins/naccel_inc-RoundsPatchworkPlus/
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.