Jump to content

Photo

Design considerations for a proposed extension to facilitate manual plugin ordering


  • Please log in to reply
20 replies to this topic

#11
OldMansBeard

OldMansBeard

    Resident poster

  • Members
  • PipPipPipPipPip
  • 3,436 posts

I've been doing some testing, and it appears that we can do what we want by manipulating global and local priorities while Autosort is still enabled. Here is a possible scheme, open for debate:
 
 

0. Summary

0.1 This extension to Vortex is intended to facilitate manual sorting of plugin load order in Bethesda games (Skyrim, SSE, FO4 and so on).
0.2 It will only add additional functions, not modify existing ones.
0.3 The user interface will conform as nearly as possible to the existing Vortex style, so that there is a minimal amount extra for the user to learn, to be able to use it.

1. Added Features

1.1 Plugins can be assigned to conceptual groups.

 

1.1.1 Plugin groups are distinct from Mod categories but a broadly similar style of interface is used to create and edit them.
1.1.2 A standard set of groups is available via a button or the user can create alternative ones.
1.1.3 The standard set of groups is the one developed by the XBox community.
1.1.4 When created or edited, each plugin group is associated with a Global Priority in the range -10 to -80.
1.1.5 The un-named default group corresponds to Global Priority 0.
1.1.6 When a plugin is assigned to a group, it is automatically given the global priority for that group.
1.1.7 Assigning a group to a plugin has no immediate effect other than to set its global priority.

1.2. Groups can optionally be displayed in an extra column in the plugin window

 

1.2.1 The column can be toggled on and off using an extra entry in the existing settings panel.
1.2.2 The extra column defaults to 'Off'.
1.2.3 The list of plugins as viewed in the window can be sorted up or down by group.

1.3 When load order is Autosorted, plugins in the same group will be kept together automatically.

 

1.3.1 Sorting by group is tantamount to sorting by Global Priority, which over-rides rules.
1.3.2 This does not in itself require any additional coding

1.4 Plugins can be manually moved up or down in the load order within their groups.

 

1.4.1 This is accomplished by changing their local priorities.
1.4.2 Moving a selected plugin up or down one or more places is done by drag-and-drop and/or by using the keyboard up and down arrow keys.
1.4.3 Moving a plugin in this way results in its local priority being set to a value intermediate between the ones of the plugins immediately above and below its target position.
1.4.4 This may necessitate bumping the local priorities of other plugins above and below the target position if there is no suitable gap.
1.4.5 Local priorities will be assigned in the range -10 to -80.
1.4.6 It is allowable for more than one plugin in a group to have the same local priority.
1.4.5 When load order is autosorted, plugins in the same group (i.e. global priority) are automatically ordered by local priority.
1.4.6 This feature of Autosort does not in itself require any additional coding.

 

Updated 2018-02-15 to reflect changes in Vortex 0.13


Edited by OldMansBeard, 15 February 2018 - 08:09 AM.


#12
OldMansBeard

OldMansBeard

    Resident poster

  • Members
  • PipPipPipPipPip
  • 3,436 posts

One thing that the scheme above doesn't do is to allow for moving whole blocks of plugins at the same time. It seems like a natural thing to want to do and it would be simple enough to add to the UI but it would complicate the algorithm for juggling local priorities. Opinions welcome.



#13
OldMansBeard

OldMansBeard

    Resident poster

  • Members
  • PipPipPipPipPip
  • 3,436 posts

Aargh. Vortex 0.13 has changed things so that plugins inherit categories from their mods. Needs a re-think.

 

(edit)

 

I've edited my design to changed the word 'category' to 'group'.


Edited by OldMansBeard, 15 February 2018 - 08:12 AM.


#14
OldMansBeard

OldMansBeard

    Resident poster

  • Members
  • PipPipPipPipPip
  • 3,436 posts

I'm going to write the end-user documentation next. It's always a good idea to write that before you actually write the software because (a) it helps to focus on explainability and hence learnabilty, and (b) doing it afterwards is a chore.



#15
matortheeternal

matortheeternal

    autoMator

  • Premium Member
  • 4,232 posts

OldMansBeard I'm planning on developing an extension to this end as soon as Vortex's source is available.  If you'd like to work together let me know.  My current plan is to build an "assisted load order management" extension which allows for complete manual sorting by the end-user but provides recommendations based on LOOT's masterlist when plugins are positioned in ways that conflict with it.

 

EDIT: Also, it appears we have some source code to build off of available here - https://github.com/N...ugin-management

 

EDIT 2: Reading through your design specifications, we may have slightly different designs in mind.  Your design sounds like a minimalistic design which can be created quickly, where I'm thinking of a more full-form design.



#16
kamikatze13

kamikatze13

    Enthusiast

  • Premium Member
  • 144 posts

OldMansBeard I'm planning on developing a plugin to this end as soon as Vortex's source is available.  If you'd like to work together let me know.  My current plan is to build an "assisted load order management" extension which allows for complete manual sorting by the end-user but provides recommendations based on LOOT's masterlist when plugins are positioned in ways that conflict with it.

 

EDIT: Also, it appears we have some source code to build off of available here - https://github.com/N...ugin-management

 

I shall offer you my firstborn ... no, wait, wrong modder.

 

Greatly appreciated, mator! I wanted to dive into this myself since i haven't seen much of development on this topic aside from OldMansBeard, but university is giving me hell atm :(


Edited by kamikatze13, 15 February 2018 - 11:21 PM.


#17
OldMansBeard

OldMansBeard

    Resident poster

  • Members
  • PipPipPipPipPip
  • 3,436 posts


OldMansBeard I'm planning on developing an extension to this end as soon as Vortex's source is available.  If you'd like to work together let me know.  My current plan is to build an "assisted load order management" extension which allows for complete manual sorting by the end-user but provides recommendations based on LOOT's masterlist when plugins are positioned in ways that conflict with it.

 

EDIT: Also, it appears we have some source code to build off of available here - https://github.com/N...ugin-management

 

EDIT 2: Reading through your design specifications, we may have slightly different designs in mind.  Your design sounds like a minimalistic design which can be created quickly, where I'm thinking of a more full-form design.

Great. My design is really just a ballon d'essai to get the world started, and to show that it looks do-able in at least one way. Yes, I do minimalist (aka constructive lazyness) :D

 

Two heads are better than one, so yes, let's work together. PM me and we can exchange thoughts, then we can maybe post here when there is something for 'the audience' to discuss.



#18
OldMansBeard

OldMansBeard

    Resident poster

  • Members
  • PipPipPipPipPip
  • 3,436 posts

 

Greatly appreciated, mator! I wanted to dive into this myself since i haven't seen much of development on this topic aside from OldMansBeard, but university is giving me hell atm :sad:

 

University is supposed to hurt :D

 

But throwing in an occasional insight at the design stage can be just as valuable as days spend wrestling code, so please join in as much as you feel able.



#19
kamikatze13

kamikatze13

    Enthusiast

  • Premium Member
  • 144 posts

 

 

Greatly appreciated, mator! I wanted to dive into this myself since i haven't seen much of development on this topic aside from OldMansBeard, but university is giving me hell atm :sad:

 

University is supposed to hurt :D

 

You sound like my computability & complexity theory prof =D



#20
OldMansBeard

OldMansBeard

    Resident poster

  • Members
  • PipPipPipPipPip
  • 3,436 posts

 

 

 

Greatly appreciated, mator! I wanted to dive into this myself since i haven't seen much of development on this topic aside from OldMansBeard, but university is giving me hell atm :sad:

 

University is supposed to hurt :D

 

You sound like my computability & complexity theory prof =D

 

If it was twenty or thirty years ago I might have been. Or maybe your prof was one of my students. Let's not go there :D


Edited by OldMansBeard, 16 February 2018 - 12:51 AM.





Page loaded in: 0.656 seconds