Skip to content

Sync Details

Azul mirrors the Studio hierarchy into your local syncDir (default: ./sync).

Use this page to understand how instance names, nesting, and script types map to files.

Single Script instance:

  • Studio: ServerScriptService.MyServerScript
  • Filesystem: sync/ServerScriptService/MyServerScript.server.luau

When a script has children, Azul creates a sibling folder with the script name.

  • Studio:

    📜 ParentScript
    - 📜 NestedScript
  • Filesystem:

    📜 ParentScript.server.luau
    📂 ParentScript/
    - 📜 NestedScript.server.luau

If you’re familiar with other popular sync tools, this pattern may seem a bit unusual. Instead of representing nested structures through init.luau files, Azul follows this design to support arbitrary nesting without losing 1:1 Studio-to-filesystem mapping.

For a more in-depth explanation of the reason behind this design choice, see this article on the topic.

Azul determines script class from filename suffix:

StudioFilesystem
Server Script*.server.luau
Local Script*.client.luau
Module ScriptNo suffix or *.module.luau

Creating, deleting, or renaming scripts in your local syncDir will automatically create, delete, rename or change the type of the corresponding Studio instance.