Releases: rojo-rbx/rojo
v0.5.0 Alpha 13
This is a fairly minor release that fixes up behaviors around BrickColor
values. This means that SpawnLocation
instances can now be correctly represented!
Rojo now also has its own website with fancy branding: https://rojo.space
Upgrading
This release changes the required minimum Rust compiler to 1.34. Please upgrade your Rust installation (rustup update
) if you hit build errors when trying to compile Rojo.
To install the Rojo CLI, either download rojo.exe
attached here or run:
cargo install rojo --version 0.5.0-alpha.13 --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.
Changes Since 0.5.0 Alpha 12
- Bumped minimum Rust version to 1.34.0.
- Fixed default port documentation in
rojo serve --help
(#219) - Fixed BrickColor support by upgrading Roblox-related dependencies
v0.5.0 Alpha 12
This is a large release with some new features, bug fixes, quality of life improvements, and new branding.
Along with this release, we've launched the new rojo-rbx GitHub organization! It's the home for all official Rojo projects, now including the VS Code Extension and rbxlx-to-rojo, an experimental project for converting existing games to Rojo.
Rojo now also has its own website with fancy branding: https://rojo.space
Upgrading
This release requires Rust 1.32 or newer!
To install the Rojo CLI, either download rojo.exe
attached here or run:
cargo install rojo --version 0.5.0-alpha.12 --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.
Changes Since 0.5.0 Alpha 11
- Added
.meta.json
files - Added support for live-syncing
CollectionService
tags. - Added support for infinite and NaN values in types like
Vector2
when building models and places.- These types aren't supported for live-syncing yet due to limitations around JSON encoding.
- Added support for using
SharedString
values when building XML models and places. - Added a warning when building binary place files, since they're still experimental and have bugs.
- Added a warning when trying to use Rojo 0.5.x with a Rojo 0.4.x-only project.
- Added a warning when a Rojo project contains keys that start with
$
, which are reserved names. (#191) - Rojo now throws an error if unknown keys are found in most files.
- Added an icon to the plugin's toolbar button
- Changed the plugin to use a docking widget for all UI.
- Changed the plugin to ignore unknown properties when live-syncing.
- Rojo's approach to this problem might change later, like with a strict model mode (#190) or another approach.
- Upgraded to reflection database from client release 388.
- Updated Rojo's branding to shift the color palette to make it work better on dark backgrounds.
Meta Files
Meta files replace the functionality of init.model.json
files in Rojo 0.4.x and do a lot more!
You can make tools with an init.meta.json
:
{
"className": "Tool"
}
You can create scripts with Disabled
set by creating a meta file with the same base name, like foo.meta.json
for foo.server.lua
:
{
"properties": {
"Disabled": true
}
}
Check out the new Meta Files section of the Sync Details page of the docs for more information on how you can take advantage of them.
Dock Widget Plugin UI!
A fairly long-requested feature, Rojo now sits in a dockable widget that is toggled by the toolbar button.
An update in the near future will add proper support for dark theme. Stay tuned!
CollectionService
live-syncing
CollectionService
tags can now be live-synced! This is part of improved support for lots of property types. If you had trouble live-syncing something before, it might work now in alpha 12!
New branding
There's a new branding repository, https://github.com/rojo-rbx/brand which contains all of the new assets we'll be using going forward.
v0.5.0 Alpha 11
This release brings along a slew of improvements from working on some of Rojo's core components in rbx-dom!
We skipped alpha 10 after a failed release with a pretty bad bug regression.
Upgrading
This release requires Rust 1.32 or newer!
To install the Rojo CLI, either download rojo.exe
attached here or run:
cargo install rojo --version 0.5.0-alpha.11 --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.
Changes Since 0.5.0 Alpha 9
- Added support for implicit property values in JSON model files (#154)
Content
properties can now be specified in projects and model files as regular string literals.- Added support for
BrickColor
properties. - Added support for properties added in client release 384, like
Lighting.Technology
being set to"ShadowMap"
. - Improved performance when working with XML models and places
- Fixed serializing empty
Content
properties as XML - Fixed serializing infinite and NaN floating point properties in XML
- Improved compatibility with XML models
- Plugin should now be able to live-sync more properties and ignore ones it can't, like
Lighting.Technology
.
Implicit Property Values
In .model.json
files, it's now possible to specify properties with the handy "implicit" value syntax that has been usable in projects for awhile!
Before 0.5.0-alpha.11:
"Position": {
"Type": "Vector3",
"Value": [5, 6, 7]
}
After 0.5.0-alpha.11:
"Position": [5, 6, 7]
v0.5.0 Alpha 9
This release brings along significant performance improvements for rojo build
and some fairly major fixes for localization tables.
Upgrading
This release requires Rust 1.32 or newer!
To install the Rojo CLI, either download rojo.exe
attached here or run:
cargo install rojo --version 0.5.0-alpha.9 --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.
Changes Since 0.5.0 Alpha 8
- Changed
rojo build
to use buffered I/O, which can make it up to 2x faster in some cases.- Building Road Not Taken to an
rbxlx
file dropped from 150ms to 70ms on my machine
- Building Road Not Taken to an
- Fixed
LocalizationTable
instances being made fromcsv
files incorrectly interpreting empty rows and columns. (#149) - Fixed CSV files with entries that parse as numbers causing Rojo to panic. (#152)
- Improved error messages when malformed CSV files are found in a Rojo project.
v0.5.0 Alpha 8
This is the 8th alpha for Rojo 0.5.0! We've skipped alpha 7 in order to stop having confusing version numbers.
This release brings along 100% practical coverage for the XML model format with the exception of refs (think Model.PrimaryPart
or ObjectValue.Value
). This should enable more projects to start being built using only Rojo and never checking a place file into Git.
Upgrading
This release requires Rust 1.32 or newer!
To install the Rojo CLI, either download rojo.exe
attached here or run:
cargo install rojo --version 0.5.0-alpha.8 --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.
Changes Since 0.5.0-alpha.6
- Added support for a bunch of new types when dealing with XML model/place files:
ColorSequence
Float64
Int64
NumberRange
NumberSequence
PhysicalProperties
Ray
Rect
Ref
- Improved server instance ordering behavior when files are added during a live session (#135)
- Fixed error being thrown when trying to unload the Rojo plugin.
- Added partial fix for issue #141 for
Lighting.Technology
, which should restore live sync functionality for the default project file.
v0.5.0 Alpha 6
This is the 7th (zero-based indexing) alpha for Rojo 0.5.0!
This release is almost entirely bugfixes. It includes some internal refactoring to the plugin that should not impact users, but if they do, it is safe to revert the plugin to alpha 5 and keep the server at alpha 6.
Upgrading
This release requires Rust 1.32 or newer!
To install the Rojo CLI, either download rojo.exe
attached here or run:
cargo install rojo --version 0.5.0-alpha.6 --force
To install the plugin, either install it from Roblox (https://www.roblox.com/library/1997686364/Rojo-0-5-0-alpha-6) or download Rojo.rbxm
and put it into your Roblox Studio plugins folder.
Changes Since 0.5.0-alpha.5
- Fixed
rojo init
giving unexpected results by upgrading torbx_dom_weak
1.1.0 - Fixed live server not responding when the Rojo plugin is connected (#133)
- Updated default place file:
- Improved default properties to be closer to Studio's built-in 'Baseplate' template
- Added a baseplate to the project file (Thanks, @AmaranthineCodices!)
- Added more type support to Rojo plugin
- Fixed some cases where the Rojo plugin would leave around objects that it knows should be deleted
- Updated plugin to correctly listen to
Plugin.Unloading
when installing or uninstalling new plugins
v0.5.0 Alpha 5
This is the 6th (zero-based indexing) alpha for Rojo 0.5.0!
This release features significant ergonomic improvements to the project format!
Upgrading
This release requires Rust 1.32 or newer!
To install the Rojo CLI, either download rojo.exe
attached here or run:
cargo install rojo --version 0.5.0-alpha.5 --force
To install the plugin, either install it from Roblox (https://www.roblox.com/library/1997686364/Rojo-0-5-0-alpha-5) or download Rojo.rbxm
and put it into your Roblox Studio plugins folder.
Changes Since 0.5.0-alpha.4
- Upgraded core dependencies, which improves compatibility for lots of instance types
- Upgraded from
rbx_tree
0.2.0 torbx_dom_weak
1.0.0 - Upgraded from
rbx_xml
0.2.0 torbx_xml
0.4.0 - Upgraded from
rbx_binary
0.2.0 torbx_binary
0.4.0
- Upgraded from
- Added support for non-primitive types in the Rojo plugin.
- Types like
Color3
andCFrame
can now be updated live!
- Types like
- Fixed plugin assets flashing in on first load (#121)
- Changed Rojo's HTTP server from Rouille to Hyper, which reduced the release size by around a megabyte.
- Added property type inference to projects, which makes specifying services a lot easier (#130)
- Made error messages from invalid and missing files more user-friendly
Project Property Type Inference
Previously, you would specify a project with properties on services like this:
(diff markers added to draw attention)
{
"name": "really-red-place",
"tree": {
"$className": "DataModel",
"Lighting": {
"$className": "Lighting",
"$properties": {
+ "Ambient": {
+ "Type": "Color3",
+ "Value": [1, 0, 0]
+ },
+ "Technology": {
+ "Type": "Enum",
+ "Value": 1
+ }
}
},
"HttpService": {
"$className": "HttpService",
"$properties": {
+ "HttpEnabled": {
+ "Type": "Bool",
+ "Value": true
+ }
}
}
}
}
But starting in 0.5.0-alpha.5, Rojo can infer types where they should be obvious:
{
"name": "really-red-place",
"tree": {
"$className": "DataModel",
"Lighting": {
"$className": "Lighting",
"$properties": {
+ "Ambient": [1, 0, 0],
+ "Technology": "Voxel"
}
},
"HttpService": {
"$className": "HttpService",
"$properties": {
+ "HttpEnabled": true
}
}
}
}
This uses a brand new reflection database that now ships with Rojo called rbx_reflection
!
Better Error Messages
Error messages that pop up when a file doesn't exist or is malformed should no longer blame Rojo.
Furthermore, if a file changes to stop being valid during a Rojo live sync session, Rojo will skip the upgrade and tell you in your console:
Dependency Upgrades
Rojo can now deserialize UDim
, UDim2
, and Content
values. Support for these is present in the XML format (rbxlx
, rbxmx
) but not in the binary format (rbxm
, rbxl
) yet.
Non-Primitive Types
The Rojo plugin received an architectural changed that allows it to live-sync new property types like CFrame
and Color3
. Not all types are supported yet, and documentation for this is still a work in progress.
v0.5.0 Alpha 4
This is the fifth (zero-based indexing) alpha for Rojo 0.5.0!
This release features increased flexibility in the project format that should make it more feasible to use Rojo for versioning an entire game. The documentation site has received a huge upgrade to go along with this release.
Changes Since 0.5.0-alpha.3
- Added support for nested partitions (#102)
- Added support for 'transmuting' partitions (#112)
- Added support for aliasing filesystem paths (#105)
- Changed Windows builds to statically link the CRT (#89)
Nested Partitions
Previously, Rojo only allowed defining instance children if $path
wasn't specified. Since 0.5.0-alpha.4 however, Rojo can handle projects that you'd expect to work, like:
{
"name": "nested-as-heck",
"tree": {
"$path": "src",
"Modules": {
"$path": "Modules"
}
}
}
Transmuting Partitions
Instances defined in projects can now have $path
as well as other options like $properties
and $className
, which can be used to put stuff directly into Roblox services:
{
"name": "nested-as-heck",
"tree": {
"$className": "DataModel",
"ReplicatedStorage": {
"$className": "ReplicatedStorage",
"$path": "ReplicatedStorage"
}
}
}
Aliasing File Paths
Rojo used to have bugs if you had multiple $path
values pointing into the same place on the filesystem. Now it doesn't!
Static CRT
This fixes the need for installing any Microsoft Visual Studio Redistributibles! On the flipside, future releases will all be a little larger.
v0.5.0 Alpha 3
This is the fourth alpha for Rojo 0.5.0!
This release features one major bugfix for files not syncing into Studio, and changes the name of the default project format. Rojo will automatically let you know that you need to upgrade your project file name when you launch it!
Installing the 0.5.x Plugin
A new plugin has been uploaded to Roblox in order to let existing users of Rojo continue using 0.4.x.
You can install the plugin from one of two places:
- The new Roblox.com plugin page
- Downloading the attached
rbxm
file and putting it into your Studio 'plugins' folder
Installing the 0.5.x Server
If you're on Windows, you can download the attached Windows executable, rojo.exe
.
If you're not on Windows, or you'd rather install via Cargo, you can do that with:
cargo install rojo --version 0.5.0-alpha.3
If you already have Rojo installed, you'll need to add the --force
flag to overwrite your current version.
Migrating Your Project to 0.5.x
There's a brand new set of docs for 0.5.x available that includes basic instructions on how to get started with 0.5.x. As we get closer to release, these docs will be updated and fleshed out.
If you're coming from 0.4.x, check out Migrating from 0.4.x to 0.5.x for a crash course in how to upgrade your project.
Changes Since 0.5.0-alpha.2
- Changed default project file name from
roblox-project.json
todefault.project.json
(#120)- The old file name will still be supported until 0.5.0 is fully released.
- Added warning when loading project files that don't end in
.project.json
- This new extension enables Rojo to distinguish project files from random JSON files, which is necessary to support nested projects.
- Added new (empty) diagnostic page served from the server
- Added better error messages for when a file is missing that's referenced by a Rojo project
- Added support for visualization endpoints returning GraphViz source when Dot is not available
- Fixed an in-memory filesystem regression introduced recently (#119)
v0.5.0 Alpha 2
This is the third alpha for Rojo 0.5.0!
Installing the 0.5.x Plugin
A new plugin has been uploaded to Roblox in order to let existing users of Rojo continue using 0.4.x.
You can install the plugin from one of two places:
- The new Roblox.com plugin page
- Downloading the attached
rbxm
file and putting it into your Studio 'plugins' folder
Installing the 0.5.x Server
If you're on Windows, you can download the attached Windows executable, rojo.exe
.
If you're not on Windows, or you'd rather install via Cargo, you can do that with:
cargo install rojo --version 0.5.0-alpha.2
If you already have Rojo installed, you'll need to add the --force
flag to overwrite your current version.
Migrating Your Project to 0.5.x
There's a brand new set of docs for 0.5.x available that includes basic instructions on how to get started with 0.5.x. As we get closer to release, these docs will be updated and fleshed out.
If you're coming from 0.4.x, check out Migrating from 0.4.x to 0.5.x for a crash course in how to upgrade your project.
Changes Since 0.5.0-alpha.1
- Added support for
.model.json
files, compatible with 0.4.x - Fixed in-memory filesystem not handling out-of-order filesystem change events
- Fixed long-polling error caused by a promise mixup (#110)