Cómo funcionan las integraciones#
Advanced Inventory detecta lo que ya está en ejecución al arrancar y se adapta a ello. Todo lo específico de un framework o de terceros vive en pequeños archivos puente abiertos en client/custom/ y server/custom/, así que nada más en el recurso necesita saber qué scripts usas.
Capa | Compatible | Sin él |
|---|---|---|
Framework |
| Obligatorio. No hay modo standalone. |
Base de datos |
| Obligatorio. |
Apariencia |
| Los ítems de ropa siguen funcionando, pero los atuendos cambiados mediante las ranuras de ropa no se guardan en un script de apariencia. |
Target |
| Los puntos muestran un marcador y un aviso [E]; las máquinas expendedoras y los contenedores se abren con la tecla del inventario. |
Notificaciones y barras de progreso |
| Notificaciones y barras de progreso de ox_lib. |
Avisos 3D |
| El propio texto 3D del juego. |
Teléfono |
| Las ranuras rápidas y la rueda no se pausan mientras hay un teléfono abierto. |
Voz |
| Sin pestaña Voice en los ajustes del menú de pausa. |
Ambulancia (ESX) |
| La muerte se lee del estado y la salud del jugador. |
La detección solo ve los recursos que ya están iniciados. Mantén el framework, el script de apariencia y el target por encima de
ensure qs-inventoryenserver.cfg. Si renombraste tu recurso core, añade su nuevo nombre a la lista al principio deconfig/config.lua.
qs-core inicia ESX y QBCore a la vez, así que hay más de un framework en ejecución. El inventario los comprueba entonces en un orden fijo — qbx_core, después qb-core, después es_extended — y toma el primero iniciado, igual en cada reinicio. Los inventarios guardados del inventario básico de qs-core, o de ESX sin un recurso de inventario, se cargan solos la primera vez que entra cada jugador.
Scripts escritos para ox_inventory o qb-inventory#
La mayoría de los recursos siguen funcionando sin una sola edición: Advanced Inventory responde a los exports que ya llaman en los otros inventarios, sustituye los métodos de ítems del jugador de QBCore y lanza los eventos de ítems que escuchan los scripts de ESX y qb-inventory.
Scripts que llaman | Respondido |
|---|---|
|
|
|
|
|
|
|
|
Métodos del jugador de QBCore |
|
Eventos de ítems |
|
En QBCore, qb-inventory se detiene solo si se inicia (Stop qb-inventory automatically, activado por defecto) y qb-weapons siempre se detiene — el inventario hace su trabajo. Para código nuevo, y para ítems que llevan metadatos, llama a exports['qs-inventory'] directamente; Comandos y exports lo enumera todo.
Ropa, target e interfaz#
Scripts de apariencia#
Cuando un jugador cierra el inventario tras cambiarse de ropa mediante las ranuras de ropa, el atuendo se guarda a través de su script de apariencia, para que sobreviva a una reconexión:
Script | Cómo se guarda el atuendo |
|---|---|
| A través del propio guardado de apariencia de illenium. |
| Su guardado de la skin actual. |
| A través de skinchanger y |
| Directamente en su tabla |
Lo contrario funciona con cualquiera de ellos: la ropa cambiada en una tienda de ropa o un menú de apariencia la detectan las ranuras de ropa en uno o dos segundos. Otro script de ropa puede reaccionar cuando se quita una prenda mediante los eventos de cliente clothes:takeOff<Piece> que lanzan los botones de mano de las ranuras.
Target#
Activa Use target (ox_target / qb-target) en /inventoryconfig → General y reinicia el inventario. Los stashes, tiendas, bancos y puntos de venta se convierten en box zones, y las máquinas expendedoras y los contenedores en opciones de modelo, cada uno con su propio icono. A ox_target se accede mediante su compatibilidad con qtarget; Show target zones dibuja las zonas para que puedas comprobar su tamaño.
Notificaciones, barras de progreso y avisos#
Con qs-interface en ejecución, las notificaciones, las barras de progreso y el toggle del HUD pasan por él; si no, se encarga ox_lib. Con qs-textui, los avisos [E] de los puntos los dibuja él en lugar del texto 3D del juego. Ambos están conectados en client/custom/framework/, donde se puede incorporar cualquier otro recurso de notificaciones o de progreso.
Otros recursos#
Recurso | Qué ocurre |
|---|---|
| Las ranuras rápidas y la rueda se pausan mientras hay un teléfono abierto, el teléfono gestiona los teléfonos retirados, y la tarjeta de un teléfono muestra su número. |
| Sus ítems de llave, ganzúa, matrícula y localizador vienen en la lista de ítems; la tarjeta de una llave muestra su matrícula y modelo. |
| Los stashes de trabajo, cajas fuertes y armerías se abren como stashes del inventario, y su registro de jugadores abre el registro del inventario. |
| Se encarga de lanzar cuando Throw items with jonska-itemthrowing está activado en Interaction. |
| Se encarga de colocar cuando Place items with kq_placeable_items está activado en Interaction. El panel muestra si el recurso está instalado. |
| El K9 puede olfatear inventarios de jugadores, maleteros y guanteras mediante dos exports que solo aparecen mientras está en ejecución. |
| Los DNI y licencias que da un administrador reciben los metadatos de um-idcard. |
| Añade el volumen de radio, el volumen de llamada y los clics de micrófono a los ajustes del menú de pausa. |
| Las tiendas configuradas para pagar con Society toman el dinero de la cuenta del trabajo del comprador en cualquiera de estos que esté en ejecución. Las funciones están en |
Logs de Discord#
La actividad de ítems se puede publicar en Discord como embeds, un webhook por categoría, en server/custom/webhook/webhook.lua. Una categoría vacía simplemente no se envía, y la consola muestra las vacías al arrancar como Missing webhooks.
Categoría | Qué se envía |
|---|---|
| Entregas desde el creador y los comandos de entrega, importaciones y alertas anti-dupe. |
| Compras en tiendas, ventas en puntos de venta e ítems fabricados. |
| Ítems dados entre jugadores e intercambios, e ítems quitados a otro jugador. |
| Ítems movidos dentro y fuera de cada tipo de almacenamiento. |
| Bolsas creadas en el suelo e ítems movidos entre inventarios. |
| Peticiones que el servidor rechazó por manipuladas, como una cantidad negativa. |
-- server/custom/webhook/webhook.lua
Webhooks = {
admin = 'https://discord.com/api/webhooks/...',
bought = 'https://discord.com/api/webhooks/...',
robbery = 'https://discord.com/api/webhooks/...',
exploit = '', -- empty: not sent
}
Token = 'YOUR_DISCORD_BOT_TOKEN' -- only for avatars in the pause menuEscribe testwebhooks en la consola del servidor para publicar una prueba en cada categoría y ver cuáles aceptó Discord. Los logs se ponen en cola por webhook y respetan los límites de frecuencia de Discord, así que un servidor con mucha actividad nunca se bloquea por ellos.
Opciones de seguridad#
/inventoryconfig → Security contiene comprobaciones del lado del servidor contra clientes modificados. Vienen en la posición más compatible — comprobaciones estrictas desactivadas, eventos de cliente antiguos permitidos — para que los scripts escritos para versiones anteriores sigan funcionando. Cada una se aplica en cuanto se guarda; actívalas de una en una y comprueba que tus otros scripts siguen comportándose bien.
Opción | Por defecto | Qué cierra |
|---|---|---|
Only the inventory the server opened | Off | Los ítems solo pueden moverse al inventario que el servidor abrió para ese jugador. Los scripts que abren inventarios con el evento de cliente necesitan que esté desactivado. |
Trunks and gloveboxes by distance | Off | Un maletero solo se abre junto a su vehículo, una guantera solo desde dentro. Requiere OneSync. |
Searching players by distance | Off | Registrar o robar requiere que el otro jugador esté a menos de 4 m. Los administradores están exentos. |
Ground bags by distance · Garbage bins by distance | Off | Las bolsas y los contenedores solo se pueden usar a menos de 6 m. |
Sell lists from the server · Crafting tables from the server | Off | Los puntos de venta y los bancos usan los precios y recetas del servidor, nunca los enviados por el cliente. |
Block client-only inventory types | Off | El crafteo de accesorios (y la traphouse fuera de QBCore) no se puede abrir desde el cliente. |
Strict ammo | Off | La munición solo aumenta según los ítems de munición que el servidor haya retirado realmente. |
Weapon quality only goes down | Off | Un cliente puede bajar la calidad de un arma pero nunca subirla. |
Custom crafting from the client | On | Permite a los scripts abrir un menú de crafteo con recetas enviadas por el cliente. |
Container saves from the client | On | Permite los eventos antiguos |
Read any stash | On |
|
XP from the client · Quest progress from the client | On |
|
Hay una más en General (avanzado): Server-only shops rechaza las tiendas cuyos ítems y precios vienen del juego de un jugador. Las tiendas del creador siguen funcionando; los demás scripts abren entonces tiendas con los exports de servidor CreateShop y OpenShop.
Los complementos del paquete#
La carpeta [dlc] contiene cuatro recursos opcionales que se basan en el inventario. Cada uno es independiente: haz ensure solo de los que quieras, después de qs-inventory, y mantén los nombres de sus carpetas.
qs-armor — chalecos antibalas
Usar un ítem armor o heavyarmor reproduce una animación y una barra de 5 segundos, da 50 o 100 de blindaje y pone el chaleco al personaje. /resetarmor se lo quita. El blindaje se guarda y vuelve tras reconectar o reaparecer. ESX y QBCore (Qbox incluido).
Todo está en shared/config.lua: las duraciones de la barra, el blindaje que da cada ítem, los drawables del chaleco para hombres y mujeres, y el nombre del comando. Idiomas: en, es, de, it.
qs-licenses — mostradores de DNI y licencias
Tres mostradores en el mapa: un DNI ($150), una licencia de armas ($10) y una licencia de conducir ($10). Ve al marcador, pulsa E, confirma y espera a la barra; la tarjeta se paga desde el banco y lleva el nombre, la fecha de nacimiento y el género del jugador. Al usarla se muestra a los jugadores a menos de 2.5 m, con la tarjeta en la mano.
Los mostradores son una lista en shared/config.lua — ítem, etiqueta, precio, tiempo, posición, blip y un trabajo opcional. Otros scripts pueden entregar una licencia directamente con el evento de cliente qs-licenses:client:Target. Idiomas: en, es.
qs-weapondraw — animaciones de desenfundar y enfundar
Desenfundar o guardar un arma desde el inventario reproduce una animación adecuada: un desenfundado rápido cuando el personaje lleva ropa con funda, y el desenfundado intimidatorio más lento en caso contrario. Las pistolas enfundadas cambian la funda a su aspecto lleno o vacío, y disparar está bloqueado hasta que termina la animación.
config.lua enumera las armas que anima, las armas de funda y la ropa con funda; añade ahí tus armas add-on. fastDrawWhenOnBody da el desenfundado rápido a las armas que qs-weaponsonback muestra en el cuerpo.
qs-weaponsonback — armas en el cuerpo
Las armas largas que un jugador lleva pero no empuña se muestran en su espalda o su cuerpo — para todos — con sus accesorios y tintes. config.lua define el hueso, el desplazamiento y la rotación de cada arma, para que las armas add-on se puedan colocar con precisión. Exporta IsWeaponShownOnBody(weaponHash) para otros scripts. ESX y QBCore.
Archivos abiertos para desarrolladores#
Dar soporte a otro framework, add-on, sistema de notificaciones o script de ropa consiste en editar el puente correspondiente — nada más en el inventario se refiere a ellos por su nombre.
Carpeta | Qué hay |
|---|---|
| Datos del jugador, dinero, comprobaciones de administrador, notificaciones, barras de progreso, avisos, hambre y sed, comprobaciones de muerte — por framework. |
| Cómo se guarda el atuendo, por script de apariencia. |
| Zonas de target para puntos de venta, bancos, máquinas expendedoras y contenedores. |
| Abrir inventarios, robos, usar armas, vender, craftear, los ítems usables integrados (DNI, munición, accesorios), los comandos de administración y las integraciones anteriores. |
| Los exports de compatibilidad con ox_inventory y qb-inventory. |
Idiomas#
Se incluyen 41 traducciones completas en locales/, paneles de administración incluidos. Elige una con setr qs:locale "<code>" en server.cfg — compartido por todos los recursos de Quasar — o en /inventoryconfig → General → Language. Para cambiar un texto, edita el archivo .json de ese idioma y reinicia el inventario.



