Client Exports
All client exports are available through the 17mov_Interface resource.
local interface = exports['17mov_Interface']Optional arguments and fields are marked with ?.
All exports listed on this page are also fully demonstrated in:
client/examples.luaYou can use that file as a reference for usage examples.
Notifications
NotificationData
id?string- Reusing the same ID updates the existing notification.type?string-success,info,warning,errorormessage. Defaults toinfo.title?string- Notification title.description?string- Notification description.duration?number- Duration in milliseconds.icon?string- Lucide icon name.iconColor?string- Hex icon color.group?string- Group key used for duplicate stacking.
showNotification(data)
Displays a notification.
Arguments
dataNotificationData | string
When a string is provided, it is used as the notification title.
Text UI
TextUIOptions
type?string-accent,info,success,warningorerror.icon?string- Lucide icon name.iconColor?string- Hex icon color.duration?number- Automatically hides the Text UI after the specified time.
showTextUI(text, options?)
Displays a Text UI element.
Arguments
textstring- Text to display.options?TextUIOptions
Key hints such as [E] are rendered as key elements.
hideTextUI()
Hides the currently displayed Text UI.
isTextUIOpen()
Returns
Progress Bar
ProgressAnimation
Animation played while the progress bar is active.
dict?string- Animation dictionary.clip?string- Animation clip.flag?number- Animation flag. Defaults to49.blendIn?numberblendOut?numberduration?numberplaybackRate?numberlockX?booleanlockY?booleanlockZ?booleanscenario?string- Can be used instead of a dictionary and clip.playExitAnim?boolean
Example:
A scenario can also be used:
ProgressProp
Prop attached to the player while the progress bar is active.
modelstring | number- Prop model.bone?number- Bone ID. Defaults to60309.pos?vector3- Position offset.rot?vector3- Rotation offset.rotOrder?number- Rotation order.
Example:
ProgressDisable
Controls disabled while the progress bar is active.
move?booleancar?booleancombat?booleansprint?booleanmouse?boolean
Example:
ProgressData
durationnumber- Duration in milliseconds.label?string- Main progress label.description?string- Additional description.canCancel?boolean- Allows the player to cancel the progress.useWhileDead?booleanallowRagdoll?booleanallowCuffed?booleanallowFalling?booleanallowSwimming?booleananim?ProgressAnimationprop?ProgressProp | ProgressProp[]propTwo?ProgressPropdisable?ProgressDisable
progressBar(data)
Starts a progress bar and waits until it finishes or gets cancelled.
Arguments
dataProgressData
Returns
true when completed and false when cancelled or interrupted.
Example
progressCircle(data)
Alias of progressBar.
Arguments
dataProgressData
Returns
startProgress(data, onStart?, onTick?, onFinish?)
Starts a non-blocking progress bar.
Arguments
dataProgressDataonStart?functiononTick?functiononFinish?function(cancelled: boolean)
Returns
cancelProgress()
Cancels the active progress bar.
stopProgress()
Stops the active progress bar and marks it as completed.
progressActive()
Returns whether a progress bar is currently active.
Returns
Input Dialog
InputDialogHeader
title?stringdescription?stringicon?string
InputDialogOptions
allowCancel?boolean- Displays a cancel button.
Common Input Fields
These fields are available for every input type:
type?stringlabel?stringdescription?stringplaceholder?stringicon?stringdefault?anyrequired?booleandisabled?boolean
TextInput
type"text" | "input"min?number- Minimum length.max?number- Maximum length.password?boolean
Returns string.
NumberInput
type"number"min?numbermax?numberstep?numberdecimals?numbernegative?boolean
Returns number.
CheckboxInput
type"checkbox"text?stringchecked?boolean
Returns boolean.
SelectOption
valueanylabelstringdisabled?boolean
SelectInput
type"select" | "multi-select"optionsSelectOption[]
Returns the selected value.
SliderInput
type"slider"min?numbermax?numberstep?numberunit?string
Returns number.
ColorInput
type"color"presets?string[]
Returns a hex color string.
DateInput
type"date"format?stringreturnString?booleanclearable?boolean
Returns a timestamp or formatted string.
DateRangeInput
type"date-range"format?stringreturnString?booleanclearable?boolean
Returns:
DateTimeInput
type"date-time"format?stringreturnString?booleanclearable?booleanminuteStep?number
Returns a timestamp or formatted string.
TimeInput
type"time"minuteStep?numberclearable?boolean
Returns:
TextareaInput
type"textarea"rows?numbermin?numbermax?number
Returns string.
InputRow
An input row can be any of the following types:
inputDialog(header, rows, options?)
Displays an input dialog and waits for the player's response.
Arguments
headerstring | InputDialogHeaderrowsInputRow[]options?InputDialogOptions
Returns
A table containing values in the same order as the provided rows, or nil when cancelled.
Example
closeInputDialog()
Closes the currently displayed input dialog.
Alert Dialog
AlertDialogHeader
title?stringdescription?stringicon?string
AlertDialogLabels
confirm?stringcancel?string
AlertDialogOptions
allowCancel?booleanlabels?AlertDialogLabels
AlertDialogData
headerstring | AlertDialogHeadercontentstring- Markdown is supported.options?AlertDialogOptions
alertDialog(data, timeout?)
Displays an alert dialog and waits for the player's response.
Arguments
dataAlertDialogDatatimeout?number- Timeout in milliseconds.
Returns
When using timeout, the call is rejected with timeout after the specified time.
closeAlertDialog(reason?)
Closes the currently displayed alert dialog.
Arguments
reason?string
Context Menu
ContextMetadata
labelstringvalue?anyprogress?number
ContextOption
title?stringdescription?stringicon?stringiconColor?stringimage?stringprogress?numbercolorScheme?stringarrow?booleandisabled?booleanreadOnly?booleanmetadata?ContextMetadata[] | tablemenu?stringonSelect?function(args)event?stringserverEvent?stringargs?any
ContextMenu
idstringtitlestringdescription?stringmenu?string- Parent context ID.canClose?booleanoptionsContextOption[] | tableonExit?functiononBack?function
registerContext(context)
Registers one or multiple context menus.
Arguments
contextContextMenu | ContextMenu[]
showContext(id)
Opens a registered context menu.
Arguments
idstring
hideContext(onExit?)
Closes the currently displayed context menu.
Arguments
onExit?boolean
getOpenContext()
Returns
List Menu
ListMenuValue
labelstringdescription?string
A plain string can also be used instead.
ListMenuOption
label?stringdescription?stringicon?stringiconColor?stringvalues?string[] | ListMenuValue[]defaultIndex?numberchecked?booleanprogress?numbercolorScheme?stringclose?booleandisabled?booleanargs?any
ListMenu
idstringtitlestringposition?string-top-left,top-right,bottom-leftorbottom-right.optionsListMenuOption[]menu?stringcanClose?booleancursor?booleandisableInput?booleanonClose?function(keyPressed)onSelected?function(index, secondary, args)onSideScroll?function(index, scrollIndex, args)onCheck?function(index, checked, args)cb?function(index, scrollIndex, args, checked)
registerMenu(data, cb?)
Registers a list menu.
Arguments
dataListMenucb?function(index, scrollIndex, args, checked)
setMenuOptions(id, options, index?)
Updates all options or one specific option.
Arguments
idstringoptionsListMenuOption[] | ListMenuOptionindex?number
showMenu(id, startIndex?)
Opens a registered menu.
Arguments
idstringstartIndex?number
hideMenu(onExit?)
Closes the active menu.
Arguments
onExit?boolean
getOpenMenu()
Returns
Radial Menu
RadialItem
id?stringlabelstringicon?stringonSelect?function(menuId, index, args) | stringevent?stringserverEvent?stringargs?anymenu?stringcondition?functiondisabled?booleankeepOpen?boolean
RadialMenu
idstringitemsRadialItem[]
registerRadial(menu)
Registers a radial submenu.
Arguments
menuRadialMenu
addRadialItem(items, parentMenuId?)
Adds one or multiple radial items.
Arguments
itemsRadialItem | RadialItem[]parentMenuId?string
removeRadialItem(id, parentMenuId?)
Arguments
idstringparentMenuId?string
clearRadialItems()
Removes all root radial items.
disableRadial(state)
Arguments
stateboolean
openRadial(id?)
Arguments
id?string
closeRadial()
Closes the radial menu.
toggleRadial(id?)
Arguments
id?string
isRadialOpen()
Returns
getCurrentRadial()
Returns
NPC Dialog
DialogCamera
distance?numberheight?numberside?numberfov?numberblend?number
DialogPed
modelstring | numbercoordsvector3 | vector4heading?numberdistance?number- Spawn distance.interact?number- Interaction distance.label?stringicon?stringprompt?stringhelpText?stringscenario?stringfreeze?booleancanInteract?function(entity, distance)canInteractInterval?number
DialogOption
labelstringdescription?stringicon?stringdisabled?booleancondition?functionnext?stringclose?booleanvalue?anyargs?anyonClick?function(args, ped, result) | stringonSelect?function(args, ped, result) | stringevent?stringserverEvent?string
DialogNode
speaker?stringtextstring | string[]options?DialogOption[]onOpen?function(nodeId, ped)
Dialog
id?stringtitle?stringstartstringnodestable<string, DialogNode>radius?numbercamera?DialogCameraped?DialogPedhideHud?booleanhidePlayer?booleanfaceCamera?booleanfacialAnim?booleancanClose?booleancanInteract?function(entity, distance)onStart?function(ped)onSelect?function(result, ped)onEnd?function(ped, result)onResult?function(result, ped)
DialogResult
dialogstringnodestringindexnumberlabelstringvalue?anyargs?anypathstring[]
registerDialog(dialog)
Registers one or multiple dialogs.
Arguments
dialogDialog | table<string, Dialog>
Returns
The generated or provided dialog ID when a single dialog is registered.
startDialog(dialogOrId, ped?, customSettings?)
Starts a dialog and waits for the player's response.
Arguments
dialogOrIdDialog | stringped?numbercustomSettings?table
Returns
stopDialog(silent?)
Stops the active dialog.
Arguments
silent?boolean
removeDialog(id)
Removes a registered dialog and its interaction.
Arguments
idstring
isDialogOpen()
Returns
Sounds
playSound(name, volume?, exclusive?)
Plays a registered sound.
Arguments
namestringvolume?numberexclusive?boolean
stopSound(name?)
Stops a specific sound.
Arguments
name?string
When no sound is specified, all sounds are stopped.
HUD
toggleDisplay(state)
Shows or hides the HUD.
Arguments
stateboolean
openEditor()
Opens the player's HUD editor.
setValue(key, value)
Sets a HUD value.
Arguments
keystringvalueany
getValue(key)
Returns a stored HUD value.
Arguments
keystring
Returns
getStatus()
Returns the current status values.
Returns
Info Panel
InfoItemValue
valueanysub?anybadge?any
setInfoItem(id, value, sub?, badge?)
Updates an info panel item.
Arguments
idstringvalueany | InfoItemValuesub?anybadge?any
Or:
refreshInfoItems()
Refreshes all function-driven info panel items.
Radar / Minimap
hideRadar(state)
Temporarily hides or shows the minimap.
Arguments
stateboolean
setMapLoop(state)
Enables or disables minimap management.
Arguments
stateboolean
Seatbelt
updateBeltsState(state)
Updates the seatbelt state without playing the toggle sound.
Arguments
stateboolean
getBeltsState(cb?)
Arguments
cb?function(state)
Returns
Cinematic Mode
enableCinematic()
Enables cinematic mode.
disableCinematic()
Disables cinematic mode.
toggleCinematic()
Toggles cinematic mode.
isCinematic()
Returns
Stress
addStress(amount)
Adds stress.
Arguments
amountnumber
removeStress(amount)
Removes stress.
Arguments
amountnumber
getStress()
Returns
setStressEnabled(state)
Enables or disables the stress system.
Arguments
stateboolean
isStressEnabled()
Returns
setStressEffects(state)
Enables or disables stress effects.
Arguments
stateboolean
Stress Sources
StressSourceOptions
enabled?booleancheck?function(service, now, source)poll?booleaninterval?numbergain?numbercooldown?numbernotify?boolean
check is required unless poll = false.
addStressSource(id, options)
Registers a custom stress source.
Arguments
idstringoptionsStressSourceOptions
removeStressSource(id)
Arguments
idstring
setStressSource(id, state)
Arguments
idstringstateboolean
Returns
setStressSourceGain(id, amount)
Arguments
idstringamountnumber
isStressSource(id)
Arguments
idstring
Returns
getStressSources()
Returns all registered stress sources.
triggerStressSource(id)
Triggers a manually controlled stress source.
Arguments
idstring
Last updated