Sichern Sie sich heute 20%. Verwenden Sie beim Bezahlvorgang den Code WELCOME. WILLKOMMEN

FiveM-Whitelist – Vollständige Anleitung (txAdmin, Skripte, DB)

Eine Whitelist in FiveM ist ein Zugriffskontrollmechanismus, der den Serverzugriff auf vorab genehmigte Spieler beschränkt, die anhand ihrer eindeutigen Kennungen (Rockstar-Lizenz, Steam-ID, Discord-ID usw.) zugeordnet sind. Nachfolgend finden Sie eine produktionsreife Anleitung mit Informationen zur integrierten Whitelist von txAdmin, Skriptmustern, Datenbankspeicherung und Zuverlässigkeitshinweisen.


TL;DR Optionsmatrix

ModusWo einstellenWas wird geprüftAm besten fürHinweise
Genehmigte LizenztxAdmin → Einstellungen → Spielerverwaltung → Whitelist-ModusLizenz: (Rockstar)Die meisten ServerEinfach, zuverlässig; manuelle Genehmigungen oder Vorabgenehmigungen werden unterstützt
Discord-MitgliedtxAdmin (Discord verknüpft)Zwietracht: ist GildenmitgliedGemeinschaften mit Schwerpunkt auf ZwietrachtNicht-Discord-Benutzer blockiert
Discord-RolletxAdmin (Discord verknüpft)Zwietracht: hat eine besondere RolleRollenbasierter Zugriff (Spender, Mitarbeiter)Kombinieren Sie mit Rollenautomatisierungen
Nur AdministratorentxAdminNur AdministratorenWartungs-/EntwicklungsnächteSperrt den Server effektiv, nicht empfohlen
Benutzerdefiniertes SkriptLua/JS-RessourceAlle gewünschten KennungenGranulare Regeln und UXBenötigt Code + Wartung

Empfehlung: Verwenden Genehmigte Lizenz für die Basislinie (jeder hat eine Rockstar-Lizenz), dann fügen Sie hinzu Discord-Rolle als zusätzliches Tor für Sonderebenen.


So aktivieren und bedienen Sie die Whitelist in txAdmin

Voraussetzungen

  • txAdmin läuft (im Lieferumfang von FXServer enthalten).
  • Für Discord-Modi: Discord-Integration konfiguriert (Bot eingeladen, Gilde/Rolle ausgewählt).

Whitelist aktivieren

  1. Offen txAdmin → Einstellungen → Player-Manager.
  2. Satz Whitelist-Modus zu einem von: Genehmigte Lizenz, Discord-Mitglied, Discord-Rolle, oder Nur Administratoren.
  3. Legen Sie eine Ablehnungsnachricht, zB:
    Nicht auf der Whitelist. Bewerben Sie sich unter discord.gg/yourinvite
  4. Speichern.

Spieler genehmigen (zwei Flows)

  • Passiv (Warteschlange): Wenn ein nicht zugelassener Spieler versucht, beizutreten, erscheint eine Anfrage unter Whitelist. Mit einem Klick genehmigen/ablehnen.
  • Aktiv (vorab genehmigt): Gehe zu Whitelist → Genehmigung hinzufügen und fügen Sie eine Kennung in das Formular ein Typ:Wert, zB
    • Lizenz:110000112345678
    • Dampf:11000010abcdef0
    • Zwietracht:123456789012345678

Widerrufen

  • Offen Spieler oder Whitelist und klicken Sie auf Widerrufen neben der Genehmigung.

Tipps

  • Bevorzugen Lizenz Kennungen für den Basiszugriff (universell vorhanden).
  • Behalten Sie Ihre Ablehnungsnachricht umsetzbar (Discord-Link + Grundregeln + Ticket-CTA).
  • Für Mitarbeiter/Entwickler, Stapelanforderungen: zB muss sein Lizenz + Discord-Rolle.

Details zur technischen Implementierung

Whitelists laufen während der Verbindungsaufschub Phase. Der Server überprüft den Kennungssatz des Spielers und akzeptiert oder lehnt ihn ab, bevor die Ressourcen geladen werden. Dadurch wird die Auslastung gering gehalten und nicht zugelassene Spieler frühzeitig blockiert.

Kennungstypen (Zuverlässigkeit)

  • Lizenz: (Rockstar) — stabil, an den Kauf des Spiels gebunden; empfohlener Primärschlüssel.
  • Dampf: – nur vorhanden, wenn Steam ausgeführt wird; kann fehlen, wenn Spieler Steam nicht verwenden.
  • Zwietracht: – nur vorhanden, wenn Discord ausgeführt wird und Ihr Server es liest.
  • IP-Adresse: – dynamisch; für Telemetrie/Ratenbegrenzung verwenden, nicht für Identität.

Minimales Whitelist-Skript (UX-Aufschub + Multi-ID)

-- resource: simple-whitelist
-- fxmanifest.lua should include '@oxmysql/lib/MySQL.lua' if you use DB code below.

local STATIC_WHITELIST = {
    ["license:110000112345678"] = true,
    ["steam:11000010abcdef0"] = true,
    ["discord:123456789012345678"] = true,
}

local function collectIdentifiers(src)
    local ids = {}
    for _, id in ipairs(GetPlayerIdentifiers(src)) do ids[id] = true end
    return ids
end

AddEventHandler("playerConnecting", function(name, setKickReason, deferrals)
    local src = source
    deferrals.defer()
    deferrals.update(("Checking whitelist for %s..."):format(name))

    local ids = collectIdentifiers(src)

    -- Require at least a Rockstar license in all cases
    local hasLicense = false
    for id, _ in pairs(ids) do
        if id:sub(1, 8) == "license:" then hasLicense = true break end
    end
    if not hasLicense then
        return deferrals.done("You must start the game normally (Rockstar license missing). Restart and try again.")
    end

    -- Static allowlist quick‑path
    for id, _ in pairs(ids) do
        if STATIC_WHITELIST[id] then
            return deferrals.done()
        end
    end

    -- Fallback: not approved
    return deferrals.done("Not whitelisted. Apply at discord.gg/yourinvite")
end)

Verwenden Verzögerungen.Update um Fortschrittsmeldungen anzuzeigen, während Sie IDs und/oder eine Datenbank überprüfen. Dies reduziert falsche „Timeout“-Berichte.


Datenbankgesteuerte Whitelist (oxmysql, produktionsbereit)

Schema

CREATE TABLE IF NOT EXISTS Whitelist (ID INT UNSIGNED NOT NULL AUTO_INCREMENT, Kennung VARCHAR(64) NOT NULL, Hinweis VARCHAR(120) NULL, hinzugefügt_von VARCHAR(64) NULL, hinzugefügt_um TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (ID), UNIQUE KEY u_identifier (Kennung));

Serverseitige Prüfung (oxmysql)

-- Erfordert oxmysql. Zu fxmanifest hinzufügen: '@oxmysql/lib/MySQL.lua' AddEventHandler('playerConnecting', function(name, setKickReason, deferrals) local src = source deferrals.defer() deferrals.update('Whitelist wird überprüft...') local ids = {} for _, id in ipairs(GetPlayerIdentifiers(src)) do table.insert(ids, id) end -- Einzelner Skalar: Ist ein beliebiger Bezeichner genehmigt? local rowCount = MySQL.scalar.await( 'SELECT COUNT(*) FROM whitelist WHERE identifier IN (?)', { ids } ) if rowCount and rowCount > 0 then return deferrals.done() else return deferrals.done('Zugriff verweigert. Bewerben Sie sich unter discord.gg/yourinvite') end end)

Admin-QoL-Befehle (Beispiel)

RegisterCommand('wladd', Funktion(src, args) wenn src ~= 0 dann returniere Ende -- der Einfachheit halber nur Konsole lokaler Bezeichner = args[1] wenn kein Bezeichner oder kein Bezeichner:find(':') dann drucke('Verwendung: wladd Bezeichnertyp:Bezeichnerwert') returniere Ende lokal ok = MySQL.prepare.await('INSERT IGNORE INTO whitelist (Bezeichner, Hinweis, hinzugefügt von) VALUES (?, ?, ?)', { Bezeichner, 'manuell hinzufügen', 'Konsole' }) drucke(ok und ('Whitelisted: %s'):format(Bezeichner) oder 'Hinzufügen fehlgeschlagen') Ende, true) RegisterCommand('wlrm', Funktion(src, args) wenn src ~= 0 dann returniere Ende lokaler Bezeichner = args[1] lokal ok = MySQL.prepare.await('DELETE FROM whitelist WHERE Kennung = ?‘, {Kennung}) drucken (ok und (‘Entfernt: %s’):format(Kennung) oder ‘Entfernen fehlgeschlagen’) Ende, wahr)

Für mysql-async, ersetzen MySQL.scalar.await mit MySQL.Async.fetchScalar und der Parameterstil mit @param/?. Bevorzugen oxmysql für Leistung und warte auf Unterstützung.

Leistung

  • Behalten Sie eine EINZIGARTIGER Index An Kennung (siehe Schema).
  • Optional Aufwärmen eines Speichercaches beim Start und bei Änderungen; DB nur bei Cache-Fehlern treffen.
  • Begrenzen Sie die Rate wiederholter fehlgeschlagener Verbindungsversuche um Lizenz/IP.

Regeln für mehrere Kennungen

Einige Server erfordern mehrere IDs (z. B. sowohl Steam als auch Discord) für Mitarbeiterstufen. Beispielmuster:

local function hasType(ids, typ)
    for id, _ in pairs(ids) do if id:sub(1, #typ+1) == (typ..':') then return true end end
    return false
end

-- Require license, and if staff, also discord
if not hasType(ids, 'license') then
    return deferrals.done('Start the game normally (license missing).')
end
if staffModeEnabled and not hasType(ids, 'discord') then
    return deferrals.done('Join our Discord and link your account to enter.')
end

Discord als Whitelist verwenden (kein benutzerdefinierter Code)

Wenn Ihre Community auf Discord läuft, verwenden Sie txAdmins Discord-Mitglied oder Discord-Rolle Modi:

  • Verknüpfen Sie txAdmin mit Ihrer Discord-Gilde.
  • Wählen Discord-Mitglied jedem Gildenmitglied zu erlauben, oder Discord-Rolle durch eine bestimmte Rolle zu sperren (zB @Whitelisted).
  • Halten Genehmigte Lizenz als zweites Tor, wenn Sie beide Bedingungen wünschen.

Bewährte Methode: pflegen eine #Whitelist-Anfragen Kanal + leichtes Formular. Automatisieren Sie die Rollenzuweisung nach der Genehmigung über einen Bot oder Moderationsfluss.

FAXES: Ein Discord-Whitelist-System für FiveM


Integrationsideen

  • Discord-Bots: Automatische Genehmigung, wenn ein Benutzer eine Bewerbung abschließt, Boosts durchführt oder sich anmeldet.
  • Web-Panel: Mitarbeiter können Kennungen hinzufügen/entfernen, mit Prüfpfad.
  • Bezahlte Stufen: gewähren Discord-Rolle über Ihren Shop (Tebex/Patreon) und lassen Sie den Zugriff über den Rollenmodus txAdmin erzwingen.

Fehlerbehebung und Fallstricke

  • Der Player wird in den txAdmin-Anfragen nicht angezeigt: Stellen Sie sicher, dass die Whitelist im richtigen Profil aktiviert ist. Überprüfen Sie, ob der Player tatsächlich die Zurückstellungsphase erreicht hat (sehen Sie sich die Live-Konsole von txAdmin an).
  • Steam-ID fehlt: Steam muss laufen; geben Sie Ihre Whitelist nicht ausschließlich auf Dampf:. Bevorzugen Lizenz:.
  • Discord-ID fehlt: Der Benutzer muss Discord laufen haben und Ihr Server muss zum Lesen eingerichtet sein Zwietracht:; Discord-Integration überprüfen.
  • Lizenz gegen Lizenz2: Einige Frameworks zeichnen zwei Lizenzfelder auf. Stellen Sie sicher, dass Ihre Migrations-/DB-Abfragen beim Verschieben von Daten beide berücksichtigen.
  • Verzögerungszeitüberschreitungen: Immer anrufen Verzögerungen.Update(...) während Sie auf DB warten; antworten Sie innerhalb von ca. 10–15 Sekunden.
  • Nicht übereinstimmendes Kennungsformat: Stellen Sie sicher, dass Sie einfügen Typ:Wert genau (Kleinbuchstaben, Doppelpunkt als Trennzeichen).
  • Hohe Verkehrsspitzen: Whitelist im Speicher zwischenspeichern, beim Start vorwärmen und DB-Aufrufe entprellen.

SEO-FAQ (Schema-fähiger Inhalt)

Was ist der beste Identifikator für die FiveM-Whitelist?
Der Rockstar Lizenz: ist der universellste und zuverlässigste; verwenden Sie ihn als Primärschlüssel.

Kann ich mich bei Discord ohne Codierung auf die Whitelist setzen lassen?
Ja. txAdmin unterstützt Discord-Mitglied Und Discord-Rolle Whitelist-Modi, sobald Discord verknüpft ist.

Benötige ich Steam für die Whitelist?
Nein. Viele Spieler nutzen Steam nicht. Vermeiden Sie es, Dampf: für den Basiszugriff obligatorisch.

Kann ich mehrere Prüfungen kombinieren (z. B. Lizenz + Discord-Rolle)?
Ja. Verwenden Sie den txAdmin-Rollenmodus Und Behalten Sie eine Lizenzprüfung in Ihrem benutzerdefinierten Skript oder Zulassungsablauf bei.

Wie kann ich Spieler vorab genehmigen?
txAdmin → Whitelist → Genehmigung hinzufügen, Paste identifierType:Kennung (z.B, Lizenz:...).


Kopieren und Einfügen von Ablehnungsnachrichten (verwenden Sie Ihre Marke)

  • Warteschlangenbasiert: Du bist noch nicht auf der Whitelist. Bewirb dich in #whitelist-requests → discord.gg/yourinvite
  • Rollenbegrenzt: Ihr Discord-Konto steht nicht auf der @Whitelisted. Treten Sie discord.gg/yourinvite bei und fordern Sie Zugriff an.
  • Wartung: Der Server befindet sich zur Wartung im Nur-Administrator-Modus. Bitte versuchen Sie es später erneut.

Abschluss

Eine FiveM-Whitelist validiert Spielerkennungen während der Verbindungsverzögerungsphase und blockiert nicht zugelassene Benutzer, bevor die Ressourcen geladen werden. Aktivieren Sie für die meisten Server Genehmigte Lizenz in txAdmin, optional Layer Discord-Rolle für Community Gating und verwenden Sie eine DB-gestützt Liste mit Caching für die Skalierung.


Anhang: Originales Minimalbeispiel (als Referenz)

-- server.lua lokale Whitelist = { ["steam:110000132456789"] = true, ["license:abc123def456789"] = true, ["discord:123456789012345678"] = true } AddEventHandler("playerConnecting", Funktion(Name, setKickReason, Verzögerungen) lokaler Spieler = Quelle lokale Kennungen = GetPlayerIdentifiers(Spieler) lokale Whiteliste = false Verzögerungen.defer() für _, ID in Paaren(Kennungen) mache wenn Whitelist[ID] dann Whitelisted = true unterbrechen Ende Ende wenn nicht Whitelisted dann Verzögerungen.done("Nicht Whitelisted. Bewerben Sie sich unter: your-discord.gg/invite") sonst Verzögerungen.done() Ende Ende)
Lukas
Lukas

Ich bin Luke, ein Gamer und schreibe gerne über FiveM, GTA und Rollenspiele. Ich betreibe eine Rollenspiel-Community und habe etwa 10 Jahre Erfahrung in der Verwaltung von Servern.

Artikel570

Schreibe einen Kommentar