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
| Voraussetzung | Warum 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 aktiviert | set onesync on. Entity-Ownership und serverautoritative Erkennungen funktionieren ohne OneSync nicht. |
| oxmysql | Die 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
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
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
# 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.
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 - ☐
/tsmenutut für einen normalen Spieler nichts
Häufige Probleme
| Symptom | Ursache & Lösung |
|---|---|
Kick mit Anticheat failed to load | Vom 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 gebannt | Prü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ü öffnen | Du nutzt v8.x. Aktualisiere auf v9.0 — das war eine bekannte Schwachstelle. |
| Menü-Buttons reagieren nicht | Die 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 ausgesprochen | Prüfe ts.punishType und ts.DetectionPunishments — eine auf LOG gesetzte Erkennung bannt nie. ts.Debug muss false sein. |
| Ambient-NPCs spawnen weiterhin | Setze ts.NpcBlocker.enabled = true und blockPeds = true. Von Skripten gespawnte Peds werden bewusst nie entfernt. |
Aktualisieren
- Lade das neue Paket im Panel herunter (gleiche URL — sie liefert immer den neuesten Build für deine Lizenz)
- Sichere deine Ordner
configs/,admins/undeditable/ - Ersetze den Resource-Ordner
- Stelle deine Konfigurationsdateien wieder her — sie sind genau deshalb nie obfuskiert, damit du sie weiter bearbeiten kannst
- Neu starten
Gib beim Support-Kontakt deine Build-ID an (in server/core/anticheat_000_license.lua) — sie identifiziert deinen exakten Build.