Skip to main content

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_lib
  • oxmysql
  • cold_inventory
  • cold_garages
  • screencapture
  • pma-voice
  • OneSync
  • El framework seleccionado: qbx_core, qb-core o es_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
note

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.