I’ve finally started having some free time lately and have been working through my Steam library, most of which is Windows games I’m playing with Proton.

I wanted to install some mods, and wanted a mod manager for this. Nexus Mods has Vortex, which is not available for Linux. In any case, running Windows games on Linux through Proton on Steam is fairly specific; the game files will be at certain locations on a Linux filesystem, not at the same locations as they would be on a Windows filesystem. So I think I would need software that has specifically been designed for this use-case (Windows games from Steam running on Proton).

Are there any such mod managers out there? What do other people do when playing games on Linux? I can’t be the only person who wants to play video games with mods.

  • Sonalder@lemmy.ml
    link
    fedilink
    arrow-up
    2
    ·
    4 hours ago

    I am using r2modman most of the time and it works well for the modded games I play on my machine. I uses Thunderstore so it might not have the biggest library of mods for all your titles but it’s worth mentioning imo.

  • snekmuffin@lemmy.dbzer0.com
    cake
    link
    fedilink
    arrow-up
    6
    ·
    7 hours ago

    very niche but i think it deserves a mention: the Outer Wilds mod manager doesn’t just support Linux natively, but it even has a CLI version, and it’s up on AUR and Flatpak

    https://outerwildsmods.com/mod-manager/

    as others have said though, r2modman/thunderstore manager also runs in an appimage and works perfectly well for games it supports, and MO2 and Vortex work more or less alright if they’re in the same prefix as your game or potentially even if they aren’t.

  • Lucki@feddit.org
    link
    fedilink
    arrow-up
    15
    ·
    11 hours ago

    I’ve built my own folder based mod-manager: https://github.com/Lucki/mod-manager

    It’s using OverlayFs to lay mods on top of the game files which allows for easy switch-arounds of mod sets while keeping each mod separated in their own folder. It’s based upon config files and allows to freely collect mods in sets, even nested.

    It’s probably full of unnoticed bugs because I’m the only one using it, but it works 🤷 I do have a bunch of convenience stuff queued up locally though. They need a bit of polishing but soon it’s ready for another push.

    • exu@feditown.com
      link
      fedilink
      English
      arrow-up
      2
      ·
      7 hours ago

      That sound interesting. Any examples of games where you’re using this?

      • Lucki@feddit.org
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        1 hour ago

        I tested in these games - ls -1 "$XDG_CONFIG_HOME/mod-manager":

        • Bloodstained: Ritual of the Night.toml
        • Cyberpunk 2077.toml
        • FlatOut 2.toml
        • Gotham Knights.toml
        • Grand Theft Auto: San Andreas.toml
        • Ready Or Not.toml
        • Stellar Blade.toml
        • The Witcher 3.toml
        cat "$XDG_CONFIG_HOME/mod-manager/Gotham Knights.toml"
        active = "my"
        
        [my]
        mods = [
            "nocape",
            "upscaler",
        ]
        
        [upscaler]
        # https://github.com/cdozdil/OptiScaler
        # v0.7.7-pre9
        mods = ["OptiScaler"]
        [upscaler.environment]
        WINEDLLOVERRIDES = "version=n,b"
        
        [nocape]
        mods = [
            # https://www.nexusmods.com/gothamknights/mods/330
            "BatGirl Cape Off",
        ]
        
        tree "/mnt/games/mod-manager/Gotham Knights/"
        /mnt/games/mod-manager/Gotham Knights/
        ├── BatGirl Cape Off
           └── Mercury
               └── Content
                   └── Paks
                       └── ~mods
                           ├── BatGirl_Cape_OFF_Demon_26_P.pak
                           ├── BatGirl_Cape_OFF_Demon_26_P.ucas
                           ├── BatGirl_Cape_OFF_Demon_26_P.utoc
                           ├── BatGirl_Cape_OFF_Eternal_13_P.pak
                           ├── BatGirl_Cape_OFF_Eternal_13_P.ucas
                           ├── BatGirl_Cape_OFF_Eternal_13_P.utoc
                           ├── BatGirl_Cape_OFF_KnightOps_41_P.pak
                           ├── BatGirl_Cape_OFF_KnightOps_41_P.ucas
                           ├── BatGirl_Cape_OFF_KnightOps_41_P.utoc
                           ├── BatGirl_Cape_OFF_Metal_36_P.pak
                           ├── BatGirl_Cape_OFF_Metal_36_P.ucas
                           ├── BatGirl_Cape_OFF_Metal_36_P.utoc
                           ├── BatGirl_Cape_OFF_NeonNoir_22_P.pak
                           ├── BatGirl_Cape_OFF_NeonNoir_22_P.ucas
                           ├── BatGirl_Cape_OFF_NeonNoir_22_P.utoc
                           ├── BatGirl_Cape_OFF_NewGuard_5_P.pak
                           ├── BatGirl_Cape_OFF_NewGuard_5_P.ucas
                           ├── BatGirl_Cape_OFF_NewGuard_5_P.utoc
                           ├── BatGirl_Cape_OFF_Privateer_31_P.pak
                           ├── BatGirl_Cape_OFF_Privateer_31_P.ucas
                           ├── BatGirl_Cape_OFF_Privateer_31_P.utoc
                           ├── BatGirl_Cape_OFF_Shinobi_46_P.pak
                           ├── BatGirl_Cape_OFF_Shinobi_46_P.ucas
                           ├── BatGirl_Cape_OFF_Shinobi_46_P.utoc
                           ├── BatGirl_Cape_OFF_Titan_9_P.pak
                           ├── BatGirl_Cape_OFF_Titan_9_P.ucas
                           ├── BatGirl_Cape_OFF_Titan_9_P.utoc
                           ├── BatGirl_Cape_OFF_YearOne_18_P.pak
                           ├── BatGirl_Cape_OFF_YearOne_18_P.ucas
                           └── BatGirl_Cape_OFF_YearOne_18_P.utoc
        └── OptiScaler
            └── Mercury
                └── Binaries
                    └── Win64
                        ├── amd_fidelityfx_dx12.dll
                        ├── amd_fidelityfx_vk.dll
                        ├── D3D12_Optiscaler
                           └── D3D12Core.dll
                        ├── libxess.dll
                        ├── libxess_dx11.dll
                        ├── nvngx.dll
                        ├── OptiScaler.ini
                        └── version.dll
        

        No idea why that tree is broken in monospace - it works in the preview, sorry!

  • Malgas@beehaw.org
    link
    fedilink
    English
    arrow-up
    3
    ·
    8 hours ago

    I haven’t done it a lot, but running a Windows mod manager in the same prefix as the game should work where there isn’t a Linux native version available.

  • afk_strats@lemmy.world
    link
    fedilink
    English
    arrow-up
    11
    ·
    13 hours ago

    See this monster of a post from u/sp3ctr4l@dbzer0

    https://lemmy.dbzer0.com/comment/18288432

    
    To add in about game modding on Linux:
    
    https://github.com/limo-app/limo
    
    https://flathub.org/apps/io.github.limo_app.limo
    
    Limo is a universal mod manager that is linux native.
    
    And I do mean universal. It’ll work with literally any game, you just have to take a bit of extra time to configure things for games that do not yet have a supported preset configuration out of the box… but at this point, that includes most games that are generally reliant on some kind of mod manager type program on Windows, to keep track of 10s or 100s of simultaneous mods.
    
    It works very much along the same lines as something like Mod Organizer 2, though there are some differences, read the wiki.
    
    It sets up a virtual file system that allows mods to be set up outside of the main game directory itself, and will override them such that the mods actually load, but they can be ‘undeployed’ to revert back to vanilla, you can set up different profiles of different mod configurations and deploy/undeploy what you like.
    
    It can also manage load orders, supports formats such as fomod and similar for games like Fallout New Vegas and Skyrim, you can set up tags and category groupings, and it also shows you conflicts between mods down to the specific files, showing you a chain of overwrites to the final file from the final loaded mod.
    
    It doesn’t support things like LOOT, which purport to autogenerate correct load orders… but frankly, thats fine, because shit like that doesn’t even work properly in situations you’d use it in on Windows 90% of the time.
    
    EDIT: Wow, apparently it does support LOOT now, it did not a few updates ago.
    
    …
    
    I have successfully gotten FONV working using Limo to set up uh… there’s a variant of the Viva New Vegas mod setup guide aimed at Steam Deck users, but it tells you to set up Mod Organizer 2 on the Deck… which you can do, but its rather input laggy and there are other inconveniences…
    
    Here it is, Mirelurked Viva New Vegas:
    
    https://ashtonqlb.github.io/mirelurked-vnv/intro.html
    
    I had to alter a few steps from this to get it working with Limo, but they were basically just… set up Limo instead of MO2, and you have to handle NVSE a bit differently, because it literally replaces/overrides the entire main game exe.
    
    …
    
    I have also used Limo to mod Cyberpunk 2077, works with more in depth frameworks like CET, RedExt, etc, as well as using the Decky Framegen plugin to insert FSR 3.1 Upscaling and Framegen into CP77, which gives better quality and fps than the official FSR 2 and 3 implementations that come with the vanilla game and are vanilla supported on a Deck.
    
    You basically just have to launch the vanilla game via the normal launcher first, check the ‘enable mods’ switch, fully load the game…
    
    Then you can set up the Framegen mod, which adds a custom command in steam to the launch parameters… and then you can also setup the ‘skip intro’ mod, which is reliant on both the mod being present, as well as additional command line parameters…
    
    There are a bunch of reddit posts complaining that the FrameGen mod doesn’t allow other additional launch arguments, but they are wrong.
    
    All you have to do is append those additional launch args … at the end of the FrameGen mod’s launch arg. This just doesn’t seem to be explicitly documented anywhere, by anyone… I may have been the first person to figure this out?
    
    Anyway, after that bit of silliness, setting up other mods for CP 77 using Limo is fairly straightforward.
    
    …
    
    … I am doing all this on Bazzite on a Deck, but you could do it on… presumably any linux distro that supports flatpaks and proton (the translation layer that allows Windows games to run on Linux).
    
    There will always be a few ‘weird’ mods that are just totally reliant on a whole bunch of Windows specific things to work, or just cannot be made to work without actually overwriting some core game files in the main, real directory itself…
    
    And, some of these mods will require a windows component dependency, like vc_2017 or vc_2022, you set those up with something like ProtonTricks or SteamTinkerLaunch to modify the proton config per game, instead of trying to install the exe system wide as 99% of the windows oriented mods will tell you to do…
    
    But so far, I have found either my own solutions for these cases, or someone else already has, or someone has just made basically a linux compatible equivalent for such a windows reliant mod.
    
    … You can also just choose to run MO2 on Linux, it will work, its just… buggy, and overlycomplicated, imo, you’ve got to set up a custom wineprefix for the MO2 UI to not do dumbshit, give it thr dependencies it needs, and then you’ve got to do this for each different game you want to mod with MO2.
    
    I found that Limo is sufficiently capable and much less hassle to use once you take the time to understand its differences from MO2.
    
    
    
  • SavvyWolf@pawb.social
    link
    fedilink
    English
    arrow-up
    8
    ·
    14 hours ago

    Don’t know if it has games you’re interested in, but I’ve been using r2modman and it’s worked pretty well. Even for games run through Proton.

  • grimoire@lemmy.zip
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    11 hours ago

    I use Limo, it takes some getting used to after using Mod Organizer 2 for so long but it gets the job done. I havent used it for any huge modlists yet though as it tends to be a little buggy/unintuitive sometimes.

    There’s also a way to get MO2 on linux, should he on github as modorganizer2-linux-installer.

  • Hawke@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    12 hours ago

    I’m not super-familiar with mod managers in general but my experience has been that they just work with proton more than you might expect. I know for sure that unity mod manager works fine in proton; I use it for railroader.

  • DeeEmCeeTooBestGaem [she/her]@hexbear.net
    link
    fedilink
    English
    arrow-up
    3
    ·
    13 hours ago

    For Bethesda (and other compatible games), ModOrganizer 2 via SteamTinkerLaunch has worked reasonably well for me. There’s some jank involved but nothing terribly complicated for anyone who’s already used to Linux gaming hoop jumping. STL also supports Vortex but I’ve never personally tried it.