# WARNING: Users should NOT edit this file. Users should add their personal preferences to the settings.cfg file overriding this file.
# For the location of the settings.cfg file, as well as more detailed settings documentation, refer to:
#
#   https://openmw.readthedocs.io/en/latest/reference/modding/settings/index.html
#

[Camera]

# Near clipping plane (>0.0, e.g. 0.01 to 18.0).
near clip = 1

# Cull objects that occupy less than 'small feature culling pixel size' on the screen.
small feature culling = true

small feature culling pixel size = 2.0

# Maximum visible distance. Caution: this setting
# can dramatically affect performance, see documentation for details.
viewing distance = 7168.0

# Camera field of view in degrees (e.g. 30.0 to 110.0).
# Does not affect the player's hands in the first person camera.
field of view = 60.0

# Field of view for first person meshes (i.e. the player's hands)
# Best to leave this at the default since vanilla assets are not complete enough to adapt to high FoV's. Too low FoV would clip the hands off screen.
first person field of view = 60.0

# Reverse the depth range, reduces z-fighting of distant objects and terrain
reverse z = true

[Cells]

# Preload cells in a background thread. All settings starting with 'preload' have no effect unless this is enabled.
preload enabled = true

# The number of threads to be used for preloading operations.
preload num threads = 1

# Preload adjacent cells when moving close to an exterior cell border.
preload exterior grid = true

# Preload possible fast travel destinations.
preload fast travel = false

# Preload the locations that doors lead to.
preload doors = true

# Preloading distance threshold
preload distance = 1000

# Controls whether or not the nodes/collision shapes are pre-"instanced" (i.e. cloned) when a cell is preloaded.
# Enabling this option slightly reduces the time it takes to transition into a preloaded cell, but also results in higher memory usage
# proportional to the number of cells that are preloaded.
preload instances = true

# The minimum amount of cells in the preload cache before unused cells start to get thrown out (see "preload cell expiry delay").
# This value should be lower or equal to 'preload cell cache max'.
preload cell cache min = 12

# The maximum amount of cells in the preload cache. A too high value could cause you to run out of memory.
# You may need to reduce this setting when running lots of mods or high-res texture replacers.
preload cell cache max = 20

# How long to keep preloaded cells in cache after they're no longer referenced/required (in seconds)
preload cell expiry delay = 5

# The predicted position of the player N seconds in the future will be used for preloading cells and distant terrain
prediction time = 1

# How long to keep models/textures/collision shapes in cache after they're no longer referenced/required (in seconds)
cache expiry delay = 5

# Affects the time to be set aside each frame for graphics preloading operations
target framerate = 60

# The count of pointers, that will be saved for a faster search by object ID.
pointers cache size = 40

[Terrain]

# If true, use paging and LOD algorithms to display the entire terrain. If false, only display terrain of the loaded cells
distant terrain = false

# Controls how the Quad Tree is split. This affects Vertex LOD, Texture LOD and load times. Values > 1 increase detail, values < 1 reduce detail.
lod factor = 1.0

# Controls only the Vertex LOD. Change in increments of 1, each change doubles (or halves) the number of vertices. Values > 0 increase detail, values < 0 reduce detail.
vertex lod mod = 0

# Controls when the distant terrain will flip to composited textures instead of high-detail textures, should be >= -3.
# Higher value is more detailed textures.
composite map level = 0

# Controls the resolution of composite maps.
composite map resolution = 512

# Controls the maximum size of composite geometry, should be >= 1.0. With low values there will be many small chunks, with high values - lesser count of bigger chunks.
max composite geometry size = 4.0

# Draw lines arround chunks.
debug chunks = false

# Use object paging for non active cells
object paging = true

# Use object paging for active cells grid
object paging active grid = true

# Affects the likelyhood of more complex objects to get paged. Higher values improve visual fidelity at the cost of performance and RAM.
object paging merge factor = 250

# Cull objects smaller than this size divided by distance
object paging min size = 0.01

# Adjusts 'min size' based on merging decision. Allows inexpensive objects to be rendered from a greater distance.
object paging min size merge factor = 0.3

# Controls how inexpensive an object needs to be to utilize 'min size merge factor'.
object paging min size cost multiplier = 25

# Don't draw water if it's evaluated to be below all visible terrain
water culling = true

[Fog]

# If true, use extended fog parameters for distant terrain not controlled by
# viewing distance. If false, use the standard fog calculations.
use distant fog = false

distant land fog start = 16384

distant land fog end = 40960

distant underwater fog start = -4096

distant underwater fog end = 2457.6

distant interior fog start = 0

distant interior fog end = 16384

# Determine fog intensity based on the distance from the eye point.
# This makes fogging independent from the viewing angle. Shaders will be used to render all objects.
radial fog = false

# Whether to use exponential formula for fog.
exponential fog = false

# Whether to hide the clipping plane by blending with sky.
sky blending = false

# Fraction of the maximum distance at which blending with the sky starts.
sky blending start = 0.8

# The sky RTT texture size, used only for sky blending. Smaller values
# reduce quality of the sky blending, but can have slightly better performance.
sky rtt resolution = 512 256

[Map]

# Size of each exterior cell in pixels in the world map. (e.g. 12 to 24).
# Warning: affects explored areas in save files, see documentation.
global map cell size = 18

# Enables Fog of War rendering on the HUD map. Default is Off since with default settings
# the map is so small that the fog would not obscure anything, just darken the edges slightly.
local map hud fog of war = false

# Resolution of local map in GUI window in pixels.  See documentation
# for details which may affect cell load performance. (e.g. 128 to 1024).
local map resolution = 256

# Size of local map in GUI window in pixels.  (e.g. 256 to 1024).
local map widget size = 512

# If true, map in world mode, otherwise in local mode
global = false

# If true, allow zoom on local and global maps
allow zooming = false

# The local view distance in number of cells (up to the view distance)
max local viewing distance = 10

[GUI]

# Scales GUI window and widget size. (<1.0 is smaller, >1.0 is larger).
scaling factor = 1.0

# Size of in-game fonts
font size = 16

# Scale of book, note and scroll fonts. (<1.0 is smaller, >1.0 is larger).
book font scale = 1.0

# Scale of journal fonts and journal topic/quest lists. (<1.0 is smaller, >1.0 is larger).
journal font scale = 1.0

# Transparency of GUI windows (0.0 to 1.0, transparent to opaque).
menu transparency = 0.84

# Time until tool tip appears when hovering over an object (0.0 is
# instantly, 1.0 is the maximum delay of about 1.5 seconds).
tooltip delay = 0.0

# Stretch menus, load screens, etc. to the window aspect ratio.
stretch menu background = false

# Make menus easier to navigate with a controller.
controller menus = false

# When true, you do not need to press R3 to show tooltips.
controller tooltips = false

# Subtitles for NPC spoken dialog and some sound effects.
subtitles = false

# Red flash visually showing player damage.
hit fader = true

# Werewolf overlay border around screen or window.
werewolf overlay = true

# Color for tool tips and crosshair when owned by an NPC (R G B A).
color background owned = 0.15 0.0 0.0 1.0
color crosshair owned = 1.0 0.15 0.15 1.0

# Controls whether Arrow keys, Movement keys, Tab/Shift-Tab and Spacebar/Enter/Activate may be used to navigate GUI buttons.
keyboard navigation = true

# Apply the defined color to dialogue topic.
color topic enable = false

# The color of dialogue topic keywords that gives unique actor responses
color topic specific = 0.45 0.5 0.8 1
color topic specific over = 0.6 0.6 0.85 1
color topic specific pressed = 0.3 0.35 0.75 1

# The color of dialogue topic keywords that gives already read responses
color topic exhausted = 0.3 0.3 0.3 1
color topic exhausted over = 0.55 0.55 0.55 1
color topic exhausted pressed = 0.45 0.45 0.45 1

[HUD]

# Displays the crosshair or reticle when not in GUI mode.
crosshair = true

[Game]

# Color crosshair and tool tip when object is owned by an NPC. (O is
# no color, 1 is tool tip only, 2 is crosshair only, and 3 is both).
show owned = 0

# Show damage bonus of arrow and bolts.
show projectile damage = false

# Show additional weapon info: reach and attack speed
show melee info = false

# Show success probability in self-enchant dialog
show enchant chance = false

# Always use the best mode of attack: e.g. chop, slash or thrust.
best attack = false

# Difficulty.  Expressed as damage dealt and received. (e.g. -100 to 100).
difficulty = 0

# The maximum range of actor AI, animations and physics updates.
actors processing range = 7168

# Make reflected Absorb spells have no practical effect, like in Morrowind.
classic reflected absorb spells behavior = true

# Make Calm spells stop combat on every frame
classic calm spells behavior = true

# Show duration of magic effect and lights in the spells window.
show effect duration = false

# Prevent merchants from equipping items that are sold to them.
prevent merchant equipping = false

# Make enchanted weaponry without Magical flag bypass normal weapons resistance
enchanted weapons are magical = true

# Make player followers and escorters start combat with enemies who have started combat with them
# or the player. Otherwise they wait for the enemies or the player to do an attack first.
followers attack on sight = false

# Can loot non-fighting actors during death animation
can loot during death animation = true

# Make the value of filled soul gems dependent only on soul magnitude (with formula from the Morrowind Code Patch)
rebalance soul gem values = false

# Allow to load per-group KF-files from Animations folder
use additional anim sources = false

# Use smooth transitions between animations making them a lot less jarring. Also allows to load modded animation blending
# configs (.yaml/.json config files).
smooth animation transitions = false

# Make the disposition change of merchants caused by barter dealings permanent
barter disposition change is permanent = false

# Uses the MCP formula (damage * (strength / 40)) to factor Strength into hand-to-hand combat.
# (0 means it does not factor it in, 1 means it factors into werewolves damage calculation and
# 2 means werewolves are ignored)
strength influences hand to hand = 0

# Render holstered weapons (with quivers and scabbards), requires modded assets
weapon sheathing = false

# Render holstered shield when it is not in actor's hands, requires modded assets
shield sheathing = false

# Allow non-standard ammunition solely to bypass normal weapon resistance or weakness
only appropriate ammunition bypasses resistance = false

# Use casting animations for magic items, just as for spells
use magic item animations = false

# Don't use race weight in NPC movement speed calculations
normalise race speed = false

# Adjusts the number of projectiles you can enchant at once:
# count = (soul gem charge * projectiles enchant multiplier) / enchantment strength
# A value of 0 means that you can only enchant one projectile.
projectiles enchant multiplier = 0

# Make Damage Fatigue magic effect uncapped like Drain Fatigue effect.
# This means that unlike Morrowind you will be able to knock down actors using this effect.
uncapped damage fatigue = false

# Turn lower body to movement direction. 'true' makes diagonal movement more realistic.
turn to movement direction = false

# Makes all movements of NPCs and player more smooth.
smooth movement = false

# Max delay of turning (in seconds) if player drastically changes direction on the run.
smooth movement player turning delay = 0.333

# All actors avoid collisions with other actors.
NPCs avoid collisions = false

# Give way to moving actors when idle. Requires 'NPCs avoid collisions' to be enabled.
NPCs give way = true

# Makes player swim a bit upward from the line of sight.
swim upward correction = false

# Strength of the 'swim upward correction' effect (if enabled).
swim upward coef = 0.2

# Make the training skills proposed by a trainer based on its base attribute instead of its modified ones
trainers training skills based on base skill = false

# Make stealing items from NPCs that were knocked down possible during combat.
always allow stealing from knocked out actors = false

# Enables visually harvesting plants for models that support it.
graphic herbalism = true

# Give actors an ability to swim over water surface when they follow other actor independently from their ability to swim
# (true, false)
allow actors to follow over water surface = true

# Default size of actor for navmesh generation
default actor pathfind half extents = 29.27999496459961 28.479997634887695 66.5

# Enables use of day/night switch nodes
day night switches = true

# Collision is used for both physics simulation and navigation mesh generation for pathfinding:
# 0 = Axis-aligned bounding box
# 1 = Rotating box
# 2 = Cylinder
actor collision shape type = 0

# When false the player character will base movement on animations. This will sway the camera
# while moving in third person like in vanilla, and reproduce movement bugs caused by glitchy
# vanilla animations.
player movement ignores animation = false

[General]

# Anisotropy reduces distortion in textures at low angles (e.g. 0 to 16).
anisotropy = 4

# File format for screenshots.  (jpg, png, tga, and possibly more).
screenshot format = png

# Texture magnification filter type.  (nearest or linear).
texture mag filter = linear

# Texture minification filter type.  (nearest or linear).
texture min filter = linear

# Texture mipmap type.  (none, nearest, or linear).
texture mipmap = nearest

# Show message box when screenshot is saved to a file.
notify on saved screenshot = false

# List of the preferred languages separated by comma.
# For example "de,en" means German as the first prority and English as a fallback.
preferred locales = en

# If true then l10n/*/gmst.yaml has priority over other l10n files.
gmst overrides l10n = true

# Buffer size for the in-game log viewer (press F10 to toggle). Zero disables the log viewer.
log buffer size = 65536

# Number of console history objects to retrieve from previous session.
console history buffer size = 4096

[Shaders]

# Force rendering with shaders, even for objects that don't strictly need them.
# By default, only objects with certain effects, such as bump or normal maps will use shaders.
# With enhancements enabled, such as "enable shadows" and "reverse z", shaders must be used for all objects, as if this setting is true.
# Some settings, such as "clamp lighting" only apply to objects using shaders, so enabling this option may cause slightly different visuals when used at the same time.
# Otherwise, there should not be a visual difference.
force shaders = false

# Force the use of per pixel lighting. By default, only bump and normal mapped objects use per-pixel lighting.
# Only affects objects drawn with shaders (see "force shaders" option).
# Enabling per-pixel lighting can result in visual differences to the original MW engine as
# certain lights in Morrowind rely on vertex lighting to look as intended.
# Note that groundcover shaders and particle effects ignore this setting.
force per pixel lighting = false

# Restrict the amount of lighting that an object can receive to a maximum of (1,1,1).
# Only affects objects that render with shaders (see 'force shaders' option).
# When disabled, terrain is always drawn with shaders to prevent seams between tiles that are and that aren't.
# Setting this option to 'true' results in fixed-function compatible lighting, but the lighting
# may appear 'dull' and there might be color shifts.
# Setting this option to 'false' results in more realistic lighting.
clamp lighting = true

# If this option is enabled, normal maps are automatically recognized and used if they are named appropriately
# (see 'normal map pattern', e.g. for a base texture foo.dds, the normal map texture would have to be named foo_n.dds).
# If this option is disabled, normal maps are only used if they are explicitly listed within the mesh file (.nif or .osg file).
# Affects objects.
auto use object normal maps = false

# If this option is enabled, specular maps are automatically recognized and used if they are named appropriately
# (see 'specular map pattern', e.g. for a base texture foo.dds, the specular map texture would have to be named foo_spec.dds).
# If this option is disabled, normal maps are only used if they are explicitly listed within the mesh file (.osg file, not supported in .nif files).
# Affects objects.
auto use object specular maps = false

# See 'auto use object normal maps'. Affects terrain.
auto use terrain normal maps = false

# If a file with pattern 'terrain specular map pattern' exists, use that file as a 'diffuse specular' map. The texture
# must contain the layer color in the RGB channel (as usual), and a specular multiplier in the alpha channel.
auto use terrain specular maps = false

# The filename pattern to probe for when detecting normal maps (see 'auto use object normal maps', 'auto use terrain normal maps')
normal map pattern = _n

# Alternative filename pattern to probe for when detecting normal maps. Files with this pattern are expected to include 'height' in the alpha channel.
# This height is used for parallax effects. Works for both terrain and objects.
normal height map pattern = _nh

# The filename pattern to probe for when detecting object specular maps (see 'auto use object specular maps')
specular map pattern = _spec

# The filename pattern to probe for when detecting terrain specular maps (see 'auto use terrain specular maps')
terrain specular map pattern = _diffusespec

# Apply lighting to reflections on the environment-mapped objects like in Morrowind Code Patch.
# Affected objects use shaders.
apply lighting to environment maps = false

# Internal handling of lights, ignored if 'force shaders' is off. "legacy"
# provides fixed function pipeline emulation."shaders compatibility" (default)
# uncaps the light limit, enables groundcover lighting, and uses a modified
# attenuation formula to reduce popping and light seams. "shaders" comes with
# all these benefits and is meant for larger light limits, but may not be
# supported on older hardware and may be slower on weaker hardware when
# 'force per pixel lighting' is enabled.
lighting method = shaders compatibility

# Use the traditional light attenuation formula.
# This disables OpenMW's adjustment to the formula that ensures point lights can properly fade out.
# When 'lighting method' is set to 'legacy', this setting is always true.
classic falloff = false

# Matches exterior sunlight to the apparent sun orbit
match sunlight to sun = false

# Sets the bounding sphere multiplier of light sources.
# The bounding sphere is used to determine if an object should receive lighting.
# Higher values will allow for smoother transitions of light sources,
# but may carry a performance cost and require a higher number of 'max lights' set.
light bounds multiplier = 1.65

# The distance from the camera at which lights fade away completely.
# Set to 0 to disable fading.
maximum light distance = 8192

# Fraction of the maximum distance at which lights begin to gradually fade away.
light fade start = 0.85

# Set maximum number of lights per object.
# When 'lighting method' is set to 'legacy', this setting will have no effect.
max lights = 8

# Sets minimum ambient brightness of interior cells. Levels below this threshold will have their
# ambient values adjusted to balance the darker interiors.
# When 'lighting method' is set to 'legacy', this setting will have no effect.
# This setting will also have no effect if 'classic falloff' is true.
minimum interior brightness = 0.08

# Convert the alpha test (cutout/punchthrough alpha) to alpha-to-coverage.
# This allows MSAA to work with alpha-tested meshes, producing better-looking edges without pixelation.
# When MSAA is off, this setting will have no visible effect, but might have a performance cost.
antialias alpha test = false

# Attempt to simulate coverage-preserving mipmaps in textures created without them which are used for alpha testing anyway.
# This will somewhat mitigate these objects appearing to shrink as they get further from the camera, but isn't perfect.
# Better results can be achieved by generating more appropriate mipmaps in the first place, but if this workaround is used with such textures, affected objects will appear to grow as they get further from the camera.
# It is recommended that mod authors specify how this setting should be set, and mod users follow their advice.
adjust coverage for alpha test = true

# Soften intersection of blended particle systems with opaque geometry
soft particles = false

# Rain and snow particle occlusion
weather particle occlusion = false

weather particle occlusion small feature culling pixel size = 4.0

[Input]

# Capture control of the cursor prevent movement outside the window.
grab cursor = true

# Camera sensitivity when not in GUI mode. (>0.0, e.g. 0.1 to 5.0).
camera sensitivity = 1.0

# Vertical camera sensitivity multiplier when not in GUI mode.
# (>0.0, Because it's a multiplier values should be near 1.0)
camera y multiplier = 1.0

# Invert the horizontal axis while not in GUI mode.
invert x axis = false

# Invert the vertical axis while not in GUI mode.
invert y axis = false

# Enable controller support.
enable controller = true

# Emulated gamepad cursor sensitivity.
gamepad cursor speed = 1.0

# Set dead zone for joysticks (gamepad or on-screen ones)
joystick dead zone = 0.1

# Enable gyroscope support.
enable gyroscope = false

# Gyroscope axis that corresponds to horizontal camera axis.
gyro horizontal axis = -x

# Gyroscope axis that corresponds to vertical camera axis.
gyro vertical axis = y

# The minimum gyroscope movement that is able to rotate the camera.
gyro input threshold = 0

# Horizontal camera axis sensitivity to gyroscope movement.
gyro horizontal sensitivity = 1.0

# Vertical camera axis sensitivity to gyroscope movement.
gyro vertical sensitivity = 1.0

[Saves]

# Name of last character played, and default for loading save files.
character =

# Automatically save the game whenever the player rests.
autosave = true

# The maximum number of quick (or auto) save slots to have.
# If all slots are used, the  oldest save is reused
max quicksaves = 1

[Sound]

# Name of audio device file.  Blank means use the default device.
device =

# Volumes are 0.0 for silent and 1.0 for the maximum volume.

# Master volume.  Controls all other volumes.
master volume = 1.0

# Footsteps volume.
footsteps volume = 0.2

# Music tracks volume.
music volume = 0.5

# Sound effects volume.
sfx volume = 1.0

# Voice dialog volume.
voice volume = 0.8

# Minimum size to use for the sound buffer cache, in MB. When the cache is
# filled, old buffers will be unloaded until it's using no more than this much
# memory. Must be less than or equal to 'buffer cache max'.
buffer cache min = 56

# Maximum size to use for the sound buffer cache, in MB. The cache can use up
# to this much memory until old buffers get purged.
buffer cache max = 64

# Specifies whether to enable HRTF processing. Valid values are: -1 = auto,
# 0 = off, 1 = on.
hrtf enable = -1

# Specifies which HRTF to use when HRTF is used. Blank means use the default.
hrtf =

# Specifies whether to use camera as audio listener
camera listener = false

# Specifies strength of doppler effect
doppler factor = 0.25

[Video]

# Resolution of the OpenMW window or screen.
resolution x = 800
resolution y = 600

# Specify the window mode.
# 0 = Fullscreen, 1 = Windowed Fullscreen, 2 = Windowed
window mode = 2

# Determines which screen OpenMW is on.  (>=0).
screen = 0

# Minimize OpenMW if it loses cursor or keyboard focus.
minimize on focus loss = true

# An operating system border is drawn around the OpenMW window.
window border = true

# Anti-aliasing reduces jagged polygon edges.  (>=0).
antialiasing = 0

# Vertical syncing to reduce tearing defects.
# 0 = Off
# 1 = On
# 2 = Adaptive
vsync mode = 0

# Maximum frames per second. 0.0 is unlimited, or >0.0 to limit.
framerate limit = 300

# Game video contrast.  (>0.0).  No effect in Linux.
contrast = 1.0

# Video gamma setting.  (>0.0).  No effect in Linux.
gamma = 1.0

[Water]

# Enable water shader with reflections and optionally refraction.
shader = false

# Reflection and refraction texture size in pixels. (512, 1024, 2048).
rtt size = 512

# Enable refraction which affects visibility through water plane.
refraction = false

# Draw objects on water reflections.
reflection detail = 2

# Whether to use fully detailed raindrop ripples. (0, 1, 2).
# 0 = rings only; 1 = sparse, high detail; 2 = dense, high detail
rain ripple detail = 1

# Overrides the value in '[Camera] small feature culling pixel size' specifically for water reflection/refraction textures.
small feature culling pixel size = 20.0

# By what factor water downscales objects. Only works with water shader and refractions on.
refraction scale = 1.0

# Make incident sunlight spread through water.
sunlight scattering = true

# Fade and wobble water plane edges to avoid harsh shoreline transitions.
wobbly shores = true

[Windows]

# Location and sizes of windows as a fraction of the OpenMW window or
# screen size. (0.0 to 1.0).  X & Y, Width & Height.

# Stats window displaying level, race, class, skills and stats.
stats x = 0.015
stats y = 0.015
stats w = 0.4275
stats h = 0.45
stats maximized x = 0.255
stats maximized y = 0.275
stats maximized w = 0.4275
stats maximized h = 0.45
stats pin = false
stats hidden = false
stats maximized = false

# Spells window displaying powers, spells, and magical items.
spells x = 0.63
spells y = 0.39
spells w = 0.36
spells h = 0.51
spells maximized x = 0.32
spells maximized y = 0.02
spells maximized w = 0.36
spells maximized h = 0.88
spells pin = false
spells hidden = false
spells maximized = false

# Local and world map window.
map x = 0.63
map y = 0.015
map w = 0.36
map h = 0.37
map maximized x = 0.015
map maximized y = 0.02
map maximized w = 0.97
map maximized h = 0.875
map pin = false
map hidden = false
map maximized = false

# Player inventory window when explicitly opened.
inventory x = 0.015
inventory y = 0.54
inventory w = 0.45
inventory h = 0.38
inventory maximized x = 0.015
inventory maximized y = 0.02
inventory maximized w = 0.97
inventory maximized h = 0.875
inventory pin = false
inventory hidden = false
inventory maximized = false

# Player inventory window when searching a container.
inventory container x = 0.015
inventory container y = 0.54
inventory container w = 0.45
inventory container h = 0.38
inventory container maximized x = 0.015
inventory container maximized y = 0.02
inventory container maximized w = 0.97
inventory container maximized h = 0.875
inventory container maximized = false

# Player inventory window when bartering with a shopkeeper.
inventory barter x = 0.015
inventory barter y = 0.54
inventory barter w = 0.45
inventory barter h = 0.38
inventory barter maximized x = 0.015
inventory barter maximized y = 0.02
inventory barter maximized w = 0.97
inventory barter maximized h = 0.875
inventory barter maximized = false

# Player inventory window when trading with a companion.
inventory companion x = 0.015
inventory companion y = 0.54
inventory companion w = 0.45
inventory companion h = 0.38
inventory companion maximized x = 0.015
inventory companion maximized y = 0.02
inventory companion maximized w = 0.97
inventory companion maximized h = 0.875
inventory companion maximized = false

# Dialog window for talking with NPCs.
dialogue x = 0.15
dialogue y = 0.5
dialogue w = 0.7
dialogue h = 0.45
dialogue maximized x = 0.015
dialogue maximized y = 0.02
dialogue maximized w = 0.97
dialogue maximized h = 0.875
dialogue maximized = false

# Alchemy window for crafting potions.
alchemy x = 0.25
alchemy y = 0.25
alchemy w = 0.5
alchemy h = 0.5
alchemy maximized x = 0.015
alchemy maximized y = 0.02
alchemy maximized w = 0.97
alchemy maximized h = 0.875
alchemy maximized = false

# Console command window for debugging commands.
console x = 0.255
console y = 0.215
console w = 0.49
console h = 0.3125
console maximized x = 0.015
console maximized y = 0.02
console maximized w = 0.97
console maximized h = 0.875
console maximized = false

# Container inventory when searching a container.
container x = 0.49
container y = 0.54
container w = 0.39
container h = 0.38
container maximized x = 0.015
container maximized y = 0.02
container maximized w = 0.97
container maximized h = 0.875
container maximized = false

# NPC inventory window when bartering with a shopkeeper.
barter x = 0.6
barter y = 0.27
barter w = 0.38
barter h = 0.63
barter maximized x = 0.015
barter maximized y = 0.02
barter maximized w = 0.97
barter maximized h = 0.875
barter maximized = false

# NPC inventory window when trading with a companion.
companion x = 0.6
companion y = 0.27
companion w = 0.38
companion h = 0.63
companion maximized x = 0.015
companion maximized y = 0.02
companion maximized w = 0.97
companion maximized h = 0.875
companion maximized = false

# Settings menu
settings x = 0.1
settings y = 0.1
settings w = 0.8
settings h = 0.8
settings maximized x = 0.015
settings maximized y = 0.02
settings maximized w = 0.97
settings maximized h = 0.875
settings maximized = false

# Postprocessor configuration window for controlling shaders.
postprocessor h = 0.95
postprocessor w = 0.44
postprocessor x = 0.01
postprocessor y = 0.02
postprocessor maximized x = 0.015
postprocessor maximized y = 0.02
postprocessor maximized w = 0.97
postprocessor maximized h = 0.875
postprocessor maximized = false

# Debug window for viewing logs and profiling
debug x = 0.70
debug y = 0.00
debug w = 0.30
debug h = 1.00
debug maximized x = 0.015
debug maximized y = 0.02
debug maximized w = 0.97
debug maximized h = 0.875
debug maximized = false

[Navigator]

# Enable navigator (true, false). When enabled background threads are started to build navmesh for world geometry.
# Pathfinding system uses navmesh to build paths. When disabled only pathgrid is used to build paths.
enable = true

# Scale of NavMesh coordinates to world coordinates (value > 0.0). Recastnavigation builds voxels for world geometry.
# Basically voxel size is 1 / "cell size". To reduce amount of voxels we apply scale factor, to make voxel size
# "recast scale factor" / "cell size". Default value calculates by this equation:
# sStepSizeUp * "recast scale factor" / "cell size" = 5 (max climb height should be equal to 4 voxels)
recast scale factor = 0.029411764705882353

# The z-axis cell size to use for fields. (value > 0.0)
# Defines voxel/grid/cell size. So their values have significant
# side effects on all parameters defined in voxel units.
# The minimum value for this parameter depends on the platform's floating point
# accuracy, with the practical minimum usually around 0.05.
# Same default value is used in RecastDemo.
cell height = 0.2

# The xy-plane cell size to use for fields. (value > 0.0)
# Defines voxel/grid/cell size. So their values have significant
# side effects on all parameters defined in voxel units.
# The minimum value for this parameter depends on the platform's floating point
# accuracy, with the practical minimum usually around 0.05.
# Same default value is used in RecastDemo.
cell size = 0.2

# Sets the sampling distance to use when generating the detail mesh. (value = 0.0 or value >= 0.9)
detail sample dist = 6.0

# The maximum distance the detail mesh surface should deviate from heightfield data. (value >= 0.0)
detail sample max error = 1.0

# The maximum distance a simplfied contour's border edges should deviate the original raw contour. (value >= 0.0)
max simplification error = 1.3

# The width and height of each tile. (value > 0)
tile size = 128

# The size of the non-navigable border around the heightfield. (value >= 0)
border size = 16

# The maximum allowed length for contour edges along the border of the mesh. (value >= 0)
max edge len = 12

# Maximum number of search nodes. (0 < value <= 65535)
max nav mesh query nodes = 2048

# Maximum number of polygons per navmesh tile (value = 2^n, 0 < n < 22). Maximum number of navmesh tiles depends on
# this value. 22 bits is a limit to store both tile identifier and polygon identifier (tiles = 2^(22 - log2(polygons))).
# See recastnavigation for more details.
max polygons per tile = 4096

# The maximum number of vertices allowed for polygons generated during the contour to polygon conversion process. (value >= 3)
max verts per poly = 6

# Any regions with a span count smaller than this value will, if possible, be merged with larger regions. (value >= 0)
region merge area = 400

# The minimum number of cells allowed to form isolated island areas. (value >= 0)
region min area = 64

# Number of background threads to update nav mesh (value >= 1)
async nav mesh updater threads = 1

# Maximum total cached size of all nav mesh tiles in bytes (value >= 0)
max nav mesh tiles cache size = 268435456

# Maximum size of path over polygons (value > 0)
max polygon path size = 1024

# Maximum size of smoothed path (value > 0)
max smooth path size = 1024

# Write recast mesh to file in .obj format for each use to update nav mesh (true, false)
enable write recast mesh to file = false

# Write NavMesh to file to be able to open by RecastDemo (true, false)
enable write nav mesh to file = false

# Write each recast mesh file with revision in name. Otherwise will rewrite same file. (true, false)
enable recast mesh file name revision = false

# Write each nav mesh file with revision in name. Otherwise will rewrite same file. (true, false)
enable nav mesh file name revision = false

# Write recast mesh file at path with this prefix
recast mesh path prefix =

# Write nav mesh file at path with this prefix
nav mesh path prefix =

# Render nav mesh (true, false)
enable nav mesh render = false

# Navigation mesh rendering mode (default, update frequency)
nav mesh render mode = area type

# Render agents paths (true, false)
enable agents paths render = false

# Render recast mesh (true, false)
enable recast mesh render = false

# Max number of navmesh tiles (value >= 0)
max tiles number = 1024

# Min time duration for the same tile update in milliseconds (value >= 0)
min update interval ms = 250

# Keep loading screen until navmesh is generated around the player for all tiles within manhattan distance (value >= 0).
# Distance is measured in the number of tiles and can be only an integer value.
wait until min distance to player = 5

# Use navigation mesh cache stored on disk (true, false)
enable nav mesh disk cache = true

# Cache navigation mesh tiles to disk (true, false)
write to navmeshdb = true

# Approximate maximum file size of navigation mesh cache stored on disk in bytes (value > 0)
max navmeshdb file size = 2147483648

# Wait until all queued async navmesh jobs are processed before exiting the engine (true, false)
wait for all jobs on exit = false

[Shadows]

# Enable or disable shadows. Bear in mind that this will force OpenMW to use shaders as if "[Shaders]/force shaders" was set to true.
enable shadows = false

# How many shadow maps to use - more of these means each shadow map texel covers less area, producing better looking shadows, but may decrease performance.
number of shadow maps = 3

# The distance from the camera at which shadows fade away completely. Set to 0 to make the distance infinite.
maximum shadow map distance = 8192

# Fraction of the maximum distance at which shadows begin to gradually fade away.
shadow fade start = 0.9

# Indirectly controls where to split the shadow map(s). Values closer to 1.0 bring more detail closer to the camera (potentially excessively so), and values closer to 0.0 spread it more evenly across the whole viewing distance. 0.5 is recommended for most viewing distances by the original Parallel Split Shadow Maps paper, but this does not take into account use of a Light Space Perspective transformation, so other values may be preferable. If some of the terms used here go over your head, you might not want to change this, especially not without reading the associated papers first. When using a higher-than-default viewing distance, values closer to 1.0 will prevent nearby shadows losing a lot of quality.
split point uniform logarithmic ratio = 0.5

# Indirectly controls where to split the shadow map(s). Positive values move split points away from the camera and negative values move them towards the camera. Intended to be used in conjunction with changes to 'split point uniform logarithmic ratio' to counteract side effects, but may cause additional, more serious side effects. Read the Parallel Split Shadow Maps paper by F Zhang et al before changing.
split point bias = 0.0

# Enable the debug hud to see what the shadow map(s) contain.
enable debug hud = false

# Enable the debug overlay to see where each shadow map affects.
enable debug overlay = false

# Used to set the type of tight scene bound calculation method to be used by the shadow map that covers a smaller area. "bounds" (default) is less precise shadows but better performance or "primitives" for more precise shadows at expense of CPU.
compute scene bounds = bounds

# How large to make the shadow map(s). Higher values increase GPU load, but can produce better-looking results. Power-of-two values may turn out to be faster on some GPU/driver combinations.
shadow map resolution = 1024

# Controls the minimum near/far ratio for the Light Space Perspective Shadow Map transformation. Helps prevent too much detail being brought towards the camera at the expense of detail further from the camera. Increasing this pushes detail further away.
minimum lispsm near far ratio = 0.25

# Used as the factor parameter for the polygon offset used for shadow map rendering. Higher values reduce shadow flicker, but risk increasing Peter Panning. See https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glPolygonOffset.xhtml for details.
polygon offset factor = 1.1

# Used as the units parameter for the polygon offset used for shadow map rendering. Higher values reduce shadow flicker, but risk increasing Peter Panning. See https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glPolygonOffset.xhtml for details.
polygon offset units = 4.0

# How far along the surface normal to project shadow coordinates. Higher values significantly reduce shadow flicker, usually with a lower increase of Peter Panning than the Polygon Offset settings. This value is in in-game units, so 1.0 is roughly 1.4 cm.
normal offset distance = 1.0

# Excludes theoretically unnecessary faces from shadow maps, slightly increasing performance. In practice, Peter Panning can be much less visible with these faces included, so if you have high polygon offset values, leave this off to minimise the side effects.
use front face culling = false

# Allow actors to cast shadows. Potentially decreases performance.
actor shadows = false

# Allow the player to cast shadows. Potentially decreases performance.
player shadows = false

# Allow terrain to cast shadows. Potentially decreases performance.
terrain shadows = false

# Allow world objects to cast shadows. Potentially decreases performance.
object shadows = false

# Allow shadows indoors. Due to limitations with Morrowind's data, only actors can cast shadows indoors, which some might feel is distracting.
enable indoor shadows = true

[Physics]
# Set the number of background threads used for physics.
# If no background threads are used, physics calculations are processed in the main thread
# and the settings below have no effect.
async num threads = 1

# Set the number of frames an inactive line-of-sight request will be kept
# refreshed in the background physics thread cache.
lineofsight keep inactive cache = 0

[Models]

# Attempt to load any valid NIF file regardless of its version and track the progress.
# Loading arbitrary meshes is not advised and may cause instability.
load unsupported nif files = false

# 3rd person base animation model that looks also for the corresponding kf-file
xbaseanim = meshes/xbase_anim.nif

# 3rd person base model with textkeys-data
baseanim = meshes/base_anim.nif

# 1st person base animation model that looks also for corresponding kf-file
xbaseanim1st = meshes/xbase_anim.1st.nif

# 3rd person beast race base model with textkeys-data
baseanimkna = meshes/base_animkna.nif

# 1st person beast race base animation model
baseanimkna1st = meshes/base_animkna.1st.nif

# 3rd person female base animation model
xbaseanimfemale = meshes/xbase_anim_female.nif

# 3rd person female base model with textkeys-data
baseanimfemale = meshes/base_anim_female.nif

# 1st person female base model with textkeys-data
baseanimfemale1st = meshes/base_anim_female.1st.nif

# 3rd person werewolf skin
wolfskin = meshes/wolf/skin.nif

# 1st person werewolf skin
wolfskin1st = meshes/wolf/skin.1st.nif

# Argonian smimkna
xargonianswimkna = meshes/xargonian_swimkna.nif

# File to load xbaseanim 3rd person animations
xbaseanimkf = meshes/xbase_anim.kf

# File to load xbaseanim 3rd person animations
xbaseanim1stkf = meshes/xbase_anim.1st.kf

# File to load xbaseanim animations from
xbaseanimfemalekf = meshes/xbase_anim_female.kf

# File to load xargonianswimkna animations from
xargonianswimknakf = meshes/xargonian_swimkna.kf

# Sky atmosphere mesh
skyatmosphere = meshes/sky_atmosphere.nif

# Sky clouds mesh
skyclouds = meshes/sky_clouds_01.nif

# Sky stars mesh 01
skynight01 = meshes/sky_night_01.nif

# Sky stars mesh 02
skynight02 = meshes/sky_night_02.nif

# Ash clouds weather effect
weatherashcloud = meshes/ashcloud.nif

# Blight clouds weather effect
weatherblightcloud = meshes/blightcloud.nif

# Snow falling weather effect
weathersnow = meshes/snow.nif

# Blizzard weather effect
weatherblizzard = meshes/blizzard.nif

[Groundcover]

# enable separate groundcover handling
enabled = false

# A groundcover density (0.0 <= value <= 1.0)
# 1.0 means 100% density
density = 1.0

# A maximum distance in game units on which groundcover is rendered.
rendering distance = 6144.0

# Whether grass should respond to the player treading on it.
# 0 - Grass cannot be trampled.
# 1 - The player's XY position is taken into account.
# 2 - The player's height above the ground is taken into account, too.
stomp mode = 2

# How far away from the player grass can be before it's unaffected by being trod on, and how far it moves when it is.
# 2 - MGE XE levels. Generally excessive, but what existing mods were made with in mind
# 1 - Reduced levels.
# 0 - Gentle levels.
stomp intensity = 1

[Lua]

# Enable performance-heavy debug features
lua debug = false

# Set the maximum number of threads used for Lua scripts.
# If zero, Lua scripts are processed in the main thread.
lua num threads = 1

# Enable Lua profiler
lua profiler = true

# No ownership tracking for allocations below or equal this size.
small alloc max size = 1024

# Memory limit for Lua runtime (only if lua profiler = true). If exceeded then only small allocations are allowed.
# Small allocations are always allowed, so e.g. Lua console can function. Default value is 2GB.
memory limit = 2147483648

# Print debug info about memory usage (only if lua profiler = true).
log memory usage = false

# The maximal number of Lua instructions per function call (only if lua profiler = true).
# If exceeded (e.g. because of an infinite loop) the function will be terminated.
instruction limit per call = 100000000

# Lua garbage collector steps per frame.
gc steps per frame = 100

[Stereo]
# Enable/disable stereo view. This setting is ignored in VR.
stereo enabled = false

# If enabled, OpenMW will use the GL_OVR_MultiView and GL_OVR_MultiView2 extensions where possible.
multiview = false

# May accelerate the BruteForce method when shadows are enabled
shared shadow maps = true

# If false, OpenMW-VR will disable display lists when using multiview. Necessary on some buggy drivers, but may incur a slight performance penalty.
allow display lists for multiview = false

# If false, the default OSG horizontal split will be used for stereo
# If true, the config defined in the [Stereo View] settings category will be used
# Note: This option is ignored in VR, and exists primarily for debugging purposes
use custom view = false

# If true, overrides rendering resolution for each eye.
# Note: This option is ignored in VR, and exists primarily for debugging purposes
use custom eye resolution = false

[Stereo View]
# The default values are based on an HP Reverb G2 HMD
eye resolution x = 3128
eye resolution y = 3060

# Left eye offset from center, expressed in MW units (1 meter = ~70)
left eye offset x = -2.35
left eye offset y = 0.0
left eye offset z = 0.0
# Left eye orientation, expressed as a quaternion
left eye orientation x = 0.0
left eye orientation y = 0.0
left eye orientation z = 0.0
left eye orientation w = 1.0
# Left eye field of view, expressed in radians
left eye fov left = -0.86
left eye fov right = 0.78
left eye fov up = 0.8
left eye fov down = -0.8

# Left eye offset from center, expressed in MW units (1 meter = ~70)
right eye offset x = 2.35
right eye offset y = 0.0
right eye offset z = 0.0
# Left eye orientation, expressed as a quaternion
right eye orientation x = 0.0
right eye orientation y = 0.0
right eye orientation z = 0.0
right eye orientation w = 1.0
# Left eye field of view
right eye fov left = -0.78
right eye fov right = 0.86
right eye fov up = 0.8
right eye fov down = -0.8

[Post Processing]

# Enables post-processing
enabled = false

# List of active shaders. This is more easily with the in-game shader HUD, by default accessible with the F2 key.
chain =

# Used for eye adaptation to control speed at which scene luminance can change from one frame to the next. No effect when HDR is not being utilized.
auto exposure speed = 0.9

# Transparent depth postpass. Re-renders transparent objects with alpha-clipping forced with a fixed threshold.
transparent postpass = true
