The Internet Vagabond

Oblivion holds a special place in my heart. I remember spending a summer in the town I went to college in, and playing Oblivion almost every day while listening to Dream Theater’s Systematic Chaos. Back then, I wasn’t aware of modding, so it was literally just vanilla Oblivion for hours upon hours. I also used Windows, so the game would run fine. Now, things have changed. The easier issue to deal with is playing Oblivion on Linux. Thanks to Valve, Oblivion runs excellent with Proton out of the box. The more challenging issue is mods, and that’s what this write-up is all about!

Vanilla Oblivion

Starting from the beginning, Oblivion is available on many platforms, but my experiences here will assume the Steam installation. The primary difference will be with respect to how the tools used to mod Oblivion are run. I’ve got the Game of the Year edition, which is Steam ID 22330.

Modding Tools

Much of modding Oblivion is done with the help of additional tools. A mod manager is used for installing and configuring the mods. There are several options for Oblivion, and the one I’ve been suggested and use is called Wrye Bash. Mod load order is also important, and the tool I’m using to help with that is LOOT. Finally, TES4Edit, TES4LODGen and BethINI each helps with performance and configuration.

I have the following directory structure setup for my mods:

  |- Archives
  |- Backups
  |- Tools
  |- WryeBash

Archives is where I store the actual archives of the mods I use. Backups is where I store any relevant backups for my Oblivion game, such as saves or configuration files for the mods. Tools is where I put the executables for all the tools I mentioned above. WryeBash is used to store the unarchived mods (which it calls “projects”) and mod data that Wrye Bash uses.

Because each of these tools is run using Proton, I also have a set of aliases configured. Similar aliases could be setup for using Wine instead. For each alias, modify the paths accordingly for your setup. I should also note that I’m running Oblivion using Glorious Eggroll’s Proton, version 6.16. I haven’t experimented with different Proton versions to find the most performant version, but if I do in the future, I’ll mention it.

Wrye Bash

Wrye Bash is involved. I don’t know how to use it fully. There are a few guides that helped me learn how to use it enough to get mods installed and configured though. The first, and very relevant, is at Shrine of Kynareth. I referenced this guide, and the other written guides to learn how Wrye Bash works and what to setup. I also learned some tricks from the Oblivion Comprehensive Modding Guide by Dispensation.


The easiest option is to use the stand-alone executable from the GitHub releases page. Extract the archive, and then use Proton to run the executable in the Mopy directory. This is the alias I use; replace paths accordingly:

alias oblivion-wrye='STEAM_COMPAT_DATA_PATH=/path/to/steam/directory/steamapps/compatdata/22330/ \
                     STEAM_COMPAT_CLIENT_INSTALL_PATH=/path/to/steam/directory/ \
                     /path/to/proton/proton run /path/to/OblivionMods/Tools/Mopy/Wrye\ Bash.exe'

Additionally, I copy the Mopy/bash_default.ini file to Mopy/bash.ini and set the sOblivionMods to “Z:\path\to\OblivionMods\WryeBash”, sBashModData to “Z:\path\to\OblivionMods\WryeBash\Bash Mod Data”, sInstallersData to “Z:\path\to\OblivionMods\WryeBash\Bash Installers”, and sOblivionPath to “Z:\path\to\steam\steamapps\common\Oblivion”. In Wine, Z: references your local file system. Theoretically, because Wine is awesome, you may be able to use Linux file system paths in the configuration, but I went with this.


The guides above provide a very thorough explanation of use. Of note: Wrye Bash in Wine does not like drag-and-drop actions, so don’t do them. I don’t do anything special with my usage of Wrye Bash: run the alias, install mods from the Installers tab, enable or disable mods from the Mods tab. I generally don’t do anything else.


LOOT sets the proper load order for mods. There is a native Linux client, but I ran into this issue and decided to just use the Windows version. The GitHub releases page includes a 7z archive with a stand-alone executable, and that’s what I used.


Download the stand-alone executable, and extract it to OblivionMods/Tools. This is the alias I use; replace paths accordingly:

alias oblivion-loot='STEAM_COMPAT_DATA_PATH=/path/to/steam/directory/steamapps/compatdata/22330/ \
                     STEAM_COMPAT_CLIENT_INSTALL_PATH=/path/to/steam/directory/ \
                     /path/to/proton/proton run /path/to/OblivionMods/Tools/LOOT/LOOT.exe'

On first run, it should auto-detect the Oblivion installation and configure everything accordingly. If it doesn’t, there are instructions on the Homepage for configuration.


LOOT is pretty straight forward. It references a master list of mods to determine the optimal load order for all installed mods. I ran into an issue where LOOT couldn’t properly download the master list, and so as a work-around I manually downloaded the master list, and then configured LOOT to use that local file instead of the remote Git repository. Those instructions are covered in the FAQ. If everything works, and the list of mods is there, then you can run a sort, and apply the changes. LOOT will inform you of any “dirty” mods, which you can use the next tool the clear up. I ended up keeping LOOT open, while stepping through the cleaning procedure for each mod, until everything looked happy.


TES4Edit is the Oblivion version of xEdit, which is an incredible tool. All I use it for is to clean dirty mods. LOOT provides a link to the quick cleaning guide, which gives us exactly the steps required.


Download the latest build from GitHub, and extract it to OblivionMods/Tools. This is the alias I use, which runs the “Quick Auto Clean” function; replace paths accordingly:

alias oblivion-tes4edit-quick='STEAM_COMPAT_DATA_PATH=/path/to/steam/directory/steamapps/compatdata/22330/ \
                               STEAM_COMPAT_CLIENT_INSTALL_PATH=/path/to/steam/directory/ \
                               /path/to/proton/proton run /path/to/OblivionMods/Tools/TES4Edit/TES4EditQuickAutoClean.exe'

TES4Edit is also useful for other, non-quick-clean functionality, so I have this alias for that:

alias oblivion-tes4edit='STEAM_COMPAT_DATA_PATH=/path/to/steam/directory/steamapps/compatdata/22330/ \
                         STEAM_COMPAT_CLIENT_INSTALL_PATH=/path/to/steam/directory/ \
                         /path/to/proton/proton run /path/to/OblivionMods/Tools/TES4Edit/TES4Edit.exe'


Run the quick-clean alias, select the problematic file, and click “OK”. Only one file can be cleaned at a time.


TES4LODGen will generate the relevant LOD files ahead of time. Apparently it helps with performance in-game, but may result in slower initial load times when starting the game.


I downloaded the files from Nexus, and extracted the archive to OblivionMods/Tools/TES4LODGen. Here’s the alias; replace paths accordingly:

alias oblivion-tes4lodgen='STEAM_COMPAT_DATA_PATH=/path/to/steam/directory/steamapps/compatdata/22330/ \
                           STEAM_COMPAT_CLIENT_INSTALL_PATH=/path/to/steam/directory/ \
                           /path/to/proton/proton run /path/to/OblivionMods/Tools/TES4LODGen/TES4LODGen.exe'


Run the alias. The program should auto-find everything, do some magic, and will eventually report that it has finished. At that point, you can close the application.


BethINI helps manage the “oblivion.ini” file, providing sane options and a wizard for configuration. While not required, it does help with optimizations.


I downloaded the files from Nexus, and extracted the archive to OblivionMods/Tools/Bethini. If you use AutoHotKey apparently you can use that to run it, but that doesn’t make sense to me, so I went with the stand-alone executable. Here’s the alias; replace paths accordingly:

alias oblivion-bethini='STEAM_COMPAT_DATA_PATH=/path/to/steam/directory/steamapps/compatdata/22330/ \
                        STEAM_COMPAT_CLIENT_INSTALL_PATH=/path/to/steam/directory/ \
                        /path/to/proton/proton run /path/to/OblivionMods/Tools/BethINI/BethINI.exe'


Just like the rest, run the alias and answer the questions. BethINI will make backups of the modified INI files before over-writing them.

Next Steps

Once all the tools are assembled, and usable, the next step is mods! In my next post, I’ll cover some of my favorite mods. The third part will then be a complete walk-thru of my installation of my full mod list.

Bill Niblock 2021-11-28
[ gaming ]