jafa deploy
Build a project and deploy it to Roblox using Mantle.
jafa deploy <project-name> [target-directory] [-e|--environment <env>] [-g|--groupid <id>] [-p|--payments <mode>] [-n|--name <place-name>]
jafa deploy -a|--all [target-directory] [-e|--environment <env>] [-g|--groupid <id>] [-p|--payments <mode>] [-n|--name <place-name>]
project-name— required unless-a/--allis passed. Must already exist underprojects/.-a, --all— build and deploy every project underprojects/instead of a single named one. The other flags below apply to every project deployed this way.target-directory— workspace root. Defaults to the current directory (.).-e, --environment— the Mantle environment to deploy (matchesenvironments.*.labelinmantle.yml). Defaults todev.-g, --groupid— numeric Roblox group ID. Setsowner.groupinmantle.yml. Omit to deploy under your personal account.-p, --payments— sets thepaymentsfield inmantle.yml(owner,personal, orgroup).-n, --name— sets the deployed place'starget.experience.places.start.configuration.name.
Mantle itself must already be authenticated with Roblox — see Mantle's
Authentication docs.
mantle is installed automatically by jafa init via rokit install.
What it does
- Runs
buildforproject-name, producingartifacts/<project-name>/build.rbxl. - Creates (or updates)
artifacts/<project-name>/<environment>/mantle.yml:- Points
target.experience.places.start.fileat the build output. - Sets
owner.groupwhen--groupidis passed (errors if it isn't numeric). - Sets
paymentswhen--paymentsis passed. - Sets the place's
configuration.namewhen--nameis passed. - Ensures an
environmentsentry exists for--environment, defaultingtargetAccesstoprivateon first creation. - Sets
targetNamePrefix: environmentLabelfordevandstgenvironments (so deployed resources are prefixed[DEV]/[STG]).prod(and any other label) is left alone.
- Points
- Runs
mantle deployagainst that directory with--environment <environment>.
Each environment gets its own mantle.yml and Mantle state, so dev, stg,
and prod deployments for the same project don't share state or resources.
Fields not covered by these flags (badges, social links, avatar
configuration, remote state, etc.) aren't touched — edit the generated
mantle.yml directly for anything beyond owner, payments, the place file,
the place name, and environments.
With -a/--all, steps 1-3 run for every project directory found under
projects/, all deployed to the same --environment (and other flags, if
given). If one project fails to build or deploy, the rest still run —
failures are reported together at the end.
Examples
jafa deploy my-experience -e dev -g 35171099 -p group -n "my-experience_dev"
jafa deploy my-experience -e prod -g 35171099 -p group
jafa deploy --all -e dev -g 35171099 -p group