* Do the nested partition thing * Tidy up touched code * Add nested partition test project, not fully functional * Clean up variable names, move path_metadata mutation strictly into snapshot_reconciler * Remove path_metadata, snapshotting is now pure * Factor out snapshot metadata storage to fix a missing case * Pull instance_name out of per_path_metadata, closer to what we need * Refactor to make metadata make more sense, part one * All appears to be well * Cull 'metadata_per_path' in favor of 'instances_per_path' * Remove SnapshotContext * InstanceMetadata -> PublicInstanceMetadata in web module * Build in snapshot testing system for testing... snapshots? * Remove pretty_assertions to see if it fixes a snapshot comparison bug * Reintroduce pretty assertions, it's not the cause of inequality * Fix snapshot tests with custom relative path serializer
Rojo is a flexible multi-tool designed for creating robust Roblox projects.
It lets Roblox developers use industry-leading tools like Git and VS Code, and crucial utilities like Luacheck.
Rojo is designed for power users who want to use the best tools available for building games, libraries, and plugins.
Features
Rojo lets you:
- Work on scripts from the filesystem, in your favorite editor
- Version your place, model, or plugin using Git or another VCS
- Sync
rbxmxandrbxmmodels into your game in real time - Package and deploy your project to Roblox.com from the command line
Soon, Rojo will be able to:
- Sync instances from Roblox Studio to the filesystem
- Compile MoonScript and other custom things for your project
Documentation
You can also view the documentation by browsing the docs folder of the repository, but because it uses a number of Markdown extensions, it may not be very readable.
Inspiration and Alternatives
There are lots of other tools that sync scripts into Roblox or provide other tools for working with Roblox places.
Here are a few, if you're looking for alternatives or supplements to Rojo:
- rbxmk by Anaminus
- Rofresh by Osyris
- RbxRefresh by Osyris
- Studio Bridge by Vocksel
- Elixir by Vocksel
- RbxSync by evaera
- CodeSync by MemoryPenguin
- rbx-exteditor by MemoryPenguin
If you use a plugin that isn't Rojo for syncing code, open an issue and let me know why! I'd like Rojo to be the end-all tool so that people stop reinventing solutions to this problem.
Contributing
Pull requests are welcome!
Rojo supports Rust 1.31.1 and newer. Any changes to the minimum required compiler version require a minor version bump.
License
Rojo is available under the terms of the Mozilla Public License, Version 2.0. See LICENSE.txt for details.
