Jump to content

Does a Settlement/Workshop List Exist?


Hawkeye6590

Recommended Posts

I have a few settlement mods baked into my game save that I have since removed. I am not (luckily) having any issue but I do suspect that the settlements/workshops are still being 'counted' by other mods (i.e. CapSafe and SMM - the latter does not show the removed settlements, but does require extra clicks to scroll through it's list of settlements as if it is parsing hidden names). Note: If I go to move a settler, the list of settlements is correct, so I am uncertain if the issue is with the mods that reference a 'settlement list' or the core game. Is there a list/file that contains the names of the settlements/workshops and if so, how might one verify/edit said file?

 

Thanks in advance!

Edited by Hawkeye6590
Link to comment
Share on other sites

There is! It's stored in the Workshops property of WorkshopParentScript, defined on line 158 of the vanilla WorkshopParentScript.psc file. That said, that might not necessarily be the issue in your case. There's also the chance that those mods cache their own list of workshops. Alternatively, it could simply be a side effect of the game using a static array for the workshop storage, rather than a dynamic one. In other words, workshops don't move around in the list, even when workshops earlier in the list cease to exist or get removed.

Link to comment
Share on other sites

Thank you for the explanation! I will tool around and see what I can discover. As a side note, 'You and what Army' never started creating patrols for me and I wonder if it is possible that these removed workshops are responsible, hence what got me looking into possible reasons as to why. I am really looking forward to your updated version when you have it ready!

Link to comment
Share on other sites

Try SKK Workshop Ownership & Attacks for the "Show Workshop ownership stats to detect corruptions in your workshop lists" function


edit: plus this article may be of interest if you have removed settlements: SKK Workshop Utilities - Corrupt Workshop Lists

Edited by SKK50
Link to comment
Share on other sites

According to the log, I have the following in 'GOOD' status: 0 - 36, 50, 57 and 58

 

For 37 - 49, 51 - 56, and 59 - 64, the lines do not indicate 'BAD', but do read as:

 

SKK_WUMainScript.WorkshopStats Workshop,LOCATION,ListIndex,XX,WorkshopID,45,None

 

Where XX is the number.

 

Looks like I have quite a few issues and according to what you mention in the article, SKK, there isn't much I can do about it (aside from going back many saves), correct?

 

When I ran the ownership stats command in the mod, it showed 65 workshops, 65 workshop locations, 22 misalignments, and 2 bad workshop locations. Interestingly, it did not list any workshop names in the list, but [...] was listed 10 times. Not certain how to interpret that or if it means that there might be a chance to fix? Maybe it is why I have not seen any real issues with the core game related to workshops?

Edited by Hawkeye6590
Link to comment
Share on other sites

You wouldn't see any issues with the core game because that is workshops 0-36. That said, you mentioned you tried my mod and it doesn't spawn any patrols? This reminded me of something I forgot to check, and I don't have a save set up that I can check it with. If you are still running my mod (or are able to), can you get a copy of the papyrus logs while it's running? I'd put good odds on my mod throwing some errors in the papyrus log, at least once every time the manager script runs. (Which would be once every ~5 seconds)

 

If you can find a bunch of errors in the papyrus log by searching for 'zzg' (no quotes, not case sensitive), then I would much appreciate getting a copy of the error and surrounding bit of log. If it's the case, I could roll out a 1.1 patch to fix the issue in under an hour without impacting the planned 2.0 version.

 

My guess is that my mod doesn't work for you because I made a very unwise assumption that only impacts people who have 'gaps' like that in their settlement list.

 

Sorry if it feels like I'm derailing your thread. If it's any consolation, the settlements are stored as a raw array, meaning it's theoretically possible to compact the list back down to normal. It's just that I don't think anyone would risk a save testing that, as if you miss the wrong things it can 100% break certain aspects of the settlement system in relation to your non-nilla settlements. (Specifically, the location of the settlements in that array get used for tracking things like caravans between settlements)

Edited by Glitchfinder
Link to comment
Share on other sites

Not derailing at all. I really made this inquiry so that I could try to figure out why I could not get your mod to trigger (your mod really interests me). That said, I will be happy to do so. Probably can get to it sometime tomorrow, then I will post what I find. :smile:

 

Thanks!

 

One day soon, I might be willing to test a tool that compacts the list. Early on, I made the mistake of waiting too long to see if I liked a settlement mod. I found some worked while others didn't. Those that did not were easy to decide rather quickly. I thought I was 'OK', but it seems not because even though I loaded the save before I added the mod, it still changed some core stuff. Some mods took longer to decide to uninstall since they seemed fine when fast traveling, but when approaching 'on foot', they caused serious lag spikes. Uninstalling those remedied the lag spikes, but now I am in this pickle today as a result, with them well baked into my game save. Being new to using mods, lessons have been learned. ;-)

Edited by Hawkeye6590
Link to comment
Share on other sites

The issue is there are two arrays one of workshop object references and one of location references which is used by GetWorkshopFromLocation() and other functions.

 

They are aligned purely on the index number and even base game workshops can have different index numbers in new game starts depending on script threading at that time. Typically when a workshop is removed, its location index is not so any workshops after it in the list will now have an incorrect location.

 

No one has come up with a full proof method to fix that error as there are too many unknown unknowns with mod added workshop locations and players using mods to move workshops between cells, which also breaks the system.

 

EDIT: "If you are running another SKK mod that already enables any of these functions, that is detected and the specific function is disabled in this mod to avoid duplication or conflict. The holotape menu entry changes to indicate which function is being manged by which mod."

Edited by SKK50
Link to comment
Share on other sites

Trace snippets:

"workshop126initscript", missing file?
[01/18/2019 - 03:42:58PM] error: Unable to bind script workshop126initscript to 126_init (16000FAD) because their base types do not match
[01/18/2019 - 03:42:58PM] Cannot open store for class "zzGPatrollerScript", missing file?
[01/18/2019 - 03:42:58PM] Cannot open store for class "zzGPatrolMaintenance", missing file?
[01/18/2019 - 03:42:58PM] error: Unable to bind script zzGPatrolMaintenance to zzGPatrolMaintenance (46000806) because their base types do not match
[01/18/2019 - 03:43:09PM] VM is freezing...
[01/18/2019 - 03:43:09PM] VM is frozen
[01/18/2019 - 03:43:09PM] Reverting game...
[01/18/2019 - 03:43:09PM] error: Unable to bind script zzGPatrolMaintenance to zzGPatrolMaintenance (46000806) because their base types do not match
[01/18/2019 - 03:43:09PM] error: Unable to bind script workshop126initscript to 126_init (16000FAD) because their base types do not match
[01/18/2019 - 03:43:47PM] Loading game...
[01/18/2019 - 03:43:47PM] warning: Property isMainframePanel on script dlc04:dlc04_gzstarcorepanelscript attached to  (060317F0) cannot be initialized because the script no longer contains that property
[01/18/2019 - 03:43:47PM] warning: Property isMainframePanel on script dlc04:dlc04_gzstarcorepanelscript attached to  (06031821) cannot be initialized because the script no longer contains that property

These were the only references to 'zzg' in the log file.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...