Antes de empezar#
Antes de instalar Trading Cards, asegúrate de que tu servidor cumple los requisitos mínimos. Tres cosas son obligatorias — el driver de base de datos, ox_lib y un inventario con metadatos de ítems, porque cada carta, sobre y álbum es un ítem. Todo lo demás es opcional y se detecta automáticamente.
Requisito | Estado | Notas |
|---|---|---|
| Obligatorio | Acceso a la base de datos. Las tablas se crean solas. |
| Obligatorio | Callbacks, notificaciones y la barra de progreso. |
Inventario | Obligatorio |
|
| Obligatorio | Incluido en la descarga. Los modelos del sobre, el álbum y la carta que se sostienen en la mano. |
Framework | Opcional |
|
Target | Opcional |
|
| Opcional | Notificaciones y barra de progreso, y el aviso 3D |
El recurso elige el bridge adecuado según lo que ya está en ejecución:
Capa | Se detecta a partir de |
|---|---|
Framework |
|
Inventario |
|
Target |
|
Integraciones tiene los detalles y cómo forzar uno manualmente.
github.comReleases · overextended/oxmysqlMySQL resource for FXServer.github.comReleases · overextended/ox_libA FiveM resource and script library for Lua and JS.Descargar Trading Cards#
Después de comprar Trading Cards, 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 Trading Cards.
Después de extraer la descarga, deberías tener las siguientes carpetas:
tradingcards/
├── [img]/ -- inventory icons for the six items
├── [items]/ -- item definitions: ox_inventory, qs-inventory, qb-core
├── tradingcards_props/ -- the pack, album and card models (streamed)
└── qs-tradingcards/
├── shared/config.lua -- what you may edit
├── client/custom/ -- bridges to other resources (editable)
├── server/custom/ -- bridges to other resources (editable)
├── server/webhook.lua -- Discord logs
├── locales/ -- 41 languages
├── database/sql.sql -- optional starter cards
└── web/ -- the interface, already builtInstalar el recurso#
Mueve qs-tradingcards y tradingcards_props al directorio resources de tu servidor. Pueden estar en cualquier lugar dentro de él, incluida una carpeta de categoría:
resources/
└── [qs]/
├── tradingcards_props/
└── qs-tradingcards/Luego abre tu server.cfg y asegúrate de que todas las dependencias — y todo lo que debe detectar — se inicien antes que Trading Cards:
ensure oxmysql
ensure ox_lib
# Framework (or none, for standalone)
ensure es_extended
# ensure qb-core
# ensure qbx_core
# Inventory, target, interface
ensure ox_inventory
# ensure ox_target
# ensure qs-interface
# ensure qs-textui
ensure tradingcards_props
ensure qs-tradingcardsEl orden de carga importa. La detección solo ve los recursos que ya se han iniciado: un framework que se inicia después de Trading Cards no se detecta y se usa el bridge standalone, y un inventario que se inicia después detiene el recurso con No inventory found.
La base de datos#
No hay nada que debas importar. En su primer inicio, Trading Cards crea sus propias tablas y escribe las rarezas y los sobres iniciales:
Tabla | Contenido |
|---|---|
| Todas las cartas: nombre, ilustración, rareza, historia, estadísticas, el sobre en el que aparecen, su tema y si están activadas. |
| Las rarezas — colores, efectos holográficos y de destello, peso de aparición y el ítem de inventario con el que se entrega cada una. Se crean con Basic, Rare y Legendary. |
| Los sobres — ítem, etiqueta, ilustración y cartas por sobre. Se crean con Booster Pack y Legends Pack, de cinco cartas cada uno. |
| Diseños de cartas creados en el editor de temas. |
| Los NPC de tienda, tasador y comerciante que colocas. |
| El contenido de cada álbum de cartas. |
Un servidor recién creado tiene rarezas y sobres, pero todavía ninguna carta. Tienes dos formas de llenar el catálogo:
qs-tradingcards/database/sql.sql añade 82 cartas listas para usar — 44 en el Booster Pack y 38 en el Legends Pack, de las tres rarezas, con ilustración e historia — además de los tres temas integrados. Impórtalo con HeidiSQL o cualquier cliente de MySQL/MariaDB antes o después del primer inicio. Cada inserción omite las filas que ya existen, así que nunca sobrescribe tus propios datos.
Omite el archivo y crea todas las cartas en el juego con /cardcreator → Card Creator. Hasta que haya al menos una carta, la consola muestra No cards found al iniciar y los sobres no se abren — consulta Uso.
Ítems del inventario#
Trading Cards usa seis ítems. Las definiciones listas para pegar vienen en la carpeta [items], y sus iconos en [img].
Ítem | Qué es | Apilable |
|---|---|---|
| Una carta de rareza Basic. | No — cada carta lleva sus propios metadatos. |
| Una carta de rareza Rare. | No |
| Una carta de rareza Legendary. | No |
| El Booster Pack estándar. | Sí |
| El Legends Pack. | Sí |
| El álbum de cartas. | No — cada álbum tiene su propio id. |
Añade a ox_inventory/data/items.lua:
['tradingcard_basic'] = {
label = 'Basic Card',
weight = 10,
stack = false,
close = true,
},
['tradingcard_rare'] = {
label = 'Rare Card',
weight = 10,
stack = false,
close = true,
},
['tradingcard_legendary'] = {
label = 'Legendary Card',
weight = 10,
stack = false,
close = true,
},
['tradingcard_booster_pack'] = {
label = 'Booster Pack',
weight = 100,
stack = true,
close = true,
},
['tradingcard_booster_legends'] = {
label = 'Legends Pack',
weight = 100,
stack = true,
close = true,
},
['tradingcard_stash'] = {
label = 'Card Album',
weight = 500,
stack = false,
close = true,
},Copia los PNG de [img] a ox_inventory/web/images/. ¿Usas ox_inventory sin framework? Lee también la nota sobre standalone en Integraciones.
Añade a qs-inventory/shared/items.lua:
['tradingcard_basic'] = { ['name'] = 'tradingcard_basic', ['label'] = 'Basic Card', ['weight'] = 10, ['type'] = 'item', ['image'] = 'tradingcard_basic.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '' },
['tradingcard_rare'] = { ['name'] = 'tradingcard_rare', ['label'] = 'Rare Card', ['weight'] = 10, ['type'] = 'item', ['image'] = 'tradingcard_rare.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '' },
['tradingcard_legendary'] = { ['name'] = 'tradingcard_legendary', ['label'] = 'Legendary Card', ['weight'] = 10, ['type'] = 'item', ['image'] = 'tradingcard_legendary.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '' },
['tradingcard_booster_pack'] = { ['name'] = 'tradingcard_booster_pack', ['label'] = 'Booster Pack', ['weight'] = 100, ['type'] = 'item', ['image'] = 'tradingcard_booster_pack.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '' },
['tradingcard_booster_legends'] = { ['name'] = 'tradingcard_booster_legends', ['label'] = 'Legends Pack', ['weight'] = 100, ['type'] = 'item', ['image'] = 'tradingcard_booster_legends.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '' },
['tradingcard_stash'] = { ['name'] = 'tradingcard_stash', ['label'] = 'Card Album', ['weight'] = 500, ['type'] = 'item', ['image'] = 'tradingcard_stash.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '' },Copia los PNG de [img] a qs-inventory/html/images/.
Añade a qb-core/shared/items.lua (o a tu archivo de ítems de Qbox):
['tradingcard_basic'] = { ['name'] = 'tradingcard_basic', ['label'] = 'Basic Card', ['weight'] = 10, ['type'] = 'item', ['image'] = 'tradingcard_basic.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '' },
['tradingcard_rare'] = { ['name'] = 'tradingcard_rare', ['label'] = 'Rare Card', ['weight'] = 10, ['type'] = 'item', ['image'] = 'tradingcard_rare.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '' },
['tradingcard_legendary'] = { ['name'] = 'tradingcard_legendary', ['label'] = 'Legendary Card', ['weight'] = 10, ['type'] = 'item', ['image'] = 'tradingcard_legendary.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '' },
['tradingcard_booster_pack'] = { ['name'] = 'tradingcard_booster_pack', ['label'] = 'Booster Pack', ['weight'] = 100, ['type'] = 'item', ['image'] = 'tradingcard_booster_pack.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '' },
['tradingcard_booster_legends'] = { ['name'] = 'tradingcard_booster_legends', ['label'] = 'Legends Pack', ['weight'] = 100, ['type'] = 'item', ['image'] = 'tradingcard_booster_legends.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '' },
['tradingcard_stash'] = { ['name'] = 'tradingcard_stash', ['label'] = 'Card Album', ['weight'] = 500, ['type'] = 'item', ['image'] = 'tradingcard_stash.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '' },Copia los PNG de [img] a la carpeta de imágenes de tu inventario — qb-inventory/html/images/ para qb-inventory.
core_inventory, origen_inventory, codem-inventory y tgiann-inventory tienen cada uno su propio formato de ítems. Registra los mismos seis nombres con las mismas reglas: las tres cartas y el álbum únicos / no apilables y usables, los dos sobres apilables y usables. Los iconos están en [img].
Una rareza que crees más adelante en el creador se entrega como el ítem que le asignes, así que ese ítem también tiene que existir en tu inventario. Lo mismo ocurre con cualquier sobre adicional.
Obtener acceso al creador#
Todo lo relativo a la colección se edita en el creador, que se abre con /cardcreator. Se comprueba en el servidor, y cualquiera de estas vías permite el acceso a un jugador:
Añade el permiso a un grupo o a un identificador concreto en server.cfg y luego reinicia el recurso:
add_ace group.admin command.cardcreator allow
# or for a single player
add_ace identifier.license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx command.cardcreator allowAutomático. Un jugador cuyo grupo del framework sea admin, superadmin o god tiene acceso — el grupo de ESX o el permiso de QBCore/Qbox. Cambia la lista en Config.CardCreator.adminGroups.
Sin framework no hay grupos, así que la misma lista se lee de los aces: un jugador en group.admin, group.superadmin o group.god tiene acceso.
add_principal identifier.license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx group.adminConfigurar el recurso#
Casi nada se configura en archivos. Las cartas, rarezas, pesos de aparición, temas, tiendas, tasadores y comerciantes se editan en el juego. shared/config.lua es para la configuración interna:
Config.Language = GetConvar('qs:locale', 'es') -- or set `setr qs:locale "en"` in server.cfg
Config.Framework = ... -- auto-detected; 'esx', 'qb' or 'standalone' to force one
Config.Inventory = ... -- auto-detected; see Integrations
Config.UseTarget = false -- third eye on the NPCs instead of the [E] prompt
Config.EnableControlsWhenFocus = true -- the game keeps reading keys while an overlay is open
Config.OpeningTime = 2500 -- pack opening progress bar, in ms
Config.ShowToPlayers = true -- "Show" displays the card to every player within 3 m
Config.ShowAnimation = true -- hold a physical card prop while showing it
Config.ShopItems = { -- stock for shop NPCs that have none of their own
{ name = 'tradingcard_booster_pack', price = 500 },
{ name = 'tradingcard_stash', price = 2500 },
}
Config.CardCreator = {
command = 'cardcreator',
permission = 'command.cardcreator',
adminGroups = { 'admin', 'superadmin', 'god' },
}
Config.Debug = true -- [DEBUG] lines in the console; set false in production
Config.VisualMode = false -- open packs without taking the pack or giving the cards (testing)Verificar la instalación#
Reinicia tu servidor y lee la consola. Un inicio correcto se ve así:
[INFO] Seeded default rarities.
[INFO] Seeded default booster packs.
[INFO] Catalog loaded: 82 cards, 3 rarities, 2 boosters, 3 themes.
[INFO] Loaded 0 NPC(s).Las dos líneas Seeded solo aparecen en el primer inicio. 0 cards con una línea No cards found en rojo significa que no se importaron las cartas iniciales y aún no se ha creado ninguna.
Luego entra al servidor y recorre el primer ciclo:
Abre un sobre
Date un
tradingcard_booster_packy úsalo. La barra de progreso avanza con el sobre en tus manos; después desliza la pestaña superior para abrirlo y da la vuelta a las cinco cartas.Guarda una carta
Date un
tradingcard_stash, usa una de las cartas que obtuviste y elige Store in Album. Usa el álbum para verla en la primera página.Coloca una tienda
Escribe
/cardcreator. Se abre en la pestaña Peds: crea un NPC de Shop, pulsa Place in the world, apunta, haz clic y guarda. Uso cubre todo a partir de ahí.
A partir de aquí nada necesita reiniciarse. Las cartas, rarezas, temas y NPC se guardan en la base de datos y se envían a todos los jugadores al guardarlos.



