Skip to main content

FAQ

El recurso no arranca y dice que falta una dependencia

Comprueba el orden en server.cfg:

ensure oxmysql
ensure ox_lib
ensure qbx_core # o qb-core / es_extended, si aplica
ensure cold_lib
ensure cold_inventory

Las dependencias obligatorias declaradas por el recurso son oxmysql, ox_lib y cold_lib.

¿Tengo que importar un archivo SQL?

No. cold_inventory crea automaticamente sus tablas MySQL al iniciar.

Comprueba que oxmysql este conectado y que el usuario de la base de datos tenga permisos para crear y modificar tablas.

Uso cold_inventory como reemplazo de ox_inventory. ¿Debo iniciar los dos?

No.

cold_inventory declara:

provide 'ox_inventory'

Si lo estas usando como sustituto, deja ox_inventory original detenido y arranca solo cold_inventory.

Un recurso dice que necesita ox_inventory

El provide 'ox_inventory' permite satisfacer esa dependencia para recursos que consumen contratos compatibles.

Si el recurso externo usa codigo interno, APIs no publicas o comportamiento muy especifico del inventario original, puede necesitar una adaptacion.

¿Como fuerzo mi framework?

En server.cfg:

setr cold_inventory:mode "qbox"

Tambien puedes usar:

setr cold_inventory:mode "qbcore"
setr cold_inventory:mode "esx"
setr cold_inventory:mode "solo"

Para autodeteccion:

setr cold_inventory:mode "auto"

TAB no abre el inventario

Comprueba:

  1. Que cold_inventory este iniciado sin errores.
  2. Que la NUI haya cargado correctamente.
  3. Que no exista otro recurso capturando/bloqueando la misma tecla.
  4. Los key bindings de FiveM, porque TAB se registra mediante RegisterKeyMapping.

Tambien puedes probar el comando:

/inv

Quiero cambiar /inv

En server.cfg:

setr cold_inventory:command "inventario"

Despues reinicia el recurso o el servidor.

/giveitem o /colditems no funciona

Los comandos usan ACE por defecto:

setr cold_inventory:give_command_ace "cold_inventory.give"
setr cold_inventory:list_command_ace "cold_inventory.give"

Da permiso al grupo adecuado:

add_ace group.admin cold_inventory.give allow

¿Como doy un item a otro jugador?

/giveitem [serverId] [item] [cantidad]

Ejemplo:

/giveitem 12 water 5

Para dartelo a ti mismo:

/giveitem water 5

Un item no aparece en el inventario

Comprueba que existe en:

data/items.lua

Revisa tambien:

  • Nombre exacto del item.
  • Errores Lua al cargar el catalogo.
  • Limites de peso y slots.
  • Que no estes intentando entregar una cantidad fuera de los limites configurados.

Un item aparece sin imagen

Coloca su icono en:

web/images/

Y revisa el campo image del item en data/items.lua.

El nombre y la extension deben coincidir con el archivo real.

Los items desaparecen despues de reiniciar

Comprueba:

setr cold_inventory:save_interval_ms 30000
setr cold_inventory:save_on_disconnect 1

Revisa tambien la consola por errores de oxmysql y confirma que las tablas cold_inventory_players / cold_inventory reciben datos.

El recurso vuelve a intentar guardar si una escritura falla, pero una base de datos desconectada impide persistir los cambios.

Los drops desaparecen tras reiniciar

Comprueba:

setr cold_inventory:persist_drops 1

Y verifica que exista y funcione la tabla:

cold_inventory_drops

No puedo abrir un drop aunque lo veo

El servidor valida distancia e instancia. Revisa:

setr cold_inventory:drop_interact_distance 2.2

Tambien comprueba que jugador y drop esten en el mismo routing bucket.

El maletero no se abre

Comprueba:

setr cold_inventory:vehicle_trunks 1

Y las distancias:

setr cold_inventory:vehicle_trunk_search_distance 6.0
setr cold_inventory:vehicle_trunk_interact_distance 1.85

La capacidad y posicion por modelo/marca/clase se encuentran en shared/settings.lua.

Algunos modelos pueden estar configurados con storage = 'none' o con maletero delantero.

El glovebox no se abre

Comprueba:

setr cold_inventory:vehicle_gloveboxes 1

El sistema intenta abrirlo cuando estas dentro del vehiculo o cerca de la zona delantera. Revisa tambien las distancias de glovebox configuradas.

Los cargadores o la municion de un arma no funcionan como esperaba

cold_inventory usa un sistema de cargadores persistentes. La municion suelta no se introduce directamente en el arma: primero llena un cargador compatible.

Ejemplo:

/giveitem WEAPON_PISTOL 1
/giveitem magazine_weapon_pistol 3
/giveitem ammo-9 100

Equipa el arma y usa R para intercambiar el cargador.

La configuracion de armas esta en:

data/weapons.lua

Quiero desactivar las animaciones de armas

setr cold_inventory:weapon_animations 0

Un alimento aparece caducado

La caducidad automatica se controla con:

setr cold_inventory:auto_food_expiry 1
setr cold_inventory:food_expire_minutes 4320

Tambien puedes configurar degrade directamente en la definicion del item.

Un item roto no se puede usar

Es el comportamiento esperado. Los objetos rotos permanecen en el inventario, pero el servidor bloquea su uso hasta repararlos.

Revisa la configuracion condition del item y los ajustes de reparacion.

No aparece la opcion de reparar en taller

Los talleres base estan en shared/settings.lua y la distancia se controla con:

setr cold_inventory:repair_distance 7.5

Otros recursos pueden añadir talleres mediante RegisterRepairWorkshop.

No funciona la oficina NPC de documentos

Comprueba en config.lua:

ColdInventoryConfig.DocumentShop.enabled = true

Revisa tambien:

  • Coordenadas del NPC.
  • Modelo del ped.
  • Que cold_lib este iniciado.
  • Distancias interactionDistance y serverDistance.
  • Que el tipo de documento exista en data/documents.lua.

No puedo comprar un duplicado de documento

Por defecto:

onlyWhenMissing = true
replacementOnly = true

Esto significa:

  • No puedes comprarlo si aun conservas una copia valida.
  • No puedes comprar un duplicado si ese tipo de documento nunca fue expedido al personaje.

/emitirdoc o /revocardoc no responde

Necesitas el ACE configurado en:

setr cold_inventory:document_ace "cold_inventory.documents"

Ejemplo:

add_ace group.admin cold_inventory.documents allow

Los comandos /coldinv... no funcionan

Necesitan por defecto:

add_ace group.admin cold_inventory.admin allow

Los comandos son:

/coldinvhealth
/coldinvinspect [serverId]
/coldinvfreeze [serverId] [on|off] [motivo]
/coldinvrepair [serverId]
/coldinvaudit [ownerKey]

Un inventario quedo congelado

Un admin autorizado puede ejecutar:

/coldinvfreeze [serverId] off

Si necesitas diagnosticar antes:

/coldinvinspect [serverId]
/coldinvhealth

El cuarto jugador no puede abrir el mismo stash

El limite global por defecto es:

setr cold_inventory:max_context_viewers 3

Puedes aumentarlo, aunque cada stash puede imponer un maxViewers inferior.

OpenInventory rechaza un stash desde otro recurso

OpenInventory valida permisos, distancia e instancia.

Si estas implementando una accion administrativa o interna de confianza existe:

exports.cold_inventory:ForceOpenInventory(...)
warning

No uses ForceOpenInventory para interacciones normales de jugadores: precisamente evita varias validaciones de acceso.

Un webhook de Discord no recibe mensajes

Comprueba que uses set, no setr:

set cold_inventory:webhooks_enabled 1
set cold_inventory:webhook "https://discord.com/api/webhooks/ID/TOKEN"

Si usas endpoints especializados, revisa tambien:

set cold_inventory:webhook_security "..."
set cold_inventory:webhook_admin "..."
set cold_inventory:webhook_transactions "..."

Si una URL especializada esta vacia, esa categoria utiliza el webhook general.

¿Por que no debo usar setr para el webhook?

Porque setr replica la convar a los clientes. Eso podria revelar la URL y el token del webhook.

Usa siempre:

set cold_inventory:webhook "..."

Me expulsa por una violacion de seguridad durante una integracion

Si activaste:

setr cold_inventory:security_drop_player 1

vuelve temporalmente a:

setr cold_inventory:security_drop_player 0

Corrige primero la integracion que esta enviando acciones invalidas o demasiado rapidas. No es recomendable desactivar globalmente las validaciones server-side.

¿Puedo usar stashes creados por otro script?

Si. Ejemplo:

exports.cold_inventory:RegisterStash(
'police_armory',
'POLICE ARMORY',
60,
350000,
false,
{ police = 0 },
vec3(441.2, -981.9, 30.7)
)

Despues puedes abrirlo con OpenInventory o mediante el evento/integracion de tu propio recurso.

¿Puedo crear inventarios temporales?

Si. Usa:

exports.cold_inventory:CreateTemporaryStash({...})

Puedes definir label, slots, peso, owner, items iniciales y duracion.

¿Puedo registrar acciones nuevas en el menu contextual?

Si. El recurso expone una API para registrar acciones contextuales desde otros recursos. La validacion final se ejecuta en servidor y la accion se elimina si se detiene el recurso que la registro.

Un recurso compatible con ox_inventory sigue fallando

La compatibilidad reproduce contratos publicos habituales, pero no garantiza compatibilidad con scripts que dependan de implementacion interna, archivos privados o comportamiento no publico del inventario original.

Revisa el error exacto y compara el export/evento que espera ese recurso con los exports disponibles en server/ox_compat.lua y client/ox_compat.lua.