Docsob_notifyPanel en el juego

Panel en el juego

El comando /notify. Cada jugador ajusta las notificaciones a su pantalla y el admin fija los valores del servidor sin tocar un archivo ni reiniciar nada.


ob_notify trae un panel dentro del juego. Se abre con un comando y cambia lo que se ve al momento: no hay que editar config.lua, ni reiniciar el recurso, ni echar a nadie del servidor.

Terminal
/notify
El panel abierto en el juego. Lo que se toca a la izquierda se ve a la derecha al momento.
El panel abierto en el juego. Lo que se toca a la izquierda se ve a la derecha al momento.

Hay dos niveles y no se mezclan:

Quién Qué hace Dónde se guarda
Cualquier jugador Ajusta lo suyo a su pantalla En su propio cliente
Un admin Fija con qué se encuentra todo el mundo En el servidor

Lo que ajusta un jugador

Las seis esquinas, el tamaño, el estilo de tarjeta y el color de acento.
Las seis esquinas, el tamaño, el estilo de tarjeta y el color de acento.
Ajuste Qué cambia
Posición Las seis esquinas, o Libre para arrastrarlas donde quiera
Separación del borde De 0 a 240 px
Tamaño De 0.8× a 1.25×. Escala la tarjeta y su texto, no la deforma
Estilo Cristal · Sólido · Mínima · Barra
Color de acento Seis colores a un clic, o el suyo exacto
Opacidad Del 50 % al 100 %
Cuántas a la vez De 1 a 8
Duración De 0.5× a 2×
Cuenta atrás Anillo · Barra · Ninguna
Sonido Encendido o apagado

Cada uno de ellos lo puede cerrar el admin. Lo que esté cerrado sale con un candado y el valor del servidor.

Un ajuste que el servidor fija: se ve, se entiende y no se toca.
Un ajuste que el servidor fija: se ve, se entiende y no se toca.
El color de acento no repinta los estados

Manda en el anillo y en las notificaciones neutras. El verde de éxito, el rojo de error y el ámbar de aviso no cambian: son lo que hace que una notificación se entienda antes de leerla. Dejar que alguien pinte los errores de verde rompe justo eso.

Dónde se guardan sus preferencias

En el cliente, con el sistema de almacenamiento de FiveM. No hay tabla, ni consultas, ni coste para tu servidor, y sobreviven a los reinicios.

La contrapartida, dicha claramente: van por instalación del juego, no por cuenta. Quien entre desde otro ordenador empieza con los valores del servidor.

Ser administrador

Con permiso aparece una segunda pestaña, Servidor. Sin él no aparece —y el servidor lo vuelve a comprobar antes de escribir nada, así que trucar el cliente no sirve de nada.

El permiso es un ACE de FiveM, sin depender de ningún framework:

server.cfg
add_ace group.admin ob_notify.admin allow
server.cfg se lee SOLO al arrancar el servidor

Añadir la línea y hacer restart ob_notify no hace nada. Hay que reiniciar el servidor entero. Es lo que pilla a todo el mundo la primera vez.

Y si usas txAdmin, comprueba que el server.cfg que editas es el que carga.

Si el ACE no te cuadra, hay una lista a dedo

En config.lua:

Lua
Config.Panel.Admins = {
    'license:0000000000000000000000000000000000000000',
    'discord:000000000000000000'
}

Esta lista se lee del recurso, así que un restart ob_notify la aplica al momento. Vale cualquiera de tus identificadores.

Para ver los tuyos: entra al servidor, abre la consola del cliente con F8 y usa /notify. Si ob_notify no te reconoce, te los imprime ya escritos para copiarlos.

⚠️ No los publiques. Un identificador no es una contraseña —nadie entra con él— pero es estable y permite seguirte de un servidor a otro. Si compartes tu carpeta de recursos o la subes a un repositorio, vacía la lista antes.

Lo limpio es usar el ACE y dejar esto vacío: así los admins están en un sitio, server.cfg, y no en dos.

La pestaña Servidor

La pestaña Servidor: guardar los valores por defecto y decidir qué puede tocar cada jugador.
La pestaña Servidor: guardar los valores por defecto y decidir qué puede tocar cada jugador.

Hace dos cosas.

Guardar como defecto del servidor. Deja el panel como quieres que se vea tu servidor, pulsa el botón, y eso es lo que encuentra cualquiera que entre por primera vez. No afecta a quien ya tenga los suyos ajustados.

Qué puede cambiar cada jugador. La lista de abajo, con un interruptor por ajuste. Lo que apagues queda bloqueado para todos, con el valor que acabas de guardar.

Piénsatelo con «Cuántas a la vez»

Dejarlo abierto permite a un jugador poner 8 notificaciones a la vez. No rompe nada, pero le tapa media pantalla y luego abre un ticket. Viene cerrado de fábrica.

Dónde se guardan los valores del servidor

Se decide solo al arrancar, mirando lo que hay:

Hay Se usa
oxmysql arrancado La base de datos, tabla ob_notify_settings
No hay defaults.json, dentro del propio recurso

La tabla se crea sola la primera vez. Si ya había un defaults.json, se importa solo: no hay que hacer nada.

Por qué la base de datos es la buena

Actualizar un recurso es copiar la carpeta encima, que es lo que hace todo el mundo. Con el archivo, eso se lleva por delante tus ajustes. En la base de datos sobreviven.

Si te quedas en el archivo, copia defaults.json fuera antes de sustituir la carpeta.

Se puede forzar en config.lua:

Lua
Config.Panel.Storage = 'auto'   -- 'auto' | 'db' | 'archivo'

Se recomienda dejarlo en 'auto'.

Lo que el panel NO deja tocar

La posición del TextUI. No está en la lista y no se puede añadir.

No es un descuido. Un aviso de «pulsa [E]» que a cada jugador le sale en un borde distinto deja de ser un sitio donde mirar y pasa a ser algo que hay que buscar. Se fija una vez, por el dueño del servidor, en Config.TextUI.Position.

Sí se puede probar desde el panel, para ver cómo queda la tecla con el estilo y el color elegidos.

Apagarlo o cambiarle el nombre

Lua
Config.Panel.Enabled = true
Config.Panel.Command = 'notify'

Con Enabled = false el comando deja de existir. Todo lo demás sigue igual: las notificaciones se configuran desde config.lua, como siempre.

Si algo falla

Lo que ves Causa Solución
No aparece la pestaña Servidor El ACE se lee solo al arrancar Reinicia el servidor, no el recurso
Sigue sin aparecer txAdmin carga otro server.cfg Usa Config.Panel.Admins y restart ob_notify
attempt to index a nil value al reiniciar restart no relee fxmanifest.lua refresh y después restart ob_notify
«No se pudo guardar» Ni base de datos ni permiso de escritura Mira la consola del servidor: dice cuál de las dos
El comando no existe Config.Panel.Enabled = false Ponlo en true