You are viewing a potentially older version of this package. View all versions.
WhozScott-Heartbeat-1.1.0 icon

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-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100

README

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

  1. Install BepInEx 5 for On‑Together (from Thunderstore or manually).
  2. Download the latest WhozHeartbeat.zip release for this mod.
  3. Extract the zip into your On‑Together game folder so it merges into BepInEx\ (you should end up with BepInEx\plugins\Heartbeat\LobbyHeartbeat.dll).
  4. 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.json
  • README.md
  • icon.png
  • BepInEx/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: LobbyHeartbeatEnabled and LobbyHeartbeatIntervalMinutes now 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, TagModded in 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.