Dwarf Fortress

Dwarf Fortress

29 ratings
How to fix Dwarf Fortress mods not appearing under LINUX
By Nervous_Testpilot
In this guide, i will describe a somewhat hacky workaround, to make mods work for the linux installation of Dwarf Fortress.
I had to sadly realize that after installing mods via the Steam-Workshop, that they don't show up in Dwarf Fortress. After some digging around with the file manager if found out, that the mod files are installed in the "wrong" directory or, depending on how you look at it, Dwarf Fortress isn't set up correctly, to look in the right place to find the mods under a linux installation.

Luckely i found a way to make it work anyway. This made me happy, so until this is not fixed by the devs i'll share my guide with you so you can enjoy Dwarf Fortress mods, while using your linux based distros :).

Also on a other note, please, if you know how to contact the devs please tell me or do it yourself, so they can be made aware of this annoying problem :).
3
4
2
   
Award
Favorite
Favorited
Unfavorite
Introduction
How to fix mods not showing up under linux

I have noticed that mods downloaded via Steam Workshop are not showing up in Dwarf Fortress. I have found a (admittedly hacky) way to fix this.

This problem exists, because Steam downloads the mods into the «wrong» directory, so that Dwarf Fortress is unable to see your mods. The fix is a simple copy and paste job, with a little caveat, but i will guide you through this as well.

You could also say, Steam is doing everything right, but Dwarf Fortress is not setup properly to handle the way Steam works on Linux. But that's not the topic of this guide.

This Guide assumes the following:

1. You have installed Dwarf Fortress under Linux with Steam Play activated
2. You are not using a compatibility layer like Proton, tough it shouldn't make much of a difference
3. The Mods are actually downloading, so there isn't a problem with your Steam installation, firewall settings or Linux setup in general.

If you are using Proton or something similar, the paths to the files i mention here may differ. Still, the folders in which steam downloads the mods, should be the same, but the folders where Dwarf Fortress is installed, could be in an other place. It should be similar enough to what i describe here, so you should be able to figure it out by yourself, using search tools available for your distro.
Also should the download destination on your installation of linux differ then i have solution for that too.

Ultimately i think its up to the devs to fix the now broken steam workshop implementation on linux, but for now, this guide should help to get your mods up and running.
Locate Your Mod Files
Step 1

Subscribe to the mods you desire and make sure, that a download pops up in the «Downloads» tab.

Step 2

Go to: /home/YOURUSERNAME/.steam/debian-installation/steamapps/workshop/content/975370

Now, YOURUSERNAME ist the name with which you log in to your Linux Distro, not your Steam username!

IF this path is not working for you, then your linux distro works differently from mine. In this case follow step 2a to determine your path.

Step 2a

This step is optional and only needed when your specific setup of steam or your distro of linux, downloads workshop items to a different place then mine.

Locate a mod on the workshop, which mentions some of it's full filenames in the description, alternativly ask a mod dev what one of his file is named. One mod that fullfills this criteria is the «Watercolours» mod (https://steamcommunity.com/sharedfiles/filedetails/?id=2900754411&searchtext=watercolours). In its description it mentions a file called: tile_page_watercolours_swamp.txt

Important! This assumes that the file (that we later search via a search program) IS NOT embedded/compressed in an archive (zip, rar, 7z) etc... If that's the case it would be more helpful to know the name of the archive so we can search for it's name instead. There are terminal tools, which can also search through compressed archives, as they go through the file-system. A quick search with the search-engine of your choice should yield good results for your specific distro.

This is perfect because it's a very specific filename. The more specific the higher is the chance that our search engine will produce a narrow range of results, thus making the process of finding this file very easy. Once we have found the file we automatically know where steam puts the mod files, downloaded via the workshop.

Now subscribe, wait for the download to finish and then start a search query for that filename. I recommend Fsearch for that task, its a lightweight, very fast and efficent search tool, available for many linux distros. Chances are its already avaiable for installation in your «Software-Manager», so you dont have to fiddle around with the Terminal.

Otherwise if you are already comfortable with the terminal, i highly recommend using it for tasks like this, the speed and efficiency you get is unparalleled, again there are a lot of good guides out there on how to search the file-system inside the terminal, i'm sure you find one that fits your style.

One additional tip: If you want to use Fsearch and you have a Backup Tool like Timeshift enabled, go to EDIT → SETTINGS and then click on the DATABASE tab, then click on EXCLUDE on the left hand side and then add the path /timeshift to it.


This will tell fsearch to ignore /timeshift directory, so it does not search through hunderds of thousands of tiny little backup files. This will speed up the search process tremendously.

If you do not have access to Fsearch use the search toolbar in your filemanager/explorer and search for the filename.

Now when you have found your file, you now know where Steam has downloaded your mods. Do yourself a favour and bookmark this location.

Step 3

Inside that folder you should see multiple folders with long numbers like: «2905960813». These are the SteamIDs for the Workshop items/Mods.


If you go inside in one of them you can easely identify which is which by a) looking at the preview pictures, because the often contain the name of the mod or b) by reading the «info.txt» file. The first line should be called [ID:*] where the * is the name of your mod. So the mod "Combat Log" reads [ID:Combat_Log].

Creating mod folders & transfering them to the right spot
Step 4

Create a folder inside the mod folder and name it after the [ID] value found in info.txt, be extra careful that you follow the contents of info.txt perfectly. If you mess anything up this trick will not work. Next put a space into the name, then open parentheses and type the value you find under [NUMERIC_VERSION:], then close parentheses. The formatting for folder names is thus as follows: [ID][EMPTY SPACE][NUMERIC_VERSION]. So for example the mod interface tweaks reads in its info.txt:


[ID:interface_tweaks]
[NUMERIC_VERSION:103]


So the folder must be named: interface_tweaks (103)


Be careful that you don't forget to enter the empty space before the parentheses and the parentheses themselves of course.

If you deviate from this rule, the game will notice the mod as installed, but the mod will still not appear in-game. This is because the game will create correctly named folders by itself, but they will be empty. So you technically can copy everything over, BUT some mods requiere to be loaded while the world is created, even if the mod has nothing to do with level creation etc... A bit annoying, but that's the way Dwarf Fortress works at the moment.

Step 5

Now copy all the mod files into your freshly made folder.


Repeat this process for every mod you want to install.

Step 6

Open a new Filemanager window and go to: /home/YOURUSERNAME/.steam/debian-installation/steamapps/common/Dwarf Fortress/data/installed_mods

Again your YOURUSERNAME is not your Steam name, it's the name you use to log into Linux.

If you cant find this folder, go to your Steam Library, right click on Dwarf Fortress → Manage → Browse Local Files, then open /data and finally /installed_mods

Step 7

Copy your newly created and correctly named mod folders into: /home/YOURUSERNAME/.steam/debian-installation/steamapps/common/Dwarf Fortress/data/installed_mods

When you are done, your /installed_mods folder should look something like this:


Again, be careful to pick the right path, because there is also a mod folder at the root of dwarf fortress, but it does nothing at the moment, not to my knowledge anyway ;).

Step 8

Check the mods window in the main menu, it should tell you the correct mod names, and written in green, that they are installed.


Go to "create a new world" and click on "mods".

Check if the game also tells you here, that the mods are installed.


Insert your mods into the load order list by clicking on the arrows.


Step 9

Now you are ready to launch the world creation. Have fun :D
Should the mods still not appear properly, then i have one more trick up my sleeve.
Black Magic
Step 9a
THIS IS OPTIONAL AND ONLY REQUIERED IF THE MANUAL NAMING OF FOLDERS DOESNT WORK!!!!
At this point we have to do some black magic. The goal of this step is to force dwarf fortress to create properly named mod folders for us, so that mods actually get loaded, the next times we create worlds.

As described copy over the mod folders, only that the naming doesn't matter this time. Just make sure you give the folders names, which make it easy to tell them apart and identify them.

Step 9b
THIS IS OPTIONAL AND ONLY REQUIERED IF THE MANUAL NAMING OF FOLDERS DOESNT WORK!!!!
Start your game and on the title screen check the «mods» section. Your mods should be listed green and as installed. Perfect, now we create a «dummy» world. On the World creation screen, click on mods and activate all of your mods by adding them to the load order. Let the world create itself. After finishing its creation, dont leave, embark on a random spot, it doesnt matter since its our dummy world. You will probably notice that your mods are still not in effect. This is normal. Now save and exit.

Step 9c
THIS IS OPTIONAL AND ONLY REQUIERED IF THE MANUAL NAMING OF FOLDERS DOESNT WORK!!!!
Go back to: /home/YOURUSERNAME/.steam/debian-installation/steamapps/common/Dwarf Fortress/data/installed_mods

Now you should see that for every of your custom made folders there is now an empty folder. Your naming does not affect the naming of the now created «offical» folders.
But the names you gave them now make it easy which belongs to which. In my case i created a folder named combat_log and after going through step 9b i now have still the folder combat_log and a new folder named: Combat_Log (1). This folder is empty but now when i copy everything from combat_log into Combat_Log (1), the game is finally able to load the mods correctly.

Step 9d

Create a new world, with your mods enabled, and finally enjoy them :D Hurray!
Farewell
I hope this guide is usefull for people playing this game on linux. Its a very strange way of doing things but until the devs dont fix this, it's probably the only way for now to get mods for Dwarf Fortress working using linux. If some of you are in contact with the devs please tell them, or please tell me how i can contact them. Because honestly you shouldnt be required to tinker this much, just to install a simple mod.
Have a great day and strike the earth!
13 Comments
Junis Apr 26 @ 11:54pm 
Thank you so much!
snik Jan 26 @ 1:40pm 
Thanks man, had the same issue on Windows 11. Anyway with your help the Mods are shown for me too. :steamthumbsup:
HoarseBard Dec 6, 2024 @ 9:40pm 
Also promoting the symlink solution, just replace the mods folder in the games directory with a symlink to the workshop download folder named mods.
MNarath Aug 12, 2024 @ 5:22am 
yes symlinks are much easier and don't need any anyone keeping track of them technically i think symlinks also support relative pathing so you could write a bash script that automatically creates said symlink as long as it gets executed from the DF game folder
magic Aug 10, 2024 @ 1:14am 
Third on Proton not being an option, bad enough of a performance hit running v50+ classic with Box64 on ARM.
Mithril Leaf Mar 22, 2024 @ 3:15am 
Why not just use the symlink method described here?
https://www.reddit.com/r/dwarffortress/comments/zsv6fl/comment/kj0es2a
ryuushingaku Feb 24, 2024 @ 6:23pm 
Have to second the Proton is a not a one size fits all solution.
Nervous_Testpilot  [author] Feb 22, 2024 @ 6:36pm 
@FriendCalledFive:

Proton is no solution on my end, but yes using proton can be a fix, but since proton isn't going to work on each and every combination of game, hardware, kernel, drivers, and os-distribution, i wrote this guide as a fallback for anyone who had no luck with proton
FriendCalledFive Feb 9, 2024 @ 2:56am 
Enable Proton compatibility for the game in Steam, the mods will work then.
Cumalot Dec 13, 2023 @ 6:45am 
Thank you, bro! Good guid!