Argon - Full featured tool for Roblox development

I don’t think so this conversation is going as it needed to be, First of all I want state that: I don’t have any problem with external development, I myself have used GitHub and other VCS (not VSC) services like git and I indeed use them for other projects like Minecraft modding, etc. I am here just to criticize some of your points about external development and prove some of my points. So here I do:

I think you are talking about publishing assets, while Argon may solve this by programmatically publishing assets, but it has nothing to do with publishing/Deploying (pushing game update out).
Publishing assets and pushing out an update are not the same things, Also, You can just push out an update by (ALT + P).

Why do we even need to build it into Roblox binary in the first place, I understand that as of your perspective, you are doing external development, but (Again your perspective) your tools Like Rojo or Argon are already syncing between studio and VSC (Visual studio code) so if you just need place-file you can get/download it from studio, there are various ways.

What kind of problems you are talking? (Reply after)

I do understand, I’ve already mentioned on top of this reply that I am just criticizing and proving my points, No problem with that.

Yes, That’s what I am trying to say here, not me but anyone can do if they have some spare time and want to program something in mean time. If said clearly “bit of adjusting and modifying”, meant to abstract away the platform dependent code as step one and replace abstracted away code with Roblox studio plugin specific code.

Well, I take that as I was wrong about version controlling in Roblox projects.

Well I know that, I corrected in my above reply from “only” to “mostly” when I saw that in your replies.

That’s all what I had to say.

1 Like

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