I like to play games well into their sunset years, which is great because it saves me a lot of money on GPUs. I had Fallout 4 back when it was relatively new, but having tired of my other options, I decided to see how it ran on modern Linux. As it turns out, the answer is that it runs about as well as it does on Windows, maybe even slightly better in the graphics performance department. I started out with a steam deck howto and worked the rest out from there. These instructions assume you have all of the DLC. If not, you may have to make some small adjustments towards the end of this guide, but the whole install is the same.
Install
I'm going to go ahead and quick-summarize the howto I started from so that it's not a mystery to someone who won't go find it in the internet archive (if, in some strange future, this document is available and that one isn't) by copying the relevant part of the table of contents here, with links back there.
Step 0, of course, would seem to be "install FO4 from Steam". But it makes more sense after Step 2 because you have to force a Steam Play compatibility tool before you can install. In which case, you should actually do Step 1 immediately after installing Fallout 4. You might also already have Proton-GE installed, or you could set it to some other Proton version and then change it later.
- Step 1: Download and Install F4SE
F4SE is easily installed. FO4 is in "$HOME/.steam/steam/steamapps/common/Fallout 4"
At this time the current version is 0.6.23 for Fallout 4 version 1.10.163.
Many of the best mods require it. - Step 2: Add ProtonUp-QT to Install SteamTinkerLaunch
ProtonUp-QT is available as an AppImage or Flatpak, or build it yourself.
Having installed it, run it, and use it to install SteamTinkerLaunch and the latest version of Proton-GE. - Step 3: Change the Proton Version to SteamTinkerLaunch
If you open the game properties (right click on it in the library) then in the "Compatibility" tab "Force the use of a specific Steam Play compatibility tool" (check the box) and change it to "Steam Tinker Launch". - Step 4: Use SteamTinkerLaunch to Install Vortex Mod Manager
When you launch the game, you will now launch Steam Tinker Launch, and it will do things before launching Fallout 4.
One of the things it can do is install Vortex Mod Manager. This is very helpful (and Steam Tinker Launch is totally worthwhile) because installing its prerequisites (very specific VC++ and .NET libs) manually is no cakewalk. Vortex is needed to interface with nexusmods.
If you wanted you could instead install one of the other mod managers (LOOT?) into your wine bottle manually instead. It is not too difficult* to access it. - Step 5: Understanding and Using Vortex Mod Manager
Vortex is frankly pretty straightforward. At the top of the window near the right it will display alerts that you need to read about things like mod load order conflicts. You should generally be able to accept its suggestions for fixing those.
There's a little more to know than this. One thing to know is that if you are not using variable sync, you should pin the refresh rate from the command line. Change the launch options (in the general tab of the game properties) to:
DXVK_FRAME_RATE=60 PULSE_LATENCY_MSEC=90 %command%
Or, if using more than 60 FPS, whatever the actual number is. I am playing at 1080p60 using an elderly budget system with a 1600AF and a 1070 OC, and performance is generally quite good with the right set of mods.
Bug Mitigation
Even today, Fallout 4 has many known but unfixed quest-breaking bugs, crash bugs which show up even or especially when the game is unmodded, and plenty of other problems. Many of these problems are fixed in one or more of the several unofficial patches available as mods. The Unofficial Fallout 4 Patch is absolutely mandatory. You will also want Buffout 4, which requires not just F4SE but also Address Library for F4SE Plugins and xSE PluginPreloader F4. You also want High FPS Physics Fix, Load Accelerator, Long Save Bug Fix, Previsibines Repair Pack (PRP) Stable Branch, Unofficial Previsibines patch collection and any prerequisites I might have missed for any of those. And if you want to be able to get Steam achievements, then also Achievements. (Whether you're going to stick with lore-friendly mods or not is up to you.)
A note on mod installation
It used to be that when you installed mods using a tool (e.g. with Nexus Mod Manager) that you were done. But that's no longer true, and now you have another step for some mods. You have to go into the mods menu inside of the game and before loading a game, select load order, and enable some of the mods - which have been installed but not activated. You must do this before starting a game for the first time.
Other Tips
I had audio problems until I got rid of pulseaudio and installed pipewire (most Linux users would probably benefit more from this guide right now.) Hopefully in the future this will be the default for most Linux distributions, as it not only replaces both pulseaudio and JACK with a single solution, it also captures output from ALSA clients.
For maximum performance with vsync on nvidia, I find it necessary to make the following changes to my xorg.conf:
Section "Screen"
Identifier "Screen0"
...
Option "ForceFullCompositionPipeline" "on"
Option "TripleBuffer" "on"
Option "AllowIndirectGLXProtocol" "off"
...
EndSection
This enables Triple Buffering. You must disable indirect GLX for maximum performance. That means that any X client you run remotely cannot access the GLX protocol on your display server. If you don't know what that means, it's almost certainly safe to use it along with all of these options. This combo conclusively eliminates tearing with nvidia at the expense of some VRAM. If like me you have finally gotten up to a relatively modern amount of that (in my case 8GB) it's not going to cause you any problems with a game like this, but the VRAM consumption might be an issue for much more modern games, or at resolutions above 1080p. This is because, as the name implies, triple buffering utilizes an additional screen buffer on the GPU.
* for example:
STEAM_COMPAT_CLIENT_INSTALL_PATH=~/.steam/steam/compatibilitytools.d/GE-Proton7-54 \
STEAM_COMPAT_DATA_PATH=~/.steam/steam/steamapps/compatdata/377160 \
~/.steam/steam/compatibilitytools.d/GE-Proton7-54/proton waitforexitandrun cmd
(adjusting for the current Proton-GE version) will run a command shell where you can run whatever you like from the Z: drive mapping.