S3LightFixes is a descendant of Waza-lightfixes, which itself is a descendant of Lightfixes.pl by vtastek. All three applications are designed to make ESP files which adjust the lighting values from all mods listed in one's openmw.cfg.
In other words, make light gud. What sets this version apart is that it's a standalone binary application, instead of piggybacking off tes3cmd. The changes it makes are the same as the previous two, but with additional conveniences like automatic installation and support for portable installs of OpenMW, and itself having greater portability.
Starting from version 0.1.9 and onward, S3LightFixes is now cryptographically signed using SigStore on all platforms. Release packages include the necessary .bundle
files to ensure the cryptographic signatures for yourself.
Verifying the binary on a linux-based system:
cosign verify-blob ./s3lightfixes --certificate-identity-regexp="https://github.com/magicaldave/S3LightFixes/.github/workflows/" --certificate-oidc-issuer="https://token.actions.githubusercontent.com" --bundle ./S3LF-ubuntu-20.04.bundle
Replace ubuntu
with macos
or windows
as needed for your target platform.
Download the executable for your OS and run it however's most convenient. Double-click it or run it through the terminal.
A file, S3LightFixes.omwaddon
, will be created. Add the folder it's in as a data directory in OpenMW's Launcher (or openmw.cfg, manually), and enable S3LightFixes.omwaddon
in the Content Files
tab of the launcher. If you don't know what that means, watch this video.
When running via the command line, numerous parameters are available to change how lightfixes changes the lights in your install. If you prefer to run LightFixes from a GUI, you can edit its lightConfig.toml
instead. lightConfig.toml
can be found in the folders mentioned here, next to your openmw.cfg.
You may optionally edit the lightconfig.toml S3Lightfixes creates (next to your user openmw.cfg) to adjust its settings for your next run. Or, make your own lightconfig.toml and place it next to the S3LightFixes executable before running it. The toml schema is as follows:
# Disable flickering lights
disable_flickering = true
# Serialize S3LightFixes plugin to a text file. Don't do this unless you're asked to (or just curious)
save_log = false
# Hue multiplier for non-colored lights
standard_hue = 0.6000000238418579
# Saturation multiplier for non-colored lights
standard_saturation = 0.800000011920929
# Value multiplier for non-colored lights
standard_value = 0.5699999928474426
# Radius multiplier for non-colored lights
standard_radius = 2.0
# Hue multiplier for colored lights
colored_hue = 1.0
# Saturation multiplier for colored lights
colored_saturation = 0.8999999761581421
# Value multiplier for colored lights
colored_value = 0.699999988079071
# Radius multiplier for colored lights
colored_radius = 1.100000023841858
All parameters available in the lightConfig.toml may also be used as command line arguments. See below for further details on supported command line arguments.
More specifically, the lightfixes plugin adjusts the color and radius of colored or whitish lights for your config separately. The radius in lightConfig.toml is used as a multiplier on top of the existing radius of the light, so they'll generally be brighter with the default configuration.
S3LightFixes also supports portable installations of OpenMW by way of utilizing the -c
or --openmw-cfg
argument.
Users running OpenMW with custom launchers such as omw
should include the -c
argument as well.
./s3lightfixes -c /dir/where/openmw.cfg/is/
To automatically enable S3LightFixes.omwaddon in whatever openmw.cfg you have asked it to use, use the -e
argument:
./s3lightfixes -e -c /my/total-overhaul/dir/
Additionally, S3LightFixes will perform the following:
- Automatically install itself into your
data-local
directory of openmw (if using the-e
or--auto-enable
argument) - Create a config file adjacent to your openmw.cfg if one doesn't already exist
- Disable sunlight color in interiors for compatibility with vtastek's custom shader stack for openmw 0.47
- Optionally remove the Flicker and FlickerSlow flags from all lights
- Nullify all negative lights (Not optional, as negative lights look bad in OpenMW)
-c, --openmw-cfg <OPENMW_CFG>
Path to openmw.cfg By default, uses the system paths defined by:
https://openmw.readthedocs.io/en/latest/reference/modding/paths.html
Alternatively, responds to both the `OPENMW_CONFIG` and `OPENMW_CONFIG_DIR` environment variables.
-7, --classic
Enables classic mode using vtastek shaders. ONLY for openmw 0.47. Relevant shaders can be found in the OpenMW discord:
https://discord.com/channels/260439894298460160/718892786157617163/966468825321177148
-o, --output <OUTPUT>
Output file path. Accepts relative and absolute terms
-l, --write-log
Whether to save a text form of the generated plugin. Extremely verbose!
You probably don't want to enable this unless asked specifically to do so.
-e, --auto-enable
Whether to automatically enable the output plugin in openmw.cfg. Disabled by default, and only available via CLI.
Typically lightfixes is ran under momw-configurator, making this param unnecessary for many users.
-n, --no-notifications
If used, print to stdout instead of using native GUI dialogs.
Not available on android.
-d, --debug
Output debugging information during lightfixes generation Primarily displays output related to the openmw.cfg being used for generation
-i, --info
Outputs version info
-f, --no-flicker <DISABLE_FLICKERING>
Whether to disable flickering lights during lightfixes generation
[possible values: true, false]
--standard-hue <STANDARD_HUE>
For lights in the orange range, multiply their HSV hue by this value.
If this argument is not used, the value will be derived from lightConfig.toml or use the default value of 0.62.
This argument has no short form due to a conflict with -h.
-s, --standard-saturation <STANDARD_SATURATION>
For lights in the orange range, multiply their HSV saturation by this amount.
If this argument is not used, the value will be derived from lightConfig.toml or use the default value of 0.8.
-v, --standard-value <STANDARD_VALUE>
For lights in the orange range, multiply their HSV value by this amount.
If this argument is not used, the value will be derived from lightConfig.toml or use the default value of 0.57.
-r, --standard-radius <STANDARD_RADIUS>
For lights in the orange range, multiply their radius by this value.
If this argument is not used, the value will be derived from lightConfig.toml or use the default value of 1.2.
-H, --colored-hue <COLORED_HUE>
For lights that are red, purple, blue, green, or yellow, multiply their HSV hue by this value.
If this argument is not used, the value will be derived from lightConfig.toml or use the default value of 1.
-S, --colored-saturation <COLORED_SATURATION>
For lights that are red, purple, blue, green, or yellow, multiply their HSV saturation by this amount.
If this argument is not used, the value will be derived from lightConfig.toml or use the default value of 0.9.
-V, --colored-value <COLORED_VALUE>
For lights that are red, purple, blue, green, or yellow, multiply their HSV value by this amount.
If this argument is not used, the value will be derived from lightConfig.toml or use the default value of 0.7.
-R, --colored-radius <COLORED_RADIUS>
For lights that are red, purple, blue, green, or yellow, multiply their radius by this value.
If this argument is not used, the value will be derived from lightConfig.toml or use the default value of 1.1.
-h, --help
Print help (see a summary with '-h')