Fallout 4

Platform: Fallout 4 (PC, XBOX)
ModFile:  SKKWorkshopUtilities.ESP
ModName:  SKK Workshop Ownership Utilities
Author:   [email protected]
PC:       https://www.nexusmods.com/fallout4/mods/31625
Xbox:     https://bethesda.net/en/mods/fallout4/mod-detail/4065233
Date:     October 2018
Version:  016 onwards

The SKK Settlement Attack System and Move Workshop Markers mods have exposed a significant number of issues with badly configured mod added workshops and base game workshops that have been buggered about with. Always amusing exchange:

"Them: your mod doesn't work. Us: Your workshop keywords are broken."
(forgive them, for they know not what they do)


Building on the useful How to create quality WorkshopParent registered scrappable settlements article which lovingly documents each keyword, how to use them and what they do, SKK Workshop Ownership Utilities now has a [Detect Local Workshop Keyword issues] option to help identify actual technical problems rather than rely on opinions from Reddit.


Keywords and LinkedReferences are one of the fundamental bonding agents that holds the Fallout4 game together and makes game objects findable. Just like you Google for Keywords and then click on the LinkedReference pages.



WORKSHOP STATES 

There are several different base game workshop types and states which affect their need for, and dependency on, keywords:

(1) BASE GAME Full External Settlement Workshop which is registered with WorkshopParentScript (28 base game workshops). Can recruit and assign settlers, these are full settlements. 

(2) BASE GAME Limited External Workshop which is registered with WorkshopParentScript (1 base game workshop: Airport). Can not recruit settlers, but can assign them. These are sort-of settlements. 

(3) BASE GAME  Limited Interior Workshop which is not registered with WorkshopParentScript (1 base game workshop: HomePlate). ISOLATED. Can not recruit or assign settlers thse are just "player home" workshops, not settlements. 

(4) DLC adds Full External Settlement Workshops which are registered with WorkshopParentScript BUT IN AN INTERIOR CELL (Vault 88, Mechanist). Can recruit and assign settlers so are full settlements.

(5) MODS can add Full External Settlement Workshops which are properly configured and registered in external worldspaces or interior cells when the mod author understands what they are doing (or doesn't but gets lucky stabbin' the right buttons).

(6) MODS can add Full External Settlement Workshops (full build menu) that are NOT registered with WorkshopParentScript or  an attempt to register is corrupt so can not recruit/send settlers or produce resources. These are not actually settlements at all.

(7) MODs can add limited build menu workshops that are NOT registrered with WorkshopParentScript. These ISOLATED "player homes" have no need for any keywords at all to build stuff. They only cause problems when their Location or default 5K radius build area overlap with existing workshops.


A workshop SETTLEMENT is a workshop that is registered with WorkshopParentScript for settler assignment and resource production.

UPGRADING A LIMITED WORKSHOP to full SETTLEMENT

The only difference between a limited build menu workshop like Airport and a full external workshop build menu is one keyword WorkshopWorkbenchTypeSettlement which unlocks all build menus. Conversely the interior power generating swich used by Homeplate is unlocked with keyword WorkshopWorkbenchTypeInterior.

Plenty of mods and console commands can add these keywords, including the ever helpful Workshop Utilities [Upgrade Workshop to Full Settlement menus] option. BUT these only unlock buid menus, they DO NOT register the workshop with WorkshopParentScript as a settlement for recruitment or resource production, because ...


UPGRADING AN ISOLATED WORKSHOP to FULL REGISTERED SETTLEMENT

No matter what anyone may claim this is simply not possible UNLESS the isolated workshop cells happen to be associated with a named location which is already static tagged with the critical keyword LocTypeWorkshopSettlement and does not already have a registered workshop in the location. These do not actually exist in the base game.

If you have an isolated player home type workshop and want to force the issue, follow step (16) of How to create quality WorkshopParent registered scrappable settlements to register it with WorkshopParentScript. That may (a) corrupt your workshop parent script, or (b) sort-a work if the workshop has a named location. BUT, as there is no Location.AddKeyword() script command to dynamically add LocTypeWorkshopSettlement to that workshop location, settler and resource management will not work at all or consistently.

Side note: CONQUEST allows full registered settlements to be deployed by managing a stash of pre-configured location records and assigning them to deployed workshops. Which is why there is a limited count of them.


DETECT LOCAL WORKSHOP ISSUES TEST
 
Whilst the test is comprehensive, the on screen reporting is limited in the vanilla game UI (for Xbox compatibility), only providing ERROR, WARNING and NOTIFICATION counts. For the full diagnostic on PC Debug Logging must be enabled and then examine ... \Documents\My Games\Fallout4\Logs\Script\User\SKK_WUTestALLWorkshopKeywords_NNNNN.log

For mod authors and developers there is a console option to test all registered workshops at once [ cqf SKK_WU "SKK_WUMainScript.AllWorkshopKeywordDiagnostic" ] which generates a single consolidated log file. Note that this test may not be consistent, as many resources are non-persistent so will not be found if the Workshop 3D is unloaded outside of the uGridsToLoad active area around the player.


This is a list of the errors detected in the form of their debug log output:



(A) MANDATORY KEYWORDS - ERROR

Some keywords are MANDATORY they must be there to work, if the test does not find them an ERROR is generated:

ERROR Workshop Location X mismatch to World Location Y (Possible corruption).

ERROR Workshop has no location (GetWorkshopFromLocation function calls will fail).

ERROR Workshop Location X has no location MapMarkerRefType (Will not appear on map).

ERROR WorkshopParent registered workshop has no MapMarker (Will not appear on map).

ERROR WorkshopParent registered workshop MapMarker X does not match Location Y MapMarkerRefType Z (Will not appear on map).

ERROR No Keyword WorkshopKeyword (The WorkshopWorkbench furniture may be corrupt).

ERROR WorkshopParent registered, but no WorkshopParent WorkshopID (Possible corruption)

ERROR WorkshopParent.Index X does not line up with WorkshopScript.WorkshopID Y (Possible corruption).

ERROR WorkshopWorkbenchTypeSettlement keyword workshop is not registered with WorkshopParent (Settlers and resource menus enabled without management scripts).

ERROR WorkshopParentRegistered Workshop Location X missing KeyWord LocTypeWorkshop (Quest fills may not find this workshop, hostile spawning mods will not know this is a workshop location).

ERROR Full Workshop location X missing KeyWord LocTypeWorkshopSettlement (Quest fills may not find this workshop, hostile spawning mods will not know this is a settlement location).

ERROR WorkshopParentRegistered Workshop Location X missing LocationRefType WorkshopRefType (Quest fills may not find this workshop).

ERROR WorkshopParentRegistered Workshop Location X missing LocationRefType MapMarkerRefType (Quest fills may not find this workshop).

ERROR WorkshopParentRegistered Workshop Location X missing LocationRefType LocationCenterMarker (Quest fills may not find this workshop and other downstream attack markers will not be found).

ERROR WorkshopParentRegistered Workshop missing WorkshopLinkCenter (Quest fills may not find this workshop other downstream attack markers will not be found).

ERROR WorkshopParentRegistered workshop missing WorkshopLinkSpawn (Settlers may not arrive, patrols and attacks may not path correctly).



(B) RECOMMENDED KEYWORDS - WARNING

Some keywords are RECOMMENDED, things will work but without them functionality will be impaired, if the test does not find them a WARNING is generated:   

WARNING workshop that is External and not WorkshopParent registered has no MapMarker.

WARNING Interior workshop registered with WorkshopParent.

WARNING Exterior workshop not registered with WorkshopParent (Can not assign settlers or provisioners).

WARNING exterior workshop has no linked WorkshopLinkSandbox (settlers will not sandbox).

WARNING full workshop has no linked WorkshopLinkContainer (Produced resources may not be stored).

WARNING exterior workshop has no linked WorkshopLinkedPrimitive (Build area may not show up).

WARNING exterior workshop has no linked WorkshopLinkedBuildAreaEdge (Build area may not show up).

WARNING WorkshopParentRegistered Workshop Location X missing LocationRefType LocationEdgeMarker (Attack quests may not fill).

WARNING unregistered external Workshop missing WorkshopLinkCenter.

WARNING unregistered Full workshop missing WorkshopLinkSpawn (settlers may not arrive, patrols and attacks may not path).

WARNING WorkshopParentRegistered workshop has no WorkshopLinkAttackMarkers connected to WorkshopLinkCenter X (attack quests will not work).



(C) OPTIONAL KEYWORDS - NOTIFICATION

There are stacks of OPTIONAL keywords, some are of interest to help mod authors fix their creations with a NOTIFICATION:

Notification workshop that is Interior and not WorkshopParent registered has no MapMarker.

Notification WorkshopWorkbenchTypeInteriorOnly keyword registered with WorkshopParent.

Notification workshop has both WorkshopWorkbenchTypeInteriorOnly and WorkshopWorkbenchTypeSettlement keywords.

Notification WorkshopParent registered, but No Keyword WorkshopWorkbenchTypeSettlement (Limited build menu and production).

Notification 3D is not loaded pWorkshopLink LinkedReferences not checked.

Notification unregistered interior Workshop missing WorkshopLinkCenter.



KNOWN ISSUES 

Even the base game is inconsistent in its use of,keywords which suggests poor design documentation or rushed changes, these WARNINGS are built right into the base game:

000B3506 Airport   MapMarker 00019C6F does not match Location 00084AB0 MapMarkerRefType 00084BEB (linked to Prydwen)
000B3506 Airport   No WorkshopLinkAttackMarker
00019956 Bunker    No WorkshopLinkAttackMarker
00161F4B Spectacle Island no WorkshopLinkAttackMarker
001F0711 Hangmans  MapMarker 0016CA20 does not match Location 001B8C53 MapMarkerRefTyp 0016CA1D (linked to Flagon)
00054BAE RedRocket No WorkshopLinkContainer (demised keyword no longer in use)

Note that even though you can see valid LocationRefType WorkshopRefType for base game workshop locations, the running game sometimes can not find/report an entry for valid workshops (usually Abernathy or Tenpines) which means some radiant quests will not pick them (nothing can be done about this);

0006F5C5 Abernathy Location 0006B4D0 missing LocationRefType WorkshopRefType, OR;
0009B1AC Tenpines Bluff Location 0009B1B4 missing LocationRefType WorkshopRefType

Also note that linked references can not be consistently validated unless they are persistent (not all are) or they are in the loaded/active area (for some larger settlements like Sanctuary and Spectacle part of the area can be unloaded even when the player is in the buildable area).
 


THE BIG REFERENCE LIST OF IMPORTANT FALLOUT 4 WORKSHOP KEYWORDS

Form                      Name                  LocationRefType           Keyword                     LinkedRefTarget                
------------------------- --------------------- ------------------------- --------------------------- ---------------
Location                  YourLocationName      --                        LocTypeWorkshop             --
Location                  YourLocationName      --                        LocTypeWorkshopSettlement   --
Location                  YourLocationName      --                        LocTypeClearable            --
Xmarkerheading            LocationCenterMarker  LocationCenterMarker      --                          --
Xmarkerheading            SpawnMarker           --                        --                          --
Xmarkerheading            FastTravelMarker      --                        --                          --
XmarkerHeading            AttackMarker          LocationEdgeMarker        WorkshopLinkAttackMarker    LocationCenterMarker
MapMarker                 SettlementName        MapMarkerRefType          None                        FastTravelMarker                         
WorkbenchWorkshop         WorkshopREF           WorkshopRefType           WorkshopLinkCenter          LocationCenterMarker 
WorkbenchWorkshop         WorkshopREF           WorkshopRefType           WorkshopLinkSandbox         WorkshopArea         
WorkbenchWorkshop         WorkshopREF           WorkshopRefType           WorkshopLinkContainer       WorkshopContainer    
WorkbenchWorkshop         WorkshopREF           WorkshopRefType           WorkshopLinkSpawn           SpawnMarker
TriggerBox                WorkshopArea          --                        WorkshopLinkedPrimitive     WorkshopREF
WorkshopBorder            --                    --                        WorkshopLinkedBuildAreaEdge WorkshopREF
WorkshopResourceContainer --                    --                        WorkshopLinkContainer       WorkshopREF
------------------------- --------------------- ------------------------- --------------------------- ---------------

For a Workshop to register with WorkshopParent and work correctly as a resource settlement, the minimums are in GREEN:
Unique Location to trigger OnLocationChange to trigger ResetWorkshop.
LocTypeWorkshopSettlement to quality ResetWorkshop.
WorkshopLinkCenter for workshop AI packages.
WorkshopLinkSpawn for new recruits to arrive. 

Article information

Added on

Edited on

Written by

SKKmods