lation scripts
scriptsmembershipdocs
see the scripts
Skip to Content
lation ui
lation interact
PlayersSwitching from a target scriptConfigurationDevelopersTroubleshootingChangelog
lation banking
lation shops
lation jobs
lation weed
lation chop shop

classics

money laundering
drug sales
coke processing
meth crafting
metal detecting
scuba diving
lation interact

Configuration

Every option in lation interact's config.lua with its default value, plus the theme it takes from lation ui, the language convar and the open files you can edit.

All settings live in config.lua at the root of the resource. The file ships unescrowed, along with the framework bridge, the vehicle door code and the language files.

Changes apply on the next full server restart. Restarting only lation_interact clears everything other scripts registered with it, and most scripts register only when they start.

Update check

OptionDefaultWhat it does
Config.versiontrueChecks for a newer release on start and prints a notice in the server console when there is one.

Reveal distances

config.lua
Config.Stages = {
    grain = 8.0,
    name = 4.5,
    reach = 2.4,
    exitMargin = 0.4
}
OptionDefaultWhat it does
grain8.0Meters at which a point of light marks a point or zone.
name4.5Meters at which the name appears on the thing the player looks at.
reach2.4Meters at which the options open and keys go live.
exitMargin0.4How far the player must back out past a threshold before that stage lets go, so standing on a boundary never flickers.

A registration can set its own stages. Sphere and box zones work out their stages from their size unless they set them, and the ox_target and qb-target bridges work theirs out from each option's distance.

How lists open

OptionDefaultWhat it does
Config.ExpandMode'smart''smart' opens a single option on its own and makes a list of several wait for the confirm key. 'auto' always opens on its own. 'manual' always waits for the confirm key.

'smart' counts the options the player can actually see, so a list checked down to one row opens on its own. A waiting list also opens on a left click while the interact key is held. A registration can override this with expand.

In 'manual' mode, and for lists in 'smart' mode, a list folds back after the player picks an option (0.85 s after the option answers, 1.5 s after a refusal), unless that option sets keepOpen.

What shows before focus

config.lua
Config.Reveal = {
    point = 'ambient',
    bridged = 'focus'
}
OptionDefaultWhat it does
point'ambient'Points and zones registered through the native API. 'ambient' shows a point of light from the grain distance; 'focus' shows nothing until the player looks at it.
bridged'focus'Zones registered through the ox_target and qb-target bridges. Set 'ambient' to give every bridged zone a point of light.

Vehicles, peds and objects always reveal on focus, whatever this is set to. A point or zone can override this with reveal.

Keys

OptionDefaultWhat it does
Config.ConfirmKey'E'Runs the highlighted option when it has no key of its own, and opens lists that wait. Takes a name from the key names list. An unknown name prints a warning and turns keyboard confirm off.
Config.InteractKey'LMENU'The keyboard default for the interact key (Left Alt). Registered as a FiveM key binding, so each player can change it under Settings > Key Bindings > FiveM, where it is listed as Interact (hold). Takes FiveM keyboard mapper names, such as LMENU, LSHIFT, LCONTROL, F, G, X or NUMPAD0. Set false to turn it off.
Config.InteractControl19The controller side of the interact key, as a control id (19 is D-pad down). Only read while a controller is in use. Set false to turn it off.

On a controller, confirm also answers to control 38 (INPUT_PICKUP). Rows are highlighted only with the mouse, and keys of their own are read from the keyboard, so a controller runs only the first row of a list, and only when that row has no key of its own.

While the interact key is held, attack, aim and melee are off, so clicks go to the card instead of the weapon.

Key names

Config.ConfirmKey and an option's key take these names. They are not case sensitive.

GroupNames
Letters and digitsA to Z, 0 to 9
Function keysF1 to F24
NumpadNUMPAD0 to NUMPAD9, NUMPADADD, NUMPADSUB, NUMPADMUL, NUMPADDIV, NUMPADDOT
ModifiersSHIFT, LSHIFT, RSHIFT, CONTROL, LCONTROL, RCONTROL, ALT, LALT, RALT, CAPSLOCK
Editing and navigationSPACE, TAB, ENTER, BACKSPACE, INSERT, DELETE, HOME, END, PAGEUP, PAGEDOWN, UP, DOWN, LEFT, RIGHT
PunctuationMINUS, EQUALS, COMMA, PERIOD, SLASH, SEMICOLON, APOSTROPHE, GRAVE, LBRACKET, RBRACKET, BACKSLASH
AliasesRETURN (ENTER), CTRL (CONTROL), PGUP (PAGEUP), PGDN (PAGEDOWN), TILDE (GRAVE), QUOTE (APOSTROPHE)

Config.InteractKey uses FiveM's own key binding names (LMENU for Left Alt), not this list.

Focus

OptionDefaultWhat it does
Config.FocustrueShows a soft vignette around the screen while the interact key is held. Set false to turn it off.

Passive mode

Passive interactions are hidden until the player holds the interact key, like a classic target. Hidden ones have no point of light, no name and no input. When the key is released, a passive list closes right away.

config.lua
Config.Passive = false
Config.PassiveResources = {}
OptionDefaultWhat it does
Config.Passivefalsetrue makes every interaction on the server passive.
Config.PassiveResources{}Resource names whose registrations are passive, as a list like { 'qb-garages' } or a set like { ['qb-garages'] = true }. Works for escrowed scripts and for scripts that register through the ox_target or qb-target bridges.

A single registration can set passive = true or passive = false, which wins over both options. The built-in vehicle doors have their own setting, under vehicles.

If passive mode is on but both Config.InteractKey and Config.InteractControl are false, the console warns that passive interactions can never be revealed.

Look

config.lua
Config.AccentIcons = false
Config.Hint = true
Config.Grain = {
    size = 0.02,
    alpha = 180,
    breathe = true
}
OptionDefaultWhat it does
Config.AccentIconsfalseHeader icons are light by default. true tints them with the theme accent and follows theme changes.
Config.HinttrueThe hint line under an open list ("tap key · alt + click"). It only shows on lists of more than one option. Set false once your players know the controls.
Config.Grain.size0.02Width of the point of light, as a fraction of the screen width.
Config.Grain.alpha180Opacity of the point of light, 0 to 255.
Config.Grain.breathetrueMakes the point of light pulse gently.

The hint's text comes from ui.hint in the language files and names Alt whatever the interact key is. If you move Config.InteractKey off Left Alt, change the text there too.

Up to 20 points of light are drawn at once; past that, the nearest win.

Theme

There is nothing to set. While lation_ui runs, the cards take its theme: colors, opacity, corners, border width, shadow, font, UI scale and reduced motion, and the point of light takes the accent. A server theme saved with /uitheme reaches them right away; a player's personal theme, the next time that player joins. Without lation ui, the default look applies. See theming.

The Register card four times: in Lation, dark grey with a faint blue glow behind its icon; in Synthwave, violet with round corners and a violet-edged keycap; in Terminal, green on black with square corners and a monospaced font; and in Carbon, near black with a thick border and a faint amber glow behind its icon
The same card in Lation, Synthwave, Terminal and Carbon

Vehicles

config.lua
Config.IncludeOwnVehicle = false
Config.VehicleDoors = true
Config.InVehicle = {
    entities = false,
    points = true
}
OptionDefaultWhat it does
Config.IncludeOwnVehiclefalseShows options on the vehicle the player is sitting in. Off by default, since they would stay focusable the whole drive.
Config.VehicleDoorstrueBuilt-in door toggles: one per door, plus the hood and trunk, from outside the vehicle. true shows them like everything else, 'passive' hides them until the interact key is held, false turns them off for scripts that bring their own door handling.
Config.InVehicle.entitiesfalseFrom a seat, interactions on other vehicles, peds, players and objects hide. Set true to keep them.
Config.InVehicle.pointstrueFrom a seat, points and zones stay live, for garages, drive-thrus and car washes. Set false to hide them.

A registration can set inVehicle = true or false to override Config.InVehicle. An option bridged from ox_target or qb-target that sets allowInVehicle = true keeps its interaction live from a seat.

The door toggles sit on the door handle, or in the middle of the hood or trunk lid. They don't show while the player is seated, while the vehicle is locked, or for a door the model lacks or that is damaged. A toggle on a vehicle another player's game controls is passed to that player through the server. setr ox_target:defaults 0 in server.cfg also turns them off.

Suppression

When any of these states is true, the whole layer goes quiet: no points of light, no focus, no input.

config.lua
Config.Suppress = {
    dead = true,
    cuffed = true,
    pauseMenu = true,
    nuiFocus = true,
    progress = true
}
OptionDefaultWhat it does
deadtrueHides while the player is dead or downed. Death is detected on every framework; Qbox and QBCore also count the isdead and inlaststand metadata, and ESX counts PlayerData.dead.
cuffedtrueHides while the player is cuffed. Qbox and QBCore read the ishandcuffed metadata; every framework also checks for the standard restrained animations.
pauseMenutrueHides while the pause menu is open.
nuiFocustrueHides while another resource holds NUI focus, such as an inventory, phone or dialog.
progresstrueHides while an ox_lib progress bar or a progressbar (QBCore) bar is running. Neither is a dependency.

Dead and cuffed detection lives in bridge/client.lua, in IsPlayerDead and IsPlayerCuffed, so you can adapt it to your scripts. A cuff script can also hide the layer itself with the suppress export. See hiding the layer.

Language

lation interact reads its language from the lation:locale convar and falls back to English when there is no file for it. Set it in server.cfg with setr, since the text is shown on the client:

server.cfg
setr lation:locale "de"

Included languages: cs, da, de, en, es, fr, it, nl, no, pl, pt, sv and zh. The files in locales/ hold the hint line, the key binding's name in FiveM settings and the vehicle door labels; every other label on a card is the registering script's own text. To add a language, copy locales/en.json to a new file named after its code and translate it. Keep every key: a key missing from the file shows as its name, such as ui.hint.

Open files

These files ship unescrowed so you can adapt them to your server:

FileWhat it holds
config.luaEverything on this page.
bridge/client.luaFramework and inventory detection, plus GetPlayerGroups (job and gang checks), HasItem (item checks), IsPlayerDead and IsPlayerCuffed. Each has a marked spot for a custom framework or inventory.
client/defaults.luaThe built-in vehicle door toggles.
server/defaults.luaThe server relay that passes a door toggle to the vehicle's network owner.
locales/*.jsonThe language files.

Still stuck? Ask in our Discord: the people who write the scripts answer.

Last updated November 9, 2026

Switching from a target script

How to move a server from ox_target, qb-target or qtarget to lation interact, what each of the three bridges supports, and where bridged scripts behave differently.

Developers

The lation interact client exports for points, zones, entities, models and entity classes, every registration and option field, the checks, the onSelect and canInteract callbacks, events and feedback.

On this page

Update checkReveal distancesHow lists openWhat shows before focusKeysKey namesFocusPassive modeLookThemeVehiclesSuppressionLanguageOpen files
lation scripts

FiveM scripts for Qbox, QBCore and ESX servers, made to look and work like one product.

store

  • all scripts
  • membership
  • classics

help

  • docs
  • discord
  • email support

legal

  • terms
  • refunds
  • privacy
© 2026 Lation Labslationscripts.com
  • home
  • scripts
  • membership
  • docs