This release contains a variety of changes. They are listed below.
Changes since Rojo 7.4.4
Additions
-
Added support for Roblox's
Content
type. This replaces the oldContent
type withContentId
to reflect Roblox's change.
If you were previously using the fully-qualified syntax forContent
you will need to switch it toContentId
. -
Projects may now manually link
Ref
properties together usingAttributes
. (#843)
This has two parts: usingid
or$id
in JSON files or aRojo_Target
attribute, an Instance
is given an ID. Then, that ID may be used elsewhere in the project to point to an Instance
using an attribute namedRojo_Target_PROP_NAME
, wherePROP_NAME
is the name of a property.As an example, here is a
model.json
for an ObjectValue that refers to itself:{ "id": "arbitrary string", "attributes": { "Rojo_Target_Value": "arbitrary string" } }
This is a very rough implementation and the usage will become more ergonomic
over time. -
Projects may now specify rules for syncing files as if they had a different file extension. (#813)
This is specified via a new field on project files,syncRules
:{ "syncRules": [ { "pattern": "*.foo", "use": "text", "exclude": "*.exclude.foo", }, { "pattern": "*.bar.baz", "use": "json", "suffix": ".bar.baz", }, ], "name": "SyncRulesAreCool", "tree": { "$path": "src" } }
The
pattern
field is a glob used to match the sync rule to files. If present, thesuffix
field allows you to specify parts of a file's name get cut off by Rojo to name the Instance, including the file extension. If it isn't specified, Rojo will only cut off the first part of the file extension, up to the first dot.Additionally, the
exclude
field allows files to be excluded from the sync rule if they match a pattern specified by it. If it's not present, all files that matchpattern
will be modified using the sync rule.The
use
field corresponds to one of the potential file type that Rojo will currently include in a project. Files that match the provided pattern will be treated as if they had the file extension for that file type.use
valuefile extension serverScript
.server.lua
clientScript
.client.lua
moduleScript
.lua
json
.json
toml
.toml
csv
.csv
text
.txt
jsonModel
.model.json
rbxm
.rbxm
rbxmx
.rbxmx
project
.project.json
ignore
None! Additionally, there are
use
values for specific script types (#909):use
valuescript type legacyServerScript
Script
withEnum.RunContext.Legacy
legacyClientScript
LocalScript
runContextServerScript
Script
withEnum.RunContext.Server
runContextClientScript
Script
withEnum.RunContext.Client
pluginScript
Script
withEnum.RunContext.Plugin
All sync rules are reset between project files, so they must be specified in each one when nesting them. This is to ensure that nothing can break other projects by changing how files are synced!
-
Added support for
Enum
attributes -
Added support for
.plugin.lua(u)
files - this applies thePlugin
RunContext. (#1008) -
Added
blockedPlaceIds
project field to allow blocking place ids from being live synced (#1021) -
Added support for a
$schema
field in all special JSON files (.project.json
,.model.json
, and.meta.json
) (#974) -
Added popout diff visualizer for table properties like Attributes and Tags (#834)
-
Added update notifications for newer compatible versions in the Studio plugin. (#832)
-
Added experimental setting for Auto Connect in playtests (#840)
Fixes
- Fixed an edge case that caused model pivots to not be built correctly in some cases (#1027)
- Updated Undo/Redo history to be more robust (#915)
- Fixed notification and tooltip text sometimes getting cut off (#988)
Changes
- Significantly improved performance of
.rbxm
parsing - Updated Theme to use Studio colors (#838)
- Improved patch visualizer UX (#883)
- Improved settings UI (#886)
Open Scripts Externally
option can now be changed while syncing (#911)- The sync reminder notification will now tell you what was last synced and when (#987)
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 or Rokit
Add a line to the [tools]
section in aftman.toml
or rokit.toml
:
rojo = "rojo-rbx/rojo@7.5.0"
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.5.0