r6operators icon indicating copy to clipboard operation
r6operators copied to clipboard

Add loadouts to operators

Open PandaDriver156 opened this issue 5 years ago • 8 comments

I'd like to add loadouts to all operators. I think it's a big change (and a lot of work for me) so it's better to ask whether it would be approved or denied.

Here is an example on how an operator object would look like:

"alibi": {
    "name": "Alibi",
    "role": "Attacker",
    "unit": "GIS",
    "ratings": {
        "armor": 1,
        "speed": 3,
        "difficulty": 3
    },
    "meta": {
        "sex": "f",
        "country": "it",
        "season": "Y3S2",
        "height": 171,
        "weight": 63
    },
    "bio": {
        "real_name": "Aria de Luca",
        "birthplace": "Tripoli, Lybia"
    },
    "loadout": {
        "primary": [
            {
                "name": "Mx4 Storm",
                "type": "submachine",
                "modes": [
                    "auto",
                    "burst",
                    "semi-auto"
                ],
                "damages": {
                    "standard": 26,
                    "suppressed": 22
                },
                "rpm": 950,
                "mobility": 50,
                "magazine_size": 30,
                "ammo": {
                    "pvp": 150,
                    "th": null
                },
                "sights": [
                    "red_dot",
                    "holo",
                    "reflex"
                ],
                "barrels": [
                    "suppressor",
                    "flash_hider",
                    "compensator",
                    "muzzle_brake",
                    "extended_barrel"
                ],
                "grips": [
                    "vertical",
                    "angled"
                ],
                "laser": true
            },
            {
                "name": "ACS12",
                "type": "shotgun",
                "modes": [
                    "auto"
                ],
                "damages": {
                    "standard": 59,
                    "suppressed": 44
                },
                "rpm": 300,
                "mobility": 50,
                "magazine_size": 30,
                "ammo": {
                    "pvp": 60,
                    "th": 150
                },
                "sights": [
                    "red_dot",
                    "holo",
                    "reflex"
                ],
                "barrels": [],
                "grips": [
                    "vertical",
                    "angled"
                ],
                "laser": true
            }
        ],
        "secondary": [
            {
                "name": "Keratos .357",
                "type": "handgun",
                "modes": [
                    "semi-auto"
                ],
                "damages": {
                    "standard": 78,
                    "suppressed": 66
                },
                "rpm": 450,
                "mobility": 45,
                "magazine_size": 6,
                "ammo": {
                    "pvp": 48,
                    "th": null
                },
                "sights": [],
                "barrels": [
                    "suppressor",
                    "muzzle_brake"
                ],
                "grips": [
                    "vertical",
                    "angled"
                ],
                "laser": true
            },
            {
                "name": "Bailiff 410",
                "type": "handgun",
                "modes": [
                    "semi-auto"
                ],
                "damages": {
                    "standard": 30,
                    "suppressed": null
                },
                "rpm": 485,
                "mobility": 50,
                "magazine_size": 5,
                "ammo": {
                    "pvp": 30,
                    "th": null
                },
                "sights": [],
                "barrels": [],
                "grips": [],
                "laser": true
            }
        ],
        "gadget": [
            "impact",
            "deployable_shield"
        ]
    }
}

PandaDriver156 avatar Jun 25 '20 14:06 PandaDriver156

I like the idea on having the weapons/loadouts, but my issue is that the current operators.json file is getting quite long already and quite difficulty to work with. So my current plan is to have the operator data (like metadata & loadout) seperated from the weapons so we can reuse weapon data for other operators as well.

So my plan is to have two different root folders:

  • operators: Contains icon, images & metadata for the operator
  • weapons: Contains each weapon object as a seperate JSON file

I've pushed the new branch @feat/loadouts where i've restructured already the icons to be in their seperate folders. Feel free to clone that branch and do your changes there.

marcopixel avatar Jun 25 '20 18:06 marcopixel

That sounds like a nice structure, but the issue with it is that the loadout for weapons are not the same for every operator. For example, both Doc and Oryx has an MP5, but Doc can equip it with an ACOG while Oryx can't.

PandaDriver156 avatar Jun 26 '20 21:06 PandaDriver156

Oh, i didn't know that. Then having a loadout.json file inside the operator folder should be the easiest solution with the different possible weapons (+attachments) & gadgets. One thing we also could do is seperate the base weapon and extend the loadout with the different possible attachments, so we can update the weapon data independently from the operator specific data.

What do you think is the better approach?

marcopixel avatar Jun 26 '20 22:06 marcopixel

I like the original idea on having the weapons separated from the operators, so my suggestion would be to have all the weapons and their data in the weapons folder, with the attachments included. And for such operators who has a different weapon loadout, we "overwrite" the attachments in the operator's json file. That way we could avoid having to add attachments to all the operators separately. Also, it's not common that a loadout differs, other than Oryx, i can't say anyone else who has the same issue.

PandaDriver156 avatar Jun 27 '20 07:06 PandaDriver156

@PandaDriver156 Just to keep you updated, i'm still working on this but i'm quite busy right now with other stuff so it might take a while to get finished.

marcopixel avatar Jul 15 '20 16:07 marcopixel

In Y7 all primary weapons will have all 1x scopes (source)

danielwerg avatar Feb 19 '22 17:02 danielwerg

Hey @PandaDriver156, I know it's been more than two years :D, but are you still interested in this? I'm planning to publish new project soon which will be used as dependency for my r6api.js and it could really use operator loadouts!

How it looks now:

recruit

Trying to achive:

recruit2

I already have array of objects for every weapon, that's why I'm using just a weapon slug in operator object. Will take me a while to do that just by myself for every operator in game.

danielwerg avatar Feb 21 '23 12:02 danielwerg

Hey @danielwerg, you got the timing right, just started playing Siege recently again :smile:

are you still interested in this?

If you mean interested in helping you then yes, i'd be happy to do so.

PandaDriver156 avatar Feb 21 '23 21:02 PandaDriver156