> For the complete documentation index, see [llms.txt](https://doc.var-fivem.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.var-fivem.com/interaction/configuration/interaction-config-reference.md).

# Interaction config reference

```lua
{
    coords        = vec3 | vec4,                    -- required
    message       = "string",                       -- panel text
    key           = 38,                             -- FiveM control id (38 = E)
    hintIcon      = "pin",                          -- see below
    hintColor     = "teal" | "#34d399",             -- name or hex

    showIcon      = 4.0,                            -- hint render distance
    canInteract   = 1.5,                            -- panel arm distance / fn
    offsetZ       = 2.0,                            -- vertical sprite offset
    heightOffset  = nil,                            -- override offsetZ for the sprite

    resetOnInteract = true,                         -- re-arm after callback
    onInteract    = function(id, ent, spec) end,    -- single-key callback

    -- Multi-choice (alternative to onInteract)
    choices = {
        { bind = "E", message = "Use",  hintColor = "green",
          condition = function() return true end,
          onInteract = function(ent) end },
        { bind = "G", message = "Rob",  hintColor = "red",
          onInteract = function(ent) end },
    },

    -- NPC dialogue (only meaningful with pedRegister)
    dialogue = {
        name         = "Paul",
        tag          = "Lumberjack",
        startMsg     = "Welcome.",
        interactAnim = { dict = "...", name = "..." } | { scenario = "..." },
        elements     = { { label = "...", action = function(changeDialog, close) end }, ... },
    },

    blips = { sprite = 119, color = 50, scale = 0.8, text = "Foreman" },
}
```

#### Available hint icons

`pin`, `car`, `camion`, `velo`, `bateau`, `avion`, `moto`, `cloak`, `bank`, `house`, `work`, `phone`, `cart`, `combat`, `gym`, `game`, `hunting`, `peche`, `storage`, `duty`, `talk`, `search`, `interact`, `teleport`.

The catalog example (`config/example.lua`, third block) renders every icon side-by-side so you can pick one in-game.

#### Color presets

`teal` (brand), `red`, `blue`, `green`, `amber`, `yellow`, `orange`, `purple`, `pink`, `white`, `gray`. French aliases `rouge`, `bleu`, `vert` are kept for backward compatibility. Any hex string also works.
