
You are viewing a potentially older version of this package. View Latest Version
FixFallThruMap
Fixes client fall-through of maps by re-enabling maps the host has enabled when joining a friend's game.Rounds Fix Fall Thru Map
A small BepInEx plugin for ROUNDS that ensures a client's map pool matches the host's when joining a friend's game. This prevents map-related issues (falling through, missing objects) caused by locally disabled maps.
Status: development
Features
- Applies the host-approved map list on join by patching UnboundLib's map-handshake response.
- Updates the map menu visuals to reflect the host's allowed maps for the running session.
- Avoids forcing permanent user config changes; behavior follows UnboundLib semantics.
Dependencies
- BepInEx (plugin framework)
- UnboundLib (REQUIRED) — declared as a hard dependency in the plugin
Installation
- Install BepInEx into your ROUNDS install directory.
- Install UnboundLib into
ROUNDS/BepInEx/plugins. - Build this project and copy the produced DLL to
ROUNDS/BepInEx/plugins(or the equivalent mod manager profile folder). - Launch ROUNDS and join a friend's lobby.
Building
Recommended (release) — build against a real ROUNDS install so the mod compiles against the correct API:
# point to your ROUNDS install
dotnet build RoundsFixFallThruMap.slnx -p:RoundsFolder="/path/to/ROUNDS"
Developer convenience — local-only validation without the game present:
# uses included stubs; not recommended for releases
dotnet build RoundsFixFallThruMap.slnx -p:AllowLocalStubs=true
Notes:
- The project intentionally fails the build when a real ROUNDS install is not found (unless
AllowLocalStubsis set). This prevents accidentally shipping a DLL built against the stub API. - The csproj attempts to auto-detect common Steam and r2modman paths; override
RoundsFolderorUnboundLibPathif necessary.
Development
- The plugin declares a hard dependency on UnboundLib so BepInEx will load it only when UnboundLib is available.
- Reflection is used defensively to read private UnboundLib fields where necessary to remain compatible across versions.
License
See LICENSE in the repository.