# Welcome to DFHack’s documentation!

## Introduction

DFHack is a Dwarf Fortress memory access library, distributed with a wide variety of useful scripts and plugins.

The project is currently hosted at https://www.github.com/DFHack/dfhack, and can be downloaded from the releases page.

All new releases are announced in the bay12 forums thread, which is also a good place for discussion and questions.

For users, it provides a significant suite of bugfixes and interface enhancements by default, and more can be enabled. There are also many tools (such as workflow or autodump) which can make life easier. You can even add third-party scripts and plugins to do almost anything!

For modders, DFHack makes many things possible. Custom reactions, new interactions, magic creature abilities, and more can be set through Scripts for Modders and custom raws. Non-standard DFHack scripts and inits can be stored in the raw directory, making raws or saves fully self-contained for distribution - or for coexistence in a single DF install, even with incompatible components.

For developers, DFHack unites the various ways tools access DF memory and allows easier development of new tools. As an open-source project under various copyleft licences, contributions are welcome.

## User Manual

- Introduction and Overview
  - Installing DFHack
  - Getting started
  - Troubleshooting
- DFHack Core
  - Command Implementation
  - Using DFHack Commands
  - Built-in Commands
  - Init Files
  - Environment variables
  - Miscellaneous Notes
- DFHack Plugins
  - Data inspection and visualizers
  - Bugfixes
  - UI Upgrades
  - Job and Fortress management
  - Map modification
  - Mods and Cheating
  - Lua API
- DFHack Scripts
  - Basic Scripts
  - Development Scripts
  - Bugfixing Scripts
  - GUI Scripts
  - Scripts for Modders

## Other Contents

- List of Authors
- Licenses
- Changelog
- Removed scripts

## For Developers

- How to contribute to DFHack
- Compiling DFHack
- Development Changelog
- DFHack Lua API
- Data Structure Definition Syntax
- Updating DF-structures for a new DF version
- Patching the DF binary