Skip to main content

Speech

Provides functions for controlling speech and dialogue on NPCs.

info

This module can only be used in Entity scripts.

Properties​

authorName​

The name of the NPC, displayed in the dialogue prompt. This property is read-only.

bubbleText​

The text displayed in a speech bubble. This property is read-only.

promptText​

The text displayed in the dialogue prompt. This property is read-only.

Functions​

setText(text)​

Sets the text displayed in a speech bubble.

Parameters​

  • text — The text value to display.

Example​

Set a welcome message on a NPC.

function onStart()
Speech.setText('Welcome!')
end

clearText()​

Clears the text displayed in a speech bubble.

Example​

Clear a message after 5 seconds.

function onStart()
Speech.setText("This message is going to disappear in 5 seconds!")
Task.wait(5)
Speech.clearText()
end

prompt(text, options)​

Sets the text and response options displayed in the dialogue prompt that is shown when a player interacts with the NPC.

Parameters​

  • text — The text value to display.
  • options — A list of options displayed that the player can select to respond.

Returns​

An integer representing the response option selected by the player, or nil if the prompt was closed.

Example​

A simple interaction between a player and a NPC.

function onInteractStart(player)
-- Show a prompt when the player interacts with this NPC
local response = Speech.prompt('How are you today?', {
'Good!',
'Fine.',
'Terrible...',
})

-- Show another prompt depending on the option the player selected
if response == 0 then
Speech.prompt('Great!')
elseif response == 1 then
Speech.prompt('OK!')
elseif response == 2 then
Speech.prompt('Oh no!')
end
end

closePrompt()​

Closes the dialogue prompt.

Example​

Close a dialogue prompt after a short dialogue.

function onInteractStart(clientId)
-- Set our camera to dialogue and prevent player movement
Controls.setControlScheme(clientId, ControlScheme.Dialogue, false)

Speech.prompt("Welcome to my world, I hope you have a nice experience!")
Speech.closePrompt()
end

setName(name)​

Sets the name of the NPC, displayed in the dialogue prompt.

Example​

Set the name of a NPC to Gary.

function onStart()
Speech.setName("Gary")
end

function onInteractStart(clientId)
Speech.prompt("Hello, my name is Gary")
end