Installation¶
MrDialogue runs on both the server and client. Install the package in a container
replicated to both environments, then start its client runtime from a LocalScript.
Choose the installation method that fits your project:
Wally¶
Add MrDialogue to the [dependencies] section of your wally.toml:
Install the dependency:
Sync the generated Packages directory into ReplicatedStorage with Rojo. A
typical project mapping looks like this:
{
"name": "MyExperience",
"tree": {
"$className": "DataModel",
"ReplicatedStorage": {
"Packages": {
"$path": "Packages"
}
}
}
}
Keep the package shared
Do not install MrDialogue as a server-only dependency. The server API owns dialogue state, while the client API owns presentation and player input.
Creator Store¶
- Open MrDialogue v1.0.0 on the Roblox Creator Store and add it to your inventory.
- Insert the model into your experience from the Studio Toolbox.
- Create a folder named
PackagesinsideReplicatedStorageif it does not already exist. - Move the
MrDialogueModuleScript from the inserted model intoReplicatedStorage.Packages.
Your Explorer hierarchy should look like this:
The outer model, GUIDE, and ThumbnailCamera are not required at runtime.
Once the ModuleScript is in Packages, you can remove them from your
experience.
Start the server¶
Create a Script under ServerScriptService so the versioned dialogue remote is
available before clients start:
local ReplicatedStorage = game:GetService("ReplicatedStorage")
require(ReplicatedStorage.Packages.MrDialogue.Server)
Requiring the server module once initializes networking. Dialogue scripts can require the same module again; Roblox returns the cached module.
Start the client¶
Create a LocalScript under StarterPlayerScripts:
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MrDialogue = require(ReplicatedStorage.Packages.MrDialogue.Client)
MrDialogue.Start()
MrDialogue.Start() creates the bundled interface and tells the server that this
player is ready for dialogues. Calling it again returns the same client runtime.
Start the client before starting a session
Dialogue:Start() returns "player dialogue client is not ready" until the
player's client runtime has connected. Starting the runtime from
StarterPlayerScripts normally makes it ready before the player can trigger an
NPC prompt. Client startup raises a clear timeout error if the server module was
not initialized within 10 seconds.
Verify the installation¶
Run the experience and inspect ReplicatedStorage:
MrDialogueRuntime is created by the server automatically. Do not create or send
messages through its remote manually. MrDialogue rejects duplicate server package
copies instead of allowing independent session registries to share this remote.
Next step¶
Create your first dialogue and trigger it with a
ProximityPrompt.