[Debug] ; -1 to disable logging
; 0 - Fatal Error
; 1 - Error
; 2 - Warning
; 3 - Message
; 4 - Verbose Message
; 5 - Debug Message
iLogLevel=5 ; Default[5]

[Features]
; Enables sculpting panel and functionality
bEnableSculpting=1 ; Default[1]

; Enables exporting actor heads from menu
bEnableHeadExport=1 ; Default[1]

; Enables layering textures ontop of the player
bEnableOverlays=1 ; Default[1]

; Determines whether face overlays are enabled
bEnableFaceOverlays=1 ; Default[1]

; Enables BodySlide assisted morphing for further customization
bEnableBodyMorph=1 ; Default[1]

; Enables Body Randomization based on guided files (depends on BodyMorph, usage without will still apply randomized key values)
bEnableBodyGen=1 ; Default[1]

; Enables automatic reapplication of transforms on model load
bEnableAutoTransforms=1 ; Default[1]

; Enables syncing of hair or skin tint to a Dyeable Item
bEnableTintSync=1 ; Default[1]

; Enables tint system on inventory models
bEnableTintInventory=1 ; Default[1]

; Enables automatically tinting worn items in the hair slot where they have the Hair Tint Shader
bEnableTintHairSlot=1 ; Default[1]

; Enables recalculating Normals and Tangents when loading or changing sliders
bEnableFaceNormalRecalculate=1 ; Default[1]

; Enables recalculating Normals and Tangents when using Body morphs
bEnableBodyNormalRecalculate=1 ; Default[1]

; Enables automatically disabling the Model Space Normal flag from a mesh when the Actor's Skin TextureSet is set to use Tangent space
bEnableTangentSpaceCorrection=1 ; Default[1]

; Allows plugins to send the interface exchange message immediately after SKEE is loaded
; this is not recommended! plugins should exchange at kMessage_PostPostLoad to ensure
; that SKEE is loaded, otherwise it depends on arbitrary OS decided load ordering of dll
; this option is provided purely for compatibility with mods that are attempting to exchange early
bEnableEarlyRegistration=0 ; Default[0]

; Enables automatic transforms defined by 'SDTA' NiStringExtraData on shapes
; String Data: (Without semi-colon)
;[
;    {"name":"NPC L Breast", "scale": 4.0, "pos":[0, 0, 0], "rot":[0, 0, 0]},
;    {"name":"NPC R Breast", "scale": 4.0, "pos":[0, 0, 0], "rot":[0, 0, 0]}
;]
bEnableEquippableTransforms=1 ; Default[1]

[Hooks]
; Debugging use only, these disable hooks in the game which affect various features
bBipedAttach=1
bNativeSliders=1
bMorphUpdates=1
bSliderCallbacks=1
bTintInventory=1
bHeadProcessing=1
bFaceOverlays=1

[General]
; Determines scaling mode
; 0 - Multiplicative
; 1 - Averaged
; 2 - Additive
; 3 - Maximum
iScaleMode=0

; Determines key merging method (when there are two body morph keys for the same morph)
; 0 - Additive
; 1 - Averaged
; 2 - Maximum
iBodyMorphMode=0

; Amount of memory to be used by BodyMorph TRI cache
; cache will temporarily exceed this limit to load a TRI
; then remove least recently used entries until the 
; used memory is below this threshold
uBodyMorphMemoryLimit=256000000 ; Default[256000000]

; Enables whether shapes are morphed in parallel
bParallelMorphing=1

; Alternate method to copy from primary skin partition to alternate skin partitions using CopyResource instead of UpdateSubresource
; Probably faster
bBodyMorphGPUCopy=1 ; Default[1]

; When a morphable AA is equipped the GPU resource will be re-created and copied in as dynamic and then the new resource will be applied to all skin partitions
; Probably faster, and likely faster when changing morphs on a piece that is already equipped
bBodyMorphRebind=1 ; Default[1]

; Which slot mask to apply hair tinting to, if you want multiple see https://www.creationkit.com/index.php?title=Slot_Masks_-_Armor
uTintHairSlot=2050 ; Default[2050] - Applys to slots where Hair or LongHair exists

[Overlays]
; Applies to only the player, or all humanoid actors NOT RECOMMENDED changing this, you can add overlays to certain actors via script
bPlayerOnly=1 ; Default[1]

; Determines whether to immediately apply shader changes
; when overlays are installed on an ArmorAddon
bImmediateArmor=1 ; Default[1]

; Determines whether to immediately attach and apply shader changes
; when overlays are installed to the face
bImmediateFace=0 ; Default[0]

[Overlays/Body] ; "Body [Ovl#]" and "Body [SOvl#]"
; Determines how many body overlays there should be
iNumOverlays=6 ; Default[6]
iSpellOverlays=1 ; Default[1]


[Overlays/Hands] ; "Hands [Ovl#]" and "Hands [SOvl#]"
; Determines how many hand overlays there should be
iNumOverlays=3 ; Default[3]
iSpellOverlays=1 ; Default[1]


[Overlays/Feet] ; "Feet [Ovl#]" and "Feet [SOvl#]"
; Determines how many feet overlays there should be
iNumOverlays=3 ; Default[3]
iSpellOverlays=1 ; Default[1]


[Overlays/Face] ; "Face [Ovl#]" and "Face [SOvl#]"
; Determines how many face overlays there should be
iNumOverlays=3 ; Default[3]
iSpellOverlays=0 ; Default[1]


[Overlays/Data]
; Assigns these alpha properties to all overlays when they are applied
; 4844, 128 is recommended for solid overlays (they will render correctly underwater)
; Changing the overlay's alpha value ingame acts like 4845 regardless of assigned flags
iAlphaFlags=4845 ; Default[4845]
iAlphaThreshold=0 ; Default[0]
sDefaultTexture=textures\actors\character\overlays\default.dds

[FaceGen]
fSliderMultiplier=3.0
bDisableFaceGenCache=1
bExternalHeads=0 ; Change this to 1 to generate external heads
bExtendedMorphs=1 ; Enables extended morph hooks and loading of extended morph assets
bAllowAllMorphs=1 ; Enables use of all preset morphs across all races
bExportSkinToBone=1
bAllowAnyRacePart=0 ; When using face parts, allows using parts not normally valid for the race, not recommended may not persist
bAlloyAnyGenderPart=0 ; Similar to above but does not restrict gender

[Sculpting]
fPanSpeed=0.01 ; Negative reverses panning direction
fFOV=60
iWidth=768 ; Must be divisible by 8
iHeight=768 ; Must be divisible by 8
fBackgroundR=0.0
fBackgroundG=0.0
fBackgroundB=0.0
fBackgroundA=0.0
fOffsetX=0.11
fOffsetY=0.0
fOffsetZ=0.0
bDrawBrushPoint=1
bDrawBrushRadius=1

; Mask brushes have no strength values
[Brush/MaskAdd/Radius]
dbDefault = 0.5
dbMin = 0.01
dbMax = 2.00
dbInterval = 0.01

[Brush/MaskSubtract/Radius]
dbDefault = 0.5
dbMin = 0.01
dbMax = 2.00
dbInterval = 0.01

[Brush/Inflate/Radius]
dbDefault = 0.5
dbMin = 0.01
dbMax = 2.00
dbInterval = 0.01

[Brush/Inflate/Strength]
dbDefault = 0.01
dbMin = 0.001
dbMax = 1.000
dbInterval = 0.001

[Brush/Deflate/Radius]
dbDefault = 0.5
dbMin = 0.01
dbMax = 2.00
dbInterval = 0.01

[Brush/Deflate/Strength]
dbDefault = 0.01
dbMin = 0.001
dbMax = 1.000
dbInterval = 0.001

[Brush/Smooth/Radius]
dbDefault = 0.5
dbMin = 0.01
dbMax = 2.00
dbInterval = 0.01

[Brush/Smooth/Strength]
dbDefault = 0.05
dbMin = 0.001
dbMax = 1.000 ; Smooth strength greater than 1 is nonsense, don't set this higher
dbInterval = 0.001

[Brush/Move/Radius]
dbDefault = 0.5
dbMin = 0.01
dbMax = 2.00
dbInterval = 0.01

[Brush/Move/Strength]
dbDefault = 0.01
dbMin = 0.001
dbMax = 1.000
dbInterval = 0.001

