Game limitation/bug on maximum amount of custom dialog choices

4 posts / 0 new
Last post
Game limitation/bug on maximum amount of custom dialog choices

I use the steam version v1.15 1/6/2017 and I think I have found a modding limitation/bug on the amount of custom encounter choices that one can make by modding, the limitation/bug is on a global scope (not per encounter).

Files to help replicate the issue.

Steps to reproduce:

Spoiler: Highlight to view
1- Unpack the files, the save files should go into the save directory and the other ones to the main game directory.
2- Now let's check the correct behavior by opening the game first.
3- Continue the save game.
4- Enter the ATN Enclave camp.
5- On the encounter choose the option "Speak to the Training Master" and confirm.
6- Take note on the choices that appear now. They should be four ("ATN Main Area", "Melee Training", "Archery Training" and "Hiding Training").
7- You can close the game now.
8- Go to "..\Mods\NeoScavExtended\NSExtended\" and open the neogame.xml.
9- Edit the content of the above file by uncommenting just one of the itemtypes 116 or 139 (line 11685 or 11725 respectively) and save the file.
10- Open the game again and repeat step 3 to 6, where now on step 6 the "Hiding Training" will be missing.
11- Repeat step 8 again, but this time comment any itemtypes that was present from the beginning (ex: itemtypes 64 line 11135).
12- Open the game again and repeat step 3 to 6, where now the missing choice appears again.

Note: the choice in question is from the Training mod that is being loaded after the NSExtended, nevertheless I stripped the NSExtended content to a bare minimum to reduce the scope, also remove its vanilla override to make sure that it was not interfering.

Hi MarcoMartins,

Thanks for the detailed report and supporting files! Normally I prefer not to debug mods, since it can be really time-consuming for me to ramp-up on everything in the mod to pinpoint the bug. But this sort of QA report makes a good exception :)

So, I think what's actually happening here isn't a limit on options, but an index mismatch caused by mod loading order.

Your Hiding Training encounter requires the player to have item "90.155" in order to appear. However, the treasuretable this encounter uses (nItemsID=100) includes "0:90.155" and not "90.155". If you make them both "90.155" it will work, regardless of what's in the NSE mod. (And technically, making them both "0:90.155" works, too, though it'll likely use a different item/icon.)

0:90.155 = An item in mod "0" with ID 90.155.
90.155 = An item in your mod with ID 90.155, but which gets remapped to a different ID in 0:.

To make things more confusing, ID 90 is one of several special IDs that don't have the nGroupID remapped by the game on load. The complete list is:

Spoiler: Highlight to view
7, //headlines
8, //hardware
9, //recipe scrap
12, //camps
20, //crippled
25, //terrain resource
26, //camp fixture
35, //software
36, //datafiles
90, //encounter item
91, //skill
96, //trait
103 //scavenge location

Normally, the nGroupID would be remapped to some unused ID, whatever number comes after the highest used by the game's ID list. So something like 1.1 might get remapped to 104.1. If this had happened in your case, your mod would've broken immediately, and no changes to NSE would alter your mod, and it might've been clearer.

Instead, anything with a 90 prefix keeps the 90, but the suffix gets remapped to whatever higher number hasn't been used next. So 90.155 might've become 90.203 or something.

In this case, almost all of the items in NSE are 90 prefixes, so adding/removing them from NSE shifts all of your resulting 90-prefixed IDs up or down accordingly, making your mod work sometimes when the NSE ID payload was "just right."

Anyway, the solution to the problem is for your encounter 3000 to have this:

<column name="aResponses">0:90.10x1=0:1500x1x0x0x0,90.150x1=3100x1x0x0x0,90.151x1=3200x1x0x0x0,90.152x1=3300x1x0x0x0,90.153x1=3400x1x0x0x0,90.154x1=3500x1x0x0x0,90.155x1=3600x1x0x0x0,=3000x1x0x0x0</column>

and your treasuretable 100 to have this:

<column name="aTreasures">0:90.10x1.0x1-1,90.150x1.0x1-1,90.151x1.0x1-1,90.152x1.0x1-1,90.153x1.0x1-1,90.154x1.0x1-1,90.155x1.0x1-1</column>

This way, the sole item from the vanilla game, 90.10, has the 0: prefix. And all other items from your mod have no prefix. And when the game loads this data, all the numbers will line up to whatever new ID it chose for each.

Hope this helps!

Dan Fedor - Founder, Blue Bottle Games

Thanks so much for the reply! It seems that this will be really useful in fixing the issue.

Hi dcfedor, thank you for the time you spent analyzing the problem, it would be understandable if you didn't open the exception. Sorry for having mislead you but I didn't have correlated before the information on the treasure table and with the given facts I took the wrong conclusions. I am not the author of any of this mods, I am just trying to merge them. Anyway thank you again for your nice work :)