<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://dwarffortresswiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wildernerd</id>
	<title>Dwarf Fortress Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://dwarffortresswiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wildernerd"/>
	<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php/Special:Contributions/Wildernerd"/>
	<updated>2026-08-22T11:02:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.11</generator>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=Utility:Dfterm2&amp;diff=134880</id>
		<title>Utility:Dfterm2</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=Utility:Dfterm2&amp;diff=134880"/>
		<updated>2011-01-13T01:02:46Z</updated>

		<summary type="html">&lt;p&gt;Wildernerd: /* Compatible versions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;small&amp;gt;Note: The most recent guide is in the dfterm2 official [http://genodeen.net/files/dfterm2/manual.pdf manual]. Content from the manual is here with the author's permission. The relevant Bay12 thread with the most up to date information is [http://www.bay12forums.com/smf/index.php?topic=50643.0 here]&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
'''Dfterm2''' is a program that manages Dwarf Fortress games and allows them to be accessed remotely using Telnet and ANSI/VT102&lt;br /&gt;
compliant terminals, or using a browser with a flash plugin.&lt;br /&gt;
It has several features designed for building public Dwarf Fortress servers feasible, such as user registration system and a chat.&lt;br /&gt;
It works on both Windows and Linux platforms, albeit the way the game is handled is a little different. On Windows systems,&lt;br /&gt;
dfterm2 reads screen data from Dwarf Fortress’ memory. On Linux, Dwarf Fortress must be set to use terminal text mode (i.e.&lt;br /&gt;
[PRINT_MODE:TEXT]), and dfterm2’s terminal emulator parses this output. Linux version of dfterm2 works also on other&lt;br /&gt;
programs that use a terminal for their output.&lt;br /&gt;
Dfterm2 is designed to be easily deployed and configured. There are no configuration files to modify. All settings are set by&lt;br /&gt;
logging in to it and using the text mode UI. The only exception is setting up an administrator account with which to configure it,&lt;br /&gt;
but usually the Windows installer can handle even that.&lt;br /&gt;
Dfterm2 is fully usable, but there are missing features that need to be implemented before a stable version can be released.&lt;br /&gt;
Dfterm2, as of writing of this, is under constant development and it may happen that this manual becomes out of date with the&lt;br /&gt;
current features.&lt;br /&gt;
&lt;br /&gt;
= Compatible versions =&lt;br /&gt;
&lt;br /&gt;
*{{version|0.31.18}}&lt;br /&gt;
*{{version|0.31.17}}&lt;br /&gt;
*{{version|0.31.16}}&lt;br /&gt;
*{{version|0.31.14}}&lt;br /&gt;
*{{version|0.31.13}}&lt;br /&gt;
*{{version|0.31.12}}&lt;br /&gt;
*{{version|0.31.11}}&lt;br /&gt;
*{{version|0.31.10}}&lt;br /&gt;
*{{version|0.31.09}}&lt;br /&gt;
*{{version|0.31.08}}&lt;br /&gt;
*{{version|0.31.06}}&lt;br /&gt;
*{{version|0.31.03}}&lt;br /&gt;
*{{version|0.31.02}}&lt;br /&gt;
*{{version|0.31.01}}&lt;br /&gt;
*{{version|0.28.181.40d19.2}}&lt;br /&gt;
*{{version|0.28.181.40d19}}&lt;br /&gt;
*{{version|0.28.181.40d18}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;Usually only the most recent Dwarf Fortress versions are tested.'' ''It is possible there are changes in dfterm2 that partially break&lt;br /&gt;
compatibility in older versions. The versions listed are Dwarf Fortress versions that each have dedicated code in dfterm2 to&lt;br /&gt;
handle them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Linux version parses Dwarf Fortress’ text terminal output so it supports any Dwarf Fortress version that supports [PRINT_MODE:TEXT]&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
===On Windows=== &lt;br /&gt;
For Windows, Dfterm2 comes with an automatic extractor (installer) so it shouldn't pose any problems.&lt;br /&gt;
&lt;br /&gt;
The latest installer for the program can be found [http://www.bay12forums.com/smf/index.php?topic=50643.0. here], on the Bay12 forums.&lt;br /&gt;
&lt;br /&gt;
To connect to the server on Windows you need a third-party program, such as PuTTY, which can be downloaded from [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html here]&lt;br /&gt;
&lt;br /&gt;
===On linux===&lt;br /&gt;
You need to compile the program directly from source. To do so you need to install the following packages:&lt;br /&gt;
ICU development libraries&lt;br /&gt;
* Boost development libraries (at least version 1.42)&lt;br /&gt;
* OpenSSL development libraries&lt;br /&gt;
* CMake&lt;br /&gt;
* PCRE development libraries&lt;br /&gt;
* g++ and usual development tools&lt;br /&gt;
* lua&lt;br /&gt;
* git&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
First, you need to obtain the source code, using the following commands in git:&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color:#E0E0E0&amp;quot;&lt;br /&gt;
|$ git clone git://genodeen.net/dfterm2&lt;br /&gt;
|-&lt;br /&gt;
|$ cd dfterm2&lt;br /&gt;
|-&lt;br /&gt;
|$ git submodule init&lt;br /&gt;
|-&lt;br /&gt;
|$ git submodule update&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Next, you have to use CMake to configure the building system:&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color:#E0E0E0&amp;quot;&lt;br /&gt;
|$ cmake .&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Thirdly, use this command to start the compiling:&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color:#E0E0E0&amp;quot;&lt;br /&gt;
|$ make &lt;br /&gt;
|}&lt;br /&gt;
 &amp;lt;div style=&amp;quot;text-align: right&amp;quot;&amp;gt;''If compilation failed, [http://www.bay12forums.com/smf/index.php?topic=50643.0 visit the DFterm2 page on the Bay12 forums] for support.''&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The final step is to add an administrator account using &lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color:#E0E0E0&amp;quot;&lt;br /&gt;
|$ ./dfterm2_configure --adduser (username) (password) admin &lt;br /&gt;
|-&lt;br /&gt;
|$ ./dfterm2&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To connect to the server from a linux machine, you need to use the following command:&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color:#E0E0E0&amp;quot;&lt;br /&gt;
|$ telnet 127.0.0.1 8000&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Configuring =&lt;br /&gt;
Dfterm2 can be configured in various ways. For example, if you want to play Dwarf Fortress through it, you need to tell it where&lt;br /&gt;
it can find Dwarf Fortress on your computer.&lt;br /&gt;
In dfterm2, there’s a concept of slot profiles and slots.&lt;br /&gt;
Slot profile contains information on what show to in a slot. Typical settings are game executable and working directory, and&lt;br /&gt;
maximum number of slots of a slot profile.&lt;br /&gt;
Slots are created from slot profiles. You could say they are instances of slot profiles. A slot is created when a user selects &amp;quot;Launch&lt;br /&gt;
a new game&amp;quot;. This usually launches the game and it can be seen through the slot. Users see the slot in the Game window. When&lt;br /&gt;
they are not watching a slot, the game window is filled with X letters.&lt;br /&gt;
&lt;br /&gt;
== Main menu ==&lt;br /&gt;
The main menu items are as follows:&lt;br /&gt;
*Launch a new game&lt;br /&gt;
From here, you can launch a new slot from a slot profile.&lt;br /&gt;
*Join a running game&lt;br /&gt;
From here you can select the slot you want to watch.&lt;br /&gt;
*Configure slots&lt;br /&gt;
Administrator only. From here you can configure slot profiles. There’s more information on them later.&lt;br /&gt;
*Set MotD&lt;br /&gt;
Administrator only. You can write a message here to show to anyone who connects to the server. The message will appear in the&lt;br /&gt;
chat window.&lt;br /&gt;
*Manage users&lt;br /&gt;
Administrator only. You can see a list of currently connected people here. Selecting them will allow you to show their IP address&lt;br /&gt;
and hostname and you can also disconnect them. If you select Show user accounts here, you can see registered users and delete&lt;br /&gt;
them or change their passwords if you like. Note that you can’t see the passwords of the users because they are hashed with&lt;br /&gt;
SHA512.&lt;br /&gt;
*Force close running slot&lt;br /&gt;
If you select this, the slot you are currently watching will be immdiately closed and the program in it will be killed. You need to&lt;br /&gt;
have force closer privileges for the slot.&lt;br /&gt;
*Change your password&lt;br /&gt;
You can change your password here. You need to know your old password.&lt;br /&gt;
*Disconnect&lt;br /&gt;
If you select this, the server disconnects you.&lt;br /&gt;
*Shutdown server&lt;br /&gt;
Administrator only. Makes dfterm2 close, closing all games and connections.&lt;br /&gt;
&lt;br /&gt;
== Slot profile configuration ==&lt;br /&gt;
Slot profiles are created from &amp;quot;Configure slots&amp;quot; menu. You can set the maximum amount of slots that can be run at the same time&lt;br /&gt;
in this menu. From here, select &amp;quot;Add a new slot profile&amp;quot; to go in the slot profile creation menu.&lt;br /&gt;
There are a few parameters that can be configured for a new slot profile. Here they are listed with descriptions on what they do.&lt;br /&gt;
*Slot profile name&lt;br /&gt;
This is the name of the slot profile. The name will appear in &amp;quot;Launch a new game&amp;quot; menu for users. You need to put something&lt;br /&gt;
here.&lt;br /&gt;
*Method of screen scraping&lt;br /&gt;
This describes how dfterm2 will obtain the symbol data from dfterm2. On Windows, this can be either launching a new Dwarf&lt;br /&gt;
Fortress process or using an already running Dwarf Fortress process. On Linux, there’s only launching a program in a terminal.&lt;br /&gt;
*Game executable path&lt;br /&gt;
This should point directly to the Dwarf Fortress executable file. OnWindows, it could be something like &amp;quot;C:\df_31_12_win\Dwarf&lt;br /&gt;
Fortress.exe&amp;quot; and on Linux it could be &amp;quot;/home/mikko/df_linux/df&amp;quot;&lt;br /&gt;
*Game working directory&lt;br /&gt;
This should point to the directory from where game executable is run. OnWindows, it could be something like &amp;quot;C:\df_31_12_win&amp;quot;&lt;br /&gt;
and on Linux it could be &amp;quot;/home/mikko/df_linux&amp;quot;&lt;br /&gt;
*Allowed watchers/launchers/players/force closers&lt;br /&gt;
This is fine-grained access control on how users can interact with slots created from this slot profile. Under these menus, you&lt;br /&gt;
can select which users can do the specific action. Watching refers to seeing what’s in the slot. Launching refers to being able to&lt;br /&gt;
launch the slot from &amp;quot;Launch a new game&amp;quot;. Playing refers to being able to give input to the slot. Force closer refers to the ability&lt;br /&gt;
to forcefully close the slot from main menu.&lt;br /&gt;
*Forbidden watchers/launchers/players/force closers&lt;br /&gt;
The opposite of their allowed counterparts. If you set users in these groups, they will not be allowed to do the specific action.&lt;br /&gt;
The forbidden user groups always override allowed user groups.&lt;br /&gt;
*Width and height&lt;br /&gt;
Set the width and height of the slot window. These are ignored on Windows but they are used on Linux to set the terminal size.&lt;br /&gt;
*Maximum slots&lt;br /&gt;
Set the maximum number of slots that can be created of this slot profile. For Dwarf Fortress, you probably only want to allow&lt;br /&gt;
one to avoid players accidentally messing each other’s save files when two Dwarf Fortress processes are running in the same&lt;br /&gt;
directory. If you want to run many Dwarf Fortress processes on the same computer, create separate slot profiles for them (with&lt;br /&gt;
different directories).&lt;br /&gt;
*Create slot profile&lt;br /&gt;
Select this and the slot profile will be created. You can later modify the slot profile in slot configuration menu.&lt;br /&gt;
&lt;br /&gt;
= User interface =&lt;br /&gt;
You navigate through the UI in Dfterm2 by using arrow keys and ALT+number keys (or ESC+number keys). Dfterm2 has a&lt;br /&gt;
simple windowed interface. Windows are automatically arranged and will not overlap unless you are short on terminal screen&lt;br /&gt;
space.&lt;br /&gt;
Currently focused window has a blue border. Other windows have gray border. If the currently focused window is also locked,&lt;br /&gt;
the border is red.&lt;br /&gt;
You can use CTRL+F to enlarge currently focused window to fullscreen and CTRL+L to lock a window. Locking can be&lt;br /&gt;
particularly useful in game window where some of the keys used by dfterm2 might conflict with the keys the game uses.&lt;br /&gt;
CTRL+R can be used to remove the borders of currently focused window.&lt;br /&gt;
There is a chat in dfterm2 you can access after logging in. In chat, you just type in your message and press enter. You can&lt;br /&gt;
navigate old chat history by using arrow keys or pgup/pgdown.&lt;br /&gt;
&lt;br /&gt;
= Security considerations =&lt;br /&gt;
Dfterm2 strives to be secure in itself but it can’t guarantee the safety of the programs that it runs. For example, if there’s a way&lt;br /&gt;
in Dwarf Fortress to format the C-drive from inside it, dfterm2 can’t do anything about it.&lt;br /&gt;
In Linux, be extra careful that there is no way for the program you run in a slot to escape to a shell. For example, don’t run&lt;br /&gt;
telnet in a slot, because ! key escapes to shell. From there, malicious users can do pretty much anything they want. Chrooted&lt;br /&gt;
enviroments and narrow privileges are recommended.&lt;br /&gt;
Dfterm2 uses telnet for connections. This means all the passwords are transmitted in plain text and are not encrypted in any way.&lt;br /&gt;
It is not recommended that you connect administrators to dfterm2 over insecure links. On Linux, stolen administrator password&lt;br /&gt;
lets the attacker to access a shell and then do anything they want from there. Dfterm2 may have a built-in SSH server in it in the&lt;br /&gt;
future.&lt;br /&gt;
Dfterm2 has some limits on it that somewhat mitigate DoS attacks made against it. These limits are in header file dfterm2_limits.hpp.&lt;br /&gt;
The limits are as follows.&lt;br /&gt;
* Maximum number of slots running at a time is 30&lt;br /&gt;
* Maximum number of slot profiles is 30&lt;br /&gt;
* Maximum number of registered users is 50&lt;br /&gt;
* Maximum number of Telnet connections at a time is 50&lt;br /&gt;
* Maximum number of HTTP connections at a time is 50&lt;br /&gt;
* Largest file dfterm2 will server through HTTP is 1000000 bytes.&lt;/div&gt;</summary>
		<author><name>Wildernerd</name></author>
	</entry>
</feed>