Author Topic: Feature Request for Component Wise Dynamical Install Order List  (Read 1150 times)

Offline jastey

  • Global Moderator
  • Planewalker
  • *****
  • Posts: 1524
  • Gender: Female
Hi Wisp,
ALIEN integrated a dynamic install order feature into Project Infinity. Unfortunately, I have several mods that need to be installed before others, but offer one component with crossmod / compatibility that needs to be installed later.
ALIEN stated here what he would need to have PI evaluate a component wise dynamic install order:
Quote
I would like you to give modders a way to provide more data inside components, this is my proposition:

- create new "LABEL"-like component keywords, with different names
- add the new keywords and it's data into --list-components-json
- the keyword names are: "TYPE", "BEFORE", "AFTER", "REQUIRELATER", "REQUIREFORMER"

The purpose/context of the new keywords is the one that is discussed in this thread so weidu won't be responsible for 'handling' those keywords.

ALIEN also hinted that you do not plan on integrating this so far. I don't know the reasons so I am trying my luck for you to reconsider.

I think the Dynamic Install Order Feature of PI is a really helpful thing to build install order lists that won't be outdated after two weeks and preserve the authors' knowledge about their mods and where they should be with regard to install order. Unfortunately, what PI offers now - the mod-wise categories - is useless for my mods if they have components that need to be installed at a different point in install order.

Offline jastey

  • Global Moderator
  • Planewalker
  • *****
  • Posts: 1524
  • Gender: Female
Re: Feature Request for Component Wise Dynamical Install Order List
« Reply #1 on: September 18, 2020, 05:39:08 AM »
I'll elaborate on my problem, maybe there is a less laborious solution.

Imoen4Ever: needs to be installed before any mods move around reply options (this might be solved with the last update) and before NPC mods add interjections which will transfer reply options into the mod NPC's dlg. But it has one compatibility component that adjusts the cutscenes in Spellhold for the case that the player travels to Brynnlaw via the Alternatives Mod or Saerileth Mod.
--> I could move that into the Crossmod Mod. My fear about moving the contents into the Crossmod Mod is that players might not know about it (who reads readmes, anyway.) and then it's my mods "bugging out". It's not the usual "adds more content" crossmod, it's actually necessary so my mod works properly in combination with one of the other two.

Breagar NPC Mod has a component that adds crossmod for other NPCs and his PID.
--> I could split the crossmod out of that and move it into the Crossmod Mod.

Solaufein Mod (Solaufein's Rescue): for BGII, the mod can use drider animations. But not the whole mod would need to be installed after IA, only one component that inserts the driders afterwards.
--> I have no idea when IA needs to be installed in install order and how other mods handle this. If IA needs to be installed late, then this could lead to a problem if I have to restrict the whole Solaufein mod to be installed after. I'd rather not move this content into the Crossmod Mod, although in principle it would be possible.

Long story short: all components that would make a component-wise feature necessary deal somehow with crossmod content, but some is necessary so my mods perform properly.

And a general question: am I the only one with this problem?

Offline Wisp

  • Moderator
  • Planewalker
  • *****
  • Posts: 1176
Re: Feature Request for Component Wise Dynamical Install Order List
« Reply #2 on: September 19, 2020, 10:01:42 PM »
My reservation about this request is that the features have no semantic meaning to WeiDU and are reliant on a feature which is arguably a dead end (--list-components-json).

I'm also not keen on adding a bunch of bespoke, semantically empty keywords for this. My counter-offer is one keyword [1], say METADATA ~string~. You can fill ~string~ with your heart's desires, though I would suggest a structured format, e.g., JSON:

METADATA ~{"type": "a", "before": "b", "after": "c", "requirelater": "d", "requireformer": "e"}~

1. Assuming there is no stupid obstacle to adding something like this, in which case this offer is void.

Offline AL|EN

  • Planewalker
  • *****
  • Posts: 391
  • Gender: Male
Re: Feature Request for Component Wise Dynamical Install Order List
« Reply #3 on: September 20, 2020, 04:35:24 AM »
I need to match the METADATA keyword format with existing one from ini. So it would be rather something like this:

Code: [Select]
METADATA ~BEFORE = A,B,C ; AFTER = D,E ; REQUIRELATER = F~
Requiring JSON would be like shooting myself in the foot - It is too verbose, editors can't provide syntax highlighting for the METADATA content, it offers no advantages for such simple metadata and one tiny mistake makes everything to blow up.

But if this is the only way to implement this, it's fine for me.
« Last Edit: September 20, 2020, 05:21:25 AM by AL|EN »
Project Infinity public BETA - mod manager for Infinity Engine games
Modder's Guide to Github - you cannot have progress without committing changes

Offline AL|EN

  • Planewalker
  • *****
  • Posts: 391
  • Gender: Male
Re: Feature Request for Component Wise Dynamical Install Order List
« Reply #4 on: September 20, 2020, 01:34:23 PM »
And BTW: Being able to place multiple 'METADATA' keyword would make things much more clear and easy for modders and PI.
Project Infinity public BETA - mod manager for Infinity Engine games
Modder's Guide to Github - you cannot have progress without committing changes

Offline Wisp

  • Moderator
  • Planewalker
  • *****
  • Posts: 1176
Re: Feature Request for Component Wise Dynamical Install Order List
« Reply #5 on: September 20, 2020, 03:00:27 PM »
METADATA ~string~ has been implemented, but with single association. How would multiple associations be exported? List of strings?

Edit: I changed it into multiple associations. Let me know if you'd like it some other way.
« Last Edit: September 20, 2020, 04:04:51 PM by Wisp »

Offline AL|EN

  • Planewalker
  • *****
  • Posts: 391
  • Gender: Male
Re: Feature Request for Component Wise Dynamical Install Order List
« Reply #6 on: September 21, 2020, 12:56:06 AM »

The test:
Code: [Select]
[{"index":0,"number":1000,"forced":false,"name":"1","label":["L2","L1"],"group":["Group one translated","Group two translated"],"metadata":["M1","M2"]}]
This looks very promising, thanks!
Project Infinity public BETA - mod manager for Infinity Engine games
Modder's Guide to Github - you cannot have progress without committing changes

Offline jastey

  • Global Moderator
  • Planewalker
  • *****
  • Posts: 1524
  • Gender: Female
Re: Feature Request for Component Wise Dynamical Install Order List
« Reply #7 on: October 03, 2020, 04:23:59 AM »
Thank you very much, Wisp!

ALIEN, please provide usage examples if possible!

 

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.

Name: Email:
Verification:
Type the letters shown in the picture
Listen to the letters / Request another image
Type the letters shown in the picture:
What color is grass?:
What is the seventh word in this sentence?:
What is five minus two (use the full word)?: