v0.5.0 Alpha 5
Pre-releaseThis 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.