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',
        },
    },
},
KeyTypeDefaultNotes
coordsvector4vec4(-117.02, -604.77, 35.28, 250.94)Ped position, plus the heading it faces in w
pedModelstring'a_m_m_business_01'Any valid ped model
scenariostring?'WORLD_HUMAN_CLIPBOARD'Idle animation looped forever; nil for a ped that just stands still
bliptable?see aboveSet 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',
ValueBehaviour
'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',
    },
},
KeyTypeDefaultNotes
distancenumber1.5Metres. 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
iconstring'fa-solid fa-print'Icon on the interaction that opens the business centre
icons.claimstring'fa-solid fa-box-open'A finished order, ready to collect
icons.printingstring'fa-solid fa-hourglass-half'An order still being printed
icons.orderstring'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.

Which menu the business centre and order list are drawn with.

Menu = 'auto',
ValueBehaviour
'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',
},
KeyTypeDefaultNotes
keystring'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'
distancenumber2.0Metres. How close the player must be for the prompt to appear
positionstring'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.