Skip to content

Add Manage Loadouts view and version-prefix-tolerant matching#9945

Open
Coolgatty wants to merge 1 commit into
PathOfBuildingCommunity:devfrom
Coolgatty:feat/manage-loadouts
Open

Add Manage Loadouts view and version-prefix-tolerant matching#9945
Coolgatty wants to merge 1 commit into
PathOfBuildingCommunity:devfrom
Coolgatty:feat/manage-loadouts

Conversation

@Coolgatty

@Coolgatty Coolgatty commented Jul 18, 2026

Copy link
Copy Markdown

Description of the problem being solved:

Referenced Issues: #9451

Two related loadout pain points:

  1. No way to manage a loadout as a whole. Deleting or reordering a loadout meant deleting/moving its passive tree, item set, skill set and config set one at a time across four separate Manage views. For example, moving a "Lvl 1" loadout to the top required individually moving each of its four sets.
  2. Loadouts on a non-latest tree version stopped matching. A loadout whose passive tree is on an older/alternate version is shown with a [version] prefix (e.g. [3.28 (alternate)]). That prefix was compared against the plainly-named item/skill/config sets, so the loadout no longer grouped and dropped out of the loadouts dropdown.

This PR:

  • Adds a Manage Loadouts... (ctrl-l) option to the loadouts dropdown that opens a management popup mirroring the Manage Passive Trees view. From it you can New / Rename / Copy / Delete and drag-reorder a loadout as a whole, so its tree, item, skill and config sets are created/renamed/copied/deleted/reordered together.
  • Makes delete and rename skip a set that is the only one of its type or is shared by another loadout, so other loadouts stay intact.
  • Folds the old New Loadout dropdown entry into the Manage view's New button.
  • Fixes loadout name matching to use the plain set name (ignoring the [version] display prefix), so a loadout whose tree is on a non-latest version still groups with its plainly-named sets.

Steps taken to verify a working solution:

  • Ran the app from source; opened the loadouts dropdown → Manage Loadouts... (and via Ctrl+L); created, renamed, copied, deleted and drag-reordered loadouts, and confirmed the tree / item / skill / config sets in each tab all changed together.
  • Created a loadout, switched its tree to an alternate/older version, and confirmed it still appears and selects correctly from the loadouts dropdown.
  • Added Busted tests (spec/System/TestManageLoadouts_spec.lua) covering version-prefix-tolerant matching, whole-loadout delete, and whole-loadout reorder.

Link to a build that showcases this PR:

N/A — reproducible on any build with multiple loadouts.

Before screenshot:

image

After screenshot:

image image image image image image

@Coolgatty

Coolgatty commented Jul 18, 2026

Copy link
Copy Markdown
Author

I noticed other attempts at implementing this in [ #9647 #9528 ] but they seem like attempts at a larger refactor of the loadout system.

My solution is a simpler implementation that looks to keep the same "feel", which can be improved upon if necessary.

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.

1 participant