Ahorra hoy mismo en 20%. Usa el código WELCOME al finalizar la compra. WELCOME

Lista blanca de FiveM: guía completa (txAdmin, scripts, base de datos)

¿Estás probando un script gratuito?

Los scripts gratuitos son útiles para comprobaciones rápidas. Para servidores de producción, compare los paquetes completos para servidores o los scripts de pago con mantenimiento, teniendo en cuenta el framework y el caso de uso.

Una lista blanca en FiveM es un mecanismo de control de acceso que restringe el acceso al servidor a jugadores preaprobados, identificados por sus identificadores únicos (licencia de Rockstar, ID de Steam, ID de Discord, etc.). A continuación, se incluye una guía lista para producción que abarca la lista blanca integrada de txAdmin, los patrones de script, el almacenamiento de la base de datos y las notas de fiabilidad.


Matriz de opciones TL;DR

ModoDónde colocarloQué compruebaMejor paraNotas
Licencia AprobadatxAdmin → Configuración → Administrador de jugadores → Modo de lista blancalicencia: (Estrella de rock)La mayoría de los servidoresSimple, confiable; admite aprobaciones manuales o preaprobaciones
Miembro de DiscordtxAdmin (vinculado a Discord)discordia: es miembro del gremioComunidades centradas en DiscordiaUsuarios que no son de Discord bloqueados
Rol de DiscordtxAdmin (vinculado a Discord)discordia: tiene un papel específicoAcceso restringido por roles (donante, personal)Combinar con automatizaciones de roles
Solo para administradoresAdministrador de transaccionesSolo administradoresNoches de mantenimiento/desarrolloBloquea efectivamente el servidor, no recomendado
Script personalizadoRecurso de Lua/JSCualquier identificador que quierasReglas granulares y experiencia de usuarioNecesita código + mantenimiento

Recomendación: Usar Licencia Aprobada Para la línea base (todos tienen una licencia de Rockstar), luego agregue Rol de Discord como puerta adicional para niveles especiales.


Cómo habilitar y operar la lista blanca en txAdmin

Prerrequisitos

  • txAdmin ejecutándose (incluido con FXServer).
  • Para los modos de Discord: integración de Discord configurada (bot invitado, gremio/rol seleccionado).

Habilitar lista blanca

  1. Abierto txAdmin → Configuración → Administrador de jugadores.
  2. Colocar Modo de lista blanca a uno de: Licencia Aprobada, Miembro de Discord, Rol de Discord, o Solo para administradores.
  3. Establecer un Mensaje de rechazo, p.ej:
    No está en la lista blanca. Solicita en discord.gg/yourinvite
  4. Ahorrar.

Aprobar jugadores (dos flujos)

  • Pasivo (cola): Cuando un jugador no aprobado intenta unirse, aparece una solicitud debajo Lista blanca. Aprobar/rechazar con un clic.
  • Activo (preaprobación): Ir a Lista blanca → Agregar aprobación y pegar un identificador en el formulario tipo:valor, p.ej
    • licencia:110000112345678
    • vapor:11000010abcdef0
    • discordia:123456789012345678

Revocar

  • Abierto Jugadores o Lista blanca y haga clic Revocar junto a la aprobación.

Consejos

  • Preferir licencia Identificadores para acceso de línea base (universalmente presentes).
  • Mantén tu mensaje de rechazo procesable (enlace de Discord + reglas básicas + CTA del ticket).
  • Para el personal/desarrolladores, requisitos de la pila: por ejemplo, debe ser licencia + rol de discordia.

Detalles de implementación técnica

Las listas blancas se ejecutan durante el aplazamiento de la conexión Etapa. El servidor inspecciona el conjunto de identificadores del jugador y lo acepta o lo rechaza antes de que se carguen los recursos. Esto mantiene la carga baja y bloquea anticipadamente a los jugadores no aprobados.

Tipos de identificadores (confiabilidad)

  • licencia: (Estrella de rock) — estable, vinculado a la compra del juego; clave principal recomendada.
  • vapor: — presente solo si se ejecuta Steam; puede faltar si los jugadores no usan Steam.
  • discordia: — presente solo si Discord se ejecuta y su servidor lo lee.
  • dirección IP: — dinámico; se utiliza para telemetría/límite de velocidad, no para identidad.

Script de lista blanca mínima (aplazamientos UX + 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)

Usar aplazamientos.actualización Mostrar mensajes de progreso al verificar las identificaciones o una base de datos. Esto reduce los informes falsos de tiempo de espera.


Lista blanca basada en bases de datos (oxmysql, lista para producción)

Esquema

CREAR TABLA SI NO EXISTE lista blanca ( id INT SIN FIRMA NOT NULL AUTO_INCREMENT, identificador VARCHAR(64) NOT NULL, nota VARCHAR(120) NULL, agregado_por VARCHAR(64) NULL, agregado_en TIMESTAMP PREDETERMINADO CURRENT_TIMESTAMP, CLAVE PRINCIPAL (id), CLAVE ÚNICA u_identificador (identificador) );

Comprobación del lado del servidor (oxmysql)

-- Requiere oxmysql. Agregar a fxmanifest: '@oxmysql/lib/MySQL.lua' AddEventHandler('playerConnecting', function(name, setKickReason, deferrals) local src = source deferrals.defer() deferrals.update('Verificando lista blanca...') local ids = {} for _, id in ipairs(GetPlayerIdentifiers(src)) do table.insert(ids, id) end -- Escalar único: ¿Se aprobó algún identificador? 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('Acceso denegado. Aplicar en discord.gg/yourinvite') end end)

Comandos de calidad de vida del administrador (ejemplo)

RegisterCommand('wladd', function(src, args) si src ~= 0 entonces devuelve fin -- solo consola para simplicidad identificador local = args[1] si no es identificador o no identificador:find(':') entonces imprime('Uso: wladd identifierType:identifierValue') devuelve fin local ok = MySQL.prepare.await('INSERTAR IGNORE INTO whitelist (identificador,nota,added_by) VALORES (?, ?, ?)', { identificador, 'agregar manualmente', 'consola' }) imprime(ok y ('En lista blanca: %s'):formato(identificador) o 'Error al agregar') fin, verdadero) RegisterCommand('wlrm', function(src, args) si src ~= 0 entonces devuelve fin identificador local = args[1] local ok = MySQL.prepare.await('ELIMINAR DE lista blanca DONDE identificador = ?', { identificador }) print(ok y ('Eliminado: %s'):formato(identificador) o 'No se pudo eliminar') fin, verdadero)

Para MySQL asíncrono, reemplazar MySQL.scalar.await con MySQL.Async.fetchScalar y el estilo del parámetro con @param/?. Preferir oxmysql para el rendimiento y esperar soporte.

Actuación

  • Mantener un Índice ÚNICO en identificador (ver esquema).
  • Opcionalmente calentar una memoria caché al iniciar y al cambiar; accede a la base de datos solo en caso de falla de caché.
  • Límite de velocidad de intentos fallidos de conexión repetidos por licencia/IP.

Reglas de múltiples identificadores

Algunos servidores requieren varias ID (p. ej., Steam y Discord) para los niveles de personal. Ejemplo de patrón:

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

Usar Discord como lista blanca (sin código personalizado)

Si tu comunidad funciona en Discord, usa txAdmin Miembro de Discord o Rol de Discord modos:

  • Vincula txAdmin a tu gremio de Discord.
  • Elegir Miembro de Discord permitir a cualquier miembro del gremio, o Rol de Discord para controlar un rol específico (por ejemplo, @En la lista blanca).
  • Mantener Licencia Aprobada como segunda puerta si quieres ambas condiciones.

Mejores prácticas: mantener una #solicitudes de lista blanca Canal + formulario ligero. Automatiza la asignación de roles tras la aprobación mediante un bot o un flujo de moderación.

FAXES: Un sistema de lista blanca de Discord para FiveM


Ideas de integración

  • Bots de Discord:aprobar automáticamente cuando un usuario completa una solicitud, la impulsa o se suscribe.
  • Panel web:el personal agrega o elimina identificadores, con registro de auditoría.
  • Niveles de pago: conceder rol de discordia a través de su tienda (Tebex/Patreon) y deje que el modo de rol txAdmin imponga el acceso.

Solución de problemas y trampas

  • El jugador no aparece en las solicitudes de txAdmin:Asegúrese de que la lista blanca esté habilitada en el perfil correcto; verifique que el jugador realmente haya alcanzado la etapa de aplazamiento (mire la consola en vivo de txAdmin).
  • Falta el ID de Steam:Steam debe estar ejecutándose; no configures tu lista blanca únicamente en eso vapor:. Preferir licencia:.
  • Falta el ID de Discord:El usuario debe tener Discord ejecutándose y su servidor debe estar configurado para leer discordia:; verificar la integración de Discord.
  • licencia contra licencia2:Algunos marcos registran dos campos de licencia; asegúrese de que sus consultas de migración/base de datos consideren ambos al mover datos.
  • Tiempos de espera de aplazamiento:Llamar siempre aplazamientos.actualizar(...) mientras espera a DB; responda dentro de ~10–15 segundos.
  • Formato de identificador no coincidente:Asegúrate de pegar tipo:valor exactamente (en minúsculas, separador de dos puntos).
  • Altos picos de tráfico:Almacene en caché la lista blanca en la memoria, precaliente al inicio y elimine el rebote de las llamadas a la base de datos.

Preguntas frecuentes sobre SEO (contenido preparado para esquemas)

¿Cuál es el mejor identificador para la lista blanca de FiveM?
La estrella de rock licencia: es la más universal y confiable; úsela como su clave principal.

¿Puedo incluirme en la lista blanca de Discord sin codificar?
Sí. txAdmin lo admite Miembro de Discord y Rol de Discord modos de lista blanca una vez que Discord esté vinculado.

¿Necesito Steam para la lista blanca?
No. Muchos jugadores no usan Steam; evita hacer vapor: obligatorio para el acceso de línea base.

¿Puedo combinar varias comprobaciones (por ejemplo, licencia + rol de Discord)?
Sí. Usar el modo de rol txAdmin y Mantenga una verificación de licencia en su secuencia de comandos personalizada o flujo de admisiones.

¿Cómo puedo preaprobar a los jugadores?
txAdmin → Lista blanca → Agregar aprobación, pegar Tipo de identificador:identificador (p.ej, licencia:...).


Mensajes de rechazo de copiar y pegar (use su marca)

  • Basado en colas: Aún no estás en la lista blanca. Postúlate en #whitelist-requests → discord.gg/yourinvite
  • Controlado por roles: Tu cuenta de Discord no está en la lista blanca. Únete a discord.gg/yourinvite y solicita acceso.
  • Mantenimiento: El servidor está en modo de solo administración por mantenimiento. Inténtelo de nuevo más tarde.

Conclusión

Una lista blanca de FiveM valida los identificadores de los jugadores durante la fase de aplazamiento de la conexión y bloquea a los usuarios no autorizados antes de que se carguen los recursos. En la mayoría de los servidores, habilite Licencia Aprobada En txAdmin, opcionalmente capa Rol de Discord Para el acceso a la comunidad y utilizar un Respaldado por base de datos Lista con almacenamiento en caché para escalar.


Apéndice: Ejemplo mínimo original (para referencia)

-- server.lua lista blanca local = { ["steam:110000132456789"] = verdadero, ["license:abc123def456789"] = verdadero, ["discord:123456789012345678"] = verdadero } AddEventHandler("playerConnecting", function(name, setKickReason, deferrals) jugador local = source identificadores locales = GetPlayerIdentifiers(player) en lista blanca local = falso deferrals.defer() para _, id en pares(identificadores) hacer si lista blanca[id] entonces en lista blanca = verdadero break fin fin si no está en la lista blanca entonces deferrals.done("No está en la lista blanca. Aplicar en: your-discord.gg/invite") de lo contrario deferrals.done() fin fin)
Lucas
Lucas

Soy Luke, gamer y me encanta escribir sobre FiveM, GTA y juegos de rol. Dirijo una comunidad de juegos de rol y tengo unos 10 años de experiencia administrando servidores.

Artículos: 436

Deja un comentario