Decided to leave the VFS tab for now. Filtering likely doesn't work, except Show Only Open. Sorting works. Rewrites to replace dynamicRoles done for Mods and Plugins tables. Database.qml now reads "moddir", though installing extracted is still unimplemented so far. Launch still doesn't work. Ignore the "file -> test extract". It's a test for file extraction. |
||
|---|---|---|
| FuseMounter | ||
| qml | ||
| src | ||
| about.html | ||
| qml.qrc | ||
| quickmod.desktop | ||
| quickmod.png | ||
| quickmod.pro | ||
| README.md | ||
quickmod
Basic mod manager for Fallout 4, Fallout 4 VR, Skyrim SE/AE, Skyrim VR, Fallout New Vegas, and Cyberpunk 2077 on Linux (and maybe BSDs)
This app is ragged-edge at the moment, and this project is published because it finally works at all.
There is no warranty if it messes up your Steam installation, or your entire PC
What I'm trying to say is: This probably isn't the app you want.
To install this on a Steam Deck, I made a little installer... thing.
To use it, download this installer file: http://dawnnest.com/doneill/Quickmod%20Installer.desktop
In your Downloads directory, run it. It'll ask if you trust it (and by proxy, me) to execute this possibly damaging and malicious script on your incredibly expensive luxury game consolehmmuahAHAHAHAhahaHAHA... I mean, click Continue.
Theoretically, that's basically it. Just open it from the desktop icon and proceed to the Setup instructions below.
Remember: You need to open the manager and select the correct game before clicking those NexusMods links.
(Skyrim VR and Skyrim SE both use basically the same mods, and at least, the same NexusMods section. The same is true for Fallout 4 and Fallout 4 VR. While I could check to see if the currently loaded game profile matches the link roughly, I think it's better to not open that can of worms and pass the responsibility on to You, the Customer.)
What does this installer actually install?
I couldn't be messed with doing anything TOO complex, so it just downloads an archive containing a prebuilt binary, a new .desktop for your actual desktop mode Desktop, various sizes of the ugly icon, and another .desktop which should automatically associate nxm links. (Also hosted on my server.)
You can see for yourself by just downloading and opening the archive in question.
Building
Requirements
- Qt 6.4+
- libarchive 3.6.0+
- FUSE 3
- unarr - I know, there's already a libarchive dependency, but unarr allows for direct file seeking which is needed by the VFS when loading a mod in situ.
Building
leetguy@gibson:~$ git clone --depth 1 "https://github.com/danieloneill/quickmod.git"
leetguy@gibson:~$ cd quickmod
leetguy@gibson:~/quickmod$ mkdir build
leetguy@gibson:~/quickmod$ cd build
leetguy@gibson:~/quickmod/build$ qmake ..
Info: creating stash file /home/leetguy/quickmod/build/.qmake.stash
leetguy@gibson:~/quickmod/build$ make -j6
<CPU FAN GOES BRRRRRRR>
leetguy@gibson:~/quickmod/build$ ./quickmod
Usage
This is rather important because at this point in development there is barely any error checking. It's assumed you have everything just right.
Setup
(Screenshots are from earlier Qt6 development build so yours may look slightly different, but the steps are the same.)
In the File menu open Settings:
From the General tab you can enter your personal Nexusmods API key, if you're willing to risk that. This key is stored in plaintext at ~/.config/Quickmod/quickmod.conf
Installation Method - This will likely be changed. The best bang for the buck really depends on the mod itself, so this will simply become the "default". Until then, it does nothing.
Click the tab of the game you'd like to manage mods for. Each path must be specified.
Where I put "/DATA" you'd likely want to use the same mountpoint as your Steam library, but it's entirely up to you. There's no restriction that the filesystem overlay or archives must reside on the same medium.
- Mod Storage Directory - Where the mod archive files shall be stored. I put mine on the same device as the game so it follows the game (it's installed on a microsd). Maybe something like /DATA/modding/Fallout 4 VR/mods.
- Mod Staging Directory - In cases where mod performance requires being extracted, the mod will be sandboxed in a subdirectory of the Mod Staging Directory. Something like /DATA/modding/Fallout 4 VR/staging.
- Real Game Directory - Where the actual vanilla game lives. Usually something like /DATA/SteamLibrary/steamapps/common/Skyrim Special Edition or /home/leetguy/.steam/debian-installation/steamapps/common/Skyrim Special Edition renamed to "Skyrim Special Edition - ACTUAL REAL DATA" or something. (See the VFS section about this. It's pretty important to understand how it works.)
- VFS Mountpoint - This is where Steam or GOG looks for the game data. Y'know, the directory you renamed to whatever you put in the box above? Yeah, that path. (You may have to mkdir it after renaming the original.)
- VFS Sandbox - When the game or a mod tries to create or modify a file on the VFS, this is where the actual file will live.
- User Data Directory - This should be your compatdata user's account (usually steamuser). Something like /DATA/SteamLibrary/steamapps/compatdata/489830/pfx/drive_c/users/steamuser or /home/leetguy/.steam/debian-installation/steamapps/compatdata/489830/pfx/drive_c/users/steamuser
- Quickmod Database File - This will be where your mod manifest stuff, profiles, selections, and so-on reside. Usually somewhere like /DATA/modding/Fallout 4 VR/Quickmod.sqlite.
Click Save and then select that game in the Games menu at the top.
For any mods to work you probably need to enable mods for the game by clicking Enable mods in game in the File menu. This is also known as "archive invalidation". If you're from the future and just using this for Cyberpunk 2077, you don't need to. (If it's grayed out that means it isn't needed.)
A default profile will be created for each game. You can add more in the sqlite3 database file, but... I do plan on adding a profile manager, eventually.
Handling nexusmods.com links
The simplest way is via Plasma's system settings, found in "Desktop Mode" on SteamOS:
- Open System Settings
- Select Applications
- Select File Associations
- Expand x-scheme-handler
- If no entry for nxm exists, create it by clicking Add at the bottom
- In Application Preference Order (on the right side) click Add
- In the now opened Choose Application window, click the browse button in the top-right
- Browse to and select the quickmod binary. (Should be at ~/quickmod/build/quickmod if you build with my directions above.)
- Click Apply in the bottom right of System Settings and now you can close it
Limitations
-
The FUSE VFS requires your user account to have whatever permissions are needed to mount a filesystem in userspace. How do you do that? I don't know, kinda depends on your distro. Let me know how you did it!
-
At the moment, unarr (and maybe libarchive) doesn't support RAR5 format, which a lot of mods are starting to use. I... I don't know what to even do about that, really. In my case I have a script that just repacks it. If it continues to be a headache, I'll... I dunno, figure something out? Until then, just... that's how it is.
-
Many parts are still unimplemented, including Profile management, Launching a game, Download manager (pause, queues, speed limits, etcetera), along with error checking, additional games support, polish, and bug squishing. That said, it works well enough for me in this state to be a life saver with mods on Linux, even if I have to launch the game itself from Steam. (So what, I have to have Steam open for the game to launch anyway.)
Notes
-
If your installation already has mods installed by some other means, they ... will just stay there and on unless you manually remove them (or do so via a different manager), so for best results start from a clean installation.
-
Quickmod must be open and have the correct target game selected for Nexusmods (NXM) links to work. If you try to install a mod for Fallout 4 while you have Skyrim AE selected, it'll just blindly install the mod into your Skyrim AE data, which probably isn't what you want.
-
Mods like F4SE/SKSE themselves won't install correctly, you gotta set all that up yourself. This app isn't currently capable of doing it, but luckily it's a well-documented process which isn't difficult to do manually.
-
At present, this has been tested with a handful of mods, and it correctly functions with those. YMMV with whatever mod, but if it fails to install (or something breaks) please create a ticket with the mod name as the title.
-
Mods are installed in order, and loaded in that order. This isn't what anybody wants, but for now there is no load order manager. You'll have to manually edit your loadorder.txt because of this (for now). -
There currently is no overwrite protection: the latest mod will simply overwrite any other files (including masters).The new FUSE VFS basically solves this issue. -
File tracking is VERY crude: if a new mod overwrites files in a different mod, that file will simply be deleted when either mod is uninstalled.Same as above.
I view this version (in its current state) as more of a learning exercise. Having written it to this stage (which actually works) I can see what I would change in a rewrite, which is my next big plan.





