Azul is flexible enough to fit into most Roblox development workflows, whether you’re working solo or coordinating with a team. This page walks through the most common patterns so you can get productive quickly and avoid repeated troubleshooting.Documentation Index
Fetch the complete documentation index at: https://vercel.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Daily coding loop
The typical session starts the daemon, connects Studio, and keeps both sides in sync for as long as you’re working.Start the daemon
Open a terminal in your project folder and run:The daemon starts and waits for Studio to connect on the configured port (default
8080).Connect in Studio
Open your place in Roblox Studio, then click Connect in the Azul plugin panel. Your DataModel is mirrored to the local sync directory immediately.
Edit in Studio or your editor
Edit scripts in Studio or in your local editor — both sides stay in sync automatically. You can switch freely between them.
Import a package folder into Studio
When you install dependencies locally — for example, with Wally — you can push them into Studio with a single command rather than uploading files manually. Useazul push with explicit source and destination flags:
-s Packages— the local folder to push from-d ReplicatedStorage.Packages— the Studio instance to push into--destructive— removes any instances in the destination that don’t have a matching local file--rojo— interprets the folder structure using Rojo conventions (required for Wally packages)
If you run this command often, add a
pushMappings entry to your per-place config so you can run plain azul push without repeating the flags every time. See Advanced configuration for details.Team setup with consistent behavior
Storing your daemon configuration inside the place file means every collaborator gets the same behavior automatically — no manual CLI flags required.Create the config script in Studio
In Roblox Studio, create a
ModuleScript at ServerStorage > Azul > Config.Define your project settings
Return a table from the script with the options your team needs. At minimum, set
port, deleteOrphansOnConnect, and any pushMappings you want to share:Commit and share the place file
Save and commit the place file. Teammates who open it will have the same daemon configuration applied automatically when they connect.
Troubleshooting checklist
If the daemon and plugin aren’t communicating, work through these checks in order before digging deeper.Port mismatch between daemon and plugin
Port mismatch between daemon and plugin
The plugin connects to the daemon over a WebSocket. If the port in the plugin’s settings doesn’t match the port the daemon is listening on, the connection will fail silently.Check the port the daemon is using — it logs it on startup. Then confirm the plugin’s WebSocket URL uses the same port. If you’ve set a custom port in
ServerStorage.Azul.Config, make sure both sides reflect it.Enable debug logs with --debug
Enable debug logs with --debug
Run the daemon with the The output shows each message exchanged between the daemon and plugin, which makes it easy to spot where the connection breaks down.
--debug flag to see detailed handshake and sync logs:Verify syncDir and sourcemapPath in config
Verify syncDir and sourcemapPath in config
Run the following command to inspect your current CLI configuration:Confirm that
syncDir points to the folder you expect and that sourcemapPath is correct if you’re generating a sourcemap. An incorrect syncDir means file writes go to the wrong location.Reconnect after changing config
Reconnect after changing config
The daemon reads configuration at startup and the plugin reads per-place config at connection time. If you change anything — CLI config, the per-place
Config script, or the plugin settings — disconnect and reconnect before testing again.To reconnect: click Disconnect in the Azul plugin, stop the daemon (Ctrl+C), start it again with azul, then click Connect in the plugin.