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.Framework explicitly, 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.Inventory explicitly, 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. Check Config.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.Interaction is '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 export lines are missing from the item definitions. Both business_card_box and business_card need their client.export entry.
  • qb-inventory — the items are not useable = true in qb-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:

MessageWhat 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.