Skip to content

[ISSUE-9451] Loadout Management#9647

Open
FenikSRT4 wants to merge 2 commits intoPathOfBuildingCommunity:devfrom
FenikSRT4:issue-9451-loadout-management
Open

[ISSUE-9451] Loadout Management#9647
FenikSRT4 wants to merge 2 commits intoPathOfBuildingCommunity:devfrom
FenikSRT4:issue-9451-loadout-management

Conversation

@FenikSRT4
Copy link

Partially Fixes #9451

Description of the problem being solved:

  • Adds Loadout management replacing the single New Loadout option in the loadout dropdown. This new Manage option opens a ListControl menu for creating new, copying, renaming and deleting whole loadouts. This does not change the rules around managing the names for each set that's part of a loadout. For example, renaming an item set still disassociate the loadout.
  • Multiple functions that existed in the list controls were refactored to be functions that were part of the respective tab class. ie: Renaming is now a function in ItemsTab as a class function instead of that logic living in the list control
  • Several refactors around builds were pulled out of creating the list into functions so they could be reused or called elsewhere.

Testing Needed

  • Renaming loadouts
  • Copying loadouts
  • Deleting loadouts
  • Creating new loadouts
  • Selecting a loadout from the new list control

Before screenshot:

image

After screenshot:

Loadout Dropdown - New Manage option replacing New Loadout option

image

Loadout Management List Control

image

Rename Loadout

image

Copy Loadout

image

General Notes

I'm not proficient in lua nor this project. If there's any guidance for documentation in this project to update along with these changes or lua best practices, that would be much appreciated.

* Adds Loadout management replacing the single New Loadout option in the
  loadout dropdown. This new Manage option opens a ListControl menu for
  creating new, copying, renaming and deleting whole loadouts. This does
  not change the rules around managing the names for each set that's
  part of a loadout.
* Multiple functions that existed in the list controls were refactored
  to be functions that were part of the respective tab class. ie:
  Renaming is now a function in ItemsTab as a class function instead of
  that logic living in the list control
* Several refactors around builds were pulled out of creating the list
  into functions so they could be reused or called elsewhere.
@Nightblade
Copy link
Contributor

Hey there, thanks for the contribution! Great idea making a Loadout Manager.

There are some guidelines in CONTRIBUTING.md but from my very quick glance at your code I did notice a mix of space and TAB indentation — please use TABs only.

@Nightblade
Copy link
Contributor

BTW there is a dev Discord, so drop me a DM (nighty_b) if you would like an invite.

@FenikSRT4
Copy link
Author

BTW there is a dev Discord, so drop me a DM (nighty_b) if you would like an invite.

I sent a friend request! The suffix should look familiar

@FenikSRT4
Copy link
Author

Hey there, thanks for the contribution! Great idea making a Loadout Manager.

There are some guidelines in CONTRIBUTING.md but from my very quick glance at your code I did notice a mix of space and TAB indentation — please use TABs only.

Understood on the tab/space preference. I'll get that updated tomorrow

* Formatted changed code
@Peechey
Copy link
Contributor

Peechey commented Mar 16, 2026

Some issues I'm seeing:

  1. Open new build, click Manage in dropdown, close it, click Manage again, nothing happens. The dropdown selIndex isn't getting reset/changing so it doesn't process again. Easy fix.

  2. Open new build, try to Copy Loadout "Default", error. Probably a check needed for (... title or "Default")

image
  1. Doesn't have "create new loadouts from existing sets" logic. I've seen this requested multiple times and I'd say it pretty much required if we're introducing more functionality here. In my PR it's a copy of the currently active sets.

  2. New build, make a New Loadout, delete the new (2nd) Loadout. It deletes the Tree but breaks on either Skill/Item/Config

image

Lastly, for a lot of these cases and flows, we really need to have tests for them. I'm a bit of a hypocrite as my PR only has basic ones now, but the plan was to beef those up after working on Imbued Supports. Loadouts are complex, they get messy fast, and they have kind of high vis due to build creators using them in guides.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Renaming a loadout in "Configuration" removes it from Loadouts dropdown in "Tree"

3 participants