4.3 KiB
Brogether Setup
Status: 2026-05-23
Current State
- Brotato Steam was found locally at
C:\Program Files (x86)\Steam\steamapps\common\Brotato. - Recovered scripts report Brotato
1.1.15.3and ModLoader6.3.0. - GDRETools was downloaded to
.tools/gdretools. - Godot Mod Loader v6.3.0 was downloaded to
.tools/godot-mod-loader. - Brotato and DLC scripts were recovered to
recovered/. - The mod source lives in
src/mods-unpacked/Brogether-Brogether.
Install A Local Test Build
.\scripts\install-local.ps1
This creates dist/Brogether-Brogether-0.1.0.zip and copies it into an already subscribed Brotato Workshop folder for local testing:
C:\Program Files (x86)\Steam\steamapps\workshop\content\1942280\<workshop-id>
Brotato's Steam build only loads Workshop folders that Steam considers subscribed. That is why the local ZIP is placed next to an existing subscribed Workshop mod for the first tests. Later, this should be replaced by Brogether's own private or unlisted Workshop item.
Start Brotato through Steam afterwards. The mod should appear in the mod menu.
Brogether stays hidden until opened. The mod adds a BROGETHER button to the main menu. Alternatively, F5 opens the same modal. The modal intentionally behaves like Brotato's F8 feedback window: it pauses the game, overlays the screen, and can be closed with Escape, F5, or Close.
The UI currently has a first lobby browser. You can search for lobbies, create a lobby with an optional password, and join a selected lobby. After hosting or joining, Brogether switches to a waiting room with Steam names and static initials avatars for lobby players.
Without a second client, press Add Fake in the waiting room. This adds a local test peer. Use Ready and Fake Ready to test both ready states. A dedicated Brogether start button will only come back once real run synchronization is implemented; until then, use Brotato's normal start flow.
Debug Hotkeys
F5: toggle Brogether modalF6: create public development Steam lobbyF7: search and join Brogether lobbyF9: leave lobbyF10: send ping packet to the other playerF11: run local loopback test without a second client
Output goes to the Godot/Brotato log. The first two-client goal is to see these messages:
Steam readycreated lobbyjoined lobbypacket from ... handshakepacket from ... pingpacket from ... pong
Without a second Steam client, F11 simulates packet flow locally. It does not replace a real Steam P2P test, but it checks whether handshake, ping, and pong handling work inside Brogether.
Brogether also writes its own debug log:
C:\Users\tommi\AppData\Roaming\Brotato\brogether.log
Next Technical Step
Once the P2P handshake works between two Steam clients, extend the mod with:
- Hook into run creation. Done:
extensions/main_ext.gdreports run start. - Host/client role model. Basic version exists through Steam lobby owner.
- Minimal player snapshot sync. Basic version exists: position, health, dead state every 250 ms.
- Enemy, wave, and shop sync after that.
Current Multiplayer State
Brogether has a script extension for res://main.gd. At the start of a wave/run, it logs:
run scene readyplayers spawned- periodic
host_snapshot/client_snapshotpackets if a lobby with a peer exists run scene exiting
Snapshots currently contain only the safe minimum: player index, position, health, max health, and dead state. This is not a playable remote player yet, but the transport and hook structure is prepared.
There is an internal experimental function to prepare local 2-player co-op slots. It is intentionally not bound to a hotkey anymore because it activates Brotato's local co-op UI and can disturb normal menus. If a 2-player run exists, Brogether tries to apply incoming remote snapshots to the second local player.
Editor Note
No Godot editor is required for the first in-game test: the mod is built as a ZIP and loaded directly by Brotato.
For later hook work, a GodotSteam editor can be useful. Current GodotSteam 3.x releases mostly provide templates; if an editor is needed, use or build a GodotSteam binary that matches Brotato's recovered engine version. Vanilla Godot is problematic for the recovered Brotato project because the Steam singleton is missing.