Zur Anleitung

Dokumentation 9.6.24

Einrichtung Schritt für Schritt

Vom leeren Server bis zum aktiven Schutz mit Panel-Anbindung brauchen Sie etwa 20 Minuten. Jeder Schritt endet mit einer Prüfung. Schlägt eine Prüfung fehl, beheben Sie das Problem, bevor Sie weitermachen.

Bevor Sie beginnen#

Stellen Sie sicher, dass Folgendes bereitsteht.

  • Ein aktueller FiveM-Server-Build (Artifact) mit aktiviertem OneSync (set onesync on). Ohne OneSync funktionieren die meisten serverseitigen Prüfungen nicht, und der Anticheat warnt beim Start davor.
  • oxmysql ist installiert und läuft. Der Anticheat greift nur über oxmysql auf die Datenbank zu und fragt nie nach einem eigenen MySQL-Passwort.
  • Ein Panel-Konto mit einem Tarif, der Downloads enthält.
  • Eine Sicherung der Datenbank und des resources-Ordners. Sichern Sie bei einem Update zusätzlich die Ordner configs, admins, editable, locales und bridge separat.
  • Eine Möglichkeit, Dateien auf den Server hochzuladen (FTP, der txAdmin-Dateimanager oder Remotedesktop), und ein Tool zum Ausführen von SQL (HeidiSQL oder phpMyAdmin).

1. Server im Panel hinzufügen#

Der Lizenzschlüssel gehört zu genau einem Server. Deshalb legen Sie diesen Server zuerst im Panel an.

  1. Öffnen Sie im Kundenpanel die Seite Server und wählen Sie Server hinzufügen.
  2. Geben Sie den Servernamen ein und wählen Sie das Framework (QBCore, Qbox oder ESX) sowie das Inventar-Script.
  3. Lassen Sie unter Datenbankverbindung die Option Über das Script verbinden ausgewählt. Dieser Modus braucht kein MySQL-Passwort und keinen öffentlichen Datenbank-Port.
  4. Speichern Sie, öffnen Sie den Server und kopieren Sie den Wert auf der Karte Lizenzschlüssel. Wenn Sie mehrere Server betreiben, verwenden Sie für jeden Server dessen eigenen Schlüssel.
  5. Prüfung: Der Server erscheint in der Liste, und Sie haben seinen Lizenzschlüssel kopiert.

2. Serverpaket herunterladen#

Das Paket wird beim Herunterladen für den gewählten Server erstellt. Das kann einige Sekunden dauern.

Das Paket enthält tosun-ac (die Hauptressource, erforderlich), tosun-ac-guardian (eine kleine Ressource, die verhindert, dass der Anticheat gestoppt wird, empfohlen) und, falls enthalten, tosun_render (die Komponente für Beweisvideos). Im Ordner tosun-ac liegen außerdem INSTALL.sql (eine SQL-Datei, die alle Tabellen anlegt), KURULUM.txt (eine kurze Installationsnotiz) und INTEGRATION.md (die Anleitung für andere Scripts).

Ein neu heruntergeladenes Paket aktualisiert keinen laufenden Server. Erst wenn Sie die Dateien einspielen und die Ressource neu starten, ändert sich etwas.

  1. Öffnen Sie im Panel die Seite Downloads.
  2. Wählen Sie Ihren Server und klicken Sie auf Herunterladen.
  3. Entpacken Sie die ZIP-Datei in einen Ordner auf Ihrem Computer.

3. Dateien einspielen#

Legen Sie im resources-Ordner des Servers einen Ordner namens [tosun] an. Ordner in eckigen Klammern gruppieren in FiveM nur Ressourcen. Kopieren Sie die Ordner tosun-ac, tosun-ac-guardian und, falls enthalten, tosun_render hinein.

Benennen Sie die Ordner nicht um. Andere Scripts sprechen den Anticheat über exports['tosun-ac'] an, und der Guardian überwacht den Namen tosun-ac. Eine Umbenennung macht Integrationen und den Schutz unwirksam.

Löschen Sie keine Dateien in den Ordnern. Die Integritätsprüfung des Pakets erkennt fehlende oder geänderte Dateien.

resources/
  [tosun]/
    tosun-ac/
    tosun-ac-guardian/
    tosun_render/

4. Datenbanktabellen anlegen#

Der Anticheat speichert Bans, Erkennungen, Logs und Einstellungen in Ihrer Spieldatenbank. Legen Sie die Tabellen in der Datenbank an, mit der sich oxmysql verbindet. Das ist dieselbe Datenbank, in der auch Ihre Framework-Tabellen liegen.

INSTALL.sql löscht keine Daten. Die Tabellen werden mit CREATE TABLE IF NOT EXISTS angelegt, bestehende Tabellen bleiben also unverändert.

Der Datenbankbenutzer von oxmysql braucht für diese Datenbank die Rechte CREATE und ALTER. Erlaubt Ihr Shared Hosting das nicht, führen Sie das SQL selbst über das Control Panel des Hosters aus.

  1. Sichern Sie die Datenbank.
  2. Wählen Sie in HeidiSQL die Spieldatenbank aus, öffnen Sie tosun-ac/INSTALL.sql über Datei → SQL-Datei laden und führen Sie sie aus (F9). In phpMyAdmin verwenden Sie den Reiter Importieren.
  3. Wenn Sie die Kommandozeile bevorzugen, verwenden Sie den folgenden Befehl.
  4. Prüfen Sie, ob die Tabellen ts_anticheat, ac_detections und admin_logs jetzt vorhanden sind.
mysql -u USER -p DATABASE_NAME < INSTALL.sql

5. Fehlende Spalten bei älteren Installationen ergänzen#

Wenn Sie von einer älteren Version kommen, sind Ihre Tabellen vorhanden, ihnen fehlen aber eventuell neuere Spalten. Zeigt die Konsole einen Fehler wie Unknown column 'log_message' in 'field list', sichern Sie die Datenbank und führen Sie die folgenden Befehle aus. Sie ergänzen nur fehlende Spalten und lassen vorhandene Daten unberührt.

Diese Syntax gilt für MariaDB. MySQL 8 kennt hier kein IF NOT EXISTS: Lassen Sie sich zuerst mit SHOW COLUMNS FROM admin_logs; die Spalten anzeigen und ergänzen Sie nur die fehlenden mit ADD COLUMN.

Bleibt der Fehler bestehen, gehört die Tabelle admin_logs möglicherweise zu einem anderen Script. Senden Sie die Ausgabe von SHOW CREATE TABLE admin_logs; an den Support.

ALTER TABLE admin_logs
  ADD COLUMN IF NOT EXISTS log_message LONGTEXT NULL,
  ADD COLUMN IF NOT EXISTS log_playerid LONGTEXT NULL,
  ADD COLUMN IF NOT EXISTS log_playername LONGTEXT NULL,
  ADD COLUMN IF NOT EXISTS log_type VARCHAR(20) NOT NULL DEFAULT 'LOG',
  ADD COLUMN IF NOT EXISTS log_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  ADD COLUMN IF NOT EXISTS created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

ALTER TABLE ac_detections
  ADD COLUMN IF NOT EXISTS player_id INT NULL,
  ADD COLUMN IF NOT EXISTS player_name VARCHAR(100) NOT NULL DEFAULT '',
  ADD COLUMN IF NOT EXISTS license VARCHAR(100) NULL,
  ADD COLUMN IF NOT EXISTS steam VARCHAR(50) NULL,
  ADD COLUMN IF NOT EXISTS discord VARCHAR(50) NULL,
  ADD COLUMN IF NOT EXISTS ip VARCHAR(40) NULL,
  ADD COLUMN IF NOT EXISTS detection_type VARCHAR(60) NOT NULL DEFAULT '',
  ADD COLUMN IF NOT EXISTS detail TEXT NULL,
  ADD COLUMN IF NOT EXISTS reason VARCHAR(512) NOT NULL DEFAULT '',
  ADD COLUMN IF NOT EXISTS punishment VARCHAR(10) NOT NULL DEFAULT 'LOG',
  ADD COLUMN IF NOT EXISTS ban_id VARCHAR(20) NULL,
  ADD COLUMN IF NOT EXISTS screenshot VARCHAR(512) NULL,
  ADD COLUMN IF NOT EXISTS config VARCHAR(100) NULL,
  ADD COLUMN IF NOT EXISTS config_key VARCHAR(100) NULL,
  ADD COLUMN IF NOT EXISTS server_id INT NULL,
  ADD COLUMN IF NOT EXISTS created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

6. server.cfg und Grundeinstellungen konfigurieren#

Fügen Sie die folgenden Zeilen in die server.cfg ein. Die set-Zeilen müssen vor den ensure-Zeilen stehen, denn die Ressource liest diese Werte beim Start. oxmysql und Ihr Framework müssen vor dem Anticheat starten.

Ersetzen Sie qb-core durch Ihre Framework-Ressource (qbx_core oder es_extended). Fügen Sie die Zeile für tosun_render nur hinzu, wenn Ihr Paket es enthält.

tosun_ac_license ist die einzige erforderliche Einstellung. Die Panel-Datenverbindung und die Bearbeitung von Kontoständen online gespielter Charaktere sind standardmäßig eingeschaltet; dafür fügen Sie keine Zeilen hinzu. Ältere Zeilen set tosun_db_bridge_enabled und set tosun_db_bridge_money_write werden ab Paket 9.6.14 ignoriert und können gelöscht werden. Ältere Pakete brauchen diese Zeilen weiterhin, um die Verbindung einzuschalten. Laden Sie deshalb das aktuelle Paket aus dem Panel herunter.

Optionale Einstellungen: tosun_ac_panel_key (Website-Einstellungen → AntiCheat-API-Schlüssel; ist der Wert leer, ermittelt der Anticheat den Schlüssel selbst aus der Datenbank) und tosun_ac_central_token (ein Token mit der Komponente fivem von der Seite AC-API-Tokens; ist der Wert leer, wird der Panel-Schlüssel verwendet).

Verwenden Sie für die Lizenz und die Schlüssel nur set. setr sendet den Wert an die Spieler, und sets veröffentlicht ihn in der öffentlichen Serverliste. Tragen Sie keine Schlüssel in configs/anticheat_config.lua ein, denn auch diese Datei wird an die Spieler gesendet. Statt der server.cfg können Sie die Tabelle credentials in configs/anticheat_server.lua verwenden, die nur auf dem Server geladen wird. Sind beide ausgefüllt, hat die server.cfg Vorrang.

  • ts.Framework.framework: Lassen Sie "auto" stehen. QBCore, Qbox und ESX werden automatisch erkannt. Schlägt die Erkennung fehl, setzen Sie "qb", "qbox", "esx" oder "standalone".
  • ts.punishType: Verwenden Sie am ersten Tag 'LOG', damit Erkennungen nur protokolliert werden. Wechseln Sie zu 'BAN', sobald Sie die Erkennungen im Panel geprüft haben.
  • ts.Debug: Lassen Sie den Wert auf false. Ist die Option aktiv, wird jeder erkannt, auch das Team.
  • Lassen Sie die Felder webPanelKey, Central.token und licenseLock.licenseKey leer.
set onesync on

set tosun_ac_license "YOUR_LICENSE_KEY"

ensure oxmysql
ensure qb-core
# ... Ihre weiteren Framework- und Inventar-Ressourcen ...
ensure tosun_render
ensure tosun-ac
ensure tosun-ac-guardian

7. Berechtigungen für das Team vergeben#

Teammitglieder sind von Erkennungen ausgenommen und können das Admin-Menü im Spiel öffnen. Empfohlen sind ACE-Berechtigungen in der server.cfg.

tosun.admin deckt das Admin-Menü und die Ausnahme ab. tosunac.admin erlaubt es, tosunac_setup im Spiel auszuführen. Ersetzen Sie den license-Wert durch Ihren eigenen.

Alternativ tragen Sie license:-, steam:- oder discord:-Kennungen in die Liste Admins in tosun-ac/admins/anticheat_admins.lua ein oder vergeben die Berechtigung über das Panel.

Wer nur txAdmin-Admin ist, ist von Erkennungen ausgenommen, kann das Menü im Spiel aber nicht öffnen. Dafür braucht es eine der oben genannten Methoden.

Öffnen Sie das Menü im Spiel mit /ts oder /tsmenu oder drücken Sie F7. Die Taste ändern Sie mit ts.AdminMenu.openKeyControl.

add_ace group.admin tosun.admin allow
add_ace group.admin tosunac.admin allow
add_principal identifier.license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx group.admin

8. Erster Start und Überprüfung#

Starten Sie bei der Erstinstallation den gesamten Server neu und nicht nur die Ressource. So zeigen sich Probleme mit der Startreihenfolge sofort.

  1. Starten Sie den Server neu und achten Sie in der Konsole auf rote tosun-ac-Fehler.
  2. Führen Sie tosunac_doctor in der Serverkonsole aus. Der Befehl listet riskante oder widersprüchliche Einstellungen auf.
  3. Führen Sie tosunac_db_status für die Panel-Datenverbindung und tosunac_integration für die Verbindungen mit anderen Scripts aus.
  4. Suchen Sie in der Konsole nach der Zeile [AC-Guardian] Aktif.
  5. Wenn Sie sicher sind, dass der Server sauber ist, führen Sie tosunac_setup aus. Der Befehl sucht zuerst nach Backdoors und nimmt dann saubere Ressourcen und die Events des Servers in die Allowlist auf. Führen Sie ihn nicht aus, wenn Sie eine infizierte Ressource vermuten: Er stuft den aktuellen Zustand als vertrauenswürdig ein.
  • Der Server wird im Panel als online angezeigt, und die Spielerzahl wird aktualisiert.
  • Wenn Sie mit einem Team-Konto beitreten, öffnet /ts das Menü.
  • Im Log-Bereich des Panels erscheinen neue Einträge.
  • Nach 10–15 Minuten Spielzeit mit einem normalen Konto zeigt das Panel keine unerwarteten Erkennungen.
tosunac_doctor
tosunac_db_status
tosunac_integration
tosunac_setup

9. Panel-Datenverbindung prüfen#

Diese Verbindung ist standardmäßig eingeschaltet. Sie müssen weder eine Zeile in die server.cfg eintragen noch die Verbindung im Panel aktivieren. Berechtigte Panel-Benutzer können bei Bedarf Daten zu Spielern, Charakteren, Inventar, Fahrzeugen, Bans und Erkennungen einsehen. Die Datenbank wird nicht kopiert, und Ihr MySQL-Passwort bleibt auf Ihrem Server. Die Verbindung liest nur Daten. Die einzige Ausnahme ist die unten beschriebene Bearbeitung von Kontoständen online gespielter Charaktere.

Jede Seite liefert 25 Datensätze, es läuft immer nur eine Anfrage gleichzeitig, und eine Antwort ist höchstens 64 KB groß. Im Leerlauf führt die Verbindung keine Abfragen auf der Spieldatenbank aus. Die Standardtabellen von QBCore, Qbox und ESX werden unterstützt. Eigene Tabellen werden nicht automatisch zugeordnet.

Auch die Bearbeitung von Kontoständen ist standardmäßig eingeschaltet. Nur Panel-Benutzer mit der Rolle Admin oder Besitzer (Wirtschaftsberechtigung) können sie verwenden. Sie addiert nichts, sondern setzt den Bargeld- oder Bankstand auf den eingegebenen Wert. Der Charakter muss online sein. Stimmt der erwartete aktuelle Kontostand nicht, wird die Anfrage mit stale_balance abgelehnt und nichts geändert. Das Panel zeigt vor dem Senden eine Zusammenfassung zur Bestätigung, und jede Anfrage wird im Audit-Log gespeichert. Eine Anfrage mit unklarem Ergebnis wird nie automatisch wiederholt. Prüfen Sie den Kontostand im Spiel, bevor Sie es erneut versuchen.

Für die erweiterte manuelle Steuerung fügen Sie set tosun_db_bridge_manual "1" in die server.cfg ein. Dann werden tosun_db_bridge_enabled und tosun_db_bridge_money_write wie früher aus der server.cfg gelesen, und jede Einstellung bleibt aus, solange sie nicht auf "1" steht. Wenn Sie den alten vollständigen Spiegel bewusst eingeschaltet haben (ts.panelMirror.enabled = true in configs/anticheat_config.lua), bleibt die Verbindung automatisch aus, damit der Spiegel weiter funktioniert.

Ihre Community-Website nutzt dieselbe Verbindung. Ohne Spieldatenbank-Einstellungen lesen die Seiten Spieler, Banns und Erkennungen vom Spielserver; ein MySQL-Benutzer oder ein offener Datenbankport ist nicht nötig. Unter Datenbank und Bridge → „Community-Website nur mit der Lizenz“ steht, was dieser Modus zeigt und wann sich die optionale direkte SQL-Verbindung lohnt.

  1. Öffnen Sie im Panel Server → Ihr Server → die Karte Tosun Connect. Solange die Ressource läuft, sollte die Karte Connection ready (Verbindung bereit) anzeigen.
  2. Sie können die Verbindung auch mit tosunac_db_status in der Serverkonsole prüfen.
  3. Um die Verbindung für einen Server auszuschalten, wählen Sie auf derselben Karte Disable connection (Verbindung deaktivieren). Damit enden alle Lesezugriffe und Kontostandsänderungen für diesen Server. Sie können die Verbindung auf derselben Karte wieder einschalten.

10. Andere Scripts kompatibel machen#

Scripts, die Spieler teleportieren, Waffen vergeben oder Spieler einfrieren, können wie Cheats wirken, wenn sie den Anticheat nicht informieren. Die häufigsten Fälle und ihre Lösung:

Jedes Script kann MarkTeleport aufrufen. AllowWeapon und SetExempt gewähren weitreichende Ausnahmen und werden deshalb nur von Ressourcen akzeptiert, denen Sie vertrauen. Tragen Sie die Namen der Scripts, die sie verwenden, durch Kommas getrennt ein und behalten Sie die Namen bei, die bereits in der Liste stehen.

  • Teleportiert einen Spieler (Haus, Garage, Gefängnis, Krankenhaus): Rufen Sie exports['tosun-ac']:MarkTeleport(src) direkt vor dem Versetzen des Spielers auf.
  • Öffnet ein kurzes Menü, das den Spieler einfriert (Kleidung, Friseur): exports['tosun-ac']:MarkTeleport(src, 15000).
  • Vergibt eine Waffe, ohne sie ins Inventar zu legen (Arena, Paintball): exports['tosun-ac']:AllowWeapon(src, "WEAPON_PISTOL", ms). Erfordert eine vertrauenswürdige Ressource.
  • Muss einen Spieler für eine Weile komplett ausnehmen (Cutscene, eigener Respawn): exports['tosun-ac']:SetExempt(src, ms, "reason"). Erfordert eine vertrauenswürdige Ressource.
set tosun_ac_trusted_resources "my-clothing,my-housing,my-arena"

11. Update#

Führen Sie Updates während einer Wartung durch und behalten Sie Ihre eigenen Einstellungen.

Wenn Ihr Panel-Schlüssel früher in anticheat_config.lua stand, wurde er möglicherweise an Spieler gesendet. Erstellen Sie im Panel einen neuen Schlüssel und aktualisieren Sie auch die server.cfg. Ein Update widerruft alte Schlüssel nicht.

  1. Laden Sie das neue Paket aus dem Panel herunter.
  2. Sichern Sie den Ordner tosun-ac auf dem Server und bewahren Sie Ihre Änderungen in den Ordnern configs, admins, editable, locales und bridge separat auf.
  3. Löschen Sie die alten Ordner tosun-ac, tosun-ac-guardian und tosun_render und legen Sie die neuen an ihre Stelle. Wenn Sie die alten Ordner nur überschreiben, bleiben entfernte Dateien zurück.
  4. Übertragen Sie Ihre eigenen Einstellungen zurück. Damit neue Zeilen der neuen Version erhalten bleiben, übernehmen Sie nur die Werte, die Sie geändert haben, statt die ganze Datei zu ersetzen.
  5. Wenn die Versionshinweise Datenbankänderungen nennen, wiederholen Sie die Schritte 4 und 5.
  6. Starten Sie den Server neu und wiederholen Sie die Prüfungen aus Schritt 8.

12. Fehlerbehebung#

Die häufigsten Symptome und ihre Lösung:

Geben Sie bei einer Support-Anfrage die Versionsnummer (version in fxmanifest.lua), den vollständigen Konsolenfehler und die Ausgabe von tosunac_doctor an. Teilen Sie niemals Ihre Lizenz- oder API-Schlüssel. Der Support wird nie danach fragen.

  • Unknown column '…' in 'field list': Die Tabellen stammen aus einer älteren Version. Führen Sie das SQL aus Schritt 5 aus.
  • Table '…' doesn't exist: INSTALL.sql wurde nicht oder in die falsche Datenbank importiert. Importieren Sie die Datei in die Datenbank, mit der sich oxmysql verbindet.
  • oxmysql-Fehler, und der Anticheat stoppt in der ersten Sekunde: Setzen Sie ensure oxmysql über ensure tosun-ac.
  • Warnung „Lizenz ungültig“: Die Lizenz eines anderen Servers wurde eingetragen, die set-Zeile steht nach ensure, oder es wurde setr verwendet. Kopieren Sie die Lizenz erneut von der Karte des richtigen Servers.
  • Das Admin-Menü öffnet sich nicht: Die Person ist nur txAdmin-Admin. Fügen Sie die ACE-Zeilen aus Schritt 7 hinzu und treten Sie erneut bei.
  • Ein unschuldiger Spieler wird erkannt: Öffnen Sie die Erkennung im Panel, um zu sehen, welche Prüfung ausgelöst hat, und fügen Sie dann den Aufruf aus Schritt 10 in das betreffende Script ein. Stellen Sie die Strafe für diese Prüfung bis dahin im Panel auf LOG.
  • Der Server wird im Panel als offline angezeigt: Lesen Sie die Ausgabe von tosunac_doctor. Ist tosun_ac_panel_key gesetzt, prüfen Sie, ob er mit dem Schlüssel im Panel übereinstimmt.
  • Das Paket lässt sich nicht herunterladen: Lesen Sie den Hinweis auf der Seite Downloads. Eventuell enthält Ihr Tarif keine Downloads, oder der Server wurde nicht hinzugefügt.

Erste Anmeldung als Website-Eigentümer#

Wählen Sie Ihre gemietete Website in TosunDev und öffnen Sie die Website-Verwaltung. Ohne Sitzung folgt die Anmeldung; danach geht es zur Verwaltung zurück. Bei E-Mail-Registrierung gelten E-Mail und Passwort zum Zeitpunkt der Website-Erstellung. Spätere Passwortänderungen müssen nicht automatisch übernommen werden.

  1. Website-Adresse und Mietdatensatz vergleichen.
  2. Anmeldung und Rückkehr zur richtigen Verwaltung in einem privaten Browserfenster prüfen.
  3. Website mit dem eigenen FiveM-Server verbinden; Website-Passwort, Lizenz und MySQL-Passwort getrennt behandeln.
  4. Bei Problemen Kontowiederherstellung und Eigentumsprüfung nutzen, kein gemeinsames Administratorpasswort.

Tosun-Lizenz des richtigen Servers kopieren#

Öffnen Sie Server im TosunDev-Konto, wählen Sie Ihren FiveM-Server und kopieren Sie dessen Tosun-AC-Lizenz. tac_live_ ist keine Cfx.re-Lizenz, kein sv_licenseKey, kein Discord-Token und kein Panel-API-Schlüssel.

  1. Ersetzen Sie YOUR_SERVER_LICENSE zwischen den Anführungszeichen in server.cfg.
  2. Setzen Sie tosun_ac_license vor ensure tosun-ac; nur set verwenden, niemals setr oder sets.
  3. Alternativ credentials.licenseKey in configs/anticheat_server.lua ausfüllen. Ein nicht leerer Convar hat Vorrang.
  4. Lizenz nicht in Screenshots, Chat, shared config oder Client-Dateien veröffentlichen.
set tosun_ac_license "YOUR_SERVER_LICENSE"
# Alternative: configs/anticheat_server.lua
# credentials.licenseKey = "YOUR_SERVER_LICENSE"

Eine SQL-Datei in die richtige Datenbank importieren#

Der neue Download enthält tosun-ac/INSTALL.sql als einzigen SQL-Import. Keine zweite alte Kopie desselben Schemas importieren. Ziel ist die FiveM/oxmysql-Spieldatenbank, nicht die Konten- oder Theme-Datenbank der gemieteten Website. Fehlende alte Spalten werden vor Standardwerten ergänzt; Sperren und eigene Einstellungen bleiben erhalten.

  1. Spieldatenbank sichern und ihren Namen mit oxmysql vergleichen.
  2. Nur INSTALL.sql in HeidiSQL/phpMyAdmin importieren oder die Zieldatenbank ausdrücklich im mysql-Befehl nennen.
  3. tosunac_db_check prüft eine Abfrage, tosunac_db_status den Brückenstatus. Die Brücke ist standardmäßig aktiv und braucht keine server.cfg-Zeile. enabled=false ist korrekt im manuellen Modus (set tosun_db_bridge_manual "1") ohne tosun_db_bridge_enabled "1" oder wenn der alte vollständige Mirror (ts.panelMirror.enabled = true in configs/anticheat_config.lua) bewusst aktiviert ist; eine Lizenz ersetzt keine Datenbankverbindung.
  4. Panel-Verbindung (Tosun Connect) und Bearbeitung des Online-Kontostands sind standardmäßig aktiv. tosun_db_bridge_enabled und tosun_db_bridge_money_write nicht in server.cfg eintragen; alte Zeilen werden ab Paket 9.6.14 ignoriert und können gelöscht werden (ältere Pakete brauchen sie weiterhin, bis das aktuelle Paket installiert ist). Kontostände setzen nur Panel-Nutzer mit der Rolle admin oder owner: Der Charakter muss online sein, der erwartete Kontostand muss stimmen (sonst stale_balance, nichts ändert sich), das Panel zeigt vor dem Senden eine Zusammenfassung zur Bestätigung, jede Anfrage steht im Audit-Log, ein unklares Ergebnis wird nie automatisch wiederholt; zuerst den Kontostand im Spiel prüfen. Gesetzt wird der Gesamtbetrag, nichts wird addiert. Die ganze Verbindung für einen Server abschalten (das stoppt alle Lesezugriffe des Panels und alle Kontostandsänderungen): Panel → Server → Server wählen → Karte Tosun Connect → Disable connection; über dieselbe Karte lässt sie sich wieder einschalten. Passwort nur auf dem Spielserver speichern.
mysql -u YOUR_DB_USER -p YOUR_GAME_DATABASE < tosun-ac/INSTALL.sql

# txAdmin console:
tosunac_db_check
tosunac_db_status

ZIP entpacken und Ressourcen in txAdmin starten#

tosun-ac, tosun-ac-guardian und tosun_render gehören auf dieselbe Ebene unter resources; jede Ressource braucht fxmanifest.lua im Stammverzeichnis. discord-bot ist eine Node.js-Anwendung. Das neue Render-Manifest verwendet nur gta5, nicht gleichzeitig common.

  1. Die funktionierende mysql_connection_string beibehalten; oxmysql und vorhandenes Framework/Inventar zuerst starten.
  2. refresh in der txAdmin-Konsole ausführen, dann die Reihenfolge unten nutzen. Der Alias tosun-render wird unterstützt, der Ordner heißt tosun_render.
  3. tosun_render_status muss started und verfügbare Dateien melden. Video zusätzlich mit einem Spieler testen.
  4. Beim ersten Fehler Abhängigkeit, Ordner oder ausgewählte Serverlizenz gezielt prüfen.
set tosun_ac_license "YOUR_SERVER_LICENSE"

ensure oxmysql
# Start your existing framework/inventory here.
ensure tosun_render
ensure tosun-ac
ensure tosun-ac-guardian

# txAdmin console:
tosun_render_status
tosunac_doctor
tosunac_db_check
tosunac_db_status

Menürechte vergeben und Entzug prüfen#

ACE, Administrator-IDs und Panel-Freigaben werden serverseitig geprüft. all allein ist weder ID noch Freigabe. allowedIds benötigt vollständige license:..., discord:... oder fivem:... aus der Spieler-ID-Liste des Servers.

  1. Testadministrator mit den erforderlichen Rechten prüfen.
  2. Panel-Freigabe entfernen und denselben Spieler erneut prüfen; die neue Standardabfrage läuft ungefähr alle fünf Sekunden.
  3. Unabhängige ACE/admins.lua-Freigaben ebenfalls prüfen. Online-Spieler-Telemetrie ist keine Berechtigung.
  4. Ein normaler Testspieler muss abgewiesen bleiben; sensible Aktionen nur mit Testdaten prüfen.
ts.AdminMenu.allowedIds = {
    "license:YOUR_EXACT_PLAYER_IDENTIFIER",
    "discord:YOUR_DISCORD_USER_ID"
}
# Examples are placeholders, not grants.

Discord-Bot separat aus dem Paket installieren#

discord-bot läuft mit Node.js und wird nicht mit ensure gestartet. Erstellen Sie Ihre eigene Anwendung im Discord Developer Portal. Application ID, Guild ID sowie Rollen- und Kanal-IDs stammen von Ihrem Discord-Server. Token privat in der Umgebungsdatei halten.

Das Datenbankkonto der gemieteten Website ist standardmäßig an localhost des Anbieters gebunden. Ein Bot auf einem anderen FiveM-Rechner kann nicht automatisch zugreifen. Nutzen Sie einen verwalteten Dienst auf dem Website-Host oder eine genehmigte private Verbindung nur für Ihr Website-Konto. Kein Anbieter-root und kein öffentliches MySQL. Alte direkte SQL-Befehle mit Spieltabellen müssen separat geprüft werden.

Als Website-Eigentümer unter Website-Verwaltung → Discord-Bot Bot-Token, Client ID und Guild ID speichern. Über Download private bot setup die private Datei herunterladen und im eigenen Bot-Ordner als .env speichern. Anders als das leere ZIP-Beispiel enthält sie nur Schlüssel der ausgewählten Website. Nicht teilen oder in die Versionsverwaltung aufnehmen.

  1. Unterstützte Node.js-LTS-Version ab 22 installieren; Beispielkonfiguration mit dem Installationsskript vorbereiten.
  2. Bot mit bot und applications.commands einladen und nur benötigte Rechte vergeben.
  3. Website-Datenbank und HTTPS-API konfigurieren. Der private Kommandoschlüssel gehört nur zu diesem Bot und dieser Website; er ist keine Tosun-Lizenz und kein SaaS-Hauptschlüssel.
  4. Vor dem Start npm run doctor ausführen. Danach Online-Status und Rollen prüfen; doctor meldet sich nicht bei Discord an.
cd discord-bot
sh setup.sh
# Configure the private .env and site bot settings first.
npm run doctor
npm start

Unnötige Analyse nach Neustarts vermeiden#

Bei jedem Start werden SHA256-Inhaltsprüfsummen der Ressourcen geprüft. Unveränderte Dateien und Scanregeln verwenden authentifizierte Ergebnisse im Server-KVP statt aufwendiger Signatur- und Ereignisanalyse. Geänderte Dateien, Ausnahmen oder Regeln lösen neue Analysen aus. Die Prüfsummenprüfung liest weiterhin Dateien; ein fester resmon-Wert wird nicht garantiert.

  1. Den KVP-Cache bei normalen Updates behalten; beschädigte oder nicht verifizierbare Einträge werden erneut analysiert.
  2. Der Startkatalog erfasst wörtlich deklarierte Lua/JS-Ereignisnamen. Dynamische Namen, unlesbare oder Escrow-Dateien und DLLs gelten nicht als vollständig geprüft.
  3. Die manuelle automatische Einrichtung wartet auf die Sicherheitsanalyse. Unvollständige, verdächtige, geänderte oder abgelaufene Ressourcen werden nicht automatisch freigegeben.
  4. Spielerbeitritt, normales Spiel und Administratoraktionen auf einem Testserver prüfen; resmon zusammen mit Spielerzahl und Framework-Last bewerten.