From 759cea3051ae934d8a151e24455644f0d636499c Mon Sep 17 00:00:00 2001 From: Cody Glassman Date: Mon, 23 Jun 2025 17:39:01 -0700 Subject: [PATCH] docs - advanced settings --- docs/source/_ext/omw-directives.py | 76 ++ docs/source/_static/omw-directives.css | 21 + docs/source/_static/theme-override.css | 8 +- docs/source/conf.py | 2 + .../source/reference/modding/settings/GUI.rst | 410 +++---- .../source/reference/modding/settings/HUD.rst | 23 +- .../reference/modding/settings/camera.rst | 194 ++- .../reference/modding/settings/cells.rst | 286 ++--- .../source/reference/modding/settings/fog.rst | 264 ++-- .../reference/modding/settings/game.rst | 1059 ++++++++--------- .../reference/modding/settings/general.rst | 192 ++- .../modding/settings/groundcover.rst | 153 ++- .../reference/modding/settings/index.rst | 22 +- .../reference/modding/settings/input.rst | 388 +++--- .../source/reference/modding/settings/lua.rst | 138 +-- .../source/reference/modding/settings/map.rst | 148 +-- .../reference/modding/settings/models.rst | 336 ++---- .../reference/modding/settings/navigator.rst | 639 ++++------ .../reference/modding/settings/physics.rst | 43 +- .../modding/settings/postprocessing.rst | 82 +- .../reference/modding/settings/saves.rst | 49 +- .../reference/modding/settings/shaders.rst | 560 ++++----- .../reference/modding/settings/shadows.rst | 436 +++---- .../reference/modding/settings/sound.rst | 205 ++-- .../reference/modding/settings/stereo.rst | 90 +- .../reference/modding/settings/stereoview.rst | 334 +++--- .../reference/modding/settings/terrain.rst | 333 +++--- .../reference/modding/settings/video.rst | 312 +++-- .../reference/modding/settings/water.rst | 252 ++-- .../reference/modding/settings/windows.rst | 823 +++++++++---- 30 files changed, 3753 insertions(+), 4125 deletions(-) create mode 100644 docs/source/_ext/omw-directives.py create mode 100644 docs/source/_static/omw-directives.css diff --git a/docs/source/_ext/omw-directives.py b/docs/source/_ext/omw-directives.py new file mode 100644 index 0000000000..245c84ad7a --- /dev/null +++ b/docs/source/_ext/omw-directives.py @@ -0,0 +1,76 @@ +from docutils import nodes +from docutils.parsers.rst import Directive, directives + +class OMWSettingDirective(Directive): + has_content = True + option_spec = { + 'title': directives.unchanged_required, + 'type': directives.unchanged_required, + 'range': directives.unchanged, + 'default': directives.unchanged, + 'location': directives.unchanged, + } + + badge_map = { + 'float32': 'bdg-secondary', 'float64': 'bdg-muted', + 'int': 'bdg-primary', 'uint': 'bdg-light', + 'string': 'bdg-success', 'boolean': 'bdg-warning', + 'color': 'bdg-info', + } + + def run(self): + opts = self.options + title = opts['title'] + type_tags = opts['type'].split('|') + badges = ' '.join(f':{self.badge_map.get(t)}:`{t}`' for t in type_tags) + + values = [ + badges, + opts.get('range', ''), + opts.get('default', ''), + opts.get('location', ':bdg-danger:`user settings.cfg`') + ] + + table = nodes.table(classes=['omw-setting']) + tgroup = nodes.tgroup(cols=4) + table += tgroup + for _ in range(4): + tgroup += nodes.colspec(colwidth=20) + + thead = nodes.thead() + tgroup += thead + thead += nodes.row('', *[ + nodes.entry('', nodes.paragraph(text=label)) + for label in ['Type', 'Range', 'Default', 'Location'] + ]) + + tbody = nodes.tbody() + tgroup += tbody + row = nodes.row() + + for i, val in enumerate(values): + entry = nodes.entry() + inline, _ = self.state.inline_text(val, self.lineno) + if i == 2 and 'color' in type_tags: + rgba = [float(c) for c in opts['default'].split()] + style = f'background-color:rgba({rgba[0]*255}, {rgba[1]*255}, {rgba[2]*255}, {rgba[3]})' + chip = nodes.raw('', f'', format='html') + wrapper = nodes.container(classes=['type-color-wrapper'], children=[chip] + inline) + entry += wrapper + else: + entry += inline + row += entry + tbody += row + + desc = nodes.paragraph() + self.state.nested_parse(self.content, self.content_offset, desc) + + section = nodes.section(ids=[nodes.make_id(title)]) + section += nodes.title(text=title) + section += table + section += desc + return [section] + +def setup(app): + app.add_css_file("omw-directives.css") + app.add_directive("omw-setting", OMWSettingDirective) diff --git a/docs/source/_static/omw-directives.css b/docs/source/_static/omw-directives.css new file mode 100644 index 0000000000..38f6218025 --- /dev/null +++ b/docs/source/_static/omw-directives.css @@ -0,0 +1,21 @@ +.omw-setting td:nth-child(1) { width: 20%; } +.omw-setting td:nth-child(2) { width: 20%; } +.omw-setting td:nth-child(3) { width: 20%; } +.omw-setting td:nth-child(4) { width: 20%; } + +.omw-setting .type-color-wrapper { + display: flex; + flex-direction: row; + align-items: center; + justify-content: left; + padding: 0; + gap: 12px; +} + +.color-chip { + display: inline-block; + width: 1.5em; + height: 1.5em; + border-radius: 0.2em; + border: 1px solid #333; +} diff --git a/docs/source/_static/theme-override.css b/docs/source/_static/theme-override.css index fa1e8ddb79..e41ab2c2d6 100644 --- a/docs/source/_static/theme-override.css +++ b/docs/source/_static/theme-override.css @@ -113,18 +113,18 @@ tbody tr:hover { } } -/* Less intrusive scrollbar in left section TOC */ -#left-sidebar::-webkit-scrollbar { +/* Less intrusive scrollbar in the TOC */ +#left-sidebar::-webkit-scrollbar, #right-sidebar .sticky::-webkit-scrollbar { width: 6px; border-radius: 0; } -#left-sidebar::-webkit-scrollbar-thumb { +#left-sidebar::-webkit-scrollbar-thumb, #right-sidebar .sticky::-webkit-scrollbar-thumb { background-color: hsl(var(--border));; border-radius: 0; } -#left-sidebar::-webkit-scrollbar-thumb:hover { +#left-sidebar::-webkit-scrollbar-thumb:hover, #right-sidebar .sticky::-webkit-scrollbar-thumb:hover { background-color: hsl(var(--muted));; } diff --git a/docs/source/conf.py b/docs/source/conf.py index 73d195ae1b..aaa42e3678 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -25,6 +25,7 @@ from sphinxawesome_theme.postprocess import Icons # documentation root, use os.path.abspath to make it absolute, like shown here. project_root = os.path.abspath('../../') sys.path.insert(0, project_root) +sys.path.append(os.path.abspath("_ext")) # -- General configuration ------------------------------------------------ @@ -42,6 +43,7 @@ extensions = [ 'sphinx.ext.viewcode', 'sphinx.ext.autosectionlabel', 'sphinx_design', + 'omw-directives' ] #autosectionlabel_prefix_document = True diff --git a/docs/source/reference/modding/settings/GUI.rst b/docs/source/reference/modding/settings/GUI.rst index 8a27ed2c01..b9065c8daf 100644 --- a/docs/source/reference/modding/settings/GUI.rst +++ b/docs/source/reference/modding/settings/GUI.rst @@ -1,232 +1,184 @@ GUI Settings ############ -scaling factor --------------- - -:Type: floating point -:Range: 0.5 to 8.0 -:Default: 1.0 - -This setting scales GUI windows. -A value of 1.0 results in the normal scale. Larger values are useful to increase the scale of the GUI for high resolution displays. - -This setting can be controlled in the Settings tab of the launcher. - -font size ---------- - -:Type: integer -:Range: 12 to 18 -:Default: 16 - -Allows to specify glyph size for in-game fonts. -Note: default bitmap fonts are supposed to work with 16px size, otherwise glyphs will be blurry. -TrueType fonts do not have this issue. - -This setting can be controlled in the Settings tab of the launcher. - -menu transparency ------------------ - -:Type: floating point -:Range: 0.0 (transparent) to 1.0 (opaque) -:Default: 0.84 - -This setting controls the transparency of the GUI windows. -This setting can be adjusted in game with the Menu Transparency slider in the Prefs panel of the Options menu. - -tooltip delay -------------- - -:Type: floating point -:Range: >= 0.0 -:Default: 0.0 - -This value determines the number of seconds between when you begin hovering over an item and when its tooltip appears. -This setting only affects the tooltip delay for objects under the crosshair in GUI mode windows. - -The tooltip displays context sensitive information on the selected GUI element, -such as weight, value, damage, armor rating, magical effects, and detailed description. - -This setting can be adjusted between 0.0 and 1.0 in game -with the Menu Help Delay slider in the Prefs panel of the Options menu. - -keyboard navigation -------------------- - -:Type: boolean -:Range: True/False -:Default: True - -Enable or disable keyboard navigation, such as arrow keys and tab moving UI focus, spacebar and Use keys pressing buttons. - -stretch menu background ------------------------ - -:Type: boolean -:Range: True/False -:Default: False - -Stretch or shrink the main menu screen, loading splash screens, introductory movie, -and cut scenes to fill the specified video resolution, distorting their aspect ratio. -The Bethesda provided assets have a 4:3 aspect ratio, but other assets are permitted to have other aspect ratios. -If this setting is false, the assets will be centered in the mentioned 4:3 aspect ratio, -with black bars filling the remainder of the screen. - -This setting can be controlled in the Settings tab of the launcher. - -subtitles ---------- - -:Type: boolean -:Range: True/False -:Default: False - -Enable or disable subtitles for NPC spoken dialog (and some sound effects). -Subtitles will appear in a tool tip box in the lower center of the screen. - -This setting can be toggled in game with the Subtitles button in the Prefs panel of Options menu. - -hit fader ---------- - -:Type: boolean -:Range: True/False -:Default: True - -This setting enables or disables the "red flash" overlay that provides a visual clue when the character has taken damage. - -If this setting is disabled, the player will "bleed" like NPCs do. - -This setting can only be configured by editing the settings configuration file. - -werewolf overlay ----------------- - -:Type: boolean -:Range: True/False -:Default: True - -Enable or disable the werewolf visual effect in first-person mode. - -This setting can only be configured by editing the settings configuration file. - -color background owned ----------------------- - -:Type: RGBA floating point -:Range: 0.0 to 1.0 -:Default: 0.15 0.0 0.0 1.0 (dark red) - -The following two settings determine the background color of the tool tip and the crosshair -when hovering over an item owned by an NPC. -The color definitions are composed of four floating point values between 0.0 and 1.0 inclusive, -representing the red, green, blue and alpha channels. The alpha value is currently ignored. -The crosshair color will have no effect if the crosshair setting in the HUD section is disabled. - -This setting can only be configured by editing the settings configuration file. -This setting has no effect if the show owned setting in the Game Settings Section is false. - -color crosshair owned ---------------------- - -:Type: RGBA floating point -:Range: 0.0 to 1.0 -:Default: 1.0 0.15 0.15 1.0 (bright red) - -This setting sets the color of the crosshair when hovering over an item owned by an NPC. -The value is composed of four floating point values representing the red, green, blue and alpha channels. -The alpha value is currently ignored. - -This setting can only be configured by editing the settings configuration file. -This setting has no effect if the crosshair setting in the HUD Settings Section is false. -This setting has no effect if the show owned setting in the Game Settings Section is false. - -color topic enable ------------------- - -:Type: boolean -:Range: True/False -:Default: False - -This setting controls whether the topics available in the dialogue topic list are coloured according to their state. -See 'color topic specific' and 'color topic exhausted' for details. - -color topic specific --------------------- - -:Type: RGBA floating point -:Range: 0.0 to 1.0 for each channel -:Default: 0.45 0.5 0.8 1 (blue) - -This setting overrides the colour of dialogue topics that have a response unique to the actors speaking. -The value is composed of four floating point values representing the red, green, blue and alpha channels. -The alpha value is currently ignored. - -A topic response is considered unique if its Actor filter field contains the speaking actor's object ID and hasn't yet been read. - -color topic specific over -------------------------- - -:Type: RGBA floating point -:Range: 0.0 to 1.0 for each channel -:Default: 0.6 0.6 0.85 1 (blue) - -This setting provides an "over" colour to dialogue topics that meet the color topic specific criteria. -The value is composed of four floating point values representing the red, green, blue and alpha channels. -The alpha value is currently ignored. - -A dialogue topic is considered "over" if it is the active GUI element through keyboard or mouse events. - -color topic specific pressed ----------------------------- - -:Type: RGBA floating point -:Range: 0.0 to 1.0 for each channel -:Default: 0.3 0.35 0.75 1 (blue) - -This setting provides an "pressed" colour to dialogue topics that meet the color topic specific criteria. -The value is composed of four floating point values representing the red, green, blue and alpha channels. -The alpha value is currently ignored. - -A dialogue topic is considered "pressed" if it is the active GUI element and it receives a sustained keyboard or mouse event. - -color topic exhausted ---------------------- - -:Type: RGBA floating point -:Range: 0.0 to 1.0 for each channel -:Default: 0.3 0.3 0.3 1 (grey) - -This setting overrides the colour of dialogue topics which have been "exhausted" by the player. -The value is composed of four floating point values representing the red, green, blue and alpha channels. -The alpha value is currently ignored. - -A topic is considered "exhausted" if the response the player is about to see has already been seen. - -color topic exhausted over --------------------------- - -:Type: RGBA floating point -:Range: 0.0 to 1.0 for each channel -:Default: 0.55 0.55 0.55 1 (grey) - -This setting provides an "over" colour to dialogue topics that meet the color topic exhausted criteria. -The value is composed of four floating point values representing the red, green, blue and alpha channels. -The alpha value is currently ignored. - -A dialogue topic is considered "over" if it is the active GUI element through keyboard or mouse events. - -color topic exhausted pressed ------------------------------ - -:Type: RGBA floating point -:Range: 0.0 to 1.0 for each channel -:Default: 0.45 0.45 0.45 1 (grey) - -This setting provides a "pressed" colour to dialogue topics that meet the color topic exhausted criteria. -The value is composed of four floating point values representing the red, green, blue and alpha channels. -The alpha value is currently ignored. - -A dialogue topic is considered "pressed" if it is the active GUI element and it receives a sustained keyboard or mouse event. +.. omw-setting:: + :title: scaling factor + :type: float32 + :range: 0.5 to 8.0 + :default: 1.0 + :location: :bdg-success:`Launcher > Settings > Interface` + + This setting scales GUI windows. + A value of 1.0 results in normal scale. + Larger values increase GUI scale for high resolution displays. + +.. omw-setting:: + :title: font size + :type: int + :range: 12 to 18 + :default: 16 + :location: :bdg-success:`Launcher > Settings > Interface` + + Specifies glyph size for in-game fonts. + Default bitmap fonts work best at 16px; others may be blurry. + trueType fonts do not have this issue. + +.. omw-setting:: + :title: menu transparency + :type: float32 + :range: 0.0 (transparent) to 1.0 (opaque) + :default: 0.84 + + Controls transparency of GUI windows. + Adjustable in game via Menu Transparency slider in the Prefs panel of Options. + +.. omw-setting:: + :title: tooltip delay + :type: float32 + :range: ≥ 0.0 + :default: 0.0 + + Seconds delay before tooltip appears when hovering over an item in GUI mode. + Tooltips show context-sensitive info (weight, value, damage, etc.). + Adjustable in game with Menu Help Delay slider in Prefs panel. + +.. omw-setting:: + :title: keyboard navigation + :type: boolean + :range: true, false + :default: true + + Enable or disable keyboard navigation (arrow keys, tab focus, spacebar, Use key). + +.. omw-setting:: + :title: stretch menu background + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Interface` + + Stretch or shrink main menu, splash screens, intro movies, and cut scenes + to fill the video resolution, possibly distorting aspect ratio. + Bethesda assets are 4:3 ratio; others may differ. + If false, assets are centered with black bars filling remainder. + +.. omw-setting:: + :title: subtitles + :type: boolean + :range: true, false + :default: false + + Enable or disable subtitles for NPC dialog and some sound effects. + Subtitles appear in a tooltip box at screen lower center. + Toggleable in game with Subtitles button in Prefs panel. + +.. omw-setting:: + :title: hit fader + :type: boolean + :range: true, false + :default: true + + + Enables or disables the red flash overlay when the character takes damage. + Disabling causes the player to "bleed" like NPCs. + +.. omw-setting:: + :title: werewolf overlay + :type: boolean + :range: true, false + :default: true + + + Enable or disable the werewolf visual effect in first-person mode. + +.. omw-setting:: + :title: color background owned + :type: color + :range: [0, 1] + :default: 0.15 0.0 0.0 1.0 + + + Background color of tooltip and crosshair when hovering over an NPC-owned item. + Four floating point values: red, green, blue, alpha (alpha ignored). + No effect if "show owned" in Game Settings is false. + +.. omw-setting:: + :title: color crosshair owned + :type: color + :range: [0, 1] + :default: 1.0 0.15 0.15 1.0 + + + Crosshair color when hovering over an NPC-owned item. + Four floating point values: red, green, blue, alpha (alpha ignored). + No effect if crosshair setting in HUD is false or "show owned" in Game Settings is false. + +.. omw-setting:: + :title: color topic enable + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Interface` + + Controls whether dialogue topics in the list are colored by their state. + See related "color topic specific" and "color topic exhausted". + +.. omw-setting:: + :title: color topic specific + :type: color + :range: [0, 1] + :default: 0.45 0.5 0.8 1 + + Overrides color of dialogue topics with unique actor responses. + Four floating point values: red, green, blue, alpha (alpha ignored). + Unique if Actor filter matches speaking actor and not read yet. + +.. omw-setting:: + :title: color topic specific over + :type: color + :range: [0, 1] + :default: 0.6 0.6 0.85 1 + + "Over" color for dialogue topics meeting "color topic specific" criteria. + Four floating point values; alpha ignored. + Active GUI element via keyboard or mouse events. + +.. omw-setting:: + :title: color topic specific pressed + :type: color + :range: [0, 1] + :default: 0.3 0.35 0.75 1 + + "Pressed" color for dialogue topics meeting "color topic specific". + Four floating point values; alpha ignored. + Active GUI element receiving sustained input. + +.. omw-setting:: + :title: color topic exhausted + :type: color + :range: [0, 1] + :default: 0.3 0.3 0.3 1 + + Overrides color of dialogue topics exhausted by the player. + Four floating point values; alpha ignored. + Exhausted if response has been seen. + +.. omw-setting:: + :title: color topic exhausted over + :type: color + :range: [0, 1] + :default: 0.55 0.55 0.55 1 + + "Over" color for dialogue topics meeting "color topic exhausted". + Four floating point values; alpha ignored. + Active GUI element via keyboard or mouse. + +.. omw-setting:: + :title: color topic exhausted pressed + :type: color + :range: [0, 1] + :default: 0.45 0.45 0.45 1 + + "Pressed" color for dialogue topics meeting "color topic exhausted". + Four floating point values; alpha ignored. + Active GUI element receiving sustained input. diff --git a/docs/source/reference/modding/settings/HUD.rst b/docs/source/reference/modding/settings/HUD.rst index 07a3135c8d..55fcc62e28 100644 --- a/docs/source/reference/modding/settings/HUD.rst +++ b/docs/source/reference/modding/settings/HUD.rst @@ -1,18 +1,15 @@ HUD Settings ############ -crosshair ---------- +.. omw-setting:: + :title: crosshair + :type: boolean + :range: true, false + :default: true + :location: :bdg-info:`In Game > Options > Video` -:Type: boolean -:Range: True/False -:Default: True + Determines whether the crosshair or reticle is displayed. + Enabling provides immediate feedback about the focused object. + Disabling may improve immersion or be preferred for screenshots. -This setting determines whether the crosshair or reticle is displayed. -Enabling the crosshair provides more immediate feedback about which object is currently the focus of actions. -Some players perceive that disabling the crosshair provides a more immersive experience. -Another common use is to disable the crosshair for screen shots. - -As an alternative to this setting, the complete GUI, including the crosshair, may be toggled at runtime with the F11 key. - -This setting can be toggled with the Crosshair button in the Prefs panel of the Options menu. + The complete GUI, including crosshair, can be toggled at runtime with F11. diff --git a/docs/source/reference/modding/settings/camera.rst b/docs/source/reference/modding/settings/camera.rst index 5011885919..c0d26a0dfb 100644 --- a/docs/source/reference/modding/settings/camera.rst +++ b/docs/source/reference/modding/settings/camera.rst @@ -4,125 +4,115 @@ Camera Settings .. note:: Some camera settings are available only in the in-game settings menu. See the tab "Scripts/OpenMW Camera". -near clip ---------- +.. omw-setting:: + :title: near clip + :type: float32 + :range: ≥ 0.005 + :default: 1 + -:Type: floating point -:Range: >= 0.005 -:Default: 1.0 + This setting controls the distance to the near clipping plane. The value must be greater than zero. + Values greater than approximately 18.0 will occasionally clip objects in the world in front of the character. + Values greater than approximately 8.0 will clip the character's hands in first person view + and/or the back of their head in third person view. -This setting controls the distance to the near clipping plane. The value must be greater than zero. -Values greater than approximately 18.0 will occasionally clip objects in the world in front of the character. -Values greater than approximately 8.0 will clip the character's hands in first person view -and/or the back of their head in third person view. +.. omw-setting:: + :title: small feature culling + :type: boolean + :range: true, false + :default: true + -This setting can only be configured by editing the settings configuration file. + This setting determines whether objects that render to a few pixels or smaller will be culled (not drawn). + It generally improves performance to enable this feature, + and by definition the culled objects will be very small on screen. + The size in pixels for an object to be considered 'small' is controlled by a separate setting. -small feature culling ---------------------- -:Type: boolean -:Range: True/False -:Default: True +.. omw-setting:: + :title: small feature culling pixel size + :type: float32 + :range: > 0 + :default: 2 + -This setting determines whether objects that render to a few pixels or smaller will be culled (not drawn). -It generally improves performance to enable this feature, -and by definition the culled objects will be very small on screen. -The size in pixels for an object to be considered 'small' is controlled by a separate setting. + Controls the cutoff in pixels for the 'small feature culling' setting, + which will have no effect if 'small feature culling' is disabled. -This setting can only be configured by editing the settings configuration file. +.. omw-setting:: + :title: viewing distance + :type: float32 + :range: ≥ 0 + :default: 7168 + :location: :bdg-success:`Launcher > Settings > Visuals > Terrain` :bdg-info:`In Game > Options > Detail` -small feature culling pixel size --------------------------------- + This value controls the maximum visible distance (also called the far clipping plane). + Larger values significantly improve rendering in exterior spaces, + but also increase the amount of rendered geometry and significantly reduce the frame rate. + Note that when cells are visible before loading, the geometry will "pop-in" suddenly, + creating a jarring visual effect. To prevent this effect, this value should not be greater than: -:Type: floating point -:Range: > 0 -:Default: 2.0 + .. math:: -Controls the cutoff in pixels for the 'small feature culling' setting, -which will have no effect if 'small feature culling' is disabled. + \text{CellSizeInUnits} \times \text{CellGridRadius} - 1024 -This setting can only be configured by editing the settings configuration file. + The CellSizeInUnits is the size of a game cell in units (8192 by default), CellGridRadius determines how many + neighboring cells to current one to load (1 by default - 3x3 grid), and 1024 is the threshold distance for loading a new cell. + The field of view setting also interacts with this setting because the view frustum end is a plane, + so you can see further at the edges of the screen than you should be able to. + This can be observed in game by looking at distant objects + and rotating the camera so the objects are near the edge of the screen. + As a result, this distance is recommended to further be reduced to avoid pop-in for wide fields of view + and long viewing distances near the edges of the screen if distant terrain and object paging are not used. -viewing distance ----------------- + Reductions of up to 25% or more can be required to completely eliminate this pop-in. + Such situations are unusual and probably not worth the performance penalty introduced + by loading geometry obscured by fog in the center of the screen. + See RenderingManager::configureFog for the relevant source code. -:Type: floating point -:Range: > 0 -:Default: 7168.0 + This setting can be adjusted in game from the ridiculously low value of 2500 units to a maximum of 7168 units + using the View Distance slider in the Detail tab of the Video panel of the Options menu, unless distant terrain is enabled, + in which case the maximum is increased to 81920 units. -This value controls the maximum visible distance (also called the far clipping plane). -Larger values significantly improve rendering in exterior spaces, -but also increase the amount of rendered geometry and significantly reduce the frame rate. -Note that when cells are visible before loading, the geometry will "pop-in" suddenly, -creating a jarring visual effect. To prevent this effect, this value should not be greater than: +.. omw-setting:: + :title: field of view + :type: float32 + :range: [1,179] + :default: 60 + :location: :bdg-info:`In Game > Options > Video` - CellSizeInUnits * CellGridRadius - 1024 + Sets the camera field of view in degrees. Recommended values range from 30 degrees to 110 degrees. + Small values provide a very narrow field of view that creates a "zoomed in" effect, + while large values cause distortion at the edges of the screen. + The "field of view" setting interacts with aspect ratio of your video resolution in that more square aspect ratios + (e.g. 4:3) need a wider field of view to more resemble the same field of view on a widescreen (e.g. 16:9) monitor. -The CellSizeInUnits is the size of a game cell in units (8192 by default), CellGridRadius determines how many -neighboring cells to current one to load (1 by default - 3x3 grid), and 1024 is the threshold distance for loading a new cell. -The field of view setting also interacts with this setting because the view frustum end is a plane, -so you can see further at the edges of the screen than you should be able to. -This can be observed in game by looking at distant objects -and rotating the camera so the objects are near the edge of the screen. -As a result, this distance is recommended to further be reduced to avoid pop-in for wide fields of view -and long viewing distances near the edges of the screen if distant terrain and object paging are not used. +.. omw-setting:: + :title: first person field of view + :type: float32 + :range: [1,179] + :default: 60 + -Reductions of up to 25% or more can be required to completely eliminate this pop-in. -Such situations are unusual and probably not worth the performance penalty introduced -by loading geometry obscured by fog in the center of the screen. -See RenderingManager::configureFog for the relevant source code. + This setting controls the field of view for first person meshes such as the player's hands and held objects. + It is not recommended to change this value from its default value + because the Bethesda provided Morrowind assets do not adapt well to large values, + while small values can result in the hands not being visible. -This setting can be adjusted in game from the ridiculously low value of 2500 units to a maximum of 7168 units -using the View Distance slider in the Detail tab of the Video panel of the Options menu, unless distant terrain is enabled, -in which case the maximum is increased to 81920 units. +.. omw-setting:: + :title: reverse z + :type: boolean + :range: true, false + :default: true + -field of view -------------- - -:Type: floating point -:Range: 1-179 -:Default: 55.0 - -Sets the camera field of view in degrees. Recommended values range from 30 degrees to 110 degrees. -Small values provide a very narrow field of view that creates a "zoomed in" effect, -while large values cause distortion at the edges of the screen. -The "field of view" setting interacts with aspect ratio of your video resolution in that more square aspect ratios -(e.g. 4:3) need a wider field of view to more resemble the same field of view on a widescreen (e.g. 16:9) monitor. - -This setting can be changed in game using the Field of View slider from the Video tab of the Video panel of the Options menu. - -first person field of view --------------------------- - -:Type: floating point -:Range: 1-179 -:Default: 55.0 - -This setting controls the field of view for first person meshes such as the player's hands and held objects. -It is not recommended to change this value from its default value -because the Bethesda provided Morrowind assets do not adapt well to large values, -while small values can result in the hands not being visible. - -This setting can only be configured by editing the settings configuration file. - -reverse z ---------- - -:Type: boolean -:Range: True/False -:Default: True - -Enables a reverse-z depth buffer in which the depth range is reversed. This -allows for small :ref:`near clip` values and removes almost all z-fighting with -terrain and even tightly coupled meshes at extreme view distances. For this to -be useful, a floating point depth buffer is required. These features require -driver and hardware support, but should work on any semi-modern desktop hardware -through OpenGL extensions. The exception is macOS, which has since dropped -development of OpenGL drivers. If unsupported, this setting has no effect. - -Note, this will force OpenMW to use shaders as if :ref:`force shaders` was enabled. -The performance impact of this feature should be negligible. - -This setting can only be configured by editing the settings configuration file. + Enables a reverse-z depth buffer in which the depth range is reversed. This + allows for small :ref:`near clip` values and removes almost all z-fighting with + terrain and even tightly coupled meshes at extreme view distances. For this to + be useful, a floating point depth buffer is required. These features require + driver and hardware support, but should work on any semi-modern desktop hardware + through OpenGL extensions. The exception is macOS, which has since dropped + development of OpenGL drivers. If unsupported, this setting has no effect. + Note, this will force OpenMW to use shaders as if :ref:`force shaders` was enabled. + The performance impact of this feature should be negligible. diff --git a/docs/source/reference/modding/settings/cells.rst b/docs/source/reference/modding/settings/cells.rst index 7bdf40681c..4581918fd6 100644 --- a/docs/source/reference/modding/settings/cells.rst +++ b/docs/source/reference/modding/settings/cells.rst @@ -1,180 +1,180 @@ Cells Settings ############## -preload enabled ---------------- +.. omw-setting:: + :title: preload enabled + :type: boolean + :range: true, false + :default: true + -:Type: boolean -:Range: True/False -:Default: True + Controls whether textures and objects will be pre-loaded in background threads. + This setting being enabled should result in a reduced amount of loading screens, no impact on frame rate, + and a varying amount of additional RAM usage, depending on how the preloader was configured (see the below settings). + The default preloading settings with vanilla game files should only use negligible amounts of RAM, however, + when using high-res texture and model replacers + it may be necessary to tweak these settings to prevent the game from running out of memory. -Controls whether textures and objects will be pre-loaded in background threads. -This setting being enabled should result in a reduced amount of loading screens, no impact on frame rate, -and a varying amount of additional RAM usage, depending on how the preloader was configured (see the below settings). -The default preloading settings with vanilla game files should only use negligible amounts of RAM, however, -when using high-res texture and model replacers -it may be necessary to tweak these settings to prevent the game from running out of memory. + The effects of (pre-)loading can be observed on the in-game statistics panel brought up with the 'F4' key. -The effects of (pre-)loading can be observed on the in-game statistics panel brought up with the 'F4' key. + All settings starting with 'preload' in this section will have no effect if preloading is disabled, + and can only be configured by editing the settings configuration file. -All settings starting with 'preload' in this section will have no effect if preloading is disabled, -and can only be configured by editing the settings configuration file. +.. omw-setting:: + :title: preload num threads + :type: int + :range: ≥ 1 + :default: 1 + + Controls the number of worker threads used for preloading operations. + If you have additional CPU cores to spare, consider increasing the number of preloading threads to 2 or 3 for a boost in preloading performance. + Faster preloading will reduce the chance that a cell could not be completely loaded before the player moves into it, + and hence reduce the chance of seeing loading screens or frame drops. + This may be especially relevant when the player moves at high speed + and/or a large number of objects are preloaded due to large viewing distance. -preload num threads -------------------- + A value of 4 or higher is not recommended. + With 4 or more threads, improvements will start to diminish due to file reading and synchronization bottlenecks. -:Type: integer -:Range: >=1 -:Default: 1 +.. omw-setting:: + :title: preload exterior grid + :type: boolean + :range: true, false + :default: true + -Controls the number of worker threads used for preloading operations. -If you have additional CPU cores to spare, consider increasing the number of preloading threads to 2 or 3 for a boost in preloading performance. -Faster preloading will reduce the chance that a cell could not be completely loaded before the player moves into it, -and hence reduce the chance of seeing loading screens or frame drops. -This may be especially relevant when the player moves at high speed -and/or a large number of objects are preloaded due to large viewing distance. + Controls whether adjacent cells are preloaded when the player moves close to an exterior cell border. -A value of 4 or higher is not recommended. -With 4 or more threads, improvements will start to diminish due to file reading and synchronization bottlenecks. +.. omw-setting:: + :title: preload fast travel + :type: boolean + :range: true, false + :default: false + -preload exterior grid ---------------------- + Controls whether fast travel destinations are preloaded when the player moves close to a travel service. + Because the game can not predict the destination that the player will choose, + all possible destinations will be preloaded. This setting is disabled by default + due to the adverse effect on memory usage caused by the preloading of all possible destinations. -:Type: boolean -:Range: True/False -:Default: True +.. omw-setting:: + :title: preload doors + :type: boolean + :range: true, false + :default: true + -Controls whether adjacent cells are preloaded when the player moves close to an exterior cell border. + Controls whether locations behind a door are preloaded when the player moves close to the door. -preload fast travel -------------------- +.. omw-setting:: + :title: preload distance + :type: float32 + :range: > 0 + :default: 1000 + -:Type: boolean -:Range: True/False -:Default: False + Controls the distance in in-game units that is considered the player being 'close' to a preloading trigger. + Used by all the preloading mechanisms i.e. 'preload exterior grid', 'preload fast travel' and 'preload doors'. -Controls whether fast travel destinations are preloaded when the player moves close to a travel service. -Because the game can not predict the destination that the player will choose, -all possible destinations will be preloaded. This setting is disabled by default -due to the adverse effect on memory usage caused by the preloading of all possible destinations. + For measurement purposes, the distance to an object in-game can be observed by opening the console, + clicking on the object and typing 'getdistance player'. -preload doors -------------- +.. omw-setting:: + :title: preload instances + :type: boolean + :range: true, false + :default: true + -:Type: boolean -:Range: True/False -:Default: True + Controls whether or not objects are also pre-instanced on top of being pre-loaded. + Instancing happens when the same object is placed more than once in the cell, + and to be sure that any modifications to one instance do not affect the other, + the game will create independent copies (instances) of the object. + If this setting is enabled, the creation of instances will be done in the preloading thread; + otherwise, instancing will only happen in the main thread once the cell is actually loaded. -Controls whether locations behind a door are preloaded when the player moves close to the door. + Enabling this setting should reduce the chance of frame drops when transitioning into a preloaded cell, + but will also result in some additional memory usage. -preload distance ----------------- +.. omw-setting:: + :title: preload cell cache min + :type: int + :range: > 0 + :default: 12 + -:Type: floating point -:Range: >0 -:Default: 1000 + The minimum number of preloaded cells that will be kept in the cache. + Once the number of preloaded cells in the cache exceeds this setting, + the game may start to expire preloaded cells based on the 'preload cell expiry delay' setting, + starting with the oldest cell. + When a preloaded cell expires, all the assets that were loaded for it will also expire + and will have to be loaded again the next time the cell is requested for preloading. -Controls the distance in in-game units that is considered the player being 'close' to a preloading trigger. -Used by all the preloading mechanisms i.e. 'preload exterior grid', 'preload fast travel' and 'preload doors'. +.. omw-setting:: + :title: preload cell cache max + :type: int + :range: > 0 + :default: 20 + -For measurement purposes, the distance to an object in-game can be observed by opening the console, -clicking on the object and typing 'getdistance player'. + The maximum number of cells that will ever be in pre-loaded state simultaneously. + This setting is intended to put a cap on the amount of memory that could potentially be used by preload state. -preload instances ------------------ +.. omw-setting:: + :title: preload cell expiry delay + :type: float32 + :range: ≥ 0 + :default: 5 + -:Type: boolean -:Range: True/False -:Default: True + The amount of time (in seconds) that a preloaded cell will stay in cache after it is no longer referenced or required, + for example, after the player has moved away from a door without entering it. -Controls whether or not objects are also pre-instanced on top of being pre-loaded. -Instancing happens when the same object is placed more than once in the cell, -and to be sure that any modifications to one instance do not affect the other, -the game will create independent copies (instances) of the object. -If this setting is enabled, the creation of instances will be done in the preloading thread; -otherwise, instancing will only happen in the main thread once the cell is actually loaded. +.. omw-setting:: + :title: prediction time + :type: float32 + :range: ≥ 0 + :default: 1 + -Enabling this setting should reduce the chance of frame drops when transitioning into a preloaded cell, -but will also result in some additional memory usage. + The amount of time (in seconds) in the future to predict the player position for. + This predicted position is used to preload any cells and/or distant terrain required at that position. -preload cell cache min ----------------------- + This setting will only have an effect if 'preload enabled' is set or the 'distant terrain' in the Terrain section is set. -:Type: integer -:Range: >0 -:Default: 12 + Increasing this setting from its default may help if your computer/hard disk is too slow to preload in time and you see + loading screens and/or lag spikes. -The minimum number of preloaded cells that will be kept in the cache. -Once the number of preloaded cells in the cache exceeds this setting, -the game may start to expire preloaded cells based on the 'preload cell expiry delay' setting, -starting with the oldest cell. -When a preloaded cell expires, all the assets that were loaded for it will also expire -and will have to be loaded again the next time the cell is requested for preloading. +.. omw-setting:: + :title: cache expiry delay + :type: float32 + :range: ≥ 0 + :default: 5 + -preload cell cache max ----------------------- + The amount of time (in seconds) that a preloaded texture or object will stay in cache + after it is no longer referenced or required, for example, when all cells containing this texture have been unloaded. -:Type: integer -:Range: >0 -:Default: 20 +.. omw-setting:: + :title: target framerate + :type: float32 + :range: > 0 + :default: 60 + -The maximum number of cells that will ever be in pre-loaded state simultaneously. -This setting is intended to put a cap on the amount of memory that could potentially be used by preload state. + Affects the time to be set aside each frame for graphics preloading operations. + The game will distribute the preloading over several frames so as to not go under the specified framerate. + For best results, set this value to the monitor's refresh rate. If you still experience stutters on turning around, + you can try a lower value, although the framerate during loading will suffer a bit in that case. -preload cell expiry delay -------------------------- +.. omw-setting:: + :title: pointers cache size + :type: int + :range: [40, 1000] + :default: 40 + -:Type: floating point -:Range: >=0 -:Default: 5 - -The amount of time (in seconds) that a preloaded cell will stay in cache after it is no longer referenced or required, -for example, after the player has moved away from a door without entering it. - -prediction time ---------------- - -:Type: floating point -:Range: >=0 -:Default: 1 - -The amount of time (in seconds) in the future to predict the player position for. -This predicted position is used to preload any cells and/or distant terrain required at that position. - -This setting will only have an effect if 'preload enabled' is set or the 'distant terrain' in the Terrain section is set. - -Increasing this setting from its default may help if your computer/hard disk is too slow to preload in time and you see -loading screens and/or lag spikes. - -cache expiry delay ------------------- - -:Type: floating point -:Range: >=0 -:Default: 5 - -The amount of time (in seconds) that a preloaded texture or object will stay in cache -after it is no longer referenced or required, for example, when all cells containing this texture have been unloaded. - -target framerate ----------------- -:Type: floating point -:Range: >0 -:Default: 60 - -Affects the time to be set aside each frame for graphics preloading operations. -The game will distribute the preloading over several frames so as to not go under the specified framerate. -For best results, set this value to the monitor's refresh rate. If you still experience stutters on turning around, -you can try a lower value, although the framerate during loading will suffer a bit in that case. - -pointers cache size -------------------- - -:Type: integer -:Range: 40 to 1000 -:Default: 40 - -The count of object pointers that will be saved for a faster search by object ID. -This is a temporary setting that can be used to mitigate scripting performance issues with certain game files. -If your profiler (press F3 twice) displays a large overhead for the Scripting section, try increasing this setting. + The count of object pointers that will be saved for a faster search by object ID. + This is a temporary setting that can be used to mitigate scripting performance issues with certain game files. + If your profiler (press F3 twice) displays a large overhead for the Scripting section, try increasing this setting. diff --git a/docs/source/reference/modding/settings/fog.rst b/docs/source/reference/modding/settings/fog.rst index 20bfdaf14d..9e1ac7678a 100644 --- a/docs/source/reference/modding/settings/fog.rst +++ b/docs/source/reference/modding/settings/fog.rst @@ -1,173 +1,163 @@ Fog Settings ############ -use distant fog ---------------- +.. omw-setting:: + :title: use distant fog + :type: boolean + :range: true, false + :default: false + + This setting overhauls the behavior of fog calculations. -:Type: boolean -:Range: True/False -:Default: False + Normally the fog start and end distance are proportional to the viewing distance + and use the fog depth set in the fallback settings. -This setting overhauls the behavior of fog calculations. + Enabling this setting separates the fog distance from the viewing distance and fallback settings and makes fog distance + and apparent density dependent on the weather and the current location according to the settings below. -Normally the fog start and end distance are proportional to the viewing distance -and use the fog depth set in the fallback settings. + Unfortunately specific weather-dependent fog factor and offset parameters are currently hard-coded. + They are based off the default settings of MGE XE. -Enabling this setting separates the fog distance from the viewing distance and fallback settings and makes fog distance -and apparent density dependent on the weather and the current location according to the settings below. + +--------------+------------+--------+ + | Weather Type | Fog Factor | Offset | + +==============+============+========+ + | Clear | 1.0 | 0.0 | + +--------------+------------+--------+ + | Cloudy | 0.9 | 0.0 | + +--------------+------------+--------+ + | Foggy | 0.2 | 0.3 | + +--------------+------------+--------+ + | Overcast | 0.7 | 0.0 | + +--------------+------------+--------+ + | Rain | 0.5 | 0.1 | + +--------------+------------+--------+ + | Thunderstorm | 0.5 | 0.2 | + +--------------+------------+--------+ + | Ashstorm | 0.2 | 0.5 | + +--------------+------------+--------+ + | Blight | 0.2 | 0.6 | + +--------------+------------+--------+ + | Snow | 0.5 | 0.4 | + +--------------+------------+--------+ + | Blizzard | 0.16 | 0.7 | + +--------------+------------+--------+ -Unfortunately specific weather-dependent fog factor and offset parameters are currently hard-coded. -They are based off the default settings of MGE XE. + Non-underwater fog start and end distance are calculated like this according to these parameters:: -+--------------+------------+--------+ -| Weather Type | Fog Factor | Offset | -+==============+============+========+ -| Clear | 1.0 | 0.0 | -+--------------+------------+--------+ -| Cloudy | 0.9 | 0.0 | -+--------------+------------+--------+ -| Foggy | 0.2 | 0.3 | -+--------------+------------+--------+ -| Overcast | 0.7 | 0.0 | -+--------------+------------+--------+ -| Rain | 0.5 | 0.1 | -+--------------+------------+--------+ -| Thunderstorm | 0.5 | 0.2 | -+--------------+------------+--------+ -| Ashstorm | 0.2 | 0.5 | -+--------------+------------+--------+ -| Blight | 0.2 | 0.6 | -+--------------+------------+--------+ -| Snow | 0.5 | 0.4 | -+--------------+------------+--------+ -| Blizzard | 0.16 | 0.7 | -+--------------+------------+--------+ + fog start distance = fog factor * (base fog start distance - fog offset * base fog end distance) + fog end distance = fog factor * (1.0 - fog offset) * base fog end distance -Non-underwater fog start and end distance are calculated like this according to these parameters:: + Underwater fog distance is used as-is. - fog start distance = fog factor * (base fog start distance - fog offset * base fog end distance) - fog end distance = fog factor * (1.0 - fog offset) * base fog end distance + A negative fog start distance means that the fog starts behind the camera + so the entirety of the scene will be at least partially fogged. -Underwater fog distance is used as-is. + A negative fog end distance means that the fog ends behind the camera + so the entirety of the scene will be completely submerged in the fog. -A negative fog start distance means that the fog starts behind the camera -so the entirety of the scene will be at least partially fogged. + Fog end distance should be larger than the fog start distance. -A negative fog end distance means that the fog ends behind the camera -so the entirety of the scene will be completely submerged in the fog. + This setting and all further settings can only be configured by editing the settings configuration file. -Fog end distance should be larger than the fog start distance. +.. omw-setting:: + :title: distant land fog start + :type: float32 + :range: full float32 range + :default: 16384 (2 cells) + -This setting and all further settings can only be configured by editing the settings configuration file. + This is the base fog start distance used for distant fog calculations in exterior locations. -distant land fog start ----------------------- +.. omw-setting:: + :title: distant land fog end + :type: float32 + :range: full float32 range + :default: 40960 (5 cells) + -:Type: floating point -:Range: The whole range of 32-bit floating point -:Default: 16384 (2 cells) + This is the base fog end distance used for distant fog calculations in exterior locations. -This is the base fog start distance used for distant fog calculations in exterior locations. +.. omw-setting:: + :title: distant underwater fog start + :type: float32 + :range: full float32 range + :default: -4096 + -distant land fog end --------------------- + This is the base fog start distance used for distant fog calculations in underwater locations. -:Type: floating point -:Range: The whole range of 32-bit floating point -:Default: 40960 (5 cells) +.. omw-setting:: + :title: distant underwater fog end + :type: float32 + :range: full float32 range + :default: 2457.6 + -This is the base fog end distance used for distant fog calculations in exterior locations. + This is the base fog end distance used for distant fog calculations in underwater locations. -distant underwater fog start ----------------------------- +.. omw-setting:: + :title: distant interior fog start + :type: float32 + :range: full float32 range + :default: 0 + -:Type: floating point -:Range: The whole range of 32-bit floating point -:Default: -4096 + This is the base fog start distance used for distant fog calculations in interior locations. -This is the base fog start distance used for distant fog calculations in underwater locations. +.. omw-setting:: + :title: distant interior fog end + :type: float32 + :range: full float32 range + :default: 16384 (2 cells) + -distant underwater fog end --------------------------- + This is the base fog end distance used for distant fog calculations in interior locations. -:Type: floating point -:Range: The whole range of 32-bit floating point -:Default: 2457.6 +.. omw-setting:: + :title: radial fog + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Visuals > Fog` -This is the base fog end distance used for distant fog calculations in underwater locations. + By default, the fog becomes thicker proportionally to your distance from the clipping plane set at the clipping distance, which causes distortion at the edges of the screen. + This setting makes the fog use the actual eye point distance (or so called Euclidean distance) to calculate the fog, which makes the fog look less artificial, especially if you have a wide FOV. + Note that the rendering will act as if you have 'force shaders' option enabled with this on, which means that shaders will be used to render all objects and the terrain. -distant interior fog start --------------------------- +.. omw-setting:: + :title: exponential fog + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Visuals > Fog` -:Type: floating point -:Range: The whole range of 32-bit floating point -:Default: 0 + Similar to "radial fog" but uses an exponential formula for the fog. + Note that the rendering will act as if you have 'force shaders' option enabled with this on, which means that shaders will be used to render all objects and the terrain. -This is the base fog start distance used for distant fog calculations in interior locations. +.. omw-setting:: + :title: sky blending + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Visuals > Fog` -distant interior fog end ------------------------- + Whether to use blending with the sky for everything that is close to the clipping plane. + If enabled the clipping plane becomes invisible. + Note that the rendering will act as if you have 'force shaders' option enabled with this on, which means that shaders will be used to render all objects and the terrain. -:Type: floating point -:Range: The whole range of 32-bit floating point -:Default: 16384 (2 cells) +.. omw-setting:: + :title: sky blending start + :type: float32 + :range: [0.0, 1.0) + :default: 0.8 + :location: :bdg-success:`Launcher > Settings > Visuals > Fog` -This is the base fog end distance used for distant fog calculations in interior locations. + The fraction of the maximum distance at which blending with the sky starts. -radial fog ----------- +.. omw-setting:: + :title: sky rtt resolution + :type: float32|float32 + :default: 512 256 -:Type: boolean -:Range: True/False -:Default: False - -By default, the fog becomes thicker proportionally to your distance from the clipping plane set at the clipping distance, which causes distortion at the edges of the screen. -This setting makes the fog use the actual eye point distance (or so called Euclidean distance) to calculate the fog, which makes the fog look less artificial, especially if you have a wide FOV. -Note that the rendering will act as if you have 'force shaders' option enabled with this on, which means that shaders will be used to render all objects and the terrain. - -This setting can be controlled in the Settings tab of the launcher. - -exponential fog ---------------- - -:Type: boolean -:Range: True/False -:Default: False - -Similar to "radial fog" but uses an exponential formula for the fog. -Note that the rendering will act as if you have 'force shaders' option enabled with this on, which means that shaders will be used to render all objects and the terrain. - -This setting can be controlled in the Settings tab of the launcher. - -sky blending ------------- - -:Type: boolean -:Range: True/False -:Default: False - -Whether to use blending with the sky for everything that is close to the clipping plane. -If enabled the clipping plane becomes invisible. -Note that the rendering will act as if you have 'force shaders' option enabled with this on, which means that shaders will be used to render all objects and the terrain. - -This setting can be controlled in the Settings tab of the launcher. - -sky blending start ------------------- - -:Type: floating point -:Range: from 0.0 (including) to 1.0 (excluding) -:Default: 0.8 - -The fraction of the maximum distance at which blending with the sky starts. - -This setting can be controlled in the Settings tab of the launcher. - -sky rtt resolution ------------------- - -:Type: two positive integers -:Default: 512 256 - -The sky RTT texture size, used only for sky blending. Smaller values -reduce quality of the sky blending, but can have slightly better performance. + The sky RTT texture size, used only for sky blending. Smaller values + reduce quality of the sky blending, but can have slightly better performance. diff --git a/docs/source/reference/modding/settings/game.rst b/docs/source/reference/modding/settings/game.rst index 3994fd5077..19d31279c6 100644 --- a/docs/source/reference/modding/settings/game.rst +++ b/docs/source/reference/modding/settings/game.rst @@ -1,571 +1,514 @@ Game Settings ############# -show owned ----------- +.. omw-setting:: + :title: show owned + :type: int + :range: 0, 1, 2, 3 + :default: 0 + :location: :bdg-success:`Launcher > Settings > Interface` + + .. list-table:: + :header-rows: 1 + + * - Mode + - Meaning + * - 0 + - No clues are provided which is the default Morrowind behaviour. + * - 1 + - The background of the tool tip for the object is highlighted in the colour specified by the colour background owned setting in the GUI Settings Section. + The crosshair is not visible if crosshair is false. + * - 2 + - The crosshair is the colour of the colour crosshair owned setting in the GUI Settings section. + * - 3 + - Both the tool tip background and the crosshair are coloured. + + Enable visual clues for items owned by NPCs when the crosshair is on the object. + +.. omw-setting:: + :title: show projectile damage + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Interface` + + If this setting is true, the damage bonus of arrows and bolts will show on their tooltip. + +.. omw-setting:: + :title: show melee info + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Interface` + + If this setting is true, the reach and speed of weapons will show on their tooltip. + +.. omw-setting:: + :title: show enchant chance + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Interface` + + Whether or not the chance of success will be displayed in the enchanting menu. + +.. omw-setting:: + :title: best attack + :type: boolean + :range: true, false + :default: false + :location: :bdg-info:`In Game > Options > Prefs` + + If this setting is true, the player character will always use the most powerful attack when striking with a weapon + (chop, slash or thrust). If this setting is false, + the type of attack is determined by the direction that the character is moving at the time the attack begins. + +.. omw-setting:: + :title: can loot during death animation + :type: boolean + :range: true, false + :default: true + :location: :bdg-success:`Launcher > Settings > Gameplay` + + If this setting is true, the player is allowed to loot actors (e.g. summoned creatures) during death animation, + if they are not in combat. In this case we have to increment death counter and run disposed actor's script instantly. + + If this setting is false, player has to wait until end of death animation in all cases. + Makes using of summoned creatures exploit (looting summoned Dremoras and Golden Saints for expensive weapons) a lot harder. + Conflicts with mannequin mods, which use SkipAnim to prevent end of death animation. + +.. omw-setting:: + :title: difficulty + :type: int + :range: -500 to 500 + :default: 0 + :location: :bdg-info:`In Game > Options > Prefs` + + This setting adjusts the difficulty of the game and is intended to be in the range -100 to 100 inclusive. + Given the default game setting for fDifficultyMult of 5.0, + a value of -100 results in the player taking 80% of the usual damage, doing 6 times the normal damage. + A value of 100 results in the player taking 6 times as much damage, while inflicting only 80% of the usual damage. + Values below -500 will result in the player receiving no damage, + and values above 500 will result in the player inflicting no damage. + +.. omw-setting:: + :title: actors processing range + :type: int + :range: 3584 to 7168 + :default: 7168 + :location: :bdg-info:`In Game > Options > Prefs` + + This setting specifies the actor state update distance from the player in game units. + Actor state update includes AI, animations, and physics processing. + Actors close to this distance softly fade in and out instead of appearing or disappearing abruptly. + Keep in mind that actors running Travel AI packages are always active to avoid + issues in mods with long-range AiTravel packages (for example, patrols, caravans and travellers). + +.. omw-setting:: + :title: classic reflected absorb spells behavior + :type: boolean + :range: true, false + :default: true + :location: :bdg-success:`Launcher > Settings > Gameplay` + + If this setting is true, effects of Absorb spells which were reflected by the target are not mirrored, + and the caster will absorb their own stat resulting in no effect on either the caster and the target. + This makes the gameplay as a mage easier, but these spells become imbalanced. + This is how Morrowind behaves. + +.. omw-setting:: + :title: classic calm spells behavior + :type: boolean + :range: true, false + :default: true + :location: :bdg-success:`Launcher > Settings > Gameplay` + + If this setting is true, Calm spells will take their target out of combat every frame. + This means that a Calm spell of any magnitude will always take actors out of combat for the entirety of its duration. + This is how Morrowind behaves without the Morrowind Code Patch. If this setting is off, + Calm spells will only take their target out of combat once. Allowing them to re-engage if the spell was not sufficiently strong. + +.. omw-setting:: + :title: use magic item animations + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Visuals > Animations` + + If this setting is true, the engine will use casting animations for magic items, including scrolls. + Otherwise, there will be no casting animations, just as in original engine + +.. omw-setting:: + :title: show effect duration + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Interface` + + Show the remaining duration of magic effects and lights if this setting is true. + The remaining duration is displayed in the tooltip by hovering over the magical effect. + +.. omw-setting:: + :title: enchanted weapons are magical + :type: boolean + :range: true, false + :default: true + :location: :bdg-success:`Launcher > Settings > Gameplay` + + Make enchanted weapons without Magical flag bypass normal weapons resistance (and weakness) certain creatures have. + This is how Morrowind behaves. + +.. omw-setting:: + :title: prevent merchant equipping + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Gameplay` + + Prevent merchants from equipping items that are sold to them. + +.. omw-setting:: + :title: followers attack on sight + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Gameplay` + + 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. + Please note this setting has not been extensively tested and could have side effects with certain quests. + +.. omw-setting:: + :title: shield sheathing + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Visuals > Animations` + + If this setting is true, OpenMW will utilize shield sheathing-compatible assets to display holstered shields. + + To make use of this, you need to have an xbase_anim_sh.nif file with weapon bones that will be injected into the skeleton. + Also you can use additional _sh meshes for more precise shield placement. + Warning: this feature may conflict with mods that use pseudo-shields to emulate item in actor's hand (e.g. books, baskets, pick axes). + To avoid conflicts, you can use _sh mesh without "Bip01 Sheath" node for such "shields" meshes, or declare its bodypart as Clothing type, not as Armor. + Also you can use an _sh node with empty "Bip01 Sheath" node. + In this case the engine will use basic shield model, but will use transformations from the "Bip01 Sheath" node. + +.. omw-setting:: + :title: weapon sheathing + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Visuals > Animations` + + If this setting is true, OpenMW will utilize weapon sheathing-compatible assets to display holstered weapons. + + To make use of this, you need to have an xbase_anim_sh.nif file with weapon bones that will be injected into the skeleton. + Additional _sh suffix models are not essential for weapon sheathing to work but will act as quivers or scabbards for the weapons they correspond to. + +.. omw-setting:: + :title: use additional anim sources + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Visuals > Animations` + + Allow the engine to load additional animation sources when enabled. + For example, if the main animation mesh has name Meshes/x.nif, + the engine will load all KF-files from Animations/x folder and its child folders. + This can be useful if you want to use several animation replacers without merging them. + Attention: animations from AnimKit have their own format and are not supposed to be directly loaded in-game! + +.. omw-setting:: + :title: barter disposition change is permanent + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Gameplay` + + If this setting is true, + disposition change of merchants caused by trading will be permanent and won't be discarded upon exiting dialogue with them. + This imitates the option that Morrowind Code Patch offers. + +.. omw-setting:: + :title: only appropriate ammunition bypasses resistance + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Gameplay` + + If this setting is true, you will have to use the appropriate ammunition to bypass normal weapon resistance (or weakness). + An enchanted bow with chitin arrows will no longer be enough for the purpose, while a steel longbow with glass arrows will still work. + This was previously the default engine behavior that diverged from Morrowind design. + +.. omw-setting:: + :title: strength influences hand to hand + :type: int + :range: 0, 1, 2 + :default: 0 + :location: :bdg-success:`Launcher > Settings > Gameplay` + + This setting controls the behavior of factoring of Strength attribute into hand-to-hand damage, which is using the formula + Morrowind Code Patch uses for its equivalent feature: damage is multiplied by its value divided by 40. + + .. list-table:: + :header-rows: 1 + + * - Mode + - Meaning + * - 0 + - Strength attribute is ignored + * - 1 + - Strength attribute is factored in damage from any actor + * - 2 + - Strength attribute is factored in damage from any actor except werewolves + +.. omw-setting:: + :title: normalise race speed + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Gameplay` + + By default race weight is factored into horizontal movement and magic projectile speed like in Morrowind. + For example, an NPC which has 1.2 race weight is faster than an NPC with the exact same stats and weight 1.0 by a factor of 120%. + If this setting is true, race weight is ignored in the calculations which allows for a movement behavior + equivalent to the one introduced by the equivalent Morrowind Code Patch feature. + This makes the movement speed behavior more fair between different races. + +.. omw-setting:: + :title: projectiles enchant multiplier + :type: float32 + :range: [0, 1] + :default: 0.0 + + + The value of this setting determines how many projectiles (thrown weapons, arrows and bolts) you can enchant at once according to the following formula: + + .. math:: + + \text{count} = \frac{\text{soul gem charge} \cdot \text{projectiles enchant multiplier}}{\text{enchantment strength}} + + A value of 0 means that you can only enchant one projectile. + If you want to have Morrowind Code Patch-like count of projectiles being enchanted at once, set this value to 0.25 (i.e. 25% of the charge). + +.. omw-setting:: + :title: uncapped damage fatigue + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Gameplay` + + There are four ways to decrease an actor's Fatigue stat in Morrowind gameplay mechanics: + Drain, Absorb, Damage Fatigue magic effects and hand-to-hand combat. + However, in Morrowind you can't knock down an actor with a Damage Fatigue spell or an Absorb Fatigue spell. + Morrowind Code Patch adds an option to make it possible for Damage Fatigue spells. This is the equivalent of that option. + + Setting the value of this setting to true will remove the 0 lower cap from the value, + allowing Damage Fatigue to reduce Fatigue to a value below zero. + +.. omw-setting:: + :title: turn to movement direction + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Visuals > Animations` + + Affects side and diagonal movement. Enabling this setting makes movement more realistic. + + If disabled then the whole character's body is pointed to the direction of view. Diagonal movement has no special animation and causes sliding. + + If enabled then the character turns lower body to the direction of movement. Upper body is turned partially. Head is always pointed to the direction of view. In combat mode it works only for diagonal movement. In non-combat mode it changes straight right and straight left movement as well. Also turns the whole body up or down when swimming according to the movement direction. + +.. omw-setting:: + :title: smooth movement + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Visuals > Animations` + + Makes NPCs and player movement more smooth. + + Recommended to use with "turn to movement direction" enabled. + +.. omw-setting:: + :title: smooth movement player turning delay + :type: float32 + :range: ≥ 0.01 + :default: 0.333 + + Max delay of turning (in seconds) if player drastically changes direction on the run. Makes sense only if "smooth movement" is enabled. + +.. omw-setting:: + :title: NPCs avoid collisions + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Gameplay` + + If enabled NPCs apply evasion maneuver to avoid collisions with others. + +.. omw-setting:: + :title: NPCs give way + :type: boolean + :range: true, false + :default: true -:Type: integer -:Range: 0, 1, 2, 3 -:Default: 0 + Standing NPCs give way to moving ones. Works only if 'NPCs avoid collisions' is enabled. + +.. omw-setting:: + :title: swim upward correction + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Gameplay` -Enable visual clues for items owned by NPCs when the crosshair is on the object. -If the setting is 0, no clues are provided which is the default Morrowind behaviour. -If the setting is 1, the background of the tool tip for the object is highlighted -in the colour specified by the colour background owned setting in the GUI Settings Section. -If the setting is 2, the crosshair is the colour of the colour crosshair owned setting in the GUI Settings section. -If the setting is 3, both the tool tip background and the crosshair are coloured. -The crosshair is not visible if crosshair is false. + Makes player swim a bit upward from the line of sight. Applies only in third person mode. Intended to make simpler swimming without diving. -This setting can be controlled in the Settings tab of the launcher. +.. omw-setting:: + :title: swim upward coef + :type: float32 + :range: -1.0 to 1.0 + :default: 0.2 -show projectile damage ----------------------- + Regulates strength of the "swim upward correction" effect (if enabled). + Makes player swim a bit upward (or downward in case of negative value) from the line of sight. Recommended range of values is from 0.0 to 0.25. -:Type: boolean -:Range: True/False -:Default: False +.. omw-setting:: + :title: trainers training skills based on base skill + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Gameplay` -If this setting is true, the damage bonus of arrows and bolts will show on their tooltip. + The trainers in Morrowind choose their proposed training skills based on their 3 best attributes. -This setting can be controlled in the Settings tab of the launcher. + If disabled then the 3 best skills of trainers and the training limits take into account fortified/drained trainer skill. -show melee info ---------------- + If enabled then the 3 best skills of trainers and the training limits are based on the trainer base skills. -:Type: boolean -:Range: True/False -:Default: False +.. omw-setting:: + :title: always allow stealing from knocked out actors + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Gameplay` + + By Bethesda's design, in the latest released version of Morrowind pickpocketing is impossible during combat, + even if the fighting NPC is knocked out. + + This setting allows the player to steal items from fighting NPCs that were knocked out if enabled. + +.. omw-setting:: + :title: graphic herbalism + :type: boolean + :range: true, false + :default: true + :location: :bdg-success:`Launcher > Settings > Gameplay` + + Some mods add harvestable container models. When this setting is enabled, activating a container using a harvestable model will visually harvest from it instead of opening the menu. + + When this setting is turned off or when activating a regular container, the menu will open as usual. + +.. omw-setting:: + :title: allow actors to follow over water surface + :type: boolean + :range: true, false + :default: true + :location: :bdg-success:`Launcher > Settings > Gameplay` + + If enabled actors will always find path over the water surface when following other actors. This makes OpenMW behaviour closer to the vanilla engine. + + If disabled actors without the ability to swim will not follow other actors to the water. + + .. note:: + Has effect only when Navigator is enabled. + +.. omw-setting:: + :title: default actor pathfind half extents + :type: float32|float32|float32 + :range: > 0 + :default: 29.27999496459961 28.479997634887695 66.5 + + Actor half extents used for exterior cells to generate navmesh. + Changing the value will invalidate navmesh disk cache. + +.. omw-setting:: + :title: day night switches + :type: boolean + :range: true, false + :default: true + :location: :bdg-success:`Launcher > Settings > Gameplay` + + Some mods add models which change visuals based on time of day. When this setting is enabled, supporting models will automatically make use of Day/night state. + +.. omw-setting:: + :title: unarmed creature attacks damage armor + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Gameplay` + + If disabled unarmed creature attacks do not reduce armor condition, just as with vanilla engine. + + If enabled unarmed creature attacks reduce armor condition, the same as attacks from NPCs and armed creatures. + +.. omw-setting:: + :title: actor collision shape type + :type: int + :range: 0, 1, 2 + :default: 0 (Axis-aligned bounding box) + :location: :bdg-success:`Launcher > Settings > Gameplay` + + Collision is used for both physics simulation and navigation mesh generation for pathfinding. + Cylinder gives the best consistency bewtween available navigation paths and ability to move by them. + Changing this value affects navigation mesh generation therefore navigation mesh disk cache generated for one value + will not be useful with another. + + .. list-table:: + :header-rows: 1 + + * - Mode + - Meaning + * - 0 + - Axis-aligned bounding box + * - 1 + - Rotating box + * - 2 + - Cylinder + +.. omw-setting:: + :title: player movement ignores animation + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Visuals > Animations` + + In third person, the camera will sway along with the movement animations of the player. + Enabling this option disables this swaying by having the player character move independently of its animation. + +.. omw-setting:: + :title: smooth animation transitions + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Visuals > Animations` -If this setting is true, the reach and speed of weapons will show on their tooltip. - -This setting can be controlled in the Settings tab of the launcher. - -show enchant chance -------------------- - -:Type: boolean -:Range: True/False -:Default: False - -Whether or not the chance of success will be displayed in the enchanting menu. - -This setting can be controlled in the Settings tab of the launcher. - -best attack ------------ - -:Type: boolean -:Range: True/False -:Default: False - -If this setting is true, the player character will always use the most powerful attack when striking with a weapon -(chop, slash or thrust). If this setting is false, -the type of attack is determined by the direction that the character is moving at the time the attack begins. - -This setting can be toggled with the Always Use Best Attack button in the Prefs panel of the Options menu. - -can loot during death animation -------------------------------- - -:Type: boolean -:Range: True/False -:Default: True - -If this setting is true, the player is allowed to loot actors (e.g. summoned creatures) during death animation, -if they are not in combat. In this case we have to increment death counter and run disposed actor's script instantly. - -If this setting is false, player has to wait until end of death animation in all cases. -Makes using of summoned creatures exploit (looting summoned Dremoras and Golden Saints for expensive weapons) a lot harder. -Conflicts with mannequin mods, which use SkipAnim to prevent end of death animation. - -This setting can be controlled in the Settings tab of the launcher. - -difficulty ----------- - -:Type: integer -:Range: -500 to 500 -:Default: 0 - -This setting adjusts the difficulty of the game and is intended to be in the range -100 to 100 inclusive. -Given the default game setting for fDifficultyMult of 5.0, -a value of -100 results in the player taking 80% of the usual damage, doing 6 times the normal damage. -A value of 100 results in the player taking 6 times as much damage, while inflicting only 80% of the usual damage. -Values below -500 will result in the player receiving no damage, -and values above 500 will result in the player inflicting no damage. - -This setting can be controlled in game with the Difficulty slider in the Prefs panel of the Options menu. - -actors processing range ------------------------ - -:Type: integer -:Range: 3584 to 7168 -:Default: 7168 - -This setting specifies the actor state update distance from the player in game units. -Actor state update includes AI, animations, and physics processing. -Actors close to this distance softly fade in and out instead of appearing or disappearing abruptly. -Keep in mind that actors running Travel AI packages are always active to avoid -issues in mods with long-range AiTravel packages (for example, patrols, caravans and travellers). - -This setting can be controlled in game with the "Actors Processing Range" slider in the Prefs panel of the Options menu. - -classic reflected absorb spells behavior ----------------------------------------- - -:Type: boolean -:Range: True/False -:Default: True - -If this setting is true, effects of Absorb spells which were reflected by the target are not mirrored, -and the caster will absorb their own stat resulting in no effect on either the caster and the target. -This makes the gameplay as a mage easier, but these spells become imbalanced. -This is how Morrowind behaves. - -This setting can be controlled in the Settings tab of the launcher. - -classic calm spells behavior ----------------------------------------- - -:Type: boolean -:Range: True/False -:Default: True - -If this setting is true, Calm spells will take their target out of combat every frame. -This means that a Calm spell of any magnitude will always take actors out of combat for the entirety of its duration. -This is how Morrowind behaves without the Morrowind Code Patch. If this setting is off, -Calm spells will only take their target out of combat once. Allowing them to re-engage if the spell was not sufficiently strong. - -This setting can be controlled in the Settings tab of the launcher. - -use magic item animations -------------------------- - -:Type: boolean -:Range: True/False -:Default: False - -If this setting is true, the engine will use casting animations for magic items, including scrolls. -Otherwise, there will be no casting animations, just as in original engine - -This setting can only be configured by editing the settings configuration file. - -show effect duration --------------------- - -:Type: boolean -:Range: True/False -:Default: False - -Show the remaining duration of magic effects and lights if this setting is true. -The remaining duration is displayed in the tooltip by hovering over the magical effect. - -This setting can be controlled in the Settings tab of the launcher. - -enchanted weapons are magical ------------------------------ - -:Type: boolean -:Range: True/False -:Default: True - -Make enchanted weapons without Magical flag bypass normal weapons resistance (and weakness) certain creatures have. -This is how Morrowind behaves. - -This setting can be controlled in the Settings tab of the launcher. - -prevent merchant equipping --------------------------- - -:Type: boolean -:Range: True/False -:Default: False - -Prevent merchants from equipping items that are sold to them. - -This setting can be controlled in the Settings tab of the launcher. - -followers attack on sight -------------------------- - -:Type: boolean -:Range: True/False -:Default: False - -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. -Please note this setting has not been extensively tested and could have side effects with certain quests. - -This setting can be controlled in the Settings tab of the launcher. - -shield sheathing ----------------- - -:Type: boolean -:Range: True/False -:Default: False - -If this setting is true, OpenMW will utilize shield sheathing-compatible assets to display holstered shields. - -To make use of this, you need to have an xbase_anim_sh.nif file with weapon bones that will be injected into the skeleton. -Also you can use additional _sh meshes for more precise shield placement. -Warning: this feature may conflict with mods that use pseudo-shields to emulate item in actor's hand (e.g. books, baskets, pick axes). -To avoid conflicts, you can use _sh mesh without "Bip01 Sheath" node for such "shields" meshes, or declare its bodypart as Clothing type, not as Armor. -Also you can use an _sh node with empty "Bip01 Sheath" node. -In this case the engine will use basic shield model, but will use transformations from the "Bip01 Sheath" node. - -This setting can be controlled in the Settings tab of the launcher. - -weapon sheathing ----------------- - -:Type: boolean -:Range: True/False -:Default: False - -If this setting is true, OpenMW will utilize weapon sheathing-compatible assets to display holstered weapons. - -To make use of this, you need to have an xbase_anim_sh.nif file with weapon bones that will be injected into the skeleton. -Additional _sh suffix models are not essential for weapon sheathing to work but will act as quivers or scabbards for the weapons they correspond to. - -This setting can be controlled in the Settings tab of the launcher. - -use additional anim sources ---------------------------- - -:Type: boolean -:Range: True/False -:Default: False - -Allow the engine to load additional animation sources when enabled. -For example, if the main animation mesh has name Meshes/x.nif, -the engine will load all KF-files from Animations/x folder and its child folders. -This can be useful if you want to use several animation replacers without merging them. -Attention: animations from AnimKit have their own format and are not supposed to be directly loaded in-game! - -This setting can be controlled in the Settings tab of the launcher. - -barter disposition change is permanent --------------------------------------- - -:Type: boolean -:Range: True/False -:Default: False - -If this setting is true, -disposition change of merchants caused by trading will be permanent and won't be discarded upon exiting dialogue with them. -This imitates the option that Morrowind Code Patch offers. - -This setting can be controlled in the Settings tab of the launcher. - -only appropriate ammunition bypasses resistance ------------------------------------------------ - -:Type: boolean -:Range: True/False -:Default: False - -If this setting is true, you will have to use the appropriate ammunition to bypass normal weapon resistance (or weakness). -An enchanted bow with chitin arrows will no longer be enough for the purpose, while a steel longbow with glass arrows will still work. -This was previously the default engine behavior that diverged from Morrowind design. - -This setting can be controlled in the Settings tab of the launcher. - -strength influences hand to hand --------------------------------- - -:Type: integer -:Range: 0, 1, 2 -:Default: 0 - -This setting controls the behavior of factoring of Strength attribute into hand-to-hand damage, which is using the formula -Morrowind Code Patch uses for its equivalent feature: damage is multiplied by its value divided by 40. - -0: Strength attribute is ignored -1: Strength attribute is factored in damage from any actor -2: Strength attribute is factored in damage from any actor except werewolves - -This setting can be controlled in the Settings tab of the launcher. - -normalise race speed --------------------- - -:Type: boolean -:Range: True/False -:Default: False - -By default race weight is factored into horizontal movement and magic projectile speed like in Morrowind. -For example, an NPC which has 1.2 race weight is faster than an NPC with the exact same stats and weight 1.0 by a factor of 120%. -If this setting is true, race weight is ignored in the calculations which allows for a movement behavior -equivalent to the one introduced by the equivalent Morrowind Code Patch feature. -This makes the movement speed behavior more fair between different races. - -This setting can be controlled in the Settings tab of the launcher. - -projectiles enchant multiplier ------------------------------- - -:Type: floating point -:Range: 0.0 to 1.0 -:Default: 0.0 - -The value of this setting determines how many projectiles (thrown weapons, arrows and bolts) you can enchant at once according to the following formula: - -count = (soul gem charge * projectiles enchant multiplier) / enchantment strength - -A value of 0 means that you can only enchant one projectile. -If you want to have Morrowind Code Patch-like count of projectiles being enchanted at once, set this value to 0.25 (i.e. 25% of the charge). - -This setting can only be configured by editing the settings configuration file. - -uncapped damage fatigue ------------------------ - -:Type: boolean -:Range: True/False -:Default: False - -There are four ways to decrease an actor's Fatigue stat in Morrowind gameplay mechanics: -Drain, Absorb, Damage Fatigue magic effects and hand-to-hand combat. -However, in Morrowind you can't knock down an actor with a Damage Fatigue spell or an Absorb Fatigue spell. -Morrowind Code Patch adds an option to make it possible for Damage Fatigue spells. This is the equivalent of that option. - -Setting the value of this setting to true will remove the 0 lower cap from the value, -allowing Damage Fatigue to reduce Fatigue to a value below zero. - -This setting can be controlled in the Settings tab of the launcher. - -turn to movement direction --------------------------- - -:Type: boolean -:Range: True/False -:Default: False - -Affects side and diagonal movement. Enabling this setting makes movement more realistic. - -If disabled then the whole character's body is pointed to the direction of view. Diagonal movement has no special animation and causes sliding. - -If enabled then the character turns lower body to the direction of movement. Upper body is turned partially. Head is always pointed to the direction of view. In combat mode it works only for diagonal movement. In non-combat mode it changes straight right and straight left movement as well. Also turns the whole body up or down when swimming according to the movement direction. - -This setting can be controlled in the Settings tab of the launcher. - -smooth movement ---------------- - -:Type: boolean -:Range: True/False -:Default: False - -Makes NPCs and player movement more smooth. - -Recommended to use with "turn to movement direction" enabled. - -This setting can be controlled in the Settings tab of the launcher. - -smooth movement player turning delay ------------------------------------- - -:Type: floating point -:Range: >= 0.01 -:Default: 0.333 - -Max delay of turning (in seconds) if player drastically changes direction on the run. Makes sense only if "smooth movement" is enabled. - -This setting can only be configured by editing the settings configuration file. - -NPCs avoid collisions ---------------------- - -:Type: boolean -:Range: True/False -:Default: False - -If enabled NPCs apply evasion maneuver to avoid collisions with others. - -This setting can be controlled in the Settings tab of the launcher. - -NPCs give way -------------- - -:Type: boolean -:Range: True/False -:Default: True - -Standing NPCs give way to moving ones. Works only if 'NPCs avoid collisions' is enabled. - -This setting can only be configured by editing the settings configuration file. - -swim upward correction ----------------------- - -:Type: boolean -:Range: True/False -:Default: False - -Makes player swim a bit upward from the line of sight. Applies only in third person mode. Intended to make simpler swimming without diving. - -This setting can be controlled in the Settings tab of the launcher. - -swim upward coef ----------------- - -:Type: floating point -:Range: -1.0 to 1.0 -:Default: 0.2 - -Regulates strength of the "swim upward correction" effect (if enabled). -Makes player swim a bit upward (or downward in case of negative value) from the line of sight. Recommended range of values is from 0.0 to 0.25. - -This setting can only be configured by editing the settings configuration file. - -trainers training skills based on base skill --------------------------------------------- - -:Type: boolean -:Range: True/False -:Default: False - -The trainers in Morrowind choose their proposed training skills based on their 3 best attributes. - -If disabled then the 3 best skills of trainers and the training limits take into account fortified/drained trainer skill. - -If enabled then the 3 best skills of trainers and the training limits are based on the trainer base skills. - -This setting can be controlled in the Settings tab of the launcher. - -always allow stealing from knocked out actors ---------------------------------------------- - -:Type: boolean -:Range: True/False -:Default: False - -By Bethesda's design, in the latest released version of Morrowind pickpocketing is impossible during combat, -even if the fighting NPC is knocked out. - -This setting allows the player to steal items from fighting NPCs that were knocked out if enabled. - -This setting can be controlled in the Settings tab of the launcher. - -graphic herbalism ------------------ - -:Type: boolean -:Range: True/False -:Default: True - -Some mods add harvestable container models. When this setting is enabled, activating a container using a harvestable model will visually harvest from it instead of opening the menu. - -When this setting is turned off or when activating a regular container, the menu will open as usual. - -This setting can be controlled in the Settings tab of the launcher. - -allow actors to follow over water surface ------------------------------------------ - -:Type: boolean -:Range: True/False -:Default: True - -If enabled actors will always find path over the water surface when following other actors. This makes OpenMW behaviour closer to the vanilla engine. - -If disabled actors without the ability to swim will not follow other actors to the water. - -.. note:: - Has effect only when Navigator is enabled. - -This setting can be controlled in the Settings tab of the launcher. - -default actor pathfind half extents ------------------------------------ - -:Type: 3D vector floating point -:Range: All components > 0 -:Default: 29.27999496459961 28.479997634887695 66.5 - -Actor half extents used for exterior cells to generate navmesh. -Changing the value will invalidate navmesh disk cache. - -day night switches ------------------- - -:Type: boolean -:Range: True/False -:Default: True - -Some mods add models which change visuals based on time of day. When this setting is enabled, supporting models will automatically make use of Day/night state. - -This setting can be controlled in the Settings tab of the launcher. - -unarmed creature attacks damage armor -------------------------------------- - -:Type: boolean -:Range: True/False -:Default: False - -If disabled unarmed creature attacks do not reduce armor condition, just as with vanilla engine. - -If enabled unarmed creature attacks reduce armor condition, the same as attacks from NPCs and armed creatures. - -This setting can be controlled in the Settings tab of the launcher. - -actor collision shape type --------------------------- - -:Type: integer -:Range: 0, 1, 2 -:Default: 0 (Axis-aligned bounding box) - -Collision is used for both physics simulation and navigation mesh generation for pathfinding. -Cylinder gives the best consistency bewtween available navigation paths and ability to move by them. -Changing this value affects navigation mesh generation therefore navigation mesh disk cache generated for one value -will not be useful with another. - -* 0: Axis-aligned bounding box -* 1: Rotating box -* 2: Cylinder - -This setting can be controlled in the Settings tab of the launcher. - -player movement ignores animation ---------------------------------- - -:Type: boolean -:Range: True/False -:Default: False - -In third person, the camera will sway along with the movement animations of the player. -Enabling this option disables this swaying by having the player character move independently of its animation. - -This setting can be controlled in the Settings tab of the launcher. - -smooth animation transitions ----------------------------- - -:Type: boolean -:Range: True/False -:Default: False - -Enabling this option uses smooth transitions between animations making them a lot less jarring. Also allows to load modded animation blending. - -This setting can be controlled in the Settings tab of the launcher. - -rebalance soul gem values -------------------------- - -:Type: boolean -:Range: True/False -:Default: False - -Enabling this option drastically reduces the value of filled soul gems. -The value will depend on soul magnitude but not the size of the used -soul gem. - -The new value formula is based on the Morrowind Code Patch project:: - - new value = 0.0001 * (soul magnitude)³ + 2 * (soul magnitude) - -This setting can be controlled in the Settings tab of the launcher. + Enabling this option uses smooth transitions between animations making them a lot less jarring. Also allows to load modded animation blending. + +.. omw-setting:: + :title: rebalance soul gem values + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Gameplay` + + Enabling this option drastically reduces the value of filled soul gems. + The value will depend on soul magnitude but not the size of the used + soul gem. + + The new value formula is based on the Morrowind Code Patch project: + + .. math:: + + \text{new value} = 0.0001 \cdot (\text{soul magnitude})^3 + 2 \cdot (\text{soul magnitude}) diff --git a/docs/source/reference/modding/settings/general.rst b/docs/source/reference/modding/settings/general.rst index d7afc04349..19628a56c3 100644 --- a/docs/source/reference/modding/settings/general.rst +++ b/docs/source/reference/modding/settings/general.rst @@ -1,130 +1,104 @@ -General Settings -################ +General +####### -anisotropy ----------- +.. omw-setting:: + :title: anisotropy + :type: int + :range: 0 to 16 + :default: 4 + :location: :bdg-info:`In Game > Options > Video > Detail Level` -:Type: integer -:Range: 0 to 16 -:Default: 4 + Set the maximum anisotropic filtering on textures. + Anisotropic filtering enhances the image quality of textures on surfaces at oblique viewing angles. + Valid values range from 0 to 16. + Modern video cards can often perform 8 or 16 anisotropic filtering with minimal performance impact. -Set the maximum anisotropic filtering on textures. -Anisotropic filtering is a method of enhancing the image quality of textures -on surfaces that are at oblique viewing angles with respect to the camera. Valid values range from 0 to 16. -Modern video cards can often perform 8 or 16 anisotropic filtering with a minimal performance impact. -This effect of this setting can be seen in the Video panel of the Options menu by finding a location with straight lines -(striped rugs and Balmora cobblestones work well) radiating into the distance, and adjusting the anisotropy slider. + This setting's effect can be seen by finding locations with straight lines + (striped rugs or Balmora cobblestones) radiating into the distance, + and adjusting the anisotropy slider. -This setting can be changed in game -using the Anisotropy slider in the Detail tab of the Video panel of the Options menu. +.. omw-setting:: + :title: screenshot format + :type: string + :range: jpg, png, tga + :default: png + :location: :bdg-success:`Launcher > Settings > Miscellaneous` -screenshot format ------------------ + Specify the format for screenshots taken using the screenshot key (F12 by default). + This should be the file extension commonly associated with the format. + Supported formats depend on compilation, but typically include "jpg", "png", and "tga". -:Type: string -:Range: jpg, png, tga -:Default: png +.. omw-setting:: + :title: texture mag filter + :type: string + :range: nearest, linear + :default: linear -Specify the format for screen shots taken by pressing the screen shot key (bound to F12 by default). -This setting should be the file extension commonly associated with the desired format. -The formats supported will be determined at compilation, but "jpg", "png", and "tga" should be allowed. + Set the texture magnification filter type. -This setting can be controlled in the Settings tab of the launcher. +.. omw-setting:: + :title: texture min filter + :type: string + :range: nearest, linear + :default: linear -texture mag filter ------------------- + Set the texture minification filter type. -:Type: string -:Range: nearest, linear -:Default: linear +.. omw-setting:: + :title: texture mipmap + :type: string + :range: none, nearest, linear + :default: nearest -Set the texture magnification filter type. + Set the texture mipmap type to control the method mipmaps are created. + Mipmapping reduces processing power needed during minification by pre-generating a series of smaller textures. -texture min filter ------------------- +.. omw-setting:: + :title: notify on saved screenshot + :type: boolean + :range: true, false + :default: false + :location: :bdg-success:`Launcher > Settings > Miscellaneous` -:Type: string -:Range: nearest, linear -:Default: linear + Show a message box when a screenshot is saved to a file. -Set the texture minification filter type. +.. omw-setting:: + :title: preferred locales + :type: string + :default: en + :location: :bdg-info:`In Game > Options > Language` -texture mipmap --------------- + Comma-separated list of preferred locales (e.g. "de,en"). + Each locale must consist of a two-letter language code and can optionally include a two-letter country code (e.g. "en_US"). + Country codes improve accuracy, but partial matches are allowed. -:Type: string -:Range: none, nearest, linear -:Default: nearest +.. omw-setting:: + :title: gmst overrides l10n + :type: boolean + :range: true, false + :default: true + :location: :bdg-info:`In Game > Options > Language` -Set the texture mipmap type to control the method mipmaps are created. -Mipmapping is a way of reducing the processing power needed during minification -by pregenerating a series of smaller textures. + If true, localization GMSTs in content take priority over l10n files. + Set to false if your preferred locale does not match the content language. -notify on saved screenshot --------------------------- +.. omw-setting:: + :title: log buffer size + :type: int + :range: ≥ 0 + :default: 65536 + + Buffer size for the in-game log viewer (F10). + If the log exceeds the buffer size, only the end will be visible. + Setting this to zero disables the log viewer. -:Type: boolean -:Range: True/False -:Default: False +.. omw-setting:: + :title: console history buffer size + :type: int + :range: ≥ 0 + :default: 4096 -Show message box when screenshot is saved to a file. - -This setting can be controlled in the Settings tab of the launcher. - -preferred locales ------------------ - -:Type: string -:Default: en - -List of the preferred locales separated by comma. -For example "de,en" means German as the first priority and English as a fallback. - -Each locale must consist of a two-letter language code (e.g. "de" or "en") and -can also optionally include a two-letter country code (e.g. "en_US", "fr_CA"). -Locales with country codes can match locales without one (e.g. specifying "en_US" -will match "en"), so is recommended that you include the country codes where possible, -since if the country code isn't specified the generic language-code only locale might -refer to any of the country-specific variants. - -Two highest priority locales may be assigned via the Localization tab of the in-game options. - -gmst overrides l10n -------------------- - -:Type: boolean -:Range: True/False -:Default: True - -If true, localization GMSTs in content have priority over l10n files. -Setting to false can be useful if selected preferred locale doesn't -match the language of content files. - -Can be changed via the Localization tab of the in-game options. - -log buffer size ---------------- - -:Type: platform dependant unsigned integer -:Range: >= 0 -:Default: 65536 - -Buffer size for the in-game log viewer (press F10 to toggle the log viewer). -When the log doesn't fit into the buffer, only the end of the log is visible in the log viewer. -Zero disables the log viewer. - -This setting can only be configured by editing the settings configuration file. - -console history buffer size ---------------------------- - -:Type: platform dependant unsigned integer -:Range: >= 0 -:Default: 4096 - -Number of console history objects to retrieve from previous session. If the number of history -objects in the file exceeds this value, history objects will be erased starting from the oldest. -This operation runs on every new session. See :doc:`../paths` for location of the history file. - -This setting can only be configured by editing the settings configuration file. + Number of console history entries retrieved from the previous session. + Older entries are discarded when the file exceeds this value. + See :doc:`../paths` for the location of the history file. diff --git a/docs/source/reference/modding/settings/groundcover.rst b/docs/source/reference/modding/settings/groundcover.rst index 7b060f58ad..320ed30986 100644 --- a/docs/source/reference/modding/settings/groundcover.rst +++ b/docs/source/reference/modding/settings/groundcover.rst @@ -1,97 +1,92 @@ Groundcover Settings #################### -enabled -------- +.. omw-setting:: + :title: enabled + :type: boolean + :range: true, false + :default: false + -:Type: boolean -:Range: True/False -:Default: False + Allows the engine to use groundcover. + Groundcover objects are static and come from ESP files registered via "groundcover" entries in `openmw.cfg`, + not via "content". These objects are assumed to have no collision and cannot be interacted with, + allowing them to be merged and animated efficiently regardless of player distance. -Allows the engine to use groundcover. -Groundcover objects are static objects which come from ESP files, registered via -"groundcover" entries from openmw.cfg rather than "content" ones. -We assume that groundcover objects have no collisions, can not be moved or interacted with, -so we can merge them to pages and animate them indifferently from distance from player. +.. omw-setting:: + :title: density + :type: float32 + :range: 0.0 (0%) to 1.0 (100%) + :default: 1.0 + -This setting can only be configured by editing the settings configuration file. + Determines how many groundcover instances from content files are used in the game. + Higher values increase density but may impact performance. -density -------- +.. omw-setting:: + :title: rendering distance + :type: float32 + :range: ≥ 0.0 + :default: 6144.0 + -:Type: floating point -:Range: 0.0 (0%) to 1.0 (100%) -:Default: 1.0 + Sets the distance (in game units) at which grass pages are rendered. + Larger values may reduce performance. -Determines how many groundcover instances from content files -are used in the game. Can affect performance a lot. +.. omw-setting:: + :title: stomp mode + :type: int + :range: 0, 1, 2 + :default: 2 + -This setting can only be configured by editing the settings configuration file. + Determines how grass responds to player movement. -rendering distance ------------------- + .. list-table:: + :header-rows: 1 -:Type: floating point -:Range: >= 0.0 -:Default: 6144.0 + * - Mode + - Meaning + * - 0 + - Grass cannot be trampled. + * - 1 + - Only the player's XY position is taken into account. + * - 2 + - Player's height above the ground is also considered. -Determines on which distance in game units grass pages are rendered. -May affect performance a lot. + In MGE XE, grass responds to player jumping due to changes in XY position, + even when levitating. OpenMW’s height-aware system avoids false triggers, + but grass may snap back when the player exits it quickly. -This setting can only be configured by editing the settings configuration file. + Avoid using MGE XE's intensity constants when this is set to 2; + set :ref:`stomp intensity` to 0 or 1 in that case. -stomp mode ----------- +.. omw-setting:: + :title: stomp intensity + :type: int + :range: 0, 1, 2 + :default: 1 + -:Type: integer -:Range: 0, 1, 2 -:Default: 2 + Determines the distance from the player at which grass reacts to footsteps, + and how far it moves in response. -Determines whether grass should respond to the player treading on it. + .. list-table:: + :header-rows: 1 -.. list-table:: Modes - :header-rows: 1 - - * - Mode number - - Meaning - * - 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. - -In MGE XE, which existing grass mods were made for, only the player's XY position was taken into account. -However, presumably due to a bug, jumping straight up would change the XY position, so grass *does* respond to the player jumping. -Levitating above grass in MGE XE still considers it stood-on, which can look bad. -OpenMW's height-aware system ensures grass does not act as if it's being stood on when the player levitates above it, but that means grass rapidly snaps back to its original position when the player jumps out of it. -Therefore, it is not recommended to use MGE XE's intensity constants if this setting is set to 2, i.e. :ref:`stomp intensity` should be 0 or 1 when :ref:`stomp mode` is 2. - -stomp intensity ---------------- - -:Type: integer -:Range: 0, 1, 2 -:Default: 1 - -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. - -.. list-table:: Presets - :header-rows: 1 - - * - Preset number - - Range (Units) - - Distance (Units) - - Description - * - 2 - - 150 - - 60 - - MGE XE levels. Generally excessive/comical, but what existing mods were made with in mind. - * - 1 - - 80 - - 40 - - Reduced levels. Usually looks better. - * - 0 - - 50 - - 20 - - Gentle levels. + * - Preset + - Range (Units) + - Distance (Units) + - Description + * - 2 + - 150 + - 60 + - MGE XE levels — excessive/comical, matches legacy mods. + * - 1 + - 80 + - 40 + - Reduced levels — visually balanced. + * - 0 + - 50 + - 20 + - Gentle levels — subtle and restrained. diff --git a/docs/source/reference/modding/settings/index.rst b/docs/source/reference/modding/settings/index.rst index c1d7b631ee..d551d69ec0 100644 --- a/docs/source/reference/modding/settings/index.rst +++ b/docs/source/reference/modding/settings/index.rst @@ -54,25 +54,25 @@ The ranges included with each setting are the physically possible ranges, not re Camera Cells Fog - Groundcover - Map - GUI - HUD Game General + Groundcover + GUI + HUD + Input Lua + Map + Models + Navigator + Physics + Post-Processing Shaders Shadows - Input Saves Sound + Stereo + Stereo View Terrain Video