Skip to main content
lation_interact is a drop-in replacement for qb-target. Every export - AddBoxZone, AddTargetModel, AddTargetEntity, the globals, the data accessors, all of it - is answered under the qb-target name, with the behavior your scripts expect: label keying, job/gang/item/citizenid gates, canInteract, event dispatch by type, cleanup when a resource stops. Works with QBCore and Qbox. No consumer script needs editing. The switch:
  1. Remove (or stop) the real qb-target
  2. ensure lation_interact after your framework core, before every script that uses targeting
Scripts that check for qb-target see it as installed, and everything they register shows up in the new interaction UI automatically. Zone centers arrive the way PolyZone takes them - any vector, or a table with named or positional components; a 2D center takes the player’s z at registration.
qb-target also doubles as a ped spawner (SpawnPed, RemoveSpawnedPed, DeletePeds, GetPeds) - plenty of scripts rely on it, so it ships here too and works identically, including spawn-on-load and cleanup on player unload.

What You Might Notice

A few things don’t translate one-to-one from the targeting eye to an attention model. Each of these prints a one-time console note if a script actually uses it:
  • Zones reach from a step away - the stack goes live within Config.Stages.reach (2.4m) of the zone’s surface, never farther than the zone’s targetoptions.distance. qb’s eye reached a default-distance zone from 7.0m; the per-option distance gates are still qb’s exact math.
  • Poly and combo zones become spheres - approximated around the zone’s center. Box and circle zones are exact.
  • Eye cosmetics are ignored - targeticon, drawColor, drawDistance, and outline settings have no meaning without a crosshair.
  • No targeting eye - there’s no held key or crosshair, so the eye-machinery exports (DisableTarget, EnableNUI, …) exist but do nothing. AllowTargeting still works: false puts the whole layer to sleep, true wakes it.

Reveal Mode

Bridged targets render nothing until you look at them by default. If you’d rather every bridged target get a grain (a point of light marking it from a distance), set Config.Reveal.bridged = 'ambient' in config.lua.

Vehicle Doors

Door, hood and trunk toggles are built in - one chip per door, on the door itself - so qb-target’s Config.EnableDefaultOptions isn’t missed. Config.VehicleDoors = 'passive' keeps them hidden until the interact control is held; false turns them off.

Per-Script Behavior

Two things you can set without touching the script itself:
  • Passive - list a resource in Config.PassiveResources and everything it registers stays hidden until the interact control is held, like a classic target. See passive mode.
  • In a vehicle - options a script flags with allowInVehicle = true stay live from a seat; everything else follows Config.InVehicle. See in a vehicle.

Updating

After updating lation_interact, do a full server restart so every script that depends on it registers its targets correctly.