Discussion about community install order list for mods
System
Administrator Posts: 199
This discussion was created from comments split from: Project Infinity Public BETA.
0
Comments
You know I'm dumb when the subject is GitHub but I thought about a file that anyone may edit, submit and accept - maybe a file located in other GitHub account that PI would just read (as it already does with our .ini if I understood correctly).
This way this 24/7 task would be handled by the modders, not you. And I think that anyone who builds a mod knows (or have a strong idea) of install order/mutual exclusion.
Just brainstorming and trying to sound smart for once in this thread.
So you are thinking about "Community install order" list? You can do it, there is nothing which prevents you from starting such project. But being Devil's Advocate I need to ask: why no one has ever done such thing in the past?
Registering modders prefix doesn't affect other people mods but placing a mod between two mods from different authors can have consequences.
Anyway, I will support such initiative
Also what about mods that are not supported any more? Should they be included? Who should define their install order? It is enough to look at Leonardos Big World Project (which could be a start at least for original games) to see that list would be very long and even with knowledge about your mod you might change something that other modder did.
I'll see if I can put that in motion.
My idea is start the list with the mods that are more used, like aTweaks, Tweaks Anthology, Unfinished Business, BG1 NPC Project and, of course, SCS. Using that as a core, the modders would add their mods to the list. Maybe in six or nine months everything will de done.
@ALIEN do you suggest a tool for doing so that would have synergy with PI and be easy to be edited by anyone?
You need a way to know who changed what and a history of the changes. Best approach would be reusing already existing solution like LOOT and adapt it to the IE mods requirements, since there is no point of reinventing the wheel. But this would require lot of work. Much simpler solution would be to use github with markdown "Table" formatting:
You can even include Install Sections (those are not mod "Categories" even if match the same name):
It would be a good start. I suggest you to start with you own mods, see how it is going. If you are going to cook something along with other modders, sing me up.
- allow modders to set metadata in order to put their mods/components into above install section list
so for eg: LeUI would be added to [UI]
- introduce concept of component ID + allow modders to set metadata:
BEFORE: ID1 , ID2, ...
AFTER: ID3 , ID3, ...
- sort PI mods according to the provided mod metadata, BEFORE & AFTER takes precedence over install section
but I haven't give it much attention, nor testing, I need to reach some sort of stability of PI and make necessary changes to code structure in order to be more suitable for such extra features.
Is this is something which you or other UI modders would be interested and willing to try? Why focusing at the UI mods first? I find the [UI] section to be most easiest for testing and implementation, with a high chance for success.
1) it’s too complicated to work out just from knowing about your mod alone. Modders vary wildly in their level of understanding of how to manage compatibility and the writer of mod X may not be well placed to evaluate where mod X should be in the install order.
2) there is no right answer. That is: there is just no reason to think that for a large list of mods there is *any* install order that makes all of the mods operate correctly, even if there are no conceptual incompatibilities. So to some extent install order depends on which mod you want to prioritize working correctly. E.g. my install order is almost always going to put SCS last or nearly last because I prioritize it working correctly, but someone else might have different priorities.
This means that either UI mod authors have to know every mods that patch the UI or modders must know every UI mods to properly declare before/after relationship. I don't think that's possible.
For the UI, there is basically two possibilities, mods that overwrite the full UI.menu file and mods that patch it. One solution could be to declare mods/components as OVERWRITE_UI or PATCH_UI. This way, you know that all OVERWRITE_UI are incompatible with each other and that PATCH_UI must come after OVERWRITE_UI.
1) It is possible to make it less complicated? Other modding communities (Skyrym, Fallout, Oblivion) have successfully created and maintained such install order lists. Take look at BWP - one guy managed to create install order for install more than 2000 components. Does having actual modders involved for such task makes things easier?
2) So it must be limited for scope and priorities:
- mods (or at least their main components) should install without errors
- main quests aren't broken
- quest mods don't destroy other quests
- NPC mods installed correctly for their cross-banters/interactions
- Kit mods adding kits before other NPC mods can relay on them
- Tweaks mods actually works for all previously added mod content
- UI mods don't overwrite themselves
P.S. Good point about 'early and 'late'.
@lefreut
I'm confused by you reply, It seems to me that you threat install order as some sort of dependency between two mods, so the first mod will do some modification and then second one changes are based on previous mod changes. What I had in mind is very simple case:
- you care only about mods which are included inside community install order list
- let's say that there is a "UI Tweaks" mod which works for standard GUI and 'Lefreut's enhanced UI' but doesn't require any other mod itself
-so the "UI Tweaks" mod would simply have to include 'INSTALLAFTER:Lefreut's enhanced UI" and that's it
How does it look now?
The solution which you proposed has much in common with GUID feature which I've proposed 2 years ago.
I will get back to this topic when I will finish my 'homework' about this.
The EET_End must be installed after all NPC mods, it combine their dialogs or so. @swit can you please clarify?
Does having two install sections: UI-OVERWRITE followed by UI-PATCH would fulfill you needs?
Request for feedback:
Assume that you want to put mod components from single mod, into separate install sections. What kind of syntax would be good for you and what is the best place to include such information from the modder perspective?
Calling @subtledoctor @lefreute @Pecca
Yes
I appreciate this very much. Regarding syntax and place, can I have you feedback also?
Well I have never used a mod manager or done a mega mod install (I usually only install a few mods manually). And I know close to nothing about modding. I'm not sure I can give you meaningful feedback.
Understood, no worries
- due to the dynamic nature, defining install order by using mod local files would be ineffective for it's goal and a nightmare to manage, centralized online service is the best way to go
- the best file format for 'human to system' interaction is YAML (black dot experiment), no need to reinvent the wheel, the only unusual thing which might be problem for non-technical users is the fact that spaces are matter
- mistakes can happen so having a history of changes is important
- using online Excel spreadsheet wasn't produce good results: no history, no way for data validation
- Github is used by similar initiatives, with good results
- contributing into a Github-based solution can be done without storing mods there