Introduction
Welcome! Rojo is a project management tool designed to get professional resources in the hands of Roblox developers. Here, we'll teach you how to get started with Rojo.
This documentation is a continual work in progress. If you find any issues, please file an issue on the Rojo website issue tracker!
New to Rojo? Check out Installation.
Why Rojo?
Adding a tool like Rojo to your Roblox workflow can be daunting, but it comes with some key advantages.
Tools
There are decades of excellent tools available that operate on files. With Rojo, it's possible to take advantage of any of them!
Popular tools that are tailored towards Roblox or Luau in general:
- Selene, a static analysis tool to help you write better Lua
- StyLua, a formatter that helps keep your code in a consistent style
- Wally, a package manager for Roblox projects
- Moonwave, a documentation generator for Lua projects
Rojo at RDC 2019
Nathan Riemer (Kampfkarren) gave a talk at RDC 2019 talking about some of the benefits of using a tool like Rojo.
External Text Editors
Rojo opens the door to use the absolute best text editors in the world and their rich plugin ecosystems.
Some very popular editors include Visual Studio Code and Sublime Text.
These advanced text editors have features like multi-cursor editing, go-to symbol, multi-file regex find and replace, bookmarks and much more.
Rojo users that use Visual Studio Code often use the following extensions:
- luau-lsp - An LSP implementation for Luau, Roblox's scripting language.
- StyLua - A VSCode companion for Stylua, which is linked above
- Selene - A VScode companion for Selene, which is linked above. Note that this often overlaps with luau-lsp's analysis.
- roblox-ui - A visualizer for Rojo projects that makes navigating and adding to them easier.
Version Control
By building your game (or just the scripts) as individual files on the filesystem, it becomes easy to start using professional-grade version control tools like Git and GitHub.
Hundreds of thousands of companies and individual developers use Git to version their software projects. With Rojo, Roblox developers can take advantage of the best collaboration tool around.
Using a repository hosting service like GitHub or GitLab brings powerful features to Roblox developers like code reviews and issue tracking that professional engineers can't live without.
TypeScript
TypeScript enables static type safety, which helps prevent typos and adds unparalleled autocompletion. It also brings features like arrow functions, object destructuring, functional programming methods, and more!
With Rojo, you can use roblox-ts to compile TypeScript to Luau and take advantage of a huge ecosystem of TypeScript tooling. This project is not strictly speaking related to Rojo, but it is very cool and many people prefer to use it over writing Luau.
It's also possible to use other languages that compile to Lua like MoonScript and Haxe. However, there's very little development in the way of tooling for these languages, so be warned: here be dragons.