Installation
1. Copiar el recurso
Mantén la carpeta con el nombre exacto:
cold_phone
Copia el recurso dentro de tu carpeta de recursos, por ejemplo [cold_store]/.
2. Dependencias
cold_phone necesita:
ox_liboxmysqlcold_inventorycold_garagesscreencapturepma-voice- OneSync
- El framework seleccionado:
qbx_core,qb-coreoes_extended
El recurso declara estas dependencias directamente en fxmanifest.lua, por lo que deben estar disponibles antes de iniciar cold_phone.
3. Orden recomendado en server.cfg
QBOX
ensure oxmysql
ensure ox_lib
ensure qbx_core
ensure cold_inventory
ensure cold_garages
ensure screencapture
ensure pma-voice
ensure cold_phone
QBCore
ensure oxmysql
ensure ox_lib
ensure qb-core
ensure cold_inventory
ensure cold_garages
ensure screencapture
ensure pma-voice
ensure cold_phone
ESX
ensure oxmysql
ensure ox_lib
ensure es_extended
ensure cold_inventory
ensure cold_garages
ensure screencapture
ensure pma-voice
ensure cold_phone
OneSync debe estar habilitado en el servidor. cold_phone lo declara como dependencia mediante /onesync.
4. Framework
Edita:
config/config.lua
Y selecciona uno de estos valores:
Config.Framework = 'QBX'
Config.Framework = 'QB'
Config.Framework = 'ESX'
El valor por defecto es:
Config.Framework = 'QBX'
5. Items de cold_inventory
La integracion espera estos items:
phone
sim
La version de cold_inventory incluida en Cold Store ya contiene ambos items y sus acciones base.
El item phone abre el telefono mediante el evento:
cold_inventory:client:phoneUsed
La SIM utiliza la integracion de servidor de cold_phone para iniciar el proceso de insercion/configuracion.
6. Base de datos
No es obligatorio importar SQL manualmente.
cold_phone crea automaticamente sus tablas al arrancar. El archivo:
sql/cold_phone.sql
se incluye por si prefieres preparar la base de datos manualmente.
El recurso crea 22 tablas para SIM, contactos, mensajes, llamadas, fotos, calendario, ajustes, notas, alarmas, AirDrop, banca, Instagram y Tinder.
Asegurate de que oxmysql este correctamente conectado y de que el usuario MySQL tenga permisos para crear y modificar tablas.
7. Seguridad de PIN y codigo del telefono
Los PIN de la SIM y el codigo del telefono se validan en el servidor.
Es recomendable definir un secreto estable en server.cfg:
set cold_phone_passcode_pepper "una-cadena-larga-unica-y-privada"
No compartas este valor publicamente.
Si no lo defines, el recurso utiliza la licencia del servidor como valor alternativo. Definir uno propio evita que los hashes cambien si cambia la licencia/configuracion del servidor.
8. Camara y videollamada
La camara utiliza:
screencapture
Las fotos se guardan localmente en formato WebP. No necesitas configurar un webhook ni un servicio externo de subida.
Para videollamadas, el recurso reutiliza capturas reducidas y eventos latentes para reducir el impacto en red.
9. Llamadas de voz
Las llamadas utilizan pma-voice.
Asegurate de que el sistema de llamadas de pma-voice este habilitado. cold_phone comprueba tambien el convar:
voice_enableCalls
10. Primera prueba
Arranca el recurso y revisa la consola:
ensure cold_phone
Puedes abrir el telefono con:
M
o mediante:
/coldphone
Si tienes:
Config.RequirePhoneItem = true
el jugador debe llevar el item configurado en Config.PhoneItem.
Para probar una SIM puedes entregar el item sim desde cold_inventory.
11. Interfaz web
El build de produccion ya viene incluido en:
html/
No necesitas compilar la interfaz para usar el recurso.
Si quieres modificar el frontend, el codigo fuente esta en web/:
cd web
npm ci
npm run lint
npm run build
El resultado debe terminar en la carpeta html/ usada por la NUI.