dd-cards · Help
Troubleshooting
The boot errors dd-cards can throw, what each one actually means, and the player-facing messages worth knowing about.
dd-cards fails loudly and specifically at boot rather than half-starting. Every message below is quoted from the resource itself, so you can match it against your console exactly.
Boot errors
no supported framework found
dd-cards: no supported framework found. Start qbx_core or qb-core, set
Config.Frameworkexplicitly, or add a bridge for your own framework.
Neither qbx_core nor qb-core was started when dd-cards resolved its bridges.
Almost always a start-order problem rather than a missing resource. dd-cards checks
GetResourceState, so the framework has to be started before it in server.cfg:
ensure qbx_core
ensure dd-cards # after, not before
no supported inventory found
dd-cards: no supported inventory found. Start ox_inventory or qb-inventory, set
Config.Inventoryexplicitly, or add a bridge for your own inventory.
Same cause, same fix — ensure your inventory before dd-cards.
no framework bridge at bridge/…/server.lua
dd-cards: no framework bridge at bridge/
<name>/server.lua. CheckConfig.Framework.
Config.Framework names something that has no bridge file. Usually a typo. The same message exists
for inventory, interaction and menu, each naming its own config option.
Adding a bridge for a resource dd-cards does not ship is covered on Custom bridges.
Config.Interaction is 'qb-drawtext' but qb-core is not started
dd-cards:
Config.Interactionis 'qb-drawtext' but qb-core is not started. That prompt ships inside qb-core; there is no separate qb-drawtext resource.
There is no resource called qb-drawtext to install — the prompt lives inside qb-core. Either start
qb-core, or use Config.Interaction = 'ox_lib' for the equivalent ox_lib prompt.
Config.Menu is 'qb-menu' but qb-menu is not started
Exactly what it says. Start qb-menu, or set Config.Menu = 'auto' to use ox_lib's context menu.
Startup messages that are not errors
On a healthy boot dd-cards prints which implementation it picked for each category:
dd-cards: using qbx_core as framework.
dd-cards: using ox_inventory as inventory.
dd-cards: using ox_target for fabric interaction.
dd-cards: using ox_lib for menus.
dd-cards: using lb-phone for notifications.
Worth reading when something behaves unexpectedly — if 'auto' resolved to a different resource
than you assumed, this is where it says so.
Common setup problems
No ped at the fabric
Check Config.Fabric[1].coords. The w component is the heading the ped faces; if the ped is there
but facing a wall, that value needs turning 180 degrees.
Items show as broken icons
The six .png files from install/inventory/images were not copied into your inventory's image
folder — ox_inventory/web/images/ or qb-inventory/html/images/. See
Items & images.
Using the box or the card does nothing
- ox_inventory — the
exportlines are missing from the item definitions. Bothbusiness_card_boxandbusiness_cardneed theirclient.exportentry. - qb-inventory — the items are not
useable = trueinqb-core/shared/items.lua.
Cards from different designs merge in the inventory
The box and the card are stacking. They must be stack = false on ox_inventory, or
unique = true on qb-core. Each carries its own metadata — which design it holds, and how many
cards remain — so stacking merges unrelated designs into one pile.
The first order fails with a database error
The tables do not exist. Either set
AutoInsertSql = true, or import
install/sql/dd-cards.sql by hand.
The walk-up prompt appears even though ox_target is installed
Config.Interaction ships as 'ox_lib', not 'auto'. Change it to 'auto' (or 'ox_target') —
see Client config.
Players never get the "order ready" message
Check which provider was chosen in the boot log. If it resolved to ox_lib, no supported phone was
started. If it resolved to lb-phone, note that lb-phone cannot deliver to an offline player — the
order is still ready and waiting in the Orders menu. See
offline delivery.
Player-facing messages
These come from locales/en.json and are shown to players, not to you — but several point at a
server-side cause worth knowing:
| Message | What it usually means |
|---|---|
| "The price changed, check the order again" | The quote was recalculated between opening the designer and submitting — normally because the player's material stock changed |
| "That box couldn't be read from your inventory" | The inventory bridge's getSlot returned nothing for that slot |
| "That box has lost the design it was printed from" | The box's metadata is missing its template reference — typically a bridge that drops metadata, or a template row deleted from the database |
| "That isn't a business card box" | The item in that slot is not Config.Items.box; check for a rename that was applied in only one place |
| "You've used all 5 template slots" | Working as intended — the five-slot limit is enforced by a unique key in the database |
| "You don't have space for that" | The inventory refused the box on weight or slots |
Still stuck?
Include the boot log lines showing which bridges were resolved — they narrow almost every problem down immediately. Contact details are in the footer of every page.