Skip to the content
Docs

Target, Text UI, Progress, Notify & Emotes

On this page8

Five small integrations. None of them is required — every one has a native fallback.

Target

lua
Config.TargetSystem = 'auto'
Config.StartMode    = 'menu'       -- 'menu' | 'prompt' | 'target'

Only used when Config.StartMode = 'target', and for the clinic NPC.

SystemSupportAuto orderCalls
sleepless_interactStub1its global-player add / remove
ox_targetSupported2addGlobalPlayer / removeGlobalPlayer, addLocalEntity
qb-targetSupported3AddGlobalPlayer / RemoveGlobalPlayer, AddTargetEntity
interactStub4its global player interaction

sleepless_interact is checked before ox_target because it provides the ox_target and qtarget names.

In 'menu' mode, F3 opens a small menu on the left with four options: Scan person to memory, Recognize, Camera recordings and Stop looking. Options are chosen with the UP / DOWN arrows and Enter; people with LEFT / RIGHT and Space. The number keys do nothing in it, so they never fire your inventory hotbar by accident.

The clinic uses Config.Implant.Interaction: 'auto' (target script if one runs, otherwise E), 'target' or 'prompt'.

Text UI — the prompt text

lua
Config.TextUISystem = 'native'

Used for the Recognize [E] text of Config.StartMode = 'prompt' and for the clinic prompt. The default F3 menu has no prompt text.

SystemSupportAuto orderCalls
native floating helpSupportedthe defaultdrawn by us
ox_libSupportedauto 1showTextUI / hideTextUI
jg-textuiSupportedauto 2DrawText / HideText
esx_textuiSupportedauto 3ESX.TextUI / ESX.HideUI
qb-core DrawTextSupportedauto 4DrawText / HideText
okokTextUIStubauto 5Open / Close
lation_uiStubauto 6showText / hideText
cd_drawtextuiStubauto 7its events

The arrow over the head is always ours (Config.Prompt.Arrow). Only the text goes through this selector.

Config.Prompt.HelpSlot picks floating-help slot 0 or 1; use 1 if another script already owns slot 0.

Progress bars

lua
Config.ProgressSystem = 'auto'

Used for surgery, printing and device setup. Never for the scan itself — the scan has its own HUD.

SystemSupportAuto orderCalls
ox_libSupported1progressBar
qb-progressbarSupported2 (on qb / qbx)QBCore.Functions.Progressbar
esx_progressbarSupported3 (on esx)ESX.Progressbar
lation_uiSupported4progressBar
our own NUI barSupported5 (fallback)our NUI

'none' turns progress bars off entirely; the actions still take their time, they just show nothing.

Notifications

lua
Config.NotifySystem = 'auto'
SystemSupportAuto orderCalls
ox_libSupported1exports.ox_lib:notify
Qbox / ESX / QBSupported2 (your framework)exports.qbx_core:Notify, ESX.ShowNotification, QBCore.Functions.Notify
GTA feedSupported3 (fallback)the native feed
okokNotifySupportedexplicit onlyAlert
lation_uiSupportedexplicit onlynotify

okokNotify and lation_ui are never picked by 'auto' — name them explicitly if you want them.

Emotes

lua
Config.EmoteSystem = 'auto'
SystemSupportAuto orderCalls
rpemotes-rebornSupported1Execute(cmd, 'Emotes') on v2.1.2+, otherwise EmoteCommandStart
rpemotesSupported2EmoteCommandStart / EmoteCancel
scully_emotemenuSupported3playEmoteByCommand / cancelEmote
dpemotesStub4ExecuteCommand('e ' .. cmd)
nativeSupported5 (fallback)TaskPlayAnim, flag 49

The four emotes

EmoteWhenDefault commandFallback animation
thinkingwhile memorizing someone new (not for a quick look at someone you know)thinkmisscarsteal4@aliens / rehearsal_base_idle_director
writingwitness statementnotepadmissheistdockssetup1clipboard@base / base
sweepmagnetic scanner(none — always the animation)amb@world_human_security_shine_torch@male@base / base
mirrormirror checkadjustmissmic4 / michael_tux_fidget

Each entry takes command (the emote name for your emote script, or false to always use the animation), dict, clip and flag. Flag 49 = loop, upper body only — the player can still walk.

If the emote command fails, the plain animation is played instead. Nothing ever blocks on an emote.

Weather sync

lua
Config.WeatherSyncSystem = 'auto'
SystemSupportAuto order
qbx_weathersyncSupported1
qb-weathersyncSupported2
Renewed-WeathersyncStub3
cd_easytimeStub4
vSyncStub5
weathersyncStub6

Only used for one thing: pausing the weather sync while an admin runs clothing Auto-scan, so the studio lighting stays constant, and resuming it afterwards.

Screenshots

lua
Config.ScreenshotSystem = 'auto'
SystemSupportAuto orderNotes
built-in NUI game viewSupported1Needs no extra resource; checked automatically before first use.
screencaptureSupported2Exports only — never bundled.
screenshot-basicStub3Unmaintained; costs GPU while running.
none——No photos. Camera reports still print, without a picture.

Where the picture is stored is a separate setting: Photos & Screenshots.

Custom

Every one of these takes 'custom' and has a branch in its bridge/*.lua file:

SelectorFile
Config.TargetSystembridge/target.lua
Config.TextUISystembridge/textui.lua
Config.ProgressSystembridge/progress.lua
Config.NotifySystembridge/notify.lua
Config.EmoteSystembridge/emote.lua
Config.WeatherSyncSystembridge/studio_client.lua
Config.ScreenshotSystembridge/screenshot_client.lua

See Writing a Custom Adapter.