Skip to content

Heartbeat

How Asphyxia confirms a player's anti-cheat is still running.

Updated View as Markdown

The heartbeat makes sure every player’s game stays connected to protection. Each player’s game checks in with your server while they play. If those check-ins stop, your server treats that player as unprotected and acts on it.

There is nothing to configure.

Why it exists

Client-side checks only protect a player while they are running, and switching them off is one of the first things a cheat tool tries. Without a heartbeat, a player who had switched the anti-cheat off would look the same as a normal player.

The heartbeat removes that gap by treating silence as a problem rather than waiting to be told about one.

A missed check disconnects, never bans

A single missed check-in is not treated as suspicious — a frame drop, a poor connection or a heavy resource can all delay one, so players get several chances first.

If nothing arrives at all, the player is disconnected, not banned, and can reconnect immediately:

[asphyxia.dev] You have lost connection to the AntiCheat, you may reconnect.

A player whose game froze comes straight back. A player who removed the anti-cheat is disconnected again each time.

Missed check-ins are recorded against the player and show on their record on the Players page. A few over a long session usually means a poor connection. Repeated failures are worth looking at.

What you will see

Normal operation is silent. These are the messages the heartbeat produces:

[Asphyxia.] › ⚠ warn  Disconnected Playername (ID 12) — their client stopped
                      responding to the anti-cheat.

[Asphyxia.] › ⚠ warn  Disconnected Playername (ID 12) — their client never
                      checked in with the anti-cheat after joining.

Occasional lines are normal on a busy server. A sudden burst usually means one of your own resources is freezing players’ games rather than an attack. See Troubleshooting.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close