Dwarf Fortress

From ArchWiki
Jump to navigation Jump to search

Dwarf Fortress is a single-player fantasy game. You can control a dwarven outpost or an adventurer in a randomly generated, persistent world. It is renowned for its highly customizable, complex in-depth game play.

The game is played with keyboard only, though there exist mods which enable mouse support via plugins. Without any graphic mods (also known as tilesets) the game is displayed in a terminal-like window with ASCII characters (screenshots).

Installation

Install the dwarffortress package.

Alternatively there are some AUR packages that bundle graphics tilesets:

Other bundles, starter packs, tilesets, and mods can be found at the Dwarf Fortress File Depot.

See also the Installation page on the Dwarf Fortress wiki.

Configuration Files

When first run, Dwarf Fortress that was installed via Pacman creates a hidden folder in the user's home directory, ~/.dwarffortress/, to store configuration files, save files, etc.

Some of the directories in .dwarffortress/ are symlinks to directories in /opt/dwarffortress/. This includes the raw directory, so changes to /opt/dwarffortress/raw/ - either directly or through the link - will affect new games for all users. (Dwarf Fortress stores a copy of the raw directory for saves in the saves directory, so changes there will only affect that save for that user.)

To make changes to files in the main raw directory that only affect one user, either delete the link and copy the directory from /opt/dwarffortress/ to ~/.dwarffortress/, make the changes to a save, or manually install a copy of Dwarf Fortress to a directory in the user's home directory and make the changes - and run the game from - there (see Manual or multiple installations on the Dwarf Fortress wiki).

Tools

DFHack

DFHack is a Dwarf Fortress memory access utility, with many useful scripts and plugins.

There are multiple dfhack packages available in the AUR.

To start Dwarf Fortress with DFHack, execute dfhack instead of dwarffortress, or create a custom desktop entry.

Dwarf Therapist

Dwarf Therapist (dwarftherapistAUR or dwarftherapist-gitAUR) is an almost essential mod to tune dwarvish behaviour (makes life a lot easier). For it to work on current kernels you will need to disable a kernel security feature, since it directly accesses and modifies the memory of a running Dwarf Fortress instance. This setting is called kernel.yama.ptrace_scope and defaults to 1. You need to set it to 0 for Dwarf Therapist to work:

# sysctl -w kernel.yama.ptrace_scope=0

and then

# sysctl -w kernel.yama.ptrace_scope=1

when you're done playing and have closed Dwarf Fortress and Dwarf Therapist.

For more information see sysctl.

Warning: You should not set this to 0 in /etc/sysctl.d/ by default since it is an important security feature in the kernel! It is best to set it manually whenever you play Dwarf Fortress and reset it back to 1 when you are done playing.

Alternatively, you can just give that permission to the dwarftherapist executable:

# setcap cap_sys_ptrace=eip /usr/bin/dwarftherapist
Note: The permissions will reset after an update to Dwarf Therapist. Consider using pacman hooks to automatically configure the permissions after an update.

Manipulator

Manipulator is an in-game alternative to Dwarf Therapist with most of the same functionality, which does not require extra permissions. It is enabled by default in the DFHack.

SoundSense

SoundSense (soundsenseAUR) adds various sound effects and music by monitoring the gamelog.txt.

quickfort

Quickfort[dead link 2020-03-29 ⓘ] is a utility for Dwarf Fortress that helps you build fortresses from "blueprint" .CSV, .XLS, and .XLSX files.

StoneSense

StoneSense is an isometric world visualizer for Dwarf Fortress, and is part of DFHack.