RSync - Third party IDE support for ROBLOX Studio in one click
Posted on August 15, 2016 by evaera
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.
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.
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.
Commentary
Leave a Comment