Collection of a few engine fixes I made for Starfield.
List of fixes:
1) Player Facial Expression fix:
Fixes a bug that can cause the player character to loose their facial expression animation set after fast traveling (i.e. “emotionless” face).
2) NPC Headtracking & Makeup fix:
Fixes a bug that can cause NPCs to loose their facial forms, tattos, dermaesthetic, etc. after reloading a save game.
Fixes a bug that can cause NPCs’ eyes to look forward without any eye movements during conversations.
3) Papyrus GetFormFromFile fix:
Fixes a bug that causes native Papyrus function Game.GetFormFromFile() to return None or a wrong Form if parameter asFilename is a Small or Medium master plugin file.
4) Papyrus IsInDialogueWithPlayer fix:
Fixes a bug that causes native Papyrus function ObjectReference.IsInDialogueWithPlayer() to return False while the DialogueMenu is already open with an NPC and the menu is waiting for player input. (Behavior now matches Console function IsInDialogueWithPlayer and Papyrus Game.IsPlayerInDialogue()).
5) Papyrus UnequipAll fix:
Fixes a bug that prevents 3D of the NPC Actor.UnequipAll() was called on to get updated. In vanilla, UnequipAll() doesn’t trigger 3D update (unlike Papyrus UnequipItem() and Console UnequipItem and UnequipObject). Without 3D update, only the NPC’s inventory gets modified but the NPC would continue to wear all previously equipped items.
6) SetScale & Player Scale fix:
Fixes a bug that prevents Console and Papyrus SetScale() from working on the player. The player’s scale can be changed just like any other NPC’s. Note: altered player scale is cleared by the code when a new save game is loaded (so changes are not baked into saves). Added in v1.1.
7) Spacesuit Helmet Flashlight Turns Off fix:
Fixes a bug that causes the player’s spacesuit helmet flashlight to turn off if the player equips/unequips something (anything) while the spacesuit is “hidden” (equipped but not rendered). In vanilla, on an equip event, the flashlight may turn off and the “bIsFlashlightOn” variable becomes invalid. Also, the game sends an equip event when opening/closing the Handscanner menu when force-equipping the Cutter; when this happens, the light always turns off in vanilla.. The plugin has a delayed toggle flashlight check. Added in v1.1.
Version 6.2
Implements a fix for the (not verified but repeatedly reported) “Andreja angry face bug” possibly caused by the Companion Facial Expression Fix.
Integrated the optional file “NPC Makeup Fix For Mod Edited NPCs” to the main plugin. (Disabled by default; see new setting bFixNPCMakeupMod).
Better mod compatibility for the Companion Teleports in the Player’s View fix: if the player travels with more companions, the Companion Teleports in the Player’s View fix now utilizes a randomizer to ensure companions don’t get teleported to the same coordinates (which would cause them to get pushed in front of the player since more NPCs cannot be at the same location; see new setting dCompanionTeleportMoveToDistancePerCompanionOffset).
Added Restored Mods Are Uninstalled Warning. (Technically fixes a vanilla bug but it’s disabled by default).
Added optional feature Disable Save Mod Mark.
Added optional feature Acrylic Message Box Menu.
Various minor fixes.
Version 6.1
Hotfix for the Disable Fast Travel Restrictions optional feature which was broken after v1.14.74.
Version 6.0
Added support for Game version 1.14.74
Fixes a bug fix that could cause the Companion Eye Tracking Fix not to work after certain, non full (i.e. non photo displaying) black Load Screen separated cell transitions such as after exiting the Homeship or entering an interior cell from an exterior with an elevator (see new INI setting bCompanionEyeTrackingFixUseUpdate to disable this new fix in case of mod incompatibility)
Switched back to SFSE’s built-in version checker
Minimum required SFSE version is now 0.2.16
Version 5.9
Added Handscanner menu weapon stutter fix to the Use Any Weapon In Handscanner feature.
Added optional feature Game Date and Planet Timescale In DataMenu.
Version 5.8
Added optional feature Selective Handscanner Menu Sounds.
Added optional feature Silent Menus.
Minor code and logger improvements
Version 5.7
Fixes a bug in the Keep Vanilla Spaceship Decoration feature that could cause items to be always placed with scale 100 instead of the appropriate one defined in the ship hab data
Added new option AI Update Patch to the optional feature Engine Load Optimizations.
Added optional feature Disable LOD Swap.
Version 5.6
Redesigned/mostly rewrote the optional features Deep Scan Load Order and Dump Form Data ( includes bug fix: for incorrect plugin order after v1.14.70 if the load order contained more than 256 Mod Indexes )
Fixes a bug that could possibly cause the NPC Makeup Fix to stop working after reloading a save
Added optional feature Papyrus No Array Limit
Version 5.5
Added optional feature Use Any Weapon In Handscanner.
Implemented (optional) Compatibility Mode for the feature Engine Load Optimizations (it disables certain optimizations to overcome the dialogue overlapping issue which appear to be caused by mod conflicts)
Version 5.4
Expanded the Engine Load Optimizations with a few new optimizations (for the Astral Lounge, Cydonia – Residental area and city interiors in general; further improvements for Neon Core and Cydonia)
Additional safeguards to prevent the reported overlapping dialogues bug associated with the optional feature Engine Load Optimizations
Version 5.3
Fixes a bug in the Engine Load Optimizations feature that could cause companions’ “dialogue scene interjection lines” to get interrupted by the scene target NPC, causing the scene target NPC to skip to their next dialogue line instead of waiting until the companion finishes theirs
Expanded the Engine Load Optimizations with several new optimizations (e.g. for Cydonia, Neon and dense areas)
Exposed the background actor processing patches of Engine Load Optimizations to the INI ( see bEngineLoadOptimizerActorBackgroundProcessPatches )
Exposed the LOD manager patches of Engine Load Optimizations to the INI ( see bEngineLoadOptimizerLODPatches )
Companion Eye Tracking fix is no longer beta and is now enabled by default ( code has been partially rewritten and improved compared to the beta )
Various code optimizations in the plugin
Version 5.2
Expanded the optional feature Engine Load Optimizations to fix a stuttering issue in The Well (slight fps drop in every ~1.5 second)
Fixes a bug in the optional feature Engine Load Optimizations that could cause the player’s drawn weapon to have low LOD (level of detail) upon a loading a save if the save was made while the weapon was drawn (due to the player and weapon 0 distance check)
Version 5.1
Added optional feature Engine Load Optimizations.
Version 5.0
Support for Game version 1.14.70
Game.GetFormFromFile() was fixed by BGS ( previously it didn’t work with Small and Medium Masters ) so the Papyrus GetFormFromFile fix has been removed
The 255 Mod Index limit was fixed by BGS ( previously the engine couldn’t load nearly 255 mods ) so the High Mod Index Warning optional feature was redesigned and replaced by the Highest Mod Index Feedback feature
1.14.70 came with considerable structural changes.. I had to fix many things; please create a manual Save Game before updating
Version 4.6
Added optional feature Keep Vanilla Spaceship Decoration.
Added debug test feature to High Mod Index Warning.