Skip to content

Per-place Daemon Configuration

You can store Daemon setting overrides inside Studio. This allows you to specify settings like push mappings that everyone on the project can use without manual setup.

This configuration lives in a ModuleScript at ServerStorage.Azul.Config. Use the plugin’s Open Place Configuration button to create it from a template, which comes with types (PlaceConfigTypes) so Studio can flag mistakes as you type.

The plugin sends the returned table to the Daemon when it connects, and azul push asks for it to read its push mappings.

OptionTypeDescription
pushMappingstable of push mappingsPre-specify local-to-Studio push paths so azul push can run without manual -s/-d arguments.
packOnExittablePacks the place into a sourcemap when you disconnect. See Pack on exit.
deleteOrphansOnConnectbooleanOverrides the Daemon’s deleteOrphansOnConnect for this place.
debugModebooleanOverrides the Daemon’s debugMode while this place is connected.

Each push mapping supports the following options:

OptionTypeDescription
sourcestringFile, folder or package to push, relative to the project root. Required.
destination{ string }Path to the destination instance, i.e. { "ReplicatedStorage", "Packages" }. Required.
destructivebooleanWipes the destination’s children before pushing.
rojoModebooleanReads source as a Rojo-style project.
fromSourcemapstringBuilds the push from this sourcemap (i.e. a pack), including non-script instances.

With packOnExit enabled, Azul packs the place into a sourcemap every time you stop syncing, so the packed sourcemap you commit always matches the place, without having to remember to run azul pack.

OptionTypeDescription
enabledbooleanEnables packing on exit. Required.
outputPathstringWhere to write the packed sourcemap, relative to the project root. Defaults to game.sourcemap.json.

The place is packed when you:

  • Press Disconnect in the plugin.
  • Stop the Daemon with Ctrl+C while Studio is connected.

Pressing either one again while packing skips it. If Studio disconnects without packing (i.e. Studio was closed or crashed), the Daemon warns you that the packed sourcemap may be out of date.

-- ServerStorage.Azul.Config
--!strict
local Types = require(script.PlaceConfigTypes)
local config: Types.Config = {
-- Keeps game.sourcemap.json up to date whenever you disconnect
packOnExit = {
enabled = true,
outputPath = "game.sourcemap.json",
},
-- When the plugin connects, delete files in the sync directory that are
-- not mapped to any instances. Keeps the local mirror clean between sessions.
deleteOrphansOnConnect = true,
-- Push mappings allow you to pre-specify local-to-Studio push paths so you can run `azul push` without manual `-s/-d` arguments.
pushMappings = {
-- Example Mapping 1: Packages from the tool "Wally", in Rojo mode
{
source = "./Packages",
destination = { "ReplicatedStorage", "Packages" },
destructive = true,
rojoMode = true,
},
-- Example Mapping 2: A local "AzulPackages" folder that contains a folder of Azul Packages (azul.package.json)
{
source = "./AzulPackages",
destination = { "ServerScriptService", "AzulPackages" },
destructive = true,
},
},
}
return config