How compilecraftworks/skyrimfittingsystem works
Skyrim Fitting System is an SKSE mod for managing player-facing armor appearances separately from gameplay equipment. The player browses gear, outfits, and kits, previews or registers appearances, and edits actor-local defaults, conditions, visibility, and dye in the native menu and workbench. Native skinning hooks render the selected appearance while preserving real equipped gear; save/load persists overrides. The README documents additional integrations and capabilities; where their implementation was not sampled, the graph shows only documented relationships and startup calls visible in src/main.cpp.
Main entry points: main.cpp Plugin startup · VariantWorkbench.cpp Variant workbench · Menu.cpp Native menu · ArmorSkinning.cpp Armor skinning
Components 22
Player interface
- Native menu
src/ui/Menu.cpp - Menu host
src/ui/MenuHost.cpp - Input manager
src/InputManager.cpp
Appearance management
- Equipment catalog
src/EquipmentCatalog.cpp - Variant workbench
src/VariantWorkbench.cpp - Appearance visibility
src/VariantWorkbench.Visibility.cpp - Fitting dye
src/native/FittingDye.cpp
Conditions and kits
- Condition engine
src/ConditionMaterializer.cpp - Kit generator
src/kit_generator/Generator.cpp - Kit interface
src/kit_generator/UI.cpp
Runtime display
- Runtime hooks
src/Hooks.cpp - Armor skinning
src/native/ArmorSkinning.cpp - Rendered outfit state
src/api/RenderedOutfitState.h - Plugin startup
src/main.cpp
Persistence and integrations
- Save and load
src/Serialization.cpp - Papyrus interface
src/papyrus/FittingPapyrus.cpp - SOS storage sync
src/native/SOSStorageSync.cpp - Virtual worn tokens
src/features/virtual_tokens/VirtualWornTokens.cpp - RaceMenu sync
src/native/RaceMenuBodyMorph.cpp - Rendered outfit API
src/api/SkyrimFittingSystemAPI.cpp
Other components
- Player
- Skyrim runtime
Connections 28
- Player → Native menu: manages appearances
- Player → Input manager: provides controls
- Input manager → Menu host: routes input
- Menu host → Native menu: hosts menu
- Native menu → Equipment catalog: browses gear
- Native menu → Variant workbench: edits variants
- Native menu → Kit interface: opens generator
- Equipment catalog → Variant workbench: registers appearances
- Variant workbench → Condition engine: edits conditions
- Variant workbench → Appearance visibility: sets visibility
- Variant workbench → Fitting dye: opens dye
- Kit interface → Kit generator: configures generation
- Kit generator → Equipment catalog: creates kits
- Skyrim runtime → Runtime hooks: dispatches events
- Runtime hooks → Armor skinning: installs hooks
- Armor skinning → Rendered outfit state: updates display state
- Armor skinning → Skyrim runtime: renders appearance
- Plugin startup → Runtime hooks: installs hooks
- Plugin startup → Armor skinning: initializes skinning
- Plugin startup → Save and load: registers save callbacks
- Save and load → Variant workbench: restores overrides
- Plugin startup → SOS storage sync: requests sync
- SOS storage sync → Skyrim runtime: reads Papyrus storage
- Plugin startup → Virtual worn tokens: initializes tokens
- Plugin startup → RaceMenu sync: initializes morph sync
- Plugin startup → Papyrus interface: registers Papyrus
- Rendered outfit API → Rendered outfit state: queries state
- Player → Rendered outfit API: external consumers