Skip to content

techs-sus/azalea

Repository files navigation

azalea

azalea is an EXPERIMENTAL software suite designed to manipulate Roblox model files into a custom format, for decoding within restricted Roblox environments such as OpenSB.

azalea is freely available to you, the consumer under the Apache 2.0 license.

legal note: all code generated by tools, scripts, or code in this repo are to be considered as files under the Apache 2.0 license

Running it + command guide

# pull the repo first obviously
git clone https://github.com/techs-sus/azalea
cd azalea

# Applys to all commands:
# -m [--minify] is optional: you can specify if you want to minify the luau result via darklua
# -f [--format] is optional: you can specify if you want to format the luau result via stylua
# using -m and -f together lead to a panic! you can only use one

# -s is optional: you can specify a location for a specialized decoder to be generated
cargo run -- encode -i input.rbxm -o output.bin -s specializedDecoder.luau -m

# generates a full decoder
cargo run -- generate-full-decoder -o output.luau -f
# generates a full script: input.rbxm must be a MainModule or have a root ModuleScript
cargo run -- generate-full-script -i input.rbxm -o output.luau -m
# generates an embeddable script, useful for embedding assets
cargo run -- generate-embeddable-script -i input.rbxm -o output.luau -m

Development notes

  • roblox compresses chunks using lz4 and zstd
  • below i used zstd level 22
  • react-lua-17-rel.bin.zst = 266kb; react-lua-17-rel.rbxm is 553kb; (we won by 287kb)
  • attributes_and_tags.bin.zst = 26kb; attributes_and_tags.rbxm = 15kb; (we lost by 11kb)
  • only OpenSB and Roblox Studio are supported

About

turn models into huge scripts!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published