SKK Workshop Utilities corrupt workshop lists

Article:  SKK Workshop Utilities corrupt workshop lists Mod Name: SKK Workshop Ownership Utilities Mod File: SKKWorkshopUtilities.ESP Source: https://skkmods.com/mod/skk-workshop-ownership-utilities Platform: Fallout 4 (PC, XBOX) Author: skk.50@outlook.com Date:     October 2018 Version: 003 onwards

WORKSHOP LIST CORRUPTIONS

The master list of workshops managed by the WorkshopParent quest script can become corrupt for many and varied reasons:

(1) Mods that improperly register a new improperly configured workshop.

(2) Trying to register more than 128 workshops (a Papyrus script array limit).

(3) Mods that mess with base game workshop scripts or Workshop IDs.

(4) Moving a workshop to a different cell/location that doesn’t have the right location keywords and is different to that recorded in WorkshopScript and WorkshopParentScript.

(5) Overlapping workshop tagged world locations. A cell can only belong to one location and a location can only be assigned to one workshop, else the WorkshopParentScript.Workshops and WorkshopParentScript.Locations arrays will not align.

(6) Removing a mod that has added a script registered workshop so the WorkshopParentScript.Workshops and  WorkshopParentScript.Locations arrays have holes.

(7) Overwriting workshop location information with other location/cell changes later in the load order that unflag the workshop location and/or change its name. A workshop gets it name from the Location record.

(8) Changing workshop attributes with the console when you have no actual idea what you are doing. The classic incorrect brute force [setpv OwnedByPlayer True] that is constantly cited on reddit IS WRONG, the actual command would be [cf “WorkshopScript.SetOwnedByPlayer” 1] For.Fucks.Sake.

Some symptoms are:

> Resources not being assigned or produced correctly.

> Quests and messages report […] Location.

> Workshop is not on the assign caravan, move settler or dismiss companion list.

> Base game scripts and mods that use GetWorkshopFromLocation() or IsWithinBuildableArea() fail to work, including the ultra critical WorkshopParentScript.ResetWorkshop function that manages workshop resources.


SKK DIAGNOSTIC

SKK Workshop Ownership Utilities mod can help expose problems if you run [ Detect Workshop Parent Issues ] holotape option. When missing or mismatched workshop ID and Location lists are detected, it will try and figure out where in the list of 30+ workshops the break or misalignment started, and report those workshop location names that seem to be causing the error:


SKK REPAIR

Version 008 onwards of the mod includes a repair option which will try to clean and align the lists. As workshop IDs can not be changed (many many reasons) any holes that can not be repaired because (for example) the original mod injected workshop or location has been removed, are filled with a placeholder workshop and location generated by the repair script. FTLOG DO NOT REMOVE THIS MOD IF YOU HAVE USED THE FUNCTION.


DEBUG DIAGNOSTICS

This is not 100% accurate as the base error is a misalignment in the lists so the reported location names may be wrong. Fact is you got fundamental tech issues. To absolutely identify the problem workshops, you need to be PC (sorry consoles).

(1) Enable debug logging https://www.creationkit.com/fallout4/index.php?title=Enable_Debug_Logging

(2) Run the [ Detect Workshop Parent Issues ] option again.

(3) Using explorer or a file manager open the log file at:

..\Documents\My Games\Fallout 4\Logs\Script\User\SKK_WUTestWorkshopList_NNNNNN.log

(A) Good Records:

Workshop,GOOD,ListIndex,5,WorkshopID,5,WorkshopList,[Location < (000397DC)>],LocationList,[Location < (000397DC)>],[workshopscript < (000E0505)>]
Location,GOOD,ListIndex,5,WorkshopID,5,WorkshopList,[Location < (000397DC)>],LocationList,[Location < (000397DC)>],[workshopscript < (000E0505)>]

(B) Bad records (Workshop List and Location List misalignment):

Workshop,MISSING ,ListIndex,5,[Location < (000397DC)>]
Location,MISSING ,ListIndex,5,[Location < (000397DC)>]

(4) The most accurate way to identify problem workshops is to check the list of GOOD workshopscript ReferenceIDs and LocationIDs against the list of known Base Game + DLC workshops and see who is missing:


REFID ,LocID ,Workshop Location Name
0006F5C5,0006B4D0,Abernathy Farm
000B3506,00084AB0,Boston Airport
00019956,000456FA,Bunker Hill
00168945,00176926,Coastal Cottage
0009B1DB,0009B1C3,County Crossing
000E0505,000397DC,Covenant
001654BD,0003C0FE,Croup Manor
xx038EA8,xx038eae,Dalton Farm
xx047dfb,xx051bad,DLC04WorkshopHoldingCell [Starts as Type02 Outpost]
xx01C6AA,xx00f101,Echo Lake Lumber Mill
00164321,00021A7F,Egret Tours Marina
0009B19D,0002648A,Finch Farm
0009B18F,000482CF,Graygarden
0009B1F1,0009B1C5,Greentop Nursery
001F0711,001B8C53,Hangmans Alley
001654CF,00050C08,Jamaica Plain
001654B8,0005A5E4,Kingsport Lighthouse
xx02064C,xx020649,Longfellows Cabin
0016D28E,00178E7A,Murkwater Construction Site
0009B1BE,0009B1B5,Nordhagen Beach
xx00BCE7,xx00BCED,Nuka-World Red Rocket [Starts as Type02 Outpost]
0009B1D1,0009B1C2,Oberland Station
00024A26,00055402,Outpost Zimonja
00054BAE,00024FAB,Red Rocket Truck Stop
000250FE,0001F228,Sanctuary Hills
001E81EA,0009B1C4,Somerville Place
00161F4B,0008281C,Spectacle Island
0001D0E2,00024F96,Starlight Drive-In
001654D5,00024FAD,Sunshine Tidings Co-op
00135A90,00056CBA,Taffington Boathouse
0009B1AC,0009B1B4,Tenpines Bluff
00066EB6,00066EBA,The Castle
xx000E4C,xx0008a4,The Mechanists lair
0009B197,0006260D,The Slog
xx000FEF,xx003ddf,Vault 88
xx00AB20,xx009353,Visitors Center
0009B1A5,0006260C,Warwick Homestead

(xx = DLC/mod position in your load order)