v7.4.0-rc1
Pre-releaseThis release had a bug that rendered the plugin unusable! Please see the second release candidate.
See original release notes
This is a release candidate for Rojo 7.4.0 and carries with it the changes of the last 6 months. As a result of being a release candidate, you must manage your own plugin. The version on the Roblox website will not be updated until a full release is made. The plugin for this release may be installed automatically by running rojo plugin install
or it may be manually installed by placing the Rojo.rbxm
file from this release into your local plugins folder.
There may be bugs in this release! Notably, the internals of the plugin have undergone a significant revision and a backend change was made on MacOS. While those are the most significant potential sources for bugs, please report anything else you encounter as well.
Changes since Rojo 7.3.0
Additions
Project format
-
Added support for
.toml
files to$path
(#633) -
Added support for
Font
andCFrame
attributes (rbx-dom#299, rbx-dom#296) -
Added the
emitLegacyScripts
field to the project format (#765). The behavior is outlined below:emitLegacyScripts
ValueAction Taken by Rojo false Rojo emits Scripts with the appropriate RunContext
for*.client.lua
and*.server.lua
files in the project.true (default) Rojo emits LocalScripts and Scripts with legacy RunContext
(same behavior as previously).It can be used like this:
{ "emitLegacyScripts": false, "name": "MyCoolRunContextProject", "tree": { "$path": "src" } }
-
Added
Terrain
classname inference, similar to services (#771)Terrain
may now be defined in projects without using$className
:"Workspace": { "Terrain": { "$path": "path/to/terrain.rbxm" } }
-
Added support for
Terrain.MaterialColors
(#770)Terrain.MaterialColors
is now represented in projects in a human readable format:"Workspace": { "Terrain": { "$path": "path/to/terrain.rbxm" "$properties": { "MaterialColors": { "Grass": [10, 20, 30], "Asphalt": [40, 50, 60], "LeafyGrass": [255, 155, 55] } } } }
-
Added better support for
Font
properties (#731)FontFace
properties may now be defined using implicit property syntax:"TextBox": { "$className": "TextBox", "$properties": { "FontFace": { "family": "rbxasset://fonts/families/RobotoMono.json", "weight": "Thin", "style": "Normal" } } }
Patch visualizer and notifications
-
Added a setting to control patch confirmation behavior (#774)
This is a new setting for controlling when the Rojo plugin prompts for confirmation before syncing. It has four options:
- Initial (default): prompts only once for a project in a given Studio session
- Always: always prompts for confirmation
- Large Changes: only prompts when there are more than X changed instances. The number of instances is configurable - an additional setting for the number of instances becomes available when this option is chosen
- Unlisted PlaceId: only prompts if the place ID is not present in servePlaceIds
-
Added the ability to select Instances in patch visualizer (#709)
Double-clicking an instance in the patch visualizer sets Roblox Studio's selection to the instance.
-
Added a sync reminder notification. (#689)
Rojo detects if you have previously synced to a place, and displays a notification reminding you to sync again:
-
Added rich Source diffs in patch visualizer (#748)
A "View Diff" button for script sources is now present in the patch visualizer. Clicking it displays a side-by-side diff of the script changes:
-
Patch visualizer now indicates what changes failed to apply. (#717)
A clickable warning label is displayed when the Rojo plugin is unable to apply changes. Clicking the label displays precise information about which changes failed:
Miscellaneous
-
Added
plugin
flag to thebuild
command that outputs to the local plugins folder (#735)This is a flag that builds a Rojo project into Roblox Studio's plugins directory. This allows you to build a Rojo project and load it into Studio as a plugin without having to type the full path to the plugins directory. It can be used like this:
rojo build <PATH-TO-PROJECT> --plugin <FILE-NAME>
-
Added new plugin template to the
init
command (#738)This is a new template geared towards plugins. It is similar to the model template, but creates a
Script
instead of aModuleScript
in thesrc
directory. It can be used like this:rojo init --kind plugin
-
Added protection against syncing non-place projects as a place. (#691)
-
Add buttons for navigation on the Connected page (#722)
Fixes
- Significantly improved performance of
rojo serve
androjo build
on macOS. #783 - Significantly improved performance of
rojo sourcemap
(#668) - Fixed the diff visualizer of connected sessions. (#674)
- Fixed disconnected session activity. (#675)
- Skip confirming patches that contain only a datamodel name change. (#688)
- Fix Rojo breaking when users undo/redo in Studio (#708)
- Improve tooltip behavior (#723)
- Better settings controls (#725)
- Rework patch visualizer with many fixes and improvements (#713, #726, #755)
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 you Roblox Studio plugins folder
There are also multiple ways to install the Rojo CLI:
With Aftman
Add a line to the [tools]
section in aftman.toml
:
rojo ="rojo-rbx/[email protected]"
From GitHub Release
Download one of the attached binaries on this release page!
From Crates.io
You can use Cargo (1.70.0+) to build the release yourself from crates.io:
cargo install rojo --version 7.4.0-rc1