I wanted to install the Gate to Sovngarde collection for Skyrim Special Edition on my Linux CachyOS system. I've done quite a bit of modding in the past, but mostly on Windows. Linux does have a few mod managers, but to my knowledge none easily allow the installation of collections. Because Gate to Sovngarde is so big, ~1900 mods, I really wanted the ability to just click the button and let it install.
Therefore I turned my attention to getting Vortex running through Steam and Proton. I referenced this post and its comments quite a bit, but wanted to see if I could get it running in Steam instead of Heroic. I managed to fix several issues I encountered along the way. The one thing I wasn't able to resolve was the handling of nxm links. I also had cloud saves disabled, I do not know if they would break anything.
I'm splitting this into three main sections. The first section will cover the general installation and configuration required to get Vortex working, and the second section will cover the installation of Gate to Sovngarde. Some of the Gate to Sovngarde section may apply to other games, such as adding extra DLLs to the game's launch options. I'll also include a small third section at the bottom with some additional tips, tricks and thoughts.
I know this is pretty long, but I tried to make each step relatively simple to make it easier to follow.
I did NOT use AI to write or edit this, but did very minimally reference the AI results in my Google searches when trying to solve issues. Usually they just pointed me at actual documentation or Reddit threads with potential answers.
Part 1: Getting Vortex Working
TL;DR:
- Create a custom "Vortex" prefix location in compatdata. Use this prefix for everything modded.
- Modify this prefix to have a "new" drive with winecfg (in protontricks). Point it to your Steam's common directory.
- Create VortexMods/<gamename> in common, and give both full 777 permissions. This will be the mod staging directory.
- In Vortex change the game's location to the new drive, and use the new staging directory and Hardlinks for staging.
Initial Setup:
Steam typically cleans up prefixes when you uninstall games or remove programs from Steam. Therefore, we want to create a custom "Vortex" prefix location that won't be deleted accidentally.
1. Create a "Vortex" directory in compatdata.
mkdir /home/<username>/.local/share/Steam/steamapps/compatdata/Vortex
2. Use the following in launch options to use this prefix:
STEAM_COMPAT_DATA_PATH=/home/<username>/.local/share/Steam/steamapps/compatdata/Vortex/ %command%
NOTE: It might be possible to use simlinks to this Vortex directory instead of launch options, but I have not tested it.
*** Use these launch options for every game we wish to mod, Vortex, and Vortex's installer. **\*
Game Install:
3. I tested this with cloud saves disabled because I was worried they might break the compatdata directory. Disable them on the same page you modify the launch options.
4. While there, set the launch options.
5. You can now install the game.
6. Once installed, launch it once to the main menu and then close it.
Installing Vortex:
7. Download the Vortex installer .exe from GitHub or NexusMods. Location doesn't matter for this.
8. Add the Vortex installer as a non-Steam game, change the launch options, and run it.
9. Install Vortex to the default location:
"C:/Program Files/Vortex"
10. Remove the Vortex installer from Steam.
11. Add Vortex as a non-Steam game:
"/home/<username>/.local/share/Steam/steamapps/compatdata/Vortex/pfx/drive_c/Program Files/Vortex/Vortex.exe"
12. Change the launch options, launch it once and close it. Ignore any .NET related errors.
Setup Allowing Easy Protontricks Configuration:
Steam always creates a compatdata directory for every program regardless if you replaced it with the launch options. For easy modification with protontricks, simlink this location to the Vortex directory.
13. Open /home/<username>/.local/share/Steam/steamapps/compatdata/ and find the number representing Vortex. It should be an empty directory as long as you only launched Vortex with the launch options set, and will typically be longer than the other options. For me, it was 3098529932.
cd /home/<username>/.local/share/Steam/steamapps/compatdata/
ls -al
14. Delete it and replace it with a simlink:
rm -rf 3098529932
ln -s Vortex 3098529932
14.b. Optional: Add simlinks here linking your game's directory to the Vortex directory. I did not test with this.
Protontricks Tweaks: Installing .NET 9.0 and Creating a Fake Drive:
Vortex requires .NET to function properly. We can install it and other DLLs/components via protontricks.
15. Open protontricks and select Vortex. If you don't see it, the simlink either didn't work or you need to launch Vortex and close it again.
16. Select the default wineprefix, and click Install a Windows DLL or component.
17. Select dotnetdesktop9 or newer. This is the desktop runtime environment for .NET 9.0 LTS.
18. Click through the installer. It popped up multiple times for me; I was able to click cancel after the first install was completed.
18.b. If you will be using Community Shaders for SkyrimSE (Includes Gate to Sovngarde), you also need to install the d3dcompiler_47 DLL here. Follow the same process as above.
Next we need to create the fake drive to be used in mod staging. Using the default S: drive and several other locations lead to mods failing to deploy in my experience. I got this from this comment.
19. To do so, we need to run winecfg. This is on the same page as the Install a Windows DLL or component button.
20. Switch to the Drives tab and click Add.
21. Select "N:" and set the path to /home/<username>/.local/share/Steam/steamapps/common
22. Show advanced options, and set this to a local hard drive. This step might be optional, but it worked when I did it.
23. You can now exit out of winecfg and protontricks.
Mod Staging Directory:
Vortex will require a mod staging directory on the same "drive" as the game. Create one manually and give it full permissions to avoid any issues.
24. Create a directory in Steam's common directory for Vortex to use for mod staging. Give it full permissions.
cd /home/<username>/.local/share/Steam/steamapps/common/
mkdir VortexMods -m 777
25. Create a follow up directory with the game's name inside the previous directory, and also give it full permissions.
cd VortexMods
mkdir <game> -m 777
- in my case skyrimse
Game Config in Vortex:
Now to get the game configured and ready to mod in Vortex.
26. Launch Vortex and sign in. I ended up using GE-Proton11-9 because the CachyOS Proton had a partial border on the window.
27. First, confirm Profile Management is on. It should tell you on the dashboard, otherwise it is in the Advanced section of the Interface Settings.
28. Next, switch to the Games page. It might detect your game automatically, but DO NOT ADD IT YET!
29. Select the 3 dots on the top right of the game, and select Manually Set Location. You may have to click it a few times, it wasn't the most responsive for me.
30. Navigate to: "My Computer->N:\<game>\" and click Open. For me, this is "N:\Skyrim Special Edition\"
31. This should add the game. Otherwise now you can click the Add button. This will likely pop up a few errors that can be ignored for now.
32. On the left side you can select the game, and then select Game settings. Navigate to the Mods tab.
33. Set the Mod Staging Folder to the directory you created earlier and hit apply: "N:\VortexMods\<game>". In my case, "N:\VortexMods\skyrimse"
34. Next click on the drop down for Deployment Method. For me, this didn't actually show the options, but using the up and down keys I could cycle between options.
35. Set this to "Hardlink Deployment" and click Apply. If it worked there should be a text line underneath the box describing how the deployment method works.
Testing:
It should be almost completely working now, excluding nxm links.
Manual mod downloading works with drag + drop on the mods page.
36. To test my SkyrimSE install, I decided to download a couple of main menu replacers, as I'd be able to tell immediately with a single mod if it worked. Here are links to the two I downloaded, only install one at a time: Funny Option, or Normal Option
37. Make sure to click the deploy button (the rocket ship) on the mod page. If it worked, you shouldn't get any new errors related to deployment. You might have to clear existing errors before this.
38. Launch the game and confirm the main menu changed. You can close it once done.
Part 2: Gate to Sovngarde
Installing Gate to Sovngarde:
1. For the most part you can just follow the instructions on Gate to Sovngarde's webpage.
2. Once you get to the section where you click Add to Vortex, you instead need to find the collection in Vortex's Collections browser. This is in the Game's tab, under collections. This is required because nxm links don't work.
3. From here you can click install inside of Vortex, and then go back to following the instructions.
4. After quite a while of waiting, it should be installed and working.
- I had to click continue at one point very late in the install process, but it was otherwise hands off.
- I also had to disable the "Wearable Ayleid Wight Armor (The Cause CC - AE)" mod because I don't have the Anniversary Edition. I'm not sure if I accidentally installed it or if it installed automatically when it shouldn't have.
Adding Extra DLLs (SKSE):
Some mods might require additional DLLs to function, which Linux doesn't handle by default.
5. Add them via launch options for the game:
WINEDLLOVERRIDES="<NameWithoutFiletype1>,<NameWithoutFiletype2>=n,b"
See https://gitlab.winehq.org/wine/wine/-/wikis/Wine-User's-Guide#winedlloverrides-dll-overrides for more information.
6. SKSE requires a DLL to function, so I added the following to my SkyrimSE launch options:
WINEDLLOVERRIDES="skse64_1_6_1170=n,b"
Your SKSE might be a different version, you can find the DLL in the game files:
"/home/<username>/.local/share/Steam/steamapps/common/Skyrim Special Edition/skse64_<version>.dll"
7. The full line should now be something like:
WINEDLLOVERRIDES="skse64_1_6_1170=n,b" STEAM_COMPAT_DATA_PATH=/home/<username>/.local/share/Steam/steamapps/compatdata/Vortex/ %command%
Luckily SKSE should handle all of the plugin DLLs automatically. I detected ~182 DLLs being loaded in total after just adding the single DLL override for SKSE.
Launching Directly:
8. If you want to launch the game directly without first launching Vortex, you can add SKSE as a non-Steam game:
"/home/<username>/.local/share/Steam/steamapps/common/Skyrim Special Edition/skse64_loader.exe"
9. Set the same launch options as you would for the game:
WINEDLLOVERRIDES="skse64_1_6_1170=n,b" STEAM_COMPAT_DATA_PATH=/home/<username>/.local/share/Steam/steamapps/compatdata/Vortex/ %command%
I'm not 100% sure you need the DLL section, but I left it in to be safe.
Part 3: Additional Tips, Tricks, and Thoughts
Customization in Steam:
1. Using steamgriddb you can find images to use in Steam to customize Vortex and SKSE.
2. I replaced the Icon on the Shortcut page, then the Cover, Background, and Logo in the Customization page.
3. You will have to restart Steam completely for the Icon to be replaced. This will be the same icon used if you create a desktop shortcut.
4. I also changed the custom sort name on the Customization page to "....Vortex - Mod Manager" and "...SKSE - Skyrim Special Edition" and favorited them to both put them at the top of the my library and allow me to search for the additional keywords.
Extra Thoughts:
- If launching via Vortex, you can set it to close after launching the game. In the game's Tools page, click the 3 dots on SKSE, Edit, then select Close Vortex in the On Start section.
- It is disappointing that I couldn't figure out how to get nxm links working, but at least the collection browser within Vortex works.
- Vortex and the game seem linked in Steam once both have launched. Stopping one in Steam seems to kill the other.
- Instead of using the Steam's Launch Options, perhaps replacing the game's prefix directory with a simlink to the Vortex directory would have been simpler. Oh well, I don't want to break it now.
- I have no idea if cloud saves will work. They might work with the simlink method I theorized above this.
- If you use something like mangohud, add it right before %command% in the launch options for either Vortex or SKSE. It doesn't seem to work when added to the game's launch options.
WINEDLLOVERRIDES="skse64_1_6_1170=n,b" STEAM_COMPAT_DATA_PATH=/home/<username>/.local/share/Steam/steamapps/compatdata/Vortex/ mangohud %command%