Var FiveM
ScriptsBundlesDocs
VAR
Var FiveM
ScriptsBundlesDocs
NewsTheme CustomizerAboutContact
Shop Now

-- 29 sections

  • ›paintball
  • ›chess
  • ›supermarket simulator
  • ›coins shop
  • ›clothes shop
  • ›casino
  • ›drugs
  • ›clothes shop v2
  • ›interaction
    • configuration
    • public-api
    • interaction-config-reference
    • dialog-system
  • ›emote
  • ›crew
  • ›alert job
  • ›pin code
  • ›society manager
  • ›property
  • ›barber shop
  • ›shop with basket
  • ›tattoo shop
  • ›gardener job
  • ›heist atm
  • ›heist fleeca
  • ›poster job
  • ›loading screen
  • ›bank
  • ›autocardealer
  • ›character creator
  • ›multi character
  • ›bill
  • ›tattoo shop v2

~/docs/interaction/configuration/public-api

interaction docs›
  • configuration
  • configuration/public-api
  • configuration/interaction-config-reference
  • configuration/dialog-system

Interaction

Public API

-- 2 code blocks · 1 min read

get var-interacttry it on the test server

All exports are client-side. Each registration call returns an id you can reuse to remove or update the interaction.

pedRegister(cfg)

Spawn a streamed NPC at coords (must be a vec4, the w is the heading) and attach an interaction. Peds despawn automatically when the player walks out of Config.Ped.spawnRange.

lua
exports["core_interact"]:pedRegister({
    coords   = vec4(-33.41, -1099.95, 25.41, 70.86),
    model    = "mp_m_weapexp_01",
    animDict = "amb@world_human_stand_mobile@male@text@base",
    animName = "base",
    hintIcon = "talk",
    blips    = { sprite = 119, color = 50, text = "Foreman" },
    dialogue = { name = "Paul", tag = "Lumberjack", startMsg = "Hi!", elements = { ... } },
})

positionRegister(cfg)

Static interaction at world coordinates (no NPC, no streaming). The coords field must be a vec3 — pass a vec4 and the call is ignored (use pedRegister for those).

entityRegister(cfg)

Bind an interaction to an existing entity handle. Optional bone field attaches the hint to a specific bone for moving entities.

lua
exports["core_interact"]:entityRegister({
    entity   = vehicleHandle,
    bone     = "boot",
    hintIcon = "interact",
    message  = "Open trunk",
    onInteract = function(id, ent, spec) end,
})

entityRegisterByHash(hash, cfg)

Bind an interaction to every spawned instance of a model hash. A single shared scanner thread polls GetGamePool("CObject") every Config.HashScanInterval ms — adding 1 or 100 watchers has the same cost.

interactCreate(cfg) → id / interactRemove(id)

Dynamically add and remove an interaction at runtime — useful for quest-driven points that should appear, then disappear.

Lower-level

  • HandleHoldTextUI(id, data), RemoveHoldTextUI(id), CloseHoldTextUI(id), RemoveHoldTextUIs() — direct access to the hold panel system.
  • HandleTextUI(id, data), CloseTextUI(id), RemoveTextUI(id), RemoveTextUIs() — the simpler TextUI variant (no hold/hint).
  • Draw3DSprite({ duiHandler, coords, maxDistance, hintOnly }) — render a DUI as a 3D world-space sprite (called internally on every tick).
  • IsDuiVisible() → boolean — true while at least one panel is on screen.
  • unlockLastInteract() — re-arm the most recently locked interaction (after an async action finishes, for example).
previousconfigurationnextinteraction-config-reference
VAR
Var FiveM

Premium FiveM scripts. Low resmon, high quality. Built for ESX, QBCore & Standalone.

28scripts
1,500+sales

Scripts

  • Marketplace
  • Bundles
  • Theme Customizer

Most Popular

  • Supermarket Simulator
  • FiveM Casino Script
  • FiveM Coin Shop
  • FiveM Emote Menu
  • FiveM Paintball Script
  • FiveM Clothing Shop Script
  • FiveM Interaction Script
  • FiveM Character Creator

Resources

  • Free Scripts
  • Guides
  • News
  • Documentation
  • Support

Company

  • About
  • Contact
  • Discord

Legal

  • Terms
  • Privacy
  • Refunds

© 2026 Var FiveM. All sales final.

Payments byTebex