v7.4.0-rc2
Pre-releaseThis release has been superseded by v7.4.0-rc3
. Please use that instead!
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.4.0-rc1
- Fixed a bug with parsing the version of the plugin (#797)
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-rc2