Dialogue (client)

Client-only NUI dialogue system. Access via bridge.dialogue (lazy) or exports.Newb_Bridge:Dialogue(). Accessing this module on the server throws.

RegisterMenu(menu)

Signature: RegisterMenu(menu: DialogueMenu): string

ParamType
menuDialogueMenu

| Returns | string — menu id |

local id = bridge.dialogue.RegisterMenu({
    id = 'beekeeper',
    title = 'Beekeeper',
    text = 'Need supplies?',
    options = {
        { title = 'Buy jar', onSelect = function() end },
        { title = 'Sell honey', onSelect = function() end },
    },
})

UnregisterMenu(id)

Signature: UnregisterMenu(id: string): boolean

ParamType
idstring

| Returns | boolean |

bridge.dialogue.UnregisterMenu('beekeeper')

UpdateMenu(id, updates)

Signature: UpdateMenu(id: string, updates: DialogueMenu | table): boolean

ParamType
idstring
updatesDialogueMenu | table

| Returns | boolean |

bridge.dialogue.UpdateMenu('beekeeper', { text = 'Welcome back!' })

SetMenuOption(id, optionKey, updates)

Signature: SetMenuOption(id: string, optionKey: string | number, updates: DialogueOption): boolean

ParamType
idstring
optionKeystring | number
updatesDialogueOption

| Returns | boolean |

bridge.dialogue.SetMenuOption('beekeeper', 1, { title = 'Buy premium jar', disabled = false })

RemoveMenuOption(id, optionKey)

Signature: RemoveMenuOption(id: string, optionKey: string | number): boolean

ParamType
idstring
optionKeystring | number

| Returns | boolean |

bridge.dialogue.RemoveMenuOption('beekeeper', 2)

RefreshMenu(id)

Signature: RefreshMenu(id: string): boolean

ParamType
idstring

| Returns | boolean — re-renders the menu if it is open |

bridge.dialogue.RefreshMenu('beekeeper')

GetMenu(id)

Signature: GetMenu(id: string): DialogueMenu?

ParamType
idstring

| Returns | DialogueMenu? |

local menu = bridge.dialogue.GetMenu('beekeeper')

OpenMenu(id, target?)

Signature: OpenMenu(id: string, target?: number | vector3 | vector4 | DialogueTargetOptions): void

ParamTypeDescription
idstringRegistered menu id
targetnumber | vector3 | vector4 | DialogueTargetOptions?Ped entity or world position

Fails silently if the player is too far from the target.

bridge.dialogue.OpenMenu('beekeeper', shopPed)
 
bridge.dialogue.OpenMenu('beekeeper', {
    ped = shopPed,
    maxDistance = 3.0,
    camFov = 40.0,
})

GetNavigationArgs()

Signature: GetNavigationArgs(): table?

| Returns | Args from the last menu-navigation select, or nil |

local args = bridge.dialogue.GetNavigationArgs()

Close(sessionId)

Signature: Close(sessionId: string): void

ParamTypeDescription
sessionIdstringSame as the registered menu id (OpenMenu does not return a separate session id)
bridge.dialogue.Close('beekeeper')

PlayPedSpeech(ped, speech, param?)

Signature: PlayPedSpeech(ped: number, speech: string | DialogueSpeechOptions, param?: string): boolean

ParamType
pednumber
speechstring | DialogueSpeechOptions
paramstring?

| Returns | boolean |

bridge.dialogue.PlayPedSpeech(ped, 'GENERIC_HI', 'SPEECH_PARAMS_FORCE')

PlayPedAnim(ped, anim, animId?)

Signature: PlayPedAnim(ped: number, anim: DialogueAnimOptions, animId?: string): boolean

ParamType
pednumber
animDialogueAnimOptions
animIdstring?

| Returns | boolean |

bridge.dialogue.PlayPedAnim(ped, { dict = 'gestures@m@standing@casual', clip = 'gesture_hello' })

Types

DialogueMenu

FieldType
idstring?
titlestring
descriptionstring?
textstring?
typewriterboolean?
menustring?
optionsDialogueOption[]
onEnterfun()?
onExitfun()?

DialogueOption

FieldType
titlestring?
descriptionstring?
inputDialogueInputField?
disabledboolean?
readOnlyboolean?
itemstring | { item, count?, metadata? }?
menustring?
onSelectfun(args: any)?
eventstring?
serverEventstring?
type'info' | 'error' | 'success' | 'warning'

DialogueTargetOptions

FieldType
pednumber?
entitynumber?
coordsvector3 | vector4?
maxDistancenumber?
camFovnumber?

DialogueInputField

Inline input on a DialogueOption (option.input).

FieldType
type'input' | 'number' | 'checkbox' | 'select' | 'multi-select' | 'slider' | 'textarea'
labelstring
descriptionstring?
placeholderstring?
iconstring?
requiredboolean?
disabledboolean?
defaultany?
passwordboolean?input only
min / maxnumber? — numeric types, or textarea row count
options{ value, label?, description? }[]?select / multi-select

DialogueAnimOptions

FieldType
dictstring
clipstring
flagnumber?
durationnumber?