Asphalt is a simple CLI tool used to upload assets to Roblox and easily reference them in code.
- Upload images, audio, and even SVGs!
- Generate Luau code to reference the uploaded assets
- Generate Typescript definitions for roblox-ts users
- Uses the Open Cloud API
- Supports uploading to groups
- Define existing uploaded assets, so all of your stuff can be referenced in one place
- Alpha bleeds images for crisp edges when scaled
aftman add jacktabscode/asphalt
cargo install asphalt
Asphalt is configured with a project file called asphalt.toml
. It is required for the program to run.
Example
asset_dir = "test/"
write_dir = "output/"
[codegen]
typescript = true
luau = true
style = "flat"
output_name = "assets"
[creator]
type = "user"
id = 9670971
[existing]
"test/some_sound_on_roblox.ogg" = { id = 123456789 }
"test/some_image_on_roblox.png" = { id = 987654321 }
asset_dir
: path- The directory of assets to upload to Roblox.
write_dir
: path- The directory to output the generated code to. This should probably be somewhere in your game's source folder.
creator
: Creator- The Roblox creator to upload the assets under.
codegen
: Codegen- Code generation options.
existing
: map<string, ExistingAsset> (optional)
type
: "user" or "group"id
: number
typescript
: boolean (optional)- Generate a Typescript definition file.
luau
: boolean (optional)- Use the
luau
file extension.
- Use the
style
: "flat" | "nested" (optional)- The code-generation style to use. Defaults to
flat
. If you would like to have an experience similar to Tarmac, usenested
.
- The code-generation style to use. Defaults to
output_name
: string (optional)- The name for the generated files. Defaults to
assets
.
- The name for the generated files. Defaults to
strip_extension
: boolean (optional)- Whether to strip the file extension. Defaults to
false
. If you would like to have an experience similar to Tarmac, usetrue
.
- Whether to strip the file extension. Defaults to
id
: number
Just run asphalt
and make sure you have a config file as specified above. When complete, it will generate a asphalt.lock.toml
file which you should have committed to source control.
You will need an API key to run Asphalt. You can specify this using the --api-key
argument, or the ASPHALT_API_KEY
environment variable.
You can get one from the Creator Dashboard. Make sure you select the correct group and Asset-related permissions.
Thank you to Tarmac for the alpha bleeding and nested codegen implementations, which were used in this project.