← Blog Home

RSync - Third party IDE support for ROBLOX Studio in one click

Hello everyone! I just wanted to take a minute to share with you a plugin that I've been working on for the past few days, and I think that a lot of you will find it to be quite helpful in your ROBLOX development!

RSync is an open source plugin that easily integrates any third-party code editor or IDE, such as Sublime Text, Notepad++, VS Code, or Atom, into ROBLOX Studio. This is accomplished via a helper application which runs in the tray and acts as a middle man between your code editor of choice and ROBLOX Studio.

Imgur


Download and Documentation

View on GitHub Download Latest Version

When you download the application and run it, just leave it in your tray and the plugin will be automatically installed. If Windows blocks the executable from running, just click "More Info" then click "Run Anyway"- this is only because the application isn't popular, but the source is on github if you want to check it out.

Features

In addition to allowing you to edit any script in your editor of choice, RSync has the following features:

Persistent Mode / Git Mode

By default, RSync will use a temporary folder, but using a persistent directory is also supported. This will cause the plugin to write all scripts to disk (nested with folders that match in-game hierarchy), even ones you don't explicitly open. The plugin will keep the scripts up to date on disk, even through Parent or Name changes. If you delete the script from your game, it will also be deleted on disk. If two objects have the same name and parent, one of them will be appended with (2) at the end of its name.

PMode Demo

Mixins

Mixins allow you to use the syntax @(mixin_name) in your scripts, which will return any values you set in the Mixins module. To use this feature, create a ModuleScript in ReplicatedStorage named Mixins.

Example Mixins script:

return {
    hello = "Hi there!";
    require_all_children = function(mixin, script, env)
        for _, child in pairs(script:GetChildren()) do
            if child:IsA("ModuleScript") then
                require(child)
            end
        end
    end;
}

Then, anywhere in another script:

@(require_all_children)

print(@(hello))

This actually compiles to:

local __RSMIXINS=require(game.ReplicatedStorage.Mixins);__RSMIXIN=function(a,b,c)if type(__RSMIXINS[a])=='function'then return __RSMIXINS[a](a,b,c)else return __RSMIXINS[a]end end

__RSMIXIN('require_all_children', script, getfenv())

print(__RSMIXIN('hello', script, getfenv()))

MoonScript Support

If you have MoonScript installed on your computer (have moonc in your PATH), RSync can automatically compile your scripts into Lua every time you save them and instantly push them to your game in Studio.

Posted in Scripting Tips

Commentary

Leave a Comment

konichiwah1337 says: August 16, 2016
bwahahaha time for mega exploitation jk jk, but seriously I wont be using this for awhile since I'm such a n00b awesome plugin tho!!
PureConcept says: August 18, 2016
Looks like its for Windows only?
jackctaylor says: August 20, 2016
What script editor is that you are using? Looks pretty.
markisntcrazy says: August 22, 2016
what about the mac users? also @jack, thats RSync
Pyrondon says: August 23, 2016
I think jack was asking about the actual editor, which seems to be Sublime Text.
TheHospitalDev says: August 25, 2016
Avast said it's a rare fail and its sent it to its "virus investigation lab". Now to just wait 102 minutes to know its a safe file despite I already know it is.
JamesLWalker says: September 18, 2016
"Not a valid Windows x32 application." Good job.
Ad