Quasar Framework (qs-core) incluye un inventario FiveM completo listo para usar: un inventario por slots y peso con slots rápidos y una rueda de ítems, maleteros de vehículos, guanteras y alijos, tiendas, hambre y sed, y todas las armas de GTA como ítems del inventario. Es el mismo inventario para todos los scripts de tu servidor: un script de ESX que llama a xPlayer.addInventoryItem, un script de QBCore que llama a Player.Functions.AddItem y un script de Quasar Framework que llama a exports['qs-core']:AddItem ponen el ítem en el mismo slot del mismo jugador.
Esta página cubre cuatro recursos de la carpeta [core], todos instalados por la receta de txAdmin:
Recurso | Qué hace |
|---|---|
| El inventario en sí: slots, peso, stacks, la rueda de ítems, los slots rápidos, maleteros, guanteras y alijos. |
| Convierte las 105 armas de GTA y su munición en ítems y quita las armas y el dinero gratis de GTA. |
| Tiendas 24/7, LTD, licorerías, ferreterías, Ammunation y tiendas de trabajos. |
| Hambre y sed, comida y bebidas. |
El catálogo de ítems (la etiqueta, el peso y el comportamiento de cada ítem) vive en qs-core, así que los scripts de ESX y QBCore leen los mismos ítems.
El inventario#
Abrir y cerrar#
Pulsa F1 para abrir tu inventario y F1 otra vez (o Esc) para cerrarlo. El inventario no te congela: puedes seguir caminando, corriendo, saltando y conduciendo mientras está abierto, lo que hace que saquear un maletero u ordenar ítems en movimiento se sienta natural.
Acción | Tecla predeterminada | Notas |
|---|---|---|
Abrir / cerrar el inventario |
| Asignación de tecla Toggle inventory, comando |
Cerrar |
| Abrir el menú de pausa también lo cierra. |
Usar los slots 1–5 |
| Asignaciones de tecla Use inventory slot 1…5. |
Rueda de ítems |
| Asignación de tecla Item wheel. Ver más abajo. |
Los jugadores pueden reasignar todas estas teclas en Settings → Key Bindings → FiveM. Como dueño del servidor, tú defines las predeterminadas en qs-coreinventory/shared/config.lua (Config.OpenKey, Config.RadialKey); los jugadores que ya guardaron su propia asignación la conservan.
El encabezado del inventario muestra cuántos slots están en uso (por ejemplo 12/30 slots) y el peso que llevas frente al límite (por ejemplo 8.4 / 50 kg).
Slots, peso y stacks#
Cada personaje tiene 30 slots y puede cargar 50 kg. Los pesos se guardan en gramos.
Opción | Predeterminado | Qué hace |
|---|---|---|
|
| Slots del inventario del jugador. |
|
| Columnas de la cuadrícula del jugador. |
|
| Límite de carga en gramos (50 kg). |
|
| Cuántas unidades de un ítem caben en un slot, salvo que el ítem defina su propio |
Cuántas unidades de un ítem caben en un slot:
Las armas y los ítems marcados como
uniqueocupan un slot cada uno.Los arrojables (granadas, molotovs…) se apilan hasta 10.
Un ítem con su propio valor
stacklo usa.Todo lo demás se apila hasta
Config.DefaultStack(64).Dos copias de un ítem solo se apilan si sus metadatos (
info) son idénticos: un script que da un número de serie o un valor de calidad a un ítem mantiene esas copias en slots separados.
Si algo te haría superar el límite de peso, recibes Too heavy to carry … y no se agrega nada; si no queda espacio en los slots, recibes Inventory full.
Mover, dividir, dar, tirar y usar#
Acción | Cómo | Qué pasa |
|---|---|---|
Mover | Arrastra un ítem con el botón izquierdo del mouse a otro slot. | Lo mueve a un slot vacío, lo apila sobre el mismo ítem o intercambia los dos ítems. Funciona entre tu inventario y un maletero, guantera o alijo abierto. |
Usar | Haz doble clic en un ítem utilizable, o clic derecho → Use. | Come, bebe, equipa un arma, carga munición… lo que sea que haga el ítem. |
Dividir | Haz clic derecho en un stack, elige la cantidad y luego Split. | Mueve esa cantidad al primer slot vacío del mismo contenedor. Puedes separar como máximo una unidad menos que el stack completo. |
Dar | Clic derecho, elige la cantidad y luego Give. | Se lo da al jugador más cercano a menos de 3.5 m. Debe poder cargarlo; si no, ves They can't carry that y conservas el ítem. Ambos jugadores reciben una notificación. |
Tirar | Clic derecho, elige la cantidad y luego Drop. | Destruye esa cantidad. No hay ítems en el suelo. |
Tomar | Haz doble clic en un ítem de un maletero, guantera o alijo, o clic derecho → Take. | Lo mueve a tu inventario (el stack completo o la cantidad que elegiste). |
El menú del clic derecho tiene un selector de cantidad (−, +, escribe un número o haz clic en el total para tomarlo todo) siempre que el stack tenga más de un ítem.
Mover ítems a un maletero, guantera o alijo comprueba su límite de peso. Cuando solo cabe una parte de un stack, se mueve la parte que cabe y el resto se queda contigo.
Etiquetas de ítems y la caja de ítems#
Cada slot muestra su número, la imagen del ítem, la cantidad y la etiqueta del ítem (el nombre legible, como Water Bottle para water). Las etiquetas vienen del catálogo de ítems, no de los archivos de idioma: para renombrar un ítem, cambia su label (consulta Agregar un ítem nuevo más abajo).
Cada vez que se agrega o se quita un ítem de tu inventario (una compra, un regalo, comer, un script que te da una recompensa), una breve notificación de la caja de ítems muestra el ítem, la cantidad y si se agregó o se quitó.
Slots rápidos 1–5#
Las teclas 1 a 5 usan lo que haya en los slots 1 a 5 de tu inventario, sin abrirlo. Pon ahí tus armas, comida y vendas y podrás sacar una pistola o comerte un sándwich con una sola tecla.
El cambio de slot de arma propio de GTA en esas teclas se bloquea un momento cada vez que las pulsas, así que el juego nunca cambia de arma a tus espaldas.
La rueda de ítems (TAB)#
La rueda de ítems reemplaza la rueda de armas de GTA. Mantener TAB nunca abre la rueda de armas nativa en un servidor con Quasar Framework; en su lugar abre una rueda construida a partir de tu inventario.
Mantén
TAB. La rueda se abre alrededor del centro de la pantalla con tus primeros cinco slots, numerados del 1 al 5.Apunta con el mouse hacia un ítem. El nombre y la cantidad del ítem resaltado aparecen en el centro (el centro en sí es una zona muerta, así que no se selecciona nada hasta que sales de ella).
Suelta
TABpara usar el ítem resaltado: sacar esa arma, comerte esa hamburguesa.O haz clic en un segmento para usarlo de inmediato. Esc cierra la rueda sin usar nada.
Los slots vacíos muestran Empty y los ítems que no se pueden usar muestran Not usable; seleccionarlos no hace nada. Mientras la rueda está abierta no puedes apuntar, disparar ni cambiar de arma, y se cierra sola un segundo después de soltar TAB si no se eligió nada. No se abre mientras el inventario está abierto, mientras el menú de pausa u otro menú está en pantalla, ni mientras estás muerto.
Opción | Predeterminado | Qué hace |
|---|---|---|
|
| Tecla predeterminada de la asignación de tecla Item wheel. |
|
| Cuántos slots del inventario (desde el slot 1) muestra la rueda. Las teclas de slots rápidos siempre son |
Muerto u ocupado#
Cuando estás derribado, el inventario y la rueda de ítems se cierran y no se pueden abrir, y los slots rápidos no hacen nada hasta que te reaniman. No se pueden usar ítems mientras corre una barra de progreso (por ejemplo, mientras comes), y el servidor acepta como máximo 10 usos cada 3 segundos por jugador.
Ítems iniciales#
Los personajes nuevos reciben Config.StartingItems la primera vez que cargan:
Config.StartingItems = {
{ name = 'water', count = 2 },
{ name = 'bread', count = 2 },
{ name = 'phone', count = 1 },
{ name = 'id_card', count = 1 },
}Contenedores: maleteros, guanteras y alijos#
Los contenedores se abren con la tecla del inventario, lado a lado con tu propio inventario. Cuando pulsas F1, Quasar Framework elige el contenedor por ti:
Sentado en un vehículo → su guantera.
A pie, de pie en la parte trasera de un vehículo → su maletero.
A pie, dentro de una zona de alijo → ese alijo.
En otro caso → solo tu inventario.
Contenedor | Slots | Peso máximo | Se abre cuando | Se cierra cuando |
|---|---|---|---|---|
Maletero del vehículo |
| 100 kg | A pie, en la parte trasera de un vehículo sin seguro del que tienes llaves. | Cierras el inventario o te alejas más de 5 m. |
Guantera |
| 15 kg | Sentado en un vehículo del que tienes llaves. | Cierras el inventario o sales del vehículo. |
Alijo | Por alijo (predeterminado | Por alijo (predeterminado 100 kg) | Dentro de la zona del alijo, o abierto por un script. | Cierras el inventario o sales de la zona. |
Maletero del vehículo#
Para abrir un maletero:
Debes estar a pie — desde dentro de un vehículo,
F1abre la guantera.Colócate en la parte trasera del vehículo: a menos de
Config.TrunkReach(1.8 m) de un punto justo detrás de su parachoques trasero.El vehículo debe estar sin seguro y debes tener sus llaves (de
qs-corevehiclekeys). Si no, ves The vehicle is locked or you have no keys.
Cuando se abre el maletero, la tapa del maletero se abre en el auto. Cierra el inventario y la tapa se cierra. Aléjate más de Config.TrunkCloseDistance (5 m), o deja que el auto se vaya, y el maletero se cierra con Trunk closed — too far from the vehicle.
Guantera#
Abre tu inventario sentado en cualquier asiento de un vehículo del que tienes llaves y la guantera se abre a su lado. Sal del vehículo y se cierra con Glovebox closed — you left the vehicle.
Opción | Predeterminado | Qué hace |
|---|---|---|
|
| Slots del maletero. |
|
| Columnas de la cuadrícula del maletero. |
|
| Límite de peso del maletero en gramos. |
|
| Distancia en metros desde la parte trasera del vehículo a la que |
|
| El maletero se cierra más allá de esta distancia en metros. También es el radio de cierre por defecto de una zona de alijo. |
|
| Slots de la guantera. |
|
| Columnas de la cuadrícula de la guantera. |
|
| Límite de peso de la guantera en gramos. |
Si qs-corevehiclekeys no está en ejecución, se omite la comprobación de llaves y para los maleteros solo importa si el vehículo tiene seguro.
Alijos#
Un alijo es una caja de almacenamiento con nombre: un casillero de pandilla, una caja fuerte de una casa, un casillero de evidencias de la policía. Tiene dos partes:
La definición (servidor): un id, una etiqueta, slots, peso máximo y columnas. Regístralo en
Config.Stasheso con el exportRegisterStash.El lugar (cliente): una zona de alijo — con coordenadas y un radio. Abre tu inventario dentro del radio y el alijo se abre a su lado; sal y se cierra. Un script también puede abrir un alijo directamente con el export de cliente
OpenStash(desde un menú de target, un ítem, un comando…).
El id es lo que identifica el contenido: dos zonas con el mismo id abren el mismo alijo, y el contenido se guarda en la base de datos bajo ese id.
Quasar Framework incluye un alijo policial listo para usar: el Evidence Locker (police_evidence, 50 slots, 200 kg) en la comisaría, registrado por qs-police y que solo pueden abrir los policías.
Define el alijo
En
qs-coreinventory/shared/config.lua, agrégalo aConfig.Stashes:lua Config.Stashes = { { id = 'town_locker', label = 'Town Locker', slots = 50, maxWeight = 200000, columns = 5 }, }O desde cualquier script de servidor:
lua exports['qs-core']:RegisterStash('town_locker', 'Town Locker', 50, 200000, 5)Lo que omitas usa los valores predeterminados: etiqueta
Stash,50slots,100000g,5columnas.Colócalo en el mundo
Desde un script de cliente de tu propio recurso, registra una zona con el mismo id. Párate en el lugar y usa
/coordspara obtener la posición.lua exports['qs-core']:RegisterStashZone('town_locker', vec3(-268.48, -957.71, 31.22), { radius = 2.0 })radiustiene un valor predeterminado de2.0metros. Quita la zona otra vez conexports['qs-core']:RemoveStashZone('town_locker').O ábrelo desde un script
En lugar de una zona (o además de ella), abre el alijo desde una opción de target, un menú o un ítem:
lua exports['qs-coreinventory']:OpenStash('town_locker')Un alijo abierto de esta forma queda abierto hasta que el jugador cierra el inventario.
Reinicia y prueba
Reinicia los recursos que editaste, entra en la zona y pulsa
F1.
Export | Lado | Parámetros | Qué hace |
|---|---|---|---|
| servidor |
| Define un alijo. |
| cliente |
| Agrega o mueve una zona de alijo ( |
| cliente |
| Quita una zona y cierra el alijo si está abierto. |
| cliente |
| Abre el inventario con ese alijo. |
Cómo se comportan los contenedores#
Se guardan al instante. Cada cambio en un maletero, guantera o alijo se escribe en la base de datos (
trunk_inventories,glovebox_inventories,stash_inventories) y sobrevive a los reinicios.Los maleteros y guanteras pertenecen a la matrícula. El contenido sigue al texto de la matrícula, así que un vehículo con la misma matrícula siempre tiene el mismo maletero y la misma guantera.
Un contenedor a la vez. Ves tu inventario más un maletero, guantera o alijo.
Los límites de peso se aplican a todo lo que metes, como se describe arriba.
Las armas salen de tus manos. Pon tu arma equipada en un maletero o alijo y se le quita a tu personaje.
Ítems#
Ítems base#
Estos ítems vienen con qs-core (qs-core/shared/items.lua). Otros recursos agregan los suyos: comida y bebidas de qs-needs, cada arma y tipo de munición de qs-coreweapons, y los ítems médicos de qs-ambulance.
Ítem | Etiqueta | Peso | Utilizable | Qué hace |
|---|---|---|---|---|
| Water Bottle | 500 g | Sí | Beber: +30 de sed ( |
| Bread | 300 g | Sí | Comer: +25 de hambre ( |
| Bandage | 100 g | Sí | Con |
| Phone | 190 g | Sí | Ítem inicial, listo para un recurso de teléfono. Por sí solo, al usarlo solo muestra un aviso. |
| ID Card | 10 g | No | Ítem inicial. |
| Pistol | 1,000 g | Sí | Equipa una pistola. |
| Lockpick | 100 g | Sí | Necesario para hacer un puente a un vehículo del que no tienes llaves ( |
| Repair Kit | 2,500 g | Sí | Se vende en ferreterías. Sin efecto integrado: dale uno con |
| Screwdriver | 200 g | Sí | Se vende en ferreterías. Sin efecto integrado: dale uno con |
Campos de la definición de ítem#
Campo | Obligatorio | Qué hace |
|---|---|---|
| Recomendado | Nombre legible que se muestra en el inventario, la caja de ítems, las tiendas y las notificaciones. Por defecto es el nombre del ítem. |
| Recomendado | Peso de un ítem, en gramos. Por defecto es |
| Para ítems utilizables |
|
| No | Texto breve que describe el ítem. |
| No | Cuántos caben en un slot (sobrescribe |
| No |
|
| No | URL completa de una imagen para el ítem. Omítela para usar la imagen integrada de ese nombre de ítem, o un ícono genérico de caja. |
| Solo armas | Nombre del arma de GTA ( |
| Solo armas | Balas con las que viene el arma al equiparla. |
Agregar un ítem nuevo#
Registra ítems desde un script de servidor que se inicie después de qs-core. El inventario, las tiendas y los puentes de ESX y QBCore leen el mismo catálogo, así que un ítem registrado una vez está disponible en todas partes. Registrar un nombre que ya existe reemplaza su definición.
-- server side, in any resource that starts after qs-core
exports['qs-core']:RegisterItems({
pizza = { label = 'Pizza', weight = 500, useable = true, description = 'A hot slice.' },
gold_bar = { label = 'Gold Bar', weight = 1000, stack = 10 },
rare_watch = { label = 'Rare Watch', weight = 150, unique = true },
})Para un solo ítem: exports['qs-core']:RegisterItem('pizza', { label = 'Pizza', weight = 500, useable = true }). También puedes agregar ítems a la lista base en qs-core/shared/items.lua.
Agrégalos a BridgeItems en es_extended/config/items.lua. Se registran en Quasar Framework cuando es_extended se inicia (solo si todavía no existe un ítem con ese nombre):
BridgeItems = {
pizza = { label = 'Pizza', weight = 500, useable = true, description = 'A hot slice.' },
}Agrégalos a qb-core/shared/items.lua en el formato habitual de QBCore. Los ítems que faltan en Quasar Framework se registran cuando qb-core se inicia:
QBCore.Shared.Items = {
pizza = { name = 'pizza', label = 'Pizza', weight = 500, type = 'item', unique = false, useable = true, shouldClose = true, description = 'A hot slice.' },
}Hacer que un ítem sea utilizable#
useable = true solo permite usar el ítem; el efecto viene de un script. Registra un handler en el servidor; funciona con qs-coreinventory y con qs-inventory:
exports['qs-core']:RegisterUsableItem('pizza', function(source, slot, info)
local player = exports['qs-core']:GetPlayer(source)
if player and player:removeItem('pizza', 1, slot) then
TriggerClientEvent('qs:client:notify', source, 'That hit the spot.', 'success')
end
end)El inventario no quita el ítem por ti: quítalo en el handler si se consume.
Un handler por ítem: registrarlo otra vez reemplaza el anterior.
Cada uso de un ítem que no es arma también dispara el evento de servidor
qs:server:usedItem(source, itemName, slot, info), que puedes escuchar en lugar de registrar un handler.Los ítems con un campo
weaponsiempre se equipan; para ellos no se disparan handlers ni eventos.
Pruébalo con /giveitem <id> pizza 5 (admin). Los scripts de ESX que usan ESX.RegisterUsableItem y los scripts de QBCore que usan QBCore.Functions.CreateUseableItem siguen funcionando a través de los puentes; consulta Compatibilidad con ESX y QBCore.
¿Controlas el inventario desde tus propios scripts?
AddItem,RemoveItem,HasItem,CanCarryItem,GetItemCount,GetSlotView,GetItemBySlot,SetItemInfoy los exports de cliente están en Comandos y exports.
Tiendas#
qs-coreshops agrega las tiendas de una ciudad roleplay de FiveM: supermercados 24/7, gasolineras LTD, Rob's Liquor, ferreterías, Ammunation y un punto de suministros médicos para EMS. Cada ubicación tiene un tendero y un blip en el mapa.
Tipos de tienda#
Tienda | Id | Vende | Ubicaciones | Quién puede usarla | Tendero |
|---|---|---|---|---|---|
24/7 Supermarket |
| Comida, bebidas, vendas ( | 9 | Todos |
|
LTD Gasoline |
| Comida, bebidas, vendas ( | 5 | Todos |
|
Rob's Liquor |
| Bebidas ( | 5 | Todos |
|
Hardware Store |
| Herramientas ( | 3 | Todos |
|
Medical Supplies |
| Ítems médicos ( | 1 (Pillbox) |
|
|
Ammunation |
| Armas y munición ( | 11 | Todos |
|
Qué vende cada tienda#
Comida y bebidas — normal (24/7 Supermarket y LTD Gasoline):
Ítem | Etiqueta | Precio |
|---|---|---|
| Water Bottle | $4 |
| Bread | $6 |
| Sandwich | $9 |
| Burger | $12 |
| Cola | $5 |
| Coffee | $4 |
| Energy Drink | $8 |
| Bandage | $25 |
Bebidas — liquor (Rob's Liquor):
Ítem | Etiqueta | Precio |
|---|---|---|
| Cola | $5 |
| Coffee | $4 |
| Energy Drink | $8 |
| Water Bottle | $4 |
Herramientas — hardware (Hardware Store):
Ítem | Etiqueta | Precio |
|---|---|---|
| Lockpick | $35 |
| Screwdriver | $20 |
| Repair Kit | $250 |
Médicos — medical (Medical Supplies, solo EMS):
Ítem | Etiqueta | Precio |
|---|---|---|
| Bandage | $25 |
| Ice Pack | $40 |
| Burn Cream | $45 |
icepack y burn_cream los registra qs-ambulance; sin él, se ocultan de la tienda.
Armas y munición — weapons (Ammunation):
Ítem | Etiqueta | Precio |
|---|---|---|
| Pistol | $750 |
| Combat Pistol | $1,200 |
| AP Pistol | $2,000 |
| Pistol .50 | $2,500 |
| SNS Pistol | $1,000 |
| Heavy Pistol | $2,200 |
| Micro SMG | $3,500 |
| SMG | $4,000 |
| Assault SMG | $4,500 |
| Combat PDW | $4,200 |
| Assault Rifle | $7,500 |
| Carbine Rifle | $8,500 |
| Advanced Rifle | $8,000 |
| Special Carbine | $9,000 |
| Bullpup Rifle | $8,000 |
| Pump Shotgun | $4,000 |
| Sawn-off Shotgun | $3,500 |
| Assault Shotgun | $6,000 |
| Heavy Shotgun | $6,500 |
| Sniper Rifle | $12,000 |
| Heavy Sniper | $20,000 |
| Marksman Rifle | $11,000 |
| MG | $15,000 |
| Combat MG | $18,000 |
| Pistol Ammo | $40 |
| SMG Ammo | $60 |
| Rifle Ammo | $80 |
| Shotgun Shells | $50 |
| Sniper Ammo | $120 |
| MG Ammo | $150 |
| Bandage | $25 |
Cómo funciona la compra#
Acércate a un tendero. A menos de 2.2 m ves Press E to browse …; pulsa E y la tienda se abre con tu saldo en efectivo. Elige un ítem y una cantidad (hasta 100 por compra) y cómpralo. El HUD se oculta mientras la tienda está abierta y vuelve cuando la cierras.
Cada compra se comprueba en el servidor, así que los clientes modificados no pueden comprar más barato ni desde el otro lado del mapa:
Comprobación | Mensaje si falla |
|---|---|
La tienda existe y vende ese ítem. El precio se lee de la configuración del servidor, nunca del cliente. | — |
Tienes el trabajo correcto (tiendas de trabajos). | You are not allowed here. (al abrir) |
Estás a menos de 5 m de una de las ubicaciones de la tienda. | — |
Puedes cargar la cantidad (peso y slots). | You can't carry that much |
Tienes suficiente dinero en la cuenta de pago ( | Not enough money |
Primero se cobra el dinero y después se entrega el ítem; si el ítem no se puede agregar, el dinero se reembolsa automáticamente. Las compras aparecen en los registros de dinero con el motivo shop:<name> (y shop-refund:<name> para los reembolsos).
Tiendas de trabajos#
Dale a una tienda un job y solo los jugadores con ese trabajo ven su blip, reciben el aviso y pueden comprar ahí. El punto Medical Supplies es un ejemplo (job = 'ambulance'). Ammunation viene con la línea -- job = 'police' comentada: quita el -- para convertirla en una armería solo para la policía.
Configuración de tiendas#
Todas las opciones están en qs-coreshops/config.lua.
Opción | Predeterminado | Qué hace |
|---|---|---|
|
| Control que abre una tienda. |
|
| Distancia en metros a la que aparece el aviso. |
|
| Distancia máxima en metros a una ubicación de la tienda, comprobada por el servidor al abrir y en cada compra. |
|
| Cuenta que paga las compras y cuyo saldo muestra la tienda. Pon |
|
| Listas de productos: |
| 6 tiendas | Las tiendas (campos abajo). |
Campo de tienda | Obligatorio | Qué hace |
|---|---|---|
| Sí | Id único (se usa en los registros de dinero). |
| Sí | Nombre en el blip, el aviso y la ventana de la tienda. |
| Sí | La lista de productos, normalmente |
| Sí | Lista de |
| No | Modelo del tendero. Sin tendero si se omite. |
| No | Animación que reproduce el tendero. |
| No |
|
| No | Trabajo necesario para ver y usar la tienda. |
Agregar una tienda o un producto#
Asegúrate de que los ítems existan
Cada producto debe estar registrado en el catálogo de ítems (ítems base,
qs-needs,qs-coreweapons, o los tuyos enRegisterItems). Los productos cuyo ítem no existe se ocultan de la tienda.Agrega un producto a una tienda existente
Agrega una línea a la lista en
Config.Products. Por ejemplo, para vender palancas en las ferreterías:lua hardware = { { name = 'lockpick', price = 35 }, { name = 'screwdriver', price = 20 }, { name = 'repairkit', price = 250 }, { name = 'weapon_crowbar', price = 60 }, },Los precios son dólares enteros y deben ser al menos
1.O crea una tienda nueva
Obtén la posición y la orientación con
/coords(admin) donde debe estar el tendero y luego agrega esto al final deqs-coreshops/config.lua:lua Config.Products.cafe = { { name = 'coffee', price = 4 }, { name = 'sandwich', price = 9 }, } Config.Shops[#Config.Shops + 1] = { name = 'cafe', label = 'Coffee Shop', ped = 'mp_m_shopkeep_01', scenario = 'WORLD_HUMAN_STAND_MOBILE', blip = { sprite = 52, color = 2, scale = 0.6 }, -- job = 'police', -- uncomment to make it a job shop items = Config.Products.cafe, locations = { vec4(0.0, 0.0, 0.0, 0.0), -- paste the vec4 printed by /coords }, }Reinicia las tiendas
Ejecuta
restart qs-coreshopsen la consola del servidor (o en txAdmin). Las tiendas se leen de la configuración al iniciar; no hay ningún export para agregarlas en tiempo de ejecución.
Hambre y sed#
qs-needs le da a cada personaje hambre y sed de 0 a 100, mostradas como barras en el HUD (consulta Chat, HUD y roleplay). Los personajes nuevos empiezan en 100 y los valores se guardan con el personaje.
Cómo bajan#
Necesidad | Pérdida por minuto | De lleno a vacío |
|---|---|---|
Hambre | 1.0 | 100 minutos |
Sed | 1.4 | Unos 72 minutos |
Qué pasa en cero#
Cuando el hambre o la sed llegan a 0, empiezas a perder 5 HP cada 10 segundos hasta que comes o bebes. Si lo sigues ignorando, terminas derribado.
Comer y beber#
Usa un ítem de comida o bebida (desde el inventario, la rueda de ítems o un slot rápido). Se consume un ítem, tu personaje reproduce una animación de comer o beber con el ítem en la mano mientras una barra de progreso muestra Eating o Drinking, y los valores suben (nunca por encima de 100). Recibes You ate the Burger. o You drank the Water Bottle. No puedes usar otro ítem hasta que termina la animación.
Ítem | Etiqueta | Hambre | Sed | Tipo | Agregado por |
|---|---|---|---|---|---|
| Water Bottle | — | +30 | Bebida |
|
| Bread | +25 | — | Comida |
|
| Burger | +45 | — | Comida |
|
| Sandwich | +30 | — | Comida |
|
| Cola | +5 | +25 | Bebida |
|
| Coffee | — | +15 | Bebida |
|
| Energy Drink | — | +35 | Bebida |
|
Todos se venden en los 24/7 Supermarket y LTD Gasoline, y las bebidas también en Rob's Liquor.
Configuración de las necesidades#
Todas las opciones están en qs-needs/shared/config.lua (tabla NeedsConfig).
Opción | Predeterminado | Qué hace |
|---|---|---|
|
| Milisegundos entre dos bajadas. |
|
| Hambre perdida por bajada. |
|
| Sed perdida por bajada. |
|
| Milisegundos entre dos ticks de daño en cero. |
|
| HP perdidos por tick en cero. |
| Animación de hamburguesa / botella, 3.5 s / 3 s | Animación, prop, tiempos y posición de la mano para comer y beber. |
| 7 ítems |
|
Agregar comida o una bebida#
Registra el ítem
qs-needsno crea ítems por ti. Regístralo como utilizable desde un script de servidor:lua exports['qs-core']:RegisterItem('pizza', { label = 'Pizza', weight = 500, useable = true, description = 'A hot slice.' })Dale su efecto
En
qs-needs/shared/config.lua, agrégalo aNeedsConfig.Consumables:lua NeedsConfig.Consumables = { -- ...existing items... pizza = { hunger = 60, verb = 'eat' }, lemonade = { thirst = 40, hunger = 5, verb = 'drink' }, }verb = 'drink'reproduce la animación de beber; cualquier otro valor reproduce la de comer.Véndelo y reinicia
Agrégalo a una lista de una tienda (consulta Agregar una tienda o un producto más arriba) y reinicia
qs-needsy el recurso que registra el ítem.
¿Cambias las necesidades desde tus propios scripts? Defínelas mediante los metadatos del personaje, de 0 a 100:
exports['qs-core']:SetMetadata(source, 'hunger', 100). El HUD se actualiza al instante, y los scripts de QBCore leen los mismos valores enPlayerData.metadata.hungerythirst.
Armas#
qs-coreweapons convierte cada arma de GTA en un ítem del inventario (105 en total), además de 9 tipos de munición. Las armas se cargan, intercambian, guardan y venden como cualquier otro ítem: pesan, ocupan un slot cada una, se pueden dar a otro jugador, guardar bajo llave en un maletero o comprar en Ammunation. No hay ningún loadout oculto.
Las armas no tienen comandos, teclas ni exports propios: las equipas usando el ítem, desde el inventario, la rueda de ítems (TAB) o un slot rápido (1–5).
Equipar y enfundar#
Usa un ítem de arma para sacarla. Viene con las balas de su categoría (ver abajo).
Úsalo otra vez mientras está en tus manos para enfundarla.
Usar un arma diferente cambia a ella.
Categoría | Balas al equipar | Ítem de munición |
|---|---|---|
Cuerpo a cuerpo | — | — |
Pistolas | 12 |
|
Subfusiles | 30 |
|
Escopetas | 8 |
|
Rifles | 30 |
|
Ametralladoras | 100 |
|
Francotiradores | 10 |
|
Lanzadores | 1 |
|
Pistola de bengalas | 1 |
|
Taser | 1 |
|
Arrojables | Una por cada ítem que cargas | — (el ítem es la munición) |
Equipamiento | Por ítem (bidones 4,500, extintor 2,000) | — |
Cuerpo a cuerpo#
Se equipan sin munición. 18 ítems.
Ítem | Etiqueta | Peso |
|---|---|---|
| Antique Cavalry Dagger | 600 g |
| Baseball Bat | 1,000 g |
| Broken Bottle | 300 g |
| Crowbar | 1,500 g |
| Flashlight | 500 g |
| Golf Club | 1,000 g |
| Hammer | 800 g |
| Hatchet | 1,200 g |
| Brass Knuckles | 300 g |
| Knife | 300 g |
| Machete | 1,000 g |
| Switchblade | 200 g |
| Nightstick | 700 g |
| Pipe Wrench | 1,500 g |
| Battle Axe | 2,000 g |
| Pool Cue | 600 g |
| Stone Hatchet | 1,200 g |
| Candy Cane | 400 g |
Pistolas#
12 balas por cargador, ammo_pistol. La Flare Gun usa ammo_flare y el Taser ammo_taser. 19 ítems.
Ítem | Etiqueta | Peso |
|---|---|---|
| Pistol | 1,000 g |
| Pistol Mk II | 1,000 g |
| Combat Pistol | 1,000 g |
| AP Pistol | 1,100 g |
| Pistol .50 | 1,300 g |
| SNS Pistol | 800 g |
| SNS Pistol Mk II | 800 g |
| Heavy Pistol | 1,200 g |
| Vintage Pistol | 900 g |
| Marksman Pistol | 1,500 g |
| Heavy Revolver | 1,500 g |
| Heavy Revolver Mk II | 1,500 g |
| Double-Action Revolver | 1,200 g |
| Ceramic Pistol | 800 g |
| Navy Revolver | 1,400 g |
| Perico Pistol | 1,000 g |
| WM 29 Pistol | 1,100 g |
| Flare Gun | 800 g |
| Taser | 600 g |
Subfusiles#
30 balas por cargador, ammo_smg. 8 ítems.
Ítem | Etiqueta | Peso |
|---|---|---|
| Micro SMG | 1,800 g |
| SMG | 2,200 g |
| SMG Mk II | 2,200 g |
| Assault SMG | 2,400 g |
| Combat PDW | 2,600 g |
| Machine Pistol | 1,500 g |
| Mini SMG | 1,600 g |
| Tactical SMG | 1,600 g |
Escopetas#
8 cartuchos por carga, ammo_shotgun. 10 ítems.
Ítem | Etiqueta | Peso |
|---|---|---|
| Pump Shotgun | 3,000 g |
| Pump Shotgun Mk II | 3,000 g |
| Sawn-off Shotgun | 2,600 g |
| Assault Shotgun | 3,600 g |
| Bullpup Shotgun | 3,200 g |
| Musket | 3,500 g |
| Heavy Shotgun | 3,800 g |
| Double Barrel Shotgun | 2,800 g |
| Sweeper Shotgun | 3,000 g |
| Combat Shotgun | 3,400 g |
Rifles#
30 balas por cargador, ammo_rifle. 14 ítems.
Ítem | Etiqueta | Peso |
|---|---|---|
| Assault Rifle | 3,200 g |
| Assault Rifle Mk II | 3,200 g |
| Carbine Rifle | 3,400 g |
| Carbine Rifle Mk II | 3,400 g |
| Advanced Rifle | 3,300 g |
| Special Carbine | 3,500 g |
| Special Carbine Mk II | 3,500 g |
| Bullpup Rifle | 3,300 g |
| Bullpup Rifle Mk II | 3,300 g |
| Compact Rifle | 2,800 g |
| Military Rifle | 3,600 g |
| Heavy Rifle | 3,800 g |
| Service Carbine | 3,300 g |
| Battle Rifle | 3,900 g |
Ametralladoras#
100 balas por carga, ammo_mg. Incluye la Minigun y la Widowmaker. 7 ítems.
Ítem | Etiqueta | Peso |
|---|---|---|
| MG | 5,000 g |
| Combat MG | 5,400 g |
| Combat MG Mk II | 5,400 g |
| Gusenberg Sweeper | 4,500 g |
| Unholy Hellbringer | 5,000 g |
| Minigun | 12,000 g |
| Widowmaker | 12,000 g |
Francotiradores#
10 balas por carga, ammo_sniper. 6 ítems.
Ítem | Etiqueta | Peso |
|---|---|---|
| Sniper Rifle | 4,000 g |
| Heavy Sniper | 5,000 g |
| Heavy Sniper Mk II | 5,000 g |
| Marksman Rifle | 3,800 g |
| Marksman Rifle Mk II | 3,800 g |
| Precision Rifle | 4,200 g |
Armas pesadas y lanzadores#
1 proyectil por carga, ammo_launcher. 8 ítems.
Ítem | Etiqueta | Peso |
|---|---|---|
| RPG | 8,000 g |
| Grenade Launcher | 6,000 g |
| Smoke Grenade Launcher | 6,000 g |
| Compact Grenade Launcher | 3,500 g |
| Homing Launcher | 9,000 g |
| Firework Launcher | 5,000 g |
| Railgun | 9,000 g |
| Compact EMP Launcher | 3,500 g |
Arrojables#
Los arrojables se apilan hasta 10 por slot y cada uno que lanzas se gasta: lanza una granada y una granada sale de tu inventario. 10 ítems.
Ítem | Etiqueta | Peso |
|---|---|---|
| Grenade | 400 g |
| BZ Gas | 400 g |
| Tear Gas | 400 g |
| Molotov Cocktail | 600 g |
| Sticky Bomb | 500 g |
| Proximity Mine | 600 g |
| Pipe Bomb | 500 g |
| Flare | 200 g |
| Snowball | 100 g |
| Ball | 100 g |
Equipamiento#
Herramientas que GTA trata como armas. Vienen con su propio combustible o carga al equiparlas. 5 ítems.
Ítem | Etiqueta | Peso |
|---|---|---|
| Jerry Can | 4,000 g |
| Hazardous Jerry Can | 4,000 g |
| Fertilizer Can | 4,000 g |
| Fire Extinguisher | 4,500 g |
| Up-n-Atomizer | 1,200 g |
Munición#
Usa un ítem de munición para cargarla. Va al arma que tienes en las manos si usa esa munición; si no, a la primera arma que cargues que la use. Ves Loaded +30 rounds y se consume un ítem de munición. Si no tienes un arma para ella, ves You have no weapon that takes this ammo y no se consume nada.
Ítem | Etiqueta | Para | Balas por ítem | Peso |
|---|---|---|---|---|
| Pistol Ammo | Pistolas | 12 | 200 g |
| SMG Ammo | Subfusiles | 30 | 300 g |
| Rifle Ammo | Rifles | 30 | 400 g |
| Shotgun Shells | Escopetas | 8 | 300 g |
| Sniper Ammo | Francotiradores | 10 | 500 g |
| MG Ammo | Ametralladoras, Minigun, Widowmaker | 100 | 700 g |
| Launcher Round | Lanzadores | 1 | 1,500 g |
| Flare Shell | Flare Gun | 1 | 100 g |
| Taser Cartridge | Taser | 1 | 50 g |
Los ítems de munición se apilan como ítems normales (64 por slot). Las armas cuerpo a cuerpo, los arrojables y el equipamiento no tienen ítem de munición.
Un arma sale de tus manos cuando su ítem sale de tu inventario#
El arma que tienes en las manos es el ítem de tu inventario. Tírala, regálala, véndela o muévela a un maletero, guantera o alijo, y el arma se le quita a tu personaje al instante. En los arrojables, la cantidad que puedes lanzar siempre coincide con la cantidad de ítems que cargas.
Sin botín nativo de GTA#
En un servidor con Quasar Framework, las armas y el dinero solo vienen de tu economía, nunca del propio GTA:
Comportamiento de GTA | En Quasar Framework |
|---|---|
Los jugadores y los NPC sueltan sus armas al morir | Desactivado: nadie suelta armas al morir. |
Los NPC sueltan dinero al morir | Desactivado: los NPC no llevan dinero. |
Subirse a un auto de policía (u otros vehículos) da armas y munición gratis | Desactivado: los vehículos no dan armas. |
Pickups nativos de armas repartidos por el mapa | Desactivados para cada arma configurada, y los que quedan tras tu muerte se eliminan. |
Armas con scripts de ESX y QBCore#
Las armas son ítems, así que los scripts que dan ítems de armas funcionan como se espera: xPlayer.addInventoryItem('weapon_pistol', 1) en ESX, Player.Functions.AddItem('weapon_pistol', 1) en QBCore, o exports['qs-core']:AddItem(source, 'weapon_pistol', 1).
Agregar un arma#
Agrega el arma
En
qs-coreweapons/config.lua, agrega una entrada aWeaponsConfig.Weapons. El arma de GTA debe existir en tu versión del juego, o estar en streaming como arma add-on.lua WeaponsConfig.Weapons = { -- ...existing weapons... weapon_myrifle = { weapon = 'WEAPON_MYRIFLE', cat = 'rifle', label = 'My Rifle', weight = 3500 }, }catdecide la munición que usa y con cuántas balas viene (melee,pistol,smg,shotgun,rifle,mg,sniper,launcher,flare,taser,throwable,misc). Agregaammo = npara definir las balas tú mismo.Agrega un nuevo tipo de munición (opcional)
Para una categoría nueva, dale un tamaño de cargador y un ítem de munición con el mismo
cat:lua WeaponsConfig.MagSize.dmr = 20 WeaponsConfig.Ammo.ammo_dmr = { cat = 'dmr', label = 'DMR Ammo', weight = 450 }Reinicia
Ejecuta
restart qs-coreweapons. Los ítems de armas y munición se registran en el catálogo automáticamente: sin SQL y sin lista de ítems que editar.Véndela
Agrega
{ name = 'weapon_myrifle', price = 9500 }aConfig.Products.weaponsenqs-coreshops/config.lua, o dala con/giveitem <id> weapon_myrifle 1.
Configuración de armas#
Opción | Predeterminado | Qué hace |
|---|---|---|
|
| Balas con las que viene un arma de esa categoría, y balas que agrega un ítem de munición. |
|
| Cuántos arrojables caben en un slot. |
| 105 armas |
|
| 9 tipos de munición |
|
Preguntas frecuentes#
¿Por qué no puedo abrir el maletero?
Ponte a pie en la parte trasera del vehículo (a menos de 1.8 m) y asegúrate de que no tenga seguro y de que tengas sus llaves. Si estás sentado dentro, F1 abre la guantera.
¿A dónde fue el ítem que tiré?
Tirar elimina el ítem; no hay ítems en el suelo. Usa Give para entregar ítems a otro jugador, o guárdalos en un maletero, guantera o alijo.
Falta un ítem en una tienda.
Las tiendas ocultan los productos cuyo ítem no está registrado. Registra el ítem (o inicia el recurso que lo registra, por ejemplo qs-ambulance para icepack y burn_cream) y reinicia qs-coreshops.
Pulsar TAB no abre la rueda de armas de GTA.
Es intencional: en Quasar Framework, TAB abre la rueda de ítems, construida con tus primeros cinco slots. Pon ahí tus armas.
¿Cómo cambio el tamaño del inventario o el límite de peso?
Edita Config.Slots y Config.MaxWeight en qs-coreinventory/shared/config.lua y reinicia el recurso.
¿Puedo usar qs-inventory de Quasar Store en su lugar?
Sí. Ejecuta qs-inventory en lugar de qs-coreinventory y Quasar Framework enruta cada ítem, tienda y arma a través de él. Consulta Integraciones.
¿Funciona con las funciones de inventario de ESX y QBCore?
Sí. xPlayer.addInventoryItem, xPlayer.getInventoryItem, Player.Functions.AddItem, Player.Functions.RemoveItem y el resto van al mismo inventario. Los scripts que llaman directamente a los exports qb-inventory o ox_inventory no están cubiertos; consulta Compatibilidad con ESX y QBCore.



