RoundsPatchworkPlus
Universal stability and compatibility engine for ROUNDS modpacks. Fixes StickFightMaps MissingMethodException, DeckCustomization NRE, ASK rarity crash, bullet coroutine errors, WWM curse log spam, and Photon desyncs.
| Last updated | 3 days ago |
| Total downloads | 509 |
| Total rating | 0 |
| Categories | Patch |
| Dependency string | naccel_inc-RoundsPatchworkPlus-1.1.7 |
| Dependants | 0 other packages depend on this package |
This mod requires the following mods to function
BepInEx-BepInExPack_ROUNDS
BepInEx pack for ROUNDS. Preconfigured and ready to use.
Preferred version: 5.4.1901README
ROUNDS Patchwork Plus
ROUNDS Patchwork Plus is the all-in-one universal compatibility, crash prevention, 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.
β‘ What's New in v1.1.7 (Map Physics, Rarity & Log Stabilization)
- πΊοΈ StickFightMaps & MapsExtended 1.4.2 Compatibility (
MissingMethodExceptionFix):- Resolved 130+ repeated
MissingMethodException: void MapsExt.MapsExtended.OnPhotonMapObjectInstantiateerrors when spawning custom physics map objects (boxes, hinges, chains). MapsExtended 1.4.2 replaced this withAddPhotonInstantiateListener.PatchworkPlusdynamically bridges the call, restoring full box scaling, hinge rotations, and chain physics without console spam.
- Resolved 130+ repeated
- π DeckCustomization
NewGUINullReferenceException Guard:- Prevents UI crash in
DeckCustomization.NewGUIwhen menu GameObjects are disposed before or during UnboundLib text rendering.
- Prevents UI crash in
- π ASK (Aidan Scyye Keyanlux)
RarityExceptionElimination:- Suppresses premature
RarityExceptioninAwakeand seamlessly bindsCodRarityduringStart, ensuring all Call of Duty custom cards receive their registered rarity safely.
- Suppresses premature
- π₯ Inactive Bullet Coroutine Guard (
Bullet_Base(Clone)):- Guards
ProjectileHit.AddPlayerToHeldagainst starting coroutines on inactive/destroyed bullet GameObjects during simultaneous blocks or deflections.
- Guards
- π WillsWackyManagers 200 KB Curse Log Flood Silenced:
- Cleanly overrides
CurseManager.CanDrawCursesConditionand deactivates hardcodedextremeDebugging, saving hundreds of KB of log disk writes and eliminating draft-phase stutter.
- Cleanly overrides
β‘ Highlights from v1.1.6 (Lobby Ready & Bot NRE Storm Elimination)
- π€ Lobby Bot Readiness & Face Button Unstacking (
CharacterSelectionInstance):- Fixed a severe issue where adding bots in modpacks without
AALUND13-RoundWithBotsthrew an unhandledNullReferenceExceptionevery single frame inCharacterSelectionInstance_Patch_Update.Prefix(currentPlayer.data.playerActions.Device.CommandWasPressed). - Intercepts bot lobby processing before RWF, sanitizes dummy input devices, hides overlapping/stacked face button portraits, and provides manual
[R]/[B]toggle readying as well as an automatic 0.5s auto-ready timer. - Leaves human players completely untouched for responsive vanilla and RWF input handling.
- Fixed a severe issue where adding bots in modpacks without
- π‘οΈ Host Immunity & Vanilla Bot Identification:
- Refined
IsBotPlayerto accurately differentiate vanilla AI players from local human hosts regardless of internal player IDs.
- Refined
- π‘οΈ Ceiling Spawn & Premature Round Start Fix:
- Fixed an issue where players spawned in the ceiling/skybox taking out-of-bounds damage and triggering round 2 before round 1 could be played.
- Preserved vanilla
PlayerManager.Movelanding detection and map transition curves, guaranteeing all players reach the floor safely before physics simulation begins.
- π‘οΈ Definitive Main Menu Freeze Fix:
- Completely overrides
UnboundLib.Utils.CardManager.FirstTimeStart()with a crash-proof implementation using case-insensitiveHashSetcategory deduplication and safe dictionary indexers (dict[key] = val). - Fixes fatal
ArgumentException: An item with the same key has already been added. Key: Rootcaused by duplicate mod category registrations (Root Core Modual, etc.). - Adds an automatic Canvas Watchdog Coroutine: if an external mod crashes during card menu initialization, the watchdog forcefully dismisses stuck fullscreen
cardMenuCanvasobjects after 1.2s, guaranteeing the main menu is never blocked by invisible overlays.
- Completely overrides
- ποΈ Empty Category Boundary Guard:
- Automatically filters out empty registered categories (
Count == 0) inToggleCardsCategoriesManager, preventingArgumentOutOfRangeExceptioncrashes.
- Automatically filters out empty registered categories (
- π§Ή Clean Initialization Dictionaries:
- Pre-clears
scrollViewsandcardObjsin bothToggleCardsMenuHandlerandSandboxImprovements.CardSpawnMenuHandlerprior to card instantiation.
- Pre-clears
π Key Stability 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.
π€ 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.
π₯ 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. - Twitch Shutdown Freeze Fix (
RoundsWithViewers): Silences NREs and eliminates the forced 500ms synchronous main-thread sleep inRWV.OnDestroy()when playing without an active Twitch connection.
π¦ 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
- ModernStatsHUD
- RoundsDashLoader
- RoundsPatchFpsFix
π οΈ 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/