Dialogue Maker [Beta]

how do you do multiple npcs? anyway, this is a cool plugin!

  • open “ServerScriptService
  • open the script (don’t go in the script)
  • open the “DialogueLocations” folder
  • duplicate the “DialogueLocation” object value (the icon looks like a hand and a bar if you don’t know.)
  • go to properties, then click “value”, then go back to explorer.
  • click the name of your other NPC (in explorer)

then your good to go! :smiley:
hope this helped. :smile:
sorry that I am 16 hours late. :sweat_smile:


This plugin looks awesome! :ok_hand: It would really help to add some instructions, though.


If you have any issues that I didn’t cover in these threads, send me a message or post it here :wink:


Are there any updates currently in the works or has this been abandoned because I would really like to use this.


I am currently working on a game.

But rest assured: this project hasn’t been abandoned. Besides working on my game, I did have some updates planned for the Dialogue Maker. One feature I’m looking forward to support is RichText.


Thanks for responding.
Other updates that I think but benefit the plugin are below:


Nice a thank you from the roblox community. I want to see how nice of a game someone could make just either free models and plugins.

1 Like

For some reason, it is completely impossible to launch a dialogue bubble over the head of the NPC. Throws various errors. How to do it?


Почему то совершенно не получается запустить пузырь диалога над головой НПС. Выдаёт различные ошибки. Как это сделать?

After about an hour of the game, the dialog box stopped showing up. After choosing an answer.
An error occurred in the log:


Примерно через час игры перестало закрываться диалоговое окно. После выбора ответа.
В логе вышла ошибка:

1 Like

Did you attach an action to the response?

It works 20 times. Then the window is not closed and the action is not started.
At the same time, I have an alternative launch of the same action - it continues to work.

As you can see from the code, there is nothing there to cause the wait. Unless getting a Player from a parent module.

It could have been done in one line:
Player.PlayerGui.ScreenGui.Main.Window.open.Value = “frmSlims”


Раз 20 оно срабатывает. Потом окно не закрывается и действие не запускается.
При этом у меня есть альтернативный запуск этого же действия - он продолжает работать.

Как можно видеть из кода, там нет ничего, что могло бы вызвать ожидание. Разве что получение Player из вышестоящего модуля.

Можно было вообще одной строкой сделать:
Player.PlayerGui.ScreenGui.Main.Window.open.Value = “frmSlims”

local Action = {};
-- Player = nil;	-- Silences global warnings.

Action.Synchronous = false;	-- Stops the player from proceeding to the next dialogue/leaving
							-- the conversation until the action is complete.
							-- Note: If this is an "action before" function,
							-- this causes the dialogue box to be *blank*
							-- until the action is complete.
Action.Variables = function()
	-- This function is ran prior to the Execute function.
	-- It's meant for setting conversation variables.
	-- It's helpful if you want this to be an asynchronous action,
	-- yet need to set variables for the dialogue that'll appear next.
	return {};	-- These variables will overwrite any conversation variables you describe.
				-- You can call these variables in your dialogue by using 
Action.Execute = function()
	-- This is the code that's ran when the action is called.
	local plr=Player
	local pathMain=plr.PlayerGui.ScreenGui.Main.Window
	pathMain.open.Value = "frmSlims"

return Action;
1 Like

Thanks for posting more info!

I’ll look into this problem in the morning.

Alright, cool. I was able to replicate the bug, so I’m gonna work on a fix.

Thanks for pointing this out!

v1.0.1 bug fixes:

  • Message editing is now blocked while in delete mode
  • @GAVsi115 The plugin no longer lags the server after an action is repeatedly executed

I’m working on a way to smoothly update scripts like DialogueServerScript and DialogueClientScript, but to update these scripts, it’s necessary to manually edit these scripts.

The only one I edited for this update is DialogueServerScript. Click the link to go to the repo, and copy and paste the new code into the script located in the ServerScriptService.

In new projects, you don’t have to do this because I published the update directly to the plugin.


In v1.1.0, I’m thinking about removing Before Actions for responses and redirects. They work the same way as After Actions.

1 Like

v1.1.0 enhancements:

  • Sounds can now be played when the player clicks message boxes
  • @d_cyph @REALINONOOBYT Added keybinds
  • Removed Before Actions for responses and redirects
  • Cursor icon is now hidden when clicking closes the dialogue box
  • There is now a toolbar button to reset DialogueServerScript and DialogueClientScript

v1.1.1 bug fixes:

  • DialogueMakerRemoteConnections and ClientAPI can now be reset
  • Keybinds are now togglable
  • More server settings are documented
  • Keybinds will no longer cause the conversation to endlessly loop
1 Like

This seems like a great plugin and I’d love to use it, but there’s a bug. Whenever you click an NPC, your character freezes and you get this error in the output:

Happens even if I turn off all my plugins. I also tried clicking Fix Scripts, and it’s still happening.

1 Like

I’ll look into this right when I get out of school.

1 Like

v1.1.2 bug fixes:

  • @brokenVectors ClickSound will be ignored if DEFAULT_CLICK_SOUND is nil or 0
  • Clicking Fix Scripts will no longer delete themes