Waarom één laag niet genoeg is
De meeste FiveM-anticheats leunen op één detectielaag: of een client-side stack die let op geïnjecteerde DLL's, gehookte API's en bekende menu-signatures, of een server-side stack die events valideert en onmogelijke overgangen in de gamestatus weigert. Elke laag heeft een bekende zwakke plek. Een AC die alleen client-side draait faalt zodra een cheat zijn loader verbergt voor signaturechecks. Een AC die alleen server-side draait faalt zodra een cheat het legale eventoppervlak respecteert maar client-side hacks gebruikt (silent aim, ESP, wallhacks) die nooit een server-event afvuren. Dubbellaagse detectie betekent dat de laag die de cheat wél ziet hem pakt, en dat de laag die hem niet ziet nog steeds een gedragssignaal oplevert dat admins kunnen bekijken.
Wat de clientlaag bewaakt
Aan de clientkant volgt Raven geïnjecteerde modules, gehookte enginefuncties, de status van NUI DevTools, de integriteit van zijn eigen resourcebestanden en de aanwezigheid van bekende cheatloaders tijdens runtime. Signatures voor de actiefste mod-menu-families (Eulen, Redengine, HamMafia, Susano, TZ, TZX, Skript, Phaze, Lumia) worden actueel gehouden met een leverfrequentie van 1-7 dagen (zie /changelog). Gaat een bekende signature af, dan wordt bewijs vastgelegd (screenshot + detectietrace) en naar het cloudpanel geüpload. Gaat de signature niet af maar zijn er wel afwijkingen, dan daalt de trust score van die speler en verschijnt hij op de live kaart voor beoordeling door een admin.
Wat de serverlaag bewaakt
Aan de serverkant draait Raven een validatieronde over elk server-event dat de speler afvuurt. Eventnamen die nooit van een client zouden mogen komen worden direct geblokkeerd. Eventpayloads die buiten aannemelijke grenzen vallen (aantallen items, geldverschillen, voertuigspawns per minuut) worden geweigerd en gelogd. Eventreeksen die overeenkomen met bekende exploitpatronen, zoals de geketende reeks die Redengine-varianten gebruiken, worden op patroonniveau geblokkeerd. Server-side detectie draait ook als elke clientcheck is omzeild, en daarom is dekking aan de serverkant niet onderhandelbaar.
Hoe de twee lagen samenwerken
Een heartbeat-loop knoopt de lagen aan elkaar. De client stuurt periodiek een ondertekende hash van zijn kritieke runtimestatus naar de server. Stopt de heartbeat, dan behandelt de server de client als aangetast en voert hij de ingestelde reactie uit (waarschuwen, kicken of automatisch bannen). Blijft de heartbeat komen maar klopt de payload niet meer met de verwachte waardes, dan logt de server het verschil en voert het in het trust-scoremodel. Hoe dan ook heeft de server continu zicht op de vraag of de clientlaag nog werkt, dus een cheat die de clientlaag uitschakelt wordt meteen zichtbaar vanaf de serverkant.
Waarom dit telt voor “bypass-bestendig”
Geen enkele anticheat is bypass-proof. Een AC met één laag omzeilen betekent één stack verslaan. Het dubbellaagse Raven omzeilen betekent twee stacks tegelijk verslaan, plus de heartbeat, plus het trust-scoremodel dat gedragsafwijkingen naar boven haalt. De prijs van een geslaagde, onopgemerkte bypass ligt merkbaar hoger, en de tijd tot een patch ligt lager, omdat de laag die de cheat wél opmerkte zijn opgenomen data doorgeeft aan het team dat de volgende signature-update maakt.