Antes de empezar#
Antes de instalar Starter Pack, asegúrate de que tu servidor cumple los requisitos mínimos. Solo dos recursos son obligatorios; todo lo demás se detecta solo cuando está en ejecución.
Requisito | Estado | Notas |
|---|---|---|
| Obligatorio | Acceso a la base de datos. Las dos tablas se instalan solas. |
| Obligatorio | Callbacks y funciones auxiliares compartidas. |
Framework | Recomendado |
|
Inventario | Opcional | Se admiten once. Sin ninguno, los ítems pasan por el inventario propio del framework. |
Target / Text UI | Opcional | Para los peds del mundo. Sin ninguno, se dibuja un aviso flotante |
Script de garaje | Opcional | Solo para los vehículos iniciales. Los autos se escriben en la tabla de vehículos propia de tu framework, así que cualquier garaje que la lea los muestra. |
Llaves de vehículos | Opcional | Solo si tu script de llaves no entrega por sí solo las llaves de los autos propios. |
Cada capa se detecta mirando lo que ya está en ejecución, en este orden; gana la primera que se encuentra:
Capa | Orden de detección |
|---|---|
Framework |
|
Inventario |
|
Target |
|
Text UI |
|
Cada integración opcional se hace a un lado sin hacer ruido cuando falta. Integraciones tiene los detalles de cada una.
github.comReleases · overextended/oxmysqlMySQL resource for FXServer.github.comReleases · overextended/ox_libA FiveM resource and script library for Lua and JS.Descargar Starter Pack#
Después de comprar Starter Pack, el recurso se vincula automáticamente a tu cuenta de CFX Portal.
Inicia sesión en el CFX Portal con la misma cuenta que usaste al pagar, abre Granted Assets y descarga Starter Pack.
Después de extraer la descarga, deberías tener lo siguiente:
[starterpack]/
├── qs-starterpack/ -- the resource itself
│ ├── config/ -- main.lua, what you may edit
│ ├── client/custom/ -- client hooks (editable)
│ ├── server/custom/ -- commands and Discord webhooks (editable)
│ ├── locales/ -- 21 languages
│ └── html/ -- the interface, already built
├── [items]/ -- the starter-pack item for each inventory
├── [img]/ -- starterpack.png, the item's icon
└── [sql]/
├── install.sql -- manual schema, only if auto-install is blocked
└── presets.sql -- optional: six ready-made packsLa carpeta del recurso debe llamarse
qs-starterpack. Sus exports, los callbacks de su interfaz y el export de ítem de ox_inventory (qs-starterpack.UseItem) usan ese nombre, así que una copia renombrada deja de responderles.
Instalar el recurso#
Mueve la carpeta qs-starterpack al directorio de recursos de tu servidor. Puede estar en cualquier lugar dentro de él, incluida una carpeta de categoría:
resources/
└── [qs]/
└── qs-starterpack/Luego abre tu server.cfg y asegúrate de que cada dependencia (y todo lo que debe detectar) se inicia antes que Starter Pack:
ensure oxmysql
ensure ox_lib
# Framework
ensure qb-core
# ensure qbx_core
# ensure es_extended
# Inventory, target, text UI, garages, keys
ensure ox_inventory
ensure ox_target
# ensure qs-textui
# ensure jg-advancedgarages
ensure qs-starterpackEl orden de carga importa. La detección solo ve los recursos que ya están iniciados, así que un inventario o un target que se inicia después de Starter Pack no se encuentra.
La base de datos#
No hay ningún archivo SQL que importar. Starter Pack espera a que oxmysql se conecte y luego crea sus dos tablas en el primer inicio. No tiene tabla de vehículos propia: los autos iniciales se escriben en la tabla propia de tu framework, player_vehicles o owned_vehicles.
Tabla | Contiene |
|---|---|
| Todo lo creado en el panel de administración (packs, ítems, vehículos, tema, logo y peds) como un registro por servidor. |
| Cada reclamo: quién, qué pack, qué género y cuándo. Un índice único sobre el periodo de reclamo es lo que impide un segundo reclamo. |
Ambas tablas usan como clave una clave de servidor tomada de tu
sv_licenseKey(o desv_hostnamecuando no hay ninguna), así que varios servidores pueden compartir una base de datos sin ver los packs ni los reclamos de los demás. Por eso, cambiar la clave de licencia hace que ese servidor empiece con una configuración nueva y vacía; las filas antiguas siguen ahí con la clave anterior.
El ítem de Starter Pack#
Opcional. Los jugadores pueden abrir el selector usando un ítem starterpack de su inventario, útil para darle uno a cada personaje nuevo desde tu script de aparición o de creación de personajes. El ítem solo se consume cuando el reclamo tiene éxito, así que cerrar la ventana o tener el inventario lleno lo conserva. Su nombre es Config.Player.Item; ponlo en '' para desactivar el ítem.
Añade el ítem a tu inventario
La carpeta
[items]contiene una línea lista para cada inventario compatible. Los más comunes:Añádelo a
ox_inventory/data/items.lua. La líneaexportes la que lo hace usable: sin ella, ox_inventory nunca le avisa a Starter Pack de que se usó el ítem.lua ['starterpack'] = { label = 'Starter Pack', weight = 0, stack = false, close = true, description = 'Open it to claim your starter pack.', client = { image = 'starterpack.png', export = 'qs-starterpack.UseItem', }, },Añádelo a
qb-core/shared/items.lua. El ítem se registra como usable automáticamente.lua starterpack = { name = 'starterpack', label = 'Starter Pack', weight = 0, type = 'item', image = 'starterpack.png', unique = true, useable = true, shouldClose = true, description = 'Open it to claim your starter pack.' },Ejecútalo en tu base de datos. El ítem se registra como usable automáticamente.
sql INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('starterpack', 'Starter Pack', 0, 0, 1);Añádelo a la lista de ítems de qs-inventory.
lua ['starterpack'] = { ['name'] = 'starterpack', ['label'] = 'Starter Pack', ['weight'] = 0, ['type'] = 'item', ['image'] = 'starterpack.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['description'] = 'Open it to claim your starter pack.' },codem-inventory, core_inventory, tgiann-inventory, ps-inventory, origen_inventory, ak47_inventory, ak47_qb_inventory y linden_inventory tienen cada uno su propio archivo en
[items], con el nombre del inventario. Pega su línea en la lista de ítems de ese inventario.Copia el icono
Copia
[img]/starterpack.pngen la carpeta de imágenes de tu inventario:ox_inventory/web/imagespara ox,html/imagespara qb-inventory y la mayoría de los demás.Reinicia y revisa la consola
Con ox_inventory la consola confirma
Starter pack item ready in ox_inventory. Si el ítem falta o no tiene la líneaexport, un aviso rojo muestra el bloque exacto que debes pegar, y se repite cada cinco minutos hasta que se corrija.
Packs predefinidos (opcional)#
Una instalación nueva empieza sin packs — los creas en el panel de administración. Si prefieres partir de algo, [sql]/presets.sql crea tres packs para cada género, con sus propias fotos de fondo:
Pack | Contenido |
|---|---|
LEGAL | $3,000 en efectivo, tarjeta de identidad, teléfono, licencia de conducir, dos kits de reparación, tres botellas de agua. |
CIVILIAN | $1,500 en efectivo, tarjeta de identidad, teléfono, cinco botellas de agua, cinco sándwiches. |
ILLEGAL | $5,000 en dinero sucio, tarjeta de identidad, teléfono, dos ganzúas, un bate de béisbol, tres botellas de agua. Destacado como "Most popular". |
Inicia el servidor una vez
Los predefinidos actualizan el registro de configuración, y ese registro solo se crea en el primer inicio. Si ejecutas el archivo antes, no cambia nada.
Ejecuta presets.sql
Impórtalo en HeidiSQL o en tu cliente de MySQL. Los nombres, las descripciones y los iconos de los ítems se leen de tu inventario en tiempo de ejecución, así que el mismo archivo funciona en QBCore, Qbox, ESX y ox_inventory.
Abre el selector
No hace falta reiniciar:
/starterpacklee la base de datos cada vez que se abre.
Obtener acceso de administrador#
El panel de administración es donde se crean los packs, así que está protegido por una comprobación de administrador que se ejecuta en el servidor, al abrirlo y de nuevo en cada guardado. Cualquiera de estas vías convierte a un jugador en administrador:
La vía habitual. Cualquiera en tu group.admin ya pasa, porque el server.cfg por defecto le concede a ese grupo el ace command. Para conceder solo Starter Pack, usa su propio ace:
add_ace identifier.license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx qs-starterpack.admin allowReinicia el recurso después de añadirlo. Se puede definir otro grupo de administración en Config.Admin.AceGroup.
Una lista blanca simple en config/main.lua. Acepta cualquier identificador por el que se conozca al jugador: license:, discord:, steam:, fivem:.
Config.Admin = {
AceGroup = 'group.admin',
Command = 'starteradmin',
Identifiers = {
'license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'discord:123456789012345678',
},
}Automático, nada que configurar. En QBCore y Qbox admin, god y superadmin, y en ESX admin, superadmin y mod se reconocen como administradores.
Cuando se rechaza a alguien, la consola del servidor muestra Permission denied: <name> (id <n>) tried to use /starteradmin but is not an admin.
Configurar el recurso#
Los packs en sí nunca se configuran en archivos: viven en la base de datos y se crean en /starteradmin. Los archivos son para la infraestructura a su alrededor:
Archivo | Contenido |
|---|---|
| Idioma, nombre de marca, modo de interacción, notificaciones, tiempo de espera, cuentas de dinero, ítems de identidad, acceso de administrador, las formas de entrar y los garajes de los vehículos iniciales. |
| Los tres comandos: renómbralos o amplíalos aquí. |
| Registros en Discord, una URL por evento. |
| Hooks: permitir o rechazar una apertura, ejecutar código después y una notificación personalizada. |
| Los mensajes enviados desde el servidor: no es administrador, ya reclamado, ítems entregados, vehículo entregado. |
Los valores que conviene revisar primero:
Config.Locale = 'en' -- 21 languages, see Usage
Config.BrandName = 'QUASAR STARTER PACK' -- shown in the interface and notifications
Config.Cooldown = 'lifetime' -- 'lifetime' | 'weekly' | 'monthly'
Config.CooldownScope = 'character' -- 'character' | 'account'
Config.Notification = 'original' -- see Integrations
Config.Player = {
Command = 'starterpack', -- the player's command
OpenKey = nil, -- e.g. 'F7'; players can still bind it themselves
PedOpen = true, -- world peds open the picker
Item = 'starterpack', -- '' to disable the item
}
Config.CooldownyConfig.CooldownScopese comprueban al iniciar. Un error tipográfico ahí detiene el recurso con un mensaje que indica el valor, en lugar de dejar que los jugadores reclamen más a menudo de lo que querías.
Verificar la instalación#
Reinicia tu servidor y lee el banner de arranque en la consola. Indica lo que se detectó:
[qs-starterpack] ✦ Quasar Starter Pack v1.0.15 │ framework qb │ inventory ox │ database ready
[qs-starterpack] ✓ You are running the latest version. Enjoy!standalone o default significa que no se encontró nada para esa capa; si sí tienes ese recurso, muévelo encima de ensure qs-starterpack. database pending solo significa que la base de datos aún se estaba conectando dos segundos después del inicio; solo es un problema si le sigue un mensaje de conexión fallida.
Luego entra a tu servidor y recorre el primer ciclo:
Crea un pack
/starteradminabre el creador. Elige un género, pulsa Add Pack, ponle nombre y añade un ítem. Se guarda solo.Reclámalo
/starterpack, elige el mismo género y mantén pulsado el botón de reclamar en tu pack. Los ítems llegan y una notificación lo confirma.Restablece tu reclamo y vuelve a probar
/starterclearborra tu propio reclamo para que puedas repetir la prueba. Uso cubre el resto del panel.



