Skip to content
S3ctor’s S3cret St4sh

Mod Morrowind active

Horiz0n

View distance manager implemented in OpenMW-Lua to maximize framerate *and* viewing distance whenever possible.

Stable
not released
Development
1.3-dev.12
Runs on
OpenMW any version
Package
Single directory

Overview

I was discussing the concept of occlusion culling with someone recently.

I told them that the engine has no defense against extremely draw-call bound areas, such as Old Ebonheart.

However, I kept thinking about it, and eventually realized that was bullshit - because we DO have frustum and distance cull. These are the oldest tricks in the book for optimizing framerates in Morrowind, going all the way back to the classic Morrowind FPS Optimizer app from however long ago.

The problem that I found with prior approaches was that they were all dedicated to the idea of saving your framerate at all times. You'd get your frames back, but they wouldn't expand your view distance back out when the headroom returned.

Thus was born, Horiz0n.

Overview

Much like its sibling, S4V3R, Horiz0n is minimalist in design and aggressively tries to optimize your framerate.

The way it works is simple:

  1. You tell Horiz0n your target framerate - 60 by default
  2. It averages your frametime, thirty times per second, if the world is not paused AND you are not in a true interior cell - so Starwind and Tribunal should both work fine.
  3. If the average frametime is 10% worse than your target, lower the view distance by 1%. If it's 30% worse, lower by 2%. Otherwise, raise view distance by 1%.

It'll keep going as-needed until you hit either the minimum or the maximum viewing distance.

In order for Horiz0n to work correctly, you must set a framerate limit in the OpenMW launcher, or manually in your settings.cfg file, and set Horiz0n's Target Framerate to match it. YOU HAVE BEEN WARNED.

The minimum viewing distance is 2048 units, which is exactly one quarter of a standard Morrowind cell. This prevents your viewing distance from ever becoming too short to actually navigate, even in extremely demanding areas.

Interiors are ignored intentionally because they usually hit your framerate limit to begin with.

The steps scale with your current view distance, so Horiz0n crosses the whole range in seconds while the 30Hz tickrate keeps transitions from being too noticeable.

As of version 1.2, all of Horiz0n's internal tuning parameters are exposed:

  • Target Framerate
  • Minimum View Distance
  • Maximum View Distance
  • Adjustment Framerate
  • Normal Frametime Decrease Adjustment
  • Severe Frametime Decrease Adjustment
  • View Distance Step (as a percentage of the current view distance)
  • Severe View Distance Step Multiplier
  • Disable/Enable the entire mod

By default, the max view distance is 25 cells, as view distance is extremely cheap outside of the active grid.

This setting is exposed for those who wish to use extreme view distances on either end.

Personally, I cap it to 5 cells.

Additionally, 1.2 and onward interop with H3lp Yours3lf to ensure view distance is always maxed whilst indoors, to avoid unneccessary blind spots in dungeons.

Also, I recommend using it with Hawk3ye, as the zoom effect produces a very fun interaction with Horiz0n that causes your view distance to literally increase when you zoom in, due to Hawk3ye changing your field of view. Try it out!

Credits

  • All code in this repository was generated by Dave Corley under the GPL3 License.
  • Please enjoy my content, hack away as you please, and respect the freedoms of your fellow creators in the meantime.

Install

Single directory · 1.3-dev.12

OpenMW, by handextract, then add these lines to openmw.cfg
  1. Extract the archive to a folder of its own, for example C:/Games/OpenMW-Mods/Horiz0n.
  2. Add the lines below to openmw.cfg. Keep them after the data= lines of anything this mod depends on.
  3. Open the launcher and check the load order. Content files load in the order listed here.
data="C:/Games/OpenMW-Mods/Horiz0n"
content=Horiz0n.esp

Replace the folder with wherever you extracted the archive.

DreamWeave clientsCHIMERA and other tools that read the manifest

Give the tool this page's address, or the manifest directly. It finds the release for its channel, checks compatibility and dependencies, downloads from any listed source and refuses bytes whose SHA-256 does not match.

Project id
0e93a788-e6a0-4bb2-b0f4-d803622bf642
Manifest
https://dreamweave-mp.github.io/S3ctors-S3cret-St4sh/dreamweave/projects/0e93a788-e6a0-4bb2-b0f4-d803622bf642.json

What is in the archive

  • horiz0n.zip
    • Horiz0n.espand the rest of the data directory
    • horiz0n-Documentation/this page and its docs, readable offline
    • horiz0n-dwmod.tomlthe project's mod.toml
    • dreamweave.release.jsonwhat this archive is, for tools

Compatibility

Anything not listed here is untested.

Runs on

  • OpenMWany version
  1. 1.3 stable unreleased 2026-09-29

  2. 1.2 stable unverified 2026-07-25

  3. 1.1 stable unverified 2026-07-24

Discussion

GitHub Discussions · sign in with GitHub to join in