🔑 dv_license — License Changer & Datenbank Cleanup für FiveM | ESX
Wechsle eine Spieler-License in der gesamten Datenbank auf einmal – sicher, automatisch und mit vollständigem SQL-Backup vor jeder Änderung.
💡 Was ist dv_license?
dv_license ist ein reines Server-Tool für FiveM-Administratoren. Es löst zwei häufige Probleme auf einmal: Erstens den mühsamen License-Wechsel wenn ein Spieler ein neues Konto bekommt – statt manuell in jeder Tabelle zu suchen, erledigt das Script alles in einem einzigen Konsolenbefehl. Zweitens das Aufräumen inaktiver Spieler – mit einem weiteren Befehl werden alle Spieler, die sich seit X Tagen nicht mehr eingeloggt haben, sauber aus der gesamten Datenbank entfernt. Vor jeder dieser Aktionen wird automatisch ein vollständiges SQL-Backup erstellt. Schlägt das Backup fehl, wird die Operation komplett abgebrochen.
⚙️ Features auf einen Blick
🔄 License-Wechsel über alle Tabellen – ein Befehl ersetzt die alte License in jeder relevanten Spalte der gesamten Datenbank
🗑️ Inaktive Spieler bereinigen – löscht alle Datenbankeinträge von Spielern, die sich seit einer konfigurierbaren Anzahl Tage nicht eingeloggt haben
💾 Automatisches SQL-Backup – vor jedem License-Wechsel und jedem Cleanup wird eine vollständige .sql-Datei mit allen betroffenen Zeilen erstellt
🛡️ Backup-Abbruchsicherheit – schlägt das Backup fehl, wird die gesamte Operation abgebrochen, keine Daten werden verändert
🔍 DryRun-Modus – zeigt vorab genau an, was geändert oder gelöscht werden würde, ohne auch nur eine Zeile zu schreiben
📋 Verbose-Logging – jede einzelne Änderung wird in der Server-Console protokolliert, ein- und ausschaltbar
🔒 Nur über die Server-Console – beide Befehle sind ausschließlich für Admins über die Console zugänglich, nicht im Spiel-Chat
⚠️ Sicherheits-Untergrenze beim Cleanup – ein konfigurierbarer Mindestwert verhindert versehentliches Löschen von zu kurzen Zeiträumen
🔗 Foreign Key Checks – werden während des Cleanups automatisch deaktiviert und danach wieder aktiviert, um Datenbankfehler zu vermeiden
🗂️ Automatischer Backup-Ordner – wird beim ersten Backup selbstständig angelegt, keine manuelle Vorbereitung nötig
🖥️ Befehle (Server-Console)
change_license \ to \ – Ersetzt die angegebene License in allen relevanten Tabellen der Datenbank.
cleanup \ – Löscht alle Spieler samt ihrer Datenbankeinträge, die sich seit der angegebenen Anzahl Tage nicht eingeloggt haben.
💾 Das Backup-System
Vor jeder schreibenden Operation erstellt dv_license automatisch eine .sql-Backup-Datei im Unterordner backup/ der Resource. Die Datei enthält vollständige INSERT INTO-Statements aller betroffenen Zeilen und kann direkt in MySQL oder MariaDB zur Wiederherstellung eingespielt werden. Der Dateiname enthält Datum, Uhrzeit und Art der Aktion. Im DryRun-Modus wird kein Backup erstellt, da keine Daten verändert werden.
🔍 DryRun-Modus
Beide Funktionen verfügen über einen separaten DryRun-Modus. Ist dieser aktiv, analysiert das Script die gesamte Datenbank und gibt in der Console aus, wie viele Einträge betroffen wären – ohne eine einzige Zeile zu verändern oder zu löschen. Ideal zum Testen vor dem ersten echten Einsatz.
⚙️ Konfiguration auf einen Blick
Config.DatabaseName – Name der MySQL-Datenbank die durchsucht werden soll
Config.LicenseColumns – Spaltenbezeichnungen die als License-Spalten gelten (z.B. identifier, license, owner)
Config.Verbose – Alle Änderungen in der Console ausgeben (true/false)
Config.DryRun – Trocken-Lauf für den License-Wechsel (true/false)
Config.CleanupCommand – Name des Cleanup-Befehls in der Server-Console
Config.CleanupUsersTable – Tabelle in der der letzte Login gespeichert ist
Config.CleanupLastSeenColumn – Spalte mit dem letzten Login-Datum
Config.CleanupIdentifierColumn – Spalte mit der Spieler-License in der Users-Tabelle
Config.CleanupMinDays – Mindestanzahl Tage als Sicherheitsgrenze gegen versehentliches Löschen
Config.CleanupDryRun – Trocken-Lauf für den Cleanup (true/false)
📦 Abhängigkeiten
Pflicht: oxmysql
Optional: es_extended (das Script selbst nutzt nur oxmysql)
🚀 Installation in 3 Schritten
1️⃣ Ordner als dv_license in resources/ legen (der Ordnername ist Pflicht)
2️⃣ ensure dv_license in die server.cfg eintragen
3️⃣ Datenbankname und gewünschte Spalten in der config.lua eintragen – fertig!
⚠️ Wichtige Hinweise
Beide Befehle sind nur über die Server-Console verfügbar, nicht im Spiel-Chat. Das integrierte Backup ersetzt kein vollständiges Datenbank-Backup – mache vor dem ersten Einsatz eine eigene Sicherung. Der Cleanup löscht alle Datenbankeinträge eines Spielers in allen Tabellen mit passenden Spalten, nicht nur den Users-Eintrag. Die Backup-Dateien wachsen mit der Datenmenge – der backup-Ordner sollte gelegentlich aufgeräumt werden.