Jump to content

Tweak Anthology and Stratagems mess up Clab**.2da files


Recommended Posts

Hi all,

sorry for creating a bug report against old versions of mods (and not having the *.debug files); also, this should probably be cross-posted to Stratagems forums, but I'm unsure about the cross-posting etiquette.

 

I noticed that my Archer wasn't getting the bonus damage/thac0 and started looking at the 2da.

Component 2090 of Tweak Anthology (Remove Experience Cap) extends clabrn02.2da from level 41 to level 50 (but doesn't appear to extend properly the ABILITY1 line).

Component 2440 of Tweak Anthology (Everyone Gets Bonus APR from Specialization) appends one ABILITY (not ABILITY7) line to CLABRN02.2da (to apply D5_NUMAT); however this line doesn't extend all the way to level 50 (only to level 40).

Component 4100 of Stratatagems (Improved NPC customisation and management) doesn't read properly the 2da, and removes the abilities applied in the two messed-up lines.

 

I've attached all versions of clabrn02.2da (as per --change-log) and the weidu.log.

Mod/game Versions:

  • BG/BG2 V2.6.6.0 (with EET V13.4)
  • Tweak Anthology V 12
  • Stratagems 34.3

Mods affecting CLABRN02.2DA:
00000: /* created or unbiffed */ ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ 0 2090 // Change Experience Point Cap -> Remove Experience Cap v9
00001:  ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ 0 2440 // Everyone Gets Bonus APR from Specialization v9
00002:  ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ 0 4100 // Improved NPC customisation and management 33.6
 

Edit after experimenting:

  • the latest versions of Tweak Anthology and Stratagems also mess up clabrn02.2da
  • CdTweaks 2090 and Stratagems 4100 also mess up clabrn02.da
  • CdTweaks 2440 and Stratagems 4100 do not mess up clabrn02.da

 

WeiDU.log WeiDU-BGEE.log CLABRN02.00001.2DA CLABRN02.00002.2DA CLABRN02.override.2da CLABRN02.00000.2DA

 

 

Edited by the bigg
Link to comment
On 3/12/2022 at 5:30 PM, the bigg said:

Component 4100 of Stratatagems (Improved NPC customisation and management) doesn't read properly the 2da

I'm pretty sure this has already been discovered, and acknowledged by Davidw over in the SCS forum. That SCS component assumes that kit ability files are well-formed and uniform; various other mods do not assume that. (I am aware of some modders who will add rows that only have two columns to a kit table.) The engine doesn't care how many columns are in a kit table, and most mods don't care either; but SCS v34 does. Realistically, what should happen is that every mod that interacts with kit tables should always run this function, or something like it, to try to make sure the tables are always in good shape for the next mod that comes along.

FWIW, these days I always always add 50 rows to kit tables with every APPEND... this bit of CDTweaks, taken from my old mod - and inspired by your mod - was evidently put together before I adopted that practice. Of course, some mods adopting that practice while others don't, will not fix thigns overall...

We should probably write up a little mini-mod so that players can fix the tables themselves, before installing SCS. Hang on, let me scrape something together -

EDIT - okay, for the life of me, after 15 minutes poking around I cannot actually make that function work. But, something like that should be used.

Edited by subtledoctor
Link to comment

I've just started doing partial appends, then looping in extensions based on the column count. This is from IWDification:
 

 ACTION_IF shapeshifting BEGIN    

    APPEND ~%clab%.2da~
    ~ABILITYX   ****       ****       ****       ****       GA_cdidrww ****       ****       ****       GA_cdidrpb ****       GA_cdidrfe ****       GA_cdidree ****       GA_cdidrwe CDREPLACE~
    
  END  

  ACTION_IF druid_abils BEGIN    

    APPEND ~%clab%.2da~
    ~ABILITYY   ****       ****       ****       ****       ****       ****       ****       ****       AP_cdidrpsn ****       ****       ****       ****       ****       AP_cdidrif CDREPLACE~

  END
 
  ACTION_IF shapeshifting OR druid_abils BEGIN
 
    COPY_EXISTING ~%clab%.2da~ ~override~
      COUNT_2DA_COLS cols
      FOR (index = 17 ; index < cols ; ++index) BEGIN
        REPLACE_TEXTUALLY ~CDREPLACE~ ~**** CDREPLACE~
      END
      REPLACE_TEXTUALLY ~CDREPLACE~ ~****~
      PRETTY_PRINT_2DA
      BUT_ONLY

Long story short: it APPENDs however many columns it needs (in this case 15), then extends the row to the existing column count, whatever it may be.

Link to comment
On 3/12/2022 at 5:30 PM, the bigg said:

Component 2440 of Tweak Anthology (Everyone Gets Bonus APR from Specialization) appends one ABILITY (not ABILITY7)

Also, largely neither here nor there, but I've found that the initial column in kit ability tables is entirely arbitrary and needs no particular numbering. Lately I have taken to using more descriptive entries there - like, this one could be "SPEC_APR" - so that players can more easily tell at a glance what mod is doing what with the entries in that row.

Also, don't mean to be a salesman, but you could try my alternative NPC customization mod. My understanding is that the features have converged since it was created, the main difference is that SCS scripts the customization to happen automatically, while my mod doesn't change them unless you trigger it in-game with an item.

At any rate, a Pull Request adding Camdawg's method to this particular component will be inbound soon.

Edited by subtledoctor
Link to comment
21 hours ago, subtledoctor said:

I'm pretty sure this has already been discovered, and acknowledged by Davidw over in the SCS forum.

OK, then I'm a dum-dum, because I was convinced that I read DavidW saying something along the lines of "acknowledge and fixed" when I searched for it... Whoops.

 

2 hours ago, subtledoctor said:

Also, don't mean to be a salesman, but you could try my alternative NPC customization mod. My understanding is that the features have converged since it was created, the main difference is that SCS scripts the customization to happen automatically, while my mod doesn't change them unless you trigger it in-game with an item.

Groovy, will try that.

Edited by the bigg
Link to comment

First: good to see you @the bigg! Hope life is good.

Right, so the experience point cap vs. clabrn02 is easy: clabrn02 ships with an extra entry in the ABILITY1 line. Since it has 42 columns (instead of the expected 41) Tweaks skips on extending the row. I think I'll ultimately have to write some kind of CLAB fixer to deal with malformed files.

subtledoctor has already sent in a pull request to fix the Bonus APR component, basically using the code I posted above.

Link to comment
55 minutes ago, subtledoctor said:

If someone doesn't want to wait for mod updates and just wants their game to be ready for a current SCS installation, and if @argent77 has no objection to my using that function, I have put this together in a little mini-mod that can be installed right before SCS.

Feel free to use any code you need from the add_kit_ex library. I have put it under public domain, so you don't even have to credit me. ;)

Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...