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.

  • 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
        2 hours 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!