Documentación de Wall de supervisión de staff
OV Wall
Herramienta de supervisión para el equipo de staff: etiquetas sobre los jugadores, lista de conectados, teletransporte, rastreo, acciones rápidas y detección de jugadores nuevos, más un sistema de reportes de jugadores.
Que hace
Wall de staff (/wall). Al activarlo, el administrador ve sobre cada jugador una etiqueta con la información que haya elegido mostrar: ID de ciudadano, nombre del personaje, ID de servidor, distancia, barras de vida y chaleco, trabajo y grado (indica si está de servicio o es jefe), banda y rango, insignias de VIP y de staff, si conduce o va de acompañante y si está hablando por voz. El alcance se puede ajustar hasta 474 metros. Los datos solo se envían a los administradores con permiso.
Menú de acciones sobre un jugador o vehículo. Según los permisos del grupo del administrador: consultar el identificador de Discord, dar chaleco, revivir (cura completa), congelar, teletransportarse hasta el jugador o traerlo. Sobre vehículos: consultar el dueño, reparar o eliminar.
Herramientas propias del administrador. Teletransporte a una marca del mapa o a coordenadas, eliminación de vehículo(s) y aislamiento de un grupo cercano en una dimensión aparte (/wallzone).
Lista de jugadores (/wallplayers). Todos los conectados ordenados por cercanía, con opción de ir hasta ellos o traerlos aunque estén lejos.
Rastreo (/rastrear). Marca hasta 5 jugadores en el mapa del administrador (solo lo ve quien lo activa).
Jugadores nuevos. Una etiqueta "NUEVO" sobre los jugadores recientes y, con /nuevos, círculos en el mapa del staff sobre cada uno. Un jugador deja de ser nuevo cuando pasan las horas configuradas desde que creó su personaje o cuando consigue un trabajo o una banda.
Reportes (/reportar). Cualquier jugador puede reportar a otro apuntándole con la mira: se abre un formulario, se guarda un ticket en base de datos y, si hay webhook configurado, se avisa por Discord. Si el reportante o el reportado son jugadores nuevos, se marca en el reporte.
Información de jugador ("ojito"). Manteniendo una tecla y mirando a un jugador a menos de 5 metros se muestra su nombre, ID de ciudadano e ID de servidor.
Auditoría. Activar el wall, las acciones sobre jugadores y vehículos, los rastreos y los cambios de acceso pueden registrarse en un webhook de Discord.
Requisitos
Dependencias declaradas en el fxmanifest.lua: el archivo no declara dependencies, pero carga en el servidor, antes que el propio código, el script bcast_hook.lua de un recurso de métricas (@<recurso-de-métricas>/bcast_hook.lua). Ese recurso debe existir e iniciarse antes que ov-wall.
Otros recursos y datos que el código usa:
qb-core(jugadores, trabajo, banda, notificaciones y callbacks).oxmysql(consultas a la base de datos).- Una base de datos MySQL o MariaDB con la tabla
playersde QBCore (se consultacreated_atycharinfo). - Sistema de grupos de administración de Otra Vida: los permisos del wall se leen de las tablas de grupos de administración (grupos, miembros de grupo y permisos extra por ciudadano). Si no existen, solo podrán usar el wall los jugadores con el permiso ACE de emergencia (
qbcore.godogroup.god). qb-corecon el módulo de "bridges" (opcional): si existe, los ajustes del wall se editan desde el panel de administración; si no, se usan los valores por defecto.- Opcional:
0r-ambulancejob(si está iniciado, "revivir" lo usa para una cura completa). - Tabla
player_vehicles(de los garajes) para consultar el dueño de un vehículo. - Lua 5.4.
Importante: este recurso está pensado para funcionar integrado con el panel de administración de Otra Vida. Antes de instalarlo en un servidor distinto, comprueba los puntos anteriores.
Instalacion
- Descarga el recurso desde el Portal de Cfx.re con la cuenta Cfx con la que lo compraste. Viene protegido con Asset Escrow de Cfx.re y funciona solo en servidores de tu cuenta.
- Copia la carpeta
ov-wallenresources. - Importa en tu base de datos el archivo
reportes.sqlincluido: crea las tablas de tickets de reportes, mensajes, estadísticas, notificaciones y acciones de staff. Estas tablas no se crean solas. - Asegúrate de que existen las tablas de grupos de administración y de que tus administradores pertenecen a un grupo (ver "Requisitos").
- Añade en
server.cfg, después deqb-core,oxmysqly del recurso de métricas:
ensure ov-wall
- Convars opcionales para los avisos a Discord (el código las lee con
GetConvar; nunca van dentro del código):
set ov_wall_webhook "<url del webhook>"
set ov_report_webhook "<url del webhook de reportes>"
set ov_admin_log_webhook "<url de respaldo>"
ov_wall_webhook recibe la auditoría de staff; ov_report_webhook los reportes; si falta alguna, se usa ov_admin_log_webhook. Si ninguna está definida, no se envía nada a Discord.
- Permiso de emergencia:
add_ace group.admin qbcore.god allow(o el principal que uses) da acceso al wall aunque falle la base de datos. - Reinicia el servidor.
Protección y edición: según el fxmanifest.lua, solo la carpeta html/ (interfaz) queda sin cifrar (escrow_ignore). Este recurso no incluye un archivo de configuración editable: los ajustes se cambian desde el panel de administración o con los comandos descritos más abajo.
Configuracion
El recurso no tiene config.lua. Sus ajustes son:
Ajustes del servidor (valores por defecto; se editan desde el panel de administración cuando el módulo de "bridges" está disponible):
| Ajuste | Valor por defecto | Para qué sirve |
|---|---|---|
newHours | 12 | Horas que dura la etiqueta NUEVO desde la creación del personaje (entre 1 y 720). |
newDropOnJob | true | Deja de ser NUEVO al tener trabajo (distinto de unemployed) o banda (distinta de none). |
newSweepMinutes | 5 | Cada cuánto se revisa quién ya dejó de ser nuevo. |
newBlipsTickMs | 2000 | Refresco de los círculos de /nuevos. |
reportsEnabled | true | Permite /reportar. |
allowedGroups | owner, admin | Grupos de administración que pueden abrir el wall. |
trackTickMs | 1500 | Refresco del rastreo en el mapa. |
Ajustes visuales de cada administrador (/wallconfig, se guardan en su propio cliente): mostrar u ocultar ID de ciudadano (activo), nombre (activo), ID de servidor (inactivo), distancia (activo), vida y chaleco (activo), trabajo (activo), banda (activo), VIP (activo), staff (activo), vehículo (activo), voz (activo), silueta (activo) y alcance en metros (range, 300 por defecto, entre 50 y 474).
Convars: ov_wall_webhook, ov_report_webhook y ov_admin_log_webhook (ver "Instalación").
Comandos y permisos
| Comando | Quién | Qué hace | |
|---|---|---|---|
/wall | Grupos con acceso al wall | Activa o desactiva el wall. | |
/wallplayers | Staff con acceso | Lista de todos los conectados. | |
/wallconfig | Staff con acceso | Panel de qué información muestran las etiquetas. | |
/tpto [id] | Permiso player.teleport | Te lleva hasta ese jugador. | |
/traer [id] | Permiso player.teleport | Trae al jugador hasta ti. | |
| `/wallzone [metros\ | off]` | Permiso player.routing_bucket | Mueve a los jugadores cercanos a una dimensión propia; off revierte. |
/dv [metros] | Permiso self.delete_vehicle | Elimina el vehículo que ocupas o el más cercano; con metros, todos en ese radio. | |
| `/rastrear [id\ | off]` | Permiso player.monitoring | Marca a un jugador en tu mapa (máximo 5); off los quita. |
/nuevos | Staff con acceso | Activa los círculos de jugadores nuevos en el mapa. | |
/wallaccesos | Solo el grupo propietario | Elige qué grupos pueden usar el wall. | |
/walldebug | Jugador (en juego) | Muestra en la consola qué rango detecta el servidor y qué acciones tiene concedidas. | |
/reportar | Cualquier jugador | Reporta al jugador al que apuntas (a menos de 15 m). | |
| Tecla Teclado numérico \* (reasignable) "Mostrar info de jugador (ojito)" | Cualquier jugador | Mantenla mirando a un jugador a menos de 5 m para ver su nombre, ID de ciudadano e ID de servidor. |
Claves de permiso de los grupos de administración:
| Clave | Habilita |
|---|---|
wall.use | Abrir el wall. |
player.view_identifiers | Consultar el identificador de Discord. |
player.give_armor | Dar chaleco. |
player.revive | Revivir. |
player.freeze | Congelar. |
player.teleport | Ir hasta un jugador y traerlo. |
player.monitoring | Rastrear en el mapa. |
player.routing_bucket | /wallzone. |
vehicles_database.view_owners | Consultar el dueño de un vehículo. |
vehicles.repair | Reparar vehículos. |
vehicles.remove | Eliminar vehículos. |
self.teleport | Teletransporte propio a una marca o coordenadas. |
self.delete_vehicle | Eliminar vehículos con /dv. |
Los permisos ACE de emergencia qbcore.god y group.god conceden todo.
El recurso no ofrece exports. Los eventos son internos (ovwall:*).
Como se usa
- Un administrador con acceso escribe
/wall. Ve las etiquetas sobre los jugadores; con la mira en un jugador se abre un menú de acciones (según sus permisos) y los botones que no puede usar no aparecen. - Con
/wallplayersabre la lista completa para ir hasta alguien o traerlo. - Con
/wallconfigelige qué datos muestran las etiquetas y el alcance. - Con
/nuevosve en el mapa dónde están los jugadores nuevos para ayudarles. - Un jugador que ve una infracción apunta al otro con la mira, escribe
/reportar, rellena el formulario (motivo y, opcionalmente, un enlace a un clip) y lo envía.
Para administradores
- Quién puede abrir el wall: los grupos de
allowedGroupso los que tengan la clavewall.use. El grupo propietario cambia la lista con/wallaccesos. - Qué puede hacer cada uno: lo marcan las claves de permiso de su grupo (tabla anterior). Quitar una clave a un grupo en el panel de administración la quita también aquí.
- Si alguien dice que no puede abrir el wall: pídele que ejecute
/walldebugy revisa la consola: muestra su grupo, los permisos ACE que resuelven y las acciones concedidas. - Acceso de emergencia: el permiso ACE
qbcore.godsiempre entra. - Auditoría: configura
ov_wall_webhookpara registrar cuándo se activa el wall y las acciones sobre jugadores y vehículos. - Reportes: quedan en las tablas creadas por
reportes.sqly, conov_report_webhook, se publican en Discord. Se pueden desactivar poniendoreportsEnabledenfalse. - Las acciones de explotar o tumbar jugadores y de conducir vehículos de peatones no existen a propósito, para reducir el riesgo de abuso.
Preguntas frecuentes
¿Funciona en un servidor QBCore normal? Está pensado para integrarse con el panel de administración de Otra Vida. Necesita el recurso de métricas que carga el fxmanifest.lua y las tablas de grupos de administración (ver "Requisitos").
¿Dónde veo por qué un administrador no puede usar el wall? Con /walldebug y la consola del servidor: aparece "DENEGADO" con su rango.
¿Puedo cambiar el tiempo que un jugador es "NUEVO"? Sí: newHours (12 horas por defecto).
¿Se envían datos a Discord sin configurar nada? No. Sin las convars de webhook no se envía nada.
¿Cada administrador ve lo mismo? Los ajustes visuales de /wallconfig se guardan en el cliente de cada administrador.
¿Los reportes se crean solos en la base de datos? No: debes importar reportes.sql.
Actualizaciones y soporte
Las versiones nuevas aparecen en el Portal de Cfx.re y en la tienda. Para soporte, usa el Discord de la tienda: [enlace de soporte].
