back to home
viva new vegas on linux
setting up vnv on any linux distro without running random scripts
viva new vegas on linux
recently, i got an urge to play Fallout: New Vegas again. problem is, the game is a buggy mess and crashes every 30 seconds if you don't install 60 stability mods. it's like payday 2, but only worse. multiple friends recommended me to try a project called Viva New Vegas, which aims to provide a modding guide for all skill levels that makes Fallout: New Vegas playable on period-accurate and modern machines alike.
for the tutorial part of this post, skip to setup.
initial attempt
i first tried to follow the official guide, but replacing the windows-specific parts with solutions i found online. it went horribly as the tooling just Didn't Work.
then i came across mirelurked's vnv guide. followed it up until the first step where it became clear that:
- the guide was violently outdated
- the scripts i hesitantly ran weren't even funtional
it was also highly Steam Deck-specific. somehow people just cannot write a generally applicable guide. i'm not here to fix that, i am also going to write a domain-specific guide (linux), however, most of the information on this guide is also applicable to windows.
i knew what i had to do. write my own fucking guide: Viva New Fucking Vegas on Fucking Linux
setup
prequisites
- Steam (not a hard requirement if you can manage your own proton & wineprefixes. Bottles works)
- an up-to-date copy of Fallout: New Vegas Ultimate(why?) from Steam or GOG, placed somewhere that Steam can access
- Proton-GE (
, for Steam Flatpak) - Protontricks
, Flatpak or not
terminology
| term | meaning |
|---|---|
| ESM | a kind of game content file |
| BSA | bethesda archive file |
| installation directory | where the game files are, parent folder of FalloutNV.exe |
| Data directory | <installation dir>/Data |
| wineprefix / "Wine prefix" | where wine/proton's files are initialized, usually in steam's steamapps/compatdata directory |
| Proton | Valve's Windows-Linux compatibility layer |
~ |
your 'home' directory. usually /home/<username> |
step 0: pre-downloads
i've compiled archives of all of the files that you're likely going to download. if you want to skip the wait,
TODO: add this link
step 1: download Fallout: New Vegas Ultimate
if you own the game on Steam, press Install.
i do not know how GOG distributes the game, but i do know that they usually have these weird Inno Setup installers with split data files. these can be a pain to extract if you're on Linux and acquired the game through a cough questionable source. for that i recommend using this tool innoextract that seems to be packaged in every distribution ever. simply invoke it like so:
innoextract shady-installer.exe
again, make sure you extract it in a place where Steam and Protontricks can see it. i recommend ~/vnv/fnv for reasons that will be clear in the following step. if you installed the game via Steam, i recommend moving or copying the game files here anyways. if you don't want to do that, make sure you may delete Data/FalloutNV_lang.esm which may be present if you acquired the game through the questionable sources aforementioned and you're going to play the game in english.
if you're using the Flatpak version(s) of Protontricks or Steam, allow it to see that folder using the commands below:
# for Protontricks
flatpak override --user --filesystem='~/vnv' com.github.Matoking.protontricks
# for Steam
flatpak override --user --filesystem='~/vnv' com.valvesoftware.Steam
or if you're allergic to the command line, you can use a GUI tool like Flatseal or the Flatpak Permissions tab of KDE's System Settings app to achieve the same thing. pick the respective app from the menu, scroll to Filesystem or Filesystem Access, add a new entry with the value ~/vnv (tilde is important here, do not replace with an absolute path), make sure it's set to read-write, not read-only. make sure Steam is either not running during the operation, or restarted after it is complete, as it does not obtain the new permissions while running.
step 2: download Mod Organizer 2
mod organizer 2 is a fs api hooking based mod manager and FOMOD plugin host. you don't need to know what that means.
grab the latest file with the naming format Mod.Organizer-<version>.7z from the releases page. create a directory somewhere Steam can access. i recommend using ~/vnv/mo2 because wine's file picker doesn't have an option to show hidden files.
then, extract the 7z file you downloaded into the directory you created using the GUI archive tool (eg. Ark) included with every single distribution. or if you're allergic to GUIs, you can also use the following commands:
downloaded_archive="${XDG_DOWNLOAD_DIR:-$HOME/Downloads}/
Mod.Organizer-2.5.2.7z"
destination="$HOME/vnv/mo2"
7zx() {
7z x "${1?source archive is required}" "${2:+-o${2}}"
}
bsdtarx() {
bsdtar xvf "${1?source archive is required}" ${2:+-C "${2}"}
}
(set -euo pipefail;
if command -v 7z &>/dev/null; then
echo "using 7z to extract" >&2
7zx "${downloaded_archive}" "${destination}"
elif command -v bsdtar &>/dev/null; then
echo "using bsdtar to extract" >&2
bsdtarx "${downloaded_archive}" "${destination}"
else
echo "error: no suitable archiving tool found. install 7z (7zip or p7zip) or bsdtar (libarchive-tools) to continue" >&2
exit 1
fi) &&
echo "success :)" >&2 ||
echo "error :(" >&2
now that i've offended both sides, we can continue with the guide.
step 3: set up Mod Organizer 2
open Steam. go to Library. at the bottom of the window, there's a button that says 'Add a Game'. click it. choose 'Add a non-Steam Game'. click Browse, navigate to where you extracted Mod Organizer 2, and pick ModOrganizer.exe. then click 'Add Selected Programs' to add it to your library. now, if you're sorting your library by recent (as you should be), Steam puts the new game in the bottom of the list. use the search function to find it again.
you should see a library entry with the name ModOrganizer.exe with no icon. you can customize the name and icon however you want. i called mine 'Viva New Fucking Vegas'. right click the entry and go to Properties, Compatibility, tick the 'Force the use of a specific Steam Play compatibility tool' (you can tell someone from the linux team wrote this localization string because it's longer and more complex than it needs to be) checkbox, and finally pick Proton-GE (called GE-Proton<major>-<minor> (Flatpak) in flatpak installations). launch it once to generate the wineprefix and do initial setup.
you should be greeted with the 'Creating a new instance' window. hit next, and choose to create a Portable instance. now, this is the point where you will see the dreadful wine file picker for the first time. hit Browse when asked to choose the game installation. i assume you know how to use a file picker, but there are some quirks because we're in the wine world, not the linux world. your filesystem root starts at Z:\, and your home folder is usually Z:\home\<username>. find your game installation in there. if you installed to ~/vnv/fnv, it will be in Z:\home\<username>\vnv\fnv. if you installed in the default Steam library, it will be in Z:\home\<username>\data\Steam\steamapps\common\Fallout New Vegas. if you wish to enter a hidden directory, type the full name of the directory in the 'Directory:' textbox and hit 'Choose', then, reopen the file picker. it will continue from that directory. if it complains about an unsupported game, either your game files are incomplete or you've picked the wrong location.
once you've picked the game directory, press Next. it will ask you about whether the game is from Steam, GOG, or Epic Games. answer truthfully lest you discover a whole new class of bug in a system that is already falling apart. anyways. on the 'Creating an instance' screen, tick 'Use profile-specific game INI files'. the VNV guide doesn't tell you to do this until way later yet it requires it. fun. the other options are left to your discretion but i would recommend keeping them all on to not mess up vanilla gameplay. press next.
keep the default installation path (there's a reason we're using a portable install). whether you want to connect a nexus account is left up to you. finish the installation at once. skip the tutorial (it's useless). i don't know what 'category defaults' means but i picked the 'Old Defaults' option. Do not associate it with nxm: links. Please.
step 4: the horrors
woo! you got Mod Organizer 2 running! you're only 80 steps away from having a functioning game. rejoice. for now it is time to launch Protontricks.
fire up Protontricks and choose the 'Non-steam shortcut' with the name you gave to your Mod Organizer 2 installation on Steam, ModOrganizer.exe by default. press OK to advance menus. next up, choose 'Choose the default wineprefix' (always do this even if not told to explicitly). we have to change a few settings here
- (Optional) pick 'Change settings' and set the font smoothing method of your choice
- (Optional) pick 'Install a font' and install
corefonts. for a laugh. fonts are always broken for some reason. - pick 'Run winecfg' and make sure the Windows Version is set to Windows 10. press OK to apply changes and exit winecfg. i don't remember why but i remember you had to do this.
- pick 'Install a Windows DLL or component'. this is the main juice of Winetricks, and by extension Protontricks. you're going to want to tick
vcrun2022and hit OK. it might complain about SHA mismatches. this is becausevcrun2022is the current stable branch of the runtime, so, there are occasional updates to the binary that Protontricks/Winetricks hasn't accounted for. the binaries are downloaded directly from microsoft. agree to the licenses and press install for both of the dialogues. one of them will have different font rendering because of course. - pick 'Run regedit'. before the game (or the launcher) can launch through MO2, you must also set a weird registry key for some reason (copy protection). go to
HKEY_LOCAL_MACHINE,Software,Wow6432Node, right click and create a key namedBethesda Softworksif it doesn't exist, and another calledFalloutNVinside of that. in the newly createdFalloutNVkey, create a new String Value with the nameInstalled Path. set it's value to the game installation root from the perspective of Steam.
now, download the four evil tools listed under Manual Downloads of the Utilities page of the official guide. it's time to install the fucked up Installer.exe mods.
start with FNV BSA Decompressor. download the archive and extract the files somewhere Protontricks can see. now, pick 'Run an arbitrary executable' in Protontricks. savour the system file picker that just popped up. it will only get rarer from this point onwards. pick the Installer.exe file you extracted. an extremely ugly installer screen should pop up. if it doesn't, good luck lol. this mod isn't required for the game to launch, and we will be installing a mod to make the decompression less problematic anyways. then, use the awesome wine file picker to find and pick the game's installation directory the same way as in step 3. copy and paste it to the 'Decompressed Archives' option as well, making sure it ends with \Data. hit 'DECOMPRESS' and hope it doesn't fail. we can install xNVSE and the relevant patcher while it's crunching numbers. hit Install. after the progress bar pop-up disappears, if no error dialog pops up, and there are no error messages present on the main window, it has likely worked. the main window just becomes blank for me after it's done, both on an intel+intel and amd+amd machine. you can close the window after that.
for xNVSE, just download the archive and extract everything inside in the game installation directory. write into and overwrite when prompted.
for the patcher part… you technically don't need it, but, it's highly recommended as you will run out of memory with this many mods loaded. the Steam & GOG patcher has 2 Windows, 1 Linux, and 1 cross-platform version. i assume all of them work the same way but i've only tested the FNVpatch.exe one. if you don't wish to run a shady executable, i've written (in rust) and published a tool that sets the flag that makes applications able to use 4 gigs of memory, for any executable. keep in mind that my tool will not patch the game to load xNVSE by default like FNVpatch.exe does, but, there is just an option to launch xNVSE in Mod Organizer 2, so it isn't really necessary.you should
next up is Ultimate Edition ESM Fixes Remastered. like, the BSA Decompressor, this modification is not strictly necessary, but the game probably wont work well without it. make sure the Decompressor has finished before starting this one.
first, using your regular file manager, create a new directory called Fixed ESMs inside the mods directory of the Mod Organizer 2 directory (~/vnv/mo2/mods if you've been following the recommendations of the guide). then, extract and launch the installer the same way you did with the BSA Decompressor. for the 'Mod folder' directory, pick the Fixed ESMs directory you just created (Z:\home\<username>\vnv\mo2\mods\Fixed ESMs). this is for the mod load order and also easier management. hit Install. just like the BSA Decompressor, if the 'Processing' pop-up closes after reaching 5/5, with no error present on the main window, it has likely worked. mirelurked's guide speaks of a mythical orange button, but it blanks like the other one.
step 5: Limbo
now that we have a patched game and a working MO2 installation, we can actually start installing mods. to do that, simply follow the rest of the official guide up until Base Finish, keeping in mind two things:
- download the mods with your browser and use the 'Install a new mod from an archive' button in MO2,
- skip the performance guide. this will be covered later
when you get to Base Finish, you might notice that the load order trick does not work. i have not figured out a consistent way to get it to work, however, doing the things listed on the page including the red box seems to have worked somewhat. you can always manually reorder mods if need be.
step 6: Lust
it's time for configuration. now we return to the performance guide. most of this is irrelevant to you as Proton already implements these tricks itself, however, there seems to be two mods that have discernible effects on the game. namely, zlib Updated and OneTweak. we'll need OneTweak specifically for borderless windowed, as the game straight up freezes when you alt tab on some platforms. it's recommended to do this even if you don't plan on running the game in fullscreen to avoid potential crashes. after installing OneTweak, go to it's directory in the mo2/mods folder, and find OneTweak/NVSE/plugins/OneTweak.ini. open it in an editor (MO2'd .ini editor is supposed to see this but doesn't?) and set BorderlessWindow (left hand side of =) to true (right hand side of =). then, open falloutcustom.ini in MO2's editor, find bFull Screen, and set it's value to 0. make sure the resolution is set right in falloutprefs.ini as well (iSize W and iSize H). fullscreen state and resolution can be set through the Fallout Launcher instead of the .ini files, however, don't trust the launcher too much because some of the knobs and gizmos there straight up do nothing.
step 7: Gluttony
congrats! you have installed all the mods. double check that the checkbox next to each mod is ticked, and the load order is correct. we still have some work to do, though. it's time to talk about framerates.
this game runs like shit. the engine or whatever is also not tuned to run above 60 fps at all. some of the mods make it run somewhat stable at up to 120 fps (sorry 144 hz users), but the game caps the fps at 60 unless you mess with the config. if you want to change that limit, you're going to need a framerate limiter. i recommend MangoHud (
if you're using Steam Flatpak, else, follow the instructions on the README). assuming you choose to go with MangoHud, you can create a configuration file just for FNV inside of the game installation directory itself. so, create a file named MangoHud.conf inside the game directory, and put these two lines in it:
fps_limit=<n>
replace<n>with your target framerateno_display
(optional) hide the MangoHud GUI by default
then, go to your Steam library entry for MO2, right click, click Properties, and prepend MANGOHUD=1 %command% to the launch options. this sets the environment variable MANGOHUD, which triggers MangoHud to load.
after you configure your framerate limiter, you need to go back to falloutcustom.ini. find iPresentInterval and set it's value to 0 to disable in-built vsync. if you do want vsync but not the default 60 fps limit, you'll have to configure it in MangoHud.
…and that's it! you can now launch the game through MO2, create a new save, and start playing.
recommended extra mods
possible issues
i've tried to cover every issue i faced during my experience setting this up for the first time. if you discover a new way to fuck things up, please do contact me.
UPDATE: forgot about the Mitchell Head Spinning Bug, which can be fixed by adjusting some sliders. too busy to write about it now, bug me when i'm free
why ultimate
a lot of mods and modding tools hard depend on all of the DLCs except the pre-order bonuses being present in the Data directory. if you don't want to play the DLCs and therefore do not want to purchase them, pirated copies of the ESMs work just fine. you didn't hear that from me, though.