# WARNING: If this file is named settings-default.cfg or was generated
# from defaults.bin, then editing this file might have no effect, as
# these settings may be overwritten by your user settings.cfg file
# (see documentation for its location).
#
# This file provides minimal documentation for each setting, and
# ranges of recommended values. For detailed explanations of the
# significance of each setting, interaction with other settings, hard
# limits on value ranges and more information in general, please read
# the detailed documentation at:
#
# https://openmw.readthedocs.io/en/master/reference/modding/settings/index.html
#
[Camera]
# Near clipping plane (>0.0, e.g. 0.01 to 18.0).
near clip = 3
# 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
# Distance from the camera to the character in third person mode.
third person camera distance = 192
# If enabled then third person camera is positioned above character's shoulder and crosshair is visible.
view over shoulder = false
# Makes sense only if 'view over shoulder' is true. First number is horizontal offset (negative value means offset to the left), second number is vertical offset.
view over shoulder offset = 30 -10
# Switch shoulder automatically when player is close to an obstacle.
auto switch shoulder = true
# Slightly pulls camera away when the character moves. Works only in 'view over shoulder' mode. Set to 0 to disable.
zoom out when move coef = 20
# Automatically enable preview mode when player doesn't move.
preview if stand still = false
# Rotate the character to the view direction after exiting preview mode.
deferred preview rotation = true
# Enables head bobbing in first person mode
head bobbing = false
# Length of each step
head bobbing step = 90.0
# Amplitude of the bobbing effect
head bobbing height = 3.0
# Maximum camera roll angle (degrees)
head bobbing roll = 0.2
[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
# 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 objects being merged. A higher value means merging is more likely and may improve FPS at the cost of memory.
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
# Assign a random color to merged batches.
object paging debug batches = false
[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
[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
# Zoom level in pixels for HUD map widget. 64 is one cell, 128 is 1/4
# cell, 256 is 1/8 cell. See documentation for details. (e.g. 64 to 256).
local map hud widget size = 256
# 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
[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
# Resolution of TrueType fonts glyphs
ttf resolution = 96
# 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
# 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
# Format R G B A or empty for no special formatting
# Default to blue
color topic specific = 0.45 0.5 0.8 1
# The color of dialogue topic keywords that gives already read responses
# Format R G B A or empty for no special formatting
# Default to grey
color topic exhausted = 0.3 0.3 0.3 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
# 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
# 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
[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
[Shaders]
# Force rendering with shaders. By default, only bump-mapped objects will use shaders.
# Enabling this option may cause slightly different visuals if the "clamp lighting" option
# is set to false. Otherwise, there should not be a visual difference.
force shaders = false
# Force the use of per pixel lighting. By default, only bump mapped objects use per-pixel lighting.
# Has no effect if the 'force shaders' option is false.
# Enabling per-pixel lighting can result in visual differences to the original MW engine. It is not
# recommended to enable this option when using vanilla Morrowind files, because certain lights in Morrowind
# rely on vertex lighting to look as intended.
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). Always affects terrain.
# 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
# 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
# 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
# Sets the bounding sphere multiplier of light sources if 'lighting method' is
# not 'legacy'. These are 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 requires 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.
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
[Input]
# Capture control of the cursor prevent movement outside the window.
grab cursor = true
# Key controlling sneak toggles setting instead of being held down.
toggle sneak = false
# Player is running by default.
always run = false
# 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.01
# 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
# Display the time played on each save file in the load menu.
timeplayed = false
# 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 =
[Video]
# Resolution of the OpenMW window or screen.
resolution x = 800
resolution y = 600
# OpenMW takes complete control of the screen.
fullscreen = false
# 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, 2, 4, 8, 16).
antialiasing = 0
# Enable vertical syncing to reduce tearing defects.
vsync = false
# 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
# Type of screenshot to take (regular, cylindrical, spherical or planet), optionally followed by
# screenshot width, height and cubemap resolution in pixels. (e.g. spherical 1600 1000 1200)
screenshot type = regular
[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
# 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
[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.0
stats maximized y = 0.0
stats maximized w = 1.0
stats maximized h = 1.0
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.0
spells maximized y = 0.0
spells maximized w = 1.0
spells maximized h = 1.0
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.0
map maximized y = 0.0
map maximized w = 1.0
map maximized h = 1.0
map pin = false
map hidden = false
map maximized = false
# Player inventory window when explicitly opened.
inventory x = 0.0
inventory y = 0.54
inventory w = 0.45
inventory h = 0.38
inventory maximized x = 0.0
inventory maximized y = 0.0
inventory maximized w = 1.0
inventory maximized h = 1.0
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.0
inventory container maximized y = 0.5
inventory container maximized w = 1.0
inventory container maximized h = 0.5
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.0
inventory barter maximized y = 0.5
inventory barter maximized w = 1.0
inventory barter maximized h = 0.5
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.0
inventory companion maximized y = 0.5
inventory companion maximized w = 1.0
inventory companion maximized h = 0.5
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.0
dialogue maximized y = 0.0
dialogue maximized w = 1.0
dialogue maximized h = 1.0
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.0
alchemy maximized y = 0.0
alchemy maximized w = 1.0
alchemy maximized h = 1.0
alchemy maximized = false
# Console command window for debugging commands.
console x = 0.015
console y = 0.015
console w = 1.0
console h = 0.5
console maximized x = 0.0
console maximized y = 0.0
console maximized w = 1.0
console maximized h = 1.0
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.0
container maximized y = 0.0
container maximized w = 1.0
container maximized h = 0.5
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.0
barter maximized y = 0.0
barter maximized w = 1.0
barter maximized h = 0.5
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.0
companion maximized y = 0.0
companion maximized w = 1.0
companion maximized h = 0.5
companion 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 size = 20
# The minimum number of cells allowed to form isolated island areas. (value >= 0)
region min size = 8
# 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
# 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 = 512
# 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
[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
# If true, allow shadow maps to overlap. Counter-intuitively, will produce better results when the light is behind the camera. When enabled, OpenMW uses Cascaded Shadow Maps and when disabled, it uses Parallel Split Shadow Maps.
allow shadow map overlap = true
# 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 "allow shadow map overlap" is combined with 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
Process movement queue in one or several background threads
Before movement calculation, the main thread prepare a
vector of ActorFrameData, which contains all data necessary to perform
the simulation, and feed it to the solver. At the same time it fetches
the result from the previous background simulation, which in turn is
used by the game mechanics.
Other functions of the physics system (weapon hit for instance)
interrupt the background simulation, with some exceptions described
below.
The number of threads is controlled by the numeric setting
[Physics]
async num threads
In case 'async num threads' > 1 and Bullet doesn't support multiple threads,
1 async thread will be used. 0 means synchronous solver.
Additional settings (will be silently switched off if async num threads = 0)
[Physics]
defer aabb update
Update AABBs of actors and objects in the background thread(s). It is not an especially
costly operation, but it needs exclusive access to the collision world, which blocks
other operations. Since AABB needs to be updated for collision detection, one can queue
them to defer update before start of the movement solver. Extensive tests on as much
as one installation (mine) show no drawback having that switched on.
[Physics]
lineofsight keep inactive cache
Control for how long (how many frames) the line of sight (LOS) request will be kept updated.
When a request for LOS is made for the first time, the background threads are stopped to
service it. From now on, the LOS will be refreshed preemptively as part of the background
routine until it is not required for lineofsight keep inactive cache frames. This mean
that subsequent request will not interrupt the background computation.
4 years ago
[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.
Process movement queue in one or several background threads
Before movement calculation, the main thread prepare a
vector of ActorFrameData, which contains all data necessary to perform
the simulation, and feed it to the solver. At the same time it fetches
the result from the previous background simulation, which in turn is
used by the game mechanics.
Other functions of the physics system (weapon hit for instance)
interrupt the background simulation, with some exceptions described
below.
The number of threads is controlled by the numeric setting
[Physics]
async num threads
In case 'async num threads' > 1 and Bullet doesn't support multiple threads,
1 async thread will be used. 0 means synchronous solver.
Additional settings (will be silently switched off if async num threads = 0)
[Physics]
defer aabb update
Update AABBs of actors and objects in the background thread(s). It is not an especially
costly operation, but it needs exclusive access to the collision world, which blocks
other operations. Since AABB needs to be updated for collision detection, one can queue
them to defer update before start of the movement solver. Extensive tests on as much
as one installation (mine) show no drawback having that switched on.
[Physics]
lineofsight keep inactive cache
Control for how long (how many frames) the line of sight (LOS) request will be kept updated.
When a request for LOS is made for the first time, the background threads are stopped to
service it. From now on, the LOS will be refreshed preemptively as part of the background
routine until it is not required for lineofsight keep inactive cache frames. This mean
that subsequent request will not interrupt the background computation.
4 years ago
async num threads = 0
# Set the number of frames an inactive line-of-sight request will be kept
# refreshed in the background physics thread cache.
# If this is set to -1, line-of-sight requests are never cached.
Process movement queue in one or several background threads
Before movement calculation, the main thread prepare a
vector of ActorFrameData, which contains all data necessary to perform
the simulation, and feed it to the solver. At the same time it fetches
the result from the previous background simulation, which in turn is
used by the game mechanics.
Other functions of the physics system (weapon hit for instance)
interrupt the background simulation, with some exceptions described
below.
The number of threads is controlled by the numeric setting
[Physics]
async num threads
In case 'async num threads' > 1 and Bullet doesn't support multiple threads,
1 async thread will be used. 0 means synchronous solver.
Additional settings (will be silently switched off if async num threads = 0)
[Physics]
defer aabb update
Update AABBs of actors and objects in the background thread(s). It is not an especially
costly operation, but it needs exclusive access to the collision world, which blocks
other operations. Since AABB needs to be updated for collision detection, one can queue
them to defer update before start of the movement solver. Extensive tests on as much
as one installation (mine) show no drawback having that switched on.
[Physics]
lineofsight keep inactive cache
Control for how long (how many frames) the line of sight (LOS) request will be kept updated.
When a request for LOS is made for the first time, the background threads are stopped to
service it. From now on, the LOS will be refreshed preemptively as part of the background
routine until it is not required for lineofsight keep inactive cache frames. This mean
that subsequent request will not interrupt the background computation.
4 years ago
lineofsight keep inactive cache = 0
# Defer bounding boxes update until collision detection.
Process movement queue in one or several background threads
Before movement calculation, the main thread prepare a
vector of ActorFrameData, which contains all data necessary to perform
the simulation, and feed it to the solver. At the same time it fetches
the result from the previous background simulation, which in turn is
used by the game mechanics.
Other functions of the physics system (weapon hit for instance)
interrupt the background simulation, with some exceptions described
below.
The number of threads is controlled by the numeric setting
[Physics]
async num threads
In case 'async num threads' > 1 and Bullet doesn't support multiple threads,
1 async thread will be used. 0 means synchronous solver.
Additional settings (will be silently switched off if async num threads = 0)
[Physics]
defer aabb update
Update AABBs of actors and objects in the background thread(s). It is not an especially
costly operation, but it needs exclusive access to the collision world, which blocks
other operations. Since AABB needs to be updated for collision detection, one can queue
them to defer update before start of the movement solver. Extensive tests on as much
as one installation (mine) show no drawback having that switched on.
[Physics]
lineofsight keep inactive cache
Control for how long (how many frames) the line of sight (LOS) request will be kept updated.
When a request for LOS is made for the first time, the background threads are stopped to
service it. From now on, the LOS will be refreshed preemptively as part of the background
routine until it is not required for lineofsight keep inactive cache frames. This mean
that subsequent request will not interrupt the background computation.
4 years ago
defer aabb update = true
[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
# A minimum size of groundcover chunk in cells (0.125, 0.25, 0.5, 1.0)
min chunk size = 0.5
# 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
[Stereo]
# Enable/disable stereo view. This setting is ignored in VR.
stereo enabled = false
# Method used to render stereo if enabled
# Must be one of the following: BruteForce, GeometryShader
# BruteForce: Generates stereo using two cameras and two cull/render passes. Choose this if your game is GPU-bound.
# GeometryShader: Generates stereo in a single pass using automatically generated geometry shaders. May break custom shaders. Choose this if your game is CPU-bound.
stereo method = BruteForce
# May accelerate the BruteForce method when shadows are enabled
shared shadow maps = true
[VR]
# Should match your real height in the format meters.centimeters. This is used to scale your position within the vr stage to better match your character.
real height = 1.85
# If enabled, the game window will show your VR view. If not, it will show nothing.
mirror texture = true
# If mirror texture is enabled, what eye to pick. Must be 'left', 'right', or 'both'.
mirror texture eye = right
# If true, draw left eye on the right and vice versa to allow cross-eyed view.
flip mirror texture order = true
# Resolution of each eye. 'auto' or 'recommended' uses the resolution recommended by openxr. 'max' uses the greater available resolution. If a resolution greater than the maximum reported by openxr is selected, the max recommended by openxr is used instead. The recommended and maximum resolutions will be output in openmw.log during startup.
left eye resolution x = auto
left eye resolution y = auto
right eye resolution x = auto
right eye resolution y = auto
# Determines how quickly you have to move your hand minimum, in meters/second, to perform an attack
realistic combat minimum swing velocity = 1.0
# Determines how quickly you have to move your hand to achieve an attack of maximum strength.
realistic combat maximum swing velocity = 4.0
# Enables controller vibrations when you hit or are hit.
haptics enabled = true
# If enabled, movement direction is taken from the left hand tracker, instead of the head tracker.
hand directed movement = false
# Position of the hud over the left hand
# Valid options are: top, wrist
left hand hud position = wrist
# If true, OpenMW-VR will try to use DirectX swapchains instead of OpenGL swapchains. They are HW bridged to OpenGL using the WGL_NV_DX_interop2 extension.
# As the general quality of OpenXR DirectX runtimes is better than OpenGL runtimes, i default this to true.
Prefer DirectX swapchains = true
# If true, OpenMW-VR will use sRGB textures in its swapchains if available. Needed for some headsets that don't play nice without sRGB.
Prefer sRGB swapchains = false
# If true, OpenMW-VR will enable seated play.
seated play = false
[VR Debug]
# If true, OpenMW-VR will enable gamma postprocessing
gamma postprocessing = true
# Openmw will sync with openxr at the beginning of this phase in the rendering pipeline. From early to late in the pipeline the options are update, cull, draw, and swap in that order. If you experience visual glitches such as frames jittering across your vision, try changing this to an earlier phase.
openxr sync phase = draw
# Log all calls to openxr, not just ones that fail. Useful for debugging.
log all openxr calls = false
# If false, openmw will quit with an exception if an openxr call fails for any reason
continue on errors = true
# If true, enable openxr debug functionality via the XR_EXT_debug_utils extension
enable XR_EXT_debug_utils = false
# If true, enable composition layer depth functionality via the XR_KHR_composition_layer_depth extension
# This defaults to false because either my implementation is borked or some runtimes' are.
# It'll stay in settings jail until i figure it out.
enable XR_KHR_composition_layer_depth = false
# Enable/disable openxr debug message levels
XR_EXT_debug_utils message level verbose = false
XR_EXT_debug_utils message level info = true
XR_EXT_debug_utils message level warning = true
XR_EXT_debug_utils message level error = true
# Enable/disable openxr debug message types
XR_EXT_debug_utils message type general = true
XR_EXT_debug_utils message type validation = true
XR_EXT_debug_utils message type performance = true
XR_EXT_debug_utils message type conformance = true