Roblox infra-as-code and deployment tool
Get StartedDescribe the Roblox infrastructure you want and Mantle will take care of the rest.
environments:
  - label: dev
    targetNamePrefix: environmentLabel
  - label: prod
    targetAccess: public
 
target:
  experience:
    configuration:
      genre: building
    places:
      start:
        file: game.rbxlx
        configuration:
          name: Getting Started with Mantle
          description: |-
            Made with MantleMantle makes the minimum required changes to keep your deployments fast and stable.
Deploying resources:
  ╷
  │  ~ Updating: placeConfiguration_start
  │    ╷
  │    │  Dependencies:
  │    │      - place:
  │    │          assetId: 8635420754
  │    │  Inputs:
  │    │      placeConfiguration:
  │    │    -   name: Getting Started with Mantle
  │    │    +   name: Going to the moon with Mantle
  │    │        description: Made with Mantle
  │    │        maxPlayerCount: 50
  │    │        allowCopying: false
  │    │        socialSlotType: Automatic
  │    │        customSocialSlotsCount: ~
  │    │  
  │    ╰─ Succeeded with outputs:
  │           placeConfiguration
  │  
  │  
  ╰─ Succeeded with 0 create(s), 1 update(s), 0 delete(s), 5 noop(s), 0 skip(s)Mantle integrates with the best of the Roblox OSS community. Install with Foreman (opens in a new tab) and build with Rojo (opens in a new tab).
[tools]
mantle = { source = "blake-mealey/mantle", version = "0.11" }Mantle is designed for continuous deployment environments like GitHub Actions.
name: Deploy
on: push
jobs:
  build-and-deploy:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v2
      - uses: Roblox/setup-foreman@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
      - name: Build project
        run: rojo build --output game.rbxlx
      - name: Deploy project
        run: mantle deploy
        env:
          ROBLOSECURITY: ${{ secrets.ROBLOSECURITY }}
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}