El comportamiento está en shared/config.lua, los secretos y las listas de acceso en convars, y los rangos de partida y la lista de modelos en data/. Reinicia el recurso después de cualquier cambio.
General
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
locale | string | 'es' | Idioma de la interfaz. 'es' o 'en'. Las notificaciones y los nombres de tecla siguen la convar ox:locale. |
accent | string (hex) | configurable | Color de acento de la interfaz. |
announceSeconds | number | 12 | Segundos que un anuncio del servidor permanece en pantalla. Mínimo 3. |
reportRetentionDays | number | 30 | Días que se conserva la transcripción de un reporte cerrado. Las antiguas se borran cada día a las 04:00. 0 las conserva siempre. |
auditRetentionDays | number | 180 | Días que se conserva una entrada de auditoría. Misma limpieza diaria. 0 las conserva siempre. |
Comandos · commands
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
panel | string | 'admin' | Comando que abre el panel. |
report | string | 'report' | Comando que abre la ventana de reporte de los jugadores. |
staffReload | string | 'staffreload' | Comando que recarga rangos y staff desde la base de datos. |
Teclas · keybinds
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
panel | string | 'U' | Tecla por defecto del panel. '' no registra ninguna tecla; el comando sigue funcionando. |
report | string | '' | Tecla por defecto de la ventana de reporte. '' no registra ninguna tecla. |
noclip | string | 'END' | Tecla por defecto del noclip. |
godmode | string | '' | Tecla por defecto del modo dios. |
invisible | string | '' | Tecla por defecto de la invisibilidad. |
infiniteAmmo | string | '' | Tecla por defecto de la munición infinita. |
superJump | string | '' | Tecla por defecto del súper salto. |
blips | string | '' | Tecla por defecto de las marcas de jugadores en el mapa. |
names | string | '' | Tecla por defecto de los nombres sobre los jugadores. |
Los siete interruptores personales se registran siempre. Con '' no tienen tecla por defecto y cada miembro del staff asigna una en los ajustes de teclas de GTA. Una tecla solo funciona para el staff que tenga el permiso self.* correspondiente.
Nombres sobre los jugadores · nameplates
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
range | number | 480.0 | Metros hasta los que se dibuja un nombre. |
barRange | number | 45.0 | Metros hasta los que se dibuja la barra de vida y chaleco. Más lejos, solo el nombre. |
cullingRadius | number | 500.0 | Radio de red que recibe el miembro del staff mientras tiene los nombres activos, para que se carguen los jugadores lejanos. Consume ancho de banda de ese cliente. 0.0 mantiene el del servidor. |
Ver pantalla · screen
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
width | number | 1280 | Ancho del vídeo en píxeles. El alto sigue la pantalla del jugador. |
fps | number | 24 | Fotogramas por segundo. |
bitrate | number | 4000000 | Bits por segundo del vídeo. |
codec | string | 'vp9' | 'vp9' es más nítido. 'vp8' usa menos CPU en el PC del jugador. |
keyframeMs | number | 10000 | Milisegundos entre fotogramas completos. |
audio | boolean | true | true permite al staff encender el micrófono del jugador mientras mira. false lo rechaza. |
maxWatchers | number | 4 | Miembros del staff que pueden mirar a la vez al mismo jugador desde dentro del juego. |
Ver pantalla necesita además convars. Consulta Convars.
Espectar · spectate
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
hearVoice | boolean | true | true permite al staff oír al objetivo y a los jugadores cercanos mientras especta. false deja el modo espectador en silencio. |
hearRadius | number | 12.0 | Metros alrededor del objetivo dentro de los que también se oye a otros jugadores. |
Límites · limits
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
messageLength | number | 600 | Máximo de caracteres de un mensaje de reporte. El texto más largo se corta. |
messageCooldown | number | 2000 | Milisegundos que un jugador debe esperar entre dos mensajes de reporte. |
actionCooldown | number | 350 | Milisegundos que un miembro del staff debe esperar entre dos acciones. |
messagesPerReport | number | 150 | Mensajes que un jugador puede escribir en un reporte. Las respuestas del staff no cuentan. 0 quita el límite. |
Dinero · moneyItems
Decide qué tipos de dinero se entregan como ítem del inventario. Un tipo que se entrega como ítem va al inventario; cualquier otro, como el banco, se suma como saldo del framework.
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
moneyItems | string o tabla | 'auto' | 'auto' elige los ítems según tu framework y tu inventario. Una tabla asocia cada tipo de dinero a un ítem, por ejemplo { cash = 'cash', black_money = 'black_money' }. Una tabla vacía {} entrega todos los tipos como saldo. |
Qué resuelve 'auto':
| Framework e inventario | Efectivo | Dinero sucio |
|---|---|---|
QBox o QBCore con ox_inventory | Ítem cash | Ítem black_money |
ESX con ox_inventory | Ítem money | Ítem black_money |
Cualquier otro inventario, como qb-inventory | Saldo | Saldo |
Bandas en ESX
ESX no trae bandas propias. Las bandas que el panel puede dar en ESX se definen en Cuxial Bridge, en cuxial_bridge/shared/config.lua dentro de esx.gangs, con la misma forma que las bandas de QBox y QBCore. Una banda o un grado que no estén en la lista se rechazan. isboss marca el grado de jefe y es opcional.
esx = {
gangs = {
none = { label = 'Sin banda', grades = { [0] = { name = 'Miembro' } } },
ballas = {
label = 'Ballas',
grades = {
[0] = { name = 'Recluta' },
[1] = { name = 'Miembro' },
[2] = { name = 'Líder', isboss = true },
},
},
},
},Reinicia el servidor después de editar la lista.
Efectos · effects
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
drunkSeconds | number | 30 | Segundos que dura el efecto de borrachera. Repetir la acción lo quita antes. Mínimo 1. |
Panel web remoto · remote
Conecta el servidor con un servicio externo de panel web. Solo se enciende cuando enabled es true y las dos convars remotas están definidas.
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
enabled | boolean | false | true enciende el panel remoto cuando las dos convars remotas están definidas. false lo mantiene apagado, digan lo que digan las convars. |
clockSkew | number | 30 | Segundos de diferencia de reloj tolerados entre el servicio de panel web y el servidor de juego. Las peticiones fuera de ese margen se rechazan. |
allowFrom | string[] | direcciones locales | Direcciones desde las que se aceptan peticiones. Se comparan por prefijo. Una lista vacía acepta cualquier dirección. |
Quien alcance el puerto HTTP del servidor y conozca el secreto actúa como staff. Mantén el servicio de panel web en la misma máquina o en una red privada, y nunca vacíes allowFrom en un servidor público.
Aun con una petición válida, un miembro del staff solo entra desde fuera cuando su rango tiene activado el acceso remoto.
Convars
Todas se leen solo en el servidor. Escríbelas con set en server.cfg.
| Convar | Por defecto | Qué hace |
|---|---|---|
cuxial_admin_screen_owners | vacía | Identificadores de Discord que pueden usar la función de ver pantalla, separados por comas o espacios. Vacía apaga la función para todos. Se lee al arrancar el recurso. |
sd_phone_relay_url | vacía | Dirección del relay de media. Debe empezar por ws:// o wss://; cualquier otra cosa se ignora. |
sd_phone_relay_key | vacía | Clave que firma los pases del relay. Exactamente 64 caracteres hexadecimales en minúscula; cualquier otra cosa se ignora. |
sd_phone_relay_ttl | 45 | Segundos de validez de un pase del relay. Limitado entre 10 y 120. |
cuxial_admin_remote_url | vacía | Dirección del servicio de panel web. Se lee al arrancar el recurso. |
cuxial_admin_remote_secret | vacía | Secreto compartido con el servicio de panel web. Se lee al arrancar el recurso. |
cuxial_admin_debug | 0 | 1 imprime cada consulta SQL y su resultado en la consola del servidor. Se lee al arrancar el recurso. |
Ver pantalla
Ver una pantalla exige tres cosas a la vez:
- El identificador de Discord del miembro del staff está en
cuxial_admin_screen_owners. - Su rango tiene el permiso
player.screen. cuxial_bridgeestá en marcha. El vídeo pasa por su módulo de media.
Un rango con todos los permisos tampoco puede ver pantallas si la persona no está en la lista.
El relay es opcional:
| Relay | Staff dentro del juego | Staff en el panel web |
|---|---|---|
| Las dos convars del relay definidas | Vídeo por el relay | Vídeo por el relay |
| Sin definir | Vídeo por el servidor de juego, a calidad reducida | No disponible |
Cada visionado y cada uso del micrófono queda escrito en el registro de auditoría.
Rangos de partida · data/permissions.lua
Este archivo contiene dos listas:
catalog: los permisos que muestra el editor de rangos, agrupados por sección. Puedes cambiar cadalabelpara traducirlo. No cambies ningúnid: el panel comprueba esos valores exactos.seed: los rangos que se crean la primera vez que arranca el recurso, cuando la tabla de rangos está vacía. Después, los rangos viven en la base de datos y se editan desde el panel.
Cada rango de seed tiene:
| Campo | Tipo | Qué hace |
|---|---|---|
id | string | Nombre interno. Letras minúsculas, números y _. |
label | string | Nombre que muestra el panel. |
remote | boolean | true permite a este rango entrar al panel web remoto. |
position | number | Orden. El número más bajo es el rango más alto. |
perms | string[] | Permisos concedidos. Consulta Comandos y permisos. |
Lista de modelos · data/peds.lua
Los modelos que se ofrecen al cambiar el modelo de un jugador. Añade o quita líneas a tu gusto.
{ id = 'mp_m_freemode_01', label = 'Hombre (freemode)', sub = 'Personalizable' },| Campo | Qué hace |
|---|---|
id | Nombre del modelo. |
label | Nombre que aparece en la lista. |
sub | Grupo que aparece al lado. |
Cambios habituales
Usar el panel en inglés
locale = 'en',setr ox:locale "en"Dar el efectivo como saldo del framework en vez de como ítem
Cambia 'auto' por una tabla que solo incluya el dinero sucio:
moneyItems = {
black_money = 'black_money',
},Encender el panel web remoto
remote = {
enabled = true,
clockSkew = 30,
allowFrom = { '127.0.0.1', '::1', 'localhost' },
},Prohibir escuchar el micrófono al ver pantalla
screen = {
-- el resto de opciones sin cambios
audio = false,
},