You are viewing a potentially older version of this package. View all versions.
Rec-GungeonTogether_3Player-0.10.8 icon

GungeonTogether 3Player

Three-player Steam co-op with physical remote players, synchronized world interactions, combat and mod support.

Date uploaded 4 days ago
Version 0.10.8
Download link Rec-GungeonTogether_3Player-0.10.8.zip
Downloads 98
Dependency string Rec-GungeonTogether_3Player-0.10.8

This mod requires the following mods to function

BepInEx-BepInExPack_EtG-5.4.2101 icon
BepInEx-BepInExPack_EtG

BepInEx pack for Enter the Gungeon. Preconfigured and includes unstripped Unity DLLs.

Preferred version: 5.4.2101
MtG_API-Mod_the_Gungeon_API-1.9.2 icon
MtG_API-Mod_the_Gungeon_API

Adds the good parts of Mod the Gungeon to BepInEx.

Preferred version: 1.9.2

README

GungeonTogether

This experimental continuation is based on the original GungeonTogether project by lam and contributors. It remains available under the included MIT License.

GungeonTogether is a multiplayer mod for Enter the Gungeon that allows online co-op play using Steam P2P networking.

The current session size is three players: one host and up to two clients.

Modded sessions are supported when every player uses the same BepInEx plugins, plugin versions and registered ModTheGungeon items. Incompatible clients are rejected with the first detected manifest difference.

Version 0.10.8 smooths remote players by preserving the sender's original 30 Hz movement timeline even when Steam delivers several packets in one frame. Its adaptive interpolation buffer reacts to real packet jitter without imposing the old fixed delay, while the physical proxy uses smooth velocity correction.

The mod uses the game's native co-op door, sealed-room and elevator rules and feeds the native camera the whole three-player bounding box. The host relays complete inventory snapshots (guns, ammo, passive items, active items and current weapon), making drops, missed events and reconnects self-healing. Ground pickups, shared money/keys and pickup claims remain host-authoritative. Inventory changes are sent reliably and removals are confirmed by a fast second revision, preventing stale packets from undoing a new pickup. Transaction IDs make world mutations idempotent, while host-session and floor-epoch stamps reject delayed gameplay packets from an earlier floor.

From the main menu, HOST LOBBY creates a discoverable Steam room and JOIN LOBBY opens the in-game room list. The list shows the host, player count and installed-version compatibility before joining.

Version 0.8.3 added the optional Isaac-style three-player HUD. Version 0.8.2 added shared run seeds, layout fingerprints and safe floor-load fallbacks.

Version 0.8.1 fixes the black/over-zoomed client view during floor transitions by parking persistent remote players beside the local player until the synchronized dungeon is ready, and retries room placement when generation finishes late.

Version 0.8.0 replaces visual-only remote sprites with network-controlled real PlayerController instances. Remote players now participate in the built-in co-op camera, collision, room, enemy targeting, inventory and floor-transition systems. It also fixes the lobby player-list construction error, makes the connection handshake idempotent and removes per-second packet-poll log spam. Version 0.6 added persistent remote players across scene changes, smoother 20 Hz player snapshots, stable host-driven floor transitions, exact modded pickup identity matching, and safer gameplay patches. Version 0.5 added host-authoritative enemy projectiles, exact projectile matching for multi-shot/charged guns, beam synchronization, and a locked run roster. New players may join in the foyer; after the run starts, only a disconnected member of that run may reconnect.

[!WARNING] THIS MOD IS STILL VERY EARLY IN DEVELOPMENT - DO NOT EXPECT A FUNCTIONAL EXPERIENCE RIGHT NOW

WIP WIP WIP WIP WIP WIP pls be nice

[!WARNING] ON HOLD, HAD SOME HUGE UNEXPECTED LIFE THINGS GET IN THE WAY, DO NOT WORRY, THIS MOD IS STILL IN DEVELOPMENT AND WE ARE STILL EXTREMELY EXCITED ABOUT THE FUTURE OF GUNGEONTOGETHER

image

The mod is free (because I'm not weird). however I'm broke asf so feel free to donate for my INSANELY INTENSE AND HARD LABOUR (jk) My paypal is [email protected] if you actually want to (for some reason)

Contributers

image image

[!NOTE] As this mod runs through the steam network, it only works with the steam verison of the game as steamID is required

Features

What works so far

System Status Notes
Steam invites/lobby system 🟩 Done Steam lobby creation and joining functional
Steam P2P networking 🟨 Working Real connections and Steam invites working
Three-player HUD 🟨 Working Isaac-style corner HUD; F8 switches to the native HUD
Player Synchronization 🟨 Working Real remote PlayerControllers with 20 Hz movement and animation sync
Three-player co-op 🟨 Working Native co-op room rules, three-player bounds camera and real PlayerControllers
Enemy Synchronization 🟨 Working Host-driven enemies across active rooms, including state and projectiles
Weapon Synchronization 🟨 Working Projectiles/beams plus full gun inventory, selection and per-gun ammo snapshots
Reconnection 🟨 Working Run roster locks after leaving the foyer; prior members can reconnect
Dungeon Synchronization 🟨 Working Shared seed, layout fingerprint and safe mismatch rejection
Items/economy 🟨 Working Full passive/active inventory snapshots, host-authoritative ground pickups, shared keys and money
Down/revive 🟨 Working Nearby living teammate revives a downed player after three seconds
Singleplayer 🏁 Finished Yippeeee!!!!!

Planed for 1.0 release

  • Online co-op multiplayer for Enter the Gungeon
  • Steam P2P networking (no dedicated servers required), no parsec or streaming required
  • Real-time synchronisation of
    • Players
    • Enemies
    • Projectiles
    • Dungeon
  • Debug controls for testing
  • Spectate when dead
  • Enemy scaling (set difficulty in game)

Planned for the future

  • EPIC GAMES SUPPORT (EOS P2P)
  • Unlimited players
  • EVERYTHING synced
  • Custom Game Modes
    • Race mode (competing in identical dungeons, first player to finish wins)
    • Mirror mode (identical dungeons, can hurt one another but can't see eachother, shooting is synced across dungeons)
  • Teammate revive items
  • Team based buffs and items

Installation

  1. Install BepInEx for Enter the Gungeon
  2. Copy GungeonTogether.dll to [ETG Install]/BepInEx/plugins/
  3. Launch Enter the Gungeon

Building

This only applies to people who want to build from source, or if we forget to post builds :)

  1. You will need to setup BepInExPack_ETG (either with a mod manager like r2ModMan or manually)
  2. Place the required game, BepInEx and ModTheGungeon reference assemblies in GungeonTogether/Libs/
  3. Run dotnet build GungeonTogether/GungeonTogether.csproj -c Release
  4. Launch Enter the Gungeon

Technical Details

Built with BepInEx framework using Steam P2P networking for a seamless multiplayer experience. Unfortunately if you play the game through epic or windows store this mod will not work, as it runs through steams p2p api only, which means you need a steamID for it to work. Sorry guys... (EPIC COMING SOON)

[!NOTE] Wiki!!! https://deepwiki.com/llamerrr/GungeonTogether Thanks to https://github.com/TheExploration

1.0 release coming one day!!!!!!

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 LEAVE main-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 LOBBY option 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.
  • LEAVE now 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.