Argon - VS Code sync [Plugin]

Argon 2 is in the early stages of development! Here is new GitHub repo.

All of the data and links below are related to the legacy version of Argon!

About

Argon is a simple two-way sync plugin for Roblox and extension for Visual Studio Code allowing developers not only sync code with ease, but any other instance as well with no need to re-generate project. It also provides tons of tools and quality of life improvements Argon is an alternative for Rojo not its replacement!

Links

Features

  • Two-way sync
  • Property sync for all instances in your game
  • Support for renaming, changing directory and classes
  • Instance syncing with various filtering options
  • Integrated selection snippet, file executor
  • Porting in both sides with just one button
  • Option to start playtest directly from VSC
  • Option to launch Studio directly from VSC
  • Customizable, expandable and flexible
  • Working open in editor option
  • Integrated file icon theme
  • Very simple in use
  • Fast setup

Wiki

Getting Started

Usage

Demo

Changelog

All changes are documented in this CHANGELOG.md file

169 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?

12 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!

8 Likes

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.

6 Likes

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

11 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.

5 Likes

Oh I forgot about white theme, sorry!

5 Likes

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?

6 Likes

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.

4 Likes

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)

4 Likes

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

4 Likes

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

5 Likes

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

3 Likes

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)
3 Likes

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

3 Likes

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.

3 Likes

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

3 Likes

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.

4 Likes

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

4 Likes

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.

5 Likes