dd-cards · Configuration
Client config
config/client.lua — fabric locations, peds, blips, how players interact with them, which menu is drawn, and the walk-up prompt.
config/client.lua returns one table. Everything in it affects what the player sees and touches in
the world.
Fabric
The print works, where players buy materials, design a card and collect a finished order. All three interactions are attached to every fabric ped, so you can add as many locations as you like and they all behave identically.
Fabric = {
{
coords = vec4(-117.02, -604.77, 35.28, 250.94),
pedModel = 'a_m_m_business_01',
scenario = 'WORLD_HUMAN_CLIPBOARD',
blip = {
sprite = 408,
colour = 0,
scale = 0.7,
label = 'Business Card Fabric',
},
},
},
| Key | Type | Default | Notes |
|---|---|---|---|
coords | vector4 | vec4(-117.02, -604.77, 35.28, 250.94) | Ped position, plus the heading it faces in w |
pedModel | string | 'a_m_m_business_01' | Any valid ped model |
scenario | string? | 'WORLD_HUMAN_CLIPBOARD' | Idle animation looped forever; nil for a ped that just stands still |
blip | table? | see above | Set the whole table to nil to keep the location off the map |
Getting the heading right. Stand where you want the ped and read your own coords off a coord tool. The heading is usually your heading turned 180 degrees, so the ped looks back at you.
Blip fields. sprite and colour are ids from FiveM's blip reference; scale is 1.0 for the
game default (0.7 reads slightly smaller than normal); label is the name shown in the map legend.
Reference lists: ped models · ped scenarios · blips
Adding a second location
Add another entry to the array. Nothing else needs changing — the interaction, menu and pickup are attached per-ped.
Fabric = {
{
coords = vec4(-117.02, -604.77, 35.28, 250.94),
pedModel = 'a_m_m_business_01',
scenario = 'WORLD_HUMAN_CLIPBOARD',
blip = { sprite = 408, colour = 0, scale = 0.7, label = 'Business Card Fabric' },
},
{
coords = vec4(1173.45, 2705.12, 38.09, 175.0),
pedModel = 'a_m_y_business_02',
scenario = 'WORLD_HUMAN_CLIPBOARD',
blip = nil, -- unlisted: players have to find this one
},
}
Interaction
How players interact with a fabric ped.
Interaction = 'ox_lib',
| Value | Behaviour |
|---|---|
'auto' | Whichever targeting resource is started, preferring ox_target; falls back to 'ox_lib' |
'ox_target' | Third-eye targeting through ox_target |
'qb-target' | Third-eye targeting through qb-target |
'ox_lib' | No targeting resource — an ox_lib textUI prompt appears as you walk up, and a key opens the menu |
'qb-drawtext' | The same walk-up prompt, drawn with qb-core's own drawtext so it matches the rest of a QBCore server |
Note
The shipped default is 'ox_lib', but 'auto' is the recommended setting — it keeps working if
you swap targeting resources later. If you run ox_target or qb-target, change this, or the walk-up
prompt is what your players will get.
'qb-drawtext' needs no extra resource — the prompt ships inside qb-core — but qb-core does have to
be started, and dd-cards errors at boot if it is not. 'auto' never resolves to it; pick it
explicitly.
Target
Used by both ox_target and qb-target. Ignored when the walk-up prompt is in use.
Target = {
distance = 1.5,
icon = 'fa-solid fa-print',
icons = {
claim = 'fa-solid fa-box-open',
printing = 'fa-solid fa-hourglass-half',
order = 'fa-solid fa-pen-nib',
},
},
| Key | Type | Default | Notes |
|---|---|---|---|
distance | number | 1.5 | Metres. The two resources treat distance differently — ox_target sets it per option, qb-target per entity — so dd-cards hands this single value to whichever is in use |
icon | string | 'fa-solid fa-print' | Icon on the interaction that opens the business centre |
icons.claim | string | 'fa-solid fa-box-open' | A finished order, ready to collect |
icons.printing | string | 'fa-solid fa-hourglass-half' | An order still being printed |
icons.order | string | 'fa-solid fa-pen-nib' | Opening the card designer to place a new order |
Icons are Font Awesome class names — both target resources accept the same names. Browse the free set.
Menu
Which menu the business centre and order list are drawn with.
Menu = 'auto',
| Value | Behaviour |
|---|---|
'auto' | ox_lib — it is a hard dependency, so it is always available |
'ox_lib' | ox_lib's context menu |
'qb-menu' | qb-menu, for servers that would rather keep one menu style across every script |
qb-menu has to be chosen explicitly, since 'auto' can never rule ox_lib out. Two behaviours differ
on qb-menu — see Compatibility.
DrawText
Only read when Interaction resolves to 'ox_lib' or 'qb-drawtext'. Ignored entirely otherwise.
Both prompts share these options, so switching between the two needs no other edit.
DrawText = {
key = 'E',
distance = 2.0,
position = 'left-center',
},
| Key | Type | Default | Notes |
|---|---|---|---|
key | string | 'E' | Key that opens the fabric menu while the prompt is on screen. Use the name as ox_lib writes it in a keybind — 'E', 'G', 'H' |
distance | number | 2.0 | Metres. How close the player must be for the prompt to appear |
position | string | 'left-center' | One of 'left-center', 'right-center', 'top-center', 'bottom-center' |
The key is registered through ox_lib for both prompts, so players can rebind it in GTA's own settings either way.
Note
The position names are ox_lib's, and 'qb-drawtext' maps them onto its own three anchors so one
setting covers both. qb-core has no bottom anchor, so 'bottom-center' draws on the left there —
the other three land where they say.