Skip to content

Releases: rojo-rbx/rojo

6.0.0 Release Candidate 2

19 Nov 18:42
Compare
Choose a tag to compare
Pre-release

This is the second release candidate for Rojo 6!

We've decided that it's time for Rojo to come out of being a 0.x version project, as it is already used in production on many large-scale projects. We also chose to skip over 1.0, like many projects, to avoid needing to call a version of Rojo "1.0".

This release contains bugfixes, an updated reflection database and a few small tweaks.

Major Changes

Glob Ignores

Ever wanted to make Rojo ignore some of the files in your project? The previously-unstable glob ignores feature is now live! One good use case is to create a version of your project that excludes all of your TestEZ test files:

{
  "name": "ignore_glob_spec",
  "tree": {
    "$path": "src"
  },
  "globIgnorePaths": [
    "**/*.spec.lua"
  ]
}

Rojo uses the globset crate for its glob implementation. Check out its documentation for details on what patterns are valid.

More Robust Plugin

As part of this release, Rojo's Studio plugin received a major refactor to make it more robust against failures. When encountering errors, Rojo will no longer disconnect your session, and will instead tell you all the things it failed to do.

This opens the door for us to start using other techniques to sync the fiddly instances that Rojo cannot sync today. This will likely happen after the first stable release of Rojo 6.0, so stay tuned!

Trying the Release Candidate

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

  • Run rojo plugin install from the Rojo 6 CLI
  • Download the attached Rojo.rbxm and install it manually
  • Install from the Roblox plugin page

There are now a few ways to download the Rojo CLI.

With Foreman

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

rojo = { source = "rojo-rbx/rojo", version = "6.0.0-rc.2" }

From GitHub Release

Download one of the attached binaries on this release page!

From the VS Code Extension

Change your release channel in the extension's setting page to 6.x:

unknown (11)

From Crates.io

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

cargo install rojo --version 6.0.0-rc.2

All Changes Since 6.0.0-rc.1

  • Fixed crash when malformed CSV files are put into a project. (#310)
  • Fixed incorrect string escaping when producing Lua code from JSON files. (#314)
  • Fixed performance issues introduced in Rojo 6.0.0-rc.1. (#317)
  • Fixed rojo plugin install subcommand failing for everyone except Rojo developers. (#320)
  • Updated default place template to take advantage of #210.
  • Enabled glob ignore patterns by default and removed the unstable_glob_ignore feature.
    • globIgnorePaths can be set on a project to a list of globs to ignore.
  • The Rojo plugin now completes as much as it can from a patch without disconnecting. Warnings are shown in the console.
  • Fixed 6.0.0-rc.1 regression causing instances that changed ClassName to instead... not change ClassName.

Rojo 6.0.0 Release Candidate 1

30 Mar 00:25
Compare
Choose a tag to compare
Pre-release

This is the first release candidate for Rojo 6!

We've decided that it's time for Rojo to come out of being a 0.x version project, as it is already used in production on many large-scale projects. We also chose to skip over 1.0, like many projects, to avoid needing to call a version of Rojo "1.0".

This release contains the last new features before Rojo 6.0 will be released. If all goes well, we should have one or two more release candidates with bug fixes before that happens.

Major Changes

.json files now turn into ModuleScript instances

Ever need to get some data into Roblox? Now, you can use Rojo to transform any JSON file into a Lua ModuleScript that's ready to be loaded!

$className now optional for services

Tired of writing "ReplicatedStorage": { "$className": "ReplicatedStorage" }? Now, Rojo is smart enough to no longer need these hints for services.

This change also works for the children of StarterPlayer: StarterPlayerScripts and StarterCharacterScripts!

{
	"name": "Hello, Rojo 6!",
	"tree": {
		"$className": "DataModel",

		"ReplicatedStorage": {
			"$path": "src/ReplicatedStorage"
		},

		"StarterPlayer": {
			"StarterPlayerScripts": {},
			"StarterCharacterScripts": {}
		}
	}
}

rojo plugin install

The Rojo CLI is now able to install its plugin for you with a single command. This can help make sure that the plugin you're using is the correct version.

Two-Way Sync Option

This option is very very unstable, but it's now possible to toggle two-way sync in the Rojo plugin:

Rojo 6 Settings Panel

This feature is likely to blow up in all sorts of exciting ways and is known to cause several problems right now.

Open Scripts Externally

Another option has appeared next to two-way sync: the ability to open scripts in your external editor instead of the built-in Studio editor.

Turning this on will make the Rojo plugin intercept any attempt to open a script and open the corresponding .lua file in your default program.

Trying the Release Candidate

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

  • Run rojo plugin install from the Rojo 6 CLI
  • Download the attached Rojo.rbxm and install it manually
  • Install from the Roblox plugin page

There are now a few ways to download the Rojo CLI.

With Foreman

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

rojo = { source = "rojo-rbx/rojo", version = "6.0.0-rc.1" }

From GitHub Release

Download one of the attached binaries on this release page!

From the VS Code Extension

Change your release channel in the extension's setting page to 6.x:

unknown (11)

From Crates.io

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

cargo install rojo --version 6.0.0-rc.1

All Changes Since 0.6.0-alpha.3

  • Added basic settings panel to plugin, with two settings:
    • "Open Scripts Externally": When enabled, opening a script in Studio will instead open it in your default text editor.
    • "Two-Way Sync": When enabled, Rojo will attempt to save changes to your place back to the filesystem. Very early feature, very broken, beware!
  • Added --color option to force-enable or force-disable color in Rojo's output.
  • Added support for turning .json files into ModuleScript instances (#308)
  • Added rojo plugin install and rojo plugin uninstall to allow Rojo to manage its Roblox Studio plugin. (#304)
  • Class names no longer need to be specified for Roblox services in Rojo projects. (#210)
  • The server half of experimental two-way sync is now enabled by default.
  • Increased default logging verbosity in commands like rojo build.
  • Rojo now requires a project file again, just like 0.5.4.

v0.6.0 Alpha 3

14 Mar 07:05
Compare
Choose a tag to compare
v0.6.0 Alpha 3 Pre-release
Pre-release

Welcome to the third alpha for Rojo 0.6.0. This release includes some important structural simplifications in the core of Rojo, lots of bugfixes, and some new quality of life features.

Everything in this alpha release is considered experimental and may eat your lunch and steal your dog.

Plugin Dark Theme

You've probably been waiting for this for awhile. 😅

image

rojo build --watch

Do you use Rojo for working on plugins? You can now use Rojo to automatically rebuild your plugin rbxm or rbxmx files on each file change!

rojo build --watch --output MyPlugin.rbxmx

rojo init 2.0

rojo init is now implemented for the 0.6.x release series. Moreover, it has some new powers.

In addition to creating a default.project.json file, rojo init will now create a src folder with some common patterns for places and models, a README, a .gitignore file, and initialize a Git repo if you don't already have one!

rojo doc

Do you find yourself opening the Rojo docs often? Now there's a command to open your browser to the docs automatically!

rojo doc

Trying the Alpha

To install the Roblox Studio plugin, either copy the attached Rojo.rbxm into your Studio plugins folder, or install it here, from the Roblox website. The Rojo 0.5.x plugin will not work with the Rojo 0.6.x server!

There are now a few ways to download the Rojo CLI.

With Foreman

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

rojo = { source = "rojo-rbx/rojo", version = "0.6.0-alpha.3" }

From GitHub Release

Download one of the attached binaries on this release page!

From the VS Code Extension

Switch your release channel to 0.6.x to try out the latest alpha. You can switch back to 0.5.x to revert to the current stable channel.

From Crates.io

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

cargo install rojo --version 0.6.0-alpha.3

Changes since 0.6.0-alpha.2

  • Added --watch argument to rojo build. (#284)
  • Added dark theme support to plugin. (#241)
  • Added a revamped rojo init command, which will now create more complete projects.
  • Added the rojo doc command, which opens Rojo's documentation in your browser.
  • Fixed many crashes from malformed projects and filesystem edge cases in rojo serve.
  • Simplified filesystem access code dramatically.
  • Improved error reporting and logging across the board.
    • Log messages have a less noisy prefix.
    • Any thread panicking now causes Rojo to abort instead of existing as a zombie.
    • Errors now have a list of causes, helping make many errors more clear.

v0.6.0 Alpha 2

06 Mar 22:09
Compare
Choose a tag to compare
v0.6.0 Alpha 2 Pre-release
Pre-release

Welcome to the second 0.6.0 alpha! This release fixes a regression with the rojo upload command and improves its functionality.

Everything in this alpha release is considered experimental and may blow up without warning.

Trying the Alpha

To install the Roblox Studio plugin, either copy the attached Rojo.rbxm into your Studio plugins folder, or install it here, from the Roblox website. The Rojo 0.5.x plugin will not work with the Rojo 0.6.x server!

There are now a few ways to download the Rojo CLI.

With Foreman

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

rojo = { source = "rojo-rbx/rojo", version = "0.6.0-alpha.2" }

From GitHub Release

Download one of the attached binaries on this release page!

From the VS Code Extension

Switch your release channel to 0.6.x to try out the latest alpha. You can switch back to 0.5.x to revert to the current stable channel.

From Crates.io

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

cargo install rojo --version 0.6.0-alpha.2

Changes since 0.6.0-alpha.1

  • Fixed rojo upload command always uploading models.
  • Removed --kind parameter to rojo upload; Rojo now automatically uploads the correct kind of asset based on your project file.
  • Upgraded various dependencies

v0.5.4

27 Feb 18:20
Compare
Choose a tag to compare

This release is a minor maintenance release for the 0.5.x series and comes with no feature changes.

There were a couple mis-tagged releases, sorry! The release process has shifted around a bit since the release of 0.5.3 and I struggled to backport some of those things onto the v0.5.x branch.

Upgrading

This is the first stable Rojo release to include binaries for all platforms. If you previously compiled Rojo from source, please try the binaries released here.

You can also install Rojo via Foreman, a new toolchain manager for Roblox tools like Rojo and Remodel.

You can also use Rust (1.40+) to install Rojo from the command line:

cargo install rojo --force

To install the plugin, either install it from Roblox (https://www.roblox.com/catalog/1997686364) or download Rojo.rbxm from this release and put it into your Roblox Studio plugins folder.

Changes Since 0.5.3

  • Updated reflection database and other dependencies.
  • First stable release with binaries for macOS and Linux.

v0.6.0 Alpha 1

22 Jan 18:37
Compare
Choose a tag to compare
v0.6.0 Alpha 1 Pre-release
Pre-release

It's that time of year! This release is an alpha release of the latest stuff that Rojo has gained over the past few months.

Everything in this alpha release is considered experimental and may blow up without warning.

Trying the Alpha

This is the first release where you should no longer need to compile the Rojo server yourself on any platform.

Download the attached release for the correct platform below, or use Cargo to build the release yourself from crates.io:

cargo install rojo --version 0.6.0-alpha.1 --force

To install the Roblox Studio plugin, either copy the attached Rojo.rbxm into your Studio plugins folder, or install it here, from the Roblox website. The Rojo 0.5.x plugin will not work with the Rojo 0.6.x server!

Changes in this Alpha

General

  • Added support for nested project files. (#95)
  • Added project file hot-reloading. (#10])
  • Fixed Rojo dropping Ref properties (#142)
    • This means that properties like PrimaryPart now work!
  • Improved live sync protocol to reduce round-trips and improve syncing consistency.
  • Improved support for binary model files and places.

Command Line

  • Added --verbose/-v flag, which can be specified multiple times to increase verbosity.
  • Added support for automatically finding Roblox Studio's auth cookie for rojo upload on Windows.
  • Added support for building, serving and uploading sources that aren't Rojo projects.
  • Improved feedback from rojo serve.
  • Removed support for legacy roblox-project.json projects, deprecated in an early Rojo 0.5.0 alpha.
  • Rojo no longer traverses directories upwards looking for project files.
    • Though undocumented, Rojo 0.5.x will search for a project file contained in any ancestor folders. This feature was removed to better support other 0.6.x features.

Roblox Studio Plugin

  • Added "connecting" state to improve experience when live syncing.
  • Added "error" state to show errors in a place that isn't the output panel.
  • Improved diagnostics for when the Rojo plugin cannot create an instance.

v0.5.3

16 Oct 01:19
Compare
Choose a tag to compare

This release includes a fix for Rojo users using Rojo with versions of Roblox that have unreleased kinds of instance, notably engineers at Roblox.

Upgrading

If you're on Windows, download rojo-0.5.3-win64.zip, and extract it somewhere. In previous releases, this file was just rojo.exe, but is now compressed to make the download smaller.

You can also use Rust (1.34+) to install Rojo from the command line:

cargo install rojo --force

To install the plugin, either install it from Roblox (https://www.roblox.com/catalog/1997686364) or download Rojo.rbxm from this release and put it into your Roblox Studio plugins folder.

Changes Since 0.5.2

  • Fixed an issue where Rojo would throw an error when encountering recently-added instance classes.

v0.5.2

15 Oct 00:38
Compare
Choose a tag to compare

This release includes a bugfix aimed at Rojo users that rely on .csv files turning into LocalizationTable instances. Before this release, Rojo's output in projects using these files was not deterministic.

This resulted in minor issues for engineers at Roblox working on Roblox Studio!

Upgrading

If you're on Windows, download rojo-0.5.2-win64.zip, and extract it somewhere. In previous releases, this file was just rojo.exe, but is now compressed to make the download smaller.

You can also use Rust (1.34+) to install Rojo from the command line:

cargo install rojo --force

To install the plugin, either install it from Roblox (https://www.roblox.com/catalog/1997686364) or download Rojo.rbxm from this release and put it into your Roblox Studio plugins folder.

Changes Since 0.5.1

  • Fixed an issue where LocalizationTable instances would have their column order randomized. (#173)

v0.5.1

04 Oct 20:01
Compare
Choose a tag to compare

This is release includes a couple maintenance changes and a fix for a bug that has been plaguing many Rojo users, #252.

Upgrading

If you're on Windows, download rojo-0.5.1-win64.zip, and extract it somewhere. In previous releases, this file was just rojo.exe, but is now compressed to make the download smaller.

You can also use Rust (1.34+) to install Rojo from the command line:

cargo install rojo --force

To install the plugin, either install it from Roblox (https://www.roblox.com/catalog/1997686364) or download Rojo.rbxm from this release and put it into your Roblox Studio plugins folder.

Changes Since 0.5.0

  • Fixed an issue where Rojo would drop changes if they happened too quickly (#252)
  • Improved diagnostics for when the Rojo plugin cannot create an instance.
  • Updated dependencies
    • This brings Rojo's reflection database from client release 395 to client release 404.

v0.5.0 (stable!)

27 Aug 21:23
91caa67
Compare
Choose a tag to compare

This stable release has been in progress for a very long time.

If you're coming from the previous 0.5.0 alpha releases, not a whole lot has changed in this release except its name.

If you're coming from Rojo 0.4.x, check out the 0.5.x Migration Guide in the official docs to get yourself up to date. At this point, Rojo 0.4.x will no longer officially receive any further updates.

Upgrading

To install the Rojo CLI, either download rojo.exe attached here or run (requires Rust 1.34):

cargo install rojo --force

To install the plugin, either install it from Roblox (https://www.roblox.com/catalog/1997686364) or download Rojo.rbxm and put it into your Roblox Studio plugins folder.

The Rojo Visual Studio Code extension should automatically upgrade you from the 0.5.0 alphas onto the 0.5.0 stable release track.

Changes Since 0.4.x

  • Brand new project format, default.project.json instead of rojo.json
  • Added support for rbxm and rbxmx models as part of your project
  • Added new commands: rojo build, rojo upload, rojo init
  • Added support for csv localization tables
  • New plugin that's more efficient and more beautiful!

Changes Since 0.5.0 Alpha 13

  • Changed .model.json naming, which may require projects to migrate ambiguous cases:
    • The file name now takes precedence over the Name field in the model, like Rojo 0.4.x.
    • The Name field of the top-level instance is now optional. It's recommended that you remove it from your models.
    • Rojo will emit a warning when Name is specified and does not match the name from the file.
  • Fixed Rect values being set to 0, 0, 0, 0 when synced with the Rojo plugin. (#201)
  • Fixed live-syncing of PhysicalProperties, NumberSequence, and ColorSequence values

Known Issues

  • #142: Rojo still does not support ref properties, this will be fixed as part of a refactor and release 0.6.0
  • #215, #214, #213, #193, #132: Various issues around changes being dropped that we weren't quite able to pinpoint. After #217 merges, we'll be working on fresh foundations, which means fresh bugs!