Oblivion on Linux Info Dump

By Erik Letson, Aug 6th, 2021 (blog index)


This post is a big heap of information I have accumulated about running and modding Oblivion on Linux. I have compiled this here mostly for my own benefit, in case I forget in the future, but maybe some of this stuff will be helpful to the readers out there as well.

Versions of Proton to use

I recommend using Proton 5.0 to run Oblivion. This is because newer versions have some issues. Proton 5.13 will not install .Net version 4+, which is needed by the Construction Set Extender. Proton 6 has some issues with stability and an annoying Oblivion-specific music cutout bug (which has apparently been addressed). I have not tested with versions older than 5.0, but 5.0 has worked mostly well for everything I needed it to do, so I recommend it.

Launch options

There are two basic sets of launch options that I have seen recommended for Oblivion:

  1. PROTON_USE_WINED3D=1 %command%

  2. PROTON_NO_D3D11=1 PROTON_NO_D3D10=1 %command%

I recommend the second set over the first. The first set will run Oblivion with OpenGL drivers, and both stability and performance are inferior when compared to set 2, which runs the game with legacy D3D drivers. You may have a different experience, particularly if you use an AMD GPU (I have an nVidia GPU) or if you use non-proprietary drivers like nouveau. Check this link for a brief overview of Proton launch options, by the way.

Tools

Here are the third-party tools for modding Oblivion that I have tested, and whether they worked or not. All of the tools listed below are Windows-native, and I run them with Proton or Wine.

What worked:

What didn't work:

About OPET

One thing I have made use of extensively in my time modding Oblivion is this small tool I created called OPET. This tool is a simple WxPython application that will allow you to enable and disable .esp files, as well as to sort their load order. I made this tool early on in my days of modding Oblivion, back when I was using a setup with fundamental issues I did not know about (I wrote some about it here). In this environment, I couldn't get other tools to work, and I needed a way to sort load order at least. Since Oblivion determines load order for .esp's based on the timestamps of the files, for a while I was able to sort it manually with the touch command, and later on with a very simple script. But this was primitive, and I wanted a way to modify the load order one-by-one visually and apply the changes when it looked right.

I whipped up OPET in a hurry. It is terribly amatuerish and doesn't do much, mostly because I am not an expert (or even a journeyman or apprentice) in WxWidgets. Also, I just made it for myself, so when I thought it was good enough for my own personal use, I stopped working on it. It has issues and a few bugs, but it gets the job done. I still use it to make quick edits to my load order because, even though I have managed to get far superior programs like Wrye Bash to work, I feel that OPET has 3 distinct advantages:

  1. OPET starts up much much faster than Wrye Bash. Its just a little Python script, after all.

  2. OPET allows me to apply changes once I'm satisfied with them, while Wrye Bash will change files as soon as you modify them in the program.

  3. It works natively in Linux without needing to use wine (this is more of a philosophical point, but more on this in a moment).

I don't think I would really recommend anyone else to use OPET. As I said, it pretty much is something I just made for myself. It is possible you might get some use out of it, but please understand that it has bugs and issues and I am unlikely to do any work on it in the future (at least that is how I feel right now). In a perfect world, there would be native Linux tools for all the things you need to do to mod Oblivion, since they usually don't need to be in the same environment as a running instance of Oblivion or something. Almost all of the tools I have used just modify files, and there is no reason this could not be done in a native Linux environment. Well, except for one big one: the time and effort it would take. I had grand ideas about what I would do with OPET on that first day, but the reality is, if you set up your wine environment right from the start, you can make do with the Windows tools mostly. I would love to have some sort of Linux uber-application that combines Wrye Bash and TES4Edit and BOSS or LOOT and more and does it all in the context of your regular system, just changing files in a location that you point to in a config file or in the settings menu or something. Probably a pipe dream :-) .

Oh, by the way, "OPET" stands for "Oblivion Proton .ESP Tool". Not very creative, but that's what I made it for. Perhaps the "P" could stand for "Python" as well, since I am almost certain it should have no problems dealing with Oblivion running in a wine environment outside of Proton. You would just have to change the config files to point to the new Data directory and the location of the Plugins.txt file in whatever prefix you are using.

External Links

Useful links for the Linux-using Oblivion modder.

  1. Kat's Random Nonsense - a blog which features a tremendous amount of useful information about running Oblivion on Linux. Especially [this] is a very helpful article to get started, and I wish I had found it right when I was first starting out. Many thanks to Kat for this site!

  2. Shrine of Kynareth - another excellent (and frequently updated) blog run by an Oblivion modder using Linux. Lots and lots of good info.

  3. UESPWiki - the go-to source for Oblivion info online. Has a lot of good stuff about using modding tools, as well as a bit of (possibly outdated) info about running Oblivion on Linux.

  4. The Construction Set Basics tutorials on tesalliance.org - These are the best tutorials for using the Construction Set on the internet, bar none.

  5. The Oblivion Nexus - There are other places to get mods, of course, but this site is the biggest and the one most people start with (I think).

  6. The Elder Scrolls Construction Set Wiki - This is the main source of documentation for the CS.

  7. Wrye Bash General Readme

  8. The old (very old) Wrye Bash site - Lots of info on there though, and I think some of it still applies. Could be useful for advanced users.

  9. The ProtonDB page for Oblivion - Great source of info, especially if you are having issues getting the game to run in the first place or trying to use it on a newer Proton version.

  10. The Official Oblivion GitHub issue page for Proton - Another excellent source of Proton-specific info.

Return to blog index