Rojo enables Roblox developers to use professional-grade software engineering tools https://rojo.space
Find a file
boatbomber 6542304340
Fix the diff visualizer of connected sessions (#674)
Clicking on the "X changes X ago" message opens up a handy diff
visualizer to see what those changes were. However, it had quite a few
issues that needed fixing.

- Disconnecting a session with it expanded caused an error as it tried
to read the serveSession that no longer exists during the page fade
transition. (#671)
- Resolved by converting to stateful component and holding the
serveSession during the lifetime to ensure it can render the last known
changes during the fade transition
- Leaving it open while new changes are synced did not update the
visualizer
- The patch data was piggybacking on an existing binding, which meant
that new patches did not trigger rerender.
    - Resolved by converting to state
    - Also made some improvements to that old binding
- Moved from app to connected page for better organization and
separation of duties
      - No more useless updates causing rerenders with no real change
- Scroll window child component wouldn't actually display the updated
visuals
    - Resolved by making major improvements to VirtualScroller
      - Made more robust against edge case states
      - Made smarter about knowing when it needs to refresh

As you can see in this slow motion GIF, it works now.

![slowedDemo](https://github.com/rojo-rbx/rojo/assets/40185666/c9fc8489-72a9-47be-ae45-9c420e1535d4)
2023-06-03 22:46:16 -07:00
.cargo Use new Cargo config.toml convention 2021-07-12 13:19:36 -04:00
.github Switch plugin packages back to git submodules (#678) 2023-05-26 10:26:21 -07:00
assets Renamed Common to Shared (#611) 2022-08-08 03:59:52 -04:00
benches Update benches so they compile (#582) 2022-07-17 18:50:12 -04:00
build/windows Support long file paths on Windows (past 256 limit) (#464) 2021-08-23 15:21:01 -04:00
crates Move memofs and rojo-insta-ext into crates folder 2022-05-26 04:23:44 -04:00
plugin Fix the diff visualizer of connected sessions (#674) 2023-06-03 22:46:16 -07:00
rojo-test Simplify usage of attributes. (#574) 2022-08-03 20:07:06 -04:00
src Sourcemap performance improvements (#668) 2023-05-06 01:01:15 -07:00
test-projects Live sync Attributes (#553) 2022-06-29 18:53:34 -04:00
tests feature init csv (#594) 2022-07-29 21:45:19 -04:00
.editorconfig Fix Insta snapshot files having their line endings truncated when edited 2019-11-25 18:10:39 -08:00
.gitignore Switch plugin packages back to git submodules (#678) 2023-05-26 10:26:21 -07:00
.gitmodules Switch plugin packages back to git submodules (#678) 2023-05-26 10:26:21 -07:00
aftman.toml Switch plugin packages back to git submodules (#678) 2023-05-26 10:26:21 -07:00
build.rs Switch git submodules to Wally packages (#584) 2022-08-03 18:36:58 -04:00
Cargo.lock Sourcemap performance improvements (#668) 2023-05-06 01:01:15 -07:00
Cargo.toml Sourcemap performance improvements (#668) 2023-05-06 01:01:15 -07:00
CHANGELOG.md Sourcemap performance improvements (#668) 2023-05-06 01:01:15 -07:00
CONTRIBUTING.md Release v7.1.1 2022-05-26 02:53:20 -04:00
LICENSE.txt Tweak bottom of README, move LICENSE to LICENSE.txt 2019-01-18 20:57:19 -08:00
README.md Add Patreon badge to README 2022-08-20 23:44:10 -04:00
selene.toml Add testez std (#535) 2022-04-19 17:45:55 -04:00
testez.yml Update selene (#550) 2022-06-12 03:41:49 -04:00

Rojo
 
Actions status Latest server version Rojo Documentation Patreon

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.58.1 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.