Documentación de Menú de pausa
Menú de pausa (sbr-pausemenu)
Que hace
sbr-pausemenu sustituye el menú de pausa de GTA por una interfaz propia a pantalla completa, pensada para servidores de rol con qb-core. Al pulsar la tecla de pausa se abre un menú con varias pestañas y, si el jugador va a pie, una cámara en vivo orbita alrededor de su personaje en el centro de la pantalla.
Lo que ofrece:
- Inicio: ficha del personaje (nombre, trabajo, efectivo, banco, CitizenID e ID de sesión con copia al portapapeles), herramientas rápidas, jugadores conectados, servicios en turno, avisos del servidor y las acciones Volver al juego, Cambiar de personaje y Salir del servidor (las dos últimas piden confirmar con un segundo clic).
- Empleos: Centro de Empleos con filtros por categoría, ficha de cada trabajo y botón para tomarlo o marcar la ruta.
- Personal: estado físico del personaje y lista de sus vehículos (hasta 20) con matrícula, garaje y estado.
- Novedades: noticias publicadas por el staff con categoría y fecha.
- Ajustes: interruptores de HUD, minimapa e iconos del mapa, y volumen de las voces de NPC si está disponible. Se guardan por personaje.
- PVP, Ranking y Pase: lobby competitivo, clasificación por RP y resumen del pase de temporada (requieren otros recursos, ver Requisitos).
- Maestría: panel de otro recurso incrustado en la pestaña.
- Guía y barra inferior con enlaces públicos (Discord, normas, etc.) tomados de una tabla de la base de datos.
Requisitos
| Requisito | Detalle |
|---|---|
| Framework | qb-core. No es compatible con ESX ni con Qbox sin cambios: el servidor llama a exports['qb-core']:GetPlayer y GetCoreObject, y lee PlayerData, SetJob y QBCore.Shared.Vehicles |
| Lua | 5.4 (lua54 'yes') |
| Base de datos | MySQL o MariaDB mediante oxmysql |
Dependencias declaradas en el fxmanifest.lua | oxmysql, ox_lib, qb-core (sin ellas el recurso no arranca) |
El recurso usa además tablas y recursos de terceros. No están declarados como dependencias: si faltan, el menú abre igualmente. Esto es lo que ocurre sin cada uno:
| Integración | Para qué se usa | Qué pasa si no está |
|---|---|---|
player_vehicles (tabla estándar de qb-core) | Lista de vehículos del jugador | Sin la tabla no hay lista de vehículos; la pestaña Vehículos no carga datos |
sbr-garages | Traduce el id de garaje a su nombre | Solo oculta el nombre amigable: se muestra el id del garaje |
jg-hud | El interruptor HUD llama a su export toggleHud (con pcall) | El interruptor HUD no hace nada; el resto del menú funciona |
santabria-npclife | Volumen de las voces de NPC (GetNpcVolumen y SetNpcVolumen, con pcall) | Solo oculta un widget: la fila "Voces de los NPC" no aparece en Ajustes |
santabria-intranet | Export RequestSession del portal web | El callback existe en el cliente, pero ningún botón de la interfaz incluida lo dispara (ver Preguntas frecuentes). Sin el recurso solo avisaría "El portal web no está disponible" |
sbr-mastery | La pestaña Maestría carga https://cfx-nui-sbr-mastery/web/index.html?embed=1 en un iframe y el cliente llama a sus callbacks | Solo la pestaña Maestría: se queda en "Cargando maestría…" y avisa de que el sistema no está disponible. El resto del menú funciona |
ov-battlepass | Resumen del pase y botón "Abrir el pase" (export GetSnapshot, evento ovbp:client:open) | Se oculta el acceso al pase y la pestaña Pase muestra "No hay ninguna temporada activa" |
pvp-staff | Catálogo de modos, cola, estadísticas (pvp_stats), torneo (/torneo), salir de la cola (/leavepvp), imágenes de modos (cfx-nui-pvp-staff/html/images/) y el evento paintball:server:joinMode | Sin el recurso la pestaña PVP muestra "Los minijuegos no están disponibles ahora mismo"; sin las imágenes solo se ocultan las ilustraciones. Con ELO y ranking vacíos |
Tablas intranet_short_links, intranet_store_credit, santabria_perks, opcrime_players, opcrime_orgs | Enlaces de la barra inferior, saldo de tienda, chip VIP y datos de clan | Cada una está aislada con pcall: la sección afectada sale vacía o a 0 y se imprime un aviso en consola una sola vez. El menú abre igual |
Videos de empleos (videoFile) | html/js/widgets/jobs.js busca el video en https://santabriarp.com/videos/<videoFile> | Solo afecta a trabajos que definan videoFile; sin él se usa YouTube, luego image y luego un fondo vacío. Los trabajos incluidos no definen videoFile |
| Fotos y reproductor de YouTube | Los trabajos incluidos tienen un campo youtube (miniatura de i.ytimg.com y reproductor youtube-nocookie.com) | Si el cliente no tiene acceso a YouTube, la tarjeta se queda sin imagen y la ficha sin vídeo; el botón de tomar el trabajo sigue funcionando |
Nada de lo anterior impide que el recurso arranque. Lo único que rompe el arranque son oxmysql, ox_lib y qb-core. Que los vehículos y el saldo salgan bien depende de que existan las tablas indicadas.
Instalacion
- Descarga el recurso desde el Portal de Cfx.re (assets comprados) con la cuenta Cfx.re con la que hiciste la compra. Viene protegido con Asset Escrow de Cfx.re: solo funciona en servidores cuya clave de licencia pertenece a esa cuenta.
- Copia la carpeta en
resources. La carpeta debe llamarse exactamentesbr-pausemenu: el JavaScript de la interfaz llama ahttps://sbr-pausemenu/<evento>con ese nombre fijo, y si la renombras los botones y ajustes dejan de responder. - Asegura que
oxmysql,ox_libyqb-corearrancan antes. Añade enserver.cfg:
ensure sbr-pausemenu
- Si usas las integraciones opcionales (
jg-hud,sbr-mastery,pvp-staff,ov-battlepass, etc.), instálalas y arráncalas; no hace falta cambiar nada en este recurso. - Da el permiso de administración (ver Comandos y permisos) al grupo que publicará noticias.
- Inicia el servidor y abre el menú en el juego.
No hay archivo .sql. Con MySQL.ready el recurso crea solo, si no existen:
santabria_hub_settings(ajustes por jugador) enserver/services/hub.lua, y añade la columnashow_minimapsi falta.santabria_news(noticias) enserver/services/news.lua.
server/services/lobby.lua y server/services/vehicle.lua solo leen tablas de otros sistemas (pvp_stats, opcrime_*, santabria_perks, intranet_short_links, player_vehicles) y no las crean.
Convars y ACE: lee sv_maxClients (máximo de jugadores, 64 por defecto) y sv_projectName (nombre del servidor). Los comandos de noticias exigen el ACE group.admin.
Archivos editables y cifrados: el bloque escrow_ignore deja sin cifrar shared/config.lua y toda la carpeta html/ (interfaz web). El resto va cifrado. Importante: shared/jobs_config.lua NO está en escrow_ignore, por lo que va cifrado y el comprador no puede editarlo.
Configuracion
Las opciones editables están en shared/config.lua (tabla Hub.Config):
| Clave | Valor por defecto | Para qué sirve |
|---|---|---|
serverName | 'Otra Vida RP' | Nombre de respaldo del servidor si no existe el convar sv_projectName |
serverLogoUrl | '' | Reservada: ningún archivo del recurso la lee actualmente |
trackedJobs | 7 entradas: police, ambulance, mechanic, taxi, lawyer, judge, news (cada una con key, label e icon) | Trabajos que se cuentan como "servicios en turno" en Inicio y Servidor |
newsCategories | { 'event', 'update', 'fix', 'warning', 'staff', 'economy' } | Categorías válidas para /noticia |
vehicleCacheTTL | 30000 | Milisegundos que se guarda en caché la lista de vehículos de cada jugador |
defaultSettings | show_blips, show_hud, show_minimap, show_compass, show_voice en true y theme = 'dark' | Ajustes de un jugador que aún no tiene fila guardada |
Cómo personalizarlo:
- Trabajos monitorizados: cada
keydebe coincidir con el nombre del trabajo en qb-core. El icono (icon) debe ser uno de los que dibujahtml/js/widgets/server.js:shield,heart,wrench,car,briefcase,gavel,camera. Cualquier otro valor muestra el icono de maletín. En Inicio solo se listan los servicios con al menos una persona en turno. - Categorías de noticias: la columna
categorydesantabria_newses unENUMcon exactamente esas seis categorías. Si añades una nueva en la configuración, también tendrías que modificar la tabla; por eso conviene mantener las seis. Consulta el archivo de configuración antes de cambiarlas. - Ajustes por defecto:
show_compass,show_voiceythemese guardan en la base de datos pero ningún archivo del recurso los aplica, y la interfaz no los muestra. Los que sí tienen efecto sonshow_hud,show_minimapyshow_blips. - Interfaz: como
html/no está cifrada, puedes cambiar textos, colores, logo (html/img/logo_small.png), la guía (html/js/widgets/guide.js) y la dirección de videos enjobs.js.
shared/jobs_config.lua (no editable): define la tabla Config.Jobs con los empleos del Centro de Empleos y varios datos sueltos (Config.NPCCoords, NPCModel, BlipSprite, BlipColor, BlipName, BlipScale, que ningún archivo del recurso utiliza). Incluye 9 empleos preconfigurados: Taxista, Camionero (dos entradas), Constructor, Camionero de Grúa, Operador de Montacargas, Limpiador de Ventanas, Recolector de Basura y Minero. Cada empleo tiene título, empresa, icono, salario, estado, categoría (industria, transporte, servicios, construccion, naturaleza), descripción, requisitos, beneficios, ubicación, coordenadas, vídeo de YouTube opcional y la forma de tomarlo: applyType = instant (asigna el trabajo con SetJob, con jobName y jobGrade), waypoint (solo marca la ruta), command (ejecuta un comando del cliente) o link (enlace de postulación). Limitación: al ir cifrado, el comprador no puede añadir, quitar ni modificar empleos, ni cambiar los nombres jobName que deben existir en su qb-core. Si un jobName no existe en tu servidor, el jugador recibe el aviso de que el trabajo no está registrado.
Comandos y permisos
| Elemento | Detalle | |
|---|---|---|
Tecla ESCAPE y tecla P | Abren y cierran el menú (RegisterKeyMapping de hub_open y hub_open2, nombre "Menú de pausa Otra Vida"). El jugador puede reasignarlas en los ajustes de teclado de FiveM | |
/hub | Abre o cierra el menú | |
| ESC dentro del menú | Cierra el menú (el recurso bloquea el menú de pausa nativo y el control 200) | |
| `/noticia categoria Título \ | Cuerpo` | Publica una noticia. Solo con el ACE group.admin |
/noticia_borrar id | Oculta una noticia (active = 0, la fila no se borra). Solo con el ACE group.admin |
Permiso de ejemplo (el ACE group.admin se obtiene al pertenecer a ese grupo; consulta cómo está definido en tu servidor):
add_principal identifier.license:<licencia> group.admin
Eventos de servidor (los dispara el cliente del propio recurso): sbr-pausemenu:server:open, server:getVehicles, server:saveSettings, server:refreshServerStatus y server:quit (desconecta a quien lo dispara con DropPlayer; no permite echar a otro jugador).
Eventos de cliente: sbr-pausemenu:client:openPayload, lobbyPayload, lobbyLive, serverStatusUpdate y vehiclesPayload.
Callback de ox_lib: sbr-pausemenu:applyJob (asigna el trabajo con SetJob).
Callbacks NUI (llamados desde la interfaz): hub:close, hub:switchChar (ejecuta /switchchar de qb-core), hub:quitServer, hub:toggleBlips, hub:toggleHud, hub:toggleMinimap, hub:setNpcVolume, hub:saveSettings, hub:requestVehicles, hub:setWaypoint, hub:openGtaMap, hub:openGtaSettings, hub:openPortal, hub:openPass, hub:joinMode, hub:leaveMode, hub:openTournament, hub:rotateChar, jobs:apply y los de maestría (mastery:profile, tree, ranking, buyNode, setFocus, respec, togglePerk, setTitle).
Exports: el recurso no declara ningún export propio. Consulta el archivo fxmanifest.lua si necesitas confirmarlo.
Como se usa
Pulsa ESC o P. Arriba tienes los accesos Mapa, Ajustes y Servidor, y las pestañas Inicio, PVP, Personal, Maestría, Empleos y Ranking. A la derecha se muestran tu saldo de tienda, efectivo y banco, y los iconos de Novedades, Pase, Guía, ajustes de GTA y salir.
- Inicio: mira tus datos y los del servidor. Haz clic en CitizenID o ID de sesión para copiarlos. Arrastra con el ratón sobre el centro para rotar la cámara alrededor de tu personaje (solo si vas a pie).
- Empleos: filtra por categoría, abre la ficha de un trabajo y pulsa Tomar trabajo (contratación directa) o Ir al trabajo (marca la ruta en el mapa).
- Personal: pestañas Personaje (identidad y barras de salud, armadura, hambre, sed y estrés) y Vehículos.
- Ajustes: activa o desactiva HUD, minimapa e iconos del mapa. Se guardan solos.
- PVP: elige un modo y pulsa Entrar a la cola, o Ver torneo. La barra inferior muestra la cola y permite salir de ella.
- Ranking: top de jugadores por RP; solo aparecen quienes han jugado partidas.
- Pase: resumen del nivel y de la temporada; Abrir el pase abre la interfaz de
ov-battlepass. - Mapa y Ajustes de GTA: cierran este menú y abren las pantallas nativas del juego.
Para administradores
- Publicar una noticia: en el juego, con permiso
group.admin, escribe/noticia event Torneo de carreras | Este sábado a las 21:00 en el puerto.La categoría va primero, el título y el cuerpo se separan con|. Se muestran las 10 noticias activas más recientes, ordenadas por prioridad y fecha. - Ocultar una noticia:
/noticia_borrar 3. Para cambiar la prioridad o la imagen (priority,image_url) edita directamente la fila ensantabria_news. - Qué datos ve el hub: número de jugadores y máximo, conteo por servicio (nunca nombres), el resumen del personaje que abre el menú y sus vehículos. El menú no lista a los demás jugadores.
- Enlaces de la barra inferior: se leen de la tabla
intranet_short_links(filas conshow_on_bio = 1, ordenadas porbio_order; usalabel,target_urlybio_icon). Se ocultan los enlaces que contienencfx.re/join. Para cambiarlos o limpiarlos edita o desmarca esas filas; no hace falta reiniciar el recurso. Esa tabla pertenece a otro sistema: si no existe, la barra queda sin enlaces. - Ajustes de un jugador: viven en
santabria_hub_settings, una fila por CitizenID. - Avisos en consola: si una sección del lobby falla (tabla ausente, recurso detenido) se imprime un aviso una sola vez por arranque.
Preguntas frecuentes
¿Funciona con ESX o Qbox? No sin cambios. El recurso está escrito para qb-core y usa sus exports y la estructura de PlayerData. Como el código de client/ y server/ va cifrado, esas adaptaciones no se pueden hacer por tu cuenta.
Renombré la carpeta y los botones no responden. La carpeta debe llamarse sbr-pausemenu. La interfaz llama a https://sbr-pausemenu/... y ese nombre no se puede cambiar desde la interfaz sin tocar código cifrado.
¿Puedo añadir o editar empleos? No: shared/jobs_config.lua va cifrado y no se puede editar. Es una limitación del recurso. Los trabajos asignan un jobName que debe existir en tu qb-core. Puedes cambiar los textos que muestra la interfaz en html/, pero no los datos de los empleos.
La pestaña Maestría se queda en "Cargando maestría…". Necesita el recurso sbr-mastery iniciado. Sin él solo falla esa pestaña.
No aparecen los enlaces ni el saldo de tienda. Salen de las tablas intranet_short_links e intranet_store_credit, que no crea este recurso. Sin ellas la barra queda vacía y el saldo marca 0.00.
Hay iconos de empleos vacíos y los avisos de noticias salen sin color. La interfaz usa clases de Font Awesome (fas fa-...) para los empleos pero no incluye esa biblioteca, y las categorías de noticias no tienen estilo propio en el CSS. Puedes corregirlo en html/, que no está cifrado.
El botón del portal web no hace nada. El código incluye el callback hub:openPortal, pero la barra superior de la interfaz entregada no tiene el botón del portal (btn-portal-web) y la pestaña Tienda, que sí lo usaría, existe en el código sin acceso desde la barra. Se puede añadir el botón editando html/index.html.
Actualizaciones y soporte
Las actualizaciones se descargan desde el Portal de Cfx.re con la misma cuenta con la que realizaste la compra. Antes de actualizar, haz una copia de tu carpeta html/ y de shared/config.lua si los has personalizado, ya que se reemplazarán. Si necesitas ayuda, indica la versión del recurso (1.0.0), la consola del servidor y los recursos relacionados que tengas instalados. Contacto: [enlace de soporte]
