Rojo enables Roblox developers to use professional-grade software engineering tools https://rojo.space
Find a file
Joe 5c4fd801db Enhance Reconciler with ambiguous path handling and improved matching logic
- Implemented a 3-pass matching algorithm in the Reconciler to handle ambiguous paths, ensuring accurate reconciliation of instances with duplicate names.
- Added default property caching and refined property comparison logic for better instance matching.
- Introduced recursive change-count matching as a tiebreaker for ambiguous results.
- Refactored equality checks and path handling for robustness with duplicate-named siblings.
- Updated descendant search functions for `WeakDom` and `RojoTree` to support the new matching algorithm.
- Exposed `snapshot`, `syncback`, and `variant_eq` modules publicly, along with integration tests for the matching algorithm.
- Enhanced deduplication processes and improved code readability.

These changes significantly improve the reconciliation process, addressing previous ambiguities and enhancing overall performance.
2026-02-17 18:46:57 -06:00
.cargo Use new Cargo config.toml convention 2021-07-12 13:19:36 -04:00
.config Add project configuration and test files in JSON5 format 2026-01-30 09:16:46 -06:00
.cursor Update reflection database and enhance deduplication processes 2026-02-17 07:12:00 -06:00
.github/workflows Enable submodule checkout in CI and release workflows 2026-02-09 23:05:37 -06:00
.vscode Update Luau LSP and project configurations 2026-02-15 16:19:35 -06:00
assets Update Luau LSP and project configurations 2026-02-15 16:19:35 -06:00
benches Add plugin build flag (#735) 2023-07-17 19:15:40 -07:00
build/windows Support long file paths on Windows (past 256 limit) (#464) 2021-08-23 15:21:01 -04:00
crates Enhance VFS initialization and error handling 2026-02-11 20:13:02 -06:00
plugin Refactor matching logic for improved readability and consistency 2026-02-17 18:38:09 -06:00
rbx-dom@1166e5a628 Update rbx-dom subproject to latest commit for improved functionality 2026-02-17 07:14:35 -06:00
rojo-test Add default properties caching and update matching logic 2026-02-17 07:52:29 -06:00
scripts Update reflection database and enhance deduplication processes 2026-02-17 07:12:00 -06:00
src Refactor matching logic for improved readability and consistency 2026-02-17 18:38:09 -06:00
test-projects Improves sourcemap path handling with pathdiff 2026-02-09 23:31:44 -06:00
tests Refactor matching logic for improved readability and consistency 2026-02-17 18:38:09 -06:00
vscode-rojo@f18e6d4c52 Update logging levels in Rojo plugin and enhance test plans 2026-02-11 17:10:35 -06:00
.dir-locals.el Plugin dev ux improvements (#992) 2024-11-10 15:53:58 -08:00
.editorconfig Changed file extensions of init command from lua to luau (#831) 2024-01-05 16:00:49 -08:00
.git-blame-ignore-revs Create .git-blame-ignore-revs & Add Stylua pr (#787) 2023-09-19 05:56:39 +00:00
.gitattributes Set linguist language of lua files to luau (#956) 2024-08-02 10:03:57 -07:00
.gitignore Add .env to .gitignore and update dependencies 2026-02-09 22:20:33 -06:00
.gitmodules Add vscode-rojo submodule and update schemas for Atlas rebranding 2026-02-07 11:56:14 -06:00
build.rs Upgrade dependencies and refactor serialization in build.rs 2026-02-06 18:57:29 -06:00
Cargo.lock Bump version to 8.3.0 2026-02-15 16:28:55 -06:00
Cargo.toml Bump version to 8.3.0 2026-02-15 16:28:55 -06:00
CHANGELOG.md Enhance Reconciler with ambiguous path handling and improved matching logic 2026-02-17 18:46:57 -06:00
CONTRIBUTING.md Fix a grammar error and a typo (#1113) 2025-09-16 11:00:34 -07:00
install.ps1 Add vscode-rojo installation script execution to install scripts 2026-02-08 16:30:55 -06:00
install.sh Add vscode-rojo installation script execution to install scripts 2026-02-08 16:30:55 -06:00
LICENSE.txt Tweak bottom of README, move LICENSE to LICENSE.txt 2019-01-18 20:57:19 -08:00
plugin.project.json Refactor project configuration to use .json format 2026-01-30 10:06:32 -06:00
README.md Update README to reflect new GitHub repository link 2026-02-07 13:58:59 -06:00
rokit.toml Update Luau LSP and project configurations 2026-02-15 16:19:35 -06:00
selene.toml Move to using Rokit, update tools, and don't install unnecessary tools (#1109) 2025-08-29 18:45:15 -07:00
testez.yml Update selene (#550) 2022-06-12 03:41:49 -04:00

Rojo
 
Actions status Latest server version Rojo Documentation

Rojo is a tool designed to enable Roblox developers to use professional-grade software engineering tools.

With Rojo, it's possible to use industry-leading tools like Visual Studio Code and Git.

Rojo is designed for power users who want to use the best tools available for building games, libraries, and plugins.

Features

Rojo enables:

  • Working on scripts and models from the filesystem, in your favorite editor
  • Versioning your game, library, or plugin using Git or another VCS
  • Streaming rbxmx and rbxm models into your game in real time
  • Packaging and deploying your project to Roblox.com from the command line

In the future, Rojo will be able to:

  • Sync instances from Roblox Studio to the filesystem
  • Automatically convert your existing game to work with Rojo
  • Import custom instances like MoonScript code

Documentation

Documentation is hosted in the rojo.space repository.

Contributing

Check out our contribution guide for detailed instructions for helping work on Rojo!

Pull requests are welcome!

Rojo supports Rust 1.88 and newer. The minimum supported version of Rust is based on the latest versions of the dependencies that Rojo has.

License

Rojo is available under the terms of the Mozilla Public License, Version 2.0. See LICENSE.txt for details.