Antes de empezar#
Antes de instalar Inventory (qs-inventory), asegúrate de que tu servidor de FiveM cumple los requisitos siguientes. Cuatro son obligatorios; todo lo demás es opcional y se detecta solo.
Requisito | Estado | Notas |
|---|---|---|
Artifact del servidor de FiveM | Obligatorio | Build 4752 o superior. |
| Obligatorio | Acceso a la base de datos. Debe iniciarse antes que el inventario. |
| Obligatorio | Callbacks, notificaciones, barras de progreso y funciones auxiliares compartidas. |
Framework | Obligatorio |
|
OneSync | Recomendado | Necesario para los ítems que se pueden patear en el suelo. Con él, el servidor también comprueba la distancia cuando se cachea a un jugador y en los puntos de reparación de armas. |
Target | Opcional |
|
Apariencia | Opcional |
|
qs-interface · qs-textui | Opcional | Las barras de progreso, los avisos de texto 3D y el HUD los usan cuando están en marcha; si no, ox_lib se encarga. |
Todo lo específico del framework o de terceros está detrás de un pequeño archivo puente editable, y el inventario elige el correcto mirando lo que ya está en marcha:
Capa | Detección |
|---|---|
Framework |
|
Apariencia |
|
Target |
|
Interfaz |
|
Configuración del framework#
Inventory sustituye las funciones de inventario de tu framework. La vía más rápida y segura es usar las versiones preeditadas que mantiene Quasar:
github.comes_extended 1.16.3 for qs-inventoryESX 1.16.3 with the qs-inventory changes applied.github.comqb-core 1.3.0 for qs-inventoryQBCore 1.3.0 with the qs-inventory changes applied.github.comqbx_core 1.24.0 for qs-inventoryQbox core 1.24.0 with the qs-inventory changes applied.es_extended debe usar qs-inventory como inventario. En es_extended/shared/config/main.lua:
Config.CustomInventory = 'qs'Eso activa el puente de qs-inventory de es_extended, de modo que las funciones de inventario del jugador y los ítems usables pasan por qs-inventory. El es_extended preeditado ya lo tiene configurado.
Cuando un jugador carga, el inventario le da al jugador de QBCore sus propios AddItem, RemoveItem, GetItemBySlot, GetItemByName, GetItemsByName, ClearInventory y SetInventory, y responde él mismo a las llamadas a exports['qb-inventory']. Los ítems se leen de qb-core/shared/items.lua.
qbx_core se detecta como Qbox. Los ítems y las armas se leen de qs-inventory/shared/items.lua y qs-inventory/shared/weapons.lua, y el efectivo es el ítem money.
Las versiones anteriores del framework siguen en la organización de GitHub quasar-store-organizations, pero no admiten ítems creados en el juego.
Descargar Inventory#
Tras comprar Inventory, el recurso se vincula automáticamente a tu cuenta de CFX Portal.
Inicia sesión en CFX Portal con la misma cuenta que usaste al finalizar la compra, abre Granted Assets y descarga Inventory.
Tras extraer la descarga, deberías tener la siguiente carpeta:
[inventory]/
├── qs-inventory/ -- the inventory
│ ├── config/config.lua -- framework and appearance detection only
│ ├── config/storage.lua -- container items (also editable in game)
│ ├── client/custom/ -- bridges to frameworks, clothing, targets (editable)
│ ├── server/custom/ -- bridges, admin commands, Discord webhooks (editable)
│ ├── shared/items.lua -- item list (ESX and Qbox)
│ ├── shared/weapons.lua -- weapon list (ESX and Qbox)
│ ├── shared/data/ -- factory defaults of the in-game settings
│ ├── sql/ -- esx.sql and qb.sql
│ ├── locales/ -- 41 languages
│ └── web/ -- the interface and item images, already built
├── qs-shops/ -- classic shops, job stashes and delivery runs (optional)
└── [dlc]/ -- armor, backpacks, licenses, weapon draw, weapons on backLa carpeta debe llamarse
qs-inventory. Cada export se llama comoexports['qs-inventory'], y una copia renombrada detiene el servidor con un error.
Instalar el recurso#
Mueve las carpetas al directorio resources de tu servidor. Pueden estar en cualquier lugar dentro de él, incluida una carpeta de categoría:
resources/
└── [qs]/
└── [inventory]/
├── qs-inventory/
├── qs-shops/
└── [dlc]/Una vez copiadas, abre tu server.cfg y asegúrate de que cada dependencia — y todo lo que deba detectar — se inicia antes que el inventario:
ensure oxmysql
ensure ox_lib
# Framework (one of them)
ensure es_extended
# ensure qb-core
# ensure qbx_core
# Appearance and target, if you use them
ensure illenium-appearance
ensure ox_target
# Optional Quasar interface
# ensure qs-interface
# ensure qs-textui
ensure qs-inventory
# Optional, after the inventory
ensure qs-shops
ensure qs-armor
ensure qs-backpacks
ensure qs-licenses
ensure qs-weapondraw
ensure qs-weaponsonbackEl orden de carga importa. El framework, la apariencia y el target se detectan una sola vez, cuando se inicia el inventario, así que nada que se inicie después se encuentra; y sin un framework el inventario no puede cargar en absoluto.
La base de datos#
En una instalación nueva, importa el archivo SQL que corresponda a tu framework desde qs-inventory/sql/ con HeidiSQL, phpMyAdmin o el panel de tu hosting:
Importa sql/esx.sql. Además de las tablas del inventario, restablece la columna inventory de todas las filas de users a [] y añade una columna metadata a users. qs-inventory no puede leer el formato de inventario antiguo de ESX; para conservarlo, usa el importador (consulta Cambiar a qs-inventory).
Importa sql/qb.sql. Crea las tablas del inventario y no toca players: los inventarios de los jugadores ya están en players.inventory.
Tabla | Contiene |
|---|---|
| Cada stash, por id de stash. |
| Maleteros y guanteras, por matrícula. |
| La ropa que lleva cada jugador a través de las ranuras de ropa. |
| Datos por jugador que otros scripts guardan con el export |
| Cada ajuste cambiado en /inventoryconfig. |
| Todo lo creado en /inventorycreator: stashes, tiendas, puntos de venta, bancos de crafteo, ítems y armas. |
| Historial de ítems y alertas antiduplicación. Se crea automáticamente. |
| Inventarios de jugadores guardados antes de que el importador los reescribiera. Se crea en la primera importación. |
| Peso extra de carga por personaje, desde /inventoryextraweight y sus exports. Se crea automáticamente. |
Las tablas de los dos paneles del juego (
qs_inventory_settings,qs_inventory_creator) las crea el propio recurso si faltan, y nunca se eliminan. Evita XAMPP y entornos locales similares para bases de datos de producción; son una fuente habitual de errores de conexión.
Ítems por framework#
Los ítems son tablas Lua, no filas de la base de datos. De dónde los lee el inventario depende del framework:
Framework | Ítems | Armas |
|---|---|---|
ESX |
|
|
QBCore |
|
|
Qbox |
|
|
Los ítems y armas creados en /inventorycreator se añaden a estas listas en todos los frameworks, sin reiniciar; en QBCore también se envían a qb-core. Uso cubre ambas formas de añadir ítems.
En QBCore, copia los ítems que vienen con el inventario — piezas de ropa, accesorios, tintes, munición, mochilas — en qb-core/shared/items.lua. Quasar mantiene un items.lua para QBCore actualizado. El efectivo es el ítem cash en QBCore y el ítem money en ESX y Qbox, así que ese ítem también debe existir.
Los pesos están en gramos en todas partes: un ítem con weight = 500 pesa medio kilo. Las imágenes de los ítems son archivos PNG en qs-inventory/web/dist/images/, con el nombre del campo image del ítem; también sirve un enlace https:// completo.
Obtener acceso de administrador#
Los dos paneles del juego — /inventoryconfig para los ajustes y /inventorycreator para stashes, tiendas, crafteo, ítems, armas, dar ítems, estadísticas y el importador — están protegidos por un permiso. Cualquiera de estas vías da acceso:
La vía habitual. Añade estas líneas a server.cfg:
add_ace group.admin command.inventoryconfig allow
add_ace group.admin command.inventorycreator allowLos nombres de los ace, y los nombres de ambos comandos, se pueden cambiar en /inventoryconfig → Access & commands.
Los administradores del framework siempre entran: los grupos admin y superadmin en ESX, y los permisos god y admin en QBCore y Qbox.
Access & commands → Everyone is a creator admin abre el creador a todos los jugadores, incluido dar ítems y ejecutar el importador. Úsalo solo en un servidor de pruebas.
¿No sabes por qué se rechaza a alguien? La consola del servidor muestra la línea exacta que hay que añadir:
[qs-inventory:admin] John (3) tried to open the config panel without ace "command.inventoryconfig". Grant it with: add_ace <group> command.inventoryconfig allowConfigurar el recurso#
Casi nada se configura en archivos. Los pesos y las ranuras, las teclas, los vehículos, las armas, la ropa, los robos, el estilo predeterminado, las rarezas, las máquinas expendedoras, los contenedores de basura y los comandos se editan en el juego con /inventoryconfig, y se guardan en la base de datos, así que actualizar el recurso nunca los borra. Los archivos que aún puedes editar:
Archivo | Contenido |
|---|---|
| Detección del framework y de la apariencia. Tócalo solo si has renombrado tu core o tu recurso de apariencia. |
| Ítems contenedor, para servidores que prefieren archivos. Settings → Item rules → Containers edita la misma lista en el juego, y lo que se guarda allí sustituye a este archivo. |
| Las listas de ítems y armas en ESX y Qbox. |
| URL de webhooks de Discord. |
| Puentes a frameworks, targets, ropa, notificaciones y otros scripts, además de los comandos de administración. |
| Las 41 traducciones. |
| Los valores de fábrica a los que vuelve un restablecimiento en /inventoryconfig. Los valores guardados en el panel siempre prevalecen. |
El idioma es General → Language en /inventoryconfig. Hasta que se cambie allí, sigue el convar compartido por todos los recursos de Quasar:
setr qs:locale "es"Se incluyen 41 idiomas: ar, bg, bn, ca, cs, da, de, el, en, es, et, fa, fi, fr, he, hi, hr, hu, id, it, ja, ko, lt, lv, ms, nl, no, pl, pt, ro, ru, sk, sl, sv, sw, th, tr, uk, ur, vi y zh. Un texto que falte en una traducción se muestra en inglés.
Los ajustes marcados con Restart en el panel — el idioma, las teclas, el target, el prefijo de eventos y algunos más — se leen cuando se inicia el inventario. Guárdalos y reinicia el inventario una vez.
Verificar la instalación#
Tras completar la instalación, reinicia tu servidor y lee la consola. En el primer arranque deberías ver líneas como estas:
[qs-inventory:admin] added 4 example points to the creator (crafting benches and sell points)
[qs-inventory:admin] loaded 4 creator records
[qs-inventory:admin] loaded 0 saved settings, 133 fields in total
[UPDATER] Started | local v5.0.3 | remote v5.0.3 | status LATESTLa línea [UPDATER] compara tu versión con la más reciente. Cuando hay una actualización, también muestra su tipo, su urgencia y qué ha cambiado, con un enlace al registro de cambios completo.
Una advertencia Missing webhooks es normal hasta que completes server/custom/webhook/webhook.lua. Luego entra en tu servidor y recorre el primer ciclo:
Abre el inventario
Pulsa
TAB. Tus ítems están a la izquierda y el suelo a la derecha, con tu salud, armadura, hambre, sed y dinero al lado.Date un ítem
/inventorycreator→ Give: selecciónate a ti mismo, un ítem y una cantidad. O escribe/giveitem <id> water_bottle 5.Cambia un ajuste
/inventoryconfig→ Interface → Darken the game behind, y luego Save. Vuelve a abrir el inventario: el cambio ya se aplica a todos. Uso cubre todo lo demás.
A partir de aquí nada necesita reiniciar, salvo los pocos ajustes marcados con Restart. Cada stash, tienda, banco, ítem y arma creados en el creador se aplica a todos los jugadores en el momento en que se guarda.



