Cómo instalar y configurar LB Phone: ESX, QBCore y QBOX
Por Luke, RPScripts

Qué es LB Phone y qué necesita
LB Phone es un recurso de smartphone completo para FiveM. De serie cubre lo que los jugadores esperan de un teléfono: llamadas, mensajes, correo, cámara, reloj, notas, mapas, tiempo, notas de voz y una tienda de apps, además de apps sociales (InstaPic, Birdy, Trendy y Spark) y extras como DarkChat, un mercado, Yellow Pages, música y cripto. La descarga contiene dos recursos: el propio lb-phone y un recurso aparte para el prop del teléfono, lb-phoneprop.
Antes de instalar cualquier teléfono, apunta lo que tu servidor usa de verdad: framework, inventario, librerías y tu edición de GTA V con la versión del artifact de FXServer. Un teléfono toca llamadas, datos de personajes, items del inventario y servicios del servidor, así que comprueba esas integraciones, no solo la lista de apps.
Frameworks compatibles
Según la página del producto, LB Phone funciona con ESX, QBCore, QBOX, ox_core, vRP 2.0 o en standalone, y detecta el framework automáticamente por defecto. La documentación del creador también confirma esa detección automática. Para cualquier otro framework hay una vía documentada con un framework personalizado (ver más abajo).
Requisitos
Los requisitos obligatorios son pocos: oxmysql más uno de los frameworks compatibles, o standalone. ox_core es una de esas opciones de framework, no una dependencia adicional; la lista de dependencias del creador no lo incluye. La guía de instalación oficial añade estos detalles:
- MariaDB 10.11 o posterior. Puedes comprobar tu versión con
SELECT VERSION()en HeidiSQL. La guía desaconseja expresamente XAMPP. - oxmysql
- loaf_bcrypt (recomendado)
- artifacts del servidor actualizados
- OneSync Infinity (opcional), necesario para algunas funciones como AirShare
Antes de empezar: haz una copia de seguridad y revisa la base de datos
La guía del creador pide hacer siempre una copia de seguridad antes de cambiar la base de datos. Aquí importa más que nunca: antes de ejecutar el archivo SQL de LB Phone, la guía indica borrar todas las tablas que empiezan por phone_.
En un servidor nuevo no pasa nada. En un servidor que ya usaba otro teléfono, puede borrar sus datos. El gcPhone original y el base.sql de Re-Ignited, por ejemplo, crean phone_app_chat, phone_calls, phone_messages y phone_users_contacts, así que las cuatro coinciden con el prefijo phone_. Quasar Smartphone V3 usa el prefijo qs_phone_ en sus tablas. Antes de borrar nada, exporta la base de datos, lista cada tabla que empiece por phone_ y comprueba qué recurso la creó. Seguir instrucciones de reinicio sobre una base existente no conserva el historial del teléfono. Si quieres conservar los datos antiguos, planifica primero una migración en un servidor de pruebas en lugar de una instalación limpia.
Instalación paso a paso
Los pasos siguientes combinan la página del producto y la guía de instalación oficial. Donde la guía es más detallada, seguimos la guía.
1. Copia los recursos
Descomprime la descarga y copia lb-phone y lb-phoneprop de la carpeta [lb] a la carpeta resources de tu servidor.
2. Borra las tablas phone_ antiguas y ejecuta el archivo SQL
Con la copia de seguridad hecha, borra todas las tablas que empiezan por phone_ y después ejecuta en tu base de datos el archivo incluido lb-phone/phone.sql. El creador recomienda HeidiSQL y desaconseja phpMyAdmin. Su página de problemas comunes añade que los errores al importar el SQL suelen venir de phpMyAdmin o de una versión antigua de MariaDB, y que los hostings con panel de juego a menudo traen ambos.
3. Instala las dependencias
Instala oxmysql y mantén actualizados los artifacts del servidor. oxmysql no viene en la descarga y debe arrancar primero.
loaf_bcrypt es opcional pero recomendado. El creador explica que el bcrypt integrado de FiveM corre en el hilo principal del servidor y puede causar un tirón de unos 80 ms cuando LB Phone genera o verifica el hash de una contraseña, mientras que loaf_bcrypt hace ese trabajo en un hilo aparte. LB Phone lo detecta y lo usa automáticamente en cuanto está iniciado. Añade estas líneas antes de start lb-phone en tu server.cfg:
add_unsafe_worker_permission loaf_bcrypt
start loaf_bcrypt
4. Define el orden de arranque en server.cfg
Todos los recursos que usa LB Phone, incluidos tu framework, oxmysql y tu inventario, deben arrancar antes que LB Phone. Las apps personalizadas arrancan después. La página del producto da este orden, colocado después de oxmysql y de tu framework:
ensure oxmysql
ensure lb-phoneprop
ensure lb-phone
5. Configura las subidas y las claves API
Ajusta config/config.lua a tus necesidades. Las subidas de fotos, vídeo y audio necesitan un método de subida y claves API: elige el método en config.lua e introduce las claves en lb-phone/server/apiKeys.lua. El método por defecto es Fivemanage; si prefieres tu propio almacenamiento S3 o R2, el creador remite a lb-presigned. Cuenta el servicio de subidas como parte de tus costes de funcionamiento y guarda las credenciales en la configuración del servidor, no en el código del cliente.
Según el creador, después de esto el teléfono debería funcionar sin más, con más opciones en la carpeta config.
¿Aún no tienes LB Phone? Consigue LB Phone v2 en RPScripts: descarga inmediata, archivos más nuevos en las descargas de tu cuenta y ayuda con la instalación.
Notas por framework: ESX, QBCore y QBOX
LB Phone detecta ESX, QBCore y QBOX automáticamente por defecto, así que en las fuentes revisadas no hay una instalación distinta para cada framework. Las diferencias aparecen en tu inventario y en las apps del framework.
Teléfonos únicos
LB Phone puede dar a cada item de teléfono su propio número. Así los jugadores pueden robar y compartir teléfonos, pero hace falta un inventario con soporte de metadatos. El creador recomienda ox_inventory (para ESX, QBOX y otros) o qb-inventory (para QBCore) e indica que lj-inventory, core_inventory y qs-inventory funcionan de serie. Otros inventarios con metadatos se pueden conectar con la guía de inventario personalizado del creador.
Para los dos inventarios recomendados, pon Config.Item.Unique y Config.Item.Require en true en la config de LB Phone y, si quieres, Config.Item.Inventory con el nombre del inventario. En ox_inventory añades o sustituyes el item phone en ox_inventory/data/items.lua y quitas el bloque de integración de NPWD para Item('phone' en ox_inventory/items/client.lua. En qb-inventory (la guía apunta a la versión 2.0.0) sustituyes la entrada phone en qb-core/shared/items.lua. Después reinicia el servidor.
Decide qué debe pasar cuando un teléfono se regala, se guarda o se confisca, y prueba tu integración en lugar de dar por hecho que cualquier inventario con metadatos funciona sin cambios.
Housing y frameworks personalizados
La app Home es compatible por defecto con qb-houses, loaf_housing y qs-housing; eliges el tuyo con Config.HouseScript. Otros scripts de housing necesitan una integración propia que, según el creador, requiere experiencia programando.
Si usas un framework personalizado, editas los archivos del framework standalone en el cliente y en el servidor. Para que aparezcan las apps Wallet, Home, Garage y Services, pon Config.CustomFramework en true o crea tus propios archivos de framework. Por tanto, una instalación standalone también requiere trabajo de integración para esas apps.
Videollamadas y servidores TURN
LB Phone usa WebRTC para las videollamadas, los directos de InstaPic y la grabación de la voz de los jugadores cercanos. Si las videollamadas o los directos no muestran a nadie, el creador dice que normalmente un firewall bloquea la conexión y que un servidor TURN suele solucionarlo. El teléfono es compatible de serie con el servidor Realtime TURN de Cloudflare mediante Config.DynamicWebRTC, y también puedes usar un servicio como Metered mediante Config.RTCConfig. Revisa además tu edición de GTA V: las notas de migración de Cfx.re marcan Mumble como obsoleto en Enhanced, así que una dependencia de voz no demuestra por sí sola que las llamadas funcionen allí.
Problemas habituales tras la instalación
- Falta la app Wallet, Garage o Services: el script no detectó tu framework, o no está bien configurado.
- Falta la app Home: tu script de housing no está configurado; por defecto la app Home solo funciona con unos pocos scripts.
- El teléfono no se abre: el creador propone una copia limpia de
lb-phone, luego ponerConfig.DisableOpenNUIenfalsepara encontrar un recurso en conflicto y, por último, activarConfig.Debug. - Errores al importar el SQL: usa HeidiSQL en lugar de phpMyAdmin y una MariaDB actualizada.
- "Unknown column x in field list": falta una columna que añadió una actualización; el creador publica las consultas para corregirlo en el canal #updates de su Discord.
- AirShare no funciona: activa OneSync Infinity y actualiza tus artifacts.
Para errores generales, empieza por la primera línea roja sobre el recurso en la consola del servidor. Un objeto de framework en nil suele significar que el framework arranca más tarde o que no es el correcto.
Actualizar LB Phone más adelante
De dónde sacas los archivos nuevos depende de dónde compraste el teléfono. En RPScripts, un archivo más nuevo aparece en las descargas de tu cuenta en cuanto está disponible. La guía del creador remite a los compradores de su propio paquete a Cfx.re.
Los pasos de actualización de la guía del creador:
- Haz una copia de la carpeta
lb-phone, por ejemplo en ZIP. - Haz una copia de la base de datos si las notas del parche indican cambios en ella. La guía usa "Export database as SQL" de HeidiSQL con las casillas "Create" marcadas, las casillas "Drop" sin marcar e "Insert ignore (do not update existing)" para los datos.
- Borra el recurso
lb-phoneantiguo. - Instala la última versión.
- Vuelve a aplicar tus cambios de config. Salvo que las notas del parche digan lo contrario, puedes copiar la carpeta config entera.
Si una actualización añade una columna y te saltaste las consultas de las notas del parche, verás el error "Unknown column" de arriba.
FAQ
¿Qué frameworks admite LB Phone?
ESX, QBCore, QBOX, ox_core, vRP 2.0 o standalone, con detección automática por defecto.
¿Es obligatorio ox_core?
No. ox_core es uno de los frameworks compatibles. La dependencia obligatoria es oxmysql.
¿Qué versión de MariaDB necesito?
MariaDB 10.11 o posterior, según la guía de instalación del creador.
¿De verdad tengo que borrar las tablas phone_?
La guía del creador indica borrar todas las tablas que empiezan por phone_ antes de ejecutar el archivo SQL. Haz antes una copia de seguridad y comprueba a qué recurso pertenece cada tabla, porque teléfonos antiguos como gcPhone usan el mismo prefijo.
¿Es obligatorio OneSync?
OneSync Infinity es opcional, pero algunas funciones como AirShare lo necesitan.
¿Puede cada teléfono tener su propio número?
Sí, con la función de teléfonos únicos y un inventario con soporte de metadatos.
¿Necesito loaf_bcrypt?
Es recomendable, no obligatorio. Saca el hash de contraseñas del hilo principal del servidor.
Para esta elección de teléfono, compara Scripts de teléfono: LB Phone v2 forma parte de la selección actual para varios frameworks, GKSPhone (ESX) es específicamente el paquete antiguo para ESX 1.1/1.2 (1.2 FIX 5), y CodeM Phone (mPhone 2.0) requiere revisar las dependencias del paquete. La documentación actual de GKSPHONE V2 describe un producto distinto del GKSPhone enlazado aquí. Ninguno demuestra una migración sin pérdida de los datos de tu teléfono. RPScripts vende estos paquetes.