Skip to content

v7.4.0-rc2

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 04 Oct 06:07
1caf944

This 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 and CFrame attributes (rbx-dom#299, rbx-dom#296)

  • Added the emitLegacyScripts field to the project format (#765). The behavior is outlined below:

    emitLegacyScripts Value Action 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:

    Rojo reminds you to sync a place that you've synced previously

  • 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:

    The patch visualizer contains a "view diff" button

    The "View Diff" button opens a widget that displays a diff

  • 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:

    Patch visualizer displays a clickable warning label when changes fail to apply

Miscellaneous

  • Added plugin flag to the build 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 a ModuleScript in the src 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 and rojo 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