Argon - VS Code sync [Plugin]

Argon Logo

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

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

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

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

2 Likes

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

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

1 Like

Oh I forgot about white theme, sorry!

1 Like

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?

1 Like

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.

1 Like

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)

1 Like

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

2 Likes

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

2 Likes

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

1 Like

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)
1 Like

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

1 Like

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.

1 Like

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

1 Like

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.

1 Like

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

1 Like

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.

2 Likes