All Projects → vocksel → studio-bridge

vocksel / studio-bridge

Licence: MIT license
Automatic syncing of files to Roblox Studio

Projects that are alternatives of or similar to studio-bridge

Rostar
Dead simple fully managed Rojo helper for Roblox projects
Stars: ✭ 26 (+116.67%)
Mutual labels:  roblox, roblox-studio
lua-lessons-ru
Исходные тексты видео курса "Уроки Love2D, Roblox и Lua для всех"
Stars: ✭ 13 (+8.33%)
Mutual labels:  roblox, roblox-studio
RbxRefresh
Syncs a local file structure to ROBLOX Studio.
Stars: ✭ 18 (+50%)
Mutual labels:  roblox, roblox-studio
rojo.space
Rojo website
Stars: ✭ 32 (+166.67%)
Mutual labels:  roblox
TopbarPlus
Construct dynamic and intuitive topbar icons. Enhance the appearance and behaviour of these icons with features such as themes, dropdowns and menus.
Stars: ✭ 51 (+325%)
Mutual labels:  roblox
luacheck-roblox
Luacheck specifications for Roblox Lua
Stars: ✭ 36 (+200%)
Mutual labels:  roblox
plasma
A declarative, immediate mode UI widget library for Roblox.
Stars: ✭ 35 (+191.67%)
Mutual labels:  roblox
ro.py
ro.py is a modern, asynchronous Python 3 wrapper for the Roblox API.
Stars: ✭ 65 (+441.67%)
Mutual labels:  roblox
Quicksave
DataStore abstraction library. Looking for a new maintainer.
Stars: ✭ 26 (+116.67%)
Mutual labels:  roblox
roact-material
Material design in Roblox w/ Roact!
Stars: ✭ 18 (+50%)
Mutual labels:  roblox
Roblox-Miscellaneous
A set of ROBLOX based utilities
Stars: ✭ 21 (+75%)
Mutual labels:  roblox
awesome-roblox
A curated list of ROBLOX resources, plugins and frameworks!
Stars: ✭ 76 (+533.33%)
Mutual labels:  roblox
EvLightning
EvLightning is a Roblox Lua library. Its purpose is to generate realistic-looking lightning bolts. This could be used to easily add lightning strike effects to any game
Stars: ✭ 34 (+183.33%)
Mutual labels:  roblox
Fabric
Fabric provides infrastructure for representing the state of things in your game.
Stars: ✭ 59 (+391.67%)
Mutual labels:  roblox
RobloxLsp
Roblox Luau Language Server based on Lua by sumneko.
Stars: ✭ 150 (+1150%)
Mutual labels:  roblox
bypass-captcha-examples
Different complex captcha bypass examples: Steam, Netflix, Data Dome, Adobe, etc.
Stars: ✭ 62 (+416.67%)
Mutual labels:  roblox
Lua-Obfuscator
Obfuscate your lua code because it's so easy to steal!
Stars: ✭ 69 (+475%)
Mutual labels:  roblox
Lua-Obfuscator
A Lua Obfuscator made for Roblox, but should work on most Lua applications
Stars: ✭ 84 (+600%)
Mutual labels:  roblox
Adonis 2.0
Roblox Server Administration System
Stars: ✭ 36 (+200%)
Mutual labels:  roblox
roblox-js
!!!THIS PROJECT IS NO LONGER MAINTAINED!!! Execute ROBLOX website actions in node.js
Stars: ✭ 46 (+283.33%)
Mutual labels:  roblox

Studio Bridge

Synchronize Lua code from your computer to Roblox Studio.

Gif demonstrating Studio Bridge.

You lay out your project to mimic Roblox's hierarchy, and Studio Bridge does the rest.

src/
  ReplicatedStorage/
    Event.json
    Shared.module.lua
  ServerScriptService/
    Server.lua
  StarterPlayerScripts/
    StarterPlayer/
      Client.local.lua

NOTE: Studio Bridge is not suitable for Team Create. It actively overwrites the scripts it manages, immediately reverting any changes another user makes.

Setup

Studio Bridge is a combination of a command-line interface and a Roblox plugin. This makes setup a bit tricky, but once complete you'll have significantly more control over your code.

Plugin

The plugin is hosted on Roblox's website and can be easily downloaded right from inside Studio.

CLI

Install NodeJS, then run the following command to install the command-line interface:

$ npm install -g studio-bridge

The CLI should now be globally accessible on the command-line. Run the following to verify:

$ studio-bridge --version

This will display the CLI's current version. If this worked with no errors, the CLI is successfully installed.

Game

In each game you want to use Studio Bridge with, you'll need to set HttpService.HttpEnabled to true. This allows the plugin to communicate with the server. Without HTTP requests, changes cannot be synced.

HttpEnabled can't be changed by plugins, so unfortunately this has to be done manually.

Tutorial

This sections guides you through setting up a project on your computer and using Studio Bridge to sync it all to Studio

Start by creating a directory named sample, then create a file named HelloWorld.lua with the following contents:

print("Hello, World! I'm located at", script:GetFullName())

It should look something like this:

What everything looks like on the filesystem.

Next we want to start the server so the plugin has something to sync with. Run the studio-bridge command, passing in the sample directory:

$ studio-bridge sample/
Server started on http://localhost:8080
Using: C:\sample

Next click the plugin's "Sync" button from inside Studio.

The Sync button highlighted in Studio

If everything was setup correctly, you'll notice a HelloWorld Script at the same level as all the Roblox Services.

The HelloWorld script placed in the DataModel with services like Workspace and Players.

This is because Studio Bridge overlays the directory structure on the DataModel. To have your files show up under services like ReplicatedStorage and ServerScriptServices, you need to add directories with those names.

Move HelloWorld.lua into a new ServerScriptService directory:

sample/
  ServerScriptService/
    HelloWorld.lua

Be sure to delete the HelloWorld Script from the last sync. Studio Bridge doesn't remove things for you, so you'll have to do that manually.

When synced, the HelloWorld script now shows up under ServerScriptService in-game.

The HelloWorld script under ServerScriptService in-game

Run the game, and you should see the following in your output:

The output window, displaying "Hello, World! I'm located at ServerScriptService.HelloWorld"

And that's all there is to getting your code from the filesystem into Studio. Getting setup is a bit of work, but once complete it's easy to code from your favorite text editor and have it synced over.

We only cover regular Scripts in this guide, but you'll no doubt want to make use of LocalScripts, ModuleScripts, and even things like RemoteEvents. This is all covered below.

Instances

Studio Bridge converts folders and Lua files into their Roblox equivalents. JSON files can be used for more complex instances, like Sounds and RemoteEvents.

Global Properties

These apply to every file/directory that Studio Bridge handles.

  • The Name property is set to the name of the file/directory. If you had a file named Sample.lua, it would compile into a Script named Sample.

Script Properties

Applies to all .lua files.

  • ClassName is set by appending short versions of Script classes after the filename, like so:
    • Sample.local.lua compiles to a LocalScript.
    • Sample.module.lua compiles to a ModuleScript.
    • Anything else compiles to a Script. For consistency you can use Sample.script.lua.
  • Source is set to the contents of the file.

Folder Properties

  • ClassName is set to Folder for all directories.

Other Instances

JSON files make up every other instance.

To use them, you just make a list of properties. The only mandatory property is the ClassName. The Name property is still the name of the file.

For example, say you wanted to add a StarterHumanoid. Your files would look like this:

src/
  StarterPlayer/
    StarterHumanoid.json

And StarterHumanoid.json could have the following contents:

{
  "ClassName": "Humanoid",
  "WalkSpeed": 20,
  "HealthDisplayDistance": 50
}

Cleanup

All of your code, once synced, will not be removed by Studio Bridge. This means if you restructure your project, you'll need to delete everything from Studio manually.

Contributing

The plugin and CLI are both hosted on independent GitHub repositories. To learn how to contribute to each one, check out their respective READMEs.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].