Cheater überwinden auf einem FiveM-Server selten eine große Mauer. Sie gehen durch ein Dutzend kleiner Türen, die offen geblieben sind: ein Server-Event, das dem Client glaubt, Adminrechte am falschen Identifier, ein geleaktes Script mit Backdoor, eine Convar, die nie gesetzt wurde. Diese Anleitung schließt die Türen in der Reihenfolge, die dir am meisten Schutz für den wenigsten Aufwand bringt.
Sie richtet sich an Serverbetreiber und Entwickler mit ESX, QBCore, vRP, NDCore oder einem Standalone-Server. Nichts davon kostet Geld. Ein Anticheat kommt bewusst zuletzt: Es wirkt am besten auf einem Server, der schon schwer auszunutzen ist.
1. Fang bei der server.cfg an
Ein paar Zeilen in der server.cfg entscheiden, was ein veränderter Spielclient überhaupt darf. Prüf, dass sie so gesetzt sind, wie du es willst:
# OneSync: Der Server kennt Entities und Spieler. Fast jede
# serverseitige Prüfung braucht das.
set onesync on
# Keine ScriptHookV-Mods auf deinem Server.
sv_scriptHookAllowed 0
# Pure Mode: 1 erlaubt nur veränderte Audio- und Grafikdateien,
# 2 blockiert alle veränderten Spieldateien.
sv_pureLevel 1
# IP-Adressen der Spieler nicht in den öffentlichen Serverinfos zeigen.
sv_endpointPrivacy trueZwei weitere Einstellungen solltest du in der Cfx.re-Dokumentation nachlesen, bevor du sie aktivierst, weil sie ändern, was deine Resources dürfen:
sv_entityLockdownbegrenzt, welche Entities Clients erstellen dürfen.relaxedblockiert Entities aus Client-Scripts,strictblockiert jede vom Client erstellte Entity, dann muss alles über den Server gespawnt werden. Viele ältere Resources spawnen Fahrzeuge und Props noch clientseitig, also teste das zuerst auf einer Kopie deines Servers.sv_filterRequestControlbegrenzt, wann ein Client die Netzwerkkontrolle über eine Entity eines anderen Spielers übernehmen darf, zum Beispiel über ein Fahrzeug, das jemand anderes fährt. Das erschwert es, Fahrzeuge anderer Spieler zu löschen oder zu verschieben.
Halte deine FXServer-Artifacts aktuell. Cfx.re liefert Sicherheitsfixes mit den Server-Builds aus, und ein Artifact von vor einem Jahr hat keinen davon. txAdmin zeigt dir, wenn ein neuerer empfohlener Build da ist.
2. Adminzugänge absichern
Die meisten Geschichten von "gehackten Servern" sind gar keine Cheats. Jemand hat Adminrechte bekommen.
-
Vergib Adminrechte über ACE an einen festen Identifier, nie an eine IP-Adresse oder einen Spielernamen:
cfgadd_principal identifier.fivem:1234567 group.admin add_principal identifier.discord:123456789012345678 group.admin -
Gib jedem Teammitglied nur die Befehle, die es braucht. Ein Supporter braucht selten
commandoder Resource-Steuerung. -
Lass
rcon_passwordleer, wenn du RCON nicht wirklich nutzt. Verwalte den Server lieber über txAdmin, und lass jeden Admin sich mit einem Cfx.re-Konto anmelden, auf dem die Zwei-Faktor-Authentifizierung an ist. -
Entferne ehemalige Teammitglieder am Tag, an dem sie gehen: ACE-Zeilen, txAdmin-Konten, Discord-Rollen, Datenbankzugänge und FTP/SFTP-Schlüssel.
3. Jedes Net Event ist feindliche Eingabe
Hier entsteht der meiste echte Schaden. Jeder Client kann jedes Server-Event auslösen, das eine Resource mit RegisterNetEvent registriert, mit beliebigen Argumenten. Ein Cheat-Menü muss nichts "hacken", um ein shop:buy-Event mit Preis 0 oder bank:deposit mit einem negativen Betrag aufzurufen.
Die Regel ist einfach: Der Server entscheidet, der Client fragt nur.
-- Schlecht: Der Client schickt Preis und Menge.
RegisterNetEvent('shop:buy', function(item, price, amount)
local xPlayer = ESX.GetPlayerFromId(source)
xPlayer.removeMoney(price * amount)
xPlayer.addInventoryItem(item, amount)
end)
-- Besser: Der Server kennt die Preise und prüft alles.
local PRICES = { bread = 5, water = 3 }
RegisterNetEvent('shop:buy', function(item, amount)
local src = source
local xPlayer = ESX.GetPlayerFromId(src)
local price = PRICES[item]
amount = math.floor(tonumber(amount) or 0)
if not xPlayer or not price then return end
if amount < 1 or amount > 20 then return end
if not isNearShop(src) then return end -- Position auf dem Server prüfen
if xPlayer.getMoney() < price * amount then return end
xPlayer.removeMoney(price * amount)
xPlayer.addInventoryItem(item, amount)
end)Prüf bei jedem Event, das Geld, Items, Jobs, Fahrzeuge oder andere Spieler verändert, auf dem Server:
- Wer ruft auf: nimm
source, nie eine Spieler-ID aus den Argumenten. - Was kommt an: Typen, Wertebereiche und Whitelists. Lehne alles ab, was du nicht erwartest.
- Wo ist der Spieler: vergleiche seine Position auf dem Server mit Shop, Job-Ort oder Ziel.
- Darf er das: Job, Rang, Cooldown, Besitz von Fahrzeug oder Item.
- Wie oft: Ein einfacher Cooldown pro Spieler stoppt Event-Spam, mit dem Items gedupt werden sollen.
Das Gleiche gilt für Callbacks (lib.callback, ESX.RegisterServerCallback, QBCore.Functions.CreateCallback) und für State Bags, die ein Client schreiben kann. Unser englischer Guide zur Event-Sicherheit geht mit kopierbaren Mustern tiefer.
4. Prüf die Resources, die du laufen lässt
Geleakte und "kostenlose Premium"-Scripts sind der häufigste Weg, wie eine Backdoor auf einen FiveM-Server kommt. Eine Backdoor lädt meist Code aus dem Internet und führt ihn aus. Damit hat ein Fremder volle Kontrolle über Server und Datenbank.
- Installiere Resources nur von ihren Autoren, aus dem Cfx.re-Forum, aus Tebex-Shops, denen du vertraust, oder aus einem Git-Repository, das du lesen kannst.
- Sei misstrauisch bei verschleiertem Servercode aus unbekannter Quelle und bei jeder Resource, die per
PerformHttpRequestgeladenen Code ausführt. - Entferne Resources, die du nicht mehr nutzt. Jede Resource bringt Events mit, die ein Client aufrufen kann.
- Halte dein Framework und die Kern-Resources (Inventar, Banking, Handy) aktuell. Lücken in verbreiteten Resources werden schnell veröffentlicht und ausgenutzt.
5. Geheimnisse gehören nicht in den Spielserver
- Datenbankpasswörter, Webhook-URLs und API-Keys gehören in Convars in einer privaten
server.cfg(oder in Umgebungsvariablen), nicht in Dateien, die in einem öffentlichen Repository landen. - Discord-Webhooks in Client-Dateien kann jeder Spieler lesen. Schick Webhooks nur vom Server.
- Sichere die Datenbank automatisch und halte mindestens eine Kopie außerhalb der Maschine.
6. Nutz txAdmin für das, was es gut kann
txAdmin gehört zu FXServer und übernimmt die tägliche Verwaltung: Neustarts, Live-Konsole, Spielerhistorie, Verwarnungen, Bans und Whitelist. Richte es richtig ein:
- Admins melden sich mit Cfx.re-Konten an, die Zwei-Faktor-Authentifizierung nutzen.
- Ein Whitelist-Modus, wenn er zu deiner Community passt (Discord-Rolle, freigegebene Lizenz oder nur Admins während der Entwicklung).
- Geplante Neustarts, damit sich Speicherlecks in Resources nicht aufbauen.
txAdmin verwaltet deinen Server, erkennt aber keine Cheats. Wie sich die Arbeit aufteilt, steht in txAdmin and an anticheat (Englisch).
7. Ein Anticheat für das, was der Server nicht sieht
Die Schritte 1 bis 6 stoppen den Großteil des Missbrauchs über deine Scripts. Sie stoppen keinen veränderten Client, der Dinge tut, die das Spiel selbst erlaubt: für den Spieler zielen, schneller als möglich laufen, Dinge spawnen, durch Wände sehen oder eigenen Code einschleusen. Das ist die Aufgabe eines Anticheats.
Worauf du achten solltest, steht in So wählst du ein FiveM Anticheat aus. Kurz: Beweise zu jedem Ban, ein Umgang mit Fehlalarmen, bevor Unschuldige gebannt werden, Schutz gegen gebannte Spieler mit neuem Account und Unterstützung für dein Framework.
Parity ist das Anticheat, das wir dafür bauen. Es läuft als eine Resource neben deinem Framework, hängt Screenshots und Videoclips als Beweise an Bans, verknüpft zurückkehrende Accounts mit ihrem alten Ban und lässt dich pro Detection zwischen Loggen, Kicken und Bannen wählen, sodass eine neue Prüfung erst nur loggt, bis du ihr vertraust. Das komplette Dashboard kannst du ohne Account in der Demo ausprobieren.
Checkliste
- OneSync an, ScriptHook aus, Pure Mode gesetzt, Endpoint Privacy an
- Entity Lockdown und Request-Control-Filter auf einer Serverkopie getestet
- Aktuelles empfohlenes FXServer-Artifact
- Adminrechte per ACE an festen Identifiern, 2FA auf den Teamkonten, RCON aus
- Jedes Geld-, Item-, Job- und Fahrzeug-Event auf dem Server geprüft
- Resources nur aus vertrauenswürdigen Quellen, ungenutzte entfernt
- Geheimnisse in privater Config, Webhooks nur serverseitig, automatische Backups
- Ein Anticheat mit Beweisen und Umgang mit Fehlalarmen
