v7.4.0
This release is a long time coming and carries with it the changes of the last 9 months. It is the first full release handled by Rojo's new maintainers.
Important Notice: There is a new place to install Rojo's plugin from Roblox's website. If you are using the version on the website, it now lives here.
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. #830 - 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)
Changes
rojo init
now generates scripts with.luau
as the file extension rather than.lua
(#831)
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 your Roblox Studio plugins folder - Install from the Roblox plugin page
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
New Contributors
- @Miizzuu made their first contribution in #669
- @u-train made their first contribution in #730
- @Corecii made their first contribution in #633
- @sasial-dev made their first contribution in #765
- @jackTabsCode made their first contribution in #816
- @cozywitchcraft made their first contribution in #819
Other Contributors
A very big thank you to @Barocena, @boatbomber, @Boegie19, @chriscerie, @Dekkonot, @filiptibell, @kennethloeffler, and @nezuo for their work in this release!