Heartbeat
Prevents Steam lobbies from expiring during long sessions, fixing the "Couldn't connect to the lobby" error shown in-game.
| Date uploaded | 4 months ago |
| Version | 1.1.0 |
| Download link | WhozScott-Heartbeat-1.1.0.zip |
| Downloads | 414 |
| Dependency string | WhozScott-Heartbeat-1.1.0 |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2100README
Heartbeat
Prevents On‑Together lobbies from expiring during long sessions, fixing the in‑game "Couldn't connect to the lobby" error by sending a periodic heartbeat to Steam.
Features
- Keeps your lobby joinable: Sends a small "heartbeat" update to your Steam lobby at a set interval so Steam doesn't time it out.
- Refreshes lobby metadata: Automatically reads and re‑sets your lobby name and tags on every heartbeat so Steam doesn't drop the listing after 14+ hours.
- Fires immediately on startup: First heartbeat is sent as soon as a lobby is detected, no waiting for the first interval.
- Works for hosts and dedicated servers: Runs whenever there is an active lobby, whether you're hosting from the game client or running a server.
- Configurable interval: Default is 2 minutes for reliable long sessions.
- Tiny footprint: Does not touch gameplay or UI, only the lobby metadata.
Config options
Config file is generated at:
BepInEx/config/com.ontogether.lobbyheartbeat.cfg
-
LobbyHeartbeatEnabled:
true
Turns the heartbeat on or off without uninstalling the mod. -
LobbyHeartbeatIntervalMinutes:
2
Minutes between each heartbeat. Use 1‑2 for 12+ hour runs. Max ~10.
Manual installation
- Install BepInEx 5 for On‑Together (from Thunderstore or manually).
- Download the latest
WhozHeartbeat.ziprelease for this mod. - Extract the zip into your On‑Together game folder so it merges into
BepInEx\(you should end up withBepInEx\plugins\Heartbeat\LobbyHeartbeat.dll). - Launch the game and host / start your server as usual. The heartbeat will run automatically any time a lobby is active.
Thunderstore package layout
Inside the mod zip, the structure looks like this:
manifest.jsonREADME.mdicon.pngBepInEx/plugins/Heartbeat/LobbyHeartbeat.dll
This is the layout used by r2modman and other Thunderstore‑compatible mod managers.
CHANGELOG
Changelog
1.2.0
- Lobby config actually works now: The
[Lobby]options described back in 1.1.0 were never wired up in the shipped DLL. They exist for real in this version (ManageLobbyName,LobbyName,RefreshExistingData,TagFocus,TagMature,TagChill,TagBreak,TagModded). Tag overrides are optional — leave them empty to preserve whatever the game set. - Owner-aware: Only the lobby host writes heartbeats now (Steam only lets the owner update lobby data), so clients no longer waste calls.
- Per-lobby tracking: The immediate first heartbeat now fires again whenever you start or join a new lobby in the same session, not just once at startup.
- Safer lobby parsing: Lobby codes are parsed with
TryParse, so an unexpected value is skipped quietly instead of throwing. - Interval clamping: Interval is clamped to 0.25–10 minutes to match the documented range.
- Clearer logging: Logs when a lobby is detected, when it ends, when you're not the host, plus a per-lobby heartbeat counter.
- No hard game dependency: Game and Steam access now go through reflection, so the mod is more resilient to On-Together updates.
- Config moved:
LobbyHeartbeatEnabledandLobbyHeartbeatIntervalMinutesnow live in a[General]section (previously[Steam]).
1.1.0
- Immediate first heartbeat: Timer now fires instantly when a lobby is detected instead of waiting for the full interval.
- Lobby metadata refresh: Each heartbeat re‑sets lobby name and tags (focus, mature, chill, break, modded) so Steam doesn't drop the listing after 14+ hours.
- New config options:
LobbyName,TagFocus,TagMature,TagChill,TagBreak,TagModdedin the[Lobby]section. - Default interval lowered to 2 minutes for better reliability during very long sessions.
1.0.0
- Initial release of Heartbeat.
- Adds a periodic lobby heartbeat to keep Steam lobbies from expiring during long sessions.
- Config options:
LobbyHeartbeatEnabled,LobbyHeartbeatIntervalMinutes.