Installing DFHack
=================

* Requirements

  * Windows

  * Linux

  * macOS

* Downloading DFHack

* Installing DFHack

* Uninstalling DFHack

* Upgrading DFHack

* Pre-packaged DFHack installations

* Linux packages


Requirements
------------

DFHack supports Windows, Linux, and macOS, and both 64-bit and 32-bit builds of Dwarf Fortress.

DFHack releases generally only support the version of Dwarf Fortress that they are named after. For example, DFHack 0.40.24-r5 only supported DF 0.40.24. DFHack releases *never* support newer versions of DF, because DFHack requires data about DF that is only possible to obtain after DF has been released. Occasionally, DFHack releases will be able to maintain support for older versions of DF - for example, DFHack 0.34.11-r5 supported both DF 0.34.11 and 0.34.10. For maximum stability, you should usually use the latest versions of both DF and DFHack.


Windows
~~~~~~~

* DFHack only supports the SDL version of Dwarf Fortress. The "legacy" version will *not* work with DFHack (the "small" SDL version is acceptable, however).

* Windows XP and older are *not* supported, due in part to a Visual C++ 2015 bug

The Windows build of DFHack should work under Wine on other operating systems, although this is not tested very often. It is recommended to use the native build for your operating system instead.


Linux
~~~~~

Generally, DFHack should work on any modern Linux distribution. There are multiple release binaries provided - as of DFHack 0.47.04-r1, there are built with GCC 7 and GCC 4.8 (as indicated by the "gcc" component of their filenames). Using the newest build that works on your system is recommended. The GCC 4.8 build is built on Ubuntu 14.04 and targets an older glibc, so it should work on older distributions.

In the event that none of the provided binaries work on your distribution, you may need to compile DFHack from source.


macOS
~~~~~

OS X 10.6.8 or later is required.


Downloading DFHack
------------------

Stable builds of DFHack are available on GitHub. GitHub has been known to change their layout periodically, but as of July 2020, downloads are available at the bottom of the release notes for each release, under a section named "Assets" (which you may have to expand). The name of the file indicates which DF version, platform, and architecture the build supports - the platform and architecture (64-bit or 32-bit) **must** match your build of DF. The DF version should also match your DF version - see above for details. For example:

* "dfhack-0.47.04-r1-Windows-64bit.zip" supports 64-bit DF on Windows

* "dfhack-0.47.04-r1-Linux-32bit-gcc-7.tar.bz2" supports 32-bit DF on Linux (see Linux for details on the GCC version indicator)

The DFHack website also provides links to unstable builds. These files have a different naming scheme, but the same restrictions apply (e.g. a file named "Windows64" is for 64-bit Windows DF).

Warning:

  Do *not* download the source code from GitHub, either from the releases page or by clicking "Download ZIP" on the repo homepage. This will give you an incomplete copy of the DFHack source code, which will not work as-is. (If you want to compile DFHack instead of using a pre-built release, see Compiling DFHack for instructions.)


Installing DFHack
-----------------

When you download DFHack, you will end up with a release archive (a ".zip" file on Windows, or a ".tar.bz2" file on other platforms). Your operating system should have built-in utilities capable of extracting files from these archives.

The release archives contain several folders, including a "hack" folder where DFHack binary and system data is stored, a "dfhack-config" folder where user data and configuration is stored, and a "blueprints" folder where quickfort blueprints are stored. To install DFHack, copy all of the files from the DFHack archive into the root DF folder, which should already include a "data" folder and a "raw" folder, among other things. Some packs and other redistributions of Dwarf Fortress may place DF in another folder, so ensure that the "hack" folder ends up next to the "data" folder.

Note:

  On Windows, installing DFHack will overwrite "SDL.dll". This is intentional and necessary for DFHack to work, so be sure to choose to overwrite "SDL.dll" if prompted. (If you are not prompted, you may be installing DFHack in the wrong place.)


Uninstalling DFHack
-------------------

Uninstalling DFHack essentially involves reversing what you did to install DFHack. On Windows, replace "SDL.dll" with "SDLreal.dll" first. Then, you can remove any files that were part of the DFHack archive. DFHack does not currently maintain a list of these files, so if you want to completely remove them, you should consult the DFHack archive that you installed for a full list. Generally, any files left behind should not negatively affect DF.


Upgrading DFHack
----------------

The recommended approach to upgrade DFHack is to uninstall DFHack first, then install the new version. This will ensure that any files that are only part of the older DFHack installation do not affect the new DFHack installation (although this is unlikely to occur).

It is also possible to overwrite an existing DFHack installation in-place. To do this, follow the installation instructions above, but overwrite all files that exist in the new DFHack archive (on Windows, this includes "SDL.dll" again).

Note:

  You may wish to make a backup of your "dfhack-config" folder first if you have made changes to it. Some archive managers (e.g. Archive Utility on macOS) will overwrite the entire folder, removing any files that you have added.


Pre-packaged DFHack installations
---------------------------------

There are several packs available that include DF, DFHack, and other utilities. If you are new to Dwarf Fortress and DFHack, these may be easier to set up. Note that these packs are not maintained by the DFHack team and vary in their release schedules and contents. Some may make significant configuration changes, and some may not include DFHack at all.


Linux packages
--------------

Third-party DFHack packages are available for some Linux distributions, including in:

* AUR, for Arch and related distributions

* RPM Fusion, for Fedora and related distributions

Note that these may lag behind DFHack releases. If you want to use a newer version of DFHack, we generally recommended installing it in a clean copy of DF in your home folder. Attempting to upgrade an installation of DFHack from a package manager may break it.
