Image 1 — Mod WIP - Packing Heat - Tactical Converted Fridge
Image 2 — Mod WIP - Packing Heat - Tactical Converted Fridge
Image 3 — Mod WIP - Packing Heat - Tactical Converted Fridge
▲ 247 r/NoSodiumStarfieldMods+1 crossposts

Mod WIP - Packing Heat - Tactical Converted Fridge

Packing Heat is now in play-testing on PC! While testers are testing I'm still adding some finishing touches include decor and some tuning.

This one was inspired by u/Final-Craft-6992 who suggested a cool idea for a "full kit" type station other than the smaller lockers I made already.

I used the fridge model, swapped it to black and then decked it out as if someone had converted it into a tactical ready station. The doors are designed to look like they would be permanently open, so no it wouldn't close (also I couldn't design it to close with things attached to the doors due to how the container snap points work)

If I'm feeling frisky at some point I may make a variation with doors that close, but then it can only hold whatever I can pack in the compartments.

If you compare the full and empty you'll see what all are snap points currently. Some of other items that don't snap are containers, such as the med kits and ammo boxes. There are 8 containers in this object! (even the top compartment, and each door are separate containers)

Off to the side you can see some other props I assembled.

Question: Should I put the fire extinguisher on the outside? I liked having it outside, but didn't want it to prevent you from sliding the fridge right up next to walls or objects.

P.S. I'm probably not going to make any more lockers for this mod, but I may do another mod later on focused on all lockers, snappable storage items and so on.

u/cyberpsyche_mods — 2 days ago
▲ 328 r/NoSodiumStarfieldMods+1 crossposts

Free Mod WIP - Packing Heat! Gun Lockers including lights and snapping plus more Desk Guns

Updates on Packing Heat progress:

  • Two buildable gun locker styles nearly done including lights, snapping and so on. They feel really good. Been wanting these since I started playing Starfield. (One style pictured)
  • Additional collectibles created including more Desk Guns (A few pictured)
  • Lots of new decor items, from grenade bins, and general arms decor to gun happy Wilby's.
  • All mechanics done, and added sound effects, toast message notifications
  • Skill, recipe, research relationships and structure all fleshed out
  • Gotta work out ingredients for the recipes and research, add some help text, some menu icons
  • Have several testers lined up and ready to go, so we can test the economics and tune things. After a bit of play testing then we would have a release candidate.

I always think things will be faster than they are, so I continually learn, if I think it'll be a week, it'll probably be a few weeks lol. If only life didn't get in the way of my starfielding. I'm extremely picky about quality and polishing out rough edges so it takes me forever. Like the gun lockers above when you close the doors, some light seeps through the cracks and things like that bother me so I'll have to go spend hours messing with the lights.

Thanks all!

If you are like wtf is Packing Heat:

Packing Heat is a free mod (may include an AF version) about gun running that adds a crafting loop for guns to bulk contraband. I'm working on that is near completion. Here is a few previous posts:

https://www.reddit.com/r/NoSodiumStarfieldMods/comments/1uvoker/starfield_mod_wip_progress_packing_heat_guns_to/

https://www.reddit.com/r/starfieldmods/comments/1t13v6i/mod_wip_gun_running_and_weapon_packaging_mod/

P.S. I'm still working on Crimson Escalation (CF radiant mission and POI expansion) and Relics and Wrecks (shipwreck POI exploration) slowly as I finish Packing Heat up.

Small mod I released recently: Configurable Research Cost

u/cyberpsyche_mods — 10 days ago
▲ 66 r/TheSettledSystems+1 crossposts

Spoiler - List of 26 Star Systems and 2 Planets with No Human Presence

https://preview.redd.it/bhip57wjpdhh1.png?width=1055&format=png&auto=webp&s=059f2d82c75d8fbd51565234a77d8e13dd158ee9

Hey! A couple folks requested that I post this info to help others who are curious.

Above is a screen shot from the Creation Kit, these are the systems that include the keyword LocTypeNoHumanPresence, which is used in conditions to prevent the placement of human POIs (not necessarily nature POIs) on planets in those systems. Also it prevents a variety of quests from using these systems and planets. There are 26 such systems without including Serpentis, which includes all planets in those systems.

Serpentis deserves a mention as I believe there is no friendly human presence. It has LocTypeNoHumanPresenceNonHostile which appears to be used in conditions that will restrict civilians from spawning at POIs, and restrict friendly or non-hostile space encounters. So it may still have hostile POIs and hostile space encounters.

https://preview.redd.it/x0mxvr8oqdhh1.png?width=1012&format=png&auto=webp&s=25a88bda5f49c82b8207031fe9e72ddc1732fc31

LocTypeNoHumanPresence is also found explicitly on two planets, Tau Ceti II, Porrima II

LocTypeNoHumanPresenceNonHostile is found on Niira

None of those three systems have the same keywords, so it is explicit to those planets in their systems.

CAVEAT

Keep in mind that quests and systems in the game don't have to check for these keywords, so there may be planets within any of these systems that are exceptions because a quest, mod or anything was intended to spawn a POI or encounter there.

Some mod-added POIs and quests don't properly check for vanilla keywords or conditions so they may spawn POIs anywhere. Most are pretty good about following vanilla patterns.

Other conditions used for POI spawn limit the amount of POIs and encounters that occur the further away you get from the core systems (faction systems involved in the Treaty) and closer to the fringes of the Settled Systems. So, even some of the systems with human presence, can have very little human presence.

THOUGHTS

26 systems out of 120 means about 21.6% of the Settled Systems map have no human presence. With the rest of the systems, 78.4% having some level of human presence, either currently or in the games past before the treaty.

Because we know about them, and have navigation paths to them, I would presume that the 26 systems had some minor exploration or charting however with no settlement of any kind. Essentially they are the fringe systems that humanity reached, but have not settled. That means if you settle in one of those, you may be the first!

FEEDBACK

Other CK junkies, if I missed anything here let me know!

reddit.com
u/cyberpsyche_mods — 16 days ago

Zephyr: A Modified Zenithar from Aevi's Aerospace

I bought the Zenithar, a ghost ship, from Aevi's Aerospace for 2.2m (lol economy mods make my character struggle) and threw on some paint to give it a weathered and worn look. I adjusted weapon positioning, added several radiators and then replaced top 3x1 corridor with a 2x1 cargo hab, plus stairs from SPE for a smooth transition from the front cargo bay to the rear command area. I think the painting and the radiators add a bit of NASApunk and vintage feel that I was wanting. I'm happy with it for now!

I used Aevi's ship mod, which is primarily the habs and the Zenithar ship design, plus I run better ship flips and snaps which helps, and then Stroud Premium Edition for the stairs.

Shout out to Aevi for the amazing free mod! Love that there are PDY patches, Useful Infirmaries and more. Going to plug him here in case anyone hasn't played with the mod yet: Aevi's Aerospace on creations and Aevi's Aerospace on Nexus

My favorite thing about the Zenithar is Aevi put little signs all throughout it which tell you where every area of the ship is, it makes it feel more like an old military or naval ship. The ghost ship lore is cool too.

Really weird coincidence, right after I bought the ship I ran into a derelict with the Pale Lady, and then because I have Out in the Blackness, now I'm dealing with a haunting lol. Aevi told me he didn't put anything in the mod to cause that. What are the odds??

Now I've got to haul some cargo y'all!

Stroud: https://creations.bethesda.net/en/starfield/details/c2587ce5-be5a-4c01-a59c-09fe816d3124/Stroud_Premium_Edition

Better ship flips and snaps:

https://creations.bethesda.net/en/starfield/details/efe6a9cf-f95c-43b9-bae8-51347bdcd6eb/Better_Ship_Part_Flips

https://creations.bethesda.net/en/starfield/details/81dc21ae-e497-441b-aaf9-b44b923d1401/Better_Ship_Part_Snaps

u/cyberpsyche_mods — 17 days ago
▲ 129 r/NoSodiumStarfieldMods+1 crossposts

Free Mod WIP - Update, left-facing gun racks, collectible miniature guns, tuning economics - Packing Heat

Updates on Packing Heat progress

Left-facing gun racks and mounts: Great suggestion from Laylowmoe on Discord! I added and tested left-facing gun racks. I'll also do the same for some of the other smaller gun mounts.

Miniature guns: Something that wasn't planned but popped into my head the other day. I built these out as collectibles you can find them throughout common dungeons. When you find one, it unlocks the recipe so you can then build it from the decorator. These are teeny tiny versions of base game guns. About the size of a Terrabrew cup. If I have the attention span I will make one for every gun. I set these up to only spawn the guns you haven't found yet so we don't run into that issue folks have with the Free Lanes collectibles that end up with a lot of repeats.

Other updates: I'm tuning the economics now for the main guns-to-crates loop in the mod, as well still working through many decorations, such as bins of grenades, toilets filled with landmines, various weapon racks, etc. Tuning the economics is actually pretty challenging as there is a very uneven distribution of gear found in each POI. For example you might find 1000cr of explosives in a POI compared to 40000cr worth of rifles, and 2000cr worth of shotguns. Translating that to crate sizes, and potential profit margins as you unlock benches, and additional crate recipes. I don't want this to be a money printer, but I want it to be worthwhile, and play well with vanilla or economy mods, so it is tricky.

I'm super excited for people to play this mod I'm putting a lot of love into it.

If you are like wtf is Packing Heat:

Packing Heat is a free mod (may include an AF version) about gun running. I'm working on that is near completion. Here is a few previous posts:

https://www.reddit.com/r/NoSodiumStarfieldMods/comments/1uvoker/starfield_mod_wip_progress_packing_heat_guns_to/

https://www.reddit.com/r/starfieldmods/comments/1t13v6i/mod_wip_gun_running_and_weapon_packaging_mod/

P.S. I'm still working on Crimson Escalation (CF radiant mission and POI expansion) and Relics and Wrecks (shipwreck POI exploration) slowly as I finish Packing Heat up.

Mod I released recently: Configurable Research Cost

u/cyberpsyche_mods — 29 days ago
▲ 54 r/NoSodiumStarfieldMods+1 crossposts

Starfield Mod WIP progress - Packing Heat - Guns to contraband crates!

Howdy! I'm getting close on this one. This will be my first release after I was accepted into the VC program. The mod will be free, along with a AF version later on if approved. Hoping to make available to all platforms.

A work in progress mod. I have a lot done, but it still needs some additional mechanics and a lot of playtesting to tune the economics. This quick video is showing the basic workflow of converting a category of weapons to parts, and parts to contraband crates for increased resell value at a small increased risk. I will be adding a number of other features including, gun runner decor items unlocked along with the benches, as well as multiple tiers of crates that require additional resources to squeeze out more profit, and potentially a simple radiant mission system for selling opportunities that are riskier than selling to trade authority.

Shout out to the authors of StarUI, AstralUI and Honkcore UI mods and any others I missed as I'm using those in this video.

youtu.be
u/cyberpsyche_mods — 1 month ago

How Starfield ships could have enough oxygen

I was playing and thinking how the heck could these ships carry enough oxygen, or the habs on worlds with no oxygen.

Turns out you create the oxygen! I won't spoil the video though.

The more I play Starfield the more questions I have about space and it's fun to look up how things currently work and for the more scifi elements to lookup speculation on how things may work in the future.

youtu.be
u/cyberpsyche_mods — 1 month ago

Shooting oxygen tanks in real life seems pretty similar to Starfield

When they go off it looks almost just like Starfield to me. They were however more bullet resistant than I expected.

Shooting those tanks is one of my favorite things in the game lol, I'm a simple man.

The one at the very end reminded me the most of how bouncy they are in Starfield. Zoom!

youtube.com
u/cyberpsyche_mods — 2 months ago

Hadrian creeping me out

I turned around to see if she was following me. Her eyes look pretty awesome in the light, but also it was creepy.

u/cyberpsyche_mods — 2 months ago

xEdit 4.1.5q released - including many Starfield updates

ElminsterAU and team released a new version including the updates for Starfield! Download link is at the bottom of the actual discord message. Link above links to the message on xEdit discord channel.

Below is copy paste of the text only from the discord post.

What's New in xEdit 4.1.5q?

TL;DR

Development continues with ~250 commits since 4.1.5p, focused on Starfield .esp editing and small/medium master support, a major Referenced By tab overhaul, regular-expression filtering, BSArch Xbox-texture and compression-library work, and a large Fallout 76 record expansion.

Key highlights

  • Starfield - .esp editing is now enabled (with restrictions), including editing of modules that use small or medium masters; modules with a blueprint master can't be saved, and blueprints can't be masters
  • Referenced By tab overhaul - filtering, sticky/column sorting, alt-navigation, Ctrl+A select-all, and selection counts
  • Regular-expression (PerlRegex) filtering in the main window, module selection, and view filter, with a typing delay
  • BSArch/Archive - Xbox texture support, Find Identical Assets, shared-file space reporting, and integration of libdeflate/lz4/xxHash as submodules
  • Fallout 76 - large record/subrecord expansion (new TEPF, TRAP, and CMPT records; Enlighten, rewards, and many decoded fields) plus updated Form/HEDR versions
  • Starfield - Freelanes updates, Reflection organization, and recent-DLC record additions
  • Scripting - new wbSelectedFiles, TStrings extensions, ScriptProcessSignatures, and an adapter refactor for faster host-function dispatch
  • SNIFF - new operations (Find Textures, Merge Properties, Transform Information), Xbox texture and .BSA/.BA2 support, and many fixer/tweaker additions

Contributors

robertgk2017, Jonathan Ostrus (jbostrus), eckserah, Bobbyclue, fireundubh, Cecell, ElminsterAU, sibir, sheson, c6, GammaMetroid, and thanks to Cobb and Ianpatt for assistance.

Bugfixes

  • Fix access violation in the DIAL/DLBR/DLVW branch-quest reachability error check (null QNAM or unresolved quest)
  • Ensure ChildGroups are removed when a containing MainRecord is removed
  • [FO4] Don't remove XWEM on Fallout 4 - the engine reuses that subrecord for an unrelated purpose
  • Fix DoubleBuffered handling for UI controls (VirtualTrees)
  • Reset a union's result to its Default Value (and update sibling unions) when switching the active member
  • Implement dfHasZeroTerminator handling for TwbStringDef
  • Fix REGN RDAT type lookup to walk up to the Region Data Entry container
  • [TES4] Fix ESM ordering
  • [TES3] Fix Less/Greater-than operators being reversed in the INFO condition enum

Major Features

Starfield - .esp editing and small/medium master support (contributed by Jonathan Ostrus and robertgk2017)

  • Starfield .esp editing is now enabled, with restrictions: an .esp may be loaded as a master for editing but cannot be saved as a master, and the small/medium flags cannot be set on .esps
  • Edit modules that are, or use, small or medium masters; setting or removing the small/medium flag within xEdit is intentionally disabled (changing a published master's flag is destructive - export from the Creation Kit instead)
  • Support Starfield's larger master limits - up to 252 full, 4095 light, and 254 medium masters in one file
  • Master removal/cleaning reworked: the engine requires the full master chain, so adding a master also adds its required up-chain masters, and those are no longer removed during cleaning (other games are unchanged)
  • Disallow saving modules that have a blueprint master; blueprints may not be masters to other modules
  • Disable creating Update files in Starfield until they are supported

Referenced By tab (contributed by Jonathan Ostrus)

  • Added filtering of the Referenced By list, plus alt navigation and Ctrl+A to select all (#829, #851)
  • New sorting: click the Record column to sort by the displayed name, click again to sort by the fully-qualified load-order FormID; click the File column to sort by the displayed "[index] name", click again for the raw filename
  • Hold Ctrl while clicking a column header to reverse the sort; a chevron in the caption shows the direction
  • The caption now shows counts, e.g. "Referenced By (45 / F: 10 / S: 1)" - total / visible after filter / selected
  • Show the selected count on the 'Compare Selected' popup-menu entry (#851)

Regular-expression filtering (contributed by robertgk2017 and Jonathan Ostrus)

  • Added PerlRegex support for filters
  • Regular-expression filtering in the main window and module-selection file filter boxes
  • Added a typing delay so the view filter no longer reapplies on every keystroke
  • The Enter key now starts filtering from any element on the filter form

Other

  • Add invalid-filename character detection (contributed by Jonathan Ostrus)
  • New non-template modules now also receive the game master when Always Load Game Master is set (contributed by Jonathan Ostrus)
  • Container Item summaries now surface the referenced FormID as a clickable link (e.g. '5x ItemName'); Component summaries likewise in FO4/FO76 (contributed by Jonathan Ostrus)
  • Strip a typed plugin extension from new-file input so 'MyMod.esp' no longer becomes 'MyMod.esp.esp' (contributed by Cecell and Jonathan Ostrus)
  • Add a game-mode selection dialog instead of forcing the Fallout 4 default (contributed by Jonathan Ostrus)
  • Log which masters are removed during Clean Masters (contributed by Jonathan Ostrus)
  • Master handling for non-Starfield games: an option to require the full master hierarchy when adding a master, and the EnforceAllMasters CLI argument to apply that enforcement to any game mode (contributed by Jonathan Ostrus)
  • Replace TMemo with TRichEdit in three bundled edit-script dialogs (Assets Browser, NIF batch texture replacement, RegEx Workbench), where TMemo is aliased to TSynMemo (contributed by sheson)
  • Integrate libdeflate, lz4, and xxHash as Git submodules for archive compression/hashing

Definition Updates

All Games

  • CELL \ DATA - Update flags (FO3/FNV/TES5/FO4/FO76/SF1)
  • REFR \ XPRM - Make defs consistent across games (FO3/FNV/TES5/FO4/FO76/SF1)
  • REFR \ XAPD - Convert Parent Activate Only to Boolean (FNV/TES5/FO4/FO76)
  • REGN \ RDAT - Make the last 2 bytes wbUnused(2) (FO3/FNV/TES5/FO4/FO76/SF1)
  • File Header \ ONAM - Make dfCollapsed and dfExcludeFromBuildRef (FO3/FNV/TES5/FO4/FO76/SF1)
  • DIAL \ INOM/INOA - Make dfCollapsed
  • DIAL/DLBR/DLVW - Reachability adjustments and a new error check (TES5/FO4/FO76/SF1)
  • SCEN \ VMAD - Sort Phase Fragments, which the CK writes in random order (TES5/FO4/FO76/SF1)
  • wbConditions \ IsOwner - Display the Player when the Owner parameter is NULL (confirmed by Ianpatt)
  • Preserve a single space in dialogue text
  • MESG - Update defs and move shared callbacks to Common
  • SOUND \ SDSC - Make Required and disallow NULL, verified against the CK (TES5/FO4/FO76)
  • INFO \ ENAM \ Reset Hours - Set float digits to 2 (TES5/FO4/FO76/SF1)
  • IDLE \ DATA \ Flags - Rename Parent to Loose, confirmed by Cobb (TES5/FO4/FO76)
  • PERK \ Effects \ DATA - Quest Stage is a 2-byte integer (FO3/FNV/TES5)
  • QUST \ Aliases - Update Fill Type handling; add error detection for non-optional unfilled aliases and event-started quests missing from the Story Manager (TES5/FO4/FO76/SF1)
  • HDPT - Updates (TES5/FO4/FO76/SF1)
  • PACK \ PSDT - Fix the schedule enum for form version >= 122 and make the definition consistent across games (contributed by Jonathan Ostrus)

Common

  • MODT - 3rd Counter is SRGB Count
  • WTHR \ Cloud Textures - Add back missing layers #29-#31 (M0TX/N0TX/O0TX) (contributed by Jonathan Ostrus)
  • Refactor LSCR/LNAM into shared Common defs - TES4/FO3/FNV (contributed by sibir)
  • wbEnchantment - Add dfStructFirstNotRequired
  • wbLandLayers - Switch AfterLoad to ToStr to show the default landscape texture used
  • Add TwbDivFDef class
  • VMAD - Move shared functions to Common (TES5/FO4/FO76/SF1)
  • Move LGDI rank handling to Common defs (contributed by Jonathan Ostrus)
  • Convert Common variables to functions (removes the DefineCommon procedure)
  • Remove redundant wbPosRot/wbDATAPosRot aliases in favor of wbVec3PosRot
  • Move two functions from wbImplementation to wbInterface to break a unit-dependency cycle

TES4

  • CSTY \ CSTD - Fix OptionalFrom
  • wbConditionVariableNameToInt - Fix exceptions/handling (TES4/FO3/FNV)

FO3/FNV

  • Update the FO3 condition function list (contributed by c6)
  • EXPL - Add a missing flag and cleanup
  • RCCT \ DATA - Convert to Boolean with AfterLoad to hide unused bits (FNV)

TES5

  • BOOK - Update data flags AfterSet; BOOK/LIGH handling cleanup
  • PERK \ Effects - Alignment fix
  • FACT \ DATA - Update flags list
  • LIGH \ DATA \ Flags - Add Flag 15 (Linear) for Community Shaders
  • REFR \ Water Current Velocities - Add a missing Union name; make water-current defs consistent across TES5/FO4/FO76
  • NNAM is not required - setting the Loading Screen NIF to NONE in the CK removes NNAM entirely (TES5/FO4) (contributed by sibir)
  • WEAP - Decode the Embedded Weapon flag, node, and Actor Value, previously marked unused (#1491, contributed by GammaMetroid)

FO4

  • BNDS \ DNAM - Change default values from Edit to Native (fixes copying as override)
  • MESG \ TNAM - Should not be marked required

FO4/FO76

  • IMAD \ Depth Of Field - Add a Form Version check for NAM5 and NAM6
  • wbOBTSReq - Set Include/Property Count as cpBenign (also OMOD)

FO4/FO76/SF1

  • NOCM - Add EDID, SetRequired/DefaultEditValue, and match the corrected FO76 structure
  • INNR \ Naming Rules \ Ruleset \ Count - Make cpBenign and dfSkipImplicitEdit

FO76

  • Add the new TEPF record type
  • Large record/subrecord expansion (contributed by eckserah; also touches Fallout 4 and shared Common defs):
  • New records: TRAP and CMPT (Camp Title); the existing PLYR (Player Reference) gained Base and position/rotation fields; plus many newly decoded subrecords
  • Rewards (XPCT/CODG), Enlighten (ENLM/ENLT/ENLS), Auto UV (AUUV), Physics Sync (PHST), and DMGT status subrecords
  • Additional blend modes, ZTestFunc values, and template flags (shared Common defs); ACBS (FO4 + FO76 NPC_) and LVLI flag updates
  • New challenge types, keyword/icon types, and DEST stage handling
  • BPVB - Move to the end of the Body Part struct
  • CELL VISI and wbAmbientColors fixes; updated QUST info (contributed by eckserah)
  • Update Form and HEDR versions; decode a few more unknowns

SF1

  • Reflection support organization; recent-DLC sub-records added (some still unknown); Form Version is now 581
  • Freelanes updates (contributed by Bobbyclue, robertgk2017, and Jonathan Ostrus): a new condition, a perk entry point and entry function type, BGSAdaptiveTriggerData/BGSQualityUpgrade components, package groups, terminal backgrounds, and a REFR FNAM flag
  • New records GWED (Gravity Wielder Effect Data) and TDED (Track Damage Effect Data), with matching MGEF archetypes (Gravity Wielder, Track Damage) linked via Assoc. Item
  • SCEN struct fixes; LGDI - define rank/quality tiers and handling (keywords, re-roll/pick and quality-upgrade costs) (contributed by Jonathan Ostrus)
  • PERK \ PRUC - Define as Quantum Essence Upgrade Cost (contributed by Jonathan Ostrus and Bobbyclue)
  • Decode perk upgrade challenges - small tweaks are supported, but full editing is best done in the Creation Kit (the JSON keys can be confusing) (contributed by Jonathan Ostrus)
  • TERM Art Theme - correct terminal-background indices (Terran Armada is now 11) (contributed by robertgk2017 and Jonathan Ostrus)
  • Fix Location Alias fill-type name; QUST Reference Alias - add a Match Conditions named struct
  • Add the new DLC .esm files to the DLC list
  • Add a Geometries root asset folder for Starfield .mesh files

Scripting

  • Add wbSelectedFiles and several TStrings/TStringList extension methods (AddPair, Contains, LoadFromFile/SaveToFile, and more) (contributed by fireundubh), and update wbSelectedFilesToFileNames to return file objects and support group nodes (contributed by Jonathan Ostrus)
  • Add the ScriptProcessSignatures variable to restrict Process() to a comma-separated signature list, main records only (contributed by Jonathan Ostrus)
  • Expose IwbElement.ContainingSubRecord and TwbAsset.AssetTypeByExtension/Folder
  • Replace wbNormalizeResourceName with TwbAsset.GetAssetName
  • Skip empty Initialize/Process/Finalize functions; sort procedure implementations and registration calls (contributed by fireundubh)
  • Refactor the script adapter into interface-specific units with O(1) hash-based host-function dispatch (contributed by fireundubh)
  • Add missing declarations and fix argument lists in the scripting API reference (xEditAPI.pas) (contributed by Jonathan Ostrus)
  • [Assets Manager] Refactor onto the new TwbAsset class with optimizations; Oblivion book-image handling; Skyrim NPC FaceGen .nif detection now respects template/CharGen flags and the race FaceGen Head flag; don't report RACE .egt files on Skyrim; Papyrus source handling fixes
  • [Undelete and Disable References] Move undeleted references to Z = -30000 and set their enable parent to the player ($14) with the opposite-of-parent flag

SNIFF

  • Update to version 1.9.2
  • Reorganized operations: added Find Textures, Merge Properties, and Transform Information; reworked Havok Search Material; added an operation-list filter; removed several standalone operations (Change Partition Slot, Find Several Strips, Priority of Controlled Blocks, Rename Controlled Blocks, Rename Strings)
  • Add support for .BSA/.BA2 archives, and for Xbox textures in Find Textures
  • [Universal Fixer] Fix bhkCollisionObject flags; stricter Solver Deactivation for clutter/related collision layers; remove non-standard and control (0..31) characters from texture paths; remove the Set_Local flag when unneeded; fix Accum Root Name on NiControllerSequences
  • [Universal Tweaker] Add "Round" and "Mul and Round" options (round, or multiply by a value then round the result)
  • [Check For Errors] Expanded checks - collision/MOPP and collision order, multiple-strip geometry, _0/_1.nif morph-model mismatches, vertex-color alpha/HDR, invalid SHADER_NOLIGHTING, invalid Manager/Accum Root Name on NiControllerSequence, and zero ragdoll Cone Max Angle (jittering)
  • [Optimize Animations] Support .nif files, not just .kf
  • [Update Havok Inertia] Handle Compressed Mesh Chunks that are not tied to a Chunk Transform
  • [Update Ragdoll Constraint] Option to convert all constraints to bhkMalleableConstraint
  • [Apply Transforms] Skip the root block; remove bad handling of skinned BSTriShapes
  • [Unskin Mesh] Ignore BSTriShapes
  • [Vertex Color Painting] Add a shape-name filter and skip-color option; fix loop control in Remove mode
  • [Copy Geometry Blocks] Optionally copy shader data and texture set
  • [Real Time Reflections] Add a Blend Intensity setting
  • [Add NiLODNode] Choose between NiRangeLODData and NiScreenLODData
  • [Havok Information] Selectable list for additional fields
  • Particle-system handling and consistency-flag fixes; bhkCMSDChunk field-name updates
  • Move Windows-version detection to MSHeap

BSArch

  • Add Xbox texture support: BSArch unpacks Xbox-format textures (shared core); BSArchPro also packs and converts PC textures to Xbox format
  • Add a Find Identical Assets function (find duplicate files)
  • Account for and show shared-file count and saved space when packing; sort identical files first
  • Support packing from multiple sources combined with '+' (including existing .BSA/.BA2 archives), enabling archive merge/override workflows
  • Support split archive packing by size (-split:N GB), producing numbered archives when the limit is exceeded
  • Add a Filter argument to selectively pack assets by name or extension
  • Set Compressed where applicable; fix the compression type per game mode; handle empty and NOR error texture paths in .nifs
  • The pack '-z' flag now accepts a compression type (-z:zlib|lz4|lz4f); omitting the type uses the game default
  • Fix File/Folder hashing in games pre-Skyrim
  • Return a non-zero exit code on error; fix a false DDS warning (BSArchPro)
  • Fix luminance DDS texture-format detection
discord.com
u/cyberpsyche_mods — 2 months ago

Essential mod! Smooth ship power slowmo

Just wanted to shout out Checker90 for this mod. Been using it a while now and when I started my last run I forgot to add it back. Quickly noticed it missing!

It gives you slowmo while changing your ship power allocation. Very simple, but can be both cinematic and essential if you like to play lasers, ballistics and EM.

creations.bethesda.net
u/cyberpsyche_mods — 3 months ago
▲ 23 r/StarfieldCreationKit+1 crossposts

Powershell script to process SEF extended pointer handle dumps into a readable summary in CSV

Hey all!

I was checking pointer handles allocated by my load order and wanted a quick summary, as the dump file is massive.

This script is intended for processing the extended dump that Starfield Engine Fixes can provide. This processes a dump generated with these SEF options.

bDumpPointerHandlesConsoleFunction=1
bDumpPointerHandlesExtendedPluginInfo=1

After you generate your dump from the console (dph command), then you can run this powershell script on the dump file

param(
    [string]$InputFile,
    [string]$CsvOutputFile = "reference-counts.csv"
)

$plugin = $null
$rows = @()

Get-Content $InputFile | ForEach-Object {
    $line = $_

    # Extract total Reference Handle Count
    if ($line -match 'Reference Handle Count:\s*(\d+)') {
        $rows += [PSCustomObject]@{
            PluginName         = "TOTAL COUNT"
            TotalCount         = [int]$matches[1]
            EditorDefinedCount = $null
            PersistentCount    = $null
        }
    }

    # Track current plugin
    if ($line -match '-> Exporting:\s*(.+)$') {
        $plugin = $matches[1].Trim()
    }

    # Extract plugin-specific counts
    if ($line -match '-> Number of loaded References originate from the plugin:\s*(\d+)\s*\(of which\s*(\d+)\s*are editor defined;\s*(\d+)\s*are persistent\)') {
        if ($plugin) {
            $rows += [PSCustomObject]@{
                PluginName         = $plugin
                TotalCount         = [int]$matches[1]
                EditorDefinedCount = [int]$matches[2]
                PersistentCount    = [int]$matches[3]
            }
        }
    }
}

$rows | Export-Csv $CsvOutputFile -NoTypeInformation

Usage:

.\ProcessExtendedDumpScript.ps1 DumpFile.txt

Running this script may require you to temporarily change your PS execution policy.

* IMPORTANT: You should never run scripts from strangers on the internet without verifying the safety of the script, especially if your OS blocks execution by default.

* Research and learn, ask your IT friend or your AI to help you verify safety of the script, and how to bypass your policy if necessary.

If you run the script, the results will look like this: (excerpt)

"PluginName","TotalCount","EditorDefinedCount","PersistentCount"
"TOTAL COUNT","1624278",,
"Starfield.esm","679636","514984","54721"
"ShatteredSpace.esm","100154","95257","9168"
"SFBGS00D.esm","66453","61871","3938"

Which is easy to read, but you can then open in Excel and make it as fancy as you want, or have your AI make it pretty for you.

Notes:

* My understanding is it is best to dump from Starfields main menu before loading any save, that way you are looking at all loaded ESMs total allocated reference handles without being confused by temp handles allocated when loading into a location
* For comparison, then also go dump at New Atlantis in a new vanilla save as that should likely be the location in the game with highest temporary handles and you want to see what that spike will be on top of your LO, especially if you have mods that add to NA. I think its going to be around 200k in vanilla.
* Don't ask me to help you interpret your counts, I was just trying to make the output readable, I'm still not sure I completely understand the difference between the total count, editor defined and persistent.

reddit.com
u/cyberpsyche_mods — 3 months ago

Mission board tech support, how may I help you? Mhmm, I see, you got a Listening Post again?

I think the headpiece is from zones crowd overhaul. I like all the little bits and pieces on the outfits.

It actually goes into his nostrils and isn't a mouth piece, but it looked like one from this angle and for some reason it made me laugh thinking about how there would have to be some tech support team for all these mission boards.

u/cyberpsyche_mods — 3 months ago
▲ 272 r/NoSodiumStarfieldMods+1 crossposts

Mod WIP progress - Packing Heat - a gun running and weapon contraband mod

Another progress update. I've also decided to go with the name Packing Heat instead of Blackmarket Bundles as the name is a bit more unique to search for, and the word Bundles is often used to referred to combined mods or other bundling type things.

For a description of the mod see my original post https://www.reddit.com/r/starfieldmods/comments/1t13v6i/mod_wip_gun_running_and_weapon_packaging_mod/

Some other random shots here: https://www.reddit.com/r/Starfield/comments/1t5sxso/starfield_art_assets_allow_amazing_creativity_in/

In the screenshots on this post you can see I've added the disassembly benches for shotguns and heavy weapons, as well as explosives.

I've also started a bit more testing with decor to see how they fit in space-wise and get sizing down. (my goal is for all the benches together to create sort of a small workshop, but I will have some micro bench variants so you can "build your own" benches)

Thanks to Miss O for her Let There Be Lights mod which is allowing me to good lighting in-game and is great for screenshots!

Next I'm working on the melee weapons bench and the crate packing station, recipes, creating some new gun runner decor and then a lot of playtesting to get the economics tuned in for vanilla play (and considering some economy mods that lower the value of guns a lot, which I play with).

I'm excited about this!

u/cyberpsyche_mods — 3 months ago
▲ 64 r/NoSodiumStarfieldMods+1 crossposts

Release on Creations and Nexus: Configurable Research Cost

Hey all! I wanted to release this small tweak I have been playing with:

Configurable Research Cost on Creations

Configurable Research Cost on Nexus

What it does:

  • Provides a gameplay option to decrease or increase the quantity of resources you need to complete research projects.
  • Configurable at anytime, so if you don't like your setting you can change it.
  • Behind the scenes uses a similar setup as a synapse chem and should be compatible with just about anything as I'm not directly editing any research cost. Small master, load order neutral.

Why?

  • Increase? For those that like to slow the pace a little bit. Research feels trivial in vanilla, at 2x, 4x or 8x it requires a little more thought, you'll need to buy more, mine more, or scavenge more. Chems like Synapse Alpha, and skills like Research Method feel more impactful.
  • Decrease? For those that want it to go a little faster!
  • Try it out? Decide you don't like it? Just set it back to vanilla, or try a different value.

The exact levels provided are:

  • Extreme Low = 0.25x
  • Very Low = 0.50x
  • Low = 0.75x
  • Vanilla default
  • High = 2x
  • Very High = 4x
  • Extreme High = 8x

More details on the mod pages. Thank you all!

u/cyberpsyche_mods — 3 months ago

I love seeing a cool planet through the ship windows!

I've started to enjoy having many more windows on ships lately, its fun to see out of them in space during cruise mode, or else when you land to take a peek at what planet you are about to jump out on.

u/cyberpsyche_mods — 3 months ago

Solved on PC - Micro-stutter while landed at some POIs and planets

TL;DR: If you are on PC, running Starfield Engine Fixes with bEngineLoadOptimizer=1 solves some types of stutter.

I was having a very slight stutter in framerate every few seconds (accompanied by very mild color shift sometimes) while on land, at certain POIs, planets and usually while near my home ship. This happened with some ships and not others.

I remembered that I had this early on in vanilla and I believed it had went away after starting to use Starfield Engine Fixes based on recommendations from others. Due to the base game update the other day I had disabled Starfield Engine Fixes temporarily, but saw the mod was updated today. Decided to throw it back in!

I installed SEF again and set:

bEngineLoadOptimizer=1

Deployed the mod, and all was good again! No stutter, smooth sailing.

Sharing in the hopes this helps some others who are searching for a solution to stutter.

reddit.com
u/cyberpsyche_mods — 3 months ago
▲ 33 r/StarfieldCreationKit+1 crossposts

Starfield Creation Kit Tutorial - Quick edit Layered Material Swaps by scrolling

Hey all! Trying my hand at video tutorials. This is my first one, just got setup with my tooling so I'll have to refine as I go along.

This tutorial shows you how to quickly edit layered material swaps on statics and packins when editing in the render window, using some handy hotkeys!

Basically, change the color and texture of objects quickly when they have prebuilt options to do so.

Most of my tutorials will be on CK basics, and then some specifics around POIs and dungeon setup.

youtube.com
u/cyberpsyche_mods — 3 months ago
▲ 108 r/StarfieldCreationKit+2 crossposts

Free Lanes update brought randomized loot placement to many locations

Good news! Hadn't seen anyone mentioned this yet, and I'm not sure it was mentioned in any of the official change logs.

It looks like how it works is the loot on a map (or any item really) is assigned into three groups. One of which will be randomly enabled when the map loads, and the rest will be disabled (not visible for players)

So if you noticed the placement and variety of loot differing on many of the new POIs you were not crazy!

Observations:

  • I didn't see this added to any old locations, so it only appears to be the new POIs.
  • Some key loot like boss chests are not included in the random placement, which makes sense to me. If you wanted to do something like that and make it make sense you would need to design locations around that which adds more complexity. That is because you want the boss near the boss chest and levels often are designed to flow a particular way around a boss location/boss fight if they are combat focused.
  • In some maps it seems like the three groups of loot are sort of a low, med, high value loot type arrangement. I haven't looked at a ton of the maps though so could just be the way I'm interpreting the loot selection.
  • The three groups of items to enable/disable include lootable things such as credsticks, containers and displays of all kinds, corpses, and some associated things such as blood decals associated with the corpses/scenery and stuff.

Technical, for mod authors, if you want to inspect:

  • Look for the SFBGS00D_RandomizeDummy activator in a cell on a map, this has a script which performs the random roll OnCellLoad, and chooses a set (number is set by property) number of enable markers to enable. The markers are in a linkref chain. I recommend looking at the script, although I don't think it de-compiles fully via Champollion.
  • Right click SFBGS00D_RandomizeDummy in the object window and look at Use Info to see every location using it currently.
  • To see all the loot in a given group, right click an enable marker, and choose Select Enable State Children. Set your cell view to Selected, (keep in mind cell view only shows you whats in the current cell, not the whole map in an exterior worldspace)

If you want to add it or use it to your POI:

  • There is a packin that has the "kit" of the activator and enable markers, already linked up. "SFBGS00D_RandomizerPackin" to make it easier to place.
  • Looks like you would drop this in, then select groups of loot and items, use batch reference actions to set enable parents on those items to one of the three enable markers, rinse and repeat. At a glance I think that is it?
  • I haven't tested any of this out on a custom POI yet, but I will soon!
u/cyberpsyche_mods — 3 months ago

Hey all!

I was making a fix for the ship builder crashes from the Terran Armada couch and I learned a bit. Uploaded a fix as well!

After lots of testing to verify, it looks like having more than one OutpostGroupPackinDummy REFRs in the Instanced Packin for your constructible object results in a ship builder crash after trying to edit a ship with one of those packins in it.

Multiple other authors acknowledged this is a known source of crashes, and since I also confirmed it with testing I wanted to share. I try to never spread misinformation so if I get any details wrong here, please chime in.

Below is an xedit script written by twenty rounds with ChatGPT Codex and myself that will scan through packin cells in an ESM and look for any with more than one dummy. It provides a bit of other additional information as well.

Log output looks like in the screenshot, which is the run on SFBGSS050.esm. You'll notice it found multiple dummies in a couple of unused packins, as well as another buildable, but that other buildable is Instanced Static and in my testing doesn't cause a crash there.

Once you identify the packin cells you need to go find the associated packins, edit them and remove the dummies. How to do all that is far outside the scope of this post.

tl;dr don't leave multiple dummies in instanced packins that will be used as buildables in ships. (probably don't want them in hab packins there but I couldn't reproduce a crash with it in the hab packins themselves)

unit userscript;

{
  Starfield xEdit scanner.

  Run:
    Right-click an ESM/ESP in the left pane
    Apply Script
    Select this script

  Purpose:
    Find PackIn* CELLs in the selected plugin that contain more than one
    placed REFR whose base object is OutpostGroupPackinDummy.

  This version processes REFR records directly.
}

const
  TargetCellPrefixLower = 'packin';
  TargetBaseEditorID = 'OutpostGroupPackinDummy';
  TargetBaseFixedFormID = $00015804;

  // Set False if you only want active/non-deleted refs.
  CountDeletedRefs = True;

  // Debug limits.
  MaxTargetRefDebugLogs = 100;

var
  TotalRecordsProcessed: Integer;
  TotalRefsProcessed: Integer;
  TotalTargetRefsFound: Integer;
  TotalPackinTargetRefsFound: Integer;
  TotalDeletedTargetRefsFound: Integer;
  DebugTargetRefLogs: Integer;

  CellKeys: TStringList;
  CellCounts: TStringList;
  CellFirstRef: TStringList;

function BoolString(b: Boolean): string;
begin
  if b then
    Result := 'True'
  else
    Result := 'False';
end;

function ContainsInsensitive(s, part: string): Boolean;
begin
  Result := Pos(LowerCase(part), LowerCase(s)) > 0;
end;

function StartsWithInsensitive(s, prefixLower: string): Boolean;
var
  sLower: string;
begin
  Result := False;

  if Length(s) < Length(prefixLower) then
    Exit;

  sLower := LowerCase(Copy(s, 1, Length(prefixLower)));

  if sLower = prefixLower then
    Result := True;
end;

function BaseMatchesTarget(baseObj: IInterface): Boolean;
var
  baseEdid: string;
  baseName: string;
  baseFixedID: Cardinal;
begin
  Result := False;

  if not Assigned(baseObj) then
    Exit;

  baseEdid := EditorID(baseObj);
  baseName := Name(baseObj);
  baseFixedID := FixedFormID(baseObj);

  if baseEdid = TargetBaseEditorID then begin
    Result := True;
    Exit;
  end;

  if baseFixedID = TargetBaseFixedFormID then begin
    Result := True;
    Exit;
  end;

  if ContainsInsensitive(baseName, TargetBaseEditorID) then begin
    Result := True;
    Exit;
  end;
end;

function IsTargetDummyRef(refRec: IInterface): Boolean;
var
  baseObj: IInterface;
begin
  Result := False;

  if Signature(refRec) <> 'REFR' then
    Exit;

  if GetIsDeleted(refRec) and not CountDeletedRefs then
    Exit;

  baseObj := LinksTo(ElementByPath(refRec, 'NAME'));
  if not Assigned(baseObj) then
    Exit;

  if BaseMatchesTarget(baseObj) then
    Result := True;
end;

function ExtractCellFromRefName(refRec: IInterface): string;
var
  s: string;
  pCell: Integer;
  pStart: Integer;
begin
  Result := '';

  {
    Known Starfield xEdit format from your test:

      [REFR:020838B9] (in PackInSFBGS037ElevatedCabinDesignerCouchStorageCell [CELL:02083804])

    We want:

      PackInSFBGS037ElevatedCabinDesignerCouchStorageCell
  }

  s := Name(refRec);

  pCell := Pos(' [CELL:', s);
  if pCell = 0 then
    Exit;

  // Most common observed format: "(in CellName [CELL:...])"
  pStart := Pos('(in ', s);
  if pStart > 0 then begin
    Result := Copy(s, pStart + 4, pCell - (pStart + 4));
    Exit;
  end;

  // Fallback for alternate format: " in CellName [CELL:...]"
  pStart := Pos(' in ', s);
  if pStart > 0 then begin
    Result := Copy(s, pStart + 4, pCell - (pStart + 4));
    Exit;
  end;
end;

procedure AddCellHit(cellKey: string; refName: string);
var
  idx: Integer;
  count: Integer;
begin
  idx := CellKeys.IndexOf(cellKey);

  if idx = -1 then begin
    CellKeys.Add(cellKey);
    CellCounts.Add('1');
    CellFirstRef.Add(refName);
  end
  else begin
    count := StrToInt(CellCounts[idx]);
    Inc(count);
    CellCounts[idx] := IntToStr(count);
  end;
end;

function Initialize: Integer;
begin
  TotalRecordsProcessed := 0;
  TotalRefsProcessed := 0;
  TotalTargetRefsFound := 0;
  TotalPackinTargetRefsFound := 0;
  TotalDeletedTargetRefsFound := 0;
  DebugTargetRefLogs := 0;

  CellKeys := TStringList.Create;
  CellCounts := TStringList.Create;
  CellFirstRef := TStringList.Create;

  AddMessage('Starting REFR-based scan...');
  AddMessage('Looking for REFRs with base object: ' + TargetBaseEditorID);
  AddMessage('Target fixed FormID fallback: ' + IntToHex(TargetBaseFixedFormID, 8));
  AddMessage('Only counting refs whose parent cell name starts with PackIn / Packin / packin.');
  AddMessage('Count deleted refs: ' + BoolString(CountDeletedRefs));
  AddMessage('This version processes REFR records directly.');

  Result := 0;
end;

function Process(e: IInterface): Integer;
var
  cellName: string;
begin
  Result := 0;

  Inc(TotalRecordsProcessed);

  if Signature(e) <> 'REFR' then
    Exit;

  Inc(TotalRefsProcessed);

  if not IsTargetDummyRef(e) then
    Exit;

  Inc(TotalTargetRefsFound);

  if GetIsDeleted(e) then
    Inc(TotalDeletedTargetRefsFound);

  cellName := ExtractCellFromRefName(e);

  if DebugTargetRefLogs < MaxTargetRefDebugLogs then begin
    Inc(DebugTargetRefLogs);
    AddMessage(
      'Target dummy REFR found #' + IntToStr(DebugTargetRefLogs) +
      ' | Deleted: ' + BoolString(GetIsDeleted(e)) +
      ' | Cell: "' + cellName + '"' +
      ' | Ref: ' + Name(e)
    );
  end;

  if cellName = '' then
    Exit;

  if not StartsWithInsensitive(cellName, TargetCellPrefixLower) then
    Exit;

  Inc(TotalPackinTargetRefsFound);

  AddCellHit(cellName, Name(e));
end;

function Finalize: Integer;
var
  i: Integer;
  count: Integer;
  matchedCells: Integer;
begin
  matchedCells := 0;

  AddMessage('Scan complete.');
  AddMessage('Total records processed by script: ' + IntToStr(TotalRecordsProcessed));
  AddMessage('Total REFR records processed: ' + IntToStr(TotalRefsProcessed));
  AddMessage('Total OutpostGroupPackinDummy REFRs found anywhere: ' + IntToStr(TotalTargetRefsFound));
  AddMessage('Total deleted OutpostGroupPackinDummy REFRs found anywhere: ' + IntToStr(TotalDeletedTargetRefsFound));
  AddMessage('Total OutpostGroupPackinDummy REFRs found in PackIn* cells: ' + IntToStr(TotalPackinTargetRefsFound));
  AddMessage('Unique PackIn* cells with at least one dummy: ' + IntToStr(CellKeys.Count));

  AddMessage('--- PackIn* cells with more than one OutpostGroupPackinDummy ---');

  for i := 0 to CellKeys.Count - 1 do begin
    count := StrToInt(CellCounts[i]);

    if count > 1 then begin
      Inc(matchedCells);
      AddMessage(
        'MATCH: ' + CellKeys[i] +
        ' | OutpostGroupPackinDummy refs: ' + IntToStr(count)
      );
      AddMessage('  First matching ref seen: ' + CellFirstRef[i]);
    end;
  end;

  AddMessage('Matching PackIn* cells with more than one dummy: ' + IntToStr(matchedCells));

  CellKeys.Free;
  CellCounts.Free;
  CellFirstRef.Free;

  Result := 0;
end;

end.
u/cyberpsyche_mods — 4 months ago