Jump to content

A few questions about Custom settlement building.


AtomsChosen

Recommended Posts

A few questions I've been trying to get an answer to.

 

1. What determines the spawn location of enemies during settlement attacks?

2. Do all areas within the building perimeter need to be marked as the same location?

3. What determines the leash radius of settlers?

4. How can I make workshop settlers always show up in Power Armor?

5. If the cell a settlement is located in has the ability to reset, will reset everything build in the workshop to its default state? Would leaving it this way cause any problems?

Link to comment
Share on other sites

1) WorkshopLinkAttackMarker keyword, on markers it defines LinkedRef to Center;

3) Location radius in Package procedures or a Primitive linked from Workshop (WorkshopLInkSandbox), i guess. Their anchor is attached as WorkshopLinkHome. Here me still haven't observed specifically if Location Radius is considered or not when a Primitive is provided as Location. My assumption currently, seems logical also - it should be ignored, quite impressive functionality then.

Edited by hereami
Link to comment
Share on other sites

2. Do all areas within the building perimeter need to be marked as the same location? Yes, at least if you wan't NPCs to sandbox in that area.

Otherwise you can overlap the scrapzone with cells that have other locations attached.

Link to comment
Share on other sites

  • 4 weeks later...
On 11/12/2023 at 8:27 PM, niston said:

If a cell resets, everything workshop-built in it will vanish without a trace.

Make sure encounter zone of cell/location has NO RESET flag set.

Isn't much inspiring for portable workshops or else things spawned to last, honestly, always thought at least workshop-placed objects must stay forever no matter what, as Workshop itself is a special thingy and usually set up to not reset, which feature should be inherited by its children (well, i'd like to suggest...). How could be bypassed? Not sure i can see a way to specify Encounter zone for a Refr or intercept generic OnWorkshopObjectPlaced. But if something is spawned in an interior (or exterior too?) NoResetZone Cell, shouldn't the Zone stick to spawned object after it's moved to another location, world?

Link to comment
Share on other sites

Because specific cell reset is controlled by the NO RESET flag on an encounter zone which can not be dynamically script attached or updated on a location, this is the advice on my own mobile workshop solution ("it is what it is"):

Quote

(4) CELL RESET. The mobile workshop can be deployed anywhere, but those cells are likely to be configured to reset. After a reset trigger (iHoursToRespawnCell) any built objects may be removed from the game when the cell next activates. The EZ solution is to set the world to never reset with the console, of course loot and actors will not respawn, but WHO actually wants that nonsense anyway ?

[ SetGS iHoursToRespawnCell 999999 ]
[ SetGS iHoursToRespawnCellCleared 999999 ]

 

Link to comment
Share on other sites

On 12/5/2023 at 12:57 PM, hereami said:

Isn't much inspiring for portable workshops or else things spawned to last, honestly, always thought at least workshop-placed objects must stay forever no matter what, as Workshop itself is a special thingy and usually set up to not reset, which feature should be inherited by its children (well, i'd like to suggest...). How could be bypassed? Not sure i can see a way to specify Encounter zone for a Refr or intercept generic OnWorkshopObjectPlaced. But if something is spawned in an interior (or exterior too?) NoResetZone Cell, shouldn't the Zone stick to spawned object after it's moved to another location, world?

In theory, it can be bypassed by setting the Encounter Zone of the workshop location "Never Resets" with F4SE's SetNeverResetable(True) function.

However, both the vanilla Location and Cell scripts have a function Reset() and vanilla scripts may utilize them.. see Location.psc and Cell.psc:

; Forces reset on all encounter zones and interior cells which use this location
Function Reset() native
; Flags the cell for reset on next load
Function Reset() native

 

Link to comment
Share on other sites

If we lean towards low-level code intervention, then it might be worthy to hack workshop routines and make it add every single built ref to NoResetZone, perhaps? Or flag it as NoReset another way, if such a way exists. Because that's what looks very reasonable to be implemented originally.

Hm, here's what i've actually missed re OnWorkshopObjectPlaced "The event is sent to both the Workshop reference and the reference being placed", so it might be intercepted generally by regular means to respawn and substitute a ref, well, if original placement Zone inheritance does actually work and zone affiliation persists. Or maybe there is already a func in F4SE to specify EncounterZone for a ref?

By the way, does Workshop flag in a Zone have important meaning, if any at all?

Edited by hereami
Link to comment
Share on other sites

  • Recently Browsing   0 members

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