You are viewing a potentially older version of this package. View all versions.
WhozScott-Heartbeat-1.2.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 a month ago
Version 1.2.0
Download link WhozScott-Heartbeat-1.2.0.zip
Downloads 126
Dependency string WhozScott-Heartbeat-1.2.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

Keep your On-Together lobby alive during long sessions.

Heartbeat helps prevent the in-game "Couldn't connect to the lobby" error by periodically refreshing the Steam lobby while you are hosting.

What It Does

  • Keeps long-running lobbies joinable by writing a small Steam lobby heartbeat on a timer.
  • Refreshes lobby metadata so the lobby name and social tags stay fresh in Steam's listing cache.
  • Starts immediately when a lobby is detected. No waiting for the first full interval.
  • Only runs on the host because Steam only allows the lobby owner to update lobby data.
  • Does not touch gameplay, saves, UI, timers, or player data. It only updates Steam lobby metadata.

Why You Want It

If you leave an On-Together lobby running for many hours, Steam's lobby listing can become stale. The lobby may still exist, but players can start seeing "Couldn't connect to the lobby" when trying to join later.

Heartbeat keeps that Steam lobby listing refreshed so friends can keep joining during long co-working, focus, or dedicated-server-style sessions.

Config

The config file is generated at:

BepInEx/config/com.ontogether.lobbyheartbeat.cfg

General

  • LobbyHeartbeatEnabled: true
    Turns the heartbeat on or off without uninstalling the mod.

  • LobbyHeartbeatIntervalMinutes: 2
    Minutes between heartbeats. 1 to 2 is recommended for very long sessions. The value is clamped from 0.25 to 10.

  • ColorConsole: true
    Shows Heartbeat's console messages in purple text. Turn this off if your console shows raw color codes.

Lobby

  • RefreshExistingData: true
    Re-writes the lobby's current name and tags on every heartbeat so Steam keeps every field fresh, not just the internal heartbeat key.

  • ManageLobbyName: false
    If enabled, Heartbeat forces the Steam lobby name to the value in LobbyName on every heartbeat.

  • LobbyName: (empty)
    Custom lobby name used when ManageLobbyName is enabled.

  • TagFocus / TagMature / TagChill / TagBreak / TagModded: (empty)
    Optional tag overrides. Leave these empty to preserve whatever the game already set.

How To Use

  1. Install with Thunderstore Mod Manager / r2modman, or install manually with BepInEx 5.
  2. Launch On-Together.
  3. Host a lobby.
  4. Heartbeat will automatically detect the lobby and keep the Steam listing refreshed.

If you join someone else's lobby, Heartbeat will stay idle. That is expected: only the lobby host can refresh Steam lobby data.

Manual Installation

  1. Install BepInEx 5 for On-Together.
  2. Download the latest Heartbeat release.
  3. Extract the zip into your On-Together game folder so it merges into BepInEx/.
  4. Confirm the plugin exists at:

BepInEx/plugins/Heartbeat/LobbyHeartbeat.dll

Notes

  • Heartbeat is a lobby-listing keepalive, not a gameplay/networking overhaul.
  • For normal use, leave the interval at the default 2 minutes.
  • For testing, you can temporarily set the interval to 0.25 minutes.

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.