DS3 Mods on a Flatpak-Based Linux System

If you try to run any Dark Souls 3 mods on a Flatpak-based Linux system, you'll quickly find pitfall after pitfall. This is because Flatpak applications are sandboxed and don't have access to the host filesystem in the same way that traditional applications do.

Additionally, Steam / Proton create an incredibly long file path that can cause issues with Dark Souls 3 mods. After a lot of pain and trial and errors, I was finally able to do Convergence + Seamless Co-Op Dark Souls 3 on my Bluefin machine. Here are the steps I took to get it working:

Assumptions:
  • You have a Flatpak-based Linux system with Steam installed via Flatpak.
  • You have Dark Souls 3 installed via Steam and have run it successfully at least once.
Steps to fix the "file path is too long so when I load into the game I can't move" problem:
  1. Create a new Steam Library location different from the original. Make sure it's not extremely long to avoid file path length issues. I specifically used /var/home/jeefy/Games
  2. Close Steam.
  3. Using Flatseal, grant Steam access to the new Steam Library location you created.
  4. Launch Steam.
  5. Move the Dark Souls 3 installation folder from the original Steam Library to the new one. You can do this by right-clicking on Dark Souls 3 in your Steam Library, selecting "Properties", going to the "Local Files" tab, and clicking "Move Install Folder".

Steps to get Convergence + Seamless Coop working:
  1. Install Mod Engine 3. They even have a Linux installer. It's dope.
  2. Download the Convergence + Seamless Coop mod files from Nexus Mods.
  3. Extract the mods into a ds3_mods folder in the ME3 profile directory. The file structure should be something like:
        ds3-mods
        ├── Convergence
        ├── dinput8.dll
        ├── HoodiePatcher.dll
        ├── HoodiePatcher.ini
        ├── modengine.ini
        └── SeamlessCoop
  4. Create or edit the profile ds3-default.me3 to look like this:
        profileVersion = "v1"
        start_online = false
        debug = false
    
        [[supports]]
        game = "ds3"
    
        [[package]]
        id = "default-mods"
        path = "ds3-mods"
    
        [[natives]]
        path = "ds3-mods/SeamlessCoop/ds3sc.dll"
    
        [[package]]
        id = "convergence"
        path = "ds3-mods/Convergence"
  5. Update the Seamless Coop Config as-needed (password, difficulty, etc)
  6. Verify that me3 sees your new profile:
    $ me3 profile list
    You should see something like this:
        $ me3 profile list
            INFO me3: version="0.9.0" commit_id="8f907dfcce295d8cda5bc84e955073cb22eb7552"
            eldenring-default
            nightreign-default
            sekiro-default
            ds3-default
  7. From here you should be able to launch the game by running the following in the terminal:
    $ me3 launch -p ds3-default
  8. OPTIONAL: In Steam, add a non-steam game. Name it DARK SOULS 3 -- Mod Engine. Point it to the Mod Engine 3 binary and set the launch options to be:
    launch -p ds3-default
    This should look familiar from a previous step.
  9. Launch Dark Souls 3 via the Mod Engine Steam entry you just created.


This is how I got all it all working. I figure there's maybe ten people who will run into this and hopefully it'll help one of you lol.

Good luck and git gud.