github rojo-rbx/rojo v7.7.0-rc.1

pre-release4 hours ago

This is a release candidate for Rojo 7.7.0. It contains a rewrite of Rojo's core networking loop to use a websocket connection over long-polling. This should result in improved performance and reliablity when syncing, but it may also introduce bugs. While we've taken time to test for bugs, you should be weary of using this release for important work. Here be dragons.

If you encounter any behavior that is unexpected, please report it.

If you normally get the Rojo plugin from the Roblox Marketplace, you will have to manually install it to use this release. We will not update the plugin on Roblox until 7.7.0 fully releases.

Changes since Rojo 7.6.1

Additions

  • Added rojo syncback. Syncback is a feature designed to solve the long-standing problem of converting an existing place file into a Rojo project. Go to the section in this release for more information. (#937)
  • Added support for .jsonc in all places where you can use .json. (#1159)

Changes

Fixes

  • Fixed a bug where passing --skip-git to rojo init would still create a file named gitignore.txt (#1172)
  • Fixed bugs and improved performance & UX for the script diff viewer (#994)

Syncback

Syncback is a feature designed to solve the long-standing problem of converting an existing place file into a Rojo project. It is configured by a new field in projects, and is invoked with a CLI subcommand rojo syncback.

The command itself is rojo syncback path/to/project --input path/to/file.rbxl. This will run syncback and pull things from the provided file to place on the operating system. Instances are attempted to be written in a reasonable manner but what Instances become what is still up in the air.

Instances will only be pulled from the file system if they are a descendant of a node in the provided project file. That is, in order to syncback the children of Workspace, Workspace must be in your project file. You may wish to have a separate project.json for running syncback as a result.

To control the behavior of syncback more, there's a new field in project files named syncbackRules:

    {
        "syncbackRules": {
            "ignoreTrees": [
                "ServerStorage/ImportantSecrets",
            ],
            "ignorePaths": [
                "src/ServerStorage/Secrets/*"
            ],
            "ignoreProperties": {
                "BasePart": ["Color"]
            },
            "syncCurrentCamera": false,
            "syncUnscriptable": true,
            "ignoreReferents": false,
        }
    }

A brief explanation of each field:

  • ignoreTrees is a list of paths in the roblox file that should be ignored
  • ignorePaths is a list of paths in the file system that should be ignored
  • ignoreProperties is a list of properties that won't be synced back
  • syncCurrentCamera is a toggle for whether to sync back the Workspace's CurrentCamera. Defaults to false.
  • syncUnscriptable is a toggle for whether to sync back properties that cannot be set by the Roblox Studio plugin. Defaults to true.
  • ignoreReferents is a toggle for whether to sync back referent properties like Model.PrimaryPart. Defaults to false, which means that they will be included.

Upgrading

To install the Roblox Studio plugin, there are a few options:

  • Run rojo plugin install from the Rojo CLI
  • Download the attached Rojo.rbxm and place it into your Roblox Studio plugins folder

There are also multiple ways to install the Rojo CLI:

With Rokit

Add a line to the [tools] section in rokit.toml:

rojo = "rojo-rbx/rojo@7.7.0-rc.1"

From GitHub Release

Download one of the attached binaries on this release page!

From Crates.io

You can use Cargo (1.88.0+) to build the release yourself from crates.io:

cargo install rojo --version 7.7.0-rc.1

Don't miss a new rojo release

NewReleases is sending notifications on new releases.