Starfield

File information

Last updated

Original upload

Created by

SKKmods

Uploaded by

SKKmods

Virus scan

Safe to use

Tags for this mod

About this mod

Configure outpost attacks as YOU want them with a new attack system, on demand or triggered by a random timer. Hire mercs and unlock more turrets to help. This does not touch the base game attack system.

Permissions and credits
Translations
  • Japanese
Changelogs
Configure outpost attacks as YOU want them with a new attack system, on demand or triggered by a random timer. Hire mercs and unlock more turrets to help. This does not touch the base game attack system.


Like Fallout 4 Settlement Attack System (without Synths or Vertibirds).



Build one [ Outpost Attack Terminal ] at any Outposts you want to be attacked, then configure global settings:


Human Attackers [ *Enabled | Disabled ] random pick at random player level +/- 150% from list:
Spoiler:  
Show

SKK_OAHumanAttackersList

LvlHumanHostile_Assault [NPC_:00375AA4]
LvlSpacer_Assault [NPC_:0027BB8F]
LvlCrimsonFleet_Assault [NPC_:00054327]
LvlEcliptic_Assault [NPC_:0026FF67]
LvlTheFirst_Assault [NPC_:0026FB3E]
LvlVaruun [NPC_:00278716]


Creature Attackers [ *Enabled | Disabled ] random pick at random player level +/- 150% from list:
Spoiler:  
Show

SKK_OACreatureAttackersList

LvlAceles "Aceles" [NPC_:001EA2C3]
LvlOctopedeABlisterCrab [NPC_:002BF32D]
LvlOctopedeAExocrawler [NPC_:002BF649]
LvlOctopedeAGallopingBeetle [NPC_:002BF64A]
LvlOctopedeAHornedCrab [NPC_:002BF64B]
LvlOctopedeALonghornBeetle [NPC_:002BF64C]
LvlOctopedeAMaggotCrab "Maggot Crab" [NPC_:002BF64D]
LvlOctopedeARockCrab [NPC_:002BF64F]
LvlTerrormorph [NPC_:002B2293]


Custom Attackers  [ Enabled | *Disabled ] random pick at random player level +/- 150% from list:
Spoiler:  
Show

SKK_OACustomAttackersList 

the list starts empty, read about editing it below.


Number of attacking groups [ *1 |  2 | 3 | 4 | Random 1/4 ] 

Number of attackers per group [ *2/4 | 4/8 | 6/12 | 8/16 | Random 4/16 ]

Timed Attacks [ *Off | 20/40 min | 40/80 min | Random 20/80 min ] real time (not game minutes).

Turret Build Limit [ *6 | 18 ] global, affects all outposts.

Stop Attack on Unload [ *No | Yes ] if any attacking actors run away over 300/400 meters and 3d unloads they are removed. If the player runs away or teleports from the outpost during an attack and 3d unloads the attack is closed down. 

Map Mark Attacks [ Off | *Mark Outpost | Mark Attackers ] can be switched in real time during an attack. If Outpost is selected the last TWO attackers are automatically map marked incase they are hiding or clipped into the landscape.

>>> REMOVE CORPSES when an attack is not running finds human and creature corpses in the build area, opens each inventory for EZloot™ then removes the corpse. 

>>> HIRE MERCENARY base cost is 100 caps + 100 caps for each hire up to 8 at each outpost. 
Spoiler:  
Show

SKK_OAMercenaryList 

LvlMarine_Assault [NPC_:00056F09]
LvlSecurity_Assault [NPC_:0025C5E5]
LvlSecurity_Freestar [NPC_:0026FB62]
LvlSecurity_Neon [NPC_:00247D45]
LvlSecurity_TrackersAlliance [NPC_:0007F891]
LvlVanguard [NPC_:00096546]


[ >>> ATTACK NOW  |  >>> CANCEL ATTACK ] 


==================
Function Descriptions

Terminal: Only one can be built at each external outpost (not player homes). Removing a terminal stops an Outpost from being an attack target but also releases any local mercenaries. No refunds.

Attack Now: You can spam as many concurrent attack now requests as you like, but read the spawning education section first. 

Timed Attacks: When the timer pops the script starts checking the players current planet/orbit for a local Outpost with an attack terminal. When found its marked and notified as [ Outpost is threatened. ] regardless of map mark settings so you know to investigate. Once you get within 25 meters of the outpost the attack will start. Only one timed attack can be queued or active at a time.

Cancelling an Attack: If you dont like the target access a terminal [ >>> CANCEL ATTACK ] if you are getting your ass kicked by 64 Terrormorphs and cant get to the local terminal then travel away. If you are wearing teh pink panties and have set [ Stop Attack on Unload ] you are safe, otherwise use a terminal at another outpost.

Mercenaries: If the terminal or outpost a mercenary has been hired against is removed/destroyed they are released to sandbox in place and clean up when they 3d unload.  They are recruitable using Starfield Stalkers and Followers , and if you want to manage your Merc hire inventory and healing, use the [ R ] actor command menu from Starfield Stalkers and Followers which is designed to work with any friendly NPC.

Attackers: spawn at totally random points around the Outpost between 100 and 300 meters range. Over that distance their 3d is unloaded which causes unpredicable AI pathing and freezes. If there are tall (100m) mountains in that radius of your Outpost there can be issues finding usable spawn points due to navmesh and slant-range maths, so you will sometimes be notified that an attack has been abandoned.




=================
Spawning Education

(a) Persistent unreleased spawned actors are a top reason for performance issues, savegame bloat and unloadable saves. This solution is careful to track all spawned actors and remove them from the game, which is why only one timer attack can be run until the active attack completes or is cancelled.

(b) Fallout 4 would handle ~ 300 actors in the loaded area before freezing, but only the first ~30 will actually follow and fight due to AI settings and processing load. Starfield has not been benchmarked for AI handling limits so stick to around 30 followers + hostiles for an actual exprience which is why mercs, turrets and attacker numebers have been limited. Although you can stack 8 mercs, 16 turrets and 4 teams of 16 hostiles, don't cry about 90 actors in combat not working.



=====================
Editing Actor Pick Lists 

If you want to modify the spawned actor random pick lists to meet your exacting needs and you know how to use xEdit to edit forms, have at it. Understand that this page can not teach you basic xEdit skills no matter how desperate you are. Youtube tutorials ?

If you absolutley positivley must have a specific actor spawning then: (a) why are you using a RANDOM spawning mod and (b) the list needs to have only that one lvlActor in it. 

Spoiler:  
Show

When adding actors that have a hierarchy EncActor > LCharActor > lvlActor, always use the levelled ActorBase (_NPC).
 
Existing ActorBases can all be removed, but each formlist must have at least ONE valid actorbase to not fall over.

SKK_OAMercenaryList "OK to xEdit this with friendly lvlActors" [FLST:08000818]
SKK_OAHumanAttackersList "OK to xEdit this with hostile lvlActors" [FLST:08000814]
SKK_OACreatureAttackersList "OK to xEdit this with hostile lvlActors" [FLST:08000815]
SKK_OACustomAttackersList "OK to xEdit this with hostile lvlActors" [FLST:08000813]

When you xEdit mods be sure to save your changes as a seperate over-ride file, else they will be overwritten when the base mod updates. You should plan for mods to be updated, not frozen in perpetuity like that old half eaten curry you shoved in the back of your freezer when hammered on a dark and stormy night years ago. 




=========
Installation

This does not depend on anything at all (like script extenders) except your ability to follow instructions.


(A) Mod Manager Install 

Folllow your chosen mod manager install instructions for ESM files and loose scripts, I'm not getting involved any more. 


(B) Manual Install 

Spoiler:  
Show

(1) Extract the (not _MODMANAGER) download archive files and folders to C:\Program Files (x86)\Steam\steamapps\common\Starfield\Data

Using standard paths will look like:

C:\Program Files (x86)\Steam\steamapps\common\Starfield\Data\SKKOutpostAttacks.esm
C:\Program Files (x86)\Steam\steamapps\common\Starfield\Data\Scripts\SKK_OAQuestScript.pex
C:\Program Files (x86)\Steam\steamapps\common\Starfield\Data\Scripts\(in total 6x SKK_OA*.pex files)

But, if you have buggered about with non standard folder paths then "wherever starfield.exe lives ...\Data folder and wherever starfield.exe lives ...\Data\Scripts folder" is the best guidance your going to get as I have no idea where you installed. If you can't work from that then best just stop now.

(2) If you are not using plugins.txt, edit C:\Users\%USERNAME%\Documents\My Games\Starfield\StarfieldCustom.ini to include the following sections and entries:

[General]
sTestFile1=SKKOutpostAttacks.esm

[Archive]
bInvalidateOlderFiles=1
sResourceDataDirsFinal=

If you already have sTestFile1 in use, no problem you can have up to 10 of them from sTestFile1=FileName to sTestFile10=FileName. BUT with only 10 to fill you will clearly need to choose wisely.

(3) If you are using a plugins.txt enabler mod you should follow its instructions which are probably "add *SKKOutpostAttacks.esm to Plugins.txt"



(C) To validate your installation attempt

In a running game copy and paste the text [ between the square brackets ] into the console:

To validate scripts console [ cgf "SKK_OAQuestScript.GetVersion" 1 ]
To validate the ESM console [ help SKK_OAQuest 4 quest ]



===================
Quality & Compatibility

(1) This is 100% new forms and scripts. As it does not modify any base game content at all, the likelyhood of it CAUSING conflict is zero. If you have issues, best start with your stuff that does hack the base game or configures odd settings.

(2) Installing mods disables achievements.



===========
Known Issues

(1) Why can't base game attacks be disabled ? Because (a) the base game scripts are poorly designed: OutpostBeaconScript.AllowAttacks setting does not work and (b) the parent OutpostBeaconActivator object contains reflection data so it can't be static hacked by xEdit. Soon as there is a workable switching method it will be included. Just hacking the base game scripts to make them non Constant is a really bad idea.

(2) Do not get clever and rename the ESM file. The scripts use GetFormFromFile() lookups on fixed file names rather than script properties until Creation Kit releases because technical reasons.



==============
With thanks to ...

This early development has been enabled by CHAMPOLLION and CAPRICA Papyrus tools created and maintained by the amazing software engineering talents of Orvid and Nikitalita and of course a public xEdit build from ElminsterAU and team.