GungeonTogether 3Player
Experimental three-player Steam co-op with host-authoritative combat and matching-modpack support.
| Date uploaded | 6 days ago |
| Version | 0.5.1 |
| Download link | Rec-GungeonTogether_3Player-0.5.1.zip |
| Downloads | 53 |
| Dependency string | Rec-GungeonTogether_3Player-0.5.1 |
This mod requires the following mods to function
BepInEx-BepInExPack_EtG
BepInEx pack for Enter the Gungeon. Preconfigured and includes unstripped Unity DLLs.
Preferred version: 5.4.2101MtG_API-Mod_the_Gungeon_API
Adds the good parts of Mod the Gungeon to BepInEx.
Preferred version: 1.9.2README
Gungeon Together — three-player experimental build
Experimental continuation of the original GungeonTogether project by lam and contributors. The original copyright and MIT License are included.
Adds Steam co-op for three players: one host and two clients.
Installation
Install through Thunderstore/r2modman or copy GungeonTogether.dll to
BepInEx/plugins. BepInExPack EtG and Mod the Gungeon API are required.
Every player must use the same version, plugins and registered ModTheGungeon items. Launch through Steam, press Ctrl+P, create a lobby, then invite the other players.
Joining and reconnecting
- New players may join while the host is in the foyer.
- The roster locks when the run starts.
- A disconnected member may reconnect to the same run.
- A player outside the locked roster cannot join midway through the run.
Included synchronization
- Three-player lobby, movement and remote avatars
- Host-authoritative enemy state and enemy projectiles
- Regular, multi-shot, charged-projectile and beam weapon replication
- Pickups, dungeon seed, rooms and floors
- Base-game and namespaced modded guns/items
- Custom enemy GUIDs and custom floor scene names
- Player health, downed state and proximity revival
Experimental limitations
This is an early experimental build. Scripted weapons that create unusual secondary objects, highly custom enemy bullet behaviours, shops, keys, blanks and some boss/floor transitions may still desynchronize. Real three-PC testing is required. Matching mod lists do not guarantee that every third-party mod is multiplayer-safe.
CHANGELOG
Changelog
0.10.8
- Remote movement now preserves the sender's 30 Hz snapshot timeline when Steam delivers packets in bursts, removing stop/jump motion.
- The interpolation buffer adapts to measured packet jitter and starts at 85 ms instead of imposing a fixed 120 ms delay.
- Remote rigidbodies use velocity feed-forward with proportional correction instead of frame-sized velocity spikes.
- Protocol version 21 prevents mixing the old and new movement timelines.
0.10.7
- Death now follows the base game: no more frozen "downed" state. The dying player plays the native death/ghost flow; the other side sees the proxy as dead (game over when both are dead). Network revive disabled.
- Diagnostics: [Damage] ENEMY lines (hits on enemies) and [Combat] lines (who the first enemy targets).
0.10.6
- Remote player animation: sprite frames are now played on the same delayed timeline as the interpolated position (was newest-packet sprite on a 120 ms delayed body); position send rate 20 -> 30 Hz.
- Diagnostics: [Damage] log lines (source, amount, room, position) for the first 60 hits on any player.
0.10.5
- Fix: ownerless companions (cloned with the remote player proxy) no longer throw a NullReferenceException every frame in CompanionController.Update.
0.10.4
- Fix: NPC conversations and all Breach (foyer) interactions/breakables are no longer synchronized. Replaying a dialogue on the other machine froze input and broke the game ("cannot pass doors").
0.10.3
- Remote player movement: snapshot interpolation (120 ms buffer) instead of last-packet prediction, tighter physics tracking, and warp only after a sustained gap. Fixes jittery movement and periodic teleporting.
0.10.2
- Fix: remote avatar no longer re-applies identical health/armor every packet (removes the "changing health" log flood).
- [Progress] sync summaries are now logged at Info level so they appear in LogOutput.log.
0.10.1
- Client no longer rolls its own private seed when a floor starts loading before the host world state is applied; it reuses the host seed.
0.10.0 - ProgressProfile sync
- All players now play with the intersection of everyone's progress (flags, stats, encountered rooms/items), like Isaac Online: the least-progressed player decides. Computed in memory only; save files are never modified.
- Map layout/unlocks now match between host and clients, fixing the world-mismatch rejection after dungeon load.
- New config
ProgressSync/Enabled(default true). Host and clients should use the same value. - Protocol version 20 (all players must update).
- Fix: remote avatar no longer spams "changing health" log lines.
0.9.8
- The authoritative foyer state now starts the client's normal playable-Breach transition instead of calling a foyer load while the title menu is still active.
- Duplicate reliable world-state packets no longer cancel and restart an in-progress client placement.
- Same-world placement retries until the local player exists instead of failing after one early attempt.
- Protocol version 19 prevents mixing visually identical but binary-different 0.9.7 test packages.
0.9.7
- Clients now enter the host's Breach only through the authoritative world-state packet; the menu no longer starts a second competing foyer load after joining.
- A newer host world state cancels an older delayed placement, preventing a queued Breach teleport from firing after dungeon loading has begun.
- Includes the
LEAVEmain-menu return fix prepared after 0.9.6. - Protocol version 18 rejects earlier builds that still contain the double-load race.
0.9.6
- Added a
JOIN LOBBYoption beside the main-menu host flow. - Added an in-game Steam lobby browser showing the host name, player count and version compatibility.
- Hosted rooms are discoverable as public Steam lobbies, while the browser filters out every lobby that is not created by Gungeon Together.
- Full or incompatible rooms remain visible for diagnosis but cannot be joined.
LEAVEnow closes the network session and returns to the real main menu instead of silently leaving the player in a single-player breach.
0.9.5
- Preserve reliable delivery when structural inventory changes are relayed through the host; lightweight heartbeat snapshots remain unreliable.
- Added sender-minted transaction IDs for pickups, ground-item changes, interactions and breakables so retransmission or snapshot replay cannot apply a world mutation twice.
- Added host-session and floor-epoch stamps to movement, combat, rooms, vitals, inventory and world-event packets; delayed packets from an earlier floor are rejected before application.
- Reconnecting clients use a fresh transaction namespace while retaining the host's current world identity.
- Fixed the lobby UI reporting a pending or rejected Steam-lobby member as game-connected; protocol/mod mismatches now remain out of the game and show an explicit rejection reason and per-member connection state.
- Protocol version 17 rejects older clients that do not carry transaction and world stamps.
0.9.4
- Inventory removals require two distinct revisions, preventing a stale snapshot from dropping a freshly acquired item.
- A reliable confirmation snapshot follows inventory changes after 0.45 seconds, so legitimate drops do not wait for the two-second heartbeat.
- Ammo counts no longer alter the inventory fingerprint, avoiding reliable inventory traffic for every shot; ammo continues through the regular vitals stream and inventory heartbeat.
- Fixed null passive/active item reconciliation and throttled failed modded-item grant retries.
- Protocol version 16 rejects mixed 0.9.2/0.9.3 sessions.
- Release DLLs are built directly from the tagged source with versioned assembly metadata.
0.9.3
- Internal inventory-race test build; superseded by 0.9.4.
0.9.2
- Restored the game's native co-op door, sealed-room and elevator movement instead of warping the party on every room transition.
- Added periodic host-relayed inventory snapshots for all guns, per-gun ammo, passive items, active items and current weapon selection.
- Inventory snapshots repair missed pickup/drop events and initialize reconnecting players correctly.
- Added explicit ground-pickup removal messages so expired, sold or otherwise removed drops do not remain on clients.
- Added host-side distance validation for client pickup claims.
- Camera overrides are now cleared only when Gungeon Together owns them.
- Protocol version 15; every participant must use 0.9.2.
0.9.1
- Internal test build for native co-op door transitions; superseded by 0.9.2.
0.9.0
- Added party-wide room transitions and three-player native camera bounds.
- Registered all three controllers for room logic and enemy targeting.
- Synchronized enemies across active rooms and activated nearby teammate revives.
- Added host-authoritative ground drops, pickup claims and shared money/keys.
- Reject mismatched generated maps caused by different mods or unlock state.
- Added measured round-trip latency and synchronized gun aim direction.
- Protocol version 13; every participant must use 0.9.0.
0.8.3
- Added the optional Isaac-style three-player corner HUD and F8 toggle.
0.8.2
- Added shared run seeds, map fingerprints, safe placement and black-screen fallbacks.
0.8.1
- Protected the camera during floor loads and retried late room placement.
0.8.0
- Replaced visual-only avatars with physical network-controlled PlayerControllers.
- Added host-authoritative interactions, room state, shared resources and modded equipment identity.