Argon - VS Code sync [Plugin]

LogoNameOutline

About

Argon is a simple two-way sync plugin for Roblox and extension for Visual Studio Code allowing developers not only to sync code but every possible Roblox class with ease. Argon is an alternative for Rojo not its replacement!

Links

Features

  • Two-way sync (currently only from VS Code to Roblox is supported)
  • Support for renaming, changing directory and classes
  • Porting in both sides with just one button
  • Instance syncing with various options
  • Customizable, expandable and flexible
  • Self updating class database
  • Integrated file icon theme
  • Very simple in use
  • Fast setup

Why?

You may ask. Why do we need another syncing plugin if there are already plugins like Rojo. Answer is simple. Argon is not created for huge teams working with ton of external frameworks, libraries or other tools. This plugin is supposed to be easy in use, convenient, intuitive and provide quick project setup.

Main reason why I created this plugin is because I got very frustrated when I had to re-generate Rojo project to put code inside instances that i created after initial project generation.

Usage

1. Setting up the project

2. Managing instances

3. Managing scripts

4. Syncing code

5. Porting to Visual Studio Code

6. Porting to Roblox

7. Ignoring instances and classes

You can find more detailed explanation in this tutorial by @AridTheDev
(Huge thanks!)

Demo

Changelog

All changes are documented in this file

Important note!

This plugin is still in early stage of development various bugs may occur. Any feedback is highly appreciated!

52 Likes

I’m not trying to be that one guy, but I’m not seeing anything that would make me use this over Rojo – Rojo is meant for both small and large teams, using Luau (TS isn’t officially supported by Rojo and is compiled to Luau)

Onto my next point here – How do you manage properties for instances? I know you were able to create them, but you showed nothing regarding their properties, nor does this seem to really have documentation. Another thing that may be relatively minor is configuration (in this context) – people might like to call a folder “src” or “source”, etc, but it seems like you’re only able to use “game” here. I feel like it’s something that would annoy me. Additionally, what about unknown instances (Rojo “$ignoreUnknownInstances” I believe)? Will Argon delete them immediately, or is there an option for its configuration?

3 Likes

That’s fine I mainly created this for myself and just wanted make it public in case someone else will find that useful.

Good point. I did not plan to add such a feature because I usually adjust properties in Studio. Tho now when I think about it it’s a good idea and I’m gonna add this in the near future. It will probably be done vie .properties file inside instance.

Actually it’s already an option but I did not create configuration file yet.

At this time they are just ignored.

Thank you very much for your valuable feedback really appreciate it!

1 Like

I think this should be fixed, I’m not sure exactly how the plugin works, but if you stop the extension, delete an old file, and then restart it, would the old file still exist? If so, that would be an issue.

Overall though, this is a decent plugin. I think it’s a pretty cool thing to make and a good tool to help you and others.

ok this is triggering me
image
remove the extra white ar text and reposition it

4 Likes

Anything you do wile Roblox plugin is not connected to VS Code extension is added to queue on both sides. If you disable plugin or extension completely nothing is done. So yeah probably that will be an issue which I will fix in the future. Now I will focus on two way sync and exposing options to user.

Oh I forgot about white theme, sorry!

I suggest you focus on Roblox to VS Code
I tend to use roblox studio with output and click on the output and click on errors as its easier to get to them that way

and also rojo whenever I tried to use it, it deleted my remote event under the scripts
will this have the same problem?

There is already extension for VS Code that syncs output, but I will probably add to Argon my own implementation.

No, Argon does not delete any children. If you change directory, name or class it moves everything that was inside of particular instance to new one.

The issue is you didn’t specify that there’d be a remote event under the script. Rojo has .meta files that you could use to solve that problem. (also remote events should typically be in replicatedstorage anyway)

That’s one of the main reasons why I created Argon. Maybe it’s just me but I find that very inconvenient.

1 Like

calm down this plugin was made for personal use and just released after :skull_and_crossbones:

1 Like

Not going to lie, I love this plugin at least what it looks. Is there anyway to export my game to vsc format?

Currently no, but I’m literally working on this right now! There will be two options:

  • via Roblox plugin (no need to save .rbxl file locally)
  • via VS Code extension (local .rblx file required)

Alright, once that releases, I’ll be sure to use it. How do you handle ignoring instances?

There will be an option to sync only instances that contains code.

Instances that have not been registered by the plugin won’t be synced until you force plugin to sync everything / selected directories.

It may be confusing at this moment but I promise when I’m done with scripting I will create clear documentation on custom site.

Obviously there will be an option to ignore selected classes.

I suggest scripts adding to pre existing instances; ex: if I have a model in replicatedstorage or workspace i can specify the path and insert a script in it

You can already do that. When you create new instance inside VS Code and it already exists inside Roblox is will just get reference to that instance.

So in your example you would have to create (in VS Code) folder named name.Model inside folder named Workspace or ReplicatedStorage and then just create script inside of this folder e.g. Script.server.lua.

On my previous post I was taking about Roblox to VS Code scenario.

Can’t wait until I can port all of my games files! It looks super good.

One big plus for this is the ‘easier-ness’ of working with UI and not having to create lots of Rojo meta files. In my experience, working with UI can be somewhat annoying in Rojo, because Rojo isn’t great at having code nested in non-folder/non-service locations (it’s possible to set it up, but it feels clunky). Alternatively, I’ve taken to ‘injecting’ the relevant UI code from one location into designated UI via code that has to be specifically called in other situations. All told, I don’t mind this approach, because it does give me some flexibility that I otherwise wouldn’t have had, but with something like Argon’s approach, I wouldn’t have had to spend the time creating it in the first place.

1 Like