v50 Steam/Premium information for editors
  • v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
  • Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.

Difference between revisions of "Utilities"

From Dwarf Fortress Wiki
Jump to navigation Jump to search
(→‎Launchers: added, reformatted links to be consistent with others on page)
(→‎DFHack: moved remotefortressreader section to main page, removed incomplete duplicate main page info)
Line 85: Line 85:
  
 
== Game manipulation tools ==
 
== Game manipulation tools ==
===[[Utility:DFHack|DFHack]]===
+
=== DFHack ===
 +
{{main|Utility:DFHack}}
 
[[File:dfhack_cmd.png|thumb|right|250px|DFHack's console.]]  
 
[[File:dfhack_cmd.png|thumb|right|250px|DFHack's console.]]  
DFHack is an advanced ''Dwarf Fortress'' memory access library and a set of tools and scripts using this library, providing direct object-oriented access to Dwarf Fortress's internals as if it were compiled into the game itself. Runs on Windows, Linux, and OS X. The standard configuration enables a variety of included bugfixes and interface upgrades, and provides many useful tools such as "clean all".  See [[Utility:DFHack]] for a summary of features and common use.
+
DFHack is an advanced ''Dwarf Fortress'' memory access library and a set of tools and scripts using this library, providing direct object-oriented access to Dwarf Fortress's internals as if it were compiled into the game itself. Runs on Windows, Linux, and OS X. The standard configuration enables a variety of included bugfixes and interface upgrades, and provides many useful tools such as "clean all".  See [[Utility:DFHack|main page]] for a summary of features, common use, and more.
 
 
* Links: [https://docs.dfhack.org/en/stable/# DFHack's Documentation] site offers all relevant information on how download, install, and use the utility. Including an up-to-date list of all available and optional Plugins. [http://www.bay12forums.com/smf/index.php?topic=164123 Official Bay12 forum thread].
 
 
 
==== Feature plugins ====
 
These plugins add features to the game.
 
* [http://www.bay12forums.com/smf/index.php?topic=128487 Rendermax], a plugin that implements a lighting system at the graphics level.
 
* [http://www.bay12forums.com/smf/index.php?topic=136155 Dwarven Emigration], a script that allows unhappy dwarves to emigrate with their families.
 
 
 
==== remotefortressreader ====
 
 
 
A critical internal DFHack plugin, [https://github.com/DFHack/dfhack/tree/develop/plugins/remotefortressreader developed within the same repository].  It provides a protobuf-based (currently v2.4.1) RPC connection to the game, enabling remote clients like Armok Vision.  The service listens on <code>127.0.0.1:5000</code> (configurable within <code>dfhack-config/remote-server.json</code>).
 
 
 
Currently there are no change-based or change-driven notifications, so remote fortress clients must perform the expensive operation of polling the desired volume every frame (via e.g. <code>GetBlockList</code>).  Additionally, the sidebar menu state is shared with the native view, to avoid reimplementing construction material dependencies.
 
  
 
===[[Utility:Dwarf therapist|Dwarf Therapist]]===
 
===[[Utility:Dwarf therapist|Dwarf Therapist]]===

Revision as of 09:39, 8 September 2022

This article is about the current version of DF.
Note that some content may still need to be updated.

Utilities icon.png

A collection of third-party Utilities that are useful for Dwarf Fortress players and modders alike, of which this page serves as a list of. Dwarf Fortress is a difficult game to play, and any help that can be had in the task is welcome help.

If you would like to add an article on a specific game utility to the wiki, please do so under the Utility namespace. Not included on this page: tileset repositories and graphics set repositories, due to having been given their own, separate pages. Mods have also been listed under their own Modification namespace.

To avoid namespace clutter, websites are considered utilities, though they really aren't, and have been included.

A subsection of the Bay12 forums is devoted to such third-party programs, and contains development threads for most of them.

The Lazy Newb Pack is an effort to make Dwarf Fortress more accessible for new players or returning veterans by bundling and configuring utilities, graphics and tilesets, and extras such as reference material or more intuitive controls.

Launchers

Starter Pack

Main article: Starter Pack
The original LNP launcher

A starter pack is a compilation of tools, tilesets, a launcher, and the game itself. It allows you to start playing DF really quickly on a new machine - no need to download all the latest stuff, check dependencies, and integrate - or even know what you need to get. Packs that include DFHack also include third-party fixes for some bugs, enabled automatically, and significant user interface improvements. The launcher makes changing settings or graphics options much easier (press button, instead of editing files) and can even remember to launch selected utilities whenever you open a game of Dwarf Fortress. See Where do I get a Pack? for a list.

PyLNP

A cross-platform LNP port, written in Python. The current launcher and configuration interface in starter packs. See PyLNP: The modern cross platform launcher for more information.

Manila Launcher (obsolete)

A Java interface that allows easy option toggling, update and devlog checking, and tileset, mod and color scheme switching. Designed for players who prefer vanilla DF to a bundle like the above. Has not been updated since 2014.

3D Visualizers

Stonesense

Stonesense prev.jpg

Stonesense is a third party visualizer, implemented as a DFHack plugin, that lets you view your fortress in a classic isometric perspective. It runs alongside Dwarf Fortress, and can follow the main game's view, updating in real-time. It is included in DFHack, and can be opened by typing stonesense or ssense into the console window.

Armok Vision

Armok vision.png

Armok Vision is a 3D real-time visualizer using Unity. It works as a separate program communicating with the game through fast network interfaces provided by DFHack.

Isoworld

Isoworld prev.png

Isoworld is an isometric world map viewer, which can display each of the detailed maps exported from Legends mode. It also has a pictographic view which makes finding waterfalls easy.

Isoworld can link with DFHack to display a game view at full spatial resolution in wider context, including tracking the player's view. This is particularly useful for adventure mode. The isoworldremote plugin required for this is included with DFHack.

Voxel Fortress

Voxel prev.png

Voxel Fortress converts DF worlds to a voxel format. It takes an export of one of the two elevation maps (for the voxels coordinates), and any other one (for the colors).

The map is saved in .xraw format. An additional utility (e.g. MagicaVoxel Viewer) is required to see the voxel representation of the map.

Music and Sounds

SoundSense

Main article: Utility:SoundSense
Soundsense prev.png

SoundSense parses game logs and plays reacts to game events with sound effects, incidental music and dwarfy comments. Due to it being written in Java, Soundsense is portable to all platforms.

Note that older Soundsense users may have different default seasonal soundtracks, which were removed and replaced in early 2011. These are available here.

SoundCenSe

SoundCenSe prev.png

A C# port of SoundSense, it uses the existing sound pack files and XMLs present in SoundSense, but with some added enhancements. More information regarding what specific type of enhancements and how to install SoundCenSe can be gathered at the official forum thread. If problems emerge while trying to get SoundSense to work with the latest versions of Java, this port may prove to be a useful alternative.

SoundSense-RS

SoundSense-RS prev.png

A SoundSense alternative in Rust with a minimalistic GUI. Sound volumes can be adjusted realtime, based on channel. Events can be ignored with a custom list based on log patterns.

Game manipulation tools

DFHack

Main article: Utility:DFHack
DFHack's console.

DFHack is an advanced Dwarf Fortress memory access library and a set of tools and scripts using this library, providing direct object-oriented access to Dwarf Fortress's internals as if it were compiled into the game itself. Runs on Windows, Linux, and OS X. The standard configuration enables a variety of included bugfixes and interface upgrades, and provides many useful tools such as "clean all". See main page for a summary of features, common use, and more.

Dwarf Therapist

Dwarf therapist.png

Dwarf Therapist gives you an advanced GUI to manage and check dwarf job allocations, military assignments, statistics (such as attributes, personality traits and happiness), sort dwarves by various criteria (e.g. profession, migration wave, happiness, number of assigned jobs etc.) and generally manage the Dwarven Resources of your fortress in a very convenient way. This version contains the "labor optimizer" semi-automatic labor management system.

Splinterz' fork of Dwarf Therapist is the currently updated version, and available for Windows, Mac and GNU + Linux.

Modding tools

Rubble

A useful plugin-based modding tool that generates raws and supports easy installation of reactions, tilesets, macros, modding fixes and DFHack scripts. It is a fork of the now abandoned Blast. Binaries are available for Linux 32-bits, OS X 32-bits and Windows 64-bits, as well as the source (written in Go with building instructions). As of 4.0, a GUI is available for Windows.

PyDwarf

For players, PyDwarf is an easy way to manage and configure preferred mods in a way that avoids almost entirely the problems of outdated mods or incompatible groups of mods. For modders, PyDwarf's mod manager exposes a powerful Python API for interacting with raws and other data files.

Raw Explorer

A tree-based raw files browser, editor and manager.

Dwarf_RAW

A GUI for editing raw files, updated 2019.

Dwarf Fortress real-life material helper

A Python script that generates raws based on custom real-life material values.

Roses' Random Creature Script

A Python script that generates random creature raws.

DF Diagnosipack

A collection of modding tools, with a focus on diagnosing problems and getting statistics on what is found within the raws. It includes:

  • DF Duplisearch - checks your raws folder for duplicated objects, and counts the number of objects of each type (creature, entity, reaction, etc.).
  • DF Creatureclasser - tells you what creature classes are in your raws, and what they are used for.
  • DF CVunpack - unpacks creature variations, so you can see how the raws for e.g. wolf men really look (spoiler: they have 7 fingers).
  • DF Creaturescale - calculates creature weights, and the proportions of each body part and tissue.
  • DF Biomeviewer - shows what creature/plants can be found in which biomes.
  • DF Rawminer - extracts procedurally generated raws (of Forgotten Beasts etc.) from save files.

DF RAW Language server

Modding support for DF RAW files in IDE/Code/Text editors. Checks syntax of files, detects errors and syntax highlighting.

Current extensions:

The Language server is a shared component that can be used to easily add support for more IDE's.

World Map / World Gen tools

Perfect World DF

Requires an additional (tiny) download to be functional for current versions (40.#): WorldGen.xml . Easy access to world settings for quick modification to allow highly customized world generation far easier and faster than DF's ingame advanced map maker. forum thread

Fortress World Generator

A bash script for automating world generation of large numbers of worlds on GNU/Linux.

Dwarf Map Maker

A Photoshop action script which turns legends mode exported maps into a much prettier fantasy map. There is also a version available for GIMP.

Satellite Map Maker

A GIMP script based on the Dwarf Map Maker that creates a satellite image of Dwarf Fortress world maps.

Armap

A python script that creates a hand-drawn style map from exported legends world maps.

Legends tools

Legends Viewer

Legends prev.png

Legends Viewer loads up the legends you can export in a much more usable format than the Legends mode of DF itself. Legends Viewer can open pages in new tabs, filter information on a wide range of criteria, and display information on the map as well. Binaries are only available for Windows, as well as the source (written in C#).

World Viewer

World viewer prev.png

An alternative to Legends Viewer that, most specifically, features a timeline of historical events. Binaries are only available for Windows, as well as the source (written in C#). Last updated in late 2017.

Uristmaps

Uristmaps prev.png

A web-based interface that displays worlds in the way of an interactive map complete with features and structures.

Links: Website

Legends Browser

Legendsbrowser.png

A web-based multi-platform (Win, Linux, OSX) Viewer. It displays an interactive map and legends information (using legends_plus.xml generated via DFHack).

DF Storyteller

DF Storyteller Logo.svg

Dwarf Fortress Storyteller (DF Storyteller, DF ST) is an application that parses Dwarf Fortress legends files, stores them internally and makes them queryable using API's. (Cross platform: Windows, Linux, macOS) This utility can be used to easily create new visualizers to view the legends data.

Remote playing tools

Dfterm3

Dfterm3 is a remote Dwarf Fortress-playing software for multiple users through a web interface. DFterm3 enables play through a web interface, and games can also be viewed on mobile - or even played if a bluetooth keyboard is attached. The web interface should work with Chrome or Firefox browsers, but there are known problems using Internet Explorer. DFTerm3 functions via a DFHack plugin, and is thus dependent on each version of DFHack.

It is a successor to dfterm2, which functions similarly using telnet instead of a web browser. This utility only works with version 0.34.11 or earlier.

Webfort

Playable in Mac browser.

A newer alternative to dfterm3 that functions similarly, but players must wait in a queue before assuming control for a given period of time. It also functions via a DFHack plugin. Binaries are available for Windows, as well as the source (written in C++). (Note: main repo unmaintained. New repo last updated 5/22/2015.)

DorfServer

Like Twitch, without Twitch.

A remote SSH-based Dwarf Fortress host software. (repo)

DFEverywhere

A utility that connects a locally-run Dwarf Fortress instance to a proprietary remote website, allowing remote browser-based play. (Note: Main website no longer available. Client source here.)

Dwarf Fortress Remote

iOS app (paid) that allows one to play Dwarf Fortress remotely with native UI. A server can be set up at home, or on DigitalOcean, AWS or other hosting service.

DFPlex

DFPlex is a plugin for DFHack which introduces simultaneous, real-time online co-op to fortress mode: each player has their own independent view, cursor, menus, etc. so nobody has to wrestle for control. It's a fork of webfort, so players join just by connecting from their web browser.

Box64

Box64 allows Dwarf Fortress to be run locally on Android devices. A more detailed tutorial is available here.

Language tools

DFLang

A language creating tool.

Toadese Language Utility

A language editing and translating tool.

DFlangOpt

A little tool meant to prevent redundancy when importing or updating language files.

Python language extraction and injection script

This simple script will extract words from language files and put them a word per line, for easy automatic translation or treatment. It can also read that list and put the translated words back in their place.

Announcement tools

DFMon

An announcement monitoring/filtering program, useful to hide some types of job cancellation spam or other more advanced filtering. Note that you can set the game to announce no job cancellations without any utilities or mods from the orders menu, with x.

DF Announcement Filter

An alternative to DFMon written in Java (and thus portable to Linux and OS X).

Announcement Window+

Announcement Window+ is a Python application that interfaces with Dwarf Fortress to print announcements and combat reports to a separate window. It was written to fix some annoying bugs that are present in DF Announcement Filter, which is no longer being updated.

One less game-pausing hotkey.

Filesharing websites

Dwarf Fortress File Depot

The Dwarf Fortress File Upload Service - an excellent place to store mods, community games, tilesets and other files. Courtesy of Janus; for files related to Dwarf Fortress only.

Dwarf Fortress Map Archive

The Dwarf Fortress Map Archive is a large collection of user-submitted maps and videos and a nice flash viewer for perusing them. Maps are uploaded, stored, and downloaded in a special compressed format created by the DF Map Compressor; videos are stored in a compressed version of Toady One's own video-recording format.

Read more about the DF Map Archive on Markavian's User page.

Other/miscellaneous

DF Map Compressor

Main program window.

The DF Map Compressor encodes multiple bitmaps exported from Dwarf Fortress into a single, very compressed, .fdf-map file. The fdf-map file can then be shared with your friends by uploading to the DF Map Archive.

Exita

Exita is a Python program that takes your DF world map exports and dump them into several different text outputs.

DwarfFamily

A tool that lets you import your legends XML file and converts all dwarf entries to a .GED file, which you can use in Family Tree programs like MyHeritage to display a family tree for the dwarves.

Kobold name generator

A Python script that generates random names in the way of kobold utterances

Dwarf Fortress News - Android App

Watches the Dwarf Fortress devblog. Receives Push Notifications on new updates.

DF2HTML

Converts DF screenshots into formatted HTML.