Starfield
0 of 0

File information

Last updated

Original upload

Created by

1000101

Uploaded by

1000101

Virus scan

Safe to use

Tags for this mod

About this mod

A QoL mod for Starfield.
Automagically mines, harvests, loots, hacks terminals and, picks locks.
Fully configurable and Hotkey ready.

Requirements
Permissions and credits
Changelogs
Why?


Tired of sifting through crap on a desk and still grabbing the marker instead of the credstik?  Well, do it automagically!

Hate that damned hacking/picking minigame?  Well, do it automagically!

Want to grab the ammo around you while you shoot your way through bullet sponges?  Well, do it automagically!

Annoyed with wonky hitboxes and endless time wasting mining and harvesting plants?  Well, do it automagically!

This mod takes some of the tedium out of the endless cycle of shooting your way through the 14th identical abandoned research tower in the last two systems.

Just configure the mod for your play style and save yourself some time and tedium.



Installation:

It is recommended you remove a previous version first to avoid having any left over obsoleted files.

Automagic Installation:

Your mod manager may not fully support Starfield at this time.  Your mileage may vary depending on the tool you use.


Manual Installation:

Extract the package to your Data folder, maintaining the complete directory structure and file placement.

If you are using Plugins.txt Enabler then simply add a line reading *LooterShooter-ShooterLooter.esm

If you are NOT using Plugins.txt Enabler then USE IT!  sTestFile is NOT recommended and should be avoided.  NO help or instructions will be given for that method.


Standard Upgrade Instructions:

1) Optional: Run the LSSL Settings Export Command (0003 and later) to generate the Import Commands

2) Remove the current ESM package*
3) Install the new ESM package*
4) Make sure it's the same load order slot in Plugins.txt

5) Optional: Run the Import Commands you Exported

* Everything inside the archives \Data\ directory maintaining it's exact structure.


Finally - Profit!




Quick'n'Dirty How-to:

Use console commands or setup Hotkeys to change any of the mod controls and filters.  Refer to the table in the readme in the archive downloaded for reference and complete details.


Console/Hotkey commands:

See the bottom of this page for a Hotkey example config.

Console commands are given below, replace "asControl", "asFilter" and, "asAction" as appropriate from the tables below.  float means a number such as 1.0 and bool means true/false.

Example:

Set the scan range to 25.0 meters.

Use the "SetFloatControl" function which reads as follows:
cgf "LSSL:Interface.SetFloatControl" "asControl" float
Replace "asControl" with "ScanRadius" and float with 25.0:
cgf "LSSL:Interface.SetFloatControl" "ScanRadius" 25.0

See the included readme.txt for all available functions.



Common Commands:


To turn OFF the looting defaults:
cgf "LSSL:Interface.ToggleAllFilters" false

To change the RANGE of the actions:
cgf "LSSL:Interface.SetFloatControl" "ScanRadius" float
Where "float" is the radius in meters you want (note, it is internally minimally clamped to 1.0m).
WARNING:  Increasing the range increases the volume of the sphere being searched.  This has a direct correlation to the time it takes the engine to scan for objects.  That mean's going from 4.0m radius to 8.0m radius is the difference between a volume of 268.08 and 2144.66 cubic meters, or an increase of 700% (8x the volume).

To change the INTERVAL BETWEEN auto scan cycles:
cgf "LSSL:Interface.SetFloatControl" "ScanInterval" float
Where "float" is the time in seconds you want (note, it is internally minimally clamped to 1.0s).


To change the SCAN TIMEOUT:
cgf "LSSL:Interface.SetFloatControl" "ScanTimeout" float
Where "float" is the time in seconds you want (note, it is internally minimally clamped to 30.0s, recommended 60.0s to 120.0s, default value is 60.0s).


To turn OFF auto scans:
cgf "LSSL:Interface.SetBoolControl" "AutoScan" false

To turn OFF the hand scanner requirement:
cgf "LSSL:Interface.SetBoolControl" "HandScannerOnly" false

To ALLOW STEALING (and accessing owned doors/terminals):
cgf "LSSL:Interface.SetBoolControl" "AllowStealing" true

To toggle PAUSE on/off:
cgf "LSSL:Interface.ToggleBoolControl" "PauseScan"

To CANCEL the current scan:
cgf "LSSL:Interface.CancelScan"

To get notified when a scan is complete:
It is HIGHLY recommended you turn this on.
cgf "LSSL:Interface.SetBoolControl" "NotifyOnComplete" true




Notes on Hacking and Picking:

The players team requires Digipicks and the appropriate skill.

The "players team" is the player and all current followers.

Skills Used:

"Team actions" mean anyone on the players team can attempt to pick or hack depending on who is "most appropriate". This is whomever has the lowest skill rank that is high enough to accomplish the task. Choosing the actor this way means everyone will eventually be able to achieve the maximum rank of the required skill.

For the player the Security skill is used; Crew and Companions lack a Security skill so their Theft skill is used instead.

Regardless of who or the skill, at least the same rank as the lock level is required to pick or hack. As the lowest lock level is 1, this means the lowest rank is 1 - so no random nobobies will attempt to pick or hack anything.

Digipicks:

The team member selected to actually pick or hack does not need to have the digipicks on their person. Digipicks are counted among the entire team and will be removed as needed.

Additional Digipicks may be used to simulate making mistakes for locks higher level than novice at a rate of 5% per lock level per lock level.

For those interested in the breakdown, here it is:
    Level:      Keys:   Determination:
    Unlocked:   0       0
    Novice:     1       1
    Advanced:   1-2     1 + 1 (5%)
    Expert:     1-3     1 + 1 (5%) + 1 (10%)
    Master:     1-4     1 + 1 (5%) + 1 (10%) + 1 (15%)




Known Issues:


Ships and Captains Lockers:

The mod will not loot ship cargo holds or captain's lockers because it will not differentiate the players Home Ship from some random one at this time. I may look into this in the future.

As of v0010, ship cargo holds, captain's lockers and, mannequins are properly looted.  The player ship and outposts are still protected from being looted, however.


Sometimes the game doesn't "find" an object it's been asked to:

This is most noticeable with mining nodes, especially inside a POI cave.  The game has some memory leaks and other engine bugs that sometimes causes it to not "find" things.

Possible solutions:
  • When on a planet or moons surface (exterior), save, exit the game to desktop, reload, retry.
  • For interiors, if save/load didn't work, I have found no solution at this time and you may have to manually mine (or use Elemental Pull).


Invisible bodies abound:

v0007 changes the Game Setting that controls whether an NPC "drops" their armor on death but it does not effect non-playable armor and thus this issue.

What causes the issue is the mod will loot non-playable armor leaving invisible bodies where only the head is visible.

So what actually causes there to be no bodies?  Any armor flagged as non-playable triggers an engine level optimization where it does not bother giving the actor an actual body mesh (because it would always be hidden).  Thus, when LSSL (or anything) removes their armor - invisible body.

What are the ways we can handle this?  There are two different ways we can iterate an inventory - by keyword or by base item.

The keyword method is preferred as the list of keywords is a lot smaller than the potential list of base items.  Further, it is less restrictive as long as new items are properly keyword tagged they will be looted.

Looting by base item means LSSL must have a list of all base items it can loot for that category; any new item added by a mod, for example, will not be looted.  Technically LSSL does both for every category but most filters base item lists are empty as the much smaller set of keywords for the filter are more than enough.  The only exception to this is doors filter because searching for doors by keyword would return virtually every structural component of a POI as the keywords used by doors are shared by those objects too, but I digress.

It's unfortunate the functions we have to iterate through inventories (and placed objects) are very rudimentary and are not up to the task at hand so we have to make compromises.

That means it's down to one minor cosmetic "non-issue" or the problems outlined above regarding speed and looting thoroughness - I decided we should live with the cosmetic glitch instead of having to do the very thing we are using this mod to avoid - wandering the entire region to loot it!


Companion skills and ranks:

Companions won't always take a skill rank even though it's applied.  I have no idea why, I'm not doing anything different than the scripts that set their initial skill levels.  To work around this, LSSL will use their skill rank by perks or by accumulated XP, which ever is higher (to the limit of the actual number of skill ranks).




Example Hotkeys:

Requires enabling Console Hotkeys as can be found here.

[Macros]
closeLoot=cgf "LSSL:Interface.SetFloatControl" "ScanRadius" 5.0 ; cgf "LSSL:Interface.SetFloatControl" "ScanTimeout" 60.0
normalLoot=cgf "LSSL:Interface.SetFloatControl" "ScanRadius" 25.0 ; cgf "LSSL:Interface.SetFloatControl" "ScanTimeout" 60.0
superLoot=cgf "LSSL:Interface.SetFloatControl" "ScanRadius" 250.0 ; cgf "LSSL:Interface.SetFloatControl" "ScanTimeout" 6000.0
touchTheft=cgf "LSSL:Interface.SetAllFiltersByAction" "Loot" false ; cgf "LSSL:Interface.SetAllFiltersByAction" "Search" false ; cgf "LSSL:Interface.SetFloatControl" "ScanRadius" 1.5 ; cgf "LSSL:Interface.SetBoolControl" "AllowStealing" True
restoreNormalLoot=cgf "LSSL:Interface.SetBoolControl" "AllowStealing" False ; cgf "LSSL:Interface.SetAllFiltersByAction" "Loot" true ; cgf "LSSL:Interface.SetAllFiltersByAction" "Search" true

[Hotkeys]
F2=cgf "LSSL:Interface.ToggleBoolControl" "PauseScan"
F3=cgf "LSSL:Interface.SetFloatControl" "ScanRadius" 10.0
F4=cgf "LSSL:Interface.SetFloatControl" "ScanRadius" 50.0
Ctrl-F2=closeLoot
Ctrl-F3=normalLoot
Ctrl-F4=superLoot
Shift-F2=cgf "LSSL:Interface.CancelScan"
F10=cgf "LSSL:Interface.QueryState" "General"
Ctrl-F10=touchTheft
Ctrl-F11=restoreNormalLoot