Package Management
When using Azul with package managers like Wally, you can use azul push to import packages into Studio.
Example:
azul push -s Packages -d ReplicatedStorage.Packages --destructive --rojoRojo-style layouts are usually standard for package managers, so the --rojo flag is needed to automatically convert from Rojo’s format to the format Azul uses.
Automating Package Pushes
Section titled “Automating Package Pushes”Add a push mapping in per-place config so you can run plain azul push. Below are push mapping templates you can use.
Ember is a relatively new package manager for Luau. It is a great replacement for Wally, fixing many of its issues, supporting all the newest Luau features & fully supporting the Wally registry.
Ember is the recommended package manager for Azul.
pushMappings = { { source = "./packages/roblox", destination = { "ReplicatedStorage", "Packages" }, destructive = true, rojoMode = true, },}For more information on Ember usage, see the Ember documentation.
pushMappings = { { source = "./Packages", destination = { "ReplicatedStorage", "Packages" }, destructive = true, rojoMode = true, },}For more information on Wally, see the Wally website.
Other Package Managers
Section titled “Other Package Managers”If you are using a different package manager, you can create a custom push mapping to import packages into Studio. The logic is the same as the examples above: specify the local source folder, the Studio destination path, and whether to enable Rojo compatibility mode.
Azul Packages
Section titled “Azul Packages”Packages and libraries can also be distributed in the native Azul format.
They can be pushed with the following command:
azul push -s ./AzulPackages/MyLibrary -d ReplicatedStorage.LibrariesThe package doesn’t have an
If the package does not have an azul.package.json fileazul.package.json, you will need to know the source folder and sourcemap to push it:
azul push -s ./sync/ReplicatedStorage/MyLibrary -d ReplicatedStorage.Libraries --from-sourcemap ./mylibrary.sourcemap.jsonPushing a folder of packages
Section titled “Pushing a folder of packages”Got a few packages in the same folder? Push the whole folder, just like you would with --rojo:
azul push -s ./AzulPackages -d ReplicatedStorage.Packages --destructiveEvery subfolder with an azul.package.json gets its own container, named after the folder:
AzulPackages/ ReplicatedStorage├── BetterChassis/ └── Packages│ └── azul.package.json ──► ├── BetterChassis└── Raycer/ └── Raycer └── azul.package.json- Anything in the folder that isn’t a package (e.g. a loose
Utils.luau) is still pushed into the destination, but Azul will warn you about it.
This also works as a push mapping:
pushMappings = { { source = "./AzulPackages", destination = { "ReplicatedStorage", "Packages" }, destructive = true, },}Note: At the time of writing, no Azul-native package manager exists. You will have to manage dependencies yourself.
Want to distribute your own? See Package Files.