Steam integration
Let friends join each other straight from the Steam friends list. SpawnWeaver ships a
SteamSync node that bridges GodotSteam to your rooms —
rich presence, "Join game", overlay invites, and Steam persona names. Without
GodotSteam installed the node is a safe no-op, so you can leave it in every build.
Setup
- Install GodotSteam (the module build or the GDExtension) and initialize it as usual
in your game (
Steam.steamInit()+run_callbackspumping — SpawnWeaver never touches the Steam lifecycle, it only reads the singleton). - Drop a SteamSync node somewhere persistent (your main scene works).
That's the whole integration:
- Entering any SpawnWeaver room publishes
+room <CODE>as Steam Rich Presence, with a status line friends can see (status_format, default"In room {code}"). - A friend picking Join game routes into
SpawnWeaver.join_room(code)automatically — including the launch-from-invite case (+room CODEon the command line starts the game, connects, and joins). invite_overlay()opens the Steam invite dialog for the current room.- With
use_steam_personaon (default), players' SpawnWeaver display names become their Steam persona names.
# Optional hooks:
$SteamSync.steam_join_requested.connect(func(code): show_joining_screen(code))
$SteamSync.invite_overlay() # e.g. behind an "Invite friends" button
print($SteamSync.is_available()) # false when GodotSteam/Steam isn't present
Notes
- Works with GodotSteam 4.x module and GDExtension builds (detected at runtime; no compile-time dependency — projects without GodotSteam still export fine).
- Steam auth/ownership verification is not part of this integration — player identity stays SpawnWeaver's anonymous-first tokens (players).
- Test without Steam freely: everything no-ops, and the room-code flow keeps working as the universal fallback.