Skip to content

Conversation

@ebkr
Copy link
Owner

@ebkr ebkr commented Jan 2, 2026

Local Mod List Improvements

Mods.yml

Primary change

Dropped mods.yml size down from 16139KB to 105KB. This is on a profile with 177 mods.

This was done using the reducer when stringify-ing the content of mods.yml and stripping out the icon key/value.

Secondary effect

This has an added bonus of drastically improving the load times to get to the profiles screen.

Fixing dragging ghost-effect

Prior to this change, when you drag a mod, due to the asynchronous behaviour of the manager, the mod list is treated as being reset before the state has changed. This gave the appearance of the mod jumping back to the original drag position, and then momentarily after being updated to the real position.

There's now a new ref variable which holds the local state and is updated by both the draggable list and the VueX state.

Suspense

I've also introduced a new SkeletonLocalModCard. This is used as a loading placeholder whilst the actual state and dependency calculation is done in the background for mods.

It means that the installed list can be seen far quicker, albeit non-interactive until loaded. Regardless it's still a nice improvement that's been needed for a while.

Summary

Overall this PR provides massive speed boosts in larger profiles for the following actions:

  • Loading
  • Installing
  • Uninstalling
  • Disabling
  • Enabling
  • Re-ordering mods

In addition to that, once all profiles have been updated, the time to load into profile selection screen has been significantly improved. Assuming all profiles have been updated to the new format, it can load to the selection screen near instantly.

The suspense implementation provides much faster feedback to see what's available in the current profile.

@ebkr ebkr requested a review from anttimaki January 2, 2026 16:34
@ebkr ebkr force-pushed the installed-list-improvements branch from f72e1a9 to d61c324 Compare January 6, 2026 09:51
@ebkr ebkr requested a review from VilppeRiskidev January 8, 2026 09:33
Copy link
Collaborator

@anttimaki anttimaki left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

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.

3 participants