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:
(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, use optional file SKK_FixWorkshopMapMarkerScript).
000B3506 Airport  No WorkshopLinkAttackMarker (use MoveWorkshopMarkers to create if desired).
00019956 Bunker  No WorkshopLinkAttackMarker (use MoveWorkshopMarekers to create if desired).
00161F4B Spectacle Island no WorkshopLinkAttackMarker (use MoveWorkshopMarkers to create if desired).
001F0711 Hangmans MapMarker 0016CA20 does not match Location 001B8C53 MapMarkerRefTyp 0016CA1D (linked to Flagon use optional file SKK_FixWorkshopMapMarkerScript).
00054BAE RedRocket No WorkshopLinkContainer (ignore, its a demised keyword no longer in use).
0x000FEF Vault 88Â Â missing LocationRefType MapMarkerRefType (the interior workshop map marker bound to exterior location).
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.Â