Het probleem dat heartbeat oplost
De lastigste cheat om te detecteren is die ene die stilletjes je anticheat-client uitschakelt en daarna ongezien doordraait. Signaturechecks kun je hooken. NUI-inspectie kun je blokkeren. Functies die de integriteit tijdens runtime bewaken kun je met een no-op patchen. Zodra de clientlaag stil is, is een AC met één laag blind. Heartbeat anti-tamper bestaat om “stil” duur te maken: het uitblijven van een heartbeat is zelf een detectie.
Hoe de heartbeat-loop werkt
De Raven-client stuurt op een vaste frequentie een ondertekende payload (per server aangepast, zie de changelog-entry van 2026-02-17; eerder vast op 1500 ms). De payload bevat een cryptografische hash van de kritieke runtimestatus (integriteit van resources, vingerafdrukken van de hooktabel, adressen van event handlers) plus een tijdstempel en een nonce per sessie. De server controleert de handtekening, vergelijkt de hash met de verwachte basislijn en let op de tijd tussen twee berichten. Er worden drie faalmodi gedetecteerd: de heartbeat komt niet aan (stille client), de heartbeat komt aan maar de payload klopt niet meer met de verwachte waardes (aangetaste client), of de heartbeat komt op de verkeerde frequentie aan (herhaalde of verouderde client).
Waarom de frequentie uitmaakt
Een vast heartbeat-venster is makkelijker te ontwijken. Een cheat die de client kort tussen twee heartbeats uitschakelt, houdt de loop in leven en draait toch ongezien door. Een per server aangepaste frequentie (geijkt op de gemiddelde ticklatency over de eerste 24 uur) maakt dat venster onvoorspelbaar voor de cheat, zonder problemen voor legitieme spelers op routes met hoge latency. De release van 2026-03 verving het standaardvenster van een vaste 1500 ms door een aangepast bereik van 800-1500 ms, wat de false positives op EU/AS-routes met ongeveer 38% verlaagde.
Wat er gebeurt als de heartbeat faalt
Reacties op falen zijn per server instelbaar in drie niveaus. Niveau 1 (waarschuwen) markeert de speler op de live kaart en waarschuwt admins via de ingestelde Discord-webhook. Niveau 2 (kicken) gooit de speler van de server met een algemene disconnect-reden en logt het voorval met volledig bewijs (laatste geldige heartbeat, huidige tijdstempel, verschil in de payload). Niveau 3 (automatisch bannen) bant de speler op de lokale server en zet hem in de wachtrij om na beoordeling door een admin te worden doorgezet naar de globale bandatabase. De standaardconfiguratie is behoudend (eerst waarschuwen, pas escaleren bij herhaling), omdat de heartbeat-laag false positives kan opleveren bij gewone netwerkproblemen.
Hoe heartbeat samenhangt met de trust score
Elke afwijking in de heartbeat telt mee in de trust score per speler (geïntroduceerd in versie 2026.4.0, zie /changelog). Eén late heartbeat is ruis. Meerdere late heartbeats van dezelfde speler over meerdere sessies, een heartbeat die juist achterloopt zodra de speler in bepaalde gamestatussen komt, of een heartbeat die steeds dezelfde hash teruggeeft terwijl het resourcepakket is bijgewerkt: dat zijn allemaal signalen die de speler op de live kaart zetten voor beoordeling door een admin, ruim voordat er een ban op niveau 3 afgaat.