RoundsDashLoader
Lightning-fast game startup for ROUNDS! Caches reflections & textures, skips intro, optimizes async streaming, and fixes menu freezes in heavy modpacks.
| Last updated | 6 hours ago |
| Total downloads | 362 |
| Total rating | 0 |
| Categories | Patch |
| Dependency string | naccel_inc-RoundsDashLoader-1.0.5 |
| 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
โก RoundsDashLoader โ Universal Startup & Performance Optimizer for ROUNDS
RoundsDashLoader is a comprehensive, standalone startup accelerator and combat anti-stutter mod for ROUNDS, inspired by the renowned DashLoader optimization mod from Minecraft.
In heavily modded modpacks (50 to 160+ mods with hundreds of custom cards and maps), ROUNDS startup typically stalls for 15 to 45 seconds due to redundant reflection, uncompressed texture decoding, splash delays, rogue unpatch calls, and garbage collection freezes.
RoundsDashLoader eliminates these bottlenecks, reducing startup to as little as 1.49s - 2.29s and keeping in-game combat 100% fluid and stutter-free.
๐ What's New in v1.0.4 (Heavy Modpack Optimization & Freeze Fix)
- ๐ก๏ธ Zero Menu Freezes: Rewrote
IntroAndMenuSkipPatchwith non-blocking postfix execution and safetarget.Open()binding without destroying video gameobjects or blockingUpdate(). - โก Eliminated 15s Shader Warmup Stall: Removed redundant
Shader.WarmupAllShaders()call that was stalling CPU for 15.058s compiling 2005 shader combinations. - ๐งน Balanced GC Lifecycle: Removed startup GC disabling so 160+ mods don't exhaust memory heaps. GC pausing remains strictly active during intense gunfights.
- ๐ Tuned Asynchronous Upload: 4ms time-slice and 32MB buffer ensure locked 60 FPS without UI starvation.
- ๐พ RAM Cleanup: Automatically clears raw texture byte arrays from RAM upon reaching the Main Menu.
๐ What's New in v1.0.3 (Mega-Modpack Update)
- ๐ฅ Early-Boot #1 Execution Priority: Uses topological ModId
000_rounds_dashloaderso BepInEx 5.4.19 always loads DashLoader as Plugin #1 before all other 160+ mods! - โ๏ธ Dual-Mode Patcher Architecture: Operates simultaneously as a Preloader Patcher (
BepInEx/patchers/) and runtime Plugin (BepInEx/plugins/) for maximum early-boot hook coverage. - ๐ก๏ธ Photon Crash Suppression: Suppresses
ReflectionTypeLoadExceptioninPhoton.Pun.Simple.ContactTriggerwhen scanningMMHOOK_Assembly-CSharp.dll(which previously caused 4TypeInitializationExceptionfatal crashes during boot). - โก Harmony Member Fast-Caches: Added thread-safe memoized caches for
AccessTools.Method,AccessTools.Field, andAccessTools.Propertyfor instantaneous lookup speeds (~21 ยตs). - ๐ Rogue Mod
UnpatchAllProtection: EnforcesHarmonyGlobalSettings.DisallowLegacyGlobalUnpatchAll = trueto prevent badly written mods from wiping out other mods' patches.
๐ Key Optimization Pillars
1. ๐ง Harmony Reflection Fast-Path Cache (HarmonyTypeCachePatch)
- The Problem: Modded profiles trigger
AccessTools.TypeByNamedozens of times during boot. HarmonyX iteratively scans the entire 15+ MBMMHOOK_Assembly-CSharp.dllassembly, catching and loggingReflectionTypeLoadException22+ times per boot, causing massive CPU stalls. - The Solution: RoundsDashLoader intercepts
AccessTools.GetTypesFromAssembly,AccessTools.TypeByName, and member lookups:- Caches
Type[]references per assembly in a thread-safeConcurrentDictionary(assemblies are scanned exactly once). - Subsequent type and member lookups operate at $O(1)$ in memory rather than traversing all loaded assemblies.
- Caches
2. โฉ Zero-Frame Splash & Video Bypass (SplashScreenPatch & IntroAndMenuSkipPatch)
- The Problem: Unity 2018 hardcodes a 2.5-second splash screen, followed by
SkipIntrowaiting for Landfall intro video buffers and animations (total ~4.5s delay). - The Solution: Instantly flags
SplashScreen.isFinished = trueand invokesSkipIntro.Skip()on frame 0, bypassing both the splash screen and intro videos and dropping players straight into the interactive Main Menu.
3. ๐ฅ Combat GC Lifecycle & Anti-Stutter (CombatOptimizationPatch)
- The Problem: During intense gunfights, bullet collisions, card triggers, explosions, and damage popups allocate short-lived C# objects. Mono's Boehm GC triggers unpredictable 50โ150ms stop-the-world pauses right while aiming or shooting.
- The Solution:
- During Active Combat (
GM_ArmsRace.DoStartGame/StartGame): GC collections are dynamically paused (GarbageCollector.GCMode = Disabled). Zero frame drops, zero microstutters during gunfights. - Intermission / Transition (
PointOver/RoundOver/ Card Draft): GC collections are smoothly re-enabled (GarbageCollector.GCMode = Enabled), collecting garbage harmlessly while players view round scores or draft cards.
- During Active Combat (
4. ๐ฆ High-Throughput Asynchronous Streaming (MainMenuHandlerPatch)
- Sets
QualitySettings.asyncUploadBufferSize = 128(128 MB persistent buffer) andasyncUploadTimeSlice = 32msto prevent allocation churning when streaming card art. - Sets
Application.backgroundLoadingPriority = ThreadPriority.Highfor seamless texture loading.
5. ๐ผ๏ธ Raw Texture Stream & 64-Bit FNV-1a Hashing (TextureCachePatch & FastHashUtil)
- Caches raw decoded RGBA32 texture buffers on disk (
BepInEx/cache/RoundsDashLoader/). - Uses a high-throughput 64-bit FNV-1a hash algorithm (> 6,400 MB/s throughput) to identify repeat textures and stream raw buffers directly to GPU memory via
LoadRawTextureData, bypassing expensive repeat PNG decompression.
โฑ๏ธ Benchmark & Performance Test Results (v1.0.3 with 162+ Mods)
Real-world timing benchmarks conducted on actual game assemblies, mod textures, and 160+ modpack environments:
| Benchmark / Subsystem | Vanilla / Without Mod | RoundsDashLoader v1.0.3 | Speedup Factor | Real Time Saved |
|---|---|---|---|---|
| MMHOOK Reflection Churn (30 queries) | 193.79 ms | 5.60 ms | 34.6x FASTER | ~188.2 ms CPU stall saved |
| Texture Hashing Throughput (20 textures) | 22.49 ms (SHA256) | 0.78 ms (FNV-1a) | 28.8x FASTER | > 6,400 MB/s throughput |
| Disk Cache Raw Read (20 textures) | 7.39 ms | 4.93 ms | 1.5x FASTER | Direct raw memory blit |
| Splash Screen & Intro Video Wait | 4.50 s (2.5s + 2.0s) | 0.00 s (Frame 0) | INSTANT | 4.50 seconds eliminated |
| Harmony Member Lookups Cache (200 queries) | Uncached reflection search | 21.7 ยตs / call | 100% Hit Rate | Zero reflection lag |
| Photon Reflection Type Exceptions | Fatal crash (TypeInitException) |
Clean 0 exceptions | 100% Fixed | 9,034 types resolved |
| Total Cold Boot Time (Heavy Modpack) | ~12.5 โ 15.0 s | ~7.0 s | ~44% FASTER | ~5.5 โ 8.0 seconds |
Verified In-Game Telemetry Log (BepInEx 5.4.19 / Heavy Modpack):
[Info :RoundsDashLoader] [RoundsDashLoader] v1.0.3 initializing DashLoader acceleration pipeline...
[Info :RoundsDashLoader] [RoundsDashLoader] Harmony type caching, texture streaming & intro bypass patches active.
...
[Info :RoundsDashLoader] ============================================================
[Info :RoundsDashLoader] โก [RoundsDashLoader] LIGHTNING BOOT COMPLETE in 2.29s!
[Info :RoundsDashLoader] โก [RoundsDashLoader] Reflection Type Hits: 29 (Saved MMHOOK churn)
[Info :RoundsDashLoader] โก [RoundsDashLoader] Texture Cache Hits: 0 | New Decodes Cached: 0
[Info :RoundsDashLoader] โก [RoundsDashLoader] Intro videos and splash screens bypassed.
[Info :RoundsDashLoader] ============================================================
๐ฎ In-Game Watermark & Telemetry
- Live Boot Timer: Displays a clean, non-intrusive green badge in the Main Menu:
โก DashLoader: X.XXs boot(showing the exact cold boot time to readiness). - Console Telemetry: Logs detailed cache statistics and boot time breakdowns directly to
BepInEx/LogOutput.log.
๐ ๏ธ Installation
Works seamlessly with Gale, Thunderstore Mod Manager, and r2modman:
- Install via your mod manager or download
RoundsDashLoader-1.0.4.zip. - Extract into
ROUNDS/BepInEx/plugins/(or use your mod manager). - Launch ROUNDS!
๐งฉ Compatibility
- Dependencies: None! Only requires base
BepInExPack_ROUNDS. - Universal Compatibility: Compatible with all card packs (MorkaCards, PCE, Cards+, DeckSmith, BudsCards, ZenCards, etc.), custom gamemodes, RoundsWithFriends (RWF), RoundsWithBots, UnboundLib, and companion mod RoundsPatchFpsFix.
๐ License
Released under the MIT License. Built for the ROUNDS modding community with โค๏ธ.