Somatic Camera SF" — Beta
A first-person camera overhaul for Starfield that lets you see your full character body in first-person view.
New Beta 7:
Added support for Osf UI (by ozooma10)
You can now change pseudo-camera settings in-game, such as:
- iToggleKey (currently has an issue with Numpad)
- fFOV
- bAutoEquipHideHeadSS
- bAutoEquipHideHead
- fSideOffset
- fForwardOffset
- fUpOffset Fixed various bugs
(Beta 6 V4) Updated the code so that setting bAutoEquipHideHeadSS=0 prevents the pseudo-camera from unequipping your currently fitted helmet. Added auto-re-equipping of your previously equipped helmet upon disabling the pseudo-camera. When activating the pseudo-camera, an invisible headgear and invisible helmet are now added to your inventory. Added settings in the SomaticCameraSF.ini file to auto-equip the invisible head items (enabled by default). There is now just one main hotkey to toggle the pseudo-camera on and off— Num / by default (you can change this to whatever you want in the SomaticCameraSF.ini file). During animations like SnuSnuField, the pseudo-camera now tracks the head position but isn't locked, meaning you can still move the camera around. Fixed several minor bugs and issues.
-Three functions for controlling the pseudo-camera position have been added to the SomaticCameraSF.ini file: fUpOffset – camera height/vertical position fForwardOffset – moves the camera forward/backward fSideOffset – centers the camera if it drifts away from the middle And For SAF: fSAFOffsetForward – centers the camera if it drifts away from the middle fSAFOffsetSide – moves the camera forward/backward fSAFOffsetUp – camera height/vertical position
The provided values are my personal preferences and may or may not suit your taste, but you can always adjust them to your liking. I haven't found an effective way to hide the head yet.
- Added invisible headgear thanks to HooliG4N83
To Do:
- Work on the seat-getting-up animation for the pseudo-camera (keeping actual ship flight control native for now, as the pseudo-camera acts up during flight).
- Addressing other known bugs.
Note: This is still a beta release with a few things left to iron out, but we're getting closer to a truly unique version!
Somatic Camera SF brings back the classic third-person-to-first-person hybrid camera — also known as pseudo-FPP or first-person with visible body. Instead of the game's standard first-person mode (which hides your character), this mod places the camera at your character's head while keeping the full body rendered, animated, and visible. The result is an immersive first-person view where you can see your own body, gear, and shadows.
Toggle between normal third-person and the enhanced first-person view with a hotkey.
- Full body in first person — See your character's body, equipment, and armor while in first-person view
- Head tracking — Camera follows the head bone during standard animations (walking, running, sprinting, jumping, aiming)
- Player rotation on look — Your character model rotates naturally when you look left or right in pseudo-FPP mode
- Toggle on/off — Default: Numpad / (can be changed in the .ini file.)
- Compatible with third-person animations — Body animations play normally while in pseudo-FPP mode
- INI files — for manual tuning of the pseudo-camera.
- Starfield version 1.16.244 (or compatible)
- SFSE (Starfield Script Extender)
- Address Library (for SFSE)
Mod Manager or manually:
- Install SFSE and Address Library if you haven't already
- Extract the archive
- Copy
SomaticCameraSF.dllandSomaticCameraSF.initoYourGameFolder\Data\SFSE\Plugins\ - Launch the game through SFSE
SomaticCameraSF.pdb ships with the release for crash-log symbolication only — you don't need it to play.
v2.0.0 renamed the plugin, so it is not a drop-in overwrite of the old files. Before installing:
- Delete
ImprovedCameraSF.dllandImprovedCameraSF.inifromData\SFSE\Plugins\. If you leave the old DLL in place, both plugins load at once and hook the same camera functions. - If you saved profiles, copy them from
Data\SFSE\Plugins\ImprovedCameraSF\Profiles\toData\SFSE\Plugins\SomaticCameraSF\Profiles\. - Install v2.0.0 as above.
Settings are not migrated automatically — re-apply any tweaks you had in the old INI to SomaticCameraSF.ini.
The toggle hotkey is configurable. By default:
- Press the toggle key while in third-person to activate pseudo-FPP mode
- Press again to return to normal third-person
⚠ This is a beta release. The mod is functional but not yet polished. Expect imperfections.
Built with CommonLibSF and MinHook. The mod hooks into ThirdPersonState::Update and TESCamera::Update to override the camera position without modifying game files.
This fork adds an xmake build that produces the Windows x64 SFSE plugin from Linux. Two toolchains are supported, and each keeps its own build directory so their object files never mix.
Default — real MSVC under Wine, via msvc-wine.
The game and CommonLibSF are MSVC-built, so this matches the C++ ABI the mod hooks
into exactly rather than relying on clang-cl's MSVC-ABI emulation. Use it for
anything you ship:
git submodule update --init --recursive
xmake f -p windows -a x64 -m releasedbg --toolchain=msvc --sdk=/path/to/msvc --builddir=build-msvc -y
xmake buildOutput: build-msvc/windows/x64/releasedbg/SomaticCameraSF.dll.
xmake detects the msvc-wine layout (VC/Tools/MSVC + Windows Kits) natively; the
wrappers in <sdk>/bin/x64 (cl.exe → a shell script) set INCLUDE, LIB and
WINEPATH, then invoke the real compiler through Wine.
Alternative — clang-cl + lld-link + llvm-rc against an
xwin/MSVC Windows SDK tree (referenced here
as ~/.vsxwin). Roughly 6–7× faster — no Wine, no per-file .exe startup — so it
is the better choice for quick iteration. Verify with the MSVC build before
shipping:
xmake f -p windows -a x64 -m releasedbg --toolchain=clang-cl --sdk=$HOME/.vsxwin --builddir=build -y
xmake buildOutput: build/windows/x64/releasedbg/SomaticCameraSF.dll.
--builddiris sticky: xmake persists it in.xmake/, so a laterxmake fwithout the flag reuses whatever was configured last. Always pass it when switching toolchains.
The target name is load-bearing — the plugin finds its own INI via
GetModuleHandleA("SomaticCameraSF.dll"), andVERSION_PRODUCTNAME_STRininclude/version.hbuilds the config and profile paths from the same name. Renaming the output DLL, or changing that macro on its own, silently reverts every setting to its built-in default.
extern/commonlibsf/(git submodule): CommonLibSF (libxse fork, runtime 1.16.244.0) +commonlib-shared, built from source.extern/osfui/OSFUI_API.h: vendored header-only OSF UI SDK, which upstream includes but does not ship — see the README there. Optional at runtime; the mod works without OSF UI installed, minus the in-game settings menu.- Pulled automatically from xrepo:
glm,imgui(core),minhook,mini(mINI), plusspdlogtransitively viacommonlib-shared.
modules/detect/tools/find_rc.lua (included) lets xmake locate an rc compiler on
Linux, which the clang-cl path needs — upstream's find_rc is Windows-only.
On top of upstream, this fork adds the build above plus:
- Eye-level pseudo-camera defaults (
fUpOffset0.20,fForwardOffset0.12). The camera anchors to the head-mesh center, so a zero offset sits inside the skull and 0.06 sat at jaw height. - An optional near-clip head hide (
bHideHeadNearClip,fHeadClipNear) as a fallback for when the invisible-headgear armor can't be equipped. [Debug] bDebugLog(default0) gating the verbose per-frame debug log, which otherwise costs real frame rate under Wine/Proton.
- HooliG4N83 - for invisible headwear
- Libxe dla CommonLibSF, without which creating this type of plugin for Starfield would have been much more difficult. This file uses CommonLibSF, which is licensed under the GNU GPLv3 .
- Tsuda Kageyu for MinHook - meh321 for Address Library for SFSE Plugins. - Ian Patterson for Starfield Script Extender.
- Original mod by mielu91m / the IC Team — https://github.com/mielu91m/SomaticCameraSF. This repository is a modified fork; all mod functionality and design are the original author's work.
- Inspired by Improved Camera for Skyrim - ArranzCNL and TwistedModding
Distributed under the Mozilla Public License 2.0 — see LICENSE.
The vendored extern/osfui/OSFUI_API.h is covered by its own terms, noted in
extern/osfui/README.md.