Argon - Full featured tool for Roblox development

Okay, make sure to install version 2.0.7.

You can do both thanks to the .ROBLOSECURITY cookie.

Plugin/model/package distribution. External place manipulation - Itā€™s better to keep e.g. your map in an XML file rather than having thousands of folders.

As I said having the ability to revert changes and see them, better collaboration, issue tracking, code review, etc. (source control). Writing consistent and non-vulnerable code (StyLua & Selene).

But you literally canā€™t do everything these tools enable in Luau and even the stuff that can be done will work extremely badly as Luau is simply slow compared to Rust and C++ which donā€™t even have a runtime.

This is my last response regarding this discussion as I donā€™t want to waste any more time.

1 Like

You have all been incredibly helpful! It works like a charm. However, I am struggling with one more thing in setting up a multi-place repo.

I have a directory for different places called Match and Hub, and a Shared directory with the same folder structure inside that the place directories use. Currently, my ServerScriptService is set up like this:

"ServerScriptService": {
  "$className": "ServerScriptService",
  "Local": {
    "$path": "src/hub/ServerScriptService"
  },
  "Shared": {
    "$path": "src/shared/ServerScriptService"
  }
}

So, ServerscriptService has 2 folders (Local and Shared). However, I thought it would be ideal if it was possible to merge these directories whenever I sync it to Roblox. I thought something like this could work, but it does not:

"ServerScriptService": {
  "$className": "ServerScriptService",
  "$path": ["src/hub/ServerScriptService", "src/shared/ServerScriptService"]
}

Instead, I could create a build script in Python that merges the directories into a temporary directory which I then deploy to Roblox, but I am not sure how to automate the execution of this whenever I sync using Argon.

I was hoping that someone could help me, but I may be overcomplicating things and should just stick with separate folders.

I like this idea though it will never be implemented because:

  • two-way sync would be a total mess
  • there is no way to resolve a file with two sources reliably
  • when doing changes only the contents of one directory would be processed

I think this is the way to go. We should create some kind of Argon subsystem to let users do their own file processing triggered by custom Argon events. There is already an idea to make a very similar API but on the Roblox Studio end so we could introduce both in the same update.

My current idea is to make something like scripts in package.json but in Argonā€™s *.project.json.

2 Likes

Anyways, I would still not use this as I think Roblox Studio its just great. I had to get your and others opinion about this and Iā€™ve got 'em. Thats it.

1 Like

Thanks for the tool. Iā€™m just getting started with it and it seems great so far.

Iā€™ve been looking for how to get it to auto accept,
ā€œPROMPT: You are about to apply ā€¦ Do you want to continue? y/nā€

Is there a CLI flag I missed relating to this? Thanks.

There is --yes or -y flag that automatically answers all prompts with the default option. I think it would be a good idea to add a new global setting so that users can control the threshold for displaying this confirmation.

1 Like

First time installing argon (through vs code), this is the error I got:
image

Try running VS Code as an administrator.

Is possible make argon ignores some folder?

Yes, by specifying ignore glob in your *.project.json.

how todo it for a specific folder, like map folder

If map is inside src folder just add this to your project:

"ignoreGlobs": ["src/map"]

or:

"ignoreGlobs": ["src/map/**"]

In Argon 2.0.11 you can sync MeshParts!

2 Likes

Hi there, iā€™m sorry for the bump but iā€™m having trouble getting instances to not get added to my projectā€™s json (that aside thanks for the tool, working wonderfully so far).

I have the pluginā€™s sync priority set to client and only code mode on all options, I added the instance names to IgnoreGlobs on the json as indicated in a reply, and iā€™ve tried the syncback settings as stated in the documentation (both class names and instance names, following the example), having done all of that, it still happens.

Any clue what iā€™m doing wrong on my end? For context iā€™m using a custom template and my code is setup like this (using RunContext for personal preference):
imagen_2024-07-14_234638649


(Baseplate isnā€™t in the image as removing it from the json deleted it, but yeah, if I add it back in the placefile it shows again in the json).

It looks like there is a problem with Only Code Mode setting. Itā€™s probably a bug but Iā€™m going to fix it in the 2.1 version as I want to change and improve many other things related to Studio ā†’ file system syncing.

Also, there is a chance that this unreleased patch will help you with syncing your custom file structure.

1 Like

My team Lumin Labs is moving to full Argon integration, does it support Rojo migration? I ask this because I depend on many github workflows that use commands such as rojo build, rojo sourcemap and also the wally-package-types package. This is what we use to build packages for reference:

Argon has all of Rojo commands except for upload (which will be available in 2.1).

These are the only two things you need to change when moving from Rojo:

Even though Argon uses different field names in project.json it is backward-compatible with one exception:

  • If you have placeId in your project.json you need to move it to servePlaceIds array

All Rojo file types are supported by Argon as well with one exception:

  • If you have any init.csv files you need to rename them to .src.csv

(See this discussion)

3 Likes

Just a random question, but why canā€™t you use init? Why is it .src?

1 Like

I read through this thread, I could not find solution for my issue.

Problem : When try to connect argon with client priority, cannot connect with this[Unknwn HTTP error: Bad Request]
Plugin Version is 2.0.9, CLI version is 2.0.12.

When skipping initial or priotize server work correctlly.
Do you know what cause this or is it already solved?

1 Like