Documentación de Pulse Phone
Solución de problemas
11. Solución de problemas
Empieza aquí: lee la comprobación de inicio en la consola del servidor. Empieza con PULSE PHONE v1.x.x y la build, y luego da una línea por área (Server, Database, Framework, Connected scripts, Items...). Cada línea FIX o NOTE tiene el problema y su solución debajo (-> ...). Escribe phone:health para ver el informe completo, línea a línea, y phone:diag para los detalles.
El teléfono no se abre
| Lo que ves | Por qué | Solución |
|---|---|---|
F1 no hace nada, /phone funciona |
Otro script usa F1 | Reasígnala en Settings > Key Bindings > FiveM, o cambia Config.Keys.open. El nuevo valor por defecto solo llega a los jugadores que nunca asignaron la tecla. |
| No se abre nada | El jugador no tiene item de teléfono, la batería está vacía, un script desactivó el teléfono, o el jugador está muerto, esposado o en otro estado bloqueado | Revisa Config.Item.required, la batería y los estados de Config.Block. |
| No se abre encima de un inventario o un menú | Es intencionado (Config.Open.blockWhenNuiFocused) |
Cierra primero el otro menú. |
| "No phone item": no se abre para nadie | Config.Item.required = true pero falta el item phone en tu inventario, o los jugadores no lo llevan |
Añade el item phone (sección 4) y dáselo a los jugadores, o pon Config.Item.required = false. |
| Un teléfono nuevo está en negro y dice "Hold to turn on" | El teléfono llegó apagado: Config.Device.arrivesOn = false. Desde la 1.4.0 los teléfonos nuevos llegan encendidos por defecto; un config.lua conservado de una versión anterior mantiene su propio valor |
Con el teléfono sacado, mantén End u O (Config.Keys.power) unos dos segundos, o mantén el botón lateral del propio teléfono con el ratón. Desliza hacia arriba en la pantalla de bienvenida para empezar la configuración. |
La caja desaparece pero no aparece ningún item phone |
Config.Item.required = false y unique = false usan un teléfono propiedad del personaje, sin item de inventario |
Abre el teléfono con normalidad. Si tu servidor debe exigir que se lleve un item, activa Config.Item.required antes de vender teléfonos y reinicia Pulse. |
| Pantalla en blanco o vacía | El lado del servidor no está en marcha. F8 muestra the server never answered bootstrap - is the resource running server-side? |
Busca en la consola del servidor una línea roja [phone] o un error de escrow (abajo). |
Pantalla vacía, la consola dice ui/index.html missing |
La carpeta ui/ se borró o no se subió |
Vuelve a subir la carpeta phone completa. No borres ui/. |
El teléfono se ve en la mano pero la pantalla nunca aparece; la comprobación de inicio muestra [FAIL] Interface nombrando un archivo de ui/assets/ |
Ese archivo falta en tu copia: una subida incompleta, o un antivirus lo eliminó | Descarga de nuevo el teléfono desde Keymaster y sube la carpeta completa. Si el archivo vuelve a desaparecer, añade la carpeta del servidor a las exclusiones de tu antivirus. |
| El cursor se queda atascado en el centro de la pantalla | El raw input de GTA está desactivado | El jugador activa el raw input en los ajustes de GTA. |
Framework, dinero y trabajos
| Lo que ves | Por qué | Solución |
|---|---|---|
FRAMEWORK NOT SELECTED: more than one framework is started |
Hay dos cores en marcha, por ejemplo es_extended y qb-core | Pon en Config.Framework de config/config.lua el que usas, o añade setr phone_framework <name> a server.cfg (sección 3). Hasta entonces, las funciones de dinero están desactivadas. |
framework not ready: ... en la consola, y los teléfonos se quedan en su pantalla de "no está listo" |
El framework que encontró el teléfono, o que se le indicó usar, aún no está en marcha: todavía arrancando, reiniciándose, detenido o (personalizado) su bridge nunca se registró. El dinero se rechaza hasta que esté activo. | Inicia el teléfono después de tu framework. Tras reiniciar el core, espera un momento, o reinicia también el teléfono. Framework personalizado: registra el bridge y llama a exports.phone:FrameworkRestarted() tras reiniciar el core. Un servidor sin ningún framework: pon Config.Framework = 'standalone' en config/config.lua, o añade setr phone_framework standalone a server.cfg (tiene prioridad sobre la config). |
| Detectó el framework equivocado: la línea de inicio nombra uno que no usas | ox_core está iniciado junto a ESX, QBCore o Qbox (el teléfono usa entonces el otro), o tu core tiene un resource renombrado | Detén el core que no usas, o fuerza el tuyo con setr phone_framework <name> en server.cfg (sección 3). Un core renombrado: usa su nombre original, o conéctalo como framework personalizado. |
Config.Framework = "esx" but es_extended is not started |
El ajuste nombra un framework que no está en marcha | Corrige el ajuste, o vuelve a ponerlo en 'auto'. |
La línea de inicio dice Framework: standalone en un servidor con framework |
El core tiene un nombre de resource distinto, o arranca después del teléfono | Inicia el teléfono después del framework. Un core renombrado no se encuentra: usa su nombre original, o conéctalo como framework personalizado (sección 3). |
| El saldo del banco es 0 o es incorrecto | El teléfono funciona en modo standalone (su propio banco), o no se encontró el framework | Revisa las partes Framework: y Banking: de la línea de inicio. |
| No hay cuenta de empresa en Services | No hay ningún script de cuentas de empresa en marcha, o el jugador no es jefe | Usa uno de la sección 7. Rangos de jefe: boss (ESX), isboss (QBCore / Qbox) o bossGrade. En ox_core y vRP no hay gestión de empresas. |
| La policía o EMS no reciben las llamadas al 911 | Sus nombres de trabajo no están en las listas, o están fuera de servicio | Añade tus nombres de trabajo a Config.Services y Config.Emergency en config/apps.lua. |
<script> found but not connected |
La versión de ese script tiene exports distintos | El teléfono usa la siguiente opción. Actualiza el script, o elige otro con Config.Providers. |
Servidor ND Core, pero la línea de inicio nombra otro framework o standalone |
ND_Core arranca después del teléfono, o también hay otro core iniciado |
Inicia el teléfono después de ND_Core, detén el core que no usas, o añade setr phone_framework nd a server.cfg. |
Base de datos
| Lo que ves | Por qué | Solución |
|---|---|---|
El teléfono nunca termina de cargar; F8 muestra request "bootstrap" timed out |
Las tablas de otro teléfono están en medio y no se pudieron apartar | Lee la comprobación de inicio (phone:health). Una línea [FAIL] Database ... belong to another script nombra las tablas; consulta la sección 2, "Las tablas de otro teléfono". |
Comprobación de inicio: [WARN] Database N table(s) of another script were moved aside: phone_x -> old_phone_x |
Una tabla que otro script dejó con uno de los nombres del teléfono se renombró al iniciar para que el teléfono pudiera crear la suya. No se borró nada | No hay nada que hacer para el teléfono. Si un script tuyo es dueño de esa tabla, dale otro nombre de tabla: no encontrará sus datos con el nombre antiguo. phoneimport lee de ahí los datos de un teléfono anterior (Importar datos, "Tablas que comparten nombre con Pulse Phone"). |
Comprobación de inicio: [WARN] Database <table> is missing columns the phone writes (...) |
La tabla tiene el nombre del teléfono pero le falta una columna que el teléfono escribe, y no está claro que sea de otro script. Se deja como está a propósito: un renombrado erróneo sería peor que un aviso | Si la creó otro script, renómbrala a old_<table> en tu herramienta de base de datos y reinicia. Si no, envía esa línea a soporte (sección 12). Las reglas están en Importar datos. |
db: could not create table ... check that the database user may CREATE TABLE |
El usuario de la base de datos no puede crear tablas | Da al usuario permisos CREATE y ALTER, o importa phone.sql a mano. |
db: could not add column ... |
El usuario no puede hacer ALTER en las tablas | Igual que arriba. |
is running but the database did not answer |
oxmysql está en marcha pero no llega a la base de datos | Corrige mysql_connection_string. El teléfono reintenta por sí solo. |
no SQL resource running - storing data in the resource key/value store |
oxmysql no está iniciado, o arranca después del teléfono | Inicia oxmysql antes que el teléfono. |
auth_gssapi_client en el log de oxmysql |
El usuario de la base de datos está configurado con inicio de sesión de Windows | Cambia ese usuario para que use contraseña: ALTER USER 'fivem'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('your-password'); |
phone_db_fallback is "kvp", so the key/value store takes over |
La base de datos no responde y la alternativa está activada | Los datos se están escribiendo en el almacén clave/valor y no llegarán a la base de datos. Arregla la conexión. |
db: no answer within 10 s, answered as failed: <query> |
Esa consulta nunca volvió (una base de datos lenta o bloqueada) | A la app que la pidió se le indicó que falló. Revisa el log del resource SQL. |
Llamadas, fotos y el teléfono
| Lo que ves | Por qué | Solución |
|---|---|---|
Las llamadas conectan sin sonido, no voice resource |
No hay ningún script de voz en marcha | Inicia pma-voice (u otro de la sección 5) antes que el teléfono. |
Sin sonido, 2 voice resources running |
Dos scripts de voz se pelean por los mismos canales | Usa exactamente uno. |
| La videollamada solo muestra la imagen de quien llama | Los dos jugadores no pueden conectarse directamente | Configura un relay de vídeo con la guía avanzada enlazada en la sección 5. |
| Una llamada unida tiene sonido pero no imagen | El vídeo en grupo está desactivado, o las plazas de vídeo configuradas están ocupadas. Los participantes de voz pueden seguir en la conferencia sin plaza de vídeo. | En config/config.lua, revisa Config.Calls.groupVideo y Config.Calls.groupVideoMax. El vídeo en grupo está activado por defecto con cuatro plazas de vídeo. Sigue la configuración del relay de vídeo enlazada en la sección 5 para la conectividad en producción. |
| Los clips de vídeo de la cámara no tienen sonido, para un jugador | Ese jugador rechazó una vez la petición de micrófono del juego. FiveM recuerda la respuesta en %AppData%\CitizenFX\media_access.json y no vuelve a preguntar. |
El jugador cierra FiveM, borra %AppData%\CitizenFX\media_access.json, vuelve a iniciar el juego y permite el micrófono cuando se le pregunte. |
Las fotos no se guardan, screenshot-basic not started |
screenshot-basic no está en marcha | Inícialo antes que el teléfono. |
| Las fotos se guardan pero se ven rotas | phone_media_origin es un simple http:// |
Usa una dirección https://, quita el ajuste o usa Fivemanage (sección 6). |
refused a media link on "<host>" |
Un enlace de un host que no está en la lista permitida | Añade el host a Config.Media.allow (sección 6), o déjalo rechazado. |
| La app Radio dice que la radio no está disponible | No hay ningún script de voz en marcha, o es YACA | Consulta la sección 5, Radio. |
| Radio: "You need a radio to tune in" | Config.Radio.item está configurado y el jugador no lleva ese item |
Dale el item, o pon item = false en config/apps.lua. |
| El teléfono público rechaza la llamada por dinero | Hay muy poco dinero en la cuenta que indica Config.Payphone.pay, o es un bridge personalizado sin funciones de dinero |
En un servidor standalone nadie tiene efectivo: mantén pay = 'either' o usa 'bank'. |
| No se puede escribir en un campo de texto | Otro script llamó a SetNuiFocus(false, false) mientras el teléfono estaba abierto |
Encuentra ese script (las devtools de NUI lo muestran). |
Comprobación de inicio: phone_media_origin not set |
El servidor no tiene una dirección pública de Cfx.re (un servidor de pruebas local o en LAN) | Los jugadores en el mismo PC o red no tienen problema. Para un servidor público, comprueba que aparece en la lista, o pon setr phone_media_origin "https://..." (sección 6). |
| Teléfono invisible, un teléfono genérico del juego o una caja gris en la mano | El modelo del teléfono no hizo streaming. F8 muestra the handset model "pulse_titanium" did not load. (o pulse_ultra, pulse_clear, pulse_flip, según el teléfono que sea) |
Pon sv_enforceGameBuild en 2699 o superior. Vuelve a subir stream/ sin cambios, y conserva todas las líneas data_file de fxmanifest.lua. |
Tienda e items
| Lo que ves | Por qué | Solución |
|---|---|---|
| No hay dependiente en la tienda | El dependiente solo aparece a unos 60 m. Puede que la tienda esté desactivada, o que tu mapa cubra Legion Square | Revisa Config.Store.enabled. Mueve el mostrador en Config.Store.locations. |
store: the item "pulse_phone_box" ... is not registered in your inventory |
Falta el item de la caja | Añádelo (sección 4). Hasta entonces, los teléfonos se entregan sin caja. |
La tienda dice "inventory full" pero el jugador tiene espacio; la consola dice store: the inventory would not take <item> |
Ese item no está en la lista de items de tu inventario, así que el inventario lo rechaza | Añade el item que nombra la consola (sección 4, y config/items/), o pon Config.Store.box = false para entregar los teléfonos sin caja. La compra se reembolsó. |
No hay Reserve ni cable en la tienda, o store: the item "pulse_cable" ... |
Faltan los items de carga en tu inventario | Añade pulse_magpack, pulse_magpack_max y pulse_cable (sección 4), y sus imágenes. |
No hay Pulse Home Wi-Fi en la tienda, o store: the item "pulse_router" ... |
Falta el item del router en tu inventario, o Config.Wifi.enabled es false |
Añade pulse_router (sección 4) y su imagen. |
Home Wi-Fi: the model "pulse_router" is not streamed en F8 |
stream/ no se subió completo |
Vuelve a subir stream/ sin cambios. El Wi-Fi sigue funcionando; el router no se dibuja. |
No hay Pulse Burner en la tienda, o store: the item "pulse_burner" ... |
Falta el item del desechable en tu inventario, o Config.Burner.enabled es false |
Añade pulse_burner (sección 4) y su imagen. |
Pulse Burner: the model "pulse_burner" is not streamed en F8 |
stream/ no se subió completo |
Vuelve a subir stream/ sin cambios. Los desechables siguen funcionando; en la mano se ve el teléfono Pulse. |
| Un agente no tiene la app Intercept, o dice que está fuera de servicio | Su trabajo no está en Config.Taps.jobs, su rango está por debajo de minGrade, o el framework dice que está fuera de servicio |
Revisa config/apps.lua y su trabajo. |
| "A router can only go inside a home you own or have a key to" | placement es 'housing' (o 'auto' con un script de viviendas) |
Colócalo dentro de tu vivienda, o cambia placement en config/apps.lua. |
| El router no se coloca: el anillo sigue en rojo, o un mensaje dice por qué | El sitio incumple una regla. Debe ser una superficie plana a unos 3 m del jugador (no una pared ni una pendiente), a al menos minSpacing (8 m) de otro router, y el jugador debe tener menos de maxPerPlayer (2) colocados. Con placement = 'interior' debe estar en un interior ("A router has to go indoors"). Con 'housing' debe estar en una vivienda de la que sea dueño o tenga llave. |
Acércate y apunta a un suelo o una mesa. Recoge primero un router más antiguo. O cambia placement en config/apps.lua (sección 8, Home Wi-Fi). |
| "Routers go in homes, and this server has no housing script the phone can read" | placement = 'housing', pero no está en marcha ninguno de los scripts de viviendas de la sección 7 |
Pon placement en 'auto' o 'interior', o usa un script de viviendas compatible. |
| Los items aparecen sin imagen | No se copiaron las imágenes | Copia config/items/images/ a la carpeta de imágenes de tu inventario. La línea Item pictures de la comprobación de inicio nombra las que faltan y la carpeta. |
Comprobación de inicio: [FAIL] Items ... missing in ox_inventory |
ox_inventory solo lee su propio archivo de items | Pega las entradas que se muestran debajo del recuadro en ox_inventory/data/items.lua, y reinicia ox_inventory y el teléfono. |
Comprobación de inicio: Phone item ... opens <another script> |
La entrada phone de ox_inventory nombra el export de otro script |
Sustituye esa entrada por la que se muestra debajo del recuadro (también en Settings > Server > Health Check, con Copy) y reinicia ox_inventory. La entrada de serie está bien como está. |
Comprobación de inicio: [INFO] Items TMC keeps no item list the phone can read |
TMC no tiene forma de listar sus items, así que el teléfono no puede saber cuáles hay. Es información, no un error | Asegúrate de que cada item que se muestra debajo del recuadro está en la lista de items de TMC. La tienda nombra cualquier item que TMC rechace. |
Comprobación de inicio: [WARN] Items ... restart the server once so ESX loads them |
Los items se añadieron a la tabla items de ESX, pero este ESX no puede recargarlos mientras está en marcha |
Reinicia el servidor una vez. |
Comprobación de inicio: [WARN] Items ... could not add the items itself |
El teléfono no pudo escribir en la tabla items de ESX ni en los items de QBCore (el motivo está en la línea) |
Hazlo a mano: ejecuta config/items/esx.sql (ESX) o pega config/items/qb-core.lua en qb-core/shared/items.lua (QBCore), y reinicia. |
Unique phones are waiting for their inventory. |
Los teléfonos únicos están activados, pero no está en marcha ninguno de los inventarios que necesitan | Inicia el inventario compatible seleccionado antes que el teléfono y revisa Config.Providers.inventory. Pulse mantiene el ajuste de teléfonos únicos y se reanuda cuando ese inventario esté disponible; no cambies el modo de propiedad solo para evitar este aviso. |
| Una factura no se puede pagar: no hay nadie para recibirla | La empresa de la factura no tiene cuenta en un script de cuentas de empresa, o no se encuentra a quien la envió | Pon Config.Bills.payToCity = true para cobrar esas facturas como multas de la ciudad. |
Otros scripts, idioma y servicio
| Lo que ves | Por qué | Solución |
|---|---|---|
Un script da error con No such export para otro teléfono |
Llama a los exports de otro teléfono, por ejemplo exports['<old phone>']:SendMail. Pulse Phone no copia los exports de otros teléfonos. |
Cambia esa llamada al export propio de Pulse Phone (Exports), o pide al autor del script una opción para Pulse Phone. Los scripts que usan eventos no necesitan nada. |
No such export para phone |
Se cambió el nombre de la carpeta del teléfono | Devuélvele el nombre phone (abajo). |
| Idioma equivocado | Config.Locale está configurado en otro idioma, o el jugador eligió uno |
Configura Config.Locale. Cada jugador puede elegir el suyo en Settings > General > Language. |
El texto aparece como claves del tipo key.answer |
Se copió una carpeta config/locales/ antigua encima de la nueva |
Usa los nuevos archivos de idioma. Vuelve a aplicar tus propios textos a mano. |
| La descarga de App Hub dice No Connection | El teléfono no tiene señal móvil aquí (una zona sin cobertura, o sin señal con el Carrier activado) y no está en Wi-Fi. Las descargas necesitan Wi-Fi o datos móviles. | Ve a algún sitio con señal, o conéctate a un Wi-Fi (un router Pulse Home Wi-Fi). |
| La descarga de App Hub dice No Cellular Plan, Data Limit Reached o Cellular Data Is Off | El Carrier está activado y el teléfono no tiene plan o ha gastado sus datos, o el jugador desactivó los datos móviles | Compra o mejora un plan en la app Carrier (instalada en todos los teléfonos mientras el Carrier está activado), vuelve a activar los datos móviles o conéctate a un Wi-Fi. |
| Todos tienen "No Service" | El Carrier está activado (Config.Carrier.enabled = true o setr phone_carrier 1), así que cada teléfono necesita un plan |
Los jugadores compran un plan en la app Carrier. O desactívalo: pon enabled = false y quita la línea setr phone_carrier. |
| Sin señal solo en algunos sitios | Las zonas sin cobertura están activadas (Config.Coverage.enabled) |
Revisa tus zonas con phone:zone show en el juego. Las llamadas de emergencia siempre funcionan. |
Settings > Server, alertas de emergencia y actualizaciones
| Lo que ves | Por qué | Solución |
|---|---|---|
| No hay fila Server en Settings | El jugador no tiene el ace phone.admin, o Config.OwnerTools.enabled = false |
add_ace group.admin phone.admin allow y añade el jugador a group.admin, luego vuelve a abrir Settings. |
phone:setup no hace nada |
Se escribió en la consola del servidor, o el jugador no es admin | Escríbelo en el juego (F8) como admin. En la consola, phone:health muestra las mismas comprobaciones. |
| Un cambio hecho en el juego no tiene efecto | Está marcado como Restart needed | Reinicia el teléfono (ensure phone) o el servidor. La línea Restart de la comprobación de inicio lista lo que está pendiente. |
Editar un archivo de config/ no cambia nada |
Ese ajuste se cambió en el juego, y el valor del juego tiene prioridad | Pulsa Reset to Default en él en Settings > Server, o phone:reset <key> en la consola. |
| Settings > Server lo muestra todo como solo lectura | Config.OwnerTools.enabled = false en config/apps.lua |
Ponlo en true y reinicia el teléfono. |
Not saved: ... debajo de un ajuste |
El valor no es uno que acepte ese ajuste (fuera de rango, formato incorrecto, un nombre de trabajo con espacios) | Usa el valor que describe el mensaje. |
| Nadie recibe una alerta de emergencia | Config.Broadcast.enabled = false, o los jugadores están fuera del círculo que dibujaste |
Revisa config/apps.lua. Envía a toda la ciudad para probar. |
| Los jugadores reciben las alertas graves o informativas sin sonido, o no las reciben | Cada jugador puede desactivar esos niveles, y las alertas graves siguen el modo Silencio | Es decisión del jugador. Las alertas extremas siempre suenan. |
| Un agente no tiene el botón New Alert | Su trabajo no está en Config.Broadcast.senders, su rango está por debajo del indicado, o está fuera de servicio |
Añade 'police:3' (trabajo:rango mínimo) a senders, o pon requireDuty = false. |
Wait ... before sending another alert |
El tiempo de espera de quien envía (cooldownSeconds) o el límite por hora (perHour) |
Espera, o sube los límites en config/apps.lua. |
No hay línea Update en la comprobación de inicio |
El teléfono no pudo llegar al archivo de actualización (sin internet, un firewall), o Config.UpdateCheck.enabled = false |
Nada que arreglar: el teléfono sigue funcionando sin ello. Con Config.Debug = true la consola indica por qué. |
Funciones más recientes
| Lo que ves | Por qué | Solución |
|---|---|---|
| No aparece la app Shade | Shade está desactivada por defecto, y necesita un item pulse_vpn, un trabajo de la lista o access.everyone |
Pon Config.DarkMarket.enabled = true en config/apps.lua y revisa su bloque access. |
| No hay tarjeta SIM en la tienda, o no hay saldo en Settings | Las tarjetas SIM están desactivadas por defecto (Config.Sim.enabled), y el saldo de prepago es un segundo interruptor (prepaid) |
Actívalas en config/apps.lua, y añade pulse_sim y pulse_topup a tu inventario (sección 4). |
| Un Pulse Beacon no se puede pegar a un coche | El jugador está demasiado lejos del vehículo (attachRange, 4 m), o ya tiene maxPerPlayer (8) |
Ponte junto al coche. Revisa config/apps.lua. |
| "An unknown Pulse Beacon is moving with you" | El aviso de seguridad: la baliza de otra persona viajó con el jugador durante alertAfter segundos |
Es lo esperado. Pon alert.enabled = false solo si tus normas permiten el seguimiento encubierto. |
| Pulse Buds, Ring Light o Card Wallet no funcionan desde el inventario | Faltan sus items, o están desactivados | Añade pulse_buds, pulse_ringlight y pulse_wallet (sección 4), y revisa config/apps.lua. |
| Slipstream no deja a un jugador organizar ni unirse | Está a más de joinRadius (60 m) de la línea de salida, la carrera está llena (maxRacers), o la cuota está fuera del rango minFee a maxFee |
Conduce hasta la línea de salida. Revisa config/apps.lua. |
| Hail: un conductor nunca recibe viajes | La clase o el modelo de su coche no está permitido, su trabajo no está en driver.jobs, le falta driver.licenceItem, o está fuera de serviceArea |
Revisa el bloque driver en config/apps.lua. |
| Los pedidos de Eats nunca los entrega un jugador | No hay ningún repartidor de servicio con un trabajo de couriers.jobs; con cityCourier.enabled entrega la ciudad en su lugar |
Añade tus trabajos de reparto a config/apps.lua (o en Settings > Server > Jobs). |
| Realty no muestra viviendas | Tu script de viviendas no puede listar viviendas en venta, y Config.Homes.listings está vacío |
Añade anuncios en config/apps.lua, o usa un script de viviendas de la sección 7. |
| Ningún agente recibe solicitudes de visita en Realty | Ningún jugador de servicio tiene un trabajo de realtor.jobs |
Añade tus nombres de trabajo en config/apps.lua (o en Settings > Server > Jobs). |
| Juegos en vivo: no llega ninguna invitación | El juego está desactivado en config/apps.lua, o la invitación esperó más de inviteSeconds |
Revisa config/apps.lua y vuelve a enviar la invitación. |
| Una línea de empresa no suena para nadie, o quienes llaman se quedan en espera | Nadie ha iniciado sesión como operador de esa línea, o no hay ningún miembro de servicio | Consulta config/apps.lua: los operadores inician sesión en la app Services. |
| Groups: "the group is full" | maxMembers (6, líder incluido) |
Súbelo en config/apps.lua. |
| Las noticias de última hora no notifican a nadie | breaking.enabled está desactivado, o no ha pasado el tiempo de espera (cooldownSeconds, perAuthorSeconds) |
Revisa config/apps.lua, o Settings > Server > News. |
Problemas de instalación y de versión
| Lo que ves | Por qué | Solución |
|---|---|---|
You lack the required entitlement, o un error de escrow al iniciar |
La clave del servidor pertenece a una cuenta de Cfx.re distinta de la que compró Pulse Phone | El asset debe pertenecer a la misma cuenta de Cfx.re que la clave de tu servidor (sv_licenseKey). Descarga el teléfono desde Keymaster (Granted Assets) con esa cuenta. Una copia de otra persona nunca funciona. |
Failed to verify protected resource phone al iniciar, y la consola o F8 muestran syntax error near '<\1>' en archivos de la carpeta bloqueada |
La subida modificó los archivos bloqueados: un cliente FTP los envió en modo texto (Auto/ASCII), o la subida se cortó. La licencia está bien (con una cuenta equivocada aparece en su lugar You lack the required entitlement) |
Borra la carpeta phone del servidor, descárgala de nuevo desde Keymaster y súbela en modo Binary (FileZilla: Transfer > Transfer Type > Binary), o sube el zip y extráelo en el servidor. Compara la carpeta con la tabla de archivos de INSTALL.md. |
Comprobación de inicio: [FAIL] Package ... file(s) missing or the wrong size, nombrando archivos de ui/, data/ o stream/ |
Esos archivos no llegaron tal como se crearon: una subida parcial, una transferencia FTP en modo texto, o un antivirus eliminó alguno | La misma solución: vuelve a descargarlo y súbelo en modo Binary o extrae el zip en el servidor. Si un archivo vuelve a desaparecer, excluye la carpeta del servidor en tu antivirus. Los archivos de stream solo se comprueban por su presencia (el escrow cambia su tamaño); el código bloqueado lo comprueba el propio servidor. |
Comprobación de inicio: [FAIL] Package the file list is from build ... files from two downloads are mixed |
ui/ y el resto de la carpeta vienen de descargas distintas |
Borra la carpeta y extrae una sola descarga completa. Toma siempre stream/ y ui/ de la misma versión. |
Comprobación de inicio: [WARN] Package data/package.json is missing or unreadable |
No llegó la lista de archivos que viene con cada versión | Vuelve a subir la carpeta completa (modo Binary), incluida data/. |
| Otros scripts o items dejan de funcionar tras renombrar la carpeta | Los demás scripts y las entradas de items llegan al teléfono como phone (exports.phone, phone.useItem) |
Mantén la carpeta con el nombre phone. |
Comportamiento extraño tras una actualización, your config has no Config.Charging section |
Se copió encima un config.lua antiguo |
Las secciones que le faltan funcionan con los valores por defecto. Copia las secciones que faltan del nuevo config/config.lua, o parte del archivo nuevo. |
| Un adaptador antiguo impide que los scripts se conecten tras una actualización | Se volvieron a copiar archivos bridge/ antiguos (de esta versión o de una anterior) |
Usa los archivos nuevos (sección 10). |
| Arrancan dos teléfonos | La carpeta phone antigua sigue en algún lugar dentro de resources |
Sácala de resources. |