Installation

Anti-Cheat-Installation — Schritt für Schritt

Diese Anleitung führt dich von null zu einem funktionierenden Setup. Sie erklärt außerdem, warum jeder Schritt wichtig ist, damit du weißt, wo du nachsehen musst, wenn etwas schiefgeht.

Bevor du startest — Voraussetzungen

VoraussetzungWarum sie nötig ist
FiveM Artifact 6121+Die serverseitigen Net-Events, auf die der Anti-Cheat baut (giveWeaponEvent, explosionEvent), verhalten sich erst ab diesem Build zuverlässig.
OneSync aktiviertset onesync on. Entity-Ownership und serverautoritative Erkennungen funktionieren ohne OneSync nicht.
oxmysqlDie einzige harte Abhängigkeit. Bans, Erkennungen und Einstellungen werden darüber gelesen und geschrieben.
MySQL / MariaDB 10.4+Noch keine Datenbank? Siehe den Datenbank-Leitfaden.
screenshot-basic (optional)Erstellt Beweis-Screenshots zum Zeitpunkt des Bans.

1. Paket herunterladen

Sobald dein Abo aktiv ist: Panel → Server → dein Server → „Anti-Cheat herunterladen“

Oder direkt mit deinem Lizenzschlüssel:

curl -H "X-License-Key: YOUR_LICENSE_KEY" \
     -o tosun-ac.zip \
     https://admin.tosundev.com/api/ac_package_download.php
Jeder Download ist einzigartig für dich. Das Paket trägt eine an deine Lizenz gebundene Build-ID, festgehalten in server/core/anticheat_000_license.lua. Taucht deine Kopie anderswo auf, lässt sich ihre Herkunft nachweisen. Teile weder dein Paket noch deinen Lizenzschlüssel.

2. In den resources-Ordner entpacken

resources/
└── [tosun]/
    ├── tosun-ac/
    └── tosun-ac-guardian/

Beide Ordner müssen auf der gleichen Ebene liegen. Guardian ist eine eigene Resource — gleich siehst du, warum.

3. Datenbankschema importieren

Nur bei der Erstinstallation:

mysql -u USER -p DATABASE < tosun-ac/sql/ts_anticheat.sql

Alternativ setze ts.autoSQL = true in configs/anticheat_config.lua, starte den Server einmal und setze es danach wieder auf false.

ℹ️ Bei Updates werden Schemaunterschiede automatisch angewendet (ADD COLUMN IF NOT EXISTS) — nichts manuell nötig.

4. server.cfg — die Reihenfolge zählt

ensure oxmysql
ensure tosun-ac
ensure tosun-ac-guardian
Warum ist Guardian unverzichtbar? Der häufigste Cheat-Ausweg war schlicht, den Anti-Cheat zu stoppen: stop tosun-ac ausführen und spielen, ohne je gebannt zu werden. Das Problem: Wenn tosun-ac stoppt, sterben seine eigenen Schutz-Threads mit — er kann sich nicht selbst wiederbeleben.

tosun-ac-guardian ist eine separate Resource und überlebt deshalb: Bei einem unautorisierten Stopp startet er den Anti-Cheat innerhalb einer Sekunde neu und stoppt die Resource, die den Befehl abgesetzt hat. Beide bewachen sich gegenseitig — sie gleichzeitig abzuschalten ist nicht möglich.

Guardian muss nach tosun-ac kommen.

5. Panel verbinden

In configs/anticheat_config.lua:

ts.webPanelURL = "https://admin.tosundev.com"
ts.webPanelKey = "YOUR_API_KEY"

Den API-Schlüssel findest du unter Panel → Server → dein Server → API-Schlüssel.

Du kannst beide leer lassen — der Anti-Cheat holt sie beim Start aus der Tabelle panel_settings. Wenn du über das Panel eingerichtet hast, stehen sie bereits dort.

6. Starten und prüfen

Starte den Server neu. Du solltest sehen:

[Tosun AC v9.0] NetEventGuard aktif
[AC-Guardian] Aktif — tosun-ac harici gözetmen koruması altında.

Dann im Spiel:

/ts status     → Modulstatus
/ts test       → Selbsttest

Panel → AC → Live sollte deinen Server innerhalb von 30 Sekunden als online anzeigen.

7. Plattform-Härtung — der wertvollste Schritt

Diese Einstellungen blockieren einen großen Teil der Cheats auf der Routing-Ebene von FiveM. Kein clientseitiger Cheat kann sie umgehen, weil der Server das Paket gar nicht erst weiterleitet. Sie kosten den Anti-Cheat nichts und sind nicht umgehbar.
# Clients dürfen keine vernetzten Entities erzeugen (Fahrzeuge/Peds/Objekte)
set sv_entityLockdown "relaxed"

# Nur der Server darf State Bags schreiben
set sv_stateBagStrictMode "true"

# Übernahme der Entity-Kontrolle (Fahrzeug-Werfen, Spieler-Schleudern)
set sv_filterRequestControl "2"

# Missbrauchbare vernetzte Events
set sv_enableNetworkedSounds "false"
set sv_enableNetworkedPhoneExplosions "false"
set sv_enableNetworkedScriptEntityStates "false"

# ScriptHookV-Clients
set sv_scriptHookAllowed "false"

# Veränderte Client-Dateien (für Silent-Aim genutzt)
set sv_pureLevel "1"

Der Anti-Cheat prüft diese beim Start und listet fehlende auf. Damit die sicheren automatisch gesetzt werden:

ts.hardening.autoApply = true
sv_entityLockdown strict kann ältere Skripte zerstören, die Fahrzeuge clientseitig spawnen (manche Autohaus-Systeme). Beginne mit relaxed, teste, ziehe dann an. Diese Einstellung wird niemals automatisch angewendet.

8. Admin-Zugriff vergeben

Jede dieser Varianten funktioniert; die erste Übereinstimmung gewinnt:

# 1) server.cfg — ACE
add_ace group.admin tosun.admin allow
add_principal identifier.license:YOUR_LICENSE group.admin

# 2) txAdmin — wird automatisch erkannt (ts.txAdminAuth = true)

# 3) admins/anticheat_admins.lua
Admins = { "license:xxxxxxxxxxxxxxxxxxxxxxxx" }

# 4) Panel → AC → Admin Grants

Öffne das Menü mit /tsmenu, /ts menu oder F7.

Sicherheitsänderung in v9.0: Die Menü-Autorisierung läuft jetzt über einen Server-Roundtrip mit einer clientseitig erzeugten Nonce. In früheren Versionen konnte ein Cheat lokal Events auslösen, um sich selbst als Admin zu markieren — und erhielt so Menüzugriff und Immunität gegen jeden Ban. Diese Lücke ist geschlossen.

Installations-Checkliste

  • ☐ Konsole zeigt NetEventGuard aktif
  • ☐ Konsole zeigt [AC-Guardian] Aktif
  • ☐ Kein roter GUVENLIK UYARISI-Block (oder du hast die aufgelisteten Convars bewusst ausgelassen)
  • ☐ Server erscheint im Panel als online
  • /tsmenu öffnet sich für einen Admin
  • /tsmenu tut für einen normalen Spieler nichts

Häufige Probleme

SymptomUrsache & Lösung
Kick mit Anticheat failed to loadVom Client kam nie ein Heartbeat. Meist ein langsamer Download — erhöhe ts.HeartBeat.firstHeartbeatDeadline. Betrifft es alle, prüfe, dass oxmysql vor tosun-ac startet.
Ein Admin wird gebanntPrüfe, ob der Admin erkannt wird: /ts whoami. Der Identifier in admins.lua muss exakt übereinstimmen (inklusive license:-Präfix). Panel-Grants brauchen bis zu 20 Sekunden.
Normale Spieler können das Menü öffnenDu nutzt v8.x. Aktualisiere auf v9.0 — das war eine bekannte Schwachstelle.
Menü-Buttons reagieren nichtDie NUI konnte SweetAlert2 nicht vom CDN laden. v9.0 fällt automatisch zurück; prüfe die NUI-Konsole (F8 → nui_devtools).
Es werden nie Bans ausgesprochenPrüfe ts.punishType und ts.DetectionPunishments — eine auf LOG gesetzte Erkennung bannt nie. ts.Debug muss false sein.
Ambient-NPCs spawnen weiterhinSetze ts.NpcBlocker.enabled = true und blockPeds = true. Von Skripten gespawnte Peds werden bewusst nie entfernt.

Aktualisieren

  1. Lade das neue Paket im Panel herunter (gleiche URL — sie liefert immer den neuesten Build für deine Lizenz)
  2. Sichere deine Ordner configs/, admins/ und editable/
  3. Ersetze den Resource-Ordner
  4. Stelle deine Konfigurationsdateien wieder her — sie sind genau deshalb nie obfuskiert, damit du sie weiter bearbeiten kannst
  5. Neu starten

Gib beim Support-Kontakt deine Build-ID an (in server/core/anticheat_000_license.lua) — sie identifiziert deinen exakten Build.

Zur Startseite Tosun Dev Docs