Integrating Github

I don’t believe professional roblox devs use roblox studio as their primary means of development. The version control is incredibly painful to work with.

I’ve seen Rojo but from what I understand it only deals with scripts. What can be done about every other datatype in roblox studio? Is there any reliable solution to integrating github. I have no issue with writing code in Roblox Studio and not using an external text editor.

Rojo can handle most of the roblox data, either by json or rbxm. in its documentation is everything. version control is just one of its goals.
Besides Rojo there are others like Argon, but Rojo is the most used and reliable.

1 Like

While the biggest use of Rojo is for scripts, it supports all datatypes, in both binary form and also as files. See the Rojo Sync Details page for more information, but I can give a brief overview on what you can do.

The structure of the game/model (including services, their properties, and where files actually go) is defined by a .project.json file. You can define instances here, but it would quickly become cluttered, so it is probably not a good idea. Thankfully, Rojo supports many ways to define instances in the file structure.

First, it supports .rbxm and .rbxmx files, which allow you to directly import Roblox datatypes into the built file. This is easy to use, especially for larger builds (imagine an entire map—it would be nice to have it as one single file), but due to them being binary/XML, manual modification or viewing differences would be very difficult.

You can manually create instances using .model.json files, which allow you to define the class name, properties, and children. This can be useful for simple objects, like RemoteEvents.

There are also .meta.json files, which allow you to modify properties of things which typically wouldn’t have a way to do so, like folders or scripts.

Finally, projects can be nested, which allows for things like using external libraries easily (most Roblox libraries uploaded to Github use Rojo—look for a default.project.json file).


Rojo is a tool to build a the file into a place or model file, but it doesn’t allow you to easily modify these generated files. To achieve this, tools like Lune exist. (I’ll be honest, I haven’t heard of Lune until writing this. I was going to recommend Remodel, but it was deprecated in favor of Lune, so use Lune instead I guess.)

I have never used Lune (or Remodel, for that matter) myself, but looking at the API, it gives an instance system that is very similar to Roblox’s, allowing for easy modification of instances inside of files. When done, you can write the updated file to a new file or even upload it directly to Roblox (Lune doesn’t seem to have an API for this, but the docs provide a version of Remodel ported to Lune, which has all of the APIs that Remodel supported).

3 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.