<?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=Jifodus</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=Jifodus"/>
	<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php/Special:Contributions/Jifodus"/>
	<updated>2026-05-21T23:09:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.11</generator>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=58307</id>
		<title>40d:Utilities</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=58307"/>
		<updated>2009-11-14T17:32:27Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* Just dig it out! */ Geocities is gone, new link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are third party applications developed for Dwarf Fortress.&lt;br /&gt;
__TOC__&lt;br /&gt;
== [http://dffd.wimbli.com/ Dwarf Fortress File Depot] ==&lt;br /&gt;
The Dwarf Fortress File Upload Service - an excellent place to store mods, community games, tilesets and other files. Courtesy of [[User:Janus|Janus]]; for files related to Dwarf Fortress only.&lt;br /&gt;
&lt;br /&gt;
== 3D Visualizers ==&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=43260.0 Stonesense] by Jonask, Solifuge and Kaypy ===&lt;br /&gt;
[[File:stonesense.jpg|208px|thumb|right|Stonesense Screenshot]]&lt;br /&gt;
&lt;br /&gt;
Stonesense is a third party visualizer that lets you view your Dwarf Fortress world in a classic isometric perspective.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=39541.0 Visual Fortress] by Baboonanza ===&lt;br /&gt;
&lt;br /&gt;
This is Baboonanza's 3D visualisation application. It's focused on displaying mega-projects and landscapes accurately and hopefully beautifully. Basically like 3Dwarf, but more advanced.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=608.0 3Dwarf Visualizer] ===&lt;br /&gt;
&lt;br /&gt;
This is NOT real time! Dwarvis has the ability to be real time, though 3Dwarf is much more recommended. What this does is read the map out of your computer's memory when Dwarf Fortress is running and save it to a file it can read. It can then open that file and show you your fort in glorious 3D. Still in beta, obviously.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=34633.0 Khazad] ===&lt;br /&gt;
&lt;br /&gt;
A related fortress viewing engine utilizing memory extraction and saving similar to 3Dwarf, Khazad uses an Isometric perspective reminiscent of SimCity200 &amp;amp; Transport Tycoon while also allowing very free form camera control in a full 3D environment.  Khazad is compatible with 40d and 40d11 and entirely open source being licensed under the GPL, source and binary packages are available at [http://sourceforge.net/projects/khazad/ SourceForge].  Development is active and participation is welcome.&lt;br /&gt;
&lt;br /&gt;
=== [http://code.google.com/p/dwarvis/ Dwarvis/MapExtract] (Outdated) ===&lt;br /&gt;
&lt;br /&gt;
This project is meant as a 3rd party utility for the cult-game dwarf fortress. Its purpose is to eventually provide 3-dimensional visualization of static snapshots of the ingame world of a given fortress.&lt;br /&gt;
&lt;br /&gt;
== Movies, Screenshots, Map Files ==&lt;br /&gt;
&lt;br /&gt;
=== DF Map Compressor / DF Map Archive ===&lt;br /&gt;
&lt;br /&gt;
*[http://shadowlord13.googlepages.com/dfmap-index.html SL's DF Map Compressor - Website]&lt;br /&gt;
*[http://mkv25.net/dfma/ Dwarf Fortress Map Archive]&lt;br /&gt;
&lt;br /&gt;
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 that features an online viewer (written in Flash).&lt;br /&gt;
&lt;br /&gt;
The map compressor was created by Shadowlord in May 2007. Extract from the website :&lt;br /&gt;
:&amp;quot;The '''DF Map Compressor''' is a program I made to encode Dwarf Fortress fortress or world map images into a much smaller format than is possible with normal image formats. Here's a quick summary of how it works: It determines the size of your tiles from your DF font file (or asks you), splits the map up into tiles, identifies duplicate tiles, writes out every unique tile image, and then writes out a list of ID#s for each tile position which points to the tile image for that tile. What it outputs is piped through the LZMA compressor (the one used in 7-zip), to compress it further. The .df-map file which it writes out is usually less than 100 KB in size. (By comparison, a PNG of the same map can exceed 2 megabytes, depending on how well you compress it, whether you change the color depth, and whether you are using a graphical tileset or detailed font).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Read more about the [[User:Markavian/DF_Map_Archive|DF Map Archive]] on Markavian's User page.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.geocities.com/jifodus/CMVPlayer.zip CMVPlayer] === &lt;br /&gt;
&lt;br /&gt;
First released by Jifodus in April 2007. This application enables playback of the DF movies (.cmv) without starting DF. It also provides some more functionalities, such as :&lt;br /&gt;
* Rewind&lt;br /&gt;
* Pause&lt;br /&gt;
* Play frame per frame&lt;br /&gt;
&lt;br /&gt;
To use, simply unzip the file, and drop and drag the movie on CMVPlayer.exe.&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=389 DwarfHeightmap] ===&lt;br /&gt;
&lt;br /&gt;
A utility that imports 24bit greyscale bitmaps into world_gen.txt for use in DF's map generator.&lt;br /&gt;
&lt;br /&gt;
=== Terrain Visualizer ===&lt;br /&gt;
&lt;br /&gt;
View worldmaps in 3D! This utilizes version 0.28.181.39d's built in Legends Mode map exporter and a generic HeightMap terrain visualizer.  Nothing super fancy, but neat to look at.&lt;br /&gt;
Get the [http://www.alpix.com/3d/TerrainViewer/ 3D Terrain Viewer] here, follow the instructions in the [http://www.bay12games.com/forum/index.php?topic=21468 Bay12Forums Thread] if you need help getting set up.&lt;br /&gt;
&lt;br /&gt;
Or if you want super pretty maps, [http://www.bay12games.com/forum/index.php?topic=21469.0 see this topic], and get [http://www.planetside.co.uk/terragen/download.shtml Terragen]!&lt;br /&gt;
&lt;br /&gt;
==Major Utilities==&lt;br /&gt;
&lt;br /&gt;
=== [[User:Bartavelle/DwarfCompanion|Dwarf Companion]] ===&lt;br /&gt;
&lt;br /&gt;
Created by [[User:Bartavelle|Bartavelle]], the Dwarf Companion is a graphical helper utility for dwarf fortress that aims to fill the gaps in the user interface. It allows for some nefarious cheating. For example, you can now mark your nobles as butcherable, and change possessed dwarves to fey moods.&lt;br /&gt;
&lt;br /&gt;
=== [http://dwarfmanager.sourceforge.net/ Dwarf Manager] ===&lt;br /&gt;
&lt;br /&gt;
Dwarf Manager is inspired by Dwarf Foreman (below) and has a similar overall layout, but improved features. You can not only assign jobs to profession groups but also to individual dwarves; you can view their current skill for a given job displayed handily in the job grid; and you can also change their personal and profession names straight from the interface. The program handles social and military skills as well.&lt;br /&gt;
In addition the program can be customized and updated by editing the included .xml files.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.pavlovian.net/foreman/ Dwarf Foreman] ===&lt;br /&gt;
&lt;br /&gt;
Makes switching jobs on and off for large numbers of dwarves simple. Dwarves are grouped by their profession, or custom profession if they have one. By clicking on the graph you can enable any job for all dwarves with that profession. Still in alpha for this version of DF, if it doesn't recognize one of the new professions, check the file '''debug.txt''' in the directory you run foreman from.&lt;br /&gt;
&lt;br /&gt;
Though prone to crashing currently, saving and exiting DF, starting foreman and then starting DF again will usually get it working again. Zorba would also appreciate it if you'd email him the crash log located in the Dwarf Foreman directory when this happens (zorba-foremancrash@pavlovian.net).&lt;br /&gt;
&lt;br /&gt;
Dwarf Foreman currently allows you to change the jobs of visiting merchants, outpost liaisons, children, and any other dwarves that aren't normally controllable. It is unsupported but occasionally hilarious, and allows you to finally put those lazy dwarven children to work.&lt;br /&gt;
&lt;br /&gt;
Source code is available.&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.40d''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] for previous versions of DF.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=032e4b67&lt;br /&gt;
critter_start=01583224&lt;br /&gt;
dwarfidpos=0138f690&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' A Dwarf Foreman-like utility, with an expanded feature set, is also available. See Dwarf Manager below.&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=695 Mac Foreman] ===&lt;br /&gt;
&lt;br /&gt;
This is a MacOSX 10.5 port of Dwarf Foreman.&lt;br /&gt;
&lt;br /&gt;
Source code is available.&lt;br /&gt;
&lt;br /&gt;
Dwarf Fortress version: '''v0.28.181.40d'''&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=39229.0 Dwarf Therapist] ===&lt;br /&gt;
&lt;br /&gt;
Reported to be an improvement over Dwarf Manager.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Rick/Tweak|Gibbed's Dwarf Fortress Tweak]] ===&lt;br /&gt;
&lt;br /&gt;
A toolset with many modules for tweaking / editing Dwarf Fortress memory.&lt;br /&gt;
&lt;br /&gt;
=== [http://sun2design.com/quickfort/ Quickfort] ===&lt;br /&gt;
&lt;br /&gt;
Quickfort is an AutoHotkey-based utility for Dwarf Fortress that helps you build fortresses from &amp;quot;blueprint&amp;quot; .CSV files (comma separated values). These files are easily created and edited in an app like Excel. Most building-oriented DF commands are supported through the use of multiple .CSV files to describe the different phases of DF construction (designation, building, stockpiles, and making adjustments).&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=18623.0 Modbase] ===&lt;br /&gt;
&lt;br /&gt;
Modbase is a great tool made by Sean Mirrsen which allows you to freely swap mods and tweak game settings. For version 0.38c.&lt;br /&gt;
&lt;br /&gt;
=== DF Raw Editor ===&lt;br /&gt;
&lt;br /&gt;
DF Raw Editor is a brand new tool created to help edit the raw files.&lt;br /&gt;
It is available [http://www.bay12games.com/forum/index.php?topic=40413.0 here].&lt;br /&gt;
For version 0.40d&lt;br /&gt;
&lt;br /&gt;
== Minor Utilities ==&lt;br /&gt;
&lt;br /&gt;
=== DF Log Parser ===&lt;br /&gt;
&lt;br /&gt;
A perl script written by Mephansteras that parses through the logs to show what civs owned what sites, what their overall populations were, and what the overall population levels of cave critters were. The output file makes it pretty easy to see how the various races are doing.&lt;br /&gt;
&lt;br /&gt;
You will see:&lt;br /&gt;
Each Civilization, with overall ruler. Each site in that civ, with the local ruler. A summary of every entity in that civ.&lt;br /&gt;
A summary of every civ, by race&lt;br /&gt;
A listing of every Ruin&lt;br /&gt;
A listing of the total populations of cave critters&lt;br /&gt;
A listing of the total populations of civilized creatures&lt;br /&gt;
&lt;br /&gt;
[http://dffd.wimbli.com/file.php?id=299 Raw perl script] - requires perl&lt;br /&gt;
[http://dffd.wimbli.com/file.php?id=311 Executable version] - does not require perl&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=278 DF World Generator] ===&lt;br /&gt;
&lt;br /&gt;
Swiftly written supplement to the command line world generator. Written in Python, so you have to have Python installed to use this. It must be run from the command line and be in the DF Directory to work. Running the program with no parameters will provoke a short help-me dialog which will explain how to run it properly.&lt;br /&gt;
Enjoy!&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=949.0 Dtil] ===&lt;br /&gt;
&lt;br /&gt;
Dtil is a general purpose tool host that supplies a dynamically generated SDK for plugin authors.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=21351.0 Embark Anywhere] ===&lt;br /&gt;
&lt;br /&gt;
Code based on 0x517A5D's Regional Prospector (above), allows you to embark ANYWHERE, how well that works depends on where you decide to go. Pure water areas are a suggested no as you can't do anything.&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=443 Enable Magma Buildings] ===&lt;br /&gt;
&lt;br /&gt;
You need this utility in the case that you used the reveal utility before discovering any subsurface magma, or if you have reclaimed a fortress whose magma source has already been discovered.{{version|0.28.181.40d}} (If the hide utility is ever updated, you could also hide a few magma tiles and then dig them out.  That worked in the old version.) Because there is no actual flag that controls whether magma has been seen (the game searches a list, probably a list of notable events), I had to patch the game's code.  This means you need to run the utility every time you start dwarfort.exe and you want to build a new magma-using workshop.&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent. It is expected to work with future releases of Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
=== [http://75.127.91.201/~jifodus/df/justdigitout.zip Just dig it out!] ===&lt;br /&gt;
&lt;br /&gt;
A utility by Jifodus. Disables warning messages about damp stone and hot stone. [http://www.bay12games.com/forum/index.php?topic=21892.0 Thread]&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=21601.0 Nano Fortress] ===&lt;br /&gt;
&lt;br /&gt;
A utility that will allow embarks to 1x1 locations.&lt;br /&gt;
&lt;br /&gt;
=== [http://angband.org/~erasmus/df/teleport22.zip Teleport] ===&lt;br /&gt;
&lt;br /&gt;
Teleport dwarves and other creatures. Version 2.2 is independent of the DF version. (33c)&lt;br /&gt;
&lt;br /&gt;
Note:  This utility may not work on versions of DF 40d and later.  If it doesn't work for you, try Dwarf Companion.&lt;br /&gt;
&lt;br /&gt;
Caveat: The teleport utility does not correctly set the occupancy flag for map squares.  As a results, dwarves will permanently crawl through the square that you teleported them out of.  In addition, you cannot build structures in those squares.&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=645 Reveal] ===&lt;br /&gt;
&lt;br /&gt;
Reveal (or Reveal.exe as it is commonly referred to) is a program that runs alongside Dwarf Fortress and shows all &amp;quot;unexplored&amp;quot; or &amp;quot;undug&amp;quot; tiles of the map (in fortress mode).  To reveal entire map designate the entire bottom level to be mined and then remove designation before running reveal.   Playing on revealed map might ''(read &amp;quot;will&amp;quot;)'' cause some bugs (like not being able to build magma buildings or a tower-cap farm, losing all plants/trees on the map, and a lot more).  '''Using Reveal has been known to corrupt saved game folders.''' and, as such, it is highly recommended to only use Reveal to preview a biome's layout and then restart without running Reveal.&lt;br /&gt;
&lt;br /&gt;
There are two versions of Reveal, one for Vista and newer, one for XP and older.&lt;br /&gt;
&lt;br /&gt;
The new version of Reveal.exe (Reveal2) is in public beta, you can find it here [http://dffd.wimbli.com/file.php?id=1044 Reveal2].  Please report problems in [[User_talk:0x517A5D|0x517A5D's Talk page]].&lt;br /&gt;
&lt;br /&gt;
The Old version of Reveal.exe does not require you install anything (if you are using 0.28.181.40d and the updated memory.ini file), just unzip both files and run reveal.exe while DF is running.&lt;br /&gt;
&lt;br /&gt;
If using [http://www.bay12games.com/forum/index.php?topic=40349.0 the OpenGL accelerated version] of DF (40d16) under XP SP3, the newer version of Reveal is required as the older version can't find it. Reveal2.exe works correctly with this setup.&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=1165 UltraFinder] ===&lt;br /&gt;
&lt;br /&gt;
This AHK script generates worlds until it finds one with the desired features as defined in the init file.&lt;br /&gt;
&lt;br /&gt;
This is not an advanced application, it is simply meant to take the task of repeated genning out of your hands.&lt;br /&gt;
&lt;br /&gt;
The concept is that you set the parameters as you see fit, and leave it running while you go about your other business.&lt;br /&gt;
&lt;br /&gt;
READ ALL WARNINGS IN THE INIT FILE!&lt;br /&gt;
&lt;br /&gt;
The readme exists for a reason.&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
&lt;br /&gt;
These utilities were never designed with Dwarf Fortress in mind, but have been adapted to its use.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Jackard/Accent_Removal|Accent Removal]] ===&lt;br /&gt;
&lt;br /&gt;
Certain tilesets leave a bunch of funky icons in the names of your dwarves! Replacing accented letters with normal ones in the raws fixes this problem.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.autohotkey.com/ AutoHotKey] ===&lt;br /&gt;
&lt;br /&gt;
AHK lets you define global hotkeys to send a sequence of keystrokes. For example, you can have {{key|alt}}+{{key|w}} replace {{key|b}}-{{key|C}}-{{key|w}}-{{key|Enter}}-{{key|Enter}} to make wall building much easier.  See [[Macros and Keymaps]] for a how-to and some example scripts. See [[:Category:ahk scripts]] for a list of user submitted scripts.&lt;br /&gt;
&lt;br /&gt;
=== [http://winmerge.org/ Winmerge] ===&lt;br /&gt;
&lt;br /&gt;
This utility allows you to compare folders or files. It highlights anything that does not fit in with the other file, so that you can see if you want to merge them into one file or not..&lt;br /&gt;
&lt;br /&gt;
== Outdated Utilities ==&lt;br /&gt;
&lt;br /&gt;
These programs are for previous versions of Dwarf Fortress, and have been left untouched for some time.&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=108 DFWall] ===&lt;br /&gt;
&lt;br /&gt;
An utility for automation of mass constructions. Features three modes:&lt;br /&gt;
&lt;br /&gt;
1. Rectangle rewalling - quickly build a rectangle of walls/floors using:&lt;br /&gt;
a) the same saved material every time ([http://mkv25.net/dfma/movie-495-dfwalldemo DEMO])&lt;br /&gt;
b) any material with at least 1/10/99 units&lt;br /&gt;
&lt;br /&gt;
2. Quick reselect (for ANY single unit construction) - save that green glass box and never again have to look for it between all the bags!&lt;br /&gt;
&lt;br /&gt;
3. Pattern construction - make a pattern file and have stuff constructed according to it ([http://mkv25.net/dfma/movie-520-dfwalldemo2 DEMO]).&lt;br /&gt;
&lt;br /&gt;
For more details look here: [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001847 Thread]&lt;br /&gt;
&lt;br /&gt;
=== [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=latitudes.zip Latitudes] ===&lt;br /&gt;
&lt;br /&gt;
Latitudes is a utility that, when on the embark map screen, shows the X/Y coordinates of the current region.   Until Toady adds [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=5&amp;amp;t=002191 proper support], this will do the trick.  Works in .32a through at least .33g.  Technical notes: uses memory injection, so it may be flagged as a suspicious file by anti-virus programs.&lt;br /&gt;
&lt;br /&gt;
=== [http://angband.org/~erasmus/df/lavasquare.exe Lavasquare] ===&lt;br /&gt;
&lt;br /&gt;
Another quick hack to make a 7/7 unit of lava on the currently selected square.  Ignore the random text it spams, as it was quickly adapted from a map query tool, and I didn't bother removing the print statements. Only works with version 33e. To hack this executable for a later version of dwarf fortress see the [[Talk:Utilities#Lavasquare|talk page]].&lt;br /&gt;
&lt;br /&gt;
33g version plus autohotkey script: http://www.sendspace.com/file/xsl6gs&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=1447.0 StartProfile] ===&lt;br /&gt;
&lt;br /&gt;
Jifodus wrote a little utility that lets you maintain profiles of your starting dwarves.&lt;br /&gt;
&lt;br /&gt;
Check the thread on the forums for the latest download link. (Aug 01, 2008)&lt;br /&gt;
&lt;br /&gt;
Incidentally, if you try this utility, please report success/failure in [[Talk:Utilities#StartProfile|the utilities talk page]].&lt;br /&gt;
&lt;br /&gt;
=== [http://angband.org/~erasmus/df/water.exe Water] ===&lt;br /&gt;
&lt;br /&gt;
Quick hack to refill ponds.  Run this while your fortress is up, and it'll restore any &amp;quot;murky pool&amp;quot; tiles (i.e. the floor of ponds and lakes) to 7/7 water.  If you've tunneled into a pond, it'll still refill but will flow out normally. Only works with version 33e due to its &amp;quot;quick hack&amp;quot; status. Note: If there is lava in a murky pool, it will be raised to depth 7/7.&lt;br /&gt;
&lt;br /&gt;
[[Category:Utilities| ]]&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28241</id>
		<title>User:Jifodus</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28241"/>
		<updated>2009-03-11T04:35:15Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My work analyzing DF's formats: [[User:Jifodus/Memory research|Memory research]], [[User:Jifodus/CMV file format|CMV file format]], [[User:Jifodus/Dwarf Fortress Utility Framework|Dwarf Fortress Utility Framework]], [[User:Jifodus/Map block|Map block info]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font size=&amp;quot;+1&amp;quot;&amp;gt;&amp;lt;b&amp;gt;If you run Mac or Linux and know and can spend time analyzing Dwarf Fortress code, I have a pitiful attempt at creating a cross-platform memory editor library. At the moment I only have a Windows version, I'll be working on a Linux port next.&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Memory==&lt;br /&gt;
I'm removing the memory lists since they are now unneeded. For [[User:Rick/Tweak|Gibbed's Dwarf Fortress Tweak's]] configuration check out http://www.geocities.com/jifodus/tables/dwarvis/. The line you'll need to stick inside DwarfFortress.Versions.xml can be found commented out at the bottom of each core.xml file.&lt;br /&gt;
&lt;br /&gt;
You also may try using my [http://www.bay12games.com/forum/index.php?topic=24897.msg282605#msg282605 Automatic Address &amp;amp; Offset finder], which is capable of generating the configuration for Tweak with little to no knowledge required.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
===tile_tool===&lt;br /&gt;
I wrote a tool that allows nearly complete editing of a tile's data. It's designed for analyzing a tile's data. Since it's not designed for mass editing, therefore I don't recommend using it for adding more than a couple tiles of water or magma. Or build multiple buildings on top of each other. Use '?' for in-tool help.&lt;br /&gt;
&lt;br /&gt;
http://www.geocities.com/jifodus/tile_tool.zip (61KB)&lt;br /&gt;
&lt;br /&gt;
Mar 04, 2008: http://www.geocities.com/jifodus/auto-update_tile_tool.zip (75KB) - Alternate version that is usable as soon as configuration gets uploaded for it. Source code: http://www.geocities.com/jifodus/tile_tool_src.zip (14KB)&lt;br /&gt;
&lt;br /&gt;
Editable information:&lt;br /&gt;
* Liquid Level&lt;br /&gt;
* Designation Flags&lt;br /&gt;
* Occupancy Flags&lt;br /&gt;
* Temperature&lt;br /&gt;
* Tile #&lt;br /&gt;
* Unknown Values&lt;br /&gt;
&lt;br /&gt;
Additional features:&lt;br /&gt;
* Track tile data.&lt;br /&gt;
* Compare a tile with a tracked tile.&lt;br /&gt;
* Dump the raw bits of Designation, Occupancy, Pathfinding and Unknowns.&lt;br /&gt;
&lt;br /&gt;
===Source Code===&lt;br /&gt;
I'm going to be dumping the source code for some of my projects in my new mercurial repository located at: http://75.127.91.201/phg/df/&lt;br /&gt;
&lt;br /&gt;
To clone the repository you'll need a mercurial client which you can get from: http://www.selenic.com/mercurial/wiki/&lt;br /&gt;
&lt;br /&gt;
The repository currently contains the source code to my [http://www.bay12games.com/forum/index.php?topic=24897.msg282605#msg282605 Automatic Address &amp;amp; Offset finder], [http://www.bay12games.com/forum/index.php?topic=22167.msg239976#msg239976 TelnetFortress], and a couple unfinished projects: a help editor, a map editor, and the next version of TelnetFortress which would be contained in an OpenGL wrapper and access the screen buffer directly. I'll probably be adding more of my DF related projects to the repository sometime when I have the time.&lt;br /&gt;
&lt;br /&gt;
If a particular project in the repository doesn't list a license, it is probably going to be under an MIT license. Also PM me on the forums so that I can properly add the license info.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hacking]]&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28240</id>
		<title>User:Jifodus</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28240"/>
		<updated>2009-03-10T05:42:34Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My work analyzing DF's formats: [[User:Jifodus/Memory research|Memory research]], [[User:Jifodus/CMV file format|CMV file format]], [[User:Jifodus/Dwarf Fortress Utility Framework|Dwarf Fortress Utility Framework]], [[User:Jifodus/Map block|Map block info]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;font size=&amp;quot;+1&amp;quot; color=#006600&amp;gt;If you use a Mac or Linux and can spend time debugging and analzying Dwarf Fortress dissasembly for said platforms. Please take a look at http://75.127.91.201/phg/df/ and more specifically opengl32. Basically it's my feeble attempt at working towards more cross-platform utilities.&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Memory==&lt;br /&gt;
I'm removing the memory lists since they are now unneeded. For [[User:Rick/Tweak|Gibbed's Dwarf Fortress Tweak's]] configuration check out http://www.geocities.com/jifodus/tables/dwarvis/. The line you'll need to stick inside DwarfFortress.Versions.xml can be found commented out at the bottom of each core.xml file.&lt;br /&gt;
&lt;br /&gt;
You also may try using my [http://www.bay12games.com/forum/index.php?topic=24897.msg282605#msg282605 Automatic Address &amp;amp; Offset finder], which is capable of generating the configuration for Tweak with little to no knowledge required.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
===tile_tool===&lt;br /&gt;
I wrote a tool that allows nearly complete editing of a tile's data. It's designed for analyzing a tile's data. Since it's not designed for mass editing, therefore I don't recommend using it for adding more than a couple tiles of water or magma. Or build multiple buildings on top of each other. Use '?' for in-tool help.&lt;br /&gt;
&lt;br /&gt;
http://www.geocities.com/jifodus/tile_tool.zip (61KB)&lt;br /&gt;
&lt;br /&gt;
Mar 04, 2008: http://www.geocities.com/jifodus/auto-update_tile_tool.zip (75KB) - Alternate version that is usable as soon as configuration gets uploaded for it. Source code: http://www.geocities.com/jifodus/tile_tool_src.zip (14KB)&lt;br /&gt;
&lt;br /&gt;
Editable information:&lt;br /&gt;
* Liquid Level&lt;br /&gt;
* Designation Flags&lt;br /&gt;
* Occupancy Flags&lt;br /&gt;
* Temperature&lt;br /&gt;
* Tile #&lt;br /&gt;
* Unknown Values&lt;br /&gt;
&lt;br /&gt;
Additional features:&lt;br /&gt;
* Track tile data.&lt;br /&gt;
* Compare a tile with a tracked tile.&lt;br /&gt;
* Dump the raw bits of Designation, Occupancy, Pathfinding and Unknowns.&lt;br /&gt;
&lt;br /&gt;
===Source Code===&lt;br /&gt;
I'm going to be dumping the source code for some of my projects in my new mercurial repository located at: http://75.127.91.201/phg/df/&lt;br /&gt;
&lt;br /&gt;
To clone the repository you'll need a mercurial client which you can get from: http://www.selenic.com/mercurial/wiki/&lt;br /&gt;
&lt;br /&gt;
The repository currently contains the source code to my [http://www.bay12games.com/forum/index.php?topic=24897.msg282605#msg282605 Automatic Address &amp;amp; Offset finder], [http://www.bay12games.com/forum/index.php?topic=22167.msg239976#msg239976 TelnetFortress], and a couple unfinished projects: a help editor, a map editor, and the next version of TelnetFortress which would be contained in an OpenGL wrapper and access the screen buffer directly. I'll probably be adding more of my DF related projects to the repository sometime when I have the time.&lt;br /&gt;
&lt;br /&gt;
If a particular project in the repository doesn't list a license, it is probably going to be under an MIT license. Also PM me on the forums so that I can properly add the license info.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hacking]]&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28239</id>
		<title>User:Jifodus</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28239"/>
		<updated>2009-02-11T08:21:16Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: Link to repository for my project source code&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My work analyzing DF's formats:&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Memory research|Memory research]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/CMV file format|CMV file format]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Dwarf Fortress Utility Framework|Dwarf Fortress Utility Framework]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Map block|Map block info]]&lt;br /&gt;
&lt;br /&gt;
==Memory==&lt;br /&gt;
I'm removing the memory lists since they are now unneeded. For [[User:Rick/Tweak|Gibbed's Dwarf Fortress Tweak's]] configuration check out http://www.geocities.com/jifodus/tables/dwarvis/. The line you'll need to stick inside DwarfFortress.Versions.xml can be found commented out at the bottom of each core.xml file.&lt;br /&gt;
&lt;br /&gt;
You also may try using my [http://www.bay12games.com/forum/index.php?topic=24897.msg282605#msg282605 Automatic Address &amp;amp; Offset finder], which is capable of generating the configuration for Tweak with little to no knowledge required.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
===tile_tool===&lt;br /&gt;
I wrote a tool that allows nearly complete editing of a tile's data. It's designed for analyzing a tile's data. Since it's not designed for mass editing, therefore I don't recommend using it for adding more than a couple tiles of water or magma. Or build multiple buildings on top of each other. Use '?' for in-tool help.&lt;br /&gt;
&lt;br /&gt;
http://www.geocities.com/jifodus/tile_tool.zip (61KB)&lt;br /&gt;
&lt;br /&gt;
Mar 04, 2008: http://www.geocities.com/jifodus/auto-update_tile_tool.zip (75KB) - Alternate version that is usable as soon as configuration gets uploaded for it. Source code: http://www.geocities.com/jifodus/tile_tool_src.zip (14KB)&lt;br /&gt;
&lt;br /&gt;
Editable information:&lt;br /&gt;
* Liquid Level&lt;br /&gt;
* Designation Flags&lt;br /&gt;
* Occupancy Flags&lt;br /&gt;
* Temperature&lt;br /&gt;
* Tile #&lt;br /&gt;
* Unknown Values&lt;br /&gt;
&lt;br /&gt;
Additional features:&lt;br /&gt;
* Track tile data.&lt;br /&gt;
* Compare a tile with a tracked tile.&lt;br /&gt;
* Dump the raw bits of Designation, Occupancy, Pathfinding and Unknowns.&lt;br /&gt;
&lt;br /&gt;
===Source Code===&lt;br /&gt;
I'm going to be dumping the source code for some of my projects in my new mercurial repository located at: http://75.127.91.201/phg/df/&lt;br /&gt;
&lt;br /&gt;
To clone the repository you'll need a mercurial client which you can get from: http://www.selenic.com/mercurial/wiki/&lt;br /&gt;
&lt;br /&gt;
The repository currently contains the source code to my [http://www.bay12games.com/forum/index.php?topic=24897.msg282605#msg282605 Automatic Address &amp;amp; Offset finder], [http://www.bay12games.com/forum/index.php?topic=22167.msg239976#msg239976 TelnetFortress], and a couple unfinished projects: a help editor, a map editor, and the next version of TelnetFortress which would be contained in an OpenGL wrapper and access the screen buffer directly. I'll probably be adding more of my DF related projects to the repository sometime when I have the time.&lt;br /&gt;
&lt;br /&gt;
If a particular project in the repository doesn't list a license, it is probably going to be under an MIT license. Also PM me on the forums so that I can properly add the license info.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hacking]]&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus/Memory_research&amp;diff=28216</id>
		<title>User:Jifodus/Memory research</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus/Memory_research&amp;diff=28216"/>
		<updated>2008-10-11T18:30:28Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* Buildings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Hacking]]&lt;br /&gt;
=October 11, 2008=&lt;br /&gt;
===Hotkeys===&lt;br /&gt;
 struct Hotkey {&lt;br /&gt;
   string name;&lt;br /&gt;
   word unused; // 0 if used (possibly also mode, since unused is -1)&lt;br /&gt;
   word padding0; // most likely padding&lt;br /&gt;
   int x;&lt;br /&gt;
   int y;&lt;br /&gt;
   int z;&lt;br /&gt;
 } // size = 0x2C&lt;br /&gt;
===Buildings===&lt;br /&gt;
See http://www.bay12games.com/forum/index.php?topic=24897.msg303143#msg303143&lt;br /&gt;
 0x015838A0&lt;br /&gt;
 0x015838B0&lt;br /&gt;
 0x015838F0 - Has fewer elements than the other two. May exclude stockpiles.&lt;br /&gt;
&lt;br /&gt;
===Items===&lt;br /&gt;
See http://www.bay12games.com/forum/index.php?topic=24897.msg303143#msg303143&lt;br /&gt;
 0x015832C8 - A monitoring tool detected items that existed one frame then were gone the next&lt;br /&gt;
 0x015832D8 - As items disappeared (like above), the index decreased by one. Looks promising as the global item vector.&lt;br /&gt;
 0x015833B8 - Always has fewer elements than the other two&lt;br /&gt;
&lt;br /&gt;
=v0.27.169.33b=&lt;br /&gt;
==Addresses==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! width=&amp;quot;12%&amp;quot; align=&amp;quot;right&amp;quot; | Address&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;13%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Information&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0x0124A6A0&lt;br /&gt;
| class game *&lt;br /&gt;
| game_data&lt;br /&gt;
| I have not actually determined if this is a class, but I'm reasonably sure that this points to a class.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
==Classes==&lt;br /&gt;
===class game===&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! width=&amp;quot;12%&amp;quot; align=&amp;quot;right&amp;quot; | Offset (+Hex)&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;13%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Information&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0004&lt;br /&gt;
| class df_params *&lt;br /&gt;
| start_params&lt;br /&gt;
| The starting parameters for a new Dwarf Fortress game.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
===class df_params===&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! width=&amp;quot;12%&amp;quot; align=&amp;quot;right&amp;quot; | Offset (+Hex)&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;13%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Information&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | (00DC) 00D8&lt;br /&gt;
| std::vector&amp;lt;class dwarf_info&amp;gt;&lt;br /&gt;
| dwarf_params&lt;br /&gt;
| The starting dwarves.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 010E&lt;br /&gt;
| word&lt;br /&gt;
| sel_item&lt;br /&gt;
| The current selected item in the item list.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0290&lt;br /&gt;
| signed word&lt;br /&gt;
| points&lt;br /&gt;
| The current amount of points available to spend.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
===class dwarf_info===&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! width=&amp;quot;12%&amp;quot; align=&amp;quot;right&amp;quot; | Offset (+Hex)&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;13%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Information&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0070&lt;br /&gt;
| signed dword[80]&lt;br /&gt;
| skills&lt;br /&gt;
| The dwarf's skill levels.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 01C0&lt;br /&gt;
| signed dword&lt;br /&gt;
| skill_points&lt;br /&gt;
| The number of skill levels left that can be assigned to the dwarf.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
=v0.27.169.33c=&lt;br /&gt;
==Addresses==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! width=&amp;quot;12%&amp;quot; align=&amp;quot;right&amp;quot; | Address&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;13%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Information&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0x01250698&lt;br /&gt;
| class game *&lt;br /&gt;
| game_data&lt;br /&gt;
| I have not actually determined if this is a class, but I'm reasonably sure that this points to a class.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
==Classes==&lt;br /&gt;
===class game===&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! width=&amp;quot;12%&amp;quot; align=&amp;quot;right&amp;quot; | Offset (+Hex)&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;13%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Information&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0004&lt;br /&gt;
| class df_params *&lt;br /&gt;
| start_params&lt;br /&gt;
| The starting parameters for a new Dwarf Fortress game.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
===class df_params===&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! width=&amp;quot;12%&amp;quot; align=&amp;quot;right&amp;quot; | Offset (+Hex)&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;13%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Information&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | (00DC) 00D8&lt;br /&gt;
| std::vector&amp;lt;class dwarf_info&amp;gt;&lt;br /&gt;
| dwarf_params&lt;br /&gt;
| The starting dwarves.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 010E&lt;br /&gt;
| word&lt;br /&gt;
| sel_item&lt;br /&gt;
| The current selected item in the item list.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 112&lt;br /&gt;
| word&lt;br /&gt;
| sel_item&lt;br /&gt;
| The current selected animal in the pet list.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 7F8&lt;br /&gt;
| signed dword&lt;br /&gt;
| fortress_name_front&lt;br /&gt;
| Fortress Name (Front Compound). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 7FC&lt;br /&gt;
| signed dword&lt;br /&gt;
| fortress_name_rear&lt;br /&gt;
| Fortress Name (Rear Compound). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 800&lt;br /&gt;
| signed dword&lt;br /&gt;
| fortress_name_first&lt;br /&gt;
| Fortress Name (First Adjective). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 804&lt;br /&gt;
| signed dword&lt;br /&gt;
| fortress_name_second&lt;br /&gt;
| Fortress Name (Second Adjective). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 808&lt;br /&gt;
| signed dword&lt;br /&gt;
| fortress_name_hypen&lt;br /&gt;
| Fortress Name (Hyphen Compound). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 80C&lt;br /&gt;
| signed dword&lt;br /&gt;
| fortress_name_the&lt;br /&gt;
| Fortress Name (The X). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 810&lt;br /&gt;
| signed dword&lt;br /&gt;
| fortress_name_of&lt;br /&gt;
| Fortress Name (Of X). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 864&lt;br /&gt;
| signed dword&lt;br /&gt;
| group_name_front&lt;br /&gt;
| Group Name (Front Compound). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 868&lt;br /&gt;
| signed dword&lt;br /&gt;
| group_name_rear&lt;br /&gt;
| Group Name (Rear Compound). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 86C&lt;br /&gt;
| signed dword&lt;br /&gt;
| group_name_first&lt;br /&gt;
| Group Name (First Adjective). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 870&lt;br /&gt;
| signed dword&lt;br /&gt;
| group_name_second&lt;br /&gt;
| Group Name (Second Adjective). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 874&lt;br /&gt;
| signed dword&lt;br /&gt;
| group_name_hypen&lt;br /&gt;
| Group Name (Hyphen Compound). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 878&lt;br /&gt;
| signed dword&lt;br /&gt;
| group_name_the&lt;br /&gt;
| Group Name (The X). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 87C&lt;br /&gt;
| signed dword&lt;br /&gt;
| group_name_of&lt;br /&gt;
| Group Name (Of X). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 08F0&lt;br /&gt;
| signed word&lt;br /&gt;
| points&lt;br /&gt;
| The current amount of points available to spend.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
===class dwarf_info===&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! width=&amp;quot;12%&amp;quot; align=&amp;quot;right&amp;quot; | Offset (+Hex)&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;13%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Information&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0070&lt;br /&gt;
| signed dword[80]&lt;br /&gt;
| skills&lt;br /&gt;
| The dwarf's skill levels.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 01C0&lt;br /&gt;
| signed short&lt;br /&gt;
| skill_points&lt;br /&gt;
| The number of skill levels left that can be assigned to the dwarf.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
=v0.27.169.33d=&lt;br /&gt;
Everything is the same as [[User:Jifodus/Memory research|v0.27.169.33c]] except the &amp;lt;tt&amp;gt;class game*&amp;lt;/tt&amp;gt; is 0x1000 higher than [[User:Jifodus/Memory research|v0.27.169.33c]].&lt;br /&gt;
==Addresses==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! width=&amp;quot;12%&amp;quot; align=&amp;quot;right&amp;quot; | Address&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;13%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Information&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0x01251698&lt;br /&gt;
| class game *&lt;br /&gt;
| game_data&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
=v0.27.169.33e=&lt;br /&gt;
Everything is the same as [[User:Jifodus/Memory research|v0.27.169.33c]] except the &amp;lt;tt&amp;gt;class game*&amp;lt;/tt&amp;gt; is 0x2000 higher than [[User:Jifodus/Memory research|v0.27.169.33c]].&lt;br /&gt;
==Addresses==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! width=&amp;quot;12%&amp;quot; align=&amp;quot;right&amp;quot; | Address&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;13%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Information&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0x01252698&lt;br /&gt;
| class game *&lt;br /&gt;
| game_data&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus/Memory_research&amp;diff=28215</id>
		<title>User:Jifodus/Memory research</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus/Memory_research&amp;diff=28215"/>
		<updated>2008-10-11T18:27:31Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: Some new stuff I discovered when determining patters to add.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Hacking]]&lt;br /&gt;
=October 11, 2008=&lt;br /&gt;
===Hotkeys===&lt;br /&gt;
 struct Hotkey {&lt;br /&gt;
   string name;&lt;br /&gt;
   word unused; // 0 if used (possibly also mode, since unused is -1)&lt;br /&gt;
   word padding0; // most likely padding&lt;br /&gt;
   int x;&lt;br /&gt;
   int y;&lt;br /&gt;
   int z;&lt;br /&gt;
 } // size = 0x2C&lt;br /&gt;
===Buildings===&lt;br /&gt;
See http://www.bay12games.com/forum/index.php?topic=24897.msg303143#msg303143&lt;br /&gt;
 0x015838A0&lt;br /&gt;
 0x015838B0&lt;br /&gt;
 0x015838F0 - Has fewer elements than the other two&lt;br /&gt;
===Items===&lt;br /&gt;
See http://www.bay12games.com/forum/index.php?topic=24897.msg303143#msg303143&lt;br /&gt;
 0x015832C8 - A monitoring tool detected items that existed one frame then were gone the next&lt;br /&gt;
 0x015832D8 - As items disappeared (like above), the index decreased by one. Looks promising as the global item vector.&lt;br /&gt;
 0x015833B8 - Always has fewer elements than the other two&lt;br /&gt;
&lt;br /&gt;
=v0.27.169.33b=&lt;br /&gt;
==Addresses==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! width=&amp;quot;12%&amp;quot; align=&amp;quot;right&amp;quot; | Address&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;13%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Information&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0x0124A6A0&lt;br /&gt;
| class game *&lt;br /&gt;
| game_data&lt;br /&gt;
| I have not actually determined if this is a class, but I'm reasonably sure that this points to a class.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
==Classes==&lt;br /&gt;
===class game===&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! width=&amp;quot;12%&amp;quot; align=&amp;quot;right&amp;quot; | Offset (+Hex)&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;13%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Information&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0004&lt;br /&gt;
| class df_params *&lt;br /&gt;
| start_params&lt;br /&gt;
| The starting parameters for a new Dwarf Fortress game.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
===class df_params===&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! width=&amp;quot;12%&amp;quot; align=&amp;quot;right&amp;quot; | Offset (+Hex)&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;13%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Information&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | (00DC) 00D8&lt;br /&gt;
| std::vector&amp;lt;class dwarf_info&amp;gt;&lt;br /&gt;
| dwarf_params&lt;br /&gt;
| The starting dwarves.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 010E&lt;br /&gt;
| word&lt;br /&gt;
| sel_item&lt;br /&gt;
| The current selected item in the item list.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0290&lt;br /&gt;
| signed word&lt;br /&gt;
| points&lt;br /&gt;
| The current amount of points available to spend.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
===class dwarf_info===&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! width=&amp;quot;12%&amp;quot; align=&amp;quot;right&amp;quot; | Offset (+Hex)&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;13%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Information&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0070&lt;br /&gt;
| signed dword[80]&lt;br /&gt;
| skills&lt;br /&gt;
| The dwarf's skill levels.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 01C0&lt;br /&gt;
| signed dword&lt;br /&gt;
| skill_points&lt;br /&gt;
| The number of skill levels left that can be assigned to the dwarf.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
=v0.27.169.33c=&lt;br /&gt;
==Addresses==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! width=&amp;quot;12%&amp;quot; align=&amp;quot;right&amp;quot; | Address&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;13%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Information&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0x01250698&lt;br /&gt;
| class game *&lt;br /&gt;
| game_data&lt;br /&gt;
| I have not actually determined if this is a class, but I'm reasonably sure that this points to a class.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
==Classes==&lt;br /&gt;
===class game===&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! width=&amp;quot;12%&amp;quot; align=&amp;quot;right&amp;quot; | Offset (+Hex)&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;13%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Information&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0004&lt;br /&gt;
| class df_params *&lt;br /&gt;
| start_params&lt;br /&gt;
| The starting parameters for a new Dwarf Fortress game.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
===class df_params===&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! width=&amp;quot;12%&amp;quot; align=&amp;quot;right&amp;quot; | Offset (+Hex)&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;13%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Information&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | (00DC) 00D8&lt;br /&gt;
| std::vector&amp;lt;class dwarf_info&amp;gt;&lt;br /&gt;
| dwarf_params&lt;br /&gt;
| The starting dwarves.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 010E&lt;br /&gt;
| word&lt;br /&gt;
| sel_item&lt;br /&gt;
| The current selected item in the item list.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 112&lt;br /&gt;
| word&lt;br /&gt;
| sel_item&lt;br /&gt;
| The current selected animal in the pet list.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 7F8&lt;br /&gt;
| signed dword&lt;br /&gt;
| fortress_name_front&lt;br /&gt;
| Fortress Name (Front Compound). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 7FC&lt;br /&gt;
| signed dword&lt;br /&gt;
| fortress_name_rear&lt;br /&gt;
| Fortress Name (Rear Compound). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 800&lt;br /&gt;
| signed dword&lt;br /&gt;
| fortress_name_first&lt;br /&gt;
| Fortress Name (First Adjective). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 804&lt;br /&gt;
| signed dword&lt;br /&gt;
| fortress_name_second&lt;br /&gt;
| Fortress Name (Second Adjective). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 808&lt;br /&gt;
| signed dword&lt;br /&gt;
| fortress_name_hypen&lt;br /&gt;
| Fortress Name (Hyphen Compound). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 80C&lt;br /&gt;
| signed dword&lt;br /&gt;
| fortress_name_the&lt;br /&gt;
| Fortress Name (The X). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 810&lt;br /&gt;
| signed dword&lt;br /&gt;
| fortress_name_of&lt;br /&gt;
| Fortress Name (Of X). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 864&lt;br /&gt;
| signed dword&lt;br /&gt;
| group_name_front&lt;br /&gt;
| Group Name (Front Compound). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 868&lt;br /&gt;
| signed dword&lt;br /&gt;
| group_name_rear&lt;br /&gt;
| Group Name (Rear Compound). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 86C&lt;br /&gt;
| signed dword&lt;br /&gt;
| group_name_first&lt;br /&gt;
| Group Name (First Adjective). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 870&lt;br /&gt;
| signed dword&lt;br /&gt;
| group_name_second&lt;br /&gt;
| Group Name (Second Adjective). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 874&lt;br /&gt;
| signed dword&lt;br /&gt;
| group_name_hypen&lt;br /&gt;
| Group Name (Hyphen Compound). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 878&lt;br /&gt;
| signed dword&lt;br /&gt;
| group_name_the&lt;br /&gt;
| Group Name (The X). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 87C&lt;br /&gt;
| signed dword&lt;br /&gt;
| group_name_of&lt;br /&gt;
| Group Name (Of X). -1 if not used, otherwise index into the dictionary (which dictionary I don't know).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 08F0&lt;br /&gt;
| signed word&lt;br /&gt;
| points&lt;br /&gt;
| The current amount of points available to spend.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
===class dwarf_info===&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! width=&amp;quot;12%&amp;quot; align=&amp;quot;right&amp;quot; | Offset (+Hex)&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;13%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Information&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0070&lt;br /&gt;
| signed dword[80]&lt;br /&gt;
| skills&lt;br /&gt;
| The dwarf's skill levels.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 01C0&lt;br /&gt;
| signed short&lt;br /&gt;
| skill_points&lt;br /&gt;
| The number of skill levels left that can be assigned to the dwarf.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
=v0.27.169.33d=&lt;br /&gt;
Everything is the same as [[User:Jifodus/Memory research|v0.27.169.33c]] except the &amp;lt;tt&amp;gt;class game*&amp;lt;/tt&amp;gt; is 0x1000 higher than [[User:Jifodus/Memory research|v0.27.169.33c]].&lt;br /&gt;
==Addresses==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! width=&amp;quot;12%&amp;quot; align=&amp;quot;right&amp;quot; | Address&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;13%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Information&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0x01251698&lt;br /&gt;
| class game *&lt;br /&gt;
| game_data&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
=v0.27.169.33e=&lt;br /&gt;
Everything is the same as [[User:Jifodus/Memory research|v0.27.169.33c]] except the &amp;lt;tt&amp;gt;class game*&amp;lt;/tt&amp;gt; is 0x2000 higher than [[User:Jifodus/Memory research|v0.27.169.33c]].&lt;br /&gt;
==Addresses==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! width=&amp;quot;12%&amp;quot; align=&amp;quot;right&amp;quot; | Address&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;13%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Information&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0x01252698&lt;br /&gt;
| class game *&lt;br /&gt;
| game_data&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28238</id>
		<title>User:Jifodus</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28238"/>
		<updated>2008-10-08T01:01:51Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* Memory */ Automatic Address &amp;amp; Offset finder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My work analyzing DF's formats:&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Memory research|Memory research]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/CMV file format|CMV file format]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Dwarf Fortress Utility Framework|Dwarf Fortress Utility Framework]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Map block|Map block info]]&lt;br /&gt;
&lt;br /&gt;
==Memory==&lt;br /&gt;
I'm removing the memory lists since they are now unneeded. For [[User:Rick/Tweak|Gibbed's Dwarf Fortress Tweak's]] configuration check out http://www.geocities.com/jifodus/tables/dwarvis/. The line you'll need to stick inside DwarfFortress.Versions.xml can be found commented out at the bottom of each core.xml file.&lt;br /&gt;
&lt;br /&gt;
You also may try using my [http://www.bay12games.com/forum/index.php?topic=24897.msg282605#msg282605 Automatic Address &amp;amp; Offset finder], which is capable of generating the configuration for Tweak with little to no knowledge required.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
===tile_tool===&lt;br /&gt;
I wrote a tool that allows nearly complete editing of a tile's data. It's designed for analyzing a tile's data. Since it's not designed for mass editing, therefore I don't recommend using it for adding more than a couple tiles of water or magma. Or build multiple buildings on top of each other. Use '?' for in-tool help.&lt;br /&gt;
&lt;br /&gt;
http://www.geocities.com/jifodus/tile_tool.zip (61KB)&lt;br /&gt;
&lt;br /&gt;
Mar 04, 2008: http://www.geocities.com/jifodus/auto-update_tile_tool.zip (75KB) - Alternate version that is usable as soon as configuration gets uploaded for it. Source code: http://www.geocities.com/jifodus/tile_tool_src.zip (14KB)&lt;br /&gt;
&lt;br /&gt;
Editable information:&lt;br /&gt;
* Liquid Level&lt;br /&gt;
* Designation Flags&lt;br /&gt;
* Occupancy Flags&lt;br /&gt;
* Temperature&lt;br /&gt;
* Tile #&lt;br /&gt;
* Unknown Values&lt;br /&gt;
&lt;br /&gt;
Additional features:&lt;br /&gt;
* Track tile data.&lt;br /&gt;
* Compare a tile with a tracked tile.&lt;br /&gt;
* Dump the raw bits of Designation, Occupancy, Pathfinding and Unknowns.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hacking]]&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=9015</id>
		<title>40d:Utilities</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=9015"/>
		<updated>2008-09-08T06:54:04Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* [http://www.pavlovian.net/foreman/ Dwarf Foreman] */ v0.28.181.40d&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are third party applications developed for Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [http://dffd.wimbli.com/ Dwarf Fortress File Depot] ==&lt;br /&gt;
The Dwarf Fortress File Upload Service - an excellent place to store mods, community games, tilesets and other files. Courtesy of [http://www.dwarffortresswiki.net/index.php/User:Janus Janus]; for files related to Dwarf Fortress only.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Movies, Screenshots, Map Files ==&lt;br /&gt;
=== DF Map Compressor / DF Map Archive ===&lt;br /&gt;
*[http://shadowlord13.googlepages.com/dfmap-index.html SL's DF Map Compressor - Website]&lt;br /&gt;
*[http://mkv25.net/dfma/ Dwarf Fortress Map Archive]&lt;br /&gt;
&lt;br /&gt;
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 that features an online viewer (written in Flash).&lt;br /&gt;
&lt;br /&gt;
The map compressor was created by Shadowlord in May 2007. Extract from the website :&lt;br /&gt;
:&amp;quot;The '''DF Map Compressor''' is a program I made to encode Dwarf Fortress fortress or world map images into a much smaller format than is possible with normal image formats. Here's a quick summary of how it works: It determines the size of your tiles from your DF font file (or asks you), splits the map up into tiles, identifies duplicate tiles, writes out every unique tile image, and then writes out a list of ID#s for each tile position which points to the tile image for that tile. What it outputs is piped through the LZMA compressor (the one used in 7-zip), to compress it further. The .df-map file which it writes out is usually less than 100 KB in size. (By comparison, a PNG of the same map can exceed 2 megabytes, depending on how well you compress it, whether you change the color depth, and whether you are using a graphical tileset or detailed font).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Read more about the [[User:Markavian/DF_Map_Archive|DF Map Archive]] on Markavian's User page.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=608.0 3Dwarf Visualizer] ===&lt;br /&gt;
This is NOT realtime, that is still a long, long way off. What this does is read the map out of your computer's memory when DF is running and save it to a file it can read. It can then open that file and show you your fort in glorious 3d. Still in beta, obviously.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.geocities.com/jifodus/CMVPlayer.zip CMVPlayer] === &lt;br /&gt;
First released by Jifodus in April 2007. This application enables playback of the DF movies (.cmv) without starting DF. It also provides some more functionalities, such as :&lt;br /&gt;
* Rewind&lt;br /&gt;
* Pause&lt;br /&gt;
* Play frame per frame&lt;br /&gt;
&lt;br /&gt;
To use, simply unzip the file, and drop and drag the movie on CMVPlayer.exe.&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=389 DwarfHeightmap] ===&lt;br /&gt;
A utility that imports 24bit greyscale bitmaps into world_gen.txt for use in DF's map generator.&lt;br /&gt;
&lt;br /&gt;
=== Terrain Visualizer ===&lt;br /&gt;
View worldmaps in 3D! This utilizes version 0.28.181.39d's built in Legends Mode map exporter and a generic HeightMap terrain visualizer.  Nothing super fancy, but neat to look at.&lt;br /&gt;
Get the [http://www.alpix.com/3d/TerrainViewer/ 3D Terrain Viewer] here, follow the instructions in the [http://www.bay12games.com/forum/index.php?topic=21468 Bay12Forums Thread] if you need help getting set up.&lt;br /&gt;
&lt;br /&gt;
Or if you want super pretty maps, [http://www.bay12games.com/forum/index.php?topic=21469.0 see this topic], and get [http://www.planetside.co.uk/terragen/download.shtml Terragen]!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Major Utilities==&lt;br /&gt;
=== [[User:Bartavelle/DwarfCompanion|Dwarf Companion]] ===&lt;br /&gt;
Created by [[User:Bartavelle|Bartavelle]], the Dwarf Companion is a graphical helper utility for dwarf fortress that aims to fill the gaps in the user interface. It allows for some nefarious cheating. For example, you can now mark your nobles as butcherable, and change possessed dwarves to fey moods.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.pavlovian.net/foreman/ Dwarf Foreman] ===&lt;br /&gt;
Makes switching jobs on and off for large numbers of dwarves simple. Dwarves are grouped by their profession, or custom profession if they have one. By clicking on the graph you can enable any job for all dwarves with that profession. Still in alpha for this version of DF, if it doesn't recognize one of the new professions, check the file '''debug.txt''' in the directory you run foreman from.&lt;br /&gt;
&lt;br /&gt;
Though prone to crashing currently, saving and exiting DF, starting foreman and then starting DF again will usually get it working again. Zorba would also appreciate it if you'd email him the crash log located in the Dwarf Foreman directory when this happens (zorba-foremancrash@pavlovian.net).&lt;br /&gt;
&lt;br /&gt;
Dwarf Foreman currently allows you to change the jobs of visiting merchants, outpost liaisons, children, and any other dwarves that aren't normally controllable. It is unsupported but occasionally hilarious, and allows you to finally put those lazy dwarven children to work.&lt;br /&gt;
&lt;br /&gt;
Source code is available.&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.40d''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] for previous versions of DF.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=032e4b67&lt;br /&gt;
critter_start=01583224&lt;br /&gt;
dwarfidpos=0138f690&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[User:Rick/Tweak|Gibbed's Dwarf Fortress Tweak]] ===&lt;br /&gt;
A toolset with many modules for tweaking / editing Dwarf Fortress memory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=18623.0 Modbase] ===&lt;br /&gt;
Modbase is a great tool made by Sean Mirrsen which allows you to freely swap mods and tweak game settings. For version 0.38c.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Minor Utilities ==&lt;br /&gt;
=== DF Log Parser ===&lt;br /&gt;
A perl script written by Mephansteras that parses through the logs to show what civs owned what sites, what their overall populations were, and what the overall population levels of cave critters were. The output file makes it pretty easy to see how the various races are doing.&lt;br /&gt;
&lt;br /&gt;
You will see:&lt;br /&gt;
Each Civilization, with overall ruler. Each site in that civ, with the local ruler. A summary of every entity in that civ.&lt;br /&gt;
A summary of every civ, by race&lt;br /&gt;
A listing of every Ruin&lt;br /&gt;
A listing of the total populations of cave critters&lt;br /&gt;
A listing of the total populations of civilized creatures&lt;br /&gt;
&lt;br /&gt;
[http://dffd.wimbli.com/file.php?id=299 Raw perl script] - requires perl&lt;br /&gt;
[http://dffd.wimbli.com/file.php?id=311 Executable version] - does not require perl&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=278 DF World Generator] ===&lt;br /&gt;
&lt;br /&gt;
Swiftly written supplement to the command line world generator. Written in Python, so you have to have Python installed to use this. It must be run from the command line and be in the DF Directory to work. Running the program with no parameters will provoke a short help-me dialog which will explain how to run it properly.&lt;br /&gt;
Enjoy!&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=949.0 Dtil] ===&lt;br /&gt;
Dtil is a general purpose tool host that supplies a dynamically generated SDK for plugin authors.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=21351.0 Embark Anywhere] ===&lt;br /&gt;
Code based on 0x517A5D's Regional Prospector (above), allows you to embark ANYWHERE, how well that works depends on where you decide to go.  Pure water areas are a suggested no as you can't do anything.&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=443 Enable Magma Buildings] ===&lt;br /&gt;
You need this utility in the case that you used the reveal utility, and you had not yet discovered any subsurface magma. (If the hide utility is ever updated, you could also hide a few magma tiles and then dig them out.  That worked in the old version.) Because there is no actual flag that controls whether magma has been seen (the game searches a list, probably a list of notable events), I had to patch the game's code.  This means you need to run the utility every time you start dwarfort.exe.&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent. It is expected to work with future releases of Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.geocities.com/jifodus/justdigitout.zip Just dig it out!] ===&lt;br /&gt;
A utility by Jifodus. Disables warning messages about damp stone and hot stone. [http://www.bay12games.com/forum/index.php?topic=21892.0 Thread]&lt;br /&gt;
&lt;br /&gt;
=== [http://www.geocities.com/jifodus/nanofortress.zip Nano Fortress] ===&lt;br /&gt;
A utility that will allow embarks to 1x1 locations.&lt;br /&gt;
&lt;br /&gt;
=== [http://angband.org/~erasmus/df/teleport22.zip Teleport] ===&lt;br /&gt;
Teleport dwarves and other creatures. Version 2.2 is independent of the DF version. (33c)&lt;br /&gt;
&lt;br /&gt;
Caveat: The teleport utility does not correctly set the occupancy flag for map squares.  As a results, dwarves will permanently crawl through the square that you teleported them out of.  In addition, you cannot build structures in those squares.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
These utilities were never designed with Dwarf Fortress in mind, but have been adapted to its use.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Jackard/Accent_Removal|Accent Removal]] ===&lt;br /&gt;
Certain tilesets leave a bunch of funky icons in the names of your dwarves! Replacing accented letters with normal ones in the raws fixes this problem.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.autohotkey.com/ AutoHotKey] ===&lt;br /&gt;
AHK lets you define global hotkeys to send a sequence of keystrokes. For example, you can have {{key|alt}}+{{key|w}} replace {{key|b}}-{{key|C}}-{{key|w}}-{{key|Enter}}-{{key|Enter}} to make wall building much easier.  See [[Macros and Keymaps]] for a how-to and some example scripts. See [[:Category:ahk scripts]] for a list of user submitted scripts.&lt;br /&gt;
&lt;br /&gt;
=== [http://winmerge.org/ Winmerge] ===&lt;br /&gt;
This utility allows you to compare folders or files. It highlights anything that does not fit in with the other file, so that you can see if you want to merge them into one file or not..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Outdated Utilities ==&lt;br /&gt;
These programs are for previous versions of Dwarf Fortress, and have been left untouched for some time.&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=108 DFWall] ===&lt;br /&gt;
An utility for automation of mass constructions. Features three modes:&lt;br /&gt;
&lt;br /&gt;
1. Rectangle rewalling - quickly build a rectangle of walls/floors using:&lt;br /&gt;
a) the same saved material every time ([http://mkv25.net/dfma/movie-495-dfwalldemo DEMO])&lt;br /&gt;
b) any material with at least 1/10/99 units&lt;br /&gt;
&lt;br /&gt;
2. Quick reselect (for ANY single unit construction) - save that green glass box and never again have to look for it between all the bags!&lt;br /&gt;
&lt;br /&gt;
3. Pattern construction - make a pattern file and have stuff constructed according to it ([http://mkv25.net/dfma/movie-520-dfwalldemo2 DEMO]).&lt;br /&gt;
&lt;br /&gt;
For more details look here: [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001847 Thread]&lt;br /&gt;
&lt;br /&gt;
=== [http://code.google.com/p/dwarvis/ Dwarvis/MapExtract] ===&lt;br /&gt;
This project is meant as a 3rd party utility for the cult-game dwarf fortress. Its purpose is to eventually provide 3-dimensional visualization of static snapshots of the ingame world of a given fortress.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=latitudes.zip Latitudes] ===&lt;br /&gt;
Latitudes is a utility that, when on the embark map screen, shows the X/Y coordinates of the current region.   Until Toady adds [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=5&amp;amp;t=002191 proper support], this will do the trick.  Works in .32a through at least .33g.  Technical notes: uses memory injection, so it may be flagged as a suspicious file by anti-virus programs.&lt;br /&gt;
&lt;br /&gt;
=== [http://angband.org/~erasmus/df/lavasquare.exe Lavasquare] ===&lt;br /&gt;
Another quick hack to make a 7/7 unit of lava on the currently selected square.  Ignore the random text it spams, as it was quickly adapted from a map query tool, and I didn't bother removing the print statements. Only works with version 33e. To hack this executable for a later version of dwarf fortress see the [[Talk:Utilities#Lavasquare|talk page]].&lt;br /&gt;
&lt;br /&gt;
33g version plus autohotkey script: http://www.sendspace.com/file/xsl6gs&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=1447.0 StartProfile] ===&lt;br /&gt;
Jifodus wrote a little utility that lets you maintain profiles of your starting dwarves.&lt;br /&gt;
&lt;br /&gt;
Check the thread on the forums for the latest download link. (Aug 01, 2008)&lt;br /&gt;
&lt;br /&gt;
Incidentally, if you try this utility, please report success/failure in [[Talk:Utilities#StartProfile|the utilities talk page]].&lt;br /&gt;
&lt;br /&gt;
=== [http://angband.org/~erasmus/df/water.exe Water] ===&lt;br /&gt;
Quick hack to refill ponds.  Run this while your fortress is up, and it'll restore any &amp;quot;murky pool&amp;quot; tiles (i.e. the floor of ponds and lakes) to 7/7 water.  If you've tunneled into a pond, it'll still refill but will flow out normally. Only works with version 33e due to its &amp;quot;quick hack&amp;quot; status. Note: If there is lava in a murky pool, it will be raised to depth 7/7.&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=9008</id>
		<title>40d:Utilities</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=9008"/>
		<updated>2008-08-18T18:28:20Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* [http://www.pavlovian.net/foreman/ Dwarf Foreman] */ v0.28.181.40a&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are third party applications developed for Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [http://dffd.wimbli.com/ Dwarf Fortress File Depot] ==&lt;br /&gt;
The Dwarf Fortress File Upload Service - an excellent place to store mods, community games, tilesets and other files. Courtesy of [http://www.dwarffortresswiki.net/index.php/User:Janus Janus]; for files related to Dwarf Fortress only.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Movies, Screenshots, Map Files ==&lt;br /&gt;
=== DF Map Compressor / DF Map Archive ===&lt;br /&gt;
*[http://shadowlord13.googlepages.com/dfmap-index.html SL's DF Map Compressor - Website]&lt;br /&gt;
*[http://mkv25.net/dfma/ Dwarf Fortress Map Archive]&lt;br /&gt;
&lt;br /&gt;
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 that features an online viewer (written in Flash).&lt;br /&gt;
&lt;br /&gt;
The map compressor was created by Shadowlord in May 2007. Extract from the website :&lt;br /&gt;
:&amp;quot;The '''DF Map Compressor''' is a program I made to encode Dwarf Fortress fortress or world map images into a much smaller format than is possible with normal image formats. Here's a quick summary of how it works: It determines the size of your tiles from your DF font file (or asks you), splits the map up into tiles, identifies duplicate tiles, writes out every unique tile image, and then writes out a list of ID#s for each tile position which points to the tile image for that tile. What it outputs is piped through the LZMA compressor (the one used in 7-zip), to compress it further. The .df-map file which it writes out is usually less than 100 KB in size. (By comparison, a PNG of the same map can exceed 2 megabytes, depending on how well you compress it, whether you change the color depth, and whether you are using a graphical tileset or detailed font).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Read more about the [[User:Markavian/DF_Map_Archive|DF Map Archive]] on Markavian's User page.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001450 3Dwarf Visualizer] ===&lt;br /&gt;
This is NOT realtime, that is still a long, long way off. What this does is read the map out of your computer's memory when DF is running and save it to a file it can read. It can then open that file and show you your fort in glorious 3d. Still in beta, obviously.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.geocities.com/jifodus/CMVPlayer.zip CMVPlayer] === &lt;br /&gt;
First released by Jifodus in April 2007. This application enables playback of the DF movies (.cmv) without starting DF. It also provides some more functionalities, such as :&lt;br /&gt;
* Rewind&lt;br /&gt;
* Pause&lt;br /&gt;
* Play frame per frame&lt;br /&gt;
&lt;br /&gt;
To use, simply unzip the file, and drop and drag the movie on CMVPlayer.exe.&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=389 DwarfHeightmap] ===&lt;br /&gt;
A utility that imports 24bit greyscale bitmaps into world_gen.txt for use in DF's map generator.&lt;br /&gt;
&lt;br /&gt;
=== Terrain Visualizer ===&lt;br /&gt;
View worldmaps in 3D! This utilizes version 0.28.181.39d's built in Legends Mode map exporter and a generic HeightMap terrain visualizer.  Nothing super fancy, but neat to look at.&lt;br /&gt;
Get the [http://www.alpix.com/3d/TerrainViewer/ 3D Terrain Viewer] here, follow the instructions in the [http://www.bay12games.com/forum/index.php?topic=21468 Bay12Forums Thread] if you need help getting set up.&lt;br /&gt;
&lt;br /&gt;
Or if you want super pretty maps, [http://www.bay12games.com/forum/index.php?topic=21469.0 see this topic], and get [http://www.planetside.co.uk/terragen/download.shtml Terragen]!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Major Utilities==&lt;br /&gt;
=== [[User:Bartavelle/DwarfCompanion|Dwarf Companion]] ===&lt;br /&gt;
Created by [[User:Bartavelle|Bartavelle]], the Dwarf Companion is a graphical helper utility for dwarf fortress that aims to fill the gaps in the user interface. It allows for some nefarious cheating. For example, you can now mark your nobles as butcherable, and change possessed dwarves to fey moods.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.pavlovian.net/foreman/ Dwarf Foreman] ===&lt;br /&gt;
Makes switching jobs on and off for large numbers of dwarves simple. Dwarves are grouped by their profession, or custom profession if they have one. By clicking on the graph you can enable any job for all dwarves with that profession. Still in alpha for this version of DF, if it doesn't recognize one of the new professions, check the file '''debug.txt''' in the directory you run foreman from.&lt;br /&gt;
&lt;br /&gt;
Though prone to crashing currently, saving and exiting DF, starting foreman and then starting DF again will usually get it working again. Zorba would also appreciate it if you'd email him the crash log located in the Dwarf Foreman directory when this happens (zorba-foremancrash@pavlovian.net).&lt;br /&gt;
&lt;br /&gt;
Dwarf Foreman currently allows you to change the jobs of visiting merchants, outpost liaisons, children, and any other dwarves that aren't normally controllable. It is unsupported but occasionally hilarious, and allows you to finally put those lazy dwarven children to work.&lt;br /&gt;
&lt;br /&gt;
Source code is available.&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.39f''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] for previous versions of DF.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=036276be&lt;br /&gt;
critter_start=01575dec&lt;br /&gt;
dwarfidpos=01382690&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.40a''', update config file as shown below. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=03186cb3&lt;br /&gt;
critter_start=0158222c&lt;br /&gt;
dwarfidpos=0138e698&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[User:Rick/Tweak|Gibbed's Dwarf Fortress Tweak]] ===&lt;br /&gt;
A toolset with many modules for tweaking / editing Dwarf Fortress memory. [[User:Rick/Tweak|Check the full article for more details]].&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=18623.0 Modbase] ===&lt;br /&gt;
Modbase is a great tool made by Sean Mirrsen which allows you to freely swap mods and tweak game settings. For version 0.38c.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Minor Utilities ==&lt;br /&gt;
=== DF Log Parser ===&lt;br /&gt;
A perl script written by Mephansteras that parses through the logs to show what civs owned what sites, what their overall populations were, and what the overall population levels of cave critters were. The output file makes it pretty easy to see how the various races are doing.&lt;br /&gt;
&lt;br /&gt;
You will see:&lt;br /&gt;
Each Civilization, with overall ruler. Each site in that civ, with the local ruler. A summary of every entity in that civ.&lt;br /&gt;
A summary of every civ, by race&lt;br /&gt;
A listing of every Ruin&lt;br /&gt;
A listing of the total populations of cave critters&lt;br /&gt;
A listing of the total populations of civilized creatures&lt;br /&gt;
&lt;br /&gt;
[http://dffd.wimbli.com/file.php?id=299 Raw perl script] - requires perl&lt;br /&gt;
[http://dffd.wimbli.com/file.php?id=311 Executable version] - does not require perl&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=278 DF World Generator] ===&lt;br /&gt;
&lt;br /&gt;
Swiftly written supplement to the command line world generator. Written in Python, so you have to have Python installed to use this. It must be run from the command line and be in the DF Directory to work. Running the program with no parameters will provoke a short help-me dialog which will explain how to run it properly.&lt;br /&gt;
Enjoy!&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001843 Dtil] ===&lt;br /&gt;
Dtil is a general purpose tool host that supplies a dynamically generated SDK for plugin authors.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=21351.0 Embark Anywhere] ===&lt;br /&gt;
Code based on 0x517A5D's Regional Prospector (above), allows you to embark ANYWHERE, how well that works depends on where you decide to go.  Pure water areas are a suggested no as you can't do anything.&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=443 Enable Magma Buildings] ===&lt;br /&gt;
You need this utility in the case that you used the reveal utility, and you had not yet discovered any subsurface magma. (If the hide utility is ever updated, you could also hide a few magma tiles and then dig them out.  That worked in the old version.) Because there is no actual flag that controls whether magma has been seen (the game searches a list, probably a list of notable events), I had to patch the game's code.  This means you need to run the utility every time you start dwarfort.exe.&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent. It is expected to work with future releases of Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.geocities.com/jifodus/justdigitout.zip Just dig it out!] ===&lt;br /&gt;
A utility by Jifodus. Disables warning messages about damp stone and hot stone. [http://www.bay12games.com/forum/index.php?topic=21892.0 Thread]&lt;br /&gt;
&lt;br /&gt;
=== [http://www.geocities.com/jifodus/nanofortress.zip Nano Fortress] ===&lt;br /&gt;
A utility that will allow embarks to 1x1 locations.&lt;br /&gt;
&lt;br /&gt;
=== [http://angband.org/~erasmus/df/teleport22.zip teleport22.zip Teleport] ===&lt;br /&gt;
Teleport dwarves and other creatures. Version 2.2 is independent of the DF version. (33c)&lt;br /&gt;
&lt;br /&gt;
Caveat: The teleport utility does not correctly set the occupancy flag for map squares.  As a results, dwarves will permanently crawl through the square that you teleported them out of.  In addition, you cannot build structures in those squares.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
These utilities were never designed with Dwarf Fortress in mind, but have been adapted to its use.&lt;br /&gt;
&lt;br /&gt;
=== Accent Removal ===&lt;br /&gt;
[[Image:Rj-unitlist.png|thumb|right|Replacing accented letters with normal ones in the raws fixes this problem.]]&lt;br /&gt;
You can remove accents from your texts - this even works on existing worlds.&lt;br /&gt;
&lt;br /&gt;
1. Download [http://www.inforapid.de/html/searchreplace.htm Inforapid Search and Replace.]&amp;lt;br&amp;gt;&lt;br /&gt;
2. Download [http://myfreefilehosting.com/f/59b18a517f_0.1MB this text file.]&amp;lt;br&amp;gt;&lt;br /&gt;
3. Find the following files in DF\raw\objects:&amp;lt;br&amp;gt;&lt;br /&gt;
*language_DWARF.txt&lt;br /&gt;
*language_ELF.txt&lt;br /&gt;
*language_GOBLIN.txt&lt;br /&gt;
*language_HUMAN.txt&lt;br /&gt;
&lt;br /&gt;
4. Select them all, right-click and choose 'Search with InfoRapid' from the menu.&amp;lt;br&amp;gt;&lt;br /&gt;
5. Click the Replace tab that shows up in the lower half of the window.&amp;lt;br&amp;gt;&lt;br /&gt;
6. Select your text file from before in the Replace With field, make sure Replace is set to 'Whole Search Expression' and click Start.&amp;lt;br&amp;gt;&lt;br /&gt;
7. A prompt will appear asking for confirmation. Check the Replace All button and click Yes.&lt;br /&gt;
&lt;br /&gt;
When the program stops running you are done. Go ahead and close InfoRapid, no need to save search results. &lt;br /&gt;
&lt;br /&gt;
=== [http://www.autohotkey.com/ AutoHotKey] ===&lt;br /&gt;
AHK lets you define global hotkeys to send a sequence of keystrokes. For example, you can have {{key|alt}}+{{key|w}} replace {{key|b}}-{{key|C}}-{{key|w}}-{{key|Enter}}-{{key|Enter}} to make wall building much easier.  See [[Macros and Keymaps]] for a how-to and some example scripts. See [[:Category:ahk scripts]] for a list of user submitted scripts.&lt;br /&gt;
&lt;br /&gt;
=== [http://winmerge.org/ Winmerge] ===&lt;br /&gt;
This utility allows you to compare folders or files. It highlights anything that does not fit in with the other file, so that you can see if you want to merge them into one file or not..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Outdated Utilities ==&lt;br /&gt;
These programs are for previous versions of Dwarf Fortress, and have been left untouched for some time.&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=108 DFWall] ===&lt;br /&gt;
An utility for automation of mass constructions. Features three modes:&lt;br /&gt;
&lt;br /&gt;
1. Rectangle rewalling - quickly build a rectangle of walls/floors using:&lt;br /&gt;
a) the same saved material every time ([http://mkv25.net/dfma/movie-495-dfwalldemo DEMO])&lt;br /&gt;
b) any material with at least 1/10/99 units&lt;br /&gt;
&lt;br /&gt;
2. Quick reselect (for ANY single unit construction) - save that green glass box and never again have to look for it between all the bags!&lt;br /&gt;
&lt;br /&gt;
3. Pattern construction - make a pattern file and have stuff constructed according to it ([http://mkv25.net/dfma/movie-520-dfwalldemo2 DEMO]).&lt;br /&gt;
&lt;br /&gt;
For more details look here: [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001847 Thread]&lt;br /&gt;
&lt;br /&gt;
=== [http://code.google.com/p/dwarvis/ Dwarvis / MapExtract] ===&lt;br /&gt;
This project is meant as a 3rd party utility for the cult-game dwarf fortress. Its purpose is to eventually provide 3-dimensional visualization of static snapshots of the ingame world of a given fortress.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=latitudes.zip Latitudes] ===&lt;br /&gt;
Latitudes is a utility that, when on the embark map screen, shows the X/Y coordinates of the current region.   Until Toady adds [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=5&amp;amp;t=002191 proper support], this will do the trick.  Works in .32a through at least .33g.  Technical notes: uses memory injection, so it may be flagged as a suspicious file by anti-virus programs.&lt;br /&gt;
&lt;br /&gt;
=== [http://angband.org/~erasmus/df/lavasquare.exe Lavasquare] ===&lt;br /&gt;
Another quick hack to make a 7/7 unit of lava on the currently selected square.  Ignore the random text it spams, as it was quickly adapted from a map query tool, and I didn't bother removing the print statements. Only works with version 33e. To hack this executable for a later version of dwarf fortress see the [[Talk:Utilities#Lavasquare|talk page]].&lt;br /&gt;
&lt;br /&gt;
33g version plus autohotkey script: http://www.sendspace.com/file/xsl6gs&lt;br /&gt;
&lt;br /&gt;
=== Regional Prospector ===&lt;br /&gt;
For Dwarf Fortress 28.181.39a and newer: [http://www.bay12games.com/forum/index.php?topic=20643.0]&lt;br /&gt;
For older versions: [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=regional_prospector.zip regional_prospector.zip]''(Careful, download link contains images of pornography as ads.)''&lt;br /&gt;
&lt;br /&gt;
Dwarf Fortress 0.28.181.39d and newer implement some of the functionality of Regional Prospector.&lt;br /&gt;
&lt;br /&gt;
A simple but very helpful utility that shows hidden map features at embark time.  &lt;br /&gt;
If you're trying to find the perfect start location by repeatedly embarking and &lt;br /&gt;
revealing, give this one a shot!&lt;br /&gt;
&lt;br /&gt;
Map key:&lt;br /&gt;
:{{Raw Tile|≈|#F00|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;volcano; magma reaches the surface&lt;br /&gt;
:{{Raw Tile|~|#F00|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground magma pipe or magma pool&lt;br /&gt;
:{{Raw Tile|≈|#00F|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground river&lt;br /&gt;
:{{Raw Tile|~|#00F|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground pool&lt;br /&gt;
:{{Raw Tile|#|#000|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;chasm&lt;br /&gt;
:{{Raw Tile|£|#0FF|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;adamantine and pits&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent.  &lt;br /&gt;
It is known to work with all releases from 32a to 33g.  &lt;br /&gt;
It is expected to work with future releases of Dwarf Fortress, &lt;br /&gt;
as long as the embark code doesn't change too much.&lt;br /&gt;
&lt;br /&gt;
Discussion and kudos can be left [[User_talk:0x517A5D#Seekret_Projekt|here]].&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=1447.0 StartProfile] ===&lt;br /&gt;
Jifodus wrote a little utility that lets you maintain profiles of your starting dwarves.&lt;br /&gt;
&lt;br /&gt;
Check the thread on the forums for the latest download link. (Aug 01, 2008)&lt;br /&gt;
&lt;br /&gt;
Incidentally, if you try this utility, please report success/failure in [[Talk:Utilities#StartProfile|the utilities talk page]].&lt;br /&gt;
&lt;br /&gt;
=== [http://angband.org/~erasmus/df/water.exe Water] ===&lt;br /&gt;
Quick hack to refill ponds.  Run this while your fortress is up, and it'll restore any &amp;quot;murky pool&amp;quot; tiles (i.e. the floor of ponds and lakes) to 7/7 water.  If you've tunneled into a pond, it'll still refill but will flow out normally. Only works with version 33e due to its &amp;quot;quick hack&amp;quot; status. Note: If there is lava in a murky pool, it will be raised to depth 7/7.&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d_Talk:Utilities&amp;diff=11833</id>
		<title>40d Talk:Utilities</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d_Talk:Utilities&amp;diff=11833"/>
		<updated>2008-08-15T02:22:38Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* Dwarf Foreman */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== DF File Depot ==&lt;br /&gt;
Would be great to get the majority of these uploaded to the [http://dffd.wimbli.com/ Dwarf Fortress File Depot (DFFD)].  I'm having trouble with some of the currently linked hosting sites.  I've just gotten Regional Prospector, so I'll see about getting that one up.  Thanks guys! --[[User:SlMagnvox|SlMagnvox]] 14:33, 25 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== External Utilities ==&lt;br /&gt;
I thinking any Utilities that not made specifically for Dwarf fortress should put together at bottom which I have done. My question should we mark area with header say External utilities? [[User:Omagaalpha|Omagaalpha]] 08:22, 14 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== AutoHotKey ==&lt;br /&gt;
&lt;br /&gt;
Should autohotkey be added as a utility tool for dwarf fortress? I know a few forum users have used it to do repetitive tasks like room designations, maybe it could have its own page and a few dwarf fortress specific script?--[[User:Thehunterunseen|Thehunterunseen]] 20:43, 31 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
:Ive been looking for a macro program that works within dwarf fortress and thats free. Havent found a good program thats the combination of both. What do you use? --[[User:Mizipzor|Mizipzor]] 20:51, 31 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::autohotkey &amp;lt;sup&amp;gt;[http://www.autohotkey.com/]&amp;lt;/sup&amp;gt; is a program like that --[[User:Thehunterunseen|Thehunterunseen]] 21:13, 31 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
:::That was the program I used. Wierd. For me, when I inputed &amp;quot;6&amp;quot; for moving one step right... it moved like 8 steps right or something. Couldnt figure out why. Any ideas? --[[User:Mizipzor|Mizipzor]] 22:57, 31 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::::I know that {{k|shift}} + {{k|→}} = 10&amp;amp;times;{{k|→}}. Could that have something to do with it? --[[User:Savok|Savok]] 23:17, 31 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
:::::I use &amp;quot;Send {LeftArrow}{Enter}{Enter}&amp;quot;, as a test to simply have the wall/floor im building to be placed one step to the right instead of where the cursor actually is. As previously said, however, it didnt work. --[[User:Mizipzor|Mizipzor]] 07:05, 1 November 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::::::That might be because the {LeftArrow} part isn't right. It's supposed to be just {Left}. I've downloaded the program myself and am not having any issues with it in DF.. I'm running XP, and use it in fullscreen mode, if that helps any. --[[User:Hesitris|Hesitris]] 18:53, 12 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: So could some people who actually know some autohotkey scripts make an article and  submit some? --[[User:Thehunterunseen|Thehunterunseen]] 13:37, 6 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::I use it and more or less know how it works but as soon as I use it inside DF it bugs out completely and I have no idea why. --[[User:Mizipzor|Mizipzor]] 17:56, 6 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:::I have a number of scripts that I use, but they randomly bug out for no apparent reason.  They will work fine in notepad (ie, output everything exactly as I expect), but be only partially executing and then failing in DF.  Again, sometimes they work fine.  I could post them and how they work if someone wants.  FYI, I am on Vista and that may be an issue.  --[[User:Geofferic|Geofferic]] 02:39, 19 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::::I'm not sure how CPU cycles and the buffer interact in Vista.  Is your FPS low?  Perhaps a key is dropping out of the buffer but DF isn't recognizing it due to lag?  Or lag might be making the buffer overflow.  It might depend on how autohotkey sends keystrokes, I don't know if it simulates a key press or directly input ssomething into the buffer.  You could try a small sleep(50), or the equivalent, in autohotkey and see if that helps.  Also, make sure it isn't losing focus for some reason due to background programs (although that would be strange) -Gotthard&lt;br /&gt;
&lt;br /&gt;
:::::I think it's a lag issue in DF.  I've yet to figure out exactly what is causing lag for me.  I think it's pathing with too many dwarfs and too complex of a hallway system over too many Z levels.  Also, I think playing very large maps causes me to lag, as well, but I think that's related to the pathing problem and all those other creatures trying to path.  It definitely got better in this version, tho.  I will hold off on trying to say definitively what's up with AuthoHotkey until after the next patch.  --[[User:Geofferic|Geofferic]] 03:50, 21 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::::::AHK does tend to do wierd stuff in DF, but most of it is predictable. A lot of wierd errors that make no sense can be fixed by explicitely telling the script to focus on the Dwarf Fortress window, as well as generous Sleep statements. I found while rewalling a 30x30 outline, sleep 100 worked fine for the first two sides but posted about half of the second two. Sleep 150 placed the second two somewhat erraticly. Sleep 200 got the second two just fine. --[[User:Knivesu|Knivesu]] 10:22, 23 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Dwarf Foreman ==&lt;br /&gt;
&lt;br /&gt;
Foreman is looking at the wrong address for the units... which is not a good sign, since I've seen it in the address it seems to be looking at.  I've also seen it bounce around.  Definitely not a good sign if the list location isn't static.  Or we're just looking at the wrong one completely. --[[User:AzureLightning|AzureLightning]]&lt;br /&gt;
&lt;br /&gt;
:It's pretty easy to find the addresses for this for new versions. Running the program in the directory with the new version gives you the check= value, and the others are moderately easy to suss. Also, I don't know exactly how it works or why it works, but from C-&amp;gt;D-&amp;gt;E start and pos were incremented 0x1000 each version, so laziness dictates trying that in future. [[User:Qalnor|Qalnor]] 16:37, 9 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
Is there any info on what the offsets (dwarfidpos, critter_start, profession_start) actually refer to?  I'm capable enough with finding memory addresses, but exactly what profession_start is eludes me.  Even dwarfidpos is a little unclear.&lt;br /&gt;
&lt;br /&gt;
 dwarfidpos = Address of Dwarf Race ID&lt;br /&gt;
 critter_start = Start of Main Creature Vector&lt;br /&gt;
 profession_start = Offset into Main Creature Vector the array of jobs.&lt;br /&gt;
[[User:Jifodus|Jifodus]] 00:41, 7 March 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
Does anyone know the values for v0.28.181.39f? --[[User:Aristoi|Aristoi]] 18:18, 10 August 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
:Still no word on 39f? Perhaps we can get a little write-up on how to discover the appropriate values added to the foreman homepage. That way, when a new version of DF is released, any number of people could search for and contribute the new values, instead of depending on the few people who already know the process. --[[SWSaunders|SWSaunders]] 09:10, 12 August 2008 (ADT)&lt;br /&gt;
&lt;br /&gt;
::Thanks Jerethi50, beat me to it.  When I went to enter the values you already had!  SWSaunders:  What I did (having never done this before) was to download a memory viewer (HxD hexeditor) and then look at the old version vs the new version in memory.  In the old version, I found the character at the dwarfidpos address and searched forward till I found that in the new file.  For critter_start I went to the old process and found it there, then searched forward in the new process till I found the pattern match (it wasn't too far).  The data was different but the pattern was the same.  The profession offset hasn't changed so I left it as is. --[[User:Aristoi|Aristoi]] 11:13, 12 August 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
:::That's exactly how I do it, except I have written a program that does it for me, since it saves time. I also tend to forget to post Dwarf Foreman's new config during updating. Usually I remember to update the tables at http://www.geocities.com/jifodus/tables/ini_jifodus/ and that has all the information you'd need (critter_start=[creature_data].base; profession_start=[creature_data].jobs); however, it seems I didn't update it this last go around. If you wander around my website, you should be able to find enough information posted there (provided you can understand it all) to learn how to update foreman for yourself. --[[User:Jifodus|Jifodus]] 22:22, 14 August 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Yourfilehost ==&lt;br /&gt;
&lt;br /&gt;
Yourfilehost.com has kind of a lousy reputation, and I can confirm it's blocked on certain college networks.  Could someone upload these utilities to a more reputable host? -- Mzbundifund 15:55, 04 November 2007 (EDT)&lt;br /&gt;
: Such as? --[[User:Rick|Rick]] 18:03, 4 November 2007 (EST)&lt;br /&gt;
:: Megaupload, rapidshare, filefactory, you pick one --[[User:Digger|Digger]] 17:40, 24 February 2008 (EST)&lt;br /&gt;
:::Uh, you know there is a special site for uploading DF files now, right? It's linked on the main page. Screw those other guys. --[[User:Jackard|Jackard]] 17:53, 24 February 2008 (EST)&lt;br /&gt;
::::I say we scrap this section, then. --[[User:Digger|Digger]] 18:28, 24 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
==heal.exe==&lt;br /&gt;
&lt;br /&gt;
heal.exe does not regrow missing limbs.  However, &amp;quot;heal -hurt&amp;quot; on the command line brings missing limbs to red status, and &amp;quot;heal&amp;quot; thereafter restores the being to full health.&lt;br /&gt;
&lt;br /&gt;
I propose a -regrow parameter so we don't have to do this workaround, since if it's possible to bring missing limbs from dark grey to red status it's also possible to grow them back.&lt;br /&gt;
&lt;br /&gt;
Also, when using the -hurt parameter, it still says &amp;quot;059E7210 had 31 body parts '''healed'''&amp;quot;, when it should probably say &amp;quot;wounded&amp;quot;. --[[User:JT|JT]] 17:58, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Hmm, if it does heal missing limbs then I just need to change my logic slightly for healing. --[[User:Rick|Rick]] 19:01, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
==reveal.exe==&lt;br /&gt;
&lt;br /&gt;
From what I've tested, reveal for 33a does not work for 33b. --[[User:Sparksol|Sparksol]] 13:39, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:Correct.  It uses hardcoded offsets, which will change every time new code is added to DF.&lt;br /&gt;
:I have a version hacked for .33b, which I will not distribute out of respect for Rick.&lt;br /&gt;
:However, if you are skilled with a hex editor, here's what to do: change the first 5 occurances of the pattern 85 45 01 to the pattern 95 45 01.  (The 6th occurance of the pattern is a coincidental match and should not be changed.)  Then change the pattern 8C 33 89 00 to the pattern 8C 43 89 00.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 02:31, 19 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:Actually, as it happens, it looks like Rick has produced updated versions of his tools for .33b.  They were built on the 16th.  However he hasn't linked to them.  I don't know why.  The URL they're at requests that no links be made to them, so I'm not going to tell you. Sorry, you'll just have to do the hexedit.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 02:45, 19 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:I just havn't mirrored them yet, that's all. --[[User:Rick|Rick]] 03:10, 19 November 2007 (EST)&lt;br /&gt;
::Hey, I'm curious why the file sizes ballooned.  Reveal went from 52k to 101k, a doubling in size.  Heal grew even more.  Maybe you didn't strip debugging info?&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 15:42, 19 November 2007 (EST)&lt;br /&gt;
:::Usage of std libraries mostly. I made a library for working with DF so I wouldn't have to keep duplicating code through projects, and when writing it I figured I might as well make it more friendly for me to code in, hence usage of std:: stuff. --[[User:Rick|Rick]] 19:00, 19 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:Whenever I try to open reveal.exe, the window will open up for a millisecond and then immedietely close. Is this a problem with the program or my windows? I am assuming its windows since everyone else seems to be able to use it. Has anyone else had this problem?--[[User:Varsashi|Varsashi]] 17:59, 26 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::It hasn't been updated to work with 33c, and doesn't. Hopefully it will be updated soon. If you're using 33b, it should open and close quickly but reveal all allocated squares. To allocate all squares for revealing, I'll repeat the advice I've seen elsewhere: go to the lowest level and designate the entire level for digging, then remove the dig designation and run the reveal utility. --[[User:Janus|Janus]] 20:08, 26 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
So how do people feel about deleting this section, and probably the heal.exe section above too?&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 00:56, 23 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
Does anybody know which version works with 38b? And can you also give me the link? --[[User:CrazyMcfobo|CrazyMcfobo]] 16:51, 15 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
I went back to look for reveal.exe for the older version of DF I play (I've been sticking to the last good version where we still had the original mountain, 23.13.23a), but the file seems to have been corrupted at that place it's uploaded to. Now when I try to use it it says it's not a valid win32 application, and it's a 0-byte file after unzipping. Is there a good version up somewhere else still? --[[User:KittenyKat|KittenyKat]] 11:52, 16 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
==How to use warp.exe?==&lt;br /&gt;
How do you use warp.exe? There's no information on how to use these on the page.--[[User:Demosthenes|Demosthenes]] 02:10, 21 November 2007 (EST)&lt;br /&gt;
: &amp;lt;code&amp;gt;warp.exe&amp;lt;/code&amp;gt; by itself will list your current cursor position. After you have the position you want to warp a creature to, you do &amp;lt;code&amp;gt;warp.exe &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt;&amp;lt;/code&amp;gt; as arguments, and it will warp the selected creature (selected with 'V'iew) to that destination, if it can. --[[User:Rick|Rick]] 18:10, 21 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
==StartProfile==&lt;br /&gt;
Perhaps, I don't understand how to use this correctly.  I'm using 33e, and the StartProfile linked in the Utils section.  I'm supposed to use this util at the Prepare for the Journey screen, correct?  I tried testing the export function with the first dwarf, with no skills assigned.  startprofile.exe -x 0 test.txt What I got back was:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Mining: 1348403210&amp;lt;br/&amp;gt;&lt;br /&gt;
Wood Cutter: 1565676876&amp;lt;br/&amp;gt;&lt;br /&gt;
Carpenter: 3801123&amp;lt;br/&amp;gt;&lt;br /&gt;
Engraving: 34079120&amp;lt;br/&amp;gt;&lt;br /&gt;
Record Keepe: 2293770&amp;lt;br/&amp;gt;&lt;br /&gt;
Liar: 34341293&amp;lt;br/&amp;gt;&lt;br /&gt;
Intimidator: 16843009&amp;lt;br/&amp;gt;&lt;br /&gt;
Conversationalist: 16843009&amp;lt;br/&amp;gt;&lt;br /&gt;
Comedian: 16843009&amp;lt;br/&amp;gt;&lt;br /&gt;
Flatterer: 16843009&amp;lt;br/&amp;gt;&lt;br /&gt;
Consoler: 16843009&amp;lt;br/&amp;gt;&lt;br /&gt;
Pacifier: 16843009&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
When I try to set a dwarf's skills using StartProfile I end up with huge amounts of either negative or positive points available, with no changes being made to the dwarf's skills.  &amp;lt;br/ &amp;gt;--[[User:Stu72|Stu72]] 09:23, 11 December 2007 (EST)&lt;br /&gt;
: The offset for the skills must have changed. I guess I should've actually checked that, and not have assumed that just because the other values were correct, the skills were still correct. I'll check it out and post the appropriate fix. -- [[User:Jifodus|Jifodus]]&lt;br /&gt;
: The appropriate fix is redownloading it, when I hex edited the exe I messed it up field. -- [[User:Jifodus|Jifodus]]&lt;br /&gt;
:: Thanks, works beautifully.  It's a terrific time saver. --[[User:Stu72|Stu72]] 15:30, 14 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
How does one use this? The readme isn't very helpful. --[[User:Jackard|Jackard]] 01:08, 27 November 2007 (EST)&lt;br /&gt;
: Not knowing exactly what you're having trouble understanding, I'll give examples (the one thing I forgot to add in the readme).&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;startprofile 0 Miner.txt&amp;lt;/code&amp;gt; - This will set the skill profile of the first Dwarf, in the list of units, to the skills in Miner.txt&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;startprofile 1 Jeweler.txt&amp;lt;/code&amp;gt; - This will set the skills on the second Dwarf, in the list of units, to the skills in Jeweler.txt&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;startprofile -x 3 Customprofile.txt&amp;lt;/code&amp;gt; - This will save the set of skills on the fourth Dwarf to Customprofile.txt&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;startprofile -v0.27.169.33b 0 Miner.txt&amp;lt;/code&amp;gt; Same as the first example, except it'll work on the previous version of Dwarf Fortress.&amp;lt;br /&amp;gt;-- [[User:Jifodus|Jifodus]] 03:28, 27 November 2007 (EST)&lt;br /&gt;
::Thanks, I'll try that out. --[[User:Jackard|Jackard]] 21:21, 27 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
If you wish to edit the executable, you can modify it so that it works with 0.27.169.33d by making the following changes with a hex editor:&lt;br /&gt;
 Offset   Overwrite With&lt;br /&gt;
 ----------------------------&lt;br /&gt;
  2A530 | 98 16 25 01 04 00 00 00 DC 00 00 00 F0 08 00 00 70 00 00 00 C0 01 00 00&lt;br /&gt;
  2A6A6 | 30 2E 32 37 2E 31 36 39 2E 33 33 64&lt;br /&gt;
  2A77C | 02&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 20:14, 3 December 2007 (EST)&lt;br /&gt;
:CBW; PUSH SS; AND EAX, 00000401h; ADD AH, BL; ADD [EAX], AL; ...  &lt;br /&gt;
:That makes no sense.  Must be missing something off the head end.&lt;br /&gt;
:3 unknown bytes; ADD [EAX+EAX], EAX; ...  No better.  Worse, even.&lt;br /&gt;
:4 unknown bytes; ADD AL, 00h; ADD [EAX], AL; ...  Unh uh.  Don't think so.&lt;br /&gt;
:8 unknown bytes; ESC-4(00); ...  Floating point?  Really?  No way.&lt;br /&gt;
:12 unknown bytes; LOCK OR [EAX], AL ...  Insane.&lt;br /&gt;
:I don't know what those bytes are, but they're not code.&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 23:23, 3 December 2007 (EST)&lt;br /&gt;
::You're right, they're data. First Row is (left to right, 5 dwords): [[User:Jifodus/Memory research#Addresses_3|Start Address]], Offset from address at start address, Dwarf List begin offset, Starting points offset, Skills offset, remaining skill points points. Second row is a character string (15 chars max). Third row is a dword indicating which data index is default.&lt;br /&gt;
:: &amp;lt;tt&amp;gt;//Start Addr, O, Lizt, Ponts, Skll, Remain&amp;lt;/tt&amp;gt; &lt;br /&gt;
:: &amp;lt;tt&amp;gt;{ 0x01251698, 4, 0xDC, 0x8F0, 0x70, 0x1C0 }&amp;lt;/tt&amp;gt; - The read/write locations and whatnot&lt;br /&gt;
:: &amp;lt;tt&amp;gt;&amp;quot;0.27.169.33d&amp;quot;&amp;lt;/tt&amp;gt; - Used for string comparison (-v flag)&lt;br /&gt;
:: &amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt; - The default version to use is the third in the list (what the above just added).&lt;br /&gt;
:: Configuration data can be found between 'DATA_SET' and 'TES_ATAD'. The list has enough space for 16 versions (3 are now in use). I'll just say I didn't want to have to recompile it for all the versions -- [[User:Jifodus|Jifodus]] 21:52, 6 December 2007 (EST)&lt;br /&gt;
If you wish to edit the executable, you can modify it so that it works with 0.27.169.33e by making the following changes with a hex editor:&lt;br /&gt;
 Offset   Overwrite With&lt;br /&gt;
 ----------------------------&lt;br /&gt;
  2A550 |&amp;quot;98 26 25 01&amp;quot;04 00 00 00 DC 00 00 00 F0 08 00 00 70 00 00 00 C0 01 00 00&lt;br /&gt;
  2A6B5 | 30 2E 32 37 2E 31 36 39 2E 33 33&amp;quot;65&amp;quot;&lt;br /&gt;
  2A77C |&amp;quot;03&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Patching Lavasquare ==&lt;br /&gt;
&lt;br /&gt;
Due to someone being interested in running lavasquare on version 33g, I determined how to patch the exe to work with later versions. With a hex editor, open lavasquare.exe and find and replace with appropriate values (replace the X's with the values underneath for the version you want). I only tested it for 33f, but I'm assuming that the values for 33g are correct (since I got them off the wiki).&lt;br /&gt;
&lt;br /&gt;
 (CursorX)&lt;br /&gt;
 FIND:		EE 57 68 88 E2 8F 00 FF 35&lt;br /&gt;
 REPLACE:	EE 57 68 XX XX XX 0X FF 35&lt;br /&gt;
 33f		         88 F2 8F  0&lt;br /&gt;
 33g		         88 62 90  0&lt;br /&gt;
 38a		         88 F2 92  0&lt;br /&gt;
&lt;br /&gt;
 (CursorY)&lt;br /&gt;
 FIND:		EC 57 68 8C E2 8F 00 FF 35&lt;br /&gt;
 REPLACE:	EC 57 68 XX XX XX 0X FF 35&lt;br /&gt;
 33f		         8C F2 8F  0&lt;br /&gt;
 33g		         8C 62 90  0&lt;br /&gt;
 38a		         8C F2 92  0&lt;br /&gt;
&lt;br /&gt;
 (CursorZ)&lt;br /&gt;
 FIND:		E6 57 68 90 E2 8F 00 FF 35&lt;br /&gt;
 REPLACE:	E6 57 68 XX XX XX 0X FF 35&lt;br /&gt;
 33f		         90 F2 8F  0&lt;br /&gt;
 33g		         90 62 90  0&lt;br /&gt;
 38a		         90 F2 92  0&lt;br /&gt;
&lt;br /&gt;
 (MapBlocks)&lt;br /&gt;
 FIND:		FC 57 68 60 15 46 01 FF 35&lt;br /&gt;
 REPLACE:	FC 57 68 XX XX XX 0X FF 35&lt;br /&gt;
 33f		         68 25 46  1&lt;br /&gt;
 33g		         80 96 46  1&lt;br /&gt;
 38a		         CC 29 49  1&lt;br /&gt;
&lt;br /&gt;
 (To exit immediately after writing, since I don't want to&lt;br /&gt;
 verify the other offsets)&lt;br /&gt;
 FIND:		FF 35 5C 80 40 00 E8 88 61 00 00 0F BF 7D&lt;br /&gt;
 		F8 57 0F BF 7D FA 57 8B 7D FC 81 C7 60 06&lt;br /&gt;
 		00 00&lt;br /&gt;
 REPLACE:	FF 35 5C 80 40 00 E8 88 61 00 00 6A FF FF&lt;br /&gt;
 		25 6C B1 40 00 CC CC CC CC CC CC CC CC CC&lt;br /&gt;
 		CC CC&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 02:05, 25 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
To modify the above for the same behavior as water:&lt;br /&gt;
 FIND:		07 00 20 00&lt;br /&gt;
 REPLACE:	07 00 00 00&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 17:09, 29 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
Addresses for 0.27.173.38a:&lt;br /&gt;
 CursorX 0x0092F288&lt;br /&gt;
 CursorY 0x0092F28C&lt;br /&gt;
 CursorZ 0x0092F290&lt;br /&gt;
 MapBlocks 0x014929CC&lt;br /&gt;
Offsets are still the same.&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 19:14, 7 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
Addresses for 0.27.173.38c: (These worked for me, but I'm not an expert on this stuff.)&lt;br /&gt;
  CursorX 0x0094228C&lt;br /&gt;
  CursorY 0x00942290&lt;br /&gt;
  CursorZ 0x00942294&lt;br /&gt;
  MapBlocks 0x014A60A4&lt;br /&gt;
--[[User:Dorundain|Dorundain]] 22:21, 6 March 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
Where is the Mapblocks found in the hex code? 0x01461560.MAP_DATA_MEM is the closest thing I can find.&lt;br /&gt;
&lt;br /&gt;
--[[User:Silveron|Silveron]] 08:57, 22 March 2008 (EDT)         &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Lavasquare Popup? ==&lt;br /&gt;
&lt;br /&gt;
How do I remove the prompt? It is a painful thing for large projects. The macro below helps some, though. --[[User:Jackard|Jackard]] 08:05, 4 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
 #Persistent&lt;br /&gt;
 SetTimer, CloseLava, 100&lt;br /&gt;
 return&lt;br /&gt;
 &lt;br /&gt;
 CloseLava:&lt;br /&gt;
 WinClose, lcc runtime&lt;br /&gt;
 return&lt;br /&gt;
 &lt;br /&gt;
 del::&lt;br /&gt;
 IfWinActive Dwarf Fortress&lt;br /&gt;
 {&lt;br /&gt;
   send {down}&lt;br /&gt;
   run C:\Program Files\Dwarf Fortress\Utilities\lavasquare 33g.exe&lt;br /&gt;
   return&lt;br /&gt;
 }&lt;br /&gt;
 else&lt;br /&gt;
 {&lt;br /&gt;
   send {del}&lt;br /&gt;
   return&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Lavasquare ==&lt;br /&gt;
&lt;br /&gt;
Why does it seemingly stop working after a while? It runs but summons no magma/lava. --[[User:Spelguru|Spelguru]] 12:28, 18 January 2008 (EST)&lt;br /&gt;
:No idea, never run into the problem though I've used it quite thoroughly. --[[User:Jackard|Jackard]] 17:52, 18 January 2008 (EST)&lt;br /&gt;
:I've run into this once. Restarting DF fixed the problem. --[[User:SquirrelFarmer|SquirrelFarmer]] 09:50, 29 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== Water ==&lt;br /&gt;
&lt;br /&gt;
Could someone make an updated version? Having to slaughter anyone who gets injured just because the rain-filling-ponds doesn't work properly yet is annoying. -Shadow_archamgi, February 27 2008&lt;br /&gt;
&lt;br /&gt;
==Weatherdwarf==&lt;br /&gt;
I can't find the page, but it's a utility that lets you change the temperature of an area and allows for some crazy stuff. Look it up on the forums; I have a community fortress to tend to. --[[User:Penguinofhonor|Penguinofhonor]] 20:18, 3 March 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== Accent Removal ==&lt;br /&gt;
&lt;br /&gt;
I added the accent removal utility here from [[Accent Removal]], since that's about to be deleted. However, none of Wikipedia's show-hide-box stuff works here (I assumed it would...), so it's a big glob of pre-formatted text in there that should be hidden. Could someone do it? [[User:Zardus|Zardus]] 00:51, 15 May 2008 (EDT)&lt;br /&gt;
:[[User:Jackard/Accent_Removal|Accent removal tutorial]] contains detailed instructions on the subject. I think, we could replace the whole thing on utility page with one link. [[User:Nophotoavailable|Nophotoavailable]] 20:58, 1 August 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== DFWall ==&lt;br /&gt;
&lt;br /&gt;
Mostly directed at the author here, but is there any feature that's useful that's not native? --[[User:N9103|Edward]] 00:57, 31 July 2008 (EDT)&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8998</id>
		<title>40d:Utilities</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8998"/>
		<updated>2008-08-01T08:44:44Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* StartProfile */ New update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are third party applications developed for Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
== Movies, Screenshots, Map Files ==&lt;br /&gt;
&lt;br /&gt;
=== DF Map Compressor / DF Map Archive ===&lt;br /&gt;
&lt;br /&gt;
*[http://shadowlord13.googlepages.com/dfmap-index.html SL's DF Map Compressor - Website]&lt;br /&gt;
*[http://mkv25.net/dfma/ Dwarf Fortress Map Archive]&lt;br /&gt;
&lt;br /&gt;
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 that features an online viewer (written in Flash).&lt;br /&gt;
&lt;br /&gt;
The map compressor was created by Shadowlord in May 2007. Extract from the website :&lt;br /&gt;
:&amp;quot;The '''DF Map Compressor''' is a program I made to encode Dwarf Fortress fortress or world map images into a much smaller format than is possible with normal image formats. Here's a quick summary of how it works: It determines the size of your tiles from your DF font file (or asks you), splits the map up into tiles, identifies duplicate tiles, writes out every unique tile image, and then writes out a list of ID#s for each tile position which points to the tile image for that tile. What it outputs is piped through the LZMA compressor (the one used in 7-zip), to compress it further. The .df-map file which it writes out is usually less than 100 KB in size. (By comparison, a PNG of the same map can exceed 2 megabytes, depending on how well you compress it, whether you change the color depth, and whether you are using a graphical tileset or detailed font).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Read more about the [[User:Markavian/DF_Map_Archive|DF Map Archive]] on Markavian's User page.&lt;br /&gt;
&lt;br /&gt;
=== CMVPlayer === &lt;br /&gt;
&lt;br /&gt;
[http://www.geocities.com/jifodus/CMVPlayer.zip Download CMVPlayer.zip] &lt;br /&gt;
&lt;br /&gt;
First released by Jifodus in April 2007. This application enables playback of the DF movies (.cmv) without starting DF. It also provides some more functionalities, such as :&lt;br /&gt;
* Rewind&lt;br /&gt;
* Pause&lt;br /&gt;
* Play frame per frame&lt;br /&gt;
&lt;br /&gt;
To use, simply unzip the file, and drop and drag the movie on CMVPlayer.exe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 3Dwarf Visualizer - a tool to view maps in 3D ===&lt;br /&gt;
*[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001450 Bay12Forums Thread]&lt;br /&gt;
This is NOT realtime, that is still a long, long way off.&lt;br /&gt;
What this does is read the map out of your computer's memory when DF is running and save it to a file it can read. It can then open that file and show you your fort in glorious 3d.&lt;br /&gt;
Still in beta, obviously.&lt;br /&gt;
&lt;br /&gt;
=== Dwarvis / MapExtract ===&lt;br /&gt;
*[http://code.google.com/p/dwarvis/ dwarvis on Google Code]&lt;br /&gt;
This project is meant as a 3rd party utility for the cult-game dwarf fortress. Its purpose is to eventually provide 3-dimensional visualization of static snapshots of the ingame world of a given fortress.&lt;br /&gt;
&lt;br /&gt;
=== Terrain Visualizer - view worldmaps in 3D ===&lt;br /&gt;
This utilizes version 0.28.181.39d's built in Legends Mode map exporter and a generic HeightMap terrain visualizer.  Nothing super fancy, but neat to look at.&lt;br /&gt;
Get the [http://www.alpix.com/3d/TerrainViewer/ 3D Terrain Viewer] here, follow the instructions in the [http://www.bay12games.com/forum/index.php?topic=21468 Bay12Forums Thread] if you need help getting set up.&lt;br /&gt;
&lt;br /&gt;
Or if you want super pretty maps, [http://www.bay12games.com/forum/index.php?topic=21469.0 see this topic], and get [http://www.planetside.co.uk/terragen/download.shtml Terragen]!&lt;br /&gt;
&lt;br /&gt;
=== Dwarf Fortress File Depot ===&lt;br /&gt;
*[http://dffd.wimbli.com/ The Dwarf Fortress File Upload Service], an excellent place to store mods, community games, tilesets and other files. Courtesy of [http://www.dwarffortresswiki.net/index.php/User:Janus Janus]; for files related to Dwarf Fortress only.&lt;br /&gt;
&lt;br /&gt;
== Dwarf Companion ==&lt;br /&gt;
The [[User:Bartavelle/DwarfCompanion|Dwarf Companion]], created by [[User:Bartavelle|Bartavelle]] is a graphical helper utility for dwarf fortress that aims to fill the gaps in the user interface. It allows for some nefarious cheating. For example, you can now mark your nobles as butcherable, and change possessed dwarves to fey moods.&lt;br /&gt;
&lt;br /&gt;
== [[User:Rick|Rick]]'s utilities ==&lt;br /&gt;
Fabulous tools made by the marvelous Rick. All Hail Rick!&lt;br /&gt;
&lt;br /&gt;
=== [[User:Rick/Tweak|Gibbed's Dwarf Fortress Tweak]] ===&lt;br /&gt;
&lt;br /&gt;
A toolset with many modules for tweaking / editing Dwarf Fortress memory. [[User:Rick/Tweak|Check the full article for more details]].&lt;br /&gt;
&lt;br /&gt;
== Dwarf Foreman ==&lt;br /&gt;
[http://www.pavlovian.net/foreman/ Home page]. Makes switching jobs on and off for large numbers of dwarves simple. Dwarves are grouped by their profession, or custom profession if they have one. By clicking on the graph you can enable any job for all dwarves with that profession. Still in alpha for this version of DF, if it doesn't recognize one of the new professions, check the file '''debug.txt''' in the directory you run foreman from.&lt;br /&gt;
&lt;br /&gt;
Though prone to crashing currently, saving and exiting DF, starting foreman and then starting DF again will usually get it working again. Zorba would also appreciate it if you'd email him the crash log located in the Dwarf Foreman directory when this happens (zorba-foremancrash@pavlovian.net).&lt;br /&gt;
&lt;br /&gt;
Dwarf Foreman currently allows you to change the jobs of visiting merchants, outpost liaisons, children, and any other dwarves that aren't normally controllable. It is unsupported but occasionally hilarious, and allows you to finally put those lazy dwarven children to work.&lt;br /&gt;
&lt;br /&gt;
This handy utility would be an ideal complement to an updated LabourDF.&lt;br /&gt;
&lt;br /&gt;
Source code is available.&lt;br /&gt;
----&lt;br /&gt;
To make Foreman compatible with '''v0.27.168.33g''', download the new version and update the config file as shown below. - [http://forums.somethingawful.com/showthread.php?threadid=2677834&amp;amp;userid=0&amp;amp;perpage=40&amp;amp;pagenumber=74#post337422833 Originally posted by Mu.]&lt;br /&gt;
&amp;lt;pre&amp;gt;check=008c407c&lt;br /&gt;
critter_start=01427B50&lt;br /&gt;
dwarfidpos=01248AC8&lt;br /&gt;
profession_start=45c&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.173.38a''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01E30A43&lt;br /&gt;
critter_start=01450E98&lt;br /&gt;
dwarfidpos=01271E10&lt;br /&gt;
profession_start=45c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38a''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=023401d3&lt;br /&gt;
critter_start=01463378&lt;br /&gt;
dwarfidpos=01284188&lt;br /&gt;
profession_start=480&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38b''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01e3dbcc&lt;br /&gt;
critter_start=01463570&lt;br /&gt;
dwarfidpos=01284188&lt;br /&gt;
profession_start=0470&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38c''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01cf4654&lt;br /&gt;
critter_start=01464570&lt;br /&gt;
dwarfidpos=01285188&lt;br /&gt;
profession_start=0470&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.39a''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01aa9d3a&lt;br /&gt;
critter_start=015124f4&lt;br /&gt;
dwarfidpos=0131f1b8&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.39b''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01a16957&lt;br /&gt;
critter_start=015134f4&lt;br /&gt;
dwarfidpos=013201b8&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.39c''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01b89dbc&lt;br /&gt;
critter_start=01513514&lt;br /&gt;
dwarfidpos=013201d8&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.39d''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01b0747e&lt;br /&gt;
critter_start=0151f93c&lt;br /&gt;
dwarfidpos=0132c1e0&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.39e''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01b76baa&lt;br /&gt;
critter_start=0151f93c&lt;br /&gt;
dwarfidpos=0132c1e0&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== StartProfile ==&lt;br /&gt;
Jifodus wrote a little utility that lets you maintain profiles of your starting dwarves.&lt;br /&gt;
&lt;br /&gt;
Check the [http://www.bay12games.com/forum/index.php?topic=1447.0|thread on the forums] for the latest download link. (Aug 01, 2008)&lt;br /&gt;
&lt;br /&gt;
Incidentally, if you try this utility, please report success/failure in [[Talk:Utilities#StartProfile|the utilities talk page]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== [[User:0x517A5D|0x517A5D]]'s utilities ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Attention!&amp;lt;/b&amp;gt;  As the host site of these utilities is placing links to amateur pornographic videos on the download pages, these links are currently &amp;lt;b&amp;gt;Not Safe For Work!&amp;lt;/b&amp;gt;  Please see my [[User_talk:0x517A5D|User Talk]] page for discussion and a blanket permission to take care of this &amp;lt;strike&amp;gt;issue&amp;lt;/strike&amp;gt; problem.  Sorry about this.  &amp;amp;mdash;[[User:0x517A5D|0x517A5D]]&lt;br /&gt;
&lt;br /&gt;
=== Enable Magma Buildings ===&lt;br /&gt;
Helper utility for Rick's reveal.exe&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=3935enable_magma_buildings.zip enable_magma_buildings.zip]&lt;br /&gt;
&lt;br /&gt;
You need this utility in the case that you used the reveal utility, and&lt;br /&gt;
you had not yet discovered any subsurface magma.&lt;br /&gt;
(If the hide utility is ever updated, you could also hide a few magma&lt;br /&gt;
tiles and then dig them out.  That worked in the old version.)&lt;br /&gt;
&lt;br /&gt;
Because there is no actual flag that controls whether magma has been seen&lt;br /&gt;
(the game searches a list, probably a list of notable events), I had to&lt;br /&gt;
patch the game's code.  This means you need to run the utility every time&lt;br /&gt;
you start dwarfort.exe.&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent.  &lt;br /&gt;
It is expected to work with future releases of Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
=== Regional Prospector ===&lt;br /&gt;
&lt;br /&gt;
For Dwarf Fortress 28.181.39a and newer: [http://www.bay12games.com/forum/index.php?topic=20643.0]&lt;br /&gt;
For older versions: [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=regional_prospector.zip regional_prospector.zip]''(Careful, download link contains images of pornography as ads.)''&lt;br /&gt;
&lt;br /&gt;
Dwarf Fortress 0.28.181.39d and newer implement the functionality of Regional Prospector, making it unnecessary.&lt;br /&gt;
&lt;br /&gt;
A simple but very helpful utility that shows hidden map features at embark time.  &lt;br /&gt;
If you're trying to find the perfect start location by repeatedly embarking and &lt;br /&gt;
revealing, give this one a shot!&lt;br /&gt;
&lt;br /&gt;
Map key:&lt;br /&gt;
:{{Raw Tile|≈|#F00|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;volcano; magma reaches the surface&lt;br /&gt;
:{{Raw Tile|~|#F00|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground magma pipe or magma pool&lt;br /&gt;
:{{Raw Tile|≈|#00F|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground river&lt;br /&gt;
:{{Raw Tile|~|#00F|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground pool&lt;br /&gt;
:{{Raw Tile|#|#000|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;chasm&lt;br /&gt;
:{{Raw Tile|£|#0FF|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;adamantine and pits&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent.  &lt;br /&gt;
It is known to work with all releases from 32a to 33g.  &lt;br /&gt;
It is expected to work with future releases of Dwarf Fortress, &lt;br /&gt;
as long as the embark code doesn't change too much.&lt;br /&gt;
&lt;br /&gt;
Discussion and kudos can be left [[User_talk:0x517A5D#Seekret_Projekt|here]].&lt;br /&gt;
&lt;br /&gt;
=== Latitudes ===&lt;br /&gt;
&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=latitudes.zip Latitudes] is a utility that, when on the embark map screen, shows the X/Y coordinates of the current region.   Until Toady adds [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=5&amp;amp;t=002191 proper support], this will do the trick.  Works in .32a through at least .33g.  Technical notes: uses memory injection, so it may be flagged as a suspicious file by anti-virus programs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Temporarily withdrawn as I am experiencing crashes of DF when invoking the utility.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 14:26, 31 December 2007 (EST) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- The bug I was experiencing was a regression in my development version.  It&lt;br /&gt;
does not occur in the current release.  So everything's okay. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Embark Anywhere ==&lt;br /&gt;
*[http://www.bay12games.com/forum/index.php?topic=21351.0 Bay12Forums Thread]&lt;br /&gt;
Code based on 0x517A5D's Regional Prospector (above), allows you to embark ANYWHERE, how well that works depends on where you decide to go.  Pure water areas are a suggested no as you can't do anything.&lt;br /&gt;
&lt;br /&gt;
== Teleport ==&lt;br /&gt;
[http://angband.org/~erasmus/df/teleport22.zip teleport22.zip] -- Teleport dwarves and other creatures&lt;br /&gt;
&lt;br /&gt;
Version 2.2 is &amp;lt;u&amp;gt;really&amp;lt;/u&amp;gt; now independent of the DF version. (33c)&lt;br /&gt;
&lt;br /&gt;
Caveat: The teleport utility does not correctly set the occupancy flag for map squares.  As a results, dwarves will permanently crawl through the square that you teleported them out of.  In addition, you cannot build structures in those squares.&lt;br /&gt;
&lt;br /&gt;
== Water ==&lt;br /&gt;
[http://angband.org/~erasmus/df/water.exe water.exe] -- Quick hack to refill ponds.  Run this while your fortress is up, and it'll restore any &amp;quot;murky pool&amp;quot; tiles (i.e. the floor of ponds and lakes) to 7/7 water.  If you've tunneled into a pond, it'll still refill but will flow out normally.&lt;br /&gt;
&lt;br /&gt;
Only works with version 33e due to its &amp;quot;quick hack&amp;quot; status.&lt;br /&gt;
&lt;br /&gt;
Note:  If there is lava in a murky pool, it will be raised to depth 7/7.&lt;br /&gt;
&lt;br /&gt;
== Lava square ==&lt;br /&gt;
[http://angband.org/~erasmus/df/lavasquare.exe lavasquare.exe] -- Another quick hack to make a 7/7 unit of lava on the currently selected square.  Ignore the random text it spams, as it was quickly adapted from a map query tool, and I didn't bother removing the print statements.&lt;br /&gt;
&lt;br /&gt;
Only works with version 33e. To hack this executable for a later version of dwarf fortress see the [[Talk:Utilities#Lavasquare|talk page]].&lt;br /&gt;
&lt;br /&gt;
33g version plus autohotkey script: http://www.sendspace.com/file/xsl6gs --[[User:Jackard|Jackard]] 09:43, 13 January 2008 (EST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [http://en.wikipedia.org/wiki/Macro_%28computer_science%29 Macro Programs] ==&lt;br /&gt;
A program that lets you program scripts/macros so that when you press a certain key combination, or in any other fashion activates the program, a series of keystrokes is sent to the active program instead.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.autohotkey.com/ AutoHotKey] ===&lt;br /&gt;
AHK lets you define global hotkeys to send a sequence of keystrokes. For example, you can have {{key|alt}}+{{key|w}} replace {{key|b}}-{{key|C}}-{{key|w}}-{{key|Enter}}-{{key|Enter}} to make wall building much easier.  See [[Macros and Keymaps]] for a how-to and some example scripts.&lt;br /&gt;
----&lt;br /&gt;
See [[:Category:ahk scripts]] for a list of user submitted scripts.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Winmerge ==&lt;br /&gt;
&lt;br /&gt;
This utility allows you to compare folders or files. It highlights anything that does not fit in with the other file, so that you can see if you want to merge them into one file or not..&lt;br /&gt;
&lt;br /&gt;
Download at [http://winmerge.org/].&lt;br /&gt;
[[User:Omagaalpha|Omagaalpha]] 08:30, 13 February 2008 (EST)&lt;br /&gt;
Edit:--[[User:AtomicTroop|AtomicTroop]] 12:15, 23 March 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== DFWall ==&lt;br /&gt;
&lt;br /&gt;
An utility for automatisation of mass constructions. Features three modes:&lt;br /&gt;
&lt;br /&gt;
1. Rectangle rewalling - quickly build a rectangle of walls/floors using:&lt;br /&gt;
&lt;br /&gt;
a) the same saved material every time ([http://mkv25.net/dfma/movie-495-dfwalldemo DEMO])&lt;br /&gt;
&lt;br /&gt;
b) any material with at least 1/10/99 units&lt;br /&gt;
&lt;br /&gt;
2. Quick reselect (for ANY single unit construction) - save that green glass box and never again have to look for it between all the bags!&lt;br /&gt;
&lt;br /&gt;
3. Pattern construction - make a pattern file and have stuff constructed according to it ([http://mkv25.net/dfma/movie-520-dfwalldemo2 DEMO]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more details look here: [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001847 link]&lt;br /&gt;
&lt;br /&gt;
Get the newest version here: [http://dffd.wimbli.com/file.php?id=108 link]&lt;br /&gt;
&lt;br /&gt;
== Accent Removal ==&lt;br /&gt;
&lt;br /&gt;
This is a batch file compatible with [http://www.inforapid.de/html/searchreplace.htm InfoRapid Search &amp;amp; Replace.]&lt;br /&gt;
&lt;br /&gt;
It is used on the following raws to remove accented letters from translations:&lt;br /&gt;
*language_DWARF.txt&lt;br /&gt;
*language_ELF.txt&lt;br /&gt;
*language_GOBLIN.txt&lt;br /&gt;
*language_HUMAN.txt&lt;br /&gt;
&lt;br /&gt;
This could be useful for character sets that render accents improperly. Please remember to backup your raws before doing crazy things like this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;„&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt; &amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ƒ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;†&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;…&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;c&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‚&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Š&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ˆ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‰&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Œ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‹&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¤&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;n&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;•&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;”&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;“&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¢&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;—&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;–&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;£&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;˜&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;y&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dtil ==&lt;br /&gt;
*[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001843 Forum Thread]&lt;br /&gt;
Dtil is a general purpose tool host that supplies a dynamically generated SDK for plugin authors.&lt;br /&gt;
&lt;br /&gt;
== Modbase ==&lt;br /&gt;
&lt;br /&gt;
Modbase is a great tool made by Sean Mirrsen which allows you to freely swap mods and tweak game settings.&lt;br /&gt;
[http://www.bay12games.com/forum/index.php?topic=18623.0 Get it now!]&lt;br /&gt;
For version 0.38c.&lt;br /&gt;
&lt;br /&gt;
== DF World Generator ==&lt;br /&gt;
&lt;br /&gt;
Swiftly written supplement to the command line world generator. Written in Python, so you have to have Python installed to use this.&lt;br /&gt;
Follow [http://dffd.wimbli.com/file.php?id=278 this] link to get to the file. It must be run from the command line and be in the DF Directory to work. Running the program with no parameters will provoke a short help-me dialog which will explain how to run it properly.&lt;br /&gt;
Enjoy!&lt;br /&gt;
&lt;br /&gt;
== DF Log Parser ==&lt;br /&gt;
Written by Mephansteras&lt;br /&gt;
&lt;br /&gt;
This is a perl script that parses through the logs to show what civs owned what sites, what thier overall populations were, and what the overall population levels of cave critters were. The output file makes it pretty easy to see how the various races are doing.&lt;br /&gt;
&lt;br /&gt;
You will see:&lt;br /&gt;
Each Civilization, with overall ruler. Each site in that civ, with the local ruler. A summary of every entity in that civ.&lt;br /&gt;
A summary of every civ, by race&lt;br /&gt;
A listing of every Ruin&lt;br /&gt;
A listing of the total populations of cave critters&lt;br /&gt;
A listing of the total populations of civilized creatures&lt;br /&gt;
&lt;br /&gt;
[http://dffd.wimbli.com/file.php?id=299 Raw perl script] - requires perl&lt;br /&gt;
[http://dffd.wimbli.com/file.php?id=311 Executable version] - does not require perl&lt;br /&gt;
&lt;br /&gt;
== Just dig it out! ==&lt;br /&gt;
A utility by Jifodus. Disables warning messages about damp stone and hot stone.&lt;br /&gt;
[http://www.bay12games.com/forum/index.php?topic=21892.0 Thread] [http://www.geocities.com/jifodus/justdigitout.zip Utility]&lt;br /&gt;
&lt;br /&gt;
== Nano Fortress ==&lt;br /&gt;
A utility that will allow embarks to 1x1 locations.&lt;br /&gt;
[http://www.geocities.com/jifodus/nanofortress.zip Utility]&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28235</id>
		<title>User:Jifodus</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28235"/>
		<updated>2008-07-24T17:01:11Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* Memory */ removed memory lists &amp;amp; added dumping grounds for Tweak core.xml&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My work analyzing DF's formats:&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Memory research|Memory research]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/CMV file format|CMV file format]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Dwarf Fortress Utility Framework|Dwarf Fortress Utility Framework]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Map block|Map block info]]&lt;br /&gt;
&lt;br /&gt;
==Memory==&lt;br /&gt;
I'm removing the memory lists since they are now unneeded. For [[User:Rick/Tweak|Gibbed's Dwarf Fortress Tweak's]] configuration check out http://www.geocities.com/jifodus/dwarvis/. The line you'll need to stick inside DwarfFortress.Versions.xml can be found commented out at the bottom of each core.xml file.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
===tile_tool===&lt;br /&gt;
I wrote a tool that allows nearly complete editing of a tile's data. It's designed for analyzing a tile's data. Since it's not designed for mass editing, therefore I don't recommend using it for adding more than a couple tiles of water or magma. Or build multiple buildings on top of each other. Use '?' for in-tool help.&lt;br /&gt;
&lt;br /&gt;
http://www.geocities.com/jifodus/tile_tool.zip (61KB)&lt;br /&gt;
&lt;br /&gt;
Mar 04, 2008: http://www.geocities.com/jifodus/auto-update_tile_tool.zip (75KB) - Alternate version that is usable as soon as configuration gets uploaded for it. Source code: http://www.geocities.com/jifodus/tile_tool_src.zip (14KB)&lt;br /&gt;
&lt;br /&gt;
Editable information:&lt;br /&gt;
* Liquid Level&lt;br /&gt;
* Designation Flags&lt;br /&gt;
* Occupancy Flags&lt;br /&gt;
* Temperature&lt;br /&gt;
* Tile #&lt;br /&gt;
* Unknown Values&lt;br /&gt;
&lt;br /&gt;
Additional features:&lt;br /&gt;
* Track tile data.&lt;br /&gt;
* Compare a tile with a tracked tile.&lt;br /&gt;
* Dump the raw bits of Designation, Occupancy, Pathfinding and Unknowns.&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8995</id>
		<title>40d:Utilities</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8995"/>
		<updated>2008-07-24T16:53:13Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* Dwarf Foreman */ v0.28.181.39e config&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are third party applications developed for Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
== Movies, Screenshots, Map Files ==&lt;br /&gt;
&lt;br /&gt;
=== DF Map Compressor / DF Map Archive ===&lt;br /&gt;
&lt;br /&gt;
*[http://shadowlord13.googlepages.com/dfmap-index.html SL's DF Map Compressor - Website]&lt;br /&gt;
*[http://mkv25.net/dfma/ Dwarf Fortress Map Archive]&lt;br /&gt;
&lt;br /&gt;
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 that features an online viewer (written in Flash).&lt;br /&gt;
&lt;br /&gt;
The map compressor was created by Shadowlord in May 2007. Extract from the website :&lt;br /&gt;
:&amp;quot;The '''DF Map Compressor''' is a program I made to encode Dwarf Fortress fortress or world map images into a much smaller format than is possible with normal image formats. Here's a quick summary of how it works: It determines the size of your tiles from your DF font file (or asks you), splits the map up into tiles, identifies duplicate tiles, writes out every unique tile image, and then writes out a list of ID#s for each tile position which points to the tile image for that tile. What it outputs is piped through the LZMA compressor (the one used in 7-zip), to compress it further. The .df-map file which it writes out is usually less than 100 KB in size. (By comparison, a PNG of the same map can exceed 2 megabytes, depending on how well you compress it, whether you change the color depth, and whether you are using a graphical tileset or detailed font).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Read more about the [[User:Markavian/DF_Map_Archive|DF Map Archive]] on Markavian's User page.&lt;br /&gt;
&lt;br /&gt;
=== CMVPlayer === &lt;br /&gt;
&lt;br /&gt;
[http://www.geocities.com/jifodus/CMVPlayer.zip Download CMVPlayer.zip] &lt;br /&gt;
&lt;br /&gt;
First released by Jifodus in April 2007. This application enables playback of the DF movies (.cmv) without starting DF. It also provides some more functionalities, such as :&lt;br /&gt;
* Rewind&lt;br /&gt;
* Pause&lt;br /&gt;
* Play frame per frame&lt;br /&gt;
&lt;br /&gt;
To use, simply unzip the file, and drop and drag the movie on CMVPlayer.exe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 3Dwarf Visualizer - a tool to view maps in 3D ===&lt;br /&gt;
*[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001450 Bay12Forums Thread]&lt;br /&gt;
This is NOT realtime, that is still a long, long way off.&lt;br /&gt;
What this does is read the map out of your computer's memory when DF is running and save it to a file it can read. It can then open that file and show you your fort in glorious 3d.&lt;br /&gt;
Still in beta, obviously.&lt;br /&gt;
&lt;br /&gt;
=== Dwarvis / MapExtract ===&lt;br /&gt;
*[http://code.google.com/p/dwarvis/ dwarvis on Google Code]&lt;br /&gt;
This project is meant as a 3rd party utility for the cult-game dwarf fortress. Its purpose is to eventually provide 3-dimensional visualization of static snapshots of the ingame world of a given fortress.&lt;br /&gt;
&lt;br /&gt;
=== Terrain Visualizer - view worldmaps in 3D ===&lt;br /&gt;
This utilizes version 0.28.181.39d's built in Legends Mode map exporter and a generic HeightMap terrain visualizer.  Nothing super fancy, but neat to look at.&lt;br /&gt;
Get the [http://www.alpix.com/3d/TerrainViewer/ 3D Terrain Viewer] here, follow the instructions in the [http://www.bay12games.com/forum/index.php?topic=21468 Bay12Forums Thread] if you need help getting set up.&lt;br /&gt;
&lt;br /&gt;
Or if you want super pretty maps, [http://www.bay12games.com/forum/index.php?topic=21469.0 see this topic], and get [http://www.planetside.co.uk/terragen/download.shtml Terragen]!&lt;br /&gt;
&lt;br /&gt;
=== Dwarf Fortress File Depot ===&lt;br /&gt;
*[http://dffd.wimbli.com/ The Dwarf Fortress File Upload Service], an excellent place to store mods, community games, tilesets and other files. Courtesy of [http://www.dwarffortresswiki.net/index.php/User:Janus Janus]; for files related to Dwarf Fortress only.&lt;br /&gt;
&lt;br /&gt;
== Dwarf Companion ==&lt;br /&gt;
The [[User:Bartavelle/DwarfCompanion|Dwarf Companion]], created by [[User:Bartavelle|Bartavelle]] is a graphical helper utility for dwarf fortress that aims to fill the gaps in the user interface. It allows for some nefarious cheating. For example, you can now mark your nobles as butcherable, and change possessed dwarves to fey moods.&lt;br /&gt;
&lt;br /&gt;
== [[User:Rick|Rick]]'s utilities ==&lt;br /&gt;
Fabulous tools made by the marvelous Rick. All Hail Rick!&lt;br /&gt;
&lt;br /&gt;
=== [[User:Rick/Tweak|Gibbed's Dwarf Fortress Tweak]] ===&lt;br /&gt;
&lt;br /&gt;
A toolset with many modules for tweaking / editing Dwarf Fortress memory. [[User:Rick/Tweak|Check the full article for more details]].&lt;br /&gt;
&lt;br /&gt;
== Dwarf Foreman ==&lt;br /&gt;
[http://www.pavlovian.net/foreman/ Home page]. Makes switching jobs on and off for large numbers of dwarves simple. Dwarves are grouped by their profession, or custom profession if they have one. By clicking on the graph you can enable any job for all dwarves with that profession. Still in alpha for this version of DF, if it doesn't recognize one of the new professions, check the file '''debug.txt''' in the directory you run foreman from.&lt;br /&gt;
&lt;br /&gt;
Though prone to crashing currently, saving and exiting DF, starting foreman and then starting DF again will usually get it working again. Zorba would also appreciate it if you'd email him the crash log located in the Dwarf Foreman directory when this happens (zorba-foremancrash@pavlovian.net).&lt;br /&gt;
&lt;br /&gt;
Dwarf Foreman currently allows you to change the jobs of visiting merchants, outpost liaisons, children, and any other dwarves that aren't normally controllable. It is unsupported but occasionally hilarious, and allows you to finally put those lazy dwarven children to work.&lt;br /&gt;
&lt;br /&gt;
This handy utility would be an ideal complement to an updated LabourDF.&lt;br /&gt;
&lt;br /&gt;
Source code is available.&lt;br /&gt;
----&lt;br /&gt;
To make Foreman compatible with '''v0.27.168.33g''', download the new version and update the config file as shown below. - [http://forums.somethingawful.com/showthread.php?threadid=2677834&amp;amp;userid=0&amp;amp;perpage=40&amp;amp;pagenumber=74#post337422833 Originally posted by Mu.]&lt;br /&gt;
&amp;lt;pre&amp;gt;check=008c407c&lt;br /&gt;
critter_start=01427B50&lt;br /&gt;
dwarfidpos=01248AC8&lt;br /&gt;
profession_start=45c&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.173.38a''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01E30A43&lt;br /&gt;
critter_start=01450E98&lt;br /&gt;
dwarfidpos=01271E10&lt;br /&gt;
profession_start=45c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38a''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=023401d3&lt;br /&gt;
critter_start=01463378&lt;br /&gt;
dwarfidpos=01284188&lt;br /&gt;
profession_start=480&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38b''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01e3dbcc&lt;br /&gt;
critter_start=01463570&lt;br /&gt;
dwarfidpos=01284188&lt;br /&gt;
profession_start=0470&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38c''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01cf4654&lt;br /&gt;
critter_start=01464570&lt;br /&gt;
dwarfidpos=01285188&lt;br /&gt;
profession_start=0470&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.39a''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01aa9d3a&lt;br /&gt;
critter_start=015124f4&lt;br /&gt;
dwarfidpos=0131f1b8&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.39b''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01a16957&lt;br /&gt;
critter_start=015134f4&lt;br /&gt;
dwarfidpos=013201b8&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.39c''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01b89dbc&lt;br /&gt;
critter_start=01513514&lt;br /&gt;
dwarfidpos=013201d8&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.39d''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01b0747e&lt;br /&gt;
critter_start=0151f93c&lt;br /&gt;
dwarfidpos=0132c1e0&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.39e''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01b76baa&lt;br /&gt;
critter_start=0151f93c&lt;br /&gt;
dwarfidpos=0132c1e0&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== StartProfile ==&lt;br /&gt;
Jifodus wrote a little utility that lets you maintain profiles of your starting dwarves.&lt;br /&gt;
Works for versions 0.27.169.33b, 0.27.169.33c, 0.27.169.33d, and 0.27.169.33e. Check the readme to find out how to switch between the different versions. If you wish to patch the executable yourself, please check [[Talk:Utilities#StartProfile|the utilities talk page]].&lt;br /&gt;
&lt;br /&gt;
[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001367 Discussion thread]&lt;br /&gt;
&lt;br /&gt;
Obsolete: [http://www.geocities.com/jifodus/StartProfile.zip StartProfile utility]&lt;br /&gt;
&lt;br /&gt;
[http://www.geocities.com/jifodus/dfufend.zip StartProfile utility]&lt;br /&gt;
&lt;br /&gt;
Incidentally, if you try this utility, please report success/failure in [[Talk:Utilities#StartProfile|the utilities talk page]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== [[User:0x517A5D|0x517A5D]]'s utilities ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Attention!&amp;lt;/b&amp;gt;  As the host site of these utilities is placing links to amateur pornographic videos on the download pages, these links are currently &amp;lt;b&amp;gt;Not Safe For Work!&amp;lt;/b&amp;gt;  Please see my [[User_talk:0x517A5D|User Talk]] page for discussion and a blanket permission to take care of this &amp;lt;strike&amp;gt;issue&amp;lt;/strike&amp;gt; problem.  Sorry about this.  &amp;amp;mdash;[[User:0x517A5D|0x517A5D]]&lt;br /&gt;
&lt;br /&gt;
=== Enable Magma Buildings ===&lt;br /&gt;
Helper utility for Rick's reveal.exe&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=3935enable_magma_buildings.zip enable_magma_buildings.zip]&lt;br /&gt;
&lt;br /&gt;
You need this utility in the case that you used the reveal utility, and&lt;br /&gt;
you had not yet discovered any subsurface magma.&lt;br /&gt;
(If the hide utility is ever updated, you could also hide a few magma&lt;br /&gt;
tiles and then dig them out.  That worked in the old version.)&lt;br /&gt;
&lt;br /&gt;
Because there is no actual flag that controls whether magma has been seen&lt;br /&gt;
(the game searches a list, probably a list of notable events), I had to&lt;br /&gt;
patch the game's code.  This means you need to run the utility every time&lt;br /&gt;
you start dwarfort.exe.&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent.  &lt;br /&gt;
It is expected to work with future releases of Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
=== Regional Prospector ===&lt;br /&gt;
&lt;br /&gt;
For Dwarf Fortress 28.181.39a and newer: [http://www.bay12games.com/forum/index.php?topic=20643.0]&lt;br /&gt;
For older versions: [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=regional_prospector.zip regional_prospector.zip]''(Careful, download link contains images of pornography as ads.)''&lt;br /&gt;
&lt;br /&gt;
Dwarf Fortress 0.28.181.39d and newer implement the functionality of Regional Prospector, making it unnecessary.&lt;br /&gt;
&lt;br /&gt;
A simple but very helpful utility that shows hidden map features at embark time.  &lt;br /&gt;
If you're trying to find the perfect start location by repeatedly embarking and &lt;br /&gt;
revealing, give this one a shot!&lt;br /&gt;
&lt;br /&gt;
Map key:&lt;br /&gt;
:{{Raw Tile|≈|#F00|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;volcano; magma reaches the surface&lt;br /&gt;
:{{Raw Tile|~|#F00|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground magma pipe or magma pool&lt;br /&gt;
:{{Raw Tile|≈|#00F|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground river&lt;br /&gt;
:{{Raw Tile|~|#00F|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground pool&lt;br /&gt;
:{{Raw Tile|#|#000|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;chasm&lt;br /&gt;
:{{Raw Tile|£|#0FF|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;adamantine and pits&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent.  &lt;br /&gt;
It is known to work with all releases from 32a to 33g.  &lt;br /&gt;
It is expected to work with future releases of Dwarf Fortress, &lt;br /&gt;
as long as the embark code doesn't change too much.&lt;br /&gt;
&lt;br /&gt;
Discussion and kudos can be left [[User_talk:0x517A5D#Seekret_Projekt|here]].&lt;br /&gt;
&lt;br /&gt;
=== Latitudes ===&lt;br /&gt;
&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=latitudes.zip Latitudes] is a utility that, when on the embark map screen, shows the X/Y coordinates of the current region.   Until Toady adds [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=5&amp;amp;t=002191 proper support], this will do the trick.  Works in .32a through at least .33g.  Technical notes: uses memory injection, so it may be flagged as a suspicious file by anti-virus programs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Temporarily withdrawn as I am experiencing crashes of DF when invoking the utility.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 14:26, 31 December 2007 (EST) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- The bug I was experiencing was a regression in my development version.  It&lt;br /&gt;
does not occur in the current release.  So everything's okay. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Embark Anywhere ==&lt;br /&gt;
*[http://www.bay12games.com/forum/index.php?topic=21351.0 Bay12Forums Thread]&lt;br /&gt;
Code based on 0x517A5D's Regional Prospector (above), allows you to embark ANYWHERE, how well that works depends on where you decide to go.  Pure water areas are a suggested no as you can't do anything.&lt;br /&gt;
&lt;br /&gt;
== Teleport ==&lt;br /&gt;
[http://angband.org/~erasmus/df/teleport22.zip teleport22.zip] -- Teleport dwarves and other creatures&lt;br /&gt;
&lt;br /&gt;
Version 2.2 is &amp;lt;u&amp;gt;really&amp;lt;/u&amp;gt; now independent of the DF version. (33c)&lt;br /&gt;
&lt;br /&gt;
Caveat: The teleport utility does not correctly set the occupancy flag for map squares.  As a results, dwarves will permanently crawl through the square that you teleported them out of.  In addition, you cannot build structures in those squares.&lt;br /&gt;
&lt;br /&gt;
== Water ==&lt;br /&gt;
[http://angband.org/~erasmus/df/water.exe water.exe] -- Quick hack to refill ponds.  Run this while your fortress is up, and it'll restore any &amp;quot;murky pool&amp;quot; tiles (i.e. the floor of ponds and lakes) to 7/7 water.  If you've tunneled into a pond, it'll still refill but will flow out normally.&lt;br /&gt;
&lt;br /&gt;
Only works with version 33e due to its &amp;quot;quick hack&amp;quot; status.&lt;br /&gt;
&lt;br /&gt;
Note:  If there is lava in a murky pool, it will be raised to depth 7/7.&lt;br /&gt;
&lt;br /&gt;
== Lava square ==&lt;br /&gt;
[http://angband.org/~erasmus/df/lavasquare.exe lavasquare.exe] -- Another quick hack to make a 7/7 unit of lava on the currently selected square.  Ignore the random text it spams, as it was quickly adapted from a map query tool, and I didn't bother removing the print statements.&lt;br /&gt;
&lt;br /&gt;
Only works with version 33e. To hack this executable for a later version of dwarf fortress see the [[Talk:Utilities#Lavasquare|talk page]].&lt;br /&gt;
&lt;br /&gt;
33g version plus autohotkey script: http://www.sendspace.com/file/xsl6gs --[[User:Jackard|Jackard]] 09:43, 13 January 2008 (EST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [http://en.wikipedia.org/wiki/Macro_%28computer_science%29 Macro Programs] ==&lt;br /&gt;
A program that lets you program scripts/macros so that when you press a certain key combination, or in any other fashion activates the program, a series of keystrokes is sent to the active program instead.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.autohotkey.com/ AutoHotKey] ===&lt;br /&gt;
AHK lets you define global hotkeys to send a sequence of keystrokes. For example, you can have {{key|alt}}+{{key|w}} replace {{key|b}}-{{key|C}}-{{key|w}}-{{key|Enter}}-{{key|Enter}} to make wall building much easier.  See [[Macros and Keymaps]] for a how-to and some example scripts.&lt;br /&gt;
----&lt;br /&gt;
See [[:Category:ahk scripts]] for a list of user submitted scripts.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Winmerge ==&lt;br /&gt;
&lt;br /&gt;
This utility allows you to compare folders or files. It highlights anything that does not fit in with the other file, so that you can see if you want to merge them into one file or not..&lt;br /&gt;
&lt;br /&gt;
Download at [http://winmerge.org/].&lt;br /&gt;
[[User:Omagaalpha|Omagaalpha]] 08:30, 13 February 2008 (EST)&lt;br /&gt;
Edit:--[[User:AtomicTroop|AtomicTroop]] 12:15, 23 March 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== DFWall ==&lt;br /&gt;
&lt;br /&gt;
An utility for automatisation of mass constructions. Features three modes:&lt;br /&gt;
&lt;br /&gt;
1. Rectangle rewalling - quickly build a rectangle of walls/floors using:&lt;br /&gt;
&lt;br /&gt;
a) the same saved material every time ([http://mkv25.net/dfma/movie-495-dfwalldemo DEMO])&lt;br /&gt;
&lt;br /&gt;
b) any material with at least 1/10/99 units&lt;br /&gt;
&lt;br /&gt;
2. Quick reselect (for ANY single unit construction) - save that green glass box and never again have to look for it between all the bags!&lt;br /&gt;
&lt;br /&gt;
3. Pattern construction - make a pattern file and have stuff constructed according to it ([http://mkv25.net/dfma/movie-520-dfwalldemo2 DEMO]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more details look here: [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001847 link]&lt;br /&gt;
&lt;br /&gt;
Get the newest version here: [http://dffd.wimbli.com/file.php?id=108 link]&lt;br /&gt;
&lt;br /&gt;
== Accent Removal ==&lt;br /&gt;
&lt;br /&gt;
This is a batch file compatible with [http://www.inforapid.de/html/searchreplace.htm InfoRapid Search &amp;amp; Replace.]&lt;br /&gt;
&lt;br /&gt;
It is used on the following raws to remove accented letters from translations:&lt;br /&gt;
*language_DWARF.txt&lt;br /&gt;
*language_ELF.txt&lt;br /&gt;
*language_GOBLIN.txt&lt;br /&gt;
*language_HUMAN.txt&lt;br /&gt;
&lt;br /&gt;
This could be useful for character sets that render accents improperly. Please remember to backup your raws before doing crazy things like this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;„&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt; &amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ƒ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;†&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;…&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;c&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‚&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Š&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ˆ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‰&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Œ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‹&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¤&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;n&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;•&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;”&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;“&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¢&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;—&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;–&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;£&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;˜&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;y&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dtil ==&lt;br /&gt;
*[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001843 Forum Thread]&lt;br /&gt;
Dtil is a general purpose tool host that supplies a dynamically generated SDK for plugin authors.&lt;br /&gt;
&lt;br /&gt;
== Modbase ==&lt;br /&gt;
&lt;br /&gt;
Modbase is a great tool made by Sean Mirrsen which allows you to freely swap mods and tweak game settings.&lt;br /&gt;
[http://www.bay12games.com/forum/index.php?topic=18623.0 Get it now!]&lt;br /&gt;
For version 0.38c.&lt;br /&gt;
&lt;br /&gt;
== DF World Generator ==&lt;br /&gt;
&lt;br /&gt;
Swiftly written supplement to the command line world generator. Written in Python, so you have to have Python installed to use this.&lt;br /&gt;
Follow [http://dffd.wimbli.com/file.php?id=278 this] link to get to the file. It must be run from the command line and be in the DF Directory to work. Running the program with no parameters will provoke a short help-me dialog which will explain how to run it properly.&lt;br /&gt;
Enjoy!&lt;br /&gt;
&lt;br /&gt;
== DF Log Parser ==&lt;br /&gt;
Written by Mephansteras&lt;br /&gt;
&lt;br /&gt;
This is a perl script that parses through the logs to show what civs owned what sites, what thier overall populations were, and what the overall population levels of cave critters were. The output file makes it pretty easy to see how the various races are doing.&lt;br /&gt;
&lt;br /&gt;
You will see:&lt;br /&gt;
Each Civilization, with overall ruler. Each site in that civ, with the local ruler. A summary of every entity in that civ.&lt;br /&gt;
A summary of every civ, by race&lt;br /&gt;
A listing of every Ruin&lt;br /&gt;
A listing of the total populations of cave critters&lt;br /&gt;
A listing of the total populations of civilized creatures&lt;br /&gt;
&lt;br /&gt;
[http://dffd.wimbli.com/file.php?id=299 Raw perl script] - requires perl&lt;br /&gt;
[http://dffd.wimbli.com/file.php?id=311 Executable version] - does not require perl&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8990</id>
		<title>40d:Utilities</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8990"/>
		<updated>2008-07-23T23:42:39Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* Dwarf Foreman */ v0.28.181.39d config&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are third party applications developed for Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
== Movies, Screenshots, Map Files ==&lt;br /&gt;
&lt;br /&gt;
=== DF Map Compressor / DF Map Archive ===&lt;br /&gt;
&lt;br /&gt;
*[http://shadowlord13.googlepages.com/dfmap-index.html SL's DF Map Compressor - Website]&lt;br /&gt;
*[http://mkv25.net/dfma/ Dwarf Fortress Map Archive]&lt;br /&gt;
&lt;br /&gt;
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 that features an online viewer (written in Flash).&lt;br /&gt;
&lt;br /&gt;
The map compressor was created by Shadowlord in May 2007. Extract from the website :&lt;br /&gt;
:&amp;quot;The '''DF Map Compressor''' is a program I made to encode Dwarf Fortress fortress or world map images into a much smaller format than is possible with normal image formats. Here's a quick summary of how it works: It determines the size of your tiles from your DF font file (or asks you), splits the map up into tiles, identifies duplicate tiles, writes out every unique tile image, and then writes out a list of ID#s for each tile position which points to the tile image for that tile. What it outputs is piped through the LZMA compressor (the one used in 7-zip), to compress it further. The .df-map file which it writes out is usually less than 100 KB in size. (By comparison, a PNG of the same map can exceed 2 megabytes, depending on how well you compress it, whether you change the color depth, and whether you are using a graphical tileset or detailed font).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Read more about the [[User:Markavian/DF_Map_Archive|DF Map Archive]] on Markavian's User page.&lt;br /&gt;
&lt;br /&gt;
=== CMVPlayer === &lt;br /&gt;
&lt;br /&gt;
[http://www.geocities.com/jifodus/CMVPlayer.zip Download CMVPlayer.zip] &lt;br /&gt;
&lt;br /&gt;
First released by Jifodus in April 2007. This application enables playback of the DF movies (.cmv) without starting DF. It also provides some more functionalities, such as :&lt;br /&gt;
* Rewind&lt;br /&gt;
* Pause&lt;br /&gt;
* Play frame per frame&lt;br /&gt;
&lt;br /&gt;
To use, simply unzip the file, and drop and drag the movie on CMVPlayer.exe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 3Dwarf Visualizer - a tool to view maps in 3D ===&lt;br /&gt;
*[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001450 Bay12Forums Thread]&lt;br /&gt;
This is NOT realtime, that is still a long, long way off.&lt;br /&gt;
What this does is read the map out of your computer's memory when DF is running and save it to a file it can read. It can then open that file and show you your fort in glorious 3d.&lt;br /&gt;
Still in beta, obviously.&lt;br /&gt;
&lt;br /&gt;
=== Dwarvis / MapExtract ===&lt;br /&gt;
*[http://code.google.com/p/dwarvis/ dwarvis on Google Code]&lt;br /&gt;
This project is meant as a 3rd party utility for the cult-game dwarf fortress. Its purpose is to eventually provide 3-dimensional visualization of static snapshots of the ingame world of a given fortress.&lt;br /&gt;
&lt;br /&gt;
=== Dwarf Fortress File Depot ===&lt;br /&gt;
*[http://dffd.wimbli.com/ The Dwarf Fortress File Upload Service], an excellent place to store mods, community games, tilesets and other files. Courtesy of [http://www.dwarffortresswiki.net/index.php/User:Janus Janus]; for files related to Dwarf Fortress only.&lt;br /&gt;
&lt;br /&gt;
== Dwarf Companion ==&lt;br /&gt;
The [[User:Bartavelle/DwarfCompanion|Dwarf Companion]], created by [[User:Bartavelle|Bartavelle]] is a graphical helper utility for dwarf fortress that aims to fill the gaps in the user interface. It allows for some nefarious cheating. For example, you can now mark your nobles as butcherable, and change possessed dwarves to fey moods.&lt;br /&gt;
&lt;br /&gt;
== [[User:Rick|Rick]]'s utilities ==&lt;br /&gt;
Fabulous tools made by the marvelous Rick. All Hail Rick!&lt;br /&gt;
&lt;br /&gt;
=== [[User:Rick/Tweak|Gibbed's Dwarf Fortress Tweak]] ===&lt;br /&gt;
&lt;br /&gt;
A toolset with many modules for tweaking / editing Dwarf Fortress memory. [[User:Rick/Tweak|Check the full article for more details]].&lt;br /&gt;
&lt;br /&gt;
== Dwarf Foreman ==&lt;br /&gt;
[http://www.pavlovian.net/foreman/ Home page]. Makes switching jobs on and off for large numbers of dwarves simple. Dwarves are grouped by their profession, or custom profession if they have one. By clicking on the graph you can enable any job for all dwarves with that profession. Still in alpha for this version of DF, if it doesn't recognize one of the new professions, check the file '''debug.txt''' in the directory you run foreman from.&lt;br /&gt;
&lt;br /&gt;
Though prone to crashing currently, saving and exiting DF, starting foreman and then starting DF again will usually get it working again. Zorba would also appreciate it if you'd email him the crash log located in the Dwarf Foreman directory when this happens (zorba-foremancrash@pavlovian.net).&lt;br /&gt;
&lt;br /&gt;
Dwarf Foreman currently allows you to change the jobs of visiting merchants, outpost liaisons, children, and any other dwarves that aren't normally controllable. It is unsupported but occasionally hilarious, and allows you to finally put those lazy dwarven children to work.&lt;br /&gt;
&lt;br /&gt;
This handy utility would be an ideal complement to an updated LabourDF.&lt;br /&gt;
&lt;br /&gt;
Source code is available.&lt;br /&gt;
----&lt;br /&gt;
To make Foreman compatible with '''v0.27.168.33g''', download the new version and update the config file as shown below. - [http://forums.somethingawful.com/showthread.php?threadid=2677834&amp;amp;userid=0&amp;amp;perpage=40&amp;amp;pagenumber=74#post337422833 Originally posted by Mu.]&lt;br /&gt;
&amp;lt;pre&amp;gt;check=008c407c&lt;br /&gt;
critter_start=01427B50&lt;br /&gt;
dwarfidpos=01248AC8&lt;br /&gt;
profession_start=45c&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.173.38a''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01E30A43&lt;br /&gt;
critter_start=01450E98&lt;br /&gt;
dwarfidpos=01271E10&lt;br /&gt;
profession_start=45c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38a''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=023401d3&lt;br /&gt;
critter_start=01463378&lt;br /&gt;
dwarfidpos=01284188&lt;br /&gt;
profession_start=480&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38b''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01e3dbcc&lt;br /&gt;
critter_start=01463570&lt;br /&gt;
dwarfidpos=01284188&lt;br /&gt;
profession_start=0470&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38c''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01cf4654&lt;br /&gt;
critter_start=01464570&lt;br /&gt;
dwarfidpos=01285188&lt;br /&gt;
profession_start=0470&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.39a''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01aa9d3a&lt;br /&gt;
critter_start=015124f4&lt;br /&gt;
dwarfidpos=0131f1b8&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.39b''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01a16957&lt;br /&gt;
critter_start=015134f4&lt;br /&gt;
dwarfidpos=013201b8&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.39c''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01b89dbc&lt;br /&gt;
critter_start=01513514&lt;br /&gt;
dwarfidpos=013201d8&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.39d''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01b0747e&lt;br /&gt;
critter_start=0151f93c&lt;br /&gt;
dwarfidpos=0132c1e0&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== StartProfile ==&lt;br /&gt;
Jifodus wrote a little utility that lets you maintain profiles of your starting dwarves.&lt;br /&gt;
Works for versions 0.27.169.33b, 0.27.169.33c, 0.27.169.33d, and 0.27.169.33e. Check the readme to find out how to switch between the different versions. If you wish to patch the executable yourself, please check [[Talk:Utilities#StartProfile|the utilities talk page]].&lt;br /&gt;
&lt;br /&gt;
[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001367 Discussion thread]&lt;br /&gt;
&lt;br /&gt;
Obsolete: [http://www.geocities.com/jifodus/StartProfile.zip StartProfile utility]&lt;br /&gt;
&lt;br /&gt;
[http://www.geocities.com/jifodus/dfufend.zip StartProfile utility]&lt;br /&gt;
&lt;br /&gt;
Incidentally, if you try this utility, please report success/failure in [[Talk:Utilities#StartProfile|the utilities talk page]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== [[User:0x517A5D|0x517A5D]]'s utilities ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Attention!&amp;lt;/b&amp;gt;  As the host site of these utilities is placing links to amateur pornographic videos on the download pages, these links are currently &amp;lt;b&amp;gt;Not Safe For Work!&amp;lt;/b&amp;gt;  Please see my [[User_talk:0x517A5D|User Talk]] page for discussion and a blanket permission to take care of this &amp;lt;strike&amp;gt;issue&amp;lt;/strike&amp;gt; problem.  Sorry about this.  &amp;amp;mdash;[[User:0x517A5D|0x517A5D]]&lt;br /&gt;
&lt;br /&gt;
=== Enable Magma Buildings ===&lt;br /&gt;
Helper utility for Rick's reveal.exe&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=3935enable_magma_buildings.zip enable_magma_buildings.zip]&lt;br /&gt;
&lt;br /&gt;
You need this utility in the case that you used the reveal utility, and&lt;br /&gt;
you had not yet discovered any subsurface magma.&lt;br /&gt;
(If the hide utility is ever updated, you could also hide a few magma&lt;br /&gt;
tiles and then dig them out.  That worked in the old version.)&lt;br /&gt;
&lt;br /&gt;
Because there is no actual flag that controls whether magma has been seen&lt;br /&gt;
(the game searches a list, probably a list of notable events), I had to&lt;br /&gt;
patch the game's code.  This means you need to run the utility every time&lt;br /&gt;
you start dwarfort.exe.&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent.  &lt;br /&gt;
It is expected to work with future releases of Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
=== Regional Prospector ===&lt;br /&gt;
&lt;br /&gt;
For Dwarf Fortress 28.181.39a and newer: [http://www.bay12games.com/forum/index.php?topic=20643.0]&lt;br /&gt;
For older versions: [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=regional_prospector.zip regional_prospector.zip]''(Careful, download link contains images of pornography as ads.)''&lt;br /&gt;
&lt;br /&gt;
Dwarf Fortress 0.28.181.39d and newer implement the functionality of Regional Prospector, making it unnecessary.&lt;br /&gt;
&lt;br /&gt;
A simple but very helpful utility that shows hidden map features at embark time.  &lt;br /&gt;
If you're trying to find the perfect start location by repeatedly embarking and &lt;br /&gt;
revealing, give this one a shot!&lt;br /&gt;
&lt;br /&gt;
Map key:&lt;br /&gt;
:{{Raw Tile|≈|#F00|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;volcano; magma reaches the surface&lt;br /&gt;
:{{Raw Tile|~|#F00|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground magma pipe or magma pool&lt;br /&gt;
:{{Raw Tile|≈|#00F|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground river&lt;br /&gt;
:{{Raw Tile|~|#00F|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground pool&lt;br /&gt;
:{{Raw Tile|#|#000|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;chasm&lt;br /&gt;
:{{Raw Tile|£|#0FF|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;adamantine and pits&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent.  &lt;br /&gt;
It is known to work with all releases from 32a to 33g.  &lt;br /&gt;
It is expected to work with future releases of Dwarf Fortress, &lt;br /&gt;
as long as the embark code doesn't change too much.&lt;br /&gt;
&lt;br /&gt;
Discussion and kudos can be left [[User_talk:0x517A5D#Seekret_Projekt|here]].&lt;br /&gt;
&lt;br /&gt;
=== Latitudes ===&lt;br /&gt;
&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=latitudes.zip Latitudes] is a utility that, when on the embark map screen, shows the X/Y coordinates of the current region.   Until Toady adds [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=5&amp;amp;t=002191 proper support], this will do the trick.  Works in .32a through at least .33g.  Technical notes: uses memory injection, so it may be flagged as a suspicious file by anti-virus programs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Temporarily withdrawn as I am experiencing crashes of DF when invoking the utility.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 14:26, 31 December 2007 (EST) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- The bug I was experiencing was a regression in my development version.  It&lt;br /&gt;
does not occur in the current release.  So everything's okay. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Teleport ==&lt;br /&gt;
[http://angband.org/~erasmus/df/teleport22.zip teleport22.zip] -- Teleport dwarves and other creatures&lt;br /&gt;
&lt;br /&gt;
Version 2.2 is &amp;lt;u&amp;gt;really&amp;lt;/u&amp;gt; now independent of the DF version. (33c)&lt;br /&gt;
&lt;br /&gt;
Caveat: The teleport utility does not correctly set the occupancy flag for map squares.  As a results, dwarves will permanently crawl through the square that you teleported them out of.  In addition, you cannot build structures in those squares.&lt;br /&gt;
&lt;br /&gt;
== Water ==&lt;br /&gt;
[http://angband.org/~erasmus/df/water.exe water.exe] -- Quick hack to refill ponds.  Run this while your fortress is up, and it'll restore any &amp;quot;murky pool&amp;quot; tiles (i.e. the floor of ponds and lakes) to 7/7 water.  If you've tunneled into a pond, it'll still refill but will flow out normally.&lt;br /&gt;
&lt;br /&gt;
Only works with version 33e due to its &amp;quot;quick hack&amp;quot; status.&lt;br /&gt;
&lt;br /&gt;
Note:  If there is lava in a murky pool, it will be raised to depth 7/7.&lt;br /&gt;
&lt;br /&gt;
== Lava square ==&lt;br /&gt;
[http://angband.org/~erasmus/df/lavasquare.exe lavasquare.exe] -- Another quick hack to make a 7/7 unit of lava on the currently selected square.  Ignore the random text it spams, as it was quickly adapted from a map query tool, and I didn't bother removing the print statements.&lt;br /&gt;
&lt;br /&gt;
Only works with version 33e. To hack this executable for a later version of dwarf fortress see the [[Talk:Utilities#Lavasquare|talk page]].&lt;br /&gt;
&lt;br /&gt;
33g version plus autohotkey script: http://www.sendspace.com/file/xsl6gs --[[User:Jackard|Jackard]] 09:43, 13 January 2008 (EST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [http://en.wikipedia.org/wiki/Macro_%28computer_science%29 Macro Programs] ==&lt;br /&gt;
A program that lets you program scripts/macros so that when you press a certain key combination, or in any other fashion activates the program, a series of keystrokes is sent to the active program instead.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.autohotkey.com/ AutoHotKey] ===&lt;br /&gt;
AHK lets you define global hotkeys to send a sequence of keystrokes. For example, you can have {{key|alt}}+{{key|w}} replace {{key|b}}-{{key|C}}-{{key|w}}-{{key|Enter}}-{{key|Enter}} to make wall building much easier.  See [[Macros and Keymaps]] for a how-to and some example scripts.&lt;br /&gt;
----&lt;br /&gt;
See [[:Category:ahk scripts]] for a list of user submitted scripts.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Winmerge ==&lt;br /&gt;
&lt;br /&gt;
This utility allows you to compare folders or files. It highlights anything that does not fit in with the other file, so that you can see if you want to merge them into one file or not..&lt;br /&gt;
&lt;br /&gt;
Download at [http://winmerge.org/].&lt;br /&gt;
[[User:Omagaalpha|Omagaalpha]] 08:30, 13 February 2008 (EST)&lt;br /&gt;
Edit:--[[User:AtomicTroop|AtomicTroop]] 12:15, 23 March 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== DFWall ==&lt;br /&gt;
&lt;br /&gt;
An utility for automatisation of mass constructions. Features three modes:&lt;br /&gt;
&lt;br /&gt;
1. Rectangle rewalling - quickly build a rectangle of walls/floors using:&lt;br /&gt;
&lt;br /&gt;
a) the same saved material every time ([http://mkv25.net/dfma/movie-495-dfwalldemo DEMO])&lt;br /&gt;
&lt;br /&gt;
b) any material with at least 1/10/99 units&lt;br /&gt;
&lt;br /&gt;
2. Quick reselect (for ANY single unit construction) - save that green glass box and never again have to look for it between all the bags!&lt;br /&gt;
&lt;br /&gt;
3. Pattern construction - make a pattern file and have stuff constructed according to it ([http://mkv25.net/dfma/movie-520-dfwalldemo2 DEMO]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more details look here: [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001847 link]&lt;br /&gt;
&lt;br /&gt;
Get the newest version here: [http://dffd.wimbli.com/file.php?id=108 link]&lt;br /&gt;
&lt;br /&gt;
== Accent Removal ==&lt;br /&gt;
&lt;br /&gt;
This is a batch file compatible with [http://www.inforapid.de/html/searchreplace.htm InfoRapid Search &amp;amp; Replace.]&lt;br /&gt;
&lt;br /&gt;
It is used on the following raws to remove accented letters from translations:&lt;br /&gt;
*language_DWARF.txt&lt;br /&gt;
*language_ELF.txt&lt;br /&gt;
*language_GOBLIN.txt&lt;br /&gt;
*language_HUMAN.txt&lt;br /&gt;
&lt;br /&gt;
This could be useful for character sets that render accents improperly. Please remember to backup your raws before doing crazy things like this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;„&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt; &amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ƒ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;†&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;…&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;c&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‚&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Š&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ˆ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‰&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Œ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‹&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¤&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;n&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;•&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;”&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;“&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¢&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;—&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;–&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;£&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;˜&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;y&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dtil ==&lt;br /&gt;
*[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001843 Forum Thread]&lt;br /&gt;
Dtil is a general purpose tool host that supplies a dynamically generated SDK for plugin authors.&lt;br /&gt;
&lt;br /&gt;
== Modbase ==&lt;br /&gt;
&lt;br /&gt;
Modbase is a great tool made by Sean Mirrsen which allows you to freely swap mods and tweak game settings.&lt;br /&gt;
[http://www.bay12games.com/forum/index.php?topic=18623.0 Get it now!]&lt;br /&gt;
For version 0.38c.&lt;br /&gt;
&lt;br /&gt;
== DF World Generator ==&lt;br /&gt;
&lt;br /&gt;
Swiftly written supplement to the command line world generator. Written in Python, so you have to have Python installed to use this.&lt;br /&gt;
Follow [http://dffd.wimbli.com/file.php?id=278 this] link to get to the file. It must be run from the command line and be in the DF Directory to work. Running the program with no parameters will provoke a short help-me dialog which will explain how to run it properly.&lt;br /&gt;
Enjoy!&lt;br /&gt;
&lt;br /&gt;
== DF Log Parser ==&lt;br /&gt;
Written by Mephansteras&lt;br /&gt;
&lt;br /&gt;
This is a perl script that parses through the logs to show what civs owned what sites, what thier overall populations were, and what the overall population levels of cave critters were. The output file makes it pretty easy to see how the various races are doing.&lt;br /&gt;
&lt;br /&gt;
You will see:&lt;br /&gt;
Each Civilization, with overall ruler. Each site in that civ, with the local ruler. A summary of every entity in that civ.&lt;br /&gt;
A summary of every civ, by race&lt;br /&gt;
A listing of every Ruin&lt;br /&gt;
A listing of the total populations of cave critters&lt;br /&gt;
A listing of the total populations of civilized creatures&lt;br /&gt;
&lt;br /&gt;
[http://dffd.wimbli.com/file.php?id=299 Raw perl script] - requires perl&lt;br /&gt;
[http://dffd.wimbli.com/file.php?id=311 Executable version] - does not require perl&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8987</id>
		<title>40d:Utilities</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8987"/>
		<updated>2008-07-17T16:36:54Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* Dwarf Foreman */ v0.28.181.39c compatibility&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are third party applications developed for Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
== Movies, Screenshots, Map Files ==&lt;br /&gt;
&lt;br /&gt;
=== DF Map Compressor / DF Map Archive ===&lt;br /&gt;
&lt;br /&gt;
*[http://shadowlord13.googlepages.com/dfmap-index.html SL's DF Map Compressor - Website]&lt;br /&gt;
*[http://mkv25.net/dfma/ Dwarf Fortress Map Archive]&lt;br /&gt;
&lt;br /&gt;
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 that features an online viewer (written in Flash).&lt;br /&gt;
&lt;br /&gt;
The map compressor was created by Shadowlord in May 2007. Extract from the website :&lt;br /&gt;
:&amp;quot;The '''DF Map Compressor''' is a program I made to encode Dwarf Fortress fortress or world map images into a much smaller format than is possible with normal image formats. Here's a quick summary of how it works: It determines the size of your tiles from your DF font file (or asks you), splits the map up into tiles, identifies duplicate tiles, writes out every unique tile image, and then writes out a list of ID#s for each tile position which points to the tile image for that tile. What it outputs is piped through the LZMA compressor (the one used in 7-zip), to compress it further. The .df-map file which it writes out is usually less than 100 KB in size. (By comparison, a PNG of the same map can exceed 2 megabytes, depending on how well you compress it, whether you change the color depth, and whether you are using a graphical tileset or detailed font).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Read more about the [[User:Markavian/DF_Map_Archive|DF Map Archive]] on Markavian's User page.&lt;br /&gt;
&lt;br /&gt;
=== CMVPlayer === &lt;br /&gt;
&lt;br /&gt;
[http://www.geocities.com/jifodus/CMVPlayer.zip Download CMVPlayer.zip] &lt;br /&gt;
&lt;br /&gt;
First released by Jifodus in April 2007. This application enables playback of the DF movies (.cmv) without starting DF. It also provides some more functionalities, such as :&lt;br /&gt;
* Rewind&lt;br /&gt;
* Pause&lt;br /&gt;
* Play frame per frame&lt;br /&gt;
&lt;br /&gt;
To use, simply unzip the file, and drop and drag the movie on CMVPlayer.exe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 3Dwarf Visualizer - a tool to view maps in 3D ===&lt;br /&gt;
*[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001450 Bay12Forums Thread]&lt;br /&gt;
This is NOT realtime, that is still a long, long way off.&lt;br /&gt;
What this does is read the map out of your computer's memory when DF is running and save it to a file it can read. It can then open that file and show you your fort in glorious 3d.&lt;br /&gt;
Still in beta, obviously.&lt;br /&gt;
&lt;br /&gt;
=== Dwarvis / MapExtract ===&lt;br /&gt;
*[http://code.google.com/p/dwarvis/ dwarvis on Google Code]&lt;br /&gt;
This project is meant as a 3rd party utility for the cult-game dwarf fortress. Its purpose is to eventually provide 3-dimensional visualization of static snapshots of the ingame world of a given fortress.&lt;br /&gt;
&lt;br /&gt;
=== Dwarf Fortress File Depot ===&lt;br /&gt;
*[http://dffd.wimbli.com/ The Dwarf Fortress File Upload Service], an excellent place to store mods, community games, tilesets and other files. Courtesy of [http://www.dwarffortresswiki.net/index.php/User:Janus Janus]; for files related to Dwarf Fortress only.&lt;br /&gt;
&lt;br /&gt;
== Dwarf Companion ==&lt;br /&gt;
The [[User:Bartavelle/DwarfCompanion|Dwarf Companion]], created by [[User:Bartavelle|Bartavelle]] is a graphical helper utility for dwarf fortress that aims to fill the gaps in the user interface. It allows for some nefarious cheating. For example, you can now mark your nobles as butcherable, and change possessed dwarves to fey moods.&lt;br /&gt;
&lt;br /&gt;
== [[User:Rick|Rick]]'s utilities ==&lt;br /&gt;
Fabulous tools made by the marvelous Rick. All Hail Rick!&lt;br /&gt;
&lt;br /&gt;
=== [[User:Rick/Tweak|Gibbed's Dwarf Fortress Tweak]] ===&lt;br /&gt;
&lt;br /&gt;
A toolset with many modules for tweaking / editing Dwarf Fortress memory. [[User:Rick/Tweak|Check the full article for more details]].&lt;br /&gt;
&lt;br /&gt;
== Dwarf Foreman ==&lt;br /&gt;
[http://www.pavlovian.net/foreman/ Home page]. Makes switching jobs on and off for large numbers of dwarves simple. Dwarves are grouped by their profession, or custom profession if they have one. By clicking on the graph you can enable any job for all dwarves with that profession. Still in alpha for this version of DF, if it doesn't recognize one of the new professions, check the file '''debug.txt''' in the directory you run foreman from.&lt;br /&gt;
&lt;br /&gt;
Though prone to crashing currently, saving and exiting DF, starting foreman and then starting DF again will usually get it working again. Zorba would also appreciate it if you'd email him the crash log located in the Dwarf Foreman directory when this happens (zorba-foremancrash@pavlovian.net).&lt;br /&gt;
&lt;br /&gt;
Dwarf Foreman currently allows you to change the jobs of visiting merchants, outpost liaisons, children, and any other dwarves that aren't normally controllable. It is unsupported but occasionally hilarious, and allows you to finally put those lazy dwarven children to work.&lt;br /&gt;
&lt;br /&gt;
This handy utility would be an ideal complement to an updated LabourDF.&lt;br /&gt;
&lt;br /&gt;
Source code is available.&lt;br /&gt;
----&lt;br /&gt;
To make Foreman compatible with '''v0.27.168.33g''', download the new version and update the config file as shown below. - [http://forums.somethingawful.com/showthread.php?threadid=2677834&amp;amp;userid=0&amp;amp;perpage=40&amp;amp;pagenumber=74#post337422833 Originally posted by Mu.]&lt;br /&gt;
&amp;lt;pre&amp;gt;check=008c407c&lt;br /&gt;
critter_start=01427B50&lt;br /&gt;
dwarfidpos=01248AC8&lt;br /&gt;
profession_start=45c&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.173.38a''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01E30A43&lt;br /&gt;
critter_start=01450E98&lt;br /&gt;
dwarfidpos=01271E10&lt;br /&gt;
profession_start=45c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38a''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=023401d3&lt;br /&gt;
critter_start=01463378&lt;br /&gt;
dwarfidpos=01284188&lt;br /&gt;
profession_start=480&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38b''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01e3dbcc&lt;br /&gt;
critter_start=01463570&lt;br /&gt;
dwarfidpos=01284188&lt;br /&gt;
profession_start=0470&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38c''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01cf4654&lt;br /&gt;
critter_start=01464570&lt;br /&gt;
dwarfidpos=01285188&lt;br /&gt;
profession_start=0470&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.39a''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01aa9d3a&lt;br /&gt;
critter_start=015124f4&lt;br /&gt;
dwarfidpos=0131f1b8&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.39b''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01a16957&lt;br /&gt;
critter_start=015134f4&lt;br /&gt;
dwarfidpos=013201b8&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.39c''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01b89dbc&lt;br /&gt;
critter_start=01513514&lt;br /&gt;
dwarfidpos=013201d8&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== StartProfile ==&lt;br /&gt;
Jifodus wrote a little utility that lets you maintain profiles of your starting dwarves.&lt;br /&gt;
Works for versions 0.27.169.33b, 0.27.169.33c, 0.27.169.33d, and 0.27.169.33e. Check the readme to find out how to switch between the different versions. If you wish to patch the executable yourself, please check [[Talk:Utilities#StartProfile|the utilities talk page]].&lt;br /&gt;
&lt;br /&gt;
[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001367 Discussion thread]&lt;br /&gt;
&lt;br /&gt;
Obsolete: [http://www.geocities.com/jifodus/StartProfile.zip StartProfile utility]&lt;br /&gt;
&lt;br /&gt;
[http://www.geocities.com/jifodus/dfufend.zip StartProfile utility]&lt;br /&gt;
&lt;br /&gt;
Incidentally, if you try this utility, please report success/failure in [[Talk:Utilities#StartProfile|the utilities talk page]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== [[User:0x517A5D|0x517A5D]]'s utilities ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Attention!&amp;lt;/b&amp;gt;  As the host site of these utilities is placing links to amateur pornographic videos on the download pages, these links are currently &amp;lt;b&amp;gt;Not Safe For Work!&amp;lt;/b&amp;gt;  Please see my [[User_talk:0x517A5D|User Talk]] page for discussion and a blanket permission to take care of this &amp;lt;strike&amp;gt;issue&amp;lt;/strike&amp;gt; problem.  Sorry about this.  &amp;amp;mdash;[[User:0x517A5D|0x517A5D]]&lt;br /&gt;
&lt;br /&gt;
=== Enable Magma Buildings ===&lt;br /&gt;
Helper utility for Rick's reveal.exe&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=3935enable_magma_buildings.zip enable_magma_buildings.zip]&lt;br /&gt;
&lt;br /&gt;
You need this utility in the case that you used the reveal utility, and&lt;br /&gt;
you had not yet discovered any subsurface magma.&lt;br /&gt;
(If the hide utility is ever updated, you could also hide a few magma&lt;br /&gt;
tiles and then dig them out.  That worked in the old version.)&lt;br /&gt;
&lt;br /&gt;
Because there is no actual flag that controls whether magma has been seen&lt;br /&gt;
(the game searches a list, probably a list of notable events), I had to&lt;br /&gt;
patch the game's code.  This means you need to run the utility every time&lt;br /&gt;
you start dwarfort.exe.&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent.  &lt;br /&gt;
It is expected to work with future releases of Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
=== Regional Prospector ===&lt;br /&gt;
&lt;br /&gt;
For Dwarf Fortress 28.181.39a and newer: [http://www.bay12games.com/forum/index.php?topic=20643.0]&lt;br /&gt;
For older versions: [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=regional_prospector.zip regional_prospector.zip]''(Careful, download link contains images of pornography as ads.)''&lt;br /&gt;
&lt;br /&gt;
A simple but very helpful utility that shows hidden map features at embark time.  &lt;br /&gt;
If you're trying to find the perfect start location by repeatedly embarking and &lt;br /&gt;
revealing, give this one a shot!&lt;br /&gt;
&lt;br /&gt;
Map key:&lt;br /&gt;
:{{Raw Tile|≈|#F00|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;volcano; magma reaches the surface&lt;br /&gt;
:{{Raw Tile|~|#F00|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground magma pipe or magma pool&lt;br /&gt;
:{{Raw Tile|≈|#00F|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground river&lt;br /&gt;
:{{Raw Tile|~|#00F|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground pool&lt;br /&gt;
:{{Raw Tile|#|#000|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;chasm&lt;br /&gt;
:{{Raw Tile|£|#0FF|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;adamantine and pits&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent.  &lt;br /&gt;
It is known to work with all releases from 32a to 33g.  &lt;br /&gt;
It is expected to work with future releases of Dwarf Fortress, &lt;br /&gt;
as long as the embark code doesn't change too much.&lt;br /&gt;
&lt;br /&gt;
Discussion and kudos can be left [[User_talk:0x517A5D#Seekret_Projekt|here]].&lt;br /&gt;
&lt;br /&gt;
=== Latitudes ===&lt;br /&gt;
&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=latitudes.zip Latitudes] is a utility that, when on the embark map screen, shows the X/Y coordinates of the current region.   Until Toady adds [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=5&amp;amp;t=002191 proper support], this will do the trick.  Works in .32a through at least .33g.  Technical notes: uses memory injection, so it may be flagged as a suspicious file by anti-virus programs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Temporarily withdrawn as I am experiencing crashes of DF when invoking the utility.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 14:26, 31 December 2007 (EST) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- The bug I was experiencing was a regression in my development version.  It&lt;br /&gt;
does not occur in the current release.  So everything's okay. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Teleport ==&lt;br /&gt;
[http://angband.org/~erasmus/df/teleport22.zip teleport22.zip] -- Teleport dwarves and other creatures&lt;br /&gt;
&lt;br /&gt;
Version 2.2 is &amp;lt;u&amp;gt;really&amp;lt;/u&amp;gt; now independent of the DF version. (33c)&lt;br /&gt;
&lt;br /&gt;
Caveat: The teleport utility does not correctly set the occupancy flag for map squares.  As a results, dwarves will permanently crawl through the square that you teleported them out of.  In addition, you cannot build structures in those squares.&lt;br /&gt;
&lt;br /&gt;
== Water ==&lt;br /&gt;
[http://angband.org/~erasmus/df/water.exe water.exe] -- Quick hack to refill ponds.  Run this while your fortress is up, and it'll restore any &amp;quot;murky pool&amp;quot; tiles (i.e. the floor of ponds and lakes) to 7/7 water.  If you've tunneled into a pond, it'll still refill but will flow out normally.&lt;br /&gt;
&lt;br /&gt;
Only works with version 33e due to its &amp;quot;quick hack&amp;quot; status.&lt;br /&gt;
&lt;br /&gt;
Note:  If there is lava in a murky pool, it will be raised to depth 7/7.&lt;br /&gt;
&lt;br /&gt;
== Lava square ==&lt;br /&gt;
[http://angband.org/~erasmus/df/lavasquare.exe lavasquare.exe] -- Another quick hack to make a 7/7 unit of lava on the currently selected square.  Ignore the random text it spams, as it was quickly adapted from a map query tool, and I didn't bother removing the print statements.&lt;br /&gt;
&lt;br /&gt;
Only works with version 33e. To hack this executable for a later version of dwarf fortress see the [[Talk:Utilities#Lavasquare|talk page]].&lt;br /&gt;
&lt;br /&gt;
33g version plus autohotkey script: http://www.sendspace.com/file/xsl6gs --[[User:Jackard|Jackard]] 09:43, 13 January 2008 (EST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [http://en.wikipedia.org/wiki/Macro_%28computer_science%29 Macro Programs] ==&lt;br /&gt;
A program that lets you program scripts/macros so that when you press a certain key combination, or in any other fashion activates the program, a series of keystrokes is sent to the active program instead.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.autohotkey.com/ AutoHotKey] ===&lt;br /&gt;
AHK lets you define global hotkeys to send a sequence of keystrokes. For example, you can have {{key|alt}}+{{key|w}} replace {{key|b}}-{{key|C}}-{{key|w}}-{{key|Enter}}-{{key|Enter}} to make wall building much easier.  See [[Macros and Keymaps]] for a how-to and some example scripts.&lt;br /&gt;
----&lt;br /&gt;
See [[:Category:ahk scripts]] for a list of user submitted scripts.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Winmerge ==&lt;br /&gt;
&lt;br /&gt;
This utility allows you to compare folders or files. It highlights anything that does not fit in with the other file, so that you can see if you want to merge them into one file or not..&lt;br /&gt;
&lt;br /&gt;
Download at [http://winmerge.org/].&lt;br /&gt;
[[User:Omagaalpha|Omagaalpha]] 08:30, 13 February 2008 (EST)&lt;br /&gt;
Edit:--[[User:AtomicTroop|AtomicTroop]] 12:15, 23 March 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== DFWall ==&lt;br /&gt;
&lt;br /&gt;
An utility for automatisation of mass constructions. Features three modes:&lt;br /&gt;
&lt;br /&gt;
1. Rectangle rewalling - quickly build a rectangle of walls/floors using:&lt;br /&gt;
&lt;br /&gt;
a) the same saved material every time ([http://mkv25.net/dfma/movie-495-dfwalldemo DEMO])&lt;br /&gt;
&lt;br /&gt;
b) any material with at least 1/10/99 units&lt;br /&gt;
&lt;br /&gt;
2. Quick reselect (for ANY single unit construction) - save that green glass box and never again have to look for it between all the bags!&lt;br /&gt;
&lt;br /&gt;
3. Pattern construction - make a pattern file and have stuff constructed according to it ([http://mkv25.net/dfma/movie-520-dfwalldemo2 DEMO]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more details look here: [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001847 link]&lt;br /&gt;
&lt;br /&gt;
Get the newest version here: [http://dffd.wimbli.com/file.php?id=108 link]&lt;br /&gt;
&lt;br /&gt;
== Accent Removal ==&lt;br /&gt;
&lt;br /&gt;
This is a batch file compatible with [http://www.inforapid.de/html/searchreplace.htm InfoRapid Search &amp;amp; Replace.]&lt;br /&gt;
&lt;br /&gt;
It is used on the following raws to remove accented letters from translations:&lt;br /&gt;
*language_DWARF.txt&lt;br /&gt;
*language_ELF.txt&lt;br /&gt;
*language_GOBLIN.txt&lt;br /&gt;
*language_HUMAN.txt&lt;br /&gt;
&lt;br /&gt;
This could be useful for character sets that render accents improperly. Please remember to backup your raws before doing crazy things like this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;„&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt; &amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ƒ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;†&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;…&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;c&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‚&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Š&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ˆ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‰&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Œ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‹&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¤&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;n&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;•&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;”&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;“&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¢&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;—&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;–&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;£&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;˜&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;y&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dtil ==&lt;br /&gt;
*[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001843 Forum Thread]&lt;br /&gt;
Dtil is a general purpose tool host that supplies a dynamically generated SDK for plugin authors.&lt;br /&gt;
&lt;br /&gt;
== Modbase ==&lt;br /&gt;
&lt;br /&gt;
Modbase is a great tool made by Sean Mirrsen which allows you to freely swap mods and tweak game settings.&lt;br /&gt;
[http://www.bay12games.com/forum/index.php?topic=18623.0 Get it now!]&lt;br /&gt;
For version 0.38c.&lt;br /&gt;
&lt;br /&gt;
== DF World Generator ==&lt;br /&gt;
&lt;br /&gt;
Swiftly written supplement to the command line world generator. Written in Python, so you have to have Python installed to use this.&lt;br /&gt;
Follow [http://dffd.wimbli.com/file.php?id=278 this] link to get to the file. It must be run from the command line and be in the DF Directory to work. Running the program with no parameters will provoke a short help-me dialog which will explain how to run it properly.&lt;br /&gt;
Enjoy!&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28234</id>
		<title>User:Jifodus</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28234"/>
		<updated>2008-07-17T16:35:55Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* Memory */ Addresses and offsets for 0.28.181.39c&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My work analyzing DF's formats:&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Memory research|Memory research]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/CMV file format|CMV file format]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Dwarf Fortress Utility Framework|Dwarf Fortress Utility Framework]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Map block|Map block info]]&lt;br /&gt;
&lt;br /&gt;
==Memory==&lt;br /&gt;
===v0.28.181.39a===&lt;br /&gt;
This is the result of a quick analysis, it's incomplete and only partially checked, but it may allow some of the tools to work. It appears that the existing [[User:Rick/Memory research#Tile Block|map data]] offsets are still valid.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menu_state == 0x01322D58&lt;br /&gt;
focused_creature == 0x00D16C20&lt;br /&gt;
cursor_x == 0x009D6284&lt;br /&gt;
cursor_y == 0x009D6288&lt;br /&gt;
cursor_z == 0x009D628C&lt;br /&gt;
map_count_x == 0x01554040&lt;br /&gt;
map_count_y == 0x01554044&lt;br /&gt;
map_count_z == 0x01554048&lt;br /&gt;
map_data == 0x01554028&lt;br /&gt;
main_creature_vector == 0x015124F4&lt;br /&gt;
dwarf_race_id == 0x0131F1B8&lt;br /&gt;
starting_points == 0x00834693&lt;br /&gt;
starting_points_offset == 0x00000904&lt;br /&gt;
alt-starting_dwarves == 0x008355A4&lt;br /&gt;
alt-language_vector == 0x01555FA8&lt;br /&gt;
words_vector == 0x01555E88&lt;br /&gt;
happiness_offset == 0x00000520&lt;br /&gt;
art_defacement_malus == 0x00850135&lt;br /&gt;
skill_limit == 0x00831263&lt;br /&gt;
start_game_data == 0x01330D98&lt;br /&gt;
creature_jobs == 0x00000474&lt;br /&gt;
creature_race == 0x0000008C&lt;br /&gt;
creature_x == 0x00000094&lt;br /&gt;
creature_y == 0x00000096&lt;br /&gt;
creature_z == 0x00000098&lt;br /&gt;
creature_id == 0x000000F4&lt;br /&gt;
dwarf_civ_id == 0x0131F1AC&lt;br /&gt;
creature_civ == 0x00000100&lt;br /&gt;
creature_bodyparts == 0x000002FC&lt;br /&gt;
alt-creature_pain == 0x00000364&lt;br /&gt;
creature_exhaustion == 0x00000368&lt;br /&gt;
creature_hunger == 0x0000036C&lt;br /&gt;
creature_thirst == 0x00000370&lt;br /&gt;
creature_drowsiness == 0x00000374&lt;br /&gt;
creature_strength == 0x00000438&lt;br /&gt;
creature_agility == 0x0000043C&lt;br /&gt;
creature_toughness == 0x00000440&lt;br /&gt;
creature_skills == 0x00000444&lt;br /&gt;
creature_total_xp == 0x000004DC&lt;br /&gt;
dwarf_fortress == 0x009623E4&lt;br /&gt;
pe_timestamp == 0x00400108&lt;br /&gt;
pe_timestampv == 0x487B4E8B&lt;br /&gt;
dwarf_foreman_check == 0x01AA9D3A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===v0.28.181.39b===&lt;br /&gt;
This is the result of a quick analysis, it's only partially checked, but it allows the core Tweak tools and Foreman to work. It appears that the existing [[User:Rick/Memory research#Tile Block|map data]] offsets are still valid.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menu_state == 0x01323D58&lt;br /&gt;
focused_creature == 0x00D17C20&lt;br /&gt;
cursor_x == 0x009D7284&lt;br /&gt;
cursor_y == 0x009D7288&lt;br /&gt;
cursor_z == 0x009D728C&lt;br /&gt;
map_count_x == 0x01555040&lt;br /&gt;
map_count_y == 0x01555044&lt;br /&gt;
map_count_z == 0x01555048&lt;br /&gt;
map_data == 0x01555028&lt;br /&gt;
main_creature_vector == 0x015134F4&lt;br /&gt;
dwarf_race_id == 0x013201B8&lt;br /&gt;
starting_points == 0x00835243&lt;br /&gt;
starting_points_offset == 0x00000904&lt;br /&gt;
alt-starting_dwarves == 0x00836154&lt;br /&gt;
alt-language_vector == 0x01556FA8&lt;br /&gt;
words_vector == 0x01556E88&lt;br /&gt;
happiness_offset == 0x00000520&lt;br /&gt;
art_defacement_malus == 0x00850D35&lt;br /&gt;
skill_limit == 0x00831E13&lt;br /&gt;
start_game_data == 0x01331D98&lt;br /&gt;
creature_jobs == 0x00000474&lt;br /&gt;
creature_race == 0x0000008C&lt;br /&gt;
creature_x == 0x00000094&lt;br /&gt;
creature_y == 0x00000096&lt;br /&gt;
creature_z == 0x00000098&lt;br /&gt;
creature_id == 0x000000F4&lt;br /&gt;
dwarf_civ_id == 0x013201AC&lt;br /&gt;
creature_civ == 0x00000100&lt;br /&gt;
creature_bodyparts == 0x000002FC&lt;br /&gt;
alt-creature_pain == 0x00000364&lt;br /&gt;
creature_exhaustion == 0x00000368&lt;br /&gt;
creature_hunger == 0x0000036C&lt;br /&gt;
creature_thirst == 0x00000370&lt;br /&gt;
creature_drowsiness == 0x00000374&lt;br /&gt;
creature_strength == 0x00000438&lt;br /&gt;
creature_agility == 0x0000043C&lt;br /&gt;
creature_toughness == 0x00000440&lt;br /&gt;
creature_skills == 0x00000444&lt;br /&gt;
creature_total_xp == 0x000004DC&lt;br /&gt;
dwarf_fortress == 0x009633E4&lt;br /&gt;
pe_timestamp == 0x00400108&lt;br /&gt;
pe_timestampv == 0x487C9338&lt;br /&gt;
dwarf_foreman_check == 0x01A16957&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===v0.28.181.39c===&lt;br /&gt;
This is the result of a quick analysis, it's unchecked, but it should allow the core Tweak tools and Foreman to work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menu_state == 0x01323D78&lt;br /&gt;
focused_creature == 0x00D17C44&lt;br /&gt;
cursor_x == 0x009D7284&lt;br /&gt;
cursor_y == 0x009D7288&lt;br /&gt;
cursor_z == 0x009D728C&lt;br /&gt;
map_count_x == 0x01555060&lt;br /&gt;
map_count_y == 0x01555064&lt;br /&gt;
map_count_z == 0x01555068&lt;br /&gt;
map_data == 0x01555048&lt;br /&gt;
main_creature_vector == 0x01513514&lt;br /&gt;
dwarf_race_id == 0x013201D8&lt;br /&gt;
starting_points == 0x008351C3&lt;br /&gt;
starting_points_offset == 0x00000904&lt;br /&gt;
alt-starting_dwarves == 0x008360D4&lt;br /&gt;
alt-language_vector == 0x01556FC8&lt;br /&gt;
words_vector == 0x01556EA8&lt;br /&gt;
happiness_offset == 0x00000520&lt;br /&gt;
art_defacement_malus == 0x00850C65&lt;br /&gt;
skill_limit == 0x00831D93&lt;br /&gt;
start_game_data == 0x01331DB8&lt;br /&gt;
creature_jobs == 0x00000474&lt;br /&gt;
creature_race == 0x0000008C&lt;br /&gt;
creature_x == 0x00000094&lt;br /&gt;
creature_y == 0x00000096&lt;br /&gt;
creature_z == 0x00000098&lt;br /&gt;
creature_id == 0x000000F4&lt;br /&gt;
dwarf_civ_id == 0x013201CC&lt;br /&gt;
creature_civ == 0x00000100&lt;br /&gt;
creature_bodyparts == 0x000002FC&lt;br /&gt;
alt-creature_pain == 0x00000364&lt;br /&gt;
creature_exhaustion == 0x00000368&lt;br /&gt;
creature_hunger == 0x0000036C&lt;br /&gt;
creature_thirst == 0x00000370&lt;br /&gt;
creature_drowsiness == 0x00000374&lt;br /&gt;
creature_strength == 0x00000438&lt;br /&gt;
creature_agility == 0x0000043C&lt;br /&gt;
creature_toughness == 0x00000440&lt;br /&gt;
creature_skills == 0x00000444&lt;br /&gt;
creature_total_xp == 0x000004DC&lt;br /&gt;
dwarf_fortress == 0x009633E4&lt;br /&gt;
pe_timestamp == 0x00400108&lt;br /&gt;
pe_timestampv == 0x487F2F30&lt;br /&gt;
dwarf_foreman_check == 0x01B89DBC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
===tile_tool===&lt;br /&gt;
I wrote a tool that allows nearly complete editing of a tile's data. It's designed for analyzing a tile's data. Since it's not designed for mass editing, therefore I don't recommend using it for adding more than a couple tiles of water or magma. Or build multiple buildings on top of each other. Use '?' for in-tool help.&lt;br /&gt;
&lt;br /&gt;
http://www.geocities.com/jifodus/tile_tool.zip (61KB)&lt;br /&gt;
&lt;br /&gt;
Mar 04, 2008: http://www.geocities.com/jifodus/auto-update_tile_tool.zip (75KB) - Alternate version that is usable as soon as configuration gets uploaded for it. Source code: http://www.geocities.com/jifodus/tile_tool_src.zip (14KB)&lt;br /&gt;
&lt;br /&gt;
Editable information:&lt;br /&gt;
* Liquid Level&lt;br /&gt;
* Designation Flags&lt;br /&gt;
* Occupancy Flags&lt;br /&gt;
* Temperature&lt;br /&gt;
* Tile #&lt;br /&gt;
* Unknown Values&lt;br /&gt;
&lt;br /&gt;
Additional features:&lt;br /&gt;
* Track tile data.&lt;br /&gt;
* Compare a tile with a tracked tile.&lt;br /&gt;
* Dump the raw bits of Designation, Occupancy, Pathfinding and Unknowns.&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8985</id>
		<title>40d:Utilities</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8985"/>
		<updated>2008-07-16T19:06:19Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* Dwarf Foreman */ config for v0.28.181.39b&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are third party applications developed for Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
== Movies, Screenshots, Map Files ==&lt;br /&gt;
&lt;br /&gt;
=== DF Map Compressor / DF Map Archive ===&lt;br /&gt;
&lt;br /&gt;
*[http://shadowlord13.googlepages.com/dfmap-index.html SL's DF Map Compressor - Website]&lt;br /&gt;
*[http://mkv25.net/dfma/ Dwarf Fortress Map Archive]&lt;br /&gt;
&lt;br /&gt;
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 that features an online viewer (written in Flash).&lt;br /&gt;
&lt;br /&gt;
The map compressor was created by Shadowlord in May 2007. Extract from the website :&lt;br /&gt;
:&amp;quot;The '''DF Map Compressor''' is a program I made to encode Dwarf Fortress fortress or world map images into a much smaller format than is possible with normal image formats. Here's a quick summary of how it works: It determines the size of your tiles from your DF font file (or asks you), splits the map up into tiles, identifies duplicate tiles, writes out every unique tile image, and then writes out a list of ID#s for each tile position which points to the tile image for that tile. What it outputs is piped through the LZMA compressor (the one used in 7-zip), to compress it further. The .df-map file which it writes out is usually less than 100 KB in size. (By comparison, a PNG of the same map can exceed 2 megabytes, depending on how well you compress it, whether you change the color depth, and whether you are using a graphical tileset or detailed font).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Read more about the [[User:Markavian/DF_Map_Archive|DF Map Archive]] on Markavian's User page.&lt;br /&gt;
&lt;br /&gt;
=== CMVPlayer === &lt;br /&gt;
&lt;br /&gt;
[http://www.geocities.com/jifodus/CMVPlayer.zip Download CMVPlayer.zip] &lt;br /&gt;
&lt;br /&gt;
First released by Jifodus in April 2007. This application enables playback of the DF movies (.cmv) without starting DF. It also provides some more functionalities, such as :&lt;br /&gt;
* Rewind&lt;br /&gt;
* Pause&lt;br /&gt;
* Play frame per frame&lt;br /&gt;
&lt;br /&gt;
To use, simply unzip the file, and drop and drag the movie on CMVPlayer.exe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 3Dwarf Visualizer - a tool to view maps in 3D ===&lt;br /&gt;
*[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001450 Bay12Forums Thread]&lt;br /&gt;
This is NOT realtime, that is still a long, long way off.&lt;br /&gt;
What this does is read the map out of your computer's memory when DF is running and save it to a file it can read. It can then open that file and show you your fort in glorious 3d.&lt;br /&gt;
Still in beta, obviously.&lt;br /&gt;
&lt;br /&gt;
=== Dwarvis / MapExtract ===&lt;br /&gt;
*[http://code.google.com/p/dwarvis/ dwarvis on Google Code]&lt;br /&gt;
This project is meant as a 3rd party utility for the cult-game dwarf fortress. Its purpose is to eventually provide 3-dimensional visualization of static snapshots of the ingame world of a given fortress.&lt;br /&gt;
&lt;br /&gt;
=== Dwarf Fortress File Depot ===&lt;br /&gt;
*[http://dffd.wimbli.com/ The Dwarf Fortress File Upload Service], an excellent place to store mods, community games, tilesets and other files. Courtesy of [http://www.dwarffortresswiki.net/index.php/User:Janus Janus]; for files related to Dwarf Fortress only.&lt;br /&gt;
&lt;br /&gt;
== Dwarf Companion ==&lt;br /&gt;
The [[User:Bartavelle/DwarfCompanion|Dwarf Companion]], created by [[User:Bartavelle|Bartavelle]] is a graphical helper utility for dwarf fortress that aims to fill the gaps in the user interface. It allows for some nefarious cheating. For example, you can now mark your nobles as butcherable, and change possessed dwarves to fey moods.&lt;br /&gt;
&lt;br /&gt;
== [[User:Rick|Rick]]'s utilities ==&lt;br /&gt;
Fabulous tools made by the marvelous Rick. All Hail Rick!&lt;br /&gt;
&lt;br /&gt;
=== [[User:Rick/Tweak|Gibbed's Dwarf Fortress Tweak]] ===&lt;br /&gt;
&lt;br /&gt;
A toolset with many modules for tweaking / editing Dwarf Fortress memory. [[User:Rick/Tweak|Check the full article for more details]].&lt;br /&gt;
&lt;br /&gt;
== Dwarf Foreman ==&lt;br /&gt;
[http://www.pavlovian.net/foreman/ Home page]. Makes switching jobs on and off for large numbers of dwarves simple. Dwarves are grouped by their profession, or custom profession if they have one. By clicking on the graph you can enable any job for all dwarves with that profession. Still in alpha for this version of DF, if it doesn't recognize one of the new professions, check the file '''debug.txt''' in the directory you run foreman from.&lt;br /&gt;
&lt;br /&gt;
Though prone to crashing currently, saving and exiting DF, starting foreman and then starting DF again will usually get it working again. Zorba would also appreciate it if you'd email him the crash log located in the Dwarf Foreman directory when this happens (zorba-foremancrash@pavlovian.net).&lt;br /&gt;
&lt;br /&gt;
Dwarf Foreman currently allows you to change the jobs of visiting merchants, outpost liaisons, children, and any other dwarves that aren't normally controllable. It is unsupported but occasionally hilarious, and allows you to finally put those lazy dwarven children to work.&lt;br /&gt;
&lt;br /&gt;
This handy utility would be an ideal complement to an updated LabourDF.&lt;br /&gt;
&lt;br /&gt;
Source code is available.&lt;br /&gt;
----&lt;br /&gt;
To make Foreman compatible with '''v0.27.168.33g''', download the new version and update the config file as shown below. - [http://forums.somethingawful.com/showthread.php?threadid=2677834&amp;amp;userid=0&amp;amp;perpage=40&amp;amp;pagenumber=74#post337422833 Originally posted by Mu.]&lt;br /&gt;
&amp;lt;pre&amp;gt;check=008c407c&lt;br /&gt;
critter_start=01427B50&lt;br /&gt;
dwarfidpos=01248AC8&lt;br /&gt;
profession_start=45c&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.173.38a''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01E30A43&lt;br /&gt;
critter_start=01450E98&lt;br /&gt;
dwarfidpos=01271E10&lt;br /&gt;
profession_start=45c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38a''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=023401d3&lt;br /&gt;
critter_start=01463378&lt;br /&gt;
dwarfidpos=01284188&lt;br /&gt;
profession_start=480&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38b''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01e3dbcc&lt;br /&gt;
critter_start=01463570&lt;br /&gt;
dwarfidpos=01284188&lt;br /&gt;
profession_start=0470&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38c''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01cf4654&lt;br /&gt;
critter_start=01464570&lt;br /&gt;
dwarfidpos=01285188&lt;br /&gt;
profession_start=0470&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.39a''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01aa9d3a&lt;br /&gt;
critter_start=015124f4&lt;br /&gt;
dwarfidpos=0131f1b8&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.39b''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01a16957&lt;br /&gt;
critter_start=015134f4&lt;br /&gt;
dwarfidpos=013201b8&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== StartProfile ==&lt;br /&gt;
Jifodus wrote a little utility that lets you maintain profiles of your starting dwarves.&lt;br /&gt;
Works for versions 0.27.169.33b, 0.27.169.33c, 0.27.169.33d, and 0.27.169.33e. Check the readme to find out how to switch between the different versions. If you wish to patch the executable yourself, please check [[Talk:Utilities#StartProfile|the utilities talk page]].&lt;br /&gt;
&lt;br /&gt;
[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001367 Discussion thread]&lt;br /&gt;
&lt;br /&gt;
Obsolete: [http://www.geocities.com/jifodus/StartProfile.zip StartProfile utility]&lt;br /&gt;
&lt;br /&gt;
[http://www.geocities.com/jifodus/dfufend.zip StartProfile utility]&lt;br /&gt;
&lt;br /&gt;
Incidentally, if you try this utility, please report success/failure in [[Talk:Utilities#StartProfile|the utilities talk page]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== [[User:0x517A5D|0x517A5D]]'s utilities ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Attention!&amp;lt;/b&amp;gt;  As the host site of these utilities is placing links to amateur pornographic videos on the download pages, these links are currently &amp;lt;b&amp;gt;Not Safe For Work!&amp;lt;/b&amp;gt;  Please see my [[User_talk:0x517A5D|User Talk]] page for discussion and a blanket permission to take care of this &amp;lt;strike&amp;gt;issue&amp;lt;/strike&amp;gt; problem.  Sorry about this.  &amp;amp;mdash;[[User:0x517A5D|0x517A5D]]&lt;br /&gt;
&lt;br /&gt;
=== Enable Magma Buildings ===&lt;br /&gt;
Helper utility for Rick's reveal.exe&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=3935enable_magma_buildings.zip enable_magma_buildings.zip]&lt;br /&gt;
&lt;br /&gt;
You need this utility in the case that you used the reveal utility, and&lt;br /&gt;
you had not yet discovered any subsurface magma.&lt;br /&gt;
(If the hide utility is ever updated, you could also hide a few magma&lt;br /&gt;
tiles and then dig them out.  That worked in the old version.)&lt;br /&gt;
&lt;br /&gt;
Because there is no actual flag that controls whether magma has been seen&lt;br /&gt;
(the game searches a list, probably a list of notable events), I had to&lt;br /&gt;
patch the game's code.  This means you need to run the utility every time&lt;br /&gt;
you start dwarfort.exe.&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent.  &lt;br /&gt;
It is expected to work with future releases of Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
=== Regional Prospector ===&lt;br /&gt;
&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=regional_prospector.zip regional_prospector.zip]''(Careful, download link contains images of pornography as ads.)''&lt;br /&gt;
&lt;br /&gt;
A simple but very helpful utility that shows hidden map features at embark time.  &lt;br /&gt;
If you're trying to find the perfect start location by repeatedly embarking and &lt;br /&gt;
revealing, give this one a shot!&lt;br /&gt;
&lt;br /&gt;
Map key:&lt;br /&gt;
:{{Raw Tile|≈|#F00|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;volcano; magma reaches the surface&lt;br /&gt;
:{{Raw Tile|~|#F00|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground magma pipe or magma pool&lt;br /&gt;
:{{Raw Tile|≈|#00F|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground river&lt;br /&gt;
:{{Raw Tile|~|#00F|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground pool&lt;br /&gt;
:{{Raw Tile|#|#000|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;chasm&lt;br /&gt;
:{{Raw Tile|£|#0FF|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;adamantine and pits&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent.  &lt;br /&gt;
It is known to work with all releases from 32a to 33g.  &lt;br /&gt;
It is expected to work with future releases of Dwarf Fortress, &lt;br /&gt;
as long as the embark code doesn't change too much.&lt;br /&gt;
&lt;br /&gt;
Discussion and kudos can be left [[User_talk:0x517A5D#Seekret_Projekt|here]].&lt;br /&gt;
&lt;br /&gt;
=== Latitudes ===&lt;br /&gt;
&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=latitudes.zip Latitudes] is a utility that, when on the embark map screen, shows the X/Y coordinates of the current region.   Until Toady adds [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=5&amp;amp;t=002191 proper support], this will do the trick.  Works in .32a through at least .33g.  Technical notes: uses memory injection, so it may be flagged as a suspicious file by anti-virus programs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Temporarily withdrawn as I am experiencing crashes of DF when invoking the utility.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 14:26, 31 December 2007 (EST) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- The bug I was experiencing was a regression in my development version.  It&lt;br /&gt;
does not occur in the current release.  So everything's okay. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Teleport ==&lt;br /&gt;
[http://angband.org/~erasmus/df/teleport22.zip teleport22.zip] -- Teleport dwarves and other creatures&lt;br /&gt;
&lt;br /&gt;
Version 2.2 is &amp;lt;u&amp;gt;really&amp;lt;/u&amp;gt; now independent of the DF version. (33c)&lt;br /&gt;
&lt;br /&gt;
Caveat: The teleport utility does not correctly set the occupancy flag for map squares.  As a results, dwarves will permanently crawl through the square that you teleported them out of.  In addition, you cannot build structures in those squares.&lt;br /&gt;
&lt;br /&gt;
== Water ==&lt;br /&gt;
[http://angband.org/~erasmus/df/water.exe water.exe] -- Quick hack to refill ponds.  Run this while your fortress is up, and it'll restore any &amp;quot;murky pool&amp;quot; tiles (i.e. the floor of ponds and lakes) to 7/7 water.  If you've tunneled into a pond, it'll still refill but will flow out normally.&lt;br /&gt;
&lt;br /&gt;
Only works with version 33e due to its &amp;quot;quick hack&amp;quot; status.&lt;br /&gt;
&lt;br /&gt;
Note:  If there is lava in a murky pool, it will be raised to depth 7/7.&lt;br /&gt;
&lt;br /&gt;
== Lava square ==&lt;br /&gt;
[http://angband.org/~erasmus/df/lavasquare.exe lavasquare.exe] -- Another quick hack to make a 7/7 unit of lava on the currently selected square.  Ignore the random text it spams, as it was quickly adapted from a map query tool, and I didn't bother removing the print statements.&lt;br /&gt;
&lt;br /&gt;
Only works with version 33e. To hack this executable for a later version of dwarf fortress see the [[Talk:Utilities#Lavasquare|talk page]].&lt;br /&gt;
&lt;br /&gt;
33g version plus autohotkey script: http://www.sendspace.com/file/xsl6gs --[[User:Jackard|Jackard]] 09:43, 13 January 2008 (EST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [http://en.wikipedia.org/wiki/Macro_%28computer_science%29 Macro Programs] ==&lt;br /&gt;
A program that lets you program scripts/macros so that when you press a certain key combination, or in any other fashion activates the program, a series of keystrokes is sent to the active program instead.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.autohotkey.com/ AutoHotKey] ===&lt;br /&gt;
AHK lets you define global hotkeys to send a sequence of keystrokes. For example, you can have {{key|alt}}+{{key|w}} replace {{key|b}}-{{key|C}}-{{key|w}}-{{key|Enter}}-{{key|Enter}} to make wall building much easier.  See [[Macros and Keymaps]] for a how-to and some example scripts.&lt;br /&gt;
----&lt;br /&gt;
See [[:Category:ahk scripts]] for a list of user submitted scripts.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Winmerge ==&lt;br /&gt;
&lt;br /&gt;
This utility allows you to compare folders or files. It highlights anything that does not fit in with the other file, so that you can see if you want to merge them into one file or not..&lt;br /&gt;
&lt;br /&gt;
Download at [http://winmerge.org/].&lt;br /&gt;
[[User:Omagaalpha|Omagaalpha]] 08:30, 13 February 2008 (EST)&lt;br /&gt;
Edit:--[[User:AtomicTroop|AtomicTroop]] 12:15, 23 March 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== DFWall ==&lt;br /&gt;
&lt;br /&gt;
An utility for automatisation of mass constructions. Features three modes:&lt;br /&gt;
&lt;br /&gt;
1. Rectangle rewalling - quickly build a rectangle of walls/floors using:&lt;br /&gt;
&lt;br /&gt;
a) the same saved material every time ([http://mkv25.net/dfma/movie-495-dfwalldemo DEMO])&lt;br /&gt;
&lt;br /&gt;
b) any material with at least 1/10/99 units&lt;br /&gt;
&lt;br /&gt;
2. Quick reselect (for ANY single unit construction) - save that green glass box and never again have to look for it between all the bags!&lt;br /&gt;
&lt;br /&gt;
3. Pattern construction - make a pattern file and have stuff constructed according to it ([http://mkv25.net/dfma/movie-520-dfwalldemo2 DEMO]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more details look here: [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001847 link]&lt;br /&gt;
&lt;br /&gt;
Get the newest version here: [http://dffd.wimbli.com/file.php?id=108 link]&lt;br /&gt;
&lt;br /&gt;
== Accent Removal ==&lt;br /&gt;
&lt;br /&gt;
This is a batch file compatible with [http://www.inforapid.de/html/searchreplace.htm InfoRapid Search &amp;amp; Replace.]&lt;br /&gt;
&lt;br /&gt;
It is used on the following raws to remove accented letters from translations:&lt;br /&gt;
*language_DWARF.txt&lt;br /&gt;
*language_ELF.txt&lt;br /&gt;
*language_GOBLIN.txt&lt;br /&gt;
*language_HUMAN.txt&lt;br /&gt;
&lt;br /&gt;
This could be useful for character sets that render accents improperly. Please remember to backup your raws before doing crazy things like this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;„&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt; &amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ƒ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;†&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;…&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;c&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‚&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Š&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ˆ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‰&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Œ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‹&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¤&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;n&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;•&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;”&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;“&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¢&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;—&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;–&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;£&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;˜&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;y&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dtil ==&lt;br /&gt;
*[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001843 Forum Thread]&lt;br /&gt;
Dtil is a general purpose tool host that supplies a dynamically generated SDK for plugin authors.&lt;br /&gt;
&lt;br /&gt;
== Modbase ==&lt;br /&gt;
&lt;br /&gt;
Modbase is a great tool made by Sean Mirrsen which allows you to freely swap mods and tweak game settings.&lt;br /&gt;
[http://www.bay12games.com/forum/index.php?topic=18623.0 Get it now!]&lt;br /&gt;
For version 0.38c.&lt;br /&gt;
&lt;br /&gt;
== DF World Generator ==&lt;br /&gt;
&lt;br /&gt;
Swiftly written supplement to the command line world generator. Written in Python, so you have to have Python installed to use this.&lt;br /&gt;
Follow [http://dffd.wimbli.com/file.php?id=278 this] link to get to the file. It must be run from the command line and be in the DF Directory to work. Running the program with no parameters will provoke a short help-me dialog which will explain how to run it properly.&lt;br /&gt;
Enjoy!&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28233</id>
		<title>User:Jifodus</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28233"/>
		<updated>2008-07-16T18:33:19Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* Memory */ Addresses and offsets for new version v0.28.181.39b&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My work analyzing DF's formats:&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Memory research|Memory research]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/CMV file format|CMV file format]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Dwarf Fortress Utility Framework|Dwarf Fortress Utility Framework]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Map block|Map block info]]&lt;br /&gt;
&lt;br /&gt;
==Memory==&lt;br /&gt;
===v0.28.181.39a===&lt;br /&gt;
This is the result of a quick analysis, it's incomplete and only partially checked, but it may allow some of the tools to work. It appears that the existing [[User:Rick/Memory research#Tile Block|map data]] offsets are still valid.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menu_state == 0x01322D58&lt;br /&gt;
focused_creature == 0x00D16C20&lt;br /&gt;
cursor_x == 0x009D6284&lt;br /&gt;
cursor_y == 0x009D6288&lt;br /&gt;
cursor_z == 0x009D628C&lt;br /&gt;
map_count_x == 0x01554040&lt;br /&gt;
map_count_y == 0x01554044&lt;br /&gt;
map_count_z == 0x01554048&lt;br /&gt;
map_data == 0x01554028&lt;br /&gt;
main_creature_vector == 0x015124F4&lt;br /&gt;
dwarf_race_id == 0x0131F1B8&lt;br /&gt;
starting_points == 0x00834693&lt;br /&gt;
starting_points_offset == 0x00000904&lt;br /&gt;
alt-starting_dwarves == 0x008355A4&lt;br /&gt;
alt-language_vector == 0x01555FA8&lt;br /&gt;
words_vector == 0x01555E88&lt;br /&gt;
happiness_offset == 0x00000520&lt;br /&gt;
art_defacement_malus == 0x00850135&lt;br /&gt;
skill_limit == 0x00831263&lt;br /&gt;
start_game_data == 0x01330D98&lt;br /&gt;
creature_jobs == 0x00000474&lt;br /&gt;
creature_race == 0x0000008C&lt;br /&gt;
creature_x == 0x00000094&lt;br /&gt;
creature_y == 0x00000096&lt;br /&gt;
creature_z == 0x00000098&lt;br /&gt;
creature_id == 0x000000F4&lt;br /&gt;
dwarf_civ_id == 0x0131F1AC&lt;br /&gt;
creature_civ == 0x00000100&lt;br /&gt;
creature_bodyparts == 0x000002FC&lt;br /&gt;
alt-creature_pain == 0x00000364&lt;br /&gt;
creature_exhaustion == 0x00000368&lt;br /&gt;
creature_hunger == 0x0000036C&lt;br /&gt;
creature_thirst == 0x00000370&lt;br /&gt;
creature_drowsiness == 0x00000374&lt;br /&gt;
creature_strength == 0x00000438&lt;br /&gt;
creature_agility == 0x0000043C&lt;br /&gt;
creature_toughness == 0x00000440&lt;br /&gt;
creature_skills == 0x00000444&lt;br /&gt;
creature_total_xp == 0x000004DC&lt;br /&gt;
dwarf_fortress == 0x009623E4&lt;br /&gt;
pe_timestamp == 0x00400108&lt;br /&gt;
pe_timestampv == 0x487B4E8B&lt;br /&gt;
dwarf_foreman_check == 0x01AA9D3A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===v0.28.181.39b===&lt;br /&gt;
This is the result of a quick analysis, it's only partially checked, but it allows the core Tweak tools and Foreman to work. It appears that the existing [[User:Rick/Memory research#Tile Block|map data]] offsets are still valid.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menu_state == 0x01323D58&lt;br /&gt;
focused_creature == 0x00D17C20&lt;br /&gt;
cursor_x == 0x009D7284&lt;br /&gt;
cursor_y == 0x009D7288&lt;br /&gt;
cursor_z == 0x009D728C&lt;br /&gt;
map_count_x == 0x01555040&lt;br /&gt;
map_count_y == 0x01555044&lt;br /&gt;
map_count_z == 0x01555048&lt;br /&gt;
map_data == 0x01555028&lt;br /&gt;
main_creature_vector == 0x015134F4&lt;br /&gt;
dwarf_race_id == 0x013201B8&lt;br /&gt;
starting_points == 0x00835243&lt;br /&gt;
starting_points_offset == 0x00000904&lt;br /&gt;
alt-starting_dwarves == 0x00836154&lt;br /&gt;
alt-language_vector == 0x01556FA8&lt;br /&gt;
words_vector == 0x01556E88&lt;br /&gt;
happiness_offset == 0x00000520&lt;br /&gt;
art_defacement_malus == 0x00850D35&lt;br /&gt;
skill_limit == 0x00831E13&lt;br /&gt;
start_game_data == 0x01331D98&lt;br /&gt;
creature_jobs == 0x00000474&lt;br /&gt;
creature_race == 0x0000008C&lt;br /&gt;
creature_x == 0x00000094&lt;br /&gt;
creature_y == 0x00000096&lt;br /&gt;
creature_z == 0x00000098&lt;br /&gt;
creature_id == 0x000000F4&lt;br /&gt;
dwarf_civ_id == 0x013201AC&lt;br /&gt;
creature_civ == 0x00000100&lt;br /&gt;
creature_bodyparts == 0x000002FC&lt;br /&gt;
alt-creature_pain == 0x00000364&lt;br /&gt;
creature_exhaustion == 0x00000368&lt;br /&gt;
creature_hunger == 0x0000036C&lt;br /&gt;
creature_thirst == 0x00000370&lt;br /&gt;
creature_drowsiness == 0x00000374&lt;br /&gt;
creature_strength == 0x00000438&lt;br /&gt;
creature_agility == 0x0000043C&lt;br /&gt;
creature_toughness == 0x00000440&lt;br /&gt;
creature_skills == 0x00000444&lt;br /&gt;
creature_total_xp == 0x000004DC&lt;br /&gt;
dwarf_fortress == 0x009633E4&lt;br /&gt;
pe_timestamp == 0x00400108&lt;br /&gt;
pe_timestampv == 0x487C9338&lt;br /&gt;
dwarf_foreman_check == 0x01A16957&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
===tile_tool===&lt;br /&gt;
I wrote a tool that allows nearly complete editing of a tile's data. It's designed for analyzing a tile's data. Since it's not designed for mass editing, therefore I don't recommend using it for adding more than a couple tiles of water or magma. Or build multiple buildings on top of each other. Use '?' for in-tool help.&lt;br /&gt;
&lt;br /&gt;
http://www.geocities.com/jifodus/tile_tool.zip (61KB)&lt;br /&gt;
&lt;br /&gt;
Mar 04, 2008: http://www.geocities.com/jifodus/auto-update_tile_tool.zip (75KB) - Alternate version that is usable as soon as configuration gets uploaded for it. Source code: http://www.geocities.com/jifodus/tile_tool_src.zip (14KB)&lt;br /&gt;
&lt;br /&gt;
Editable information:&lt;br /&gt;
* Liquid Level&lt;br /&gt;
* Designation Flags&lt;br /&gt;
* Occupancy Flags&lt;br /&gt;
* Temperature&lt;br /&gt;
* Tile #&lt;br /&gt;
* Unknown Values&lt;br /&gt;
&lt;br /&gt;
Additional features:&lt;br /&gt;
* Track tile data.&lt;br /&gt;
* Compare a tile with a tracked tile.&lt;br /&gt;
* Dump the raw bits of Designation, Occupancy, Pathfinding and Unknowns.&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28232</id>
		<title>User:Jifodus</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28232"/>
		<updated>2008-07-16T17:34:14Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* v0.28.181.39a */ My idiotic analysis confused me, all numbers are correct and map data was unchanged.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My work analyzing DF's formats:&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Memory research|Memory research]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/CMV file format|CMV file format]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Dwarf Fortress Utility Framework|Dwarf Fortress Utility Framework]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Map block|Map block info]]&lt;br /&gt;
&lt;br /&gt;
==Memory==&lt;br /&gt;
===v0.28.181.39a===&lt;br /&gt;
This is the result of a quick analysis, it's incomplete and only partially checked, but it may allow some of the tools to work. It appears that the existing [[User:Rick/Memory research#Tile Block|map data]] offsets are still valid.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menu_state == 0x01322D58&lt;br /&gt;
focused_creature == 0x00D16C20&lt;br /&gt;
cursor_x == 0x009D6284&lt;br /&gt;
cursor_y == 0x009D6288&lt;br /&gt;
cursor_z == 0x009D628C&lt;br /&gt;
map_count_x == 0x01554040&lt;br /&gt;
map_count_y == 0x01554044&lt;br /&gt;
map_count_z == 0x01554048&lt;br /&gt;
map_data == 0x01554028&lt;br /&gt;
main_creature_vector == 0x015124F4&lt;br /&gt;
dwarf_race_id == 0x0131F1B8&lt;br /&gt;
starting_points == 0x00834693&lt;br /&gt;
starting_points_offset == 0x00000904&lt;br /&gt;
alt-starting_dwarves == 0x008355A4&lt;br /&gt;
alt-language_vector == 0x01555FA8&lt;br /&gt;
words_vector == 0x01555E88&lt;br /&gt;
happiness_offset == 0x00000520&lt;br /&gt;
art_defacement_malus == 0x00850135&lt;br /&gt;
skill_limit == 0x00831263&lt;br /&gt;
start_game_data == 0x01330D98&lt;br /&gt;
creature_jobs == 0x00000474&lt;br /&gt;
creature_race == 0x0000008C&lt;br /&gt;
creature_x == 0x00000094&lt;br /&gt;
creature_y == 0x00000096&lt;br /&gt;
creature_z == 0x00000098&lt;br /&gt;
creature_id == 0x000000F4&lt;br /&gt;
dwarf_civ_id == 0x0131F1AC&lt;br /&gt;
creature_civ == 0x00000100&lt;br /&gt;
creature_bodyparts == 0x000002FC&lt;br /&gt;
alt-creature_pain == 0x00000364&lt;br /&gt;
creature_exhaustion == 0x00000368&lt;br /&gt;
creature_hunger == 0x0000036C&lt;br /&gt;
creature_thirst == 0x00000370&lt;br /&gt;
creature_drowsiness == 0x00000374&lt;br /&gt;
creature_strength == 0x00000438&lt;br /&gt;
creature_agility == 0x0000043C&lt;br /&gt;
creature_toughness == 0x00000440&lt;br /&gt;
creature_skills == 0x00000444&lt;br /&gt;
creature_total_xp == 0x000004DC&lt;br /&gt;
dwarf_fortress == 0x009623E4&lt;br /&gt;
pe_timestamp == 0x00400108&lt;br /&gt;
pe_timestampv == 0x487B4E8B&lt;br /&gt;
dwarf_foreman_check == 0x01AA9D3A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
===tile_tool===&lt;br /&gt;
I wrote a tool that allows nearly complete editing of a tile's data. It's designed for analyzing a tile's data. Since it's not designed for mass editing, therefore I don't recommend using it for adding more than a couple tiles of water or magma. Or build multiple buildings on top of each other. Use '?' for in-tool help.&lt;br /&gt;
&lt;br /&gt;
http://www.geocities.com/jifodus/tile_tool.zip (61KB)&lt;br /&gt;
&lt;br /&gt;
Mar 04, 2008: http://www.geocities.com/jifodus/auto-update_tile_tool.zip (75KB) - Alternate version that is usable as soon as configuration gets uploaded for it. Source code: http://www.geocities.com/jifodus/tile_tool_src.zip (14KB)&lt;br /&gt;
&lt;br /&gt;
Editable information:&lt;br /&gt;
* Liquid Level&lt;br /&gt;
* Designation Flags&lt;br /&gt;
* Occupancy Flags&lt;br /&gt;
* Temperature&lt;br /&gt;
* Tile #&lt;br /&gt;
* Unknown Values&lt;br /&gt;
&lt;br /&gt;
Additional features:&lt;br /&gt;
* Track tile data.&lt;br /&gt;
* Compare a tile with a tracked tile.&lt;br /&gt;
* Dump the raw bits of Designation, Occupancy, Pathfinding and Unknowns.&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28231</id>
		<title>User:Jifodus</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28231"/>
		<updated>2008-07-15T18:56:40Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* v0.28.181.39a */ Update memory locations&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My work analyzing DF's formats:&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Memory research|Memory research]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/CMV file format|CMV file format]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Dwarf Fortress Utility Framework|Dwarf Fortress Utility Framework]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Map block|Map block info]]&lt;br /&gt;
&lt;br /&gt;
==Memory==&lt;br /&gt;
===v0.28.181.39a===&lt;br /&gt;
This is the result of a quick analysis, it's incomplete and only partially checked, but it may allow some of the tools to work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menu_state == 0x01322D58&lt;br /&gt;
focused_creature == 0x00D16C20&lt;br /&gt;
cursor_x == 0x009D6284&lt;br /&gt;
cursor_y == 0x009D6288&lt;br /&gt;
cursor_z == 0x009D628C&lt;br /&gt;
map_count_x == 0x01554040&lt;br /&gt;
map_count_y == 0x01554044&lt;br /&gt;
map_count_z == 0x01554048&lt;br /&gt;
map_data == 0x01554028 *caution may be invalid*&lt;br /&gt;
main_creature_vector == 0x015124F4&lt;br /&gt;
dwarf_race_id == 0x0131F1B8&lt;br /&gt;
starting_points == 0x00834693&lt;br /&gt;
starting_points_offset == 0x00000904&lt;br /&gt;
alt-starting_dwarves == 0x008355A4&lt;br /&gt;
alt-language_vector == 0x01555FA8&lt;br /&gt;
words_vector == 0x01555E88&lt;br /&gt;
happiness_offset == 0x00000520&lt;br /&gt;
art_defacement_malus == 0x00850135&lt;br /&gt;
skill_limit == 0x00831263&lt;br /&gt;
start_game_data == 0x01330D98&lt;br /&gt;
creature_jobs == 0x00000474&lt;br /&gt;
creature_race == 0x0000008C&lt;br /&gt;
creature_x == 0x00000094&lt;br /&gt;
creature_y == 0x00000096&lt;br /&gt;
creature_z == 0x00000098&lt;br /&gt;
creature_id == 0x000000F4&lt;br /&gt;
dwarf_civ_id == 0x0131F1AC&lt;br /&gt;
creature_civ == 0x00000100&lt;br /&gt;
creature_bodyparts == 0x000002FC&lt;br /&gt;
alt-creature_pain == 0x00000364&lt;br /&gt;
creature_exhaustion == 0x00000368&lt;br /&gt;
creature_hunger == 0x0000036C&lt;br /&gt;
creature_thirst == 0x00000370&lt;br /&gt;
creature_drowsiness == 0x00000374&lt;br /&gt;
creature_strength == 0x00000438&lt;br /&gt;
creature_agility == 0x0000043C&lt;br /&gt;
creature_toughness == 0x00000440&lt;br /&gt;
creature_skills == 0x00000444&lt;br /&gt;
creature_total_xp == 0x000004DC&lt;br /&gt;
dwarf_fortress == 0x009623E4&lt;br /&gt;
pe_timestamp == 0x00400108&lt;br /&gt;
pe_timestampv == 0x487B4E8B&lt;br /&gt;
dwarf_foreman_check == 0x01AA9D3A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
===tile_tool===&lt;br /&gt;
I wrote a tool that allows nearly complete editing of a tile's data. It's designed for analyzing a tile's data. Since it's not designed for mass editing, therefore I don't recommend using it for adding more than a couple tiles of water or magma. Or build multiple buildings on top of each other. Use '?' for in-tool help.&lt;br /&gt;
&lt;br /&gt;
http://www.geocities.com/jifodus/tile_tool.zip (61KB)&lt;br /&gt;
&lt;br /&gt;
Mar 04, 2008: http://www.geocities.com/jifodus/auto-update_tile_tool.zip (75KB) - Alternate version that is usable as soon as configuration gets uploaded for it. Source code: http://www.geocities.com/jifodus/tile_tool_src.zip (14KB)&lt;br /&gt;
&lt;br /&gt;
Editable information:&lt;br /&gt;
* Liquid Level&lt;br /&gt;
* Designation Flags&lt;br /&gt;
* Occupancy Flags&lt;br /&gt;
* Temperature&lt;br /&gt;
* Tile #&lt;br /&gt;
* Unknown Values&lt;br /&gt;
&lt;br /&gt;
Additional features:&lt;br /&gt;
* Track tile data.&lt;br /&gt;
* Compare a tile with a tracked tile.&lt;br /&gt;
* Dump the raw bits of Designation, Occupancy, Pathfinding and Unknowns.&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8984</id>
		<title>40d:Utilities</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8984"/>
		<updated>2008-07-14T21:13:06Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* Dwarf Foreman */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are third party applications developed for Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
== Movies, Screenshots, Map Files ==&lt;br /&gt;
&lt;br /&gt;
=== DF Map Compressor / DF Map Archive ===&lt;br /&gt;
&lt;br /&gt;
*[http://shadowlord13.googlepages.com/dfmap-index.html SL's DF Map Compressor - Website]&lt;br /&gt;
*[http://mkv25.net/dfma/ Dwarf Fortress Map Archive]&lt;br /&gt;
&lt;br /&gt;
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 that features an online viewer (written in Flash).&lt;br /&gt;
&lt;br /&gt;
The map compressor was created by Shadowlord in May 2007. Extract from the website :&lt;br /&gt;
:&amp;quot;The '''DF Map Compressor''' is a program I made to encode Dwarf Fortress fortress or world map images into a much smaller format than is possible with normal image formats. Here's a quick summary of how it works: It determines the size of your tiles from your DF font file (or asks you), splits the map up into tiles, identifies duplicate tiles, writes out every unique tile image, and then writes out a list of ID#s for each tile position which points to the tile image for that tile. What it outputs is piped through the LZMA compressor (the one used in 7-zip), to compress it further. The .df-map file which it writes out is usually less than 100 KB in size. (By comparison, a PNG of the same map can exceed 2 megabytes, depending on how well you compress it, whether you change the color depth, and whether you are using a graphical tileset or detailed font).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Read more about the [[User:Markavian/DF_Map_Archive|DF Map Archive]] on Markavian's User page.&lt;br /&gt;
&lt;br /&gt;
=== CMVPlayer === &lt;br /&gt;
&lt;br /&gt;
[http://www.geocities.com/jifodus/CMVPlayer.zip Download CMVPlayer.zip] &lt;br /&gt;
&lt;br /&gt;
First released by Jifodus in April 2007. This application enables playback of the DF movies (.cmv) without starting DF. It also provides some more functionalities, such as :&lt;br /&gt;
* Rewind&lt;br /&gt;
* Pause&lt;br /&gt;
* Play frame per frame&lt;br /&gt;
&lt;br /&gt;
To use, simply unzip the file, and drop and drag the movie on CMVPlayer.exe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 3Dwarf Visualizer - a tool to view maps in 3D ===&lt;br /&gt;
*[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001450 Bay12Forums Thread]&lt;br /&gt;
This is NOT realtime, that is still a long, long way off.&lt;br /&gt;
What this does is read the map out of your computer's memory when DF is running and save it to a file it can read. It can then open that file and show you your fort in glorious 3d.&lt;br /&gt;
Still in beta, obviously.&lt;br /&gt;
&lt;br /&gt;
=== Dwarvis / MapExtract ===&lt;br /&gt;
*[http://code.google.com/p/dwarvis/ dwarvis on Google Code]&lt;br /&gt;
This project is meant as a 3rd party utility for the cult-game dwarf fortress. Its purpose is to eventually provide 3-dimensional visualization of static snapshots of the ingame world of a given fortress.&lt;br /&gt;
&lt;br /&gt;
=== Dwarf Fortress File Depot ===&lt;br /&gt;
*[http://dffd.wimbli.com/ The Dwarf Fortress File Upload Service], an excellent place to store mods, community games, tilesets and other files. Courtesy of [http://www.dwarffortresswiki.net/index.php/User:Janus Janus]; for files related to Dwarf Fortress only.&lt;br /&gt;
&lt;br /&gt;
== Dwarf Companion ==&lt;br /&gt;
The [[User:Bartavelle/DwarfCompanion|Dwarf Companion]], created by [[User:Bartavelle|Bartavelle]] is a graphical helper utility for dwarf fortress that aims to fill the gaps in the user interface. It allows for some nefarious cheating. For example, you can now mark your nobles as butcherable, and change possessed dwarves to fey moods.&lt;br /&gt;
&lt;br /&gt;
== [[User:Rick|Rick]]'s utilities ==&lt;br /&gt;
Fabulous tools made by the marvelous Rick. All Hail Rick!&lt;br /&gt;
&lt;br /&gt;
=== [[User:Rick/Tweak|Gibbed's Dwarf Fortress Tweak]] ===&lt;br /&gt;
&lt;br /&gt;
A toolset with many modules for tweaking / editing Dwarf Fortress memory. [[User:Rick/Tweak|Check the full article for more details]].&lt;br /&gt;
&lt;br /&gt;
== Dwarf Foreman ==&lt;br /&gt;
[http://www.pavlovian.net/foreman/ Home page]. Makes switching jobs on and off for large numbers of dwarves simple. Dwarves are grouped by their profession, or custom profession if they have one. By clicking on the graph you can enable any job for all dwarves with that profession. Still in alpha for this version of DF, if it doesn't recognize one of the new professions, check the file '''debug.txt''' in the directory you run foreman from.&lt;br /&gt;
&lt;br /&gt;
Though prone to crashing currently, saving and exiting DF, starting foreman and then starting DF again will usually get it working again. Zorba would also appreciate it if you'd email him the crash log located in the Dwarf Foreman directory when this happens (zorba-foremancrash@pavlovian.net).&lt;br /&gt;
&lt;br /&gt;
Dwarf Foreman currently allows you to change the jobs of visiting merchants, outpost liaisons, children, and any other dwarves that aren't normally controllable. It is unsupported but occasionally hilarious, and allows you to finally put those lazy dwarven children to work.&lt;br /&gt;
&lt;br /&gt;
This handy utility would be an ideal complement to an updated LabourDF.&lt;br /&gt;
&lt;br /&gt;
Source code is available.&lt;br /&gt;
----&lt;br /&gt;
To make Foreman compatible with '''v0.27.168.33g''', download the new version and update the config file as shown below. - [http://forums.somethingawful.com/showthread.php?threadid=2677834&amp;amp;userid=0&amp;amp;perpage=40&amp;amp;pagenumber=74#post337422833 Originally posted by Mu.]&lt;br /&gt;
&amp;lt;pre&amp;gt;check=008c407c&lt;br /&gt;
critter_start=01427B50&lt;br /&gt;
dwarfidpos=01248AC8&lt;br /&gt;
profession_start=45c&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.173.38a''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01E30A43&lt;br /&gt;
critter_start=01450E98&lt;br /&gt;
dwarfidpos=01271E10&lt;br /&gt;
profession_start=45c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38a''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=023401d3&lt;br /&gt;
critter_start=01463378&lt;br /&gt;
dwarfidpos=01284188&lt;br /&gt;
profession_start=480&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38b''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01e3dbcc&lt;br /&gt;
critter_start=01463570&lt;br /&gt;
dwarfidpos=01284188&lt;br /&gt;
profession_start=0470&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38c''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01cf4654&lt;br /&gt;
critter_start=01464570&lt;br /&gt;
dwarfidpos=01285188&lt;br /&gt;
profession_start=0470&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.39a''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01aa9d3a&lt;br /&gt;
critter_start=015124f4&lt;br /&gt;
dwarfidpos=0131f1b8&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== StartProfile ==&lt;br /&gt;
Jifodus wrote a little utility that lets you maintain profiles of your starting dwarves.&lt;br /&gt;
Works for versions 0.27.169.33b, 0.27.169.33c, 0.27.169.33d, and 0.27.169.33e. Check the readme to find out how to switch between the different versions. If you wish to patch the executable yourself, please check [[Talk:Utilities#StartProfile|the utilities talk page]].&lt;br /&gt;
&lt;br /&gt;
[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001367 Discussion thread]&lt;br /&gt;
&lt;br /&gt;
Obsolete: [http://www.geocities.com/jifodus/StartProfile.zip StartProfile utility]&lt;br /&gt;
&lt;br /&gt;
[http://www.geocities.com/jifodus/dfufend.zip StartProfile utility]&lt;br /&gt;
&lt;br /&gt;
Incidentally, if you try this utility, please report success/failure in [[Talk:Utilities#StartProfile|the utilities talk page]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== [[User:0x517A5D|0x517A5D]]'s utilities ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Attention!&amp;lt;/b&amp;gt;  As the host site of these utilities is placing links to amateur pornographic videos on the download pages, these links are currently &amp;lt;b&amp;gt;Not Safe For Work!&amp;lt;/b&amp;gt;  Please see my [[User_talk:0x517A5D|User Talk]] page for discussion and a blanket permission to take care of this &amp;lt;strike&amp;gt;issue&amp;lt;/strike&amp;gt; problem.  Sorry about this.  &amp;amp;mdash;[[User:0x517A5D|0x517A5D]]&lt;br /&gt;
&lt;br /&gt;
=== Enable Magma Buildings ===&lt;br /&gt;
Helper utility for Rick's reveal.exe&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=3935enable_magma_buildings.zip enable_magma_buildings.zip]&lt;br /&gt;
&lt;br /&gt;
You need this utility in the case that you used the reveal utility, and&lt;br /&gt;
you had not yet discovered any subsurface magma.&lt;br /&gt;
(If the hide utility is ever updated, you could also hide a few magma&lt;br /&gt;
tiles and then dig them out.  That worked in the old version.)&lt;br /&gt;
&lt;br /&gt;
Because there is no actual flag that controls whether magma has been seen&lt;br /&gt;
(the game searches a list, probably a list of notable events), I had to&lt;br /&gt;
patch the game's code.  This means you need to run the utility every time&lt;br /&gt;
you start dwarfort.exe.&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent.  &lt;br /&gt;
It is expected to work with future releases of Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
=== Regional Prospector ===&lt;br /&gt;
&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=regional_prospector.zip regional_prospector.zip]''(Careful, download link contains images of pornography as ads.)''&lt;br /&gt;
&lt;br /&gt;
A simple but very helpful utility that shows hidden map features at embark time.  &lt;br /&gt;
If you're trying to find the perfect start location by repeatedly embarking and &lt;br /&gt;
revealing, give this one a shot!&lt;br /&gt;
&lt;br /&gt;
Map key:&lt;br /&gt;
:{{Raw Tile|≈|#F00|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;volcano; magma reaches the surface&lt;br /&gt;
:{{Raw Tile|~|#F00|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground magma pipe or magma pool&lt;br /&gt;
:{{Raw Tile|≈|#00F|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground river&lt;br /&gt;
:{{Raw Tile|~|#00F|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground pool&lt;br /&gt;
:{{Raw Tile|#|#000|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;chasm&lt;br /&gt;
:{{Raw Tile|£|#0FF|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;adamantine and pits&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent.  &lt;br /&gt;
It is known to work with all releases from 32a to 33g.  &lt;br /&gt;
It is expected to work with future releases of Dwarf Fortress, &lt;br /&gt;
as long as the embark code doesn't change too much.&lt;br /&gt;
&lt;br /&gt;
Discussion and kudos can be left [[User_talk:0x517A5D#Seekret_Projekt|here]].&lt;br /&gt;
&lt;br /&gt;
=== Latitudes ===&lt;br /&gt;
&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=latitudes.zip Latitudes] is a utility that, when on the embark map screen, shows the X/Y coordinates of the current region.   Until Toady adds [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=5&amp;amp;t=002191 proper support], this will do the trick.  Works in .32a through at least .33g.  Technical notes: uses memory injection, so it may be flagged as a suspicious file by anti-virus programs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Temporarily withdrawn as I am experiencing crashes of DF when invoking the utility.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 14:26, 31 December 2007 (EST) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- The bug I was experiencing was a regression in my development version.  It&lt;br /&gt;
does not occur in the current release.  So everything's okay. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Teleport ==&lt;br /&gt;
[http://angband.org/~erasmus/df/teleport22.zip teleport22.zip] -- Teleport dwarves and other creatures&lt;br /&gt;
&lt;br /&gt;
Version 2.2 is &amp;lt;u&amp;gt;really&amp;lt;/u&amp;gt; now independent of the DF version. (33c)&lt;br /&gt;
&lt;br /&gt;
Caveat: The teleport utility does not correctly set the occupancy flag for map squares.  As a results, dwarves will permanently crawl through the square that you teleported them out of.  In addition, you cannot build structures in those squares.&lt;br /&gt;
&lt;br /&gt;
== Water ==&lt;br /&gt;
[http://angband.org/~erasmus/df/water.exe water.exe] -- Quick hack to refill ponds.  Run this while your fortress is up, and it'll restore any &amp;quot;murky pool&amp;quot; tiles (i.e. the floor of ponds and lakes) to 7/7 water.  If you've tunneled into a pond, it'll still refill but will flow out normally.&lt;br /&gt;
&lt;br /&gt;
Only works with version 33e due to its &amp;quot;quick hack&amp;quot; status.&lt;br /&gt;
&lt;br /&gt;
Note:  If there is lava in a murky pool, it will be raised to depth 7/7.&lt;br /&gt;
&lt;br /&gt;
== Lava square ==&lt;br /&gt;
[http://angband.org/~erasmus/df/lavasquare.exe lavasquare.exe] -- Another quick hack to make a 7/7 unit of lava on the currently selected square.  Ignore the random text it spams, as it was quickly adapted from a map query tool, and I didn't bother removing the print statements.&lt;br /&gt;
&lt;br /&gt;
Only works with version 33e. To hack this executable for a later version of dwarf fortress see the [[Talk:Utilities#Lavasquare|talk page]].&lt;br /&gt;
&lt;br /&gt;
33g version plus autohotkey script: http://www.sendspace.com/file/xsl6gs --[[User:Jackard|Jackard]] 09:43, 13 January 2008 (EST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [http://en.wikipedia.org/wiki/Macro_%28computer_science%29 Macro Programs] ==&lt;br /&gt;
A program that lets you program scripts/macros so that when you press a certain key combination, or in any other fashion activates the program, a series of keystrokes is sent to the active program instead.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.autohotkey.com/ AutoHotKey] ===&lt;br /&gt;
AHK lets you define global hotkeys to send a sequence of keystrokes. For example, you can have {{key|alt}}+{{key|w}} replace {{key|b}}-{{key|C}}-{{key|w}}-{{key|Enter}}-{{key|Enter}} to make wall building much easier.  See [[Macros and Keymaps]] for a how-to and some example scripts.&lt;br /&gt;
----&lt;br /&gt;
See [[:Category:ahk scripts]] for a list of user submitted scripts.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Winmerge ==&lt;br /&gt;
&lt;br /&gt;
This utility allows you to compare folders or files. It highlights anything that does not fit in with the other file, so that you can see if you want to merge them into one file or not..&lt;br /&gt;
&lt;br /&gt;
Download at [http://winmerge.org/].&lt;br /&gt;
[[User:Omagaalpha|Omagaalpha]] 08:30, 13 February 2008 (EST)&lt;br /&gt;
Edit:--[[User:AtomicTroop|AtomicTroop]] 12:15, 23 March 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== DFWall ==&lt;br /&gt;
&lt;br /&gt;
An utility for automatisation of mass constructions. Features three modes:&lt;br /&gt;
&lt;br /&gt;
1. Rectangle rewalling - quickly build a rectangle of walls/floors using:&lt;br /&gt;
&lt;br /&gt;
a) the same saved material every time ([http://mkv25.net/dfma/movie-495-dfwalldemo DEMO])&lt;br /&gt;
&lt;br /&gt;
b) any material with at least 1/10/99 units&lt;br /&gt;
&lt;br /&gt;
2. Quick reselect (for ANY single unit construction) - save that green glass box and never again have to look for it between all the bags!&lt;br /&gt;
&lt;br /&gt;
3. Pattern construction - make a pattern file and have stuff constructed according to it ([http://mkv25.net/dfma/movie-520-dfwalldemo2 DEMO]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more details look here: [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001847 link]&lt;br /&gt;
&lt;br /&gt;
Get the newest version here: [http://dffd.wimbli.com/file.php?id=108 link]&lt;br /&gt;
&lt;br /&gt;
== Accent Removal ==&lt;br /&gt;
&lt;br /&gt;
This is a batch file compatible with [http://www.inforapid.de/html/searchreplace.htm InfoRapid Search &amp;amp; Replace.]&lt;br /&gt;
&lt;br /&gt;
It is used on the following raws to remove accented letters from translations:&lt;br /&gt;
*language_DWARF.txt&lt;br /&gt;
*language_ELF.txt&lt;br /&gt;
*language_GOBLIN.txt&lt;br /&gt;
*language_HUMAN.txt&lt;br /&gt;
&lt;br /&gt;
This could be useful for character sets that render accents improperly. Please remember to backup your raws before doing crazy things like this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;„&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt; &amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ƒ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;†&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;…&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;c&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‚&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Š&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ˆ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‰&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Œ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‹&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¤&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;n&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;•&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;”&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;“&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¢&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;—&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;–&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;£&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;˜&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;y&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dtil ==&lt;br /&gt;
*[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001843 Forum Thread]&lt;br /&gt;
Dtil is a general purpose tool host that supplies a dynamically generated SDK for plugin authors.&lt;br /&gt;
&lt;br /&gt;
== Modbase ==&lt;br /&gt;
&lt;br /&gt;
Modbase is a great tool made by Sean Mirrsen which allows you to freely swap mods and tweak game settings.&lt;br /&gt;
[http://www.bay12games.com/forum/index.php?topic=18623.0 Get it now!]&lt;br /&gt;
For version 0.38c.&lt;br /&gt;
&lt;br /&gt;
== DF World Generator ==&lt;br /&gt;
&lt;br /&gt;
Swiftly written supplement to the command line world generator. Written in Python, so you have to have Python installed to use this.&lt;br /&gt;
Follow [http://dffd.wimbli.com/file.php?id=278 this] link to get to the file. It must be run from the command line and be in the DF Directory to work. Running the program with no parameters will provoke a short help-me dialog which will explain how to run it properly.&lt;br /&gt;
Enjoy!&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28230</id>
		<title>User:Jifodus</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28230"/>
		<updated>2008-07-14T17:08:14Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: Some of the tool addresses&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My work analyzing DF's formats:&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Memory research|Memory research]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/CMV file format|CMV file format]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Dwarf Fortress Utility Framework|Dwarf Fortress Utility Framework]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Map block|Map block info]]&lt;br /&gt;
&lt;br /&gt;
==Memory==&lt;br /&gt;
===v0.28.181.39a===&lt;br /&gt;
This is the result of a quick analysis, it's incomplete and unchecked, but it may allow some of the tools to work.&lt;br /&gt;
 menu_state == 0x01322D58&lt;br /&gt;
 focused_creature == 0x00D16C20&lt;br /&gt;
 cursor_x == 0x009D6284&lt;br /&gt;
 cursor_y == 0x009D6288&lt;br /&gt;
 cursor_z == 0x009D628C&lt;br /&gt;
 map_count_x == 0x01554040&lt;br /&gt;
 map_count_y == 0x01554044&lt;br /&gt;
 map_count_z == 0x01554048&lt;br /&gt;
 map_vector == _not_found&lt;br /&gt;
 main_creature_vector == 0x015124F4&lt;br /&gt;
 dwarf_race_id == 0x0131F1B8&lt;br /&gt;
 starting_points == _not_found&lt;br /&gt;
 starting_dwarves == _not_found&lt;br /&gt;
 alt-language_vector == 0x01555FA8&lt;br /&gt;
 words_vector == 0x01555E88&lt;br /&gt;
 happiness_offset == 0x00000520&lt;br /&gt;
 art_defacement_malus == 0x00850135&lt;br /&gt;
 skill_limit == 0x00831263&lt;br /&gt;
 start_game_data == 0x01330D98&lt;br /&gt;
 dwarf_fortress == 0x009623E4&lt;br /&gt;
 pe_timestamp == 0x00400108&lt;br /&gt;
 pe_timestampv == 0x487B4E8B&lt;br /&gt;
 dwarf_foreman_check == 0x01AA9D3A&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
===tile_tool===&lt;br /&gt;
I wrote a tool that allows nearly complete editing of a tile's data. It's designed for analyzing a tile's data. Since it's not designed for mass editing, therefore I don't recommend using it for adding more than a couple tiles of water or magma. Or build multiple buildings on top of each other. Use '?' for in-tool help.&lt;br /&gt;
&lt;br /&gt;
http://www.geocities.com/jifodus/tile_tool.zip (61KB)&lt;br /&gt;
&lt;br /&gt;
Mar 04, 2008: http://www.geocities.com/jifodus/auto-update_tile_tool.zip (75KB) - Alternate version that is usable as soon as configuration gets uploaded for it. Source code: http://www.geocities.com/jifodus/tile_tool_src.zip (14KB)&lt;br /&gt;
&lt;br /&gt;
Editable information:&lt;br /&gt;
* Liquid Level&lt;br /&gt;
* Designation Flags&lt;br /&gt;
* Occupancy Flags&lt;br /&gt;
* Temperature&lt;br /&gt;
* Tile #&lt;br /&gt;
* Unknown Values&lt;br /&gt;
&lt;br /&gt;
Additional features:&lt;br /&gt;
* Track tile data.&lt;br /&gt;
* Compare a tile with a tracked tile.&lt;br /&gt;
* Dump the raw bits of Designation, Occupancy, Pathfinding and Unknowns.&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=Utility_Talk:Adjust_Profile&amp;diff=39446</id>
		<title>Utility Talk:Adjust Profile</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=Utility_Talk:Adjust_Profile&amp;diff=39446"/>
		<updated>2008-03-26T03:56:44Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey, looks like a useful tool there. I see you're currently hosting it at Rapidshare; please consider additionally (or alternately) hosting it at the [http://dffd.wimbli.com/about.php DFFD site] to make it easier to download. Anyway, keep up the good work, and thanks. --[[User:Janus|Janus]] 22:30, 23 March 2008 (EDT)&lt;br /&gt;
:It's already bundled with the main release of Rick's Tweak so I didn't see a reason to reupload it, I put that link there before Rick suggested he just pack it in with his stuff. If I make a new release I'll put it there. [[User:Rinn|Rinn]] 12:50, 24 March 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
I notice that you cap the levels at 15, I recommend no cap, due to extra stat point bonuses you can get. --[[User:Jifodus|Jifodus]] 23:56, 25 March 2008 (EDT)&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d_Talk:Utilities&amp;diff=11821</id>
		<title>40d Talk:Utilities</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d_Talk:Utilities&amp;diff=11821"/>
		<updated>2008-03-07T05:41:18Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* Dwarf Foreman */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== DF File Depot ==&lt;br /&gt;
Would be great to get the majority of these uploaded to the [http://dffd.wimbli.com/ Dwarf Fortress File Depot (DFFD)].  I'm having trouble with some of the currently linked hosting sites.  I've just gotten Regional Prospector, so I'll see about getting that one up.  Thanks guys! --[[User:SlMagnvox|SlMagnvox]] 14:33, 25 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== External Utilities ==&lt;br /&gt;
I thinking any Utilities that not made specifically for Dwarf fortress should put together at bottom which I have done. My question should we mark area with header say External utilities? [[User:Omagaalpha|Omagaalpha]] 08:22, 14 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== AutoHotKey ==&lt;br /&gt;
&lt;br /&gt;
Should autohotkey be added as a utility tool for dwarf fortress? I know a few forum users have used it to do repetitive tasks like room designations, maybe it could have its own page and a few dwarf fortress specific script?--[[User:Thehunterunseen|Thehunterunseen]] 20:43, 31 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
:Ive been looking for a macro program that works within dwarf fortress and thats free. Havent found a good program thats the combination of both. What do you use? --[[User:Mizipzor|Mizipzor]] 20:51, 31 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::autohotkey &amp;lt;sup&amp;gt;[http://www.autohotkey.com/]&amp;lt;/sup&amp;gt; is a program like that --[[User:Thehunterunseen|Thehunterunseen]] 21:13, 31 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
:::That was the program I used. Wierd. For me, when I inputed &amp;quot;6&amp;quot; for moving one step right... it moved like 8 steps right or something. Couldnt figure out why. Any ideas? --[[User:Mizipzor|Mizipzor]] 22:57, 31 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::::I know that {{k|shift}} + {{k|→}} = 10&amp;amp;times;{{k|→}}. Could that have something to do with it? --[[User:Savok|Savok]] 23:17, 31 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
:::::I use &amp;quot;Send {LeftArrow}{Enter}{Enter}&amp;quot;, as a test to simply have the wall/floor im building to be placed one step to the right instead of where the cursor actually is. As previously said, however, it didnt work. --[[User:Mizipzor|Mizipzor]] 07:05, 1 November 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::::::That might be because the {LeftArrow} part isn't right. It's supposed to be just {Left}. I've downloaded the program myself and am not having any issues with it in DF.. I'm running XP, and use it in fullscreen mode, if that helps any. --[[User:Hesitris|Hesitris]] 18:53, 12 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: So could some people who actually know some autohotkey scripts make an article and  submit some? --[[User:Thehunterunseen|Thehunterunseen]] 13:37, 6 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::I use it and more or less know how it works but as soon as I use it inside DF it bugs out completely and I have no idea why. --[[User:Mizipzor|Mizipzor]] 17:56, 6 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:::I have a number of scripts that I use, but they randomly bug out for no apparent reason.  They will work fine in notepad (ie, output everything exactly as I expect), but be only partially executing and then failing in DF.  Again, sometimes they work fine.  I could post them and how they work if someone wants.  FYI, I am on Vista and that may be an issue.  --[[User:Geofferic|Geofferic]] 02:39, 19 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::::I'm not sure how CPU cycles and the buffer interact in Vista.  Is your FPS low?  Perhaps a key is dropping out of the buffer but DF isn't recognizing it due to lag?  Or lag might be making the buffer overflow.  It might depend on how autohotkey sends keystrokes, I don't know if it simulates a key press or directly input ssomething into the buffer.  You could try a small sleep(50), or the equivalent, in autohotkey and see if that helps.  Also, make sure it isn't losing focus for some reason due to background programs (although that would be strange) -Gotthard&lt;br /&gt;
&lt;br /&gt;
:::::I think it's a lag issue in DF.  I've yet to figure out exactly what is causing lag for me.  I think it's pathing with too many dwarfs and too complex of a hallway system over too many Z levels.  Also, I think playing very large maps causes me to lag, as well, but I think that's related to the pathing problem and all those other creatures trying to path.  It definitely got better in this version, tho.  I will hold off on trying to say definitively what's up with AuthoHotkey until after the next patch.  --[[User:Geofferic|Geofferic]] 03:50, 21 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::::::AHK does tend to do wierd stuff in DF, but most of it is predictable. A lot of wierd errors that make no sense can be fixed by explicitely telling the script to focus on the Dwarf Fortress window, as well as generous Sleep statements. I found while rewalling a 30x30 outline, sleep 100 worked fine for the first two sides but posted about half of the second two. Sleep 150 placed the second two somewhat erraticly. Sleep 200 got the second two just fine. --[[User:Knivesu|Knivesu]] 10:22, 23 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Dwarf Foreman ==&lt;br /&gt;
&lt;br /&gt;
Foreman is looking at the wrong address for the units... which is not a good sign, since I've seen it in the address it seems to be looking at.  I've also seen it bounce around.  Definitely not a good sign if the list location isn't static.  Or we're just looking at the wrong one completely. --[[User:AzureLightning|AzureLightning]]&lt;br /&gt;
&lt;br /&gt;
:It's pretty easy to find the addresses for this for new versions. Running the program in the directory with the new version gives you the check= value, and the others are moderately easy to suss. Also, I don't know exactly how it works or why it works, but from C-&amp;gt;D-&amp;gt;E start and pos were incremented 0x1000 each version, so laziness dictates trying that in future. [[User:Qalnor|Qalnor]] 16:37, 9 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
Is there any info on what the offsets (dwarfidpos, critter_start, profession_start) actually refer to?  I'm capable enough with finding memory addresses, but exactly what profession_start is eludes me.  Even dwarfidpos is a little unclear.&lt;br /&gt;
&lt;br /&gt;
 dwarfidpos = Address of Dwarf Race ID&lt;br /&gt;
 critter_start = Start of Main Creature Vector&lt;br /&gt;
 profession_start = Offset into Main Creature Vector the array of jobs.&lt;br /&gt;
[[User:Jifodus|Jifodus]] 00:41, 7 March 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== Yourfilehost ==&lt;br /&gt;
&lt;br /&gt;
Yourfilehost.com has kind of a lousy reputation, and I can confirm it's blocked on certain college networks.  Could someone upload these utilities to a more reputable host? -- Mzbundifund 15:55, 04 November 2007 (EDT)&lt;br /&gt;
: Such as? --[[User:Rick|Rick]] 18:03, 4 November 2007 (EST)&lt;br /&gt;
:: Megaupload, rapidshare, filefactory, you pick one --[[User:Digger|Digger]] 17:40, 24 February 2008 (EST)&lt;br /&gt;
:::Uh, you know there is a special site for uploading DF files now, right? It's linked on the main page. Screw those other guys. --[[User:Jackard|Jackard]] 17:53, 24 February 2008 (EST)&lt;br /&gt;
::::I say we scrap this section, then. --[[User:Digger|Digger]] 18:28, 24 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
==heal.exe==&lt;br /&gt;
&lt;br /&gt;
heal.exe does not regrow missing limbs.  However, &amp;quot;heal -hurt&amp;quot; on the command line brings missing limbs to red status, and &amp;quot;heal&amp;quot; thereafter restores the being to full health.&lt;br /&gt;
&lt;br /&gt;
I propose a -regrow parameter so we don't have to do this workaround, since if it's possible to bring missing limbs from dark grey to red status it's also possible to grow them back.&lt;br /&gt;
&lt;br /&gt;
Also, when using the -hurt parameter, it still says &amp;quot;059E7210 had 31 body parts '''healed'''&amp;quot;, when it should probably say &amp;quot;wounded&amp;quot;. --[[User:JT|JT]] 17:58, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Hmm, if it does heal missing limbs then I just need to change my logic slightly for healing. --[[User:Rick|Rick]] 19:01, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
==reveal.exe==&lt;br /&gt;
&lt;br /&gt;
From what I've tested, reveal for 33a does not work for 33b. --[[User:Sparksol|Sparksol]] 13:39, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:Correct.  It uses hardcoded offsets, which will change every time new code is added to DF.&lt;br /&gt;
:I have a version hacked for .33b, which I will not distribute out of respect for Rick.&lt;br /&gt;
:However, if you are skilled with a hex editor, here's what to do: change the first 5 occurances of the pattern 85 45 01 to the pattern 95 45 01.  (The 6th occurance of the pattern is a coincidental match and should not be changed.)  Then change the pattern 8C 33 89 00 to the pattern 8C 43 89 00.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 02:31, 19 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:Actually, as it happens, it looks like Rick has produced updated versions of his tools for .33b.  They were built on the 16th.  However he hasn't linked to them.  I don't know why.  The URL they're at requests that no links be made to them, so I'm not going to tell you. Sorry, you'll just have to do the hexedit.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 02:45, 19 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:I just havn't mirrored them yet, that's all. --[[User:Rick|Rick]] 03:10, 19 November 2007 (EST)&lt;br /&gt;
::Hey, I'm curious why the file sizes ballooned.  Reveal went from 52k to 101k, a doubling in size.  Heal grew even more.  Maybe you didn't strip debugging info?&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 15:42, 19 November 2007 (EST)&lt;br /&gt;
:::Usage of std libraries mostly. I made a library for working with DF so I wouldn't have to keep duplicating code through projects, and when writing it I figured I might as well make it more friendly for me to code in, hence usage of std:: stuff. --[[User:Rick|Rick]] 19:00, 19 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:Whenever I try to open reveal.exe, the window will open up for a millisecond and then immedietely close. Is this a problem with the program or my windows? I am assuming its windows since everyone else seems to be able to use it. Has anyone else had this problem?--[[User:Varsashi|Varsashi]] 17:59, 26 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::It hasn't been updated to work with 33c, and doesn't. Hopefully it will be updated soon. If you're using 33b, it should open and close quickly but reveal all allocated squares. To allocate all squares for revealing, I'll repeat the advice I've seen elsewhere: go to the lowest level and designate the entire level for digging, then remove the dig designation and run the reveal utility. --[[User:Janus|Janus]] 20:08, 26 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
So how do people feel about deleting this section, and probably the heal.exe section above too?&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 00:56, 23 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
==How to use warp.exe?==&lt;br /&gt;
How do you use warp.exe? There's no information on how to use these on the page.--[[User:Demosthenes|Demosthenes]] 02:10, 21 November 2007 (EST)&lt;br /&gt;
: &amp;lt;code&amp;gt;warp.exe&amp;lt;/code&amp;gt; by itself will list your current cursor position. After you have the position you want to warp a creature to, you do &amp;lt;code&amp;gt;warp.exe &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt;&amp;lt;/code&amp;gt; as arguments, and it will warp the selected creature (selected with 'V'iew) to that destination, if it can. --[[User:Rick|Rick]] 18:10, 21 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
==StartProfile==&lt;br /&gt;
Perhaps, I don't understand how to use this correctly.  I'm using 33e, and the StartProfile linked in the Utils section.  I'm supposed to use this util at the Prepare for the Journey screen, correct?  I tried testing the export function with the first dwarf, with no skills assigned.  startprofile.exe -x 0 test.txt What I got back was:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Mining: 1348403210&amp;lt;br/&amp;gt;&lt;br /&gt;
Wood Cutter: 1565676876&amp;lt;br/&amp;gt;&lt;br /&gt;
Carpenter: 3801123&amp;lt;br/&amp;gt;&lt;br /&gt;
Engraving: 34079120&amp;lt;br/&amp;gt;&lt;br /&gt;
Record Keepe: 2293770&amp;lt;br/&amp;gt;&lt;br /&gt;
Liar: 34341293&amp;lt;br/&amp;gt;&lt;br /&gt;
Intimidator: 16843009&amp;lt;br/&amp;gt;&lt;br /&gt;
Conversationalist: 16843009&amp;lt;br/&amp;gt;&lt;br /&gt;
Comedian: 16843009&amp;lt;br/&amp;gt;&lt;br /&gt;
Flatterer: 16843009&amp;lt;br/&amp;gt;&lt;br /&gt;
Consoler: 16843009&amp;lt;br/&amp;gt;&lt;br /&gt;
Pacifier: 16843009&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
When I try to set a dwarf's skills using StartProfile I end up with huge amounts of either negative or positive points available, with no changes being made to the dwarf's skills.  &amp;lt;br/ &amp;gt;--[[User:Stu72|Stu72]] 09:23, 11 December 2007 (EST)&lt;br /&gt;
: The offset for the skills must have changed. I guess I should've actually checked that, and not have assumed that just because the other values were correct, the skills were still correct. I'll check it out and post the appropriate fix. -- [[User:Jifodus|Jifodus]]&lt;br /&gt;
: The appropriate fix is redownloading it, when I hex edited the exe I messed it up field. -- [[User:Jifodus|Jifodus]]&lt;br /&gt;
:: Thanks, works beautifully.  It's a terrific time saver. --[[User:Stu72|Stu72]] 15:30, 14 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
How does one use this? The readme isn't very helpful. --[[User:Jackard|Jackard]] 01:08, 27 November 2007 (EST)&lt;br /&gt;
: Not knowing exactly what you're having trouble understanding, I'll give examples (the one thing I forgot to add in the readme).&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;startprofile 0 Miner.txt&amp;lt;/code&amp;gt; - This will set the skill profile of the first Dwarf, in the list of units, to the skills in Miner.txt&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;startprofile 1 Jeweler.txt&amp;lt;/code&amp;gt; - This will set the skills on the second Dwarf, in the list of units, to the skills in Jeweler.txt&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;startprofile -x 3 Customprofile.txt&amp;lt;/code&amp;gt; - This will save the set of skills on the fourth Dwarf to Customprofile.txt&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;startprofile -v0.27.169.33b 0 Miner.txt&amp;lt;/code&amp;gt; Same as the first example, except it'll work on the previous version of Dwarf Fortress.&amp;lt;br /&amp;gt;-- [[User:Jifodus|Jifodus]] 03:28, 27 November 2007 (EST)&lt;br /&gt;
::Thanks, I'll try that out. --[[User:Jackard|Jackard]] 21:21, 27 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
If you wish to edit the executable, you can modify it so that it works with 0.27.169.33d by making the following changes with a hex editor:&lt;br /&gt;
 Offset   Overwrite With&lt;br /&gt;
 ----------------------------&lt;br /&gt;
  2A530 | 98 16 25 01 04 00 00 00 DC 00 00 00 F0 08 00 00 70 00 00 00 C0 01 00 00&lt;br /&gt;
  2A6A6 | 30 2E 32 37 2E 31 36 39 2E 33 33 64&lt;br /&gt;
  2A77C | 02&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 20:14, 3 December 2007 (EST)&lt;br /&gt;
:CBW; PUSH SS; AND EAX, 00000401h; ADD AH, BL; ADD [EAX], AL; ...  &lt;br /&gt;
:That makes no sense.  Must be missing something off the head end.&lt;br /&gt;
:3 unknown bytes; ADD [EAX+EAX], EAX; ...  No better.  Worse, even.&lt;br /&gt;
:4 unknown bytes; ADD AL, 00h; ADD [EAX], AL; ...  Unh uh.  Don't think so.&lt;br /&gt;
:8 unknown bytes; ESC-4(00); ...  Floating point?  Really?  No way.&lt;br /&gt;
:12 unknown bytes; LOCK OR [EAX], AL ...  Insane.&lt;br /&gt;
:I don't know what those bytes are, but they're not code.&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 23:23, 3 December 2007 (EST)&lt;br /&gt;
::You're right, they're data. First Row is (left to right, 5 dwords): [[User:Jifodus/Memory research#Addresses_3|Start Address]], Offset from address at start address, Dwarf List begin offset, Starting points offset, Skills offset, remaining skill points points. Second row is a character string (15 chars max). Third row is a dword indicating which data index is default.&lt;br /&gt;
:: &amp;lt;tt&amp;gt;//Start Addr, O, Lizt, Ponts, Skll, Remain&amp;lt;/tt&amp;gt; &lt;br /&gt;
:: &amp;lt;tt&amp;gt;{ 0x01251698, 4, 0xDC, 0x8F0, 0x70, 0x1C0 }&amp;lt;/tt&amp;gt; - The read/write locations and whatnot&lt;br /&gt;
:: &amp;lt;tt&amp;gt;&amp;quot;0.27.169.33d&amp;quot;&amp;lt;/tt&amp;gt; - Used for string comparison (-v flag)&lt;br /&gt;
:: &amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt; - The default version to use is the third in the list (what the above just added).&lt;br /&gt;
:: Configuration data can be found between 'DATA_SET' and 'TES_ATAD'. The list has enough space for 16 versions (3 are now in use). I'll just say I didn't want to have to recompile it for all the versions -- [[User:Jifodus|Jifodus]] 21:52, 6 December 2007 (EST)&lt;br /&gt;
If you wish to edit the executable, you can modify it so that it works with 0.27.169.33e by making the following changes with a hex editor:&lt;br /&gt;
 Offset   Overwrite With&lt;br /&gt;
 ----------------------------&lt;br /&gt;
  2A550 |&amp;quot;98 26 25 01&amp;quot;04 00 00 00 DC 00 00 00 F0 08 00 00 70 00 00 00 C0 01 00 00&lt;br /&gt;
  2A6B5 | 30 2E 32 37 2E 31 36 39 2E 33 33&amp;quot;65&amp;quot;&lt;br /&gt;
  2A77C |&amp;quot;03&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Patching Lavasquare ==&lt;br /&gt;
&lt;br /&gt;
Due to someone being interested in running lavasquare on version 33g, I determined how to patch the exe to work with later versions. With a hex editor, open lavasquare.exe and find and replace with appropriate values (replace the X's with the values underneath for the version you want). I only tested it for 33f, but I'm assuming that the values for 33g are correct (since I got them off the wiki).&lt;br /&gt;
&lt;br /&gt;
 (CursorX)&lt;br /&gt;
 FIND:		EE 57 68 88 E2 8F 00 FF 35&lt;br /&gt;
 REPLACE:	EE 57 68 XX XX XX 0X FF 35&lt;br /&gt;
 33f		         88 F2 8F  0&lt;br /&gt;
 33g		         88 62 90  0&lt;br /&gt;
 38a		         88 F2 92  0&lt;br /&gt;
&lt;br /&gt;
 (CursorY)&lt;br /&gt;
 FIND:		EC 57 68 8C E2 8F 00 FF 35&lt;br /&gt;
 REPLACE:	EC 57 68 XX XX XX 0X FF 35&lt;br /&gt;
 33f		         8C F2 8F  0&lt;br /&gt;
 33g		         8C 62 90  0&lt;br /&gt;
 38a		         8C F2 92  0&lt;br /&gt;
&lt;br /&gt;
 (CursorZ)&lt;br /&gt;
 FIND:		E6 57 68 90 E2 8F 00 FF 35&lt;br /&gt;
 REPLACE:	E6 57 68 XX XX XX 0X FF 35&lt;br /&gt;
 33f		         90 F2 8F  0&lt;br /&gt;
 33g		         90 62 90  0&lt;br /&gt;
 38a		         90 F2 92  0&lt;br /&gt;
&lt;br /&gt;
 (MapBlocks)&lt;br /&gt;
 FIND:		FC 57 68 60 15 46 01 FF 35&lt;br /&gt;
 REPLACE:	FC 57 68 XX XX XX 0X FF 35&lt;br /&gt;
 33f		         68 25 46  1&lt;br /&gt;
 33g		         80 96 46  1&lt;br /&gt;
 38a		         CC 29 49  1&lt;br /&gt;
&lt;br /&gt;
 (To exit immediately after writing, since I don't want to&lt;br /&gt;
 verify the other offsets)&lt;br /&gt;
 FIND:		FF 35 5C 80 40 00 E8 88 61 00 00 0F BF 7D&lt;br /&gt;
 		F8 57 0F BF 7D FA 57 8B 7D FC 81 C7 60 06&lt;br /&gt;
 		00 00&lt;br /&gt;
 REPLACE:	FF 35 5C 80 40 00 E8 88 61 00 00 6A FF FF&lt;br /&gt;
 		25 6C B1 40 00 CC CC CC CC CC CC CC CC CC&lt;br /&gt;
 		CC CC&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 02:05, 25 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
To modify the above for the same behavior as water:&lt;br /&gt;
 FIND:		07 00 20 00&lt;br /&gt;
 REPLACE:	07 00 00 00&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 17:09, 29 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
Addresses for 0.27.173.38a:&lt;br /&gt;
 CursorX 0x0092F288&lt;br /&gt;
 CursorY 0x0092F28C&lt;br /&gt;
 CursorZ 0x0092F290&lt;br /&gt;
 MapBlocks 0x014929CC&lt;br /&gt;
Offsets are still the same.&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 19:14, 7 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
Addresses for 0.27.173.38c: (These worked for me, but I'm not an expert on this stuff.)&lt;br /&gt;
  CursorX 0x0094228C&lt;br /&gt;
  CursorY 0x00942290&lt;br /&gt;
  CursorZ 0x00942294&lt;br /&gt;
  MapBlocks 0x014A60A4&lt;br /&gt;
--[[User:Dorundain|Dorundain]] 22:21, 6 March 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== Lavasquare Popup? ==&lt;br /&gt;
&lt;br /&gt;
How do I remove the prompt? It is a painful thing for large projects. The macro below helps some, though. --[[User:Jackard|Jackard]] 08:05, 4 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
 #Persistent&lt;br /&gt;
 SetTimer, CloseLava, 100&lt;br /&gt;
 return&lt;br /&gt;
 &lt;br /&gt;
 CloseLava:&lt;br /&gt;
 WinClose, lcc runtime&lt;br /&gt;
 return&lt;br /&gt;
 &lt;br /&gt;
 del::&lt;br /&gt;
 IfWinActive Dwarf Fortress&lt;br /&gt;
 {&lt;br /&gt;
   send {down}&lt;br /&gt;
   run C:\Program Files\Dwarf Fortress\Utilities\lavasquare 33g.exe&lt;br /&gt;
   return&lt;br /&gt;
 }&lt;br /&gt;
 else&lt;br /&gt;
 {&lt;br /&gt;
   send {del}&lt;br /&gt;
   return&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Lavasquare ==&lt;br /&gt;
&lt;br /&gt;
Why does it seemingly stop working after a while? It runs but summons no magma/lava. --[[User:Spelguru|Spelguru]] 12:28, 18 January 2008 (EST)&lt;br /&gt;
:No idea, never run into the problem though I've used it quite thoroughly. --[[User:Jackard|Jackard]] 17:52, 18 January 2008 (EST)&lt;br /&gt;
:I've run into this once. Restarting DF fixed the problem. --[[User:SquirrelFarmer|SquirrelFarmer]] 09:50, 29 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== Water ==&lt;br /&gt;
&lt;br /&gt;
Could someone make an updated version? Having to slaughter anyone who gets injured just because the rain-filling-ponds doesn't work properly yet is annoying. -Shadow_archamgi, February 27 2008&lt;br /&gt;
&lt;br /&gt;
==Weatherdwarf==&lt;br /&gt;
I can't find the page, but it's a utility that lets you change the temperature of an area and allows for some crazy stuff. Look it up on the forums; I have a community fortress to tend to. --[[User:Penguinofhonor|Penguinofhonor]] 20:18, 3 March 2008 (EST)&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User_talk:Rick&amp;diff=25155</id>
		<title>User talk:Rick</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User_talk:Rick&amp;diff=25155"/>
		<updated>2008-03-06T05:26:44Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* 0.27.176.38b */ maybe correct STARTING_DWARF_COUNT&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requests ==&lt;br /&gt;
Hey there. Thanks for writing reveal.exe. It's made my dwarves' lives so much easier!&lt;br /&gt;
&lt;br /&gt;
Do you take requests?&lt;br /&gt;
&lt;br /&gt;
And is this the right place to ask? [[User:Runspotrun|Runspotrun]] 20:32, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Yes, and yes. --[[User:Rick|Rick]] 20:49, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Excellent! Now, I don't know how many people would use it, but I'd love to see a utility that would allow me to choose the temperature/forest/shrub/surroundings/neighbours when starting out. I like to stick to the same sort of areas, but it can be a pain finding them on the map - if they exist at all. Problem is, I think most people take what they're given, region-wise... so I don't think it'd have much of an audience. What do you think? [[User:Runspotrun|Runspotrun]] 20:55, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Er, I haven't just described startpoints.exe, have I? [[User:Runspotrun|Runspotrun]] 21:01, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Well, if you're not averse to requests...  A utility to activate the subterranean flag on indoor areas would be awesome for those of us who'd like to build surface castles in cold/freezing terrain without our dwarves dying of frostbite.  -[[User:EarthquakeDamage|EarthquakeDamage]] 22:45, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::I'd like a rock/gem/ore tool. Would be really neat. Especially the ore/gem one. Also, maybe water/magma creation tools if possible?--[[User:Spelguru|Spelguru]] 01:29, 11 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Something similar to the old skills.exe would be great! --[[User:Vanan|Vanan]] 11:44, 19 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::What I'd like is some way to search for a particular tile on the map.  Probably the easiest thing for you to code is to have reveal.exe have an option where it prints the map data to a file in some simple text format (Just a simple list of 'Z,X,Y &amp;quot;tile code&amp;quot;' would be sufficient.  mapping what tiles have what value would be nice, but not necessary.)  I want to answer the question &amp;quot;Is the raw material for the item the possessed dwarf is asking for somewhere on my map, and if so, where?&amp;quot;  --[[User:Warnold|Warnold]] 23:08, 9 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::I would like to request something that teleports items. --[[User:Demosthenes|Demosthenes]] 02:05, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Is it possible for a utility to remove excess stone? (name and amount in command line) --[[User:Jackard|Jackard]] 07:35, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Wild Praise ==&lt;br /&gt;
Thank you so much for your incredible work! Your applications add so much fun to the game! --[[User:Vanan|Vanan]] 13:56, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Astonishing response time for 33e!  --[[User:Geofferic|Geofferic]] 01:04, 9 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== In reply to ==&lt;br /&gt;
Your statement to me on my page, &amp;quot;Don't subject your opinion unto others. (Though I think you were just trying to be funny...) --Rick 03:54, 31 October 2007 (EDT)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Of course I was. But some people have no real sense of humor. &lt;br /&gt;
&lt;br /&gt;
Also, some people believe they can do things they tell others NOT to do. Your statement is a perfect example of this. You tell me not to subject others to MY opinion, but in doing so you are subjecting me to YOUR opinion. Oh yes, you are one of the VIPs in the DF community, because you wrote a couple utilities. So I suppose I should be humble in your presence, and bow to someone so great. I would do that, but when I bow, I do it facing AWAY from that person, and I drop my trousers at the same time. Still want me to bow to your greatness?&lt;br /&gt;
&lt;br /&gt;
I read other contributions here that voice their opinions the same as I did. I wonder if you said the same thing to all of them as well? Tho since I was able to read the pages they wrote, you clearly did not delete their words as you did mine. And while other entries I made were either deleted or edited, as I expected them to be, since I am not a great wiki writer, you were the only one to send me a somewhat nasty note. &lt;br /&gt;
&lt;br /&gt;
Think whatever you like of me, but at least I was contributing, and trying to give a few smiles along the way. Seems to me tho, that DF is fun, and it's wiki should be too. And, from other pages I read, others feel the same way I do. Maybe you should take a look around at some of their pages, and lighten up yourself a bit? Maybe trade with the elves for a tame blue jay, and drop it down your shorts. If that doesnt get a giggle out of you, maybe you should go join the undead at one of their ruins?&lt;br /&gt;
&lt;br /&gt;
: Wow, way to blow up that up, I was just jesting. I think I'll leave your words here, [[User:Darknight|Darknight]]. --[[User:Rick|Rick]] 19:25, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Oh, and for the record, I did not remove your message, someone else did that. Check the page history. --[[User:Rick|Rick]] 19:29, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== heal.exe bug? ==&lt;br /&gt;
&lt;br /&gt;
Hmm... I've found that heal -hurt doesn't work on fire men, at least in 33b. It sets all their body parts to red, but the fire man just keeps wandering around and scaring my poor witless dwarves. I haven't found a living fire man yet in 33c so I can't check. [[User:Runspotrun|Runspotrun]] 06:59, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Are firemen immune to pain? Hurt just nukes bodyparts, not kills creatures, most creatures who feel pain will die from that, but I guess ones who don't won't. --[[User:Rick|Rick]] 12:08, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Just checked - yes they are. That'd explain it then, ta. [[User:Runspotrun|Runspotrun]] 14:38, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== INI? ==&lt;br /&gt;
&lt;br /&gt;
Does anyone see anything obviously wrong about this? I used various comparisons to come to these values (as well as what the hex fellow posted in the memory hacking section), and editing them as such into the reveal.exe allowed me to get that program to function, but the ini isn't reenabling the executables on its own:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[address]&lt;br /&gt;
DWARF_FORTRESS=0x0089C414 ; correct&lt;br /&gt;
MENU_STATE=0x0124565C ; maybe&lt;br /&gt;
FOCUSED_CREATURE=0x00C39548 ; correct&lt;br /&gt;
CREATURE_VECTOR=0x01420A48 ; correct&lt;br /&gt;
MOUSE_X=0x008FF290 ; pretty sure should be 008FF288&lt;br /&gt;
MOUSE_Y=0x008FF294 ; pretty sure should be 008FF28C&lt;br /&gt;
MOUSE_Z=0x008FF298 ; pretty sure should be 008FF290&lt;br /&gt;
MAP_DATA=0x01462568 ; correct&lt;br /&gt;
MAP_X_COUNT=0x01462580 ; correct&lt;br /&gt;
MAP_Y_COUNT=0x01462584 ; correct&lt;br /&gt;
MAP_Z_COUNT=0x01462588 ; correct&lt;br /&gt;
STARTING_DWARF_COUNT=0x0078A54E ; wrong.  0078A554 (value actually is dword at 0078A555)&lt;br /&gt;
STARTING_POINT_COUNT=0x00789703 ; correct (value actually is word at 0078970A)&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260 ; dunno&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660 ; dunno&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000 ; yes&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308 ; probably&lt;br /&gt;
CREATURE_X_OFFSET=0x0094 ; probably&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096 ; probably&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098 ; probably&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:Qalnor|Qalnor]] 14:05, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
I commented the above.  none of the corrections should affect reveal.  I don't know what's going wrong.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 19:53, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: I made a few mistakes when documenting the existing data, which probably threw you guys off. My user page has been updated for 33f. --[[User:Rick|Rick]] 20:41, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Thanks, to both of you. I'll have to go over what I was doing when I get home to try and see where I was going wrong.  [[User:Qalnor|Qalnor]] 15:11, 17 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Possible adjuststart enhancement ==&lt;br /&gt;
Hi!  Merry culturally-appropriate politically-correct generic holiday!&lt;br /&gt;
&lt;br /&gt;
I have found some interesting addresses that work well with adjuststart.&lt;br /&gt;
&lt;br /&gt;
In .33f, the byte at 0078654B holds a constant that is the upper limit that starting skills can be advanced to.  It is normally 5 (proficient).  If you change it to 15, skills can be advanced to legendary.  If you change it to 20, skills can be advanced to legendary+5.&lt;br /&gt;
&lt;br /&gt;
Also in .33f, there's a pair of bytes at 00786466 and 00786608.  If you set both to 0, then the 10 skills per dwarf limit is removed.&lt;br /&gt;
&lt;br /&gt;
I've found equivalant addresses for all the .33 releases.  They're in the memory hacking subpages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;—Preceding unsigned comment added by [[User:0x517A5D|0x517A5D]] ([[User talk:0x517A5D|talk]]{{!}}[[Special:Contributions/0x517A5D|contribs]]) {{{2|}}}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Did I not sign that?  Oops.  Well, I was tired.  Thank you, VengefulDonut.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:02, 19 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Very cool, I'll probably add these for the next release then. --[[User:Rick|Rick]] 04:18, 20 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Update of utilities ==&lt;br /&gt;
&lt;br /&gt;
So how much longer do you suppose it might take to transition the utilities to 33f?--[[User:Heliopios|Heliopios]] 13:04, 19 December 2007 (EST)&lt;br /&gt;
:With the .ini method there isnt really a need to rebuild the utilities for 32f. [[User:VengefulDonut|VengefulDonut]] 15:25, 19 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:And how exactly do you use memory.ini?  I've created a new ini file (yes, it's a .ini, not a .ini.txt) and pasted everything under [code] tags for .33f, and lugged it into the dir. with the required executable (heal.exe in this case) but when I run it it still says it was built for .33e. Should I put it somewhere else?  In any case, instructions for use are either inexistent or pretty well hidden here in the wiki.&lt;br /&gt;
:Cheers. [[User:N35t0r|N35t0r]] 21:45, 19 December 2007 (EST)&lt;br /&gt;
::Did you name it &amp;quot;memory.ini&amp;quot;? This worked for me with reveal.exe [[User:VengefulDonut|VengefulDonut]] 01:52, 20 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Possible INI file syntax change ==&lt;br /&gt;
&lt;br /&gt;
I would like to suggest a change to the format of MEMORY.INI.  Instead of the [generic], [address], and [offset] sections (which in my opinion buy you nothing), I would suggest using sections keyed off the PE header timestamp.  (You have previously indicated that you plan to convert to that method anyway.)  So a sample .INI file might look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;; .33e&lt;br /&gt;
[475B7526]&lt;br /&gt;
MENU_STATE=0x01244654&lt;br /&gt;
FOCUSED_CREATURE=0x00C38540&lt;br /&gt;
CREATURE_VECTOR=0x0141FA40&lt;br /&gt;
MOUSE_X=0x008FE288&lt;br /&gt;
MOUSE_Y=0x008FE28C&lt;br /&gt;
MOUSE_Z=0x008FE290&lt;br /&gt;
MAP_DATA=0x01461560&lt;br /&gt;
MAP_X_COUNT=0x01461578&lt;br /&gt;
MAP_Y_COUNT=0x0146157C&lt;br /&gt;
MAP_Z_COUNT=0x01461580&lt;br /&gt;
STARTING_DWARF_COUNT=0x007893C5&lt;br /&gt;
STARTING_POINT_COUNT=0x0078857A&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
&lt;br /&gt;
; .33f&lt;br /&gt;
[4763710C]&lt;br /&gt;
MENU_STATE=0x0124565C&lt;br /&gt;
FOCUSED_CREATURE=0x00C39548&lt;br /&gt;
CREATURE_VECTOR=0x01420A48&lt;br /&gt;
MOUSE_X=0x008FF288&lt;br /&gt;
MOUSE_Y=0x008FF28C&lt;br /&gt;
MOUSE_Z=0x008FF290&lt;br /&gt;
MAP_DATA=0x01462568&lt;br /&gt;
MAP_X_COUNT=0x01462580&lt;br /&gt;
MAP_Y_COUNT=0x01462584&lt;br /&gt;
MAP_Z_COUNT=0x01462588&lt;br /&gt;
STARTING_DWARF_COUNT=0x0078A555&lt;br /&gt;
STARTING_POINT_COUNT=0x0078970A&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main reason to do this is to allow data for multiple versions to be in the .INI file.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 18:22, 21 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Agreed, will do this. --[[User:Rick|Rick]] 15:28, 22 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== 33g memory.ini ==&lt;br /&gt;
&lt;br /&gt;
0x517A5D looked these up and put them on the 33g memory hacking page, but did not actually put them in here. He copied/pasted from 33f. Mistake? I looked up the dwarf fortress tag and used his values for the ones I could see on the other page he posted (33g memory hacking page) and updated them. It works for reveal, but it's missing FOCUSED_CREATURE and CREATURE_VECTOR because I can't find them.&lt;br /&gt;
--[[User:Paul|Paul]] 15:05, 22 December 2007 (CST)&lt;br /&gt;
:I just cross-referenced those 2 values with the 33f memory location page and updated them. Should work now, though I haven't tested. --[[User:Janus|Janus]] 16:27, 22 December 2007 (EST)&lt;br /&gt;
::The currently listed FOCUSED_CREATURE and CREATURE_VECTOR values don't appear to work. --[[User:Zurai|Zurai]] 22:20, 22 December 2007 (EST)&lt;br /&gt;
:::Hi Zurai.  Do to my blunder, there was a short period where those two values were incorrect.  You probably hit that window.  Check the values in your copy against the ones shown now.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:59, 22 December 2007 (EST)&lt;br /&gt;
::::Heal.exe and warp.exe (only when trying to warp a creature - warp to find the coords of a tile works fine) both give me &amp;quot;An error has occured: please select a unit in 'view units' mode&amp;quot; using FOCUSED_CREATURE=0x00C40540 and CREATURE_VECTOR=0x01427B60, which are the values listed at the time of this writing. I've redownloaded both executables and re-made the ini from scratch, copy-pasting the values from the 33g listing, and it still occurs. Is anyone else having the same issue? Maybe my computer doesn't like heal or warp any more. Reveal works fine, though. --[[User:Zurai|Zurai]] 18:45, 23 December 2007 (EST)&lt;br /&gt;
:::::I found the problem.  It was MENU_STATE.  Yes, anyone else who tried to use these utils would experience the same problem.  I have now edited the .33g memory.ini section again, and verified that warp.exe, heal.exe -hurt, and heal.exe all work.  I'm really, really sorry for the mess up.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:39, 23 December 2007 (EST)&lt;br /&gt;
::::::I'm having this pop up with the new memory.ini info for warp.exe: &amp;quot;An error has occured:failed to read block pointer for to block&amp;quot;.  --[[User:Corbine|Corbine]] 03:19, 24 December 2007 (EST)&lt;br /&gt;
:::::::Well, let's go down the checklist.  Due to a blunder on my part, the .33g memory.ini file was wrong for several hours.  One of the mistakes causes that error message.   Try deleting memory.ini and making a new one with the [[User:Rick#v0.27.169.33g|current data]].&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 14:29, 24 December 2007 (EST)&lt;br /&gt;
::::::::Deleted the memory.ini, made a new one and threw the new info into it, still same error. --[[User:Corbine|Corbine]] 01:28, 25 December 2007 (EST)&lt;br /&gt;
:::::::::Corbine, are you still experiencing this?  I just realized I've left this hanging for a week.  Sorry.  Okay, next.  Previous versions of warp have worked for you with previous versions of DF?  Do other of Rick's utilities work for you?  My tentative diagnosis is that &amp;lt;u&amp;gt;part&amp;lt;/u&amp;gt; of your INI file is wrong.  If the whole thing was wrong, it would merely complain that it was built for version .33e.  I don't know which particular key being wrong gives that error, and I don't have a .33g test fort at the moment, so I can't easily check right now.  But I could when I have time.  Really, I'm puzzled.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 03:47, 31 December 2007 (EST)&lt;br /&gt;
:Yes, mistake.  Arrgh.  I must have copied from the wrong editor window.  Thank you both.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 17:08, 22 December 2007 (EST)&lt;br /&gt;
::No worries, and thanks for posting the new memory locations in the first place. I personally was looking forward to that info so I could use reveal.exe to examine potential fortress locations in newly created 33g worlds, so it is much appreciated. --[[User:Janus|Janus]] 18:07, 22 December 2007 (EST)&lt;br /&gt;
::I was all excited when I saw the 33g info up, then went to paste it into my ini and realised the data was the same... I figured you just accidentally pasted the wrong thing in. The only thing I could figure out how to look up was the Dwarf Fortress tag location, so it is appreciated that you looked all the rest up. With the world generation changing, it's nice to have reveal available to search for new sites. [[User:Paul|Paul]] 21:20, 22 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
==38a==&lt;br /&gt;
&lt;br /&gt;
How would we update this? --[[User:Squeegy|Squeegy]] 20:22, 5 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we can start by finding the relevant mem locations for 88a&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[generic]&amp;lt;br /&amp;gt;&lt;br /&gt;
DWARF_FORTRESS=0x00C11218&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[address]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
MENU_STATE=&amp;lt;br /&amp;gt;&lt;br /&gt;
FOCUSED_CREATURE=&amp;lt;br /&amp;gt;.&lt;br /&gt;
CREATURE_VECTOR=&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_X=0x0092f288&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_Y=0x0092f28c&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_Z=0x0092f290&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_DATA=&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_X_COUNT=0x014929F0&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_Y_COUNT=0x014929F4&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_Z_COUNT=0x014929F8&amp;lt;br /&amp;gt;&lt;br /&gt;
STARTING_DWARF_COUNT=&amp;lt;br /&amp;gt;&lt;br /&gt;
STARTING_POINT_COUNT=&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
those are the easy ones.&lt;br /&gt;
if we had map data and confirmed that the offset was correct at least Reveal.exe would work but I'm out of time today.  --[[User:Shadetree|Shadetree]] 22:23, 6 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
I've found the other addresses. I won't guarantee that the offsets other than MAP_DATA_DESIGNATION_OFFSET, MAP_DATA_OCCUPANCY_OFFSET, and CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET are correct.&lt;br /&gt;
 [generic]&lt;br /&gt;
 DWARF_FORTRESS=0x00C11218&lt;br /&gt;
 &lt;br /&gt;
 [address]&lt;br /&gt;
 STARTING_POINT_COUNT=0x007AF4FA&lt;br /&gt;
 STARTING_DWARF_COUNT=0x007B0345&lt;br /&gt;
 MENU_STATE=0x0127599C&lt;br /&gt;
 FOCUSED_CREATURE=0x00C69888&lt;br /&gt;
 CREATURE_VECTOR=0x01450E98&lt;br /&gt;
 MOUSE_X=0x0092F288&lt;br /&gt;
 MOUSE_Y=0x0092F28C&lt;br /&gt;
 MOUSE_Z=0x0092F290&lt;br /&gt;
 MAP_DATA=0x014929CC&lt;br /&gt;
 MAP_X_COUNT=0x014929E4&lt;br /&gt;
 MAP_Y_COUNT=0x014929E8&lt;br /&gt;
 MAP_Z_COUNT=0x014929EC&lt;br /&gt;
 &lt;br /&gt;
 [offset]&lt;br /&gt;
 MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
 MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
 CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
 CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
 CREATURE_X_OFFSET=0x0094&lt;br /&gt;
 CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
 CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
If I understand how Rick's tools work, the offsets I've verified are the only offsets necessary.&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 20:05, 7 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
confirmed that this works with Reveal.exe --[[User:Shadetree|Shadetree]] 18:41, 8 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
warp.exe and heal.exe do not work with this configuration. --[[User:Markham|Markham]] 11:28, 9 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
The reason the creature tools will work is due to some issue with how FOCUSED_CREATURE now behaves. Assuming the address is correct, and I'm 99.9% positive it's the correct address, a new method will have to be determined which unit is focused. Also, did your map have existing creatures? -- [[User:Jifodus|Jifodus]] 17:39, 9 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
Confirmed that adjuststart.exe works with this. --[[User:Squeegy|Squeegy]] 23:44, 10 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==176-38a==&lt;br /&gt;
&lt;br /&gt;
Any love on new offsets with version df_27_176_38a? What do you all use to dig up the offsets? A debugger running trace on particular strings?&lt;br /&gt;
&lt;br /&gt;
I use IDA Pro Free, and do a binary match.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[generic]&lt;br /&gt;
DWARF_FORTRESS=0x008D8B08&lt;br /&gt;
&lt;br /&gt;
[address]&lt;br /&gt;
STARTING_POINT_COUNT=0x007B995A&lt;br /&gt;
STARTING_DWARF_COUNT=0x007BA7B3&lt;br /&gt;
MENU_STATE=0x01287D14&lt;br /&gt;
FOCUSED_CREATURE=0x00C7BC00&lt;br /&gt;
CREATURE_VECTOR=0x01450E9C&lt;br /&gt;
MOUSE_X=0x00941288&lt;br /&gt;
MOUSE_Y=0x0094128C&lt;br /&gt;
MOUSE_Z=0x00941290&lt;br /&gt;
MAP_DATA=0x014A4EAC&lt;br /&gt;
MAP_X_COUNT=0x014A4EC4&lt;br /&gt;
MAP_Y_COUNT=0x014A4EC8&lt;br /&gt;
MAP_Z_COUNT=0x014A4ECC&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x030C&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Heal &amp;amp; Warp won't work due to FOCUSED_CREATURE not working properly. -- [[User:Jifodus|Jifodus]] 04:00, 17 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== 0.27.176.38b ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[generic]&lt;br /&gt;
DWARF_FORTRESS=0x008D8A58&lt;br /&gt;
&lt;br /&gt;
[address]&lt;br /&gt;
MAP_DATA=0x014A50A4&lt;br /&gt;
MAP_X_COUNT=0x014A50BC&lt;br /&gt;
MAP_Y_COUNT=0x014A50C0&lt;br /&gt;
MAP_Z_COUNT=0x014A50C4&lt;br /&gt;
MENU_STATE=0x01287D14&lt;br /&gt;
FOCUSED_CREATURE=0x00C7BC04&lt;br /&gt;
STARTING_DWARF_COUNT=0x007BBCA4&lt;br /&gt;
STARTING_POINT_COUNT=0x007BAE4A&lt;br /&gt;
MOUSE_X=0x0094128C&lt;br /&gt;
MOUSE_Y=0x00941290&lt;br /&gt;
MOUSE_Z=0x00941294&lt;br /&gt;
CREATURE_VECTOR=0x01463574&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x0660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x0000&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
CREATURE_BODY_PART_HEAL_VECTOR_OFFSET=0x02FC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 23:08, 24 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Are you sure that's right? Reveal.exe isn't working for me with this.--[[User:Eiba|Eiba]] 00:19, 25 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
Seems you got the starting points right for AdjustStart, but not the dwarf count. [[User:MikeWulf|MikeWulf]]&lt;br /&gt;
&lt;br /&gt;
A little late, but my finder program didn't spit out the correct address for vectors. -- [[User:Jifodus|Jifodus]] 02:26, 4 March 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== 0.27.176.38c ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[generic]&lt;br /&gt;
DWARF_FORTRESS=0x008D9A58&lt;br /&gt;
&lt;br /&gt;
[address]&lt;br /&gt;
STARTING_POINT_COUNT=&lt;br /&gt;
STARTING_DWARF_COUNT=&lt;br /&gt;
MENU_STATE=&lt;br /&gt;
FOCUSED_CREATURE=&lt;br /&gt;
CREATURE_VECTOR=&lt;br /&gt;
MOUSE_X=&lt;br /&gt;
MOUSE_Y=&lt;br /&gt;
MOUSE_Z=&lt;br /&gt;
MAP_DATA=0x014A60A4&lt;br /&gt;
MAP_X_COUNT=0x014A60BC&lt;br /&gt;
MAP_Y_COUNT=0x014A60C0&lt;br /&gt;
MAP_Z_COUNT=0x014A60C4&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x030C&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Only reveal works with this memory.ini. Offsets are copied from version 176.38a. --[[User:DFD|DFD]] 11:53, 29 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
No guarantee's (I used an automated program to find these), don't expect any of the creature tools to work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[generic]&lt;br /&gt;
DWARF_FORTRESS=0x008D9A58&lt;br /&gt;
&lt;br /&gt;
[address]&lt;br /&gt;
MAP_DATA=0x014A60A4&lt;br /&gt;
MAP_X_COUNT=0x014A60BC&lt;br /&gt;
MAP_Y_COUNT=0x014A60C0&lt;br /&gt;
MAP_Z_COUNT=0x014A60C4&lt;br /&gt;
MENU_STATE=0x01288D14&lt;br /&gt;
FOCUSED_CREATURE=0x00C7CC04&lt;br /&gt;
STARTING_DWARF_COUNT=0x007BBDB5&lt;br /&gt;
STARTING_POINT_COUNT=0x007BAF5A&lt;br /&gt;
MOUSE_X=0x0094228C&lt;br /&gt;
MOUSE_Y=0x00942290&lt;br /&gt;
MOUSE_Z=0x00942294&lt;br /&gt;
CREATURE_VECTOR=0x01464574&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x0660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x0000&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
CREATURE_BODY_PART_HEAL_VECTOR_OFFSET=0x02FC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 02:28, 4 March 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
STARTING-DWARF_COUNT is wrong again apparently. :&amp;lt; [[User:MikeWulf|MikeWulf]] 21:04, 4 March 2008 (EST)&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User_talk:Rick&amp;diff=25154</id>
		<title>User talk:Rick</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User_talk:Rick&amp;diff=25154"/>
		<updated>2008-03-06T05:25:40Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* 0.27.176.38c */ maybe correct STARTING_DWARF_COUNT&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requests ==&lt;br /&gt;
Hey there. Thanks for writing reveal.exe. It's made my dwarves' lives so much easier!&lt;br /&gt;
&lt;br /&gt;
Do you take requests?&lt;br /&gt;
&lt;br /&gt;
And is this the right place to ask? [[User:Runspotrun|Runspotrun]] 20:32, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Yes, and yes. --[[User:Rick|Rick]] 20:49, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Excellent! Now, I don't know how many people would use it, but I'd love to see a utility that would allow me to choose the temperature/forest/shrub/surroundings/neighbours when starting out. I like to stick to the same sort of areas, but it can be a pain finding them on the map - if they exist at all. Problem is, I think most people take what they're given, region-wise... so I don't think it'd have much of an audience. What do you think? [[User:Runspotrun|Runspotrun]] 20:55, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Er, I haven't just described startpoints.exe, have I? [[User:Runspotrun|Runspotrun]] 21:01, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Well, if you're not averse to requests...  A utility to activate the subterranean flag on indoor areas would be awesome for those of us who'd like to build surface castles in cold/freezing terrain without our dwarves dying of frostbite.  -[[User:EarthquakeDamage|EarthquakeDamage]] 22:45, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::I'd like a rock/gem/ore tool. Would be really neat. Especially the ore/gem one. Also, maybe water/magma creation tools if possible?--[[User:Spelguru|Spelguru]] 01:29, 11 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Something similar to the old skills.exe would be great! --[[User:Vanan|Vanan]] 11:44, 19 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::What I'd like is some way to search for a particular tile on the map.  Probably the easiest thing for you to code is to have reveal.exe have an option where it prints the map data to a file in some simple text format (Just a simple list of 'Z,X,Y &amp;quot;tile code&amp;quot;' would be sufficient.  mapping what tiles have what value would be nice, but not necessary.)  I want to answer the question &amp;quot;Is the raw material for the item the possessed dwarf is asking for somewhere on my map, and if so, where?&amp;quot;  --[[User:Warnold|Warnold]] 23:08, 9 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::I would like to request something that teleports items. --[[User:Demosthenes|Demosthenes]] 02:05, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Is it possible for a utility to remove excess stone? (name and amount in command line) --[[User:Jackard|Jackard]] 07:35, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Wild Praise ==&lt;br /&gt;
Thank you so much for your incredible work! Your applications add so much fun to the game! --[[User:Vanan|Vanan]] 13:56, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Astonishing response time for 33e!  --[[User:Geofferic|Geofferic]] 01:04, 9 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== In reply to ==&lt;br /&gt;
Your statement to me on my page, &amp;quot;Don't subject your opinion unto others. (Though I think you were just trying to be funny...) --Rick 03:54, 31 October 2007 (EDT)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Of course I was. But some people have no real sense of humor. &lt;br /&gt;
&lt;br /&gt;
Also, some people believe they can do things they tell others NOT to do. Your statement is a perfect example of this. You tell me not to subject others to MY opinion, but in doing so you are subjecting me to YOUR opinion. Oh yes, you are one of the VIPs in the DF community, because you wrote a couple utilities. So I suppose I should be humble in your presence, and bow to someone so great. I would do that, but when I bow, I do it facing AWAY from that person, and I drop my trousers at the same time. Still want me to bow to your greatness?&lt;br /&gt;
&lt;br /&gt;
I read other contributions here that voice their opinions the same as I did. I wonder if you said the same thing to all of them as well? Tho since I was able to read the pages they wrote, you clearly did not delete their words as you did mine. And while other entries I made were either deleted or edited, as I expected them to be, since I am not a great wiki writer, you were the only one to send me a somewhat nasty note. &lt;br /&gt;
&lt;br /&gt;
Think whatever you like of me, but at least I was contributing, and trying to give a few smiles along the way. Seems to me tho, that DF is fun, and it's wiki should be too. And, from other pages I read, others feel the same way I do. Maybe you should take a look around at some of their pages, and lighten up yourself a bit? Maybe trade with the elves for a tame blue jay, and drop it down your shorts. If that doesnt get a giggle out of you, maybe you should go join the undead at one of their ruins?&lt;br /&gt;
&lt;br /&gt;
: Wow, way to blow up that up, I was just jesting. I think I'll leave your words here, [[User:Darknight|Darknight]]. --[[User:Rick|Rick]] 19:25, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Oh, and for the record, I did not remove your message, someone else did that. Check the page history. --[[User:Rick|Rick]] 19:29, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== heal.exe bug? ==&lt;br /&gt;
&lt;br /&gt;
Hmm... I've found that heal -hurt doesn't work on fire men, at least in 33b. It sets all their body parts to red, but the fire man just keeps wandering around and scaring my poor witless dwarves. I haven't found a living fire man yet in 33c so I can't check. [[User:Runspotrun|Runspotrun]] 06:59, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Are firemen immune to pain? Hurt just nukes bodyparts, not kills creatures, most creatures who feel pain will die from that, but I guess ones who don't won't. --[[User:Rick|Rick]] 12:08, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Just checked - yes they are. That'd explain it then, ta. [[User:Runspotrun|Runspotrun]] 14:38, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== INI? ==&lt;br /&gt;
&lt;br /&gt;
Does anyone see anything obviously wrong about this? I used various comparisons to come to these values (as well as what the hex fellow posted in the memory hacking section), and editing them as such into the reveal.exe allowed me to get that program to function, but the ini isn't reenabling the executables on its own:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[address]&lt;br /&gt;
DWARF_FORTRESS=0x0089C414 ; correct&lt;br /&gt;
MENU_STATE=0x0124565C ; maybe&lt;br /&gt;
FOCUSED_CREATURE=0x00C39548 ; correct&lt;br /&gt;
CREATURE_VECTOR=0x01420A48 ; correct&lt;br /&gt;
MOUSE_X=0x008FF290 ; pretty sure should be 008FF288&lt;br /&gt;
MOUSE_Y=0x008FF294 ; pretty sure should be 008FF28C&lt;br /&gt;
MOUSE_Z=0x008FF298 ; pretty sure should be 008FF290&lt;br /&gt;
MAP_DATA=0x01462568 ; correct&lt;br /&gt;
MAP_X_COUNT=0x01462580 ; correct&lt;br /&gt;
MAP_Y_COUNT=0x01462584 ; correct&lt;br /&gt;
MAP_Z_COUNT=0x01462588 ; correct&lt;br /&gt;
STARTING_DWARF_COUNT=0x0078A54E ; wrong.  0078A554 (value actually is dword at 0078A555)&lt;br /&gt;
STARTING_POINT_COUNT=0x00789703 ; correct (value actually is word at 0078970A)&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260 ; dunno&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660 ; dunno&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000 ; yes&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308 ; probably&lt;br /&gt;
CREATURE_X_OFFSET=0x0094 ; probably&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096 ; probably&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098 ; probably&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:Qalnor|Qalnor]] 14:05, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
I commented the above.  none of the corrections should affect reveal.  I don't know what's going wrong.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 19:53, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: I made a few mistakes when documenting the existing data, which probably threw you guys off. My user page has been updated for 33f. --[[User:Rick|Rick]] 20:41, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Thanks, to both of you. I'll have to go over what I was doing when I get home to try and see where I was going wrong.  [[User:Qalnor|Qalnor]] 15:11, 17 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Possible adjuststart enhancement ==&lt;br /&gt;
Hi!  Merry culturally-appropriate politically-correct generic holiday!&lt;br /&gt;
&lt;br /&gt;
I have found some interesting addresses that work well with adjuststart.&lt;br /&gt;
&lt;br /&gt;
In .33f, the byte at 0078654B holds a constant that is the upper limit that starting skills can be advanced to.  It is normally 5 (proficient).  If you change it to 15, skills can be advanced to legendary.  If you change it to 20, skills can be advanced to legendary+5.&lt;br /&gt;
&lt;br /&gt;
Also in .33f, there's a pair of bytes at 00786466 and 00786608.  If you set both to 0, then the 10 skills per dwarf limit is removed.&lt;br /&gt;
&lt;br /&gt;
I've found equivalant addresses for all the .33 releases.  They're in the memory hacking subpages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;—Preceding unsigned comment added by [[User:0x517A5D|0x517A5D]] ([[User talk:0x517A5D|talk]]{{!}}[[Special:Contributions/0x517A5D|contribs]]) {{{2|}}}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Did I not sign that?  Oops.  Well, I was tired.  Thank you, VengefulDonut.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:02, 19 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Very cool, I'll probably add these for the next release then. --[[User:Rick|Rick]] 04:18, 20 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Update of utilities ==&lt;br /&gt;
&lt;br /&gt;
So how much longer do you suppose it might take to transition the utilities to 33f?--[[User:Heliopios|Heliopios]] 13:04, 19 December 2007 (EST)&lt;br /&gt;
:With the .ini method there isnt really a need to rebuild the utilities for 32f. [[User:VengefulDonut|VengefulDonut]] 15:25, 19 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:And how exactly do you use memory.ini?  I've created a new ini file (yes, it's a .ini, not a .ini.txt) and pasted everything under [code] tags for .33f, and lugged it into the dir. with the required executable (heal.exe in this case) but when I run it it still says it was built for .33e. Should I put it somewhere else?  In any case, instructions for use are either inexistent or pretty well hidden here in the wiki.&lt;br /&gt;
:Cheers. [[User:N35t0r|N35t0r]] 21:45, 19 December 2007 (EST)&lt;br /&gt;
::Did you name it &amp;quot;memory.ini&amp;quot;? This worked for me with reveal.exe [[User:VengefulDonut|VengefulDonut]] 01:52, 20 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Possible INI file syntax change ==&lt;br /&gt;
&lt;br /&gt;
I would like to suggest a change to the format of MEMORY.INI.  Instead of the [generic], [address], and [offset] sections (which in my opinion buy you nothing), I would suggest using sections keyed off the PE header timestamp.  (You have previously indicated that you plan to convert to that method anyway.)  So a sample .INI file might look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;; .33e&lt;br /&gt;
[475B7526]&lt;br /&gt;
MENU_STATE=0x01244654&lt;br /&gt;
FOCUSED_CREATURE=0x00C38540&lt;br /&gt;
CREATURE_VECTOR=0x0141FA40&lt;br /&gt;
MOUSE_X=0x008FE288&lt;br /&gt;
MOUSE_Y=0x008FE28C&lt;br /&gt;
MOUSE_Z=0x008FE290&lt;br /&gt;
MAP_DATA=0x01461560&lt;br /&gt;
MAP_X_COUNT=0x01461578&lt;br /&gt;
MAP_Y_COUNT=0x0146157C&lt;br /&gt;
MAP_Z_COUNT=0x01461580&lt;br /&gt;
STARTING_DWARF_COUNT=0x007893C5&lt;br /&gt;
STARTING_POINT_COUNT=0x0078857A&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
&lt;br /&gt;
; .33f&lt;br /&gt;
[4763710C]&lt;br /&gt;
MENU_STATE=0x0124565C&lt;br /&gt;
FOCUSED_CREATURE=0x00C39548&lt;br /&gt;
CREATURE_VECTOR=0x01420A48&lt;br /&gt;
MOUSE_X=0x008FF288&lt;br /&gt;
MOUSE_Y=0x008FF28C&lt;br /&gt;
MOUSE_Z=0x008FF290&lt;br /&gt;
MAP_DATA=0x01462568&lt;br /&gt;
MAP_X_COUNT=0x01462580&lt;br /&gt;
MAP_Y_COUNT=0x01462584&lt;br /&gt;
MAP_Z_COUNT=0x01462588&lt;br /&gt;
STARTING_DWARF_COUNT=0x0078A555&lt;br /&gt;
STARTING_POINT_COUNT=0x0078970A&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main reason to do this is to allow data for multiple versions to be in the .INI file.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 18:22, 21 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Agreed, will do this. --[[User:Rick|Rick]] 15:28, 22 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== 33g memory.ini ==&lt;br /&gt;
&lt;br /&gt;
0x517A5D looked these up and put them on the 33g memory hacking page, but did not actually put them in here. He copied/pasted from 33f. Mistake? I looked up the dwarf fortress tag and used his values for the ones I could see on the other page he posted (33g memory hacking page) and updated them. It works for reveal, but it's missing FOCUSED_CREATURE and CREATURE_VECTOR because I can't find them.&lt;br /&gt;
--[[User:Paul|Paul]] 15:05, 22 December 2007 (CST)&lt;br /&gt;
:I just cross-referenced those 2 values with the 33f memory location page and updated them. Should work now, though I haven't tested. --[[User:Janus|Janus]] 16:27, 22 December 2007 (EST)&lt;br /&gt;
::The currently listed FOCUSED_CREATURE and CREATURE_VECTOR values don't appear to work. --[[User:Zurai|Zurai]] 22:20, 22 December 2007 (EST)&lt;br /&gt;
:::Hi Zurai.  Do to my blunder, there was a short period where those two values were incorrect.  You probably hit that window.  Check the values in your copy against the ones shown now.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:59, 22 December 2007 (EST)&lt;br /&gt;
::::Heal.exe and warp.exe (only when trying to warp a creature - warp to find the coords of a tile works fine) both give me &amp;quot;An error has occured: please select a unit in 'view units' mode&amp;quot; using FOCUSED_CREATURE=0x00C40540 and CREATURE_VECTOR=0x01427B60, which are the values listed at the time of this writing. I've redownloaded both executables and re-made the ini from scratch, copy-pasting the values from the 33g listing, and it still occurs. Is anyone else having the same issue? Maybe my computer doesn't like heal or warp any more. Reveal works fine, though. --[[User:Zurai|Zurai]] 18:45, 23 December 2007 (EST)&lt;br /&gt;
:::::I found the problem.  It was MENU_STATE.  Yes, anyone else who tried to use these utils would experience the same problem.  I have now edited the .33g memory.ini section again, and verified that warp.exe, heal.exe -hurt, and heal.exe all work.  I'm really, really sorry for the mess up.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:39, 23 December 2007 (EST)&lt;br /&gt;
::::::I'm having this pop up with the new memory.ini info for warp.exe: &amp;quot;An error has occured:failed to read block pointer for to block&amp;quot;.  --[[User:Corbine|Corbine]] 03:19, 24 December 2007 (EST)&lt;br /&gt;
:::::::Well, let's go down the checklist.  Due to a blunder on my part, the .33g memory.ini file was wrong for several hours.  One of the mistakes causes that error message.   Try deleting memory.ini and making a new one with the [[User:Rick#v0.27.169.33g|current data]].&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 14:29, 24 December 2007 (EST)&lt;br /&gt;
::::::::Deleted the memory.ini, made a new one and threw the new info into it, still same error. --[[User:Corbine|Corbine]] 01:28, 25 December 2007 (EST)&lt;br /&gt;
:::::::::Corbine, are you still experiencing this?  I just realized I've left this hanging for a week.  Sorry.  Okay, next.  Previous versions of warp have worked for you with previous versions of DF?  Do other of Rick's utilities work for you?  My tentative diagnosis is that &amp;lt;u&amp;gt;part&amp;lt;/u&amp;gt; of your INI file is wrong.  If the whole thing was wrong, it would merely complain that it was built for version .33e.  I don't know which particular key being wrong gives that error, and I don't have a .33g test fort at the moment, so I can't easily check right now.  But I could when I have time.  Really, I'm puzzled.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 03:47, 31 December 2007 (EST)&lt;br /&gt;
:Yes, mistake.  Arrgh.  I must have copied from the wrong editor window.  Thank you both.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 17:08, 22 December 2007 (EST)&lt;br /&gt;
::No worries, and thanks for posting the new memory locations in the first place. I personally was looking forward to that info so I could use reveal.exe to examine potential fortress locations in newly created 33g worlds, so it is much appreciated. --[[User:Janus|Janus]] 18:07, 22 December 2007 (EST)&lt;br /&gt;
::I was all excited when I saw the 33g info up, then went to paste it into my ini and realised the data was the same... I figured you just accidentally pasted the wrong thing in. The only thing I could figure out how to look up was the Dwarf Fortress tag location, so it is appreciated that you looked all the rest up. With the world generation changing, it's nice to have reveal available to search for new sites. [[User:Paul|Paul]] 21:20, 22 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
==38a==&lt;br /&gt;
&lt;br /&gt;
How would we update this? --[[User:Squeegy|Squeegy]] 20:22, 5 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we can start by finding the relevant mem locations for 88a&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[generic]&amp;lt;br /&amp;gt;&lt;br /&gt;
DWARF_FORTRESS=0x00C11218&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[address]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
MENU_STATE=&amp;lt;br /&amp;gt;&lt;br /&gt;
FOCUSED_CREATURE=&amp;lt;br /&amp;gt;.&lt;br /&gt;
CREATURE_VECTOR=&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_X=0x0092f288&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_Y=0x0092f28c&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_Z=0x0092f290&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_DATA=&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_X_COUNT=0x014929F0&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_Y_COUNT=0x014929F4&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_Z_COUNT=0x014929F8&amp;lt;br /&amp;gt;&lt;br /&gt;
STARTING_DWARF_COUNT=&amp;lt;br /&amp;gt;&lt;br /&gt;
STARTING_POINT_COUNT=&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
those are the easy ones.&lt;br /&gt;
if we had map data and confirmed that the offset was correct at least Reveal.exe would work but I'm out of time today.  --[[User:Shadetree|Shadetree]] 22:23, 6 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
I've found the other addresses. I won't guarantee that the offsets other than MAP_DATA_DESIGNATION_OFFSET, MAP_DATA_OCCUPANCY_OFFSET, and CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET are correct.&lt;br /&gt;
 [generic]&lt;br /&gt;
 DWARF_FORTRESS=0x00C11218&lt;br /&gt;
 &lt;br /&gt;
 [address]&lt;br /&gt;
 STARTING_POINT_COUNT=0x007AF4FA&lt;br /&gt;
 STARTING_DWARF_COUNT=0x007B0345&lt;br /&gt;
 MENU_STATE=0x0127599C&lt;br /&gt;
 FOCUSED_CREATURE=0x00C69888&lt;br /&gt;
 CREATURE_VECTOR=0x01450E98&lt;br /&gt;
 MOUSE_X=0x0092F288&lt;br /&gt;
 MOUSE_Y=0x0092F28C&lt;br /&gt;
 MOUSE_Z=0x0092F290&lt;br /&gt;
 MAP_DATA=0x014929CC&lt;br /&gt;
 MAP_X_COUNT=0x014929E4&lt;br /&gt;
 MAP_Y_COUNT=0x014929E8&lt;br /&gt;
 MAP_Z_COUNT=0x014929EC&lt;br /&gt;
 &lt;br /&gt;
 [offset]&lt;br /&gt;
 MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
 MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
 CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
 CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
 CREATURE_X_OFFSET=0x0094&lt;br /&gt;
 CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
 CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
If I understand how Rick's tools work, the offsets I've verified are the only offsets necessary.&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 20:05, 7 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
confirmed that this works with Reveal.exe --[[User:Shadetree|Shadetree]] 18:41, 8 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
warp.exe and heal.exe do not work with this configuration. --[[User:Markham|Markham]] 11:28, 9 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
The reason the creature tools will work is due to some issue with how FOCUSED_CREATURE now behaves. Assuming the address is correct, and I'm 99.9% positive it's the correct address, a new method will have to be determined which unit is focused. Also, did your map have existing creatures? -- [[User:Jifodus|Jifodus]] 17:39, 9 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
Confirmed that adjuststart.exe works with this. --[[User:Squeegy|Squeegy]] 23:44, 10 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==176-38a==&lt;br /&gt;
&lt;br /&gt;
Any love on new offsets with version df_27_176_38a? What do you all use to dig up the offsets? A debugger running trace on particular strings?&lt;br /&gt;
&lt;br /&gt;
I use IDA Pro Free, and do a binary match.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[generic]&lt;br /&gt;
DWARF_FORTRESS=0x008D8B08&lt;br /&gt;
&lt;br /&gt;
[address]&lt;br /&gt;
STARTING_POINT_COUNT=0x007B995A&lt;br /&gt;
STARTING_DWARF_COUNT=0x007BA7B3&lt;br /&gt;
MENU_STATE=0x01287D14&lt;br /&gt;
FOCUSED_CREATURE=0x00C7BC00&lt;br /&gt;
CREATURE_VECTOR=0x01450E9C&lt;br /&gt;
MOUSE_X=0x00941288&lt;br /&gt;
MOUSE_Y=0x0094128C&lt;br /&gt;
MOUSE_Z=0x00941290&lt;br /&gt;
MAP_DATA=0x014A4EAC&lt;br /&gt;
MAP_X_COUNT=0x014A4EC4&lt;br /&gt;
MAP_Y_COUNT=0x014A4EC8&lt;br /&gt;
MAP_Z_COUNT=0x014A4ECC&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x030C&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Heal &amp;amp; Warp won't work due to FOCUSED_CREATURE not working properly. -- [[User:Jifodus|Jifodus]] 04:00, 17 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== 0.27.176.38b ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[generic]&lt;br /&gt;
DWARF_FORTRESS=0x008D8A58&lt;br /&gt;
&lt;br /&gt;
[address]&lt;br /&gt;
MAP_DATA=0x014A50A4&lt;br /&gt;
MAP_X_COUNT=0x014A50BC&lt;br /&gt;
MAP_Y_COUNT=0x014A50C0&lt;br /&gt;
MAP_Z_COUNT=0x014A50C4&lt;br /&gt;
MENU_STATE=0x01287D14&lt;br /&gt;
FOCUSED_CREATURE=0x00C7BC04&lt;br /&gt;
STARTING_DWARF_COUNT=0x007AEB77&lt;br /&gt;
STARTING_POINT_COUNT=0x007BAE4A&lt;br /&gt;
MOUSE_X=0x0094128C&lt;br /&gt;
MOUSE_Y=0x00941290&lt;br /&gt;
MOUSE_Z=0x00941294&lt;br /&gt;
CREATURE_VECTOR=0x01463574&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x0660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x0000&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
CREATURE_BODY_PART_HEAL_VECTOR_OFFSET=0x02FC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 23:08, 24 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Are you sure that's right? Reveal.exe isn't working for me with this.--[[User:Eiba|Eiba]] 00:19, 25 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
Seems you got the starting points right for AdjustStart, but not the dwarf count. [[User:MikeWulf|MikeWulf]]&lt;br /&gt;
&lt;br /&gt;
A little late, but my finder program didn't spit out the correct address for vectors. -- [[User:Jifodus|Jifodus]] 02:26, 4 March 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== 0.27.176.38c ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[generic]&lt;br /&gt;
DWARF_FORTRESS=0x008D9A58&lt;br /&gt;
&lt;br /&gt;
[address]&lt;br /&gt;
STARTING_POINT_COUNT=&lt;br /&gt;
STARTING_DWARF_COUNT=&lt;br /&gt;
MENU_STATE=&lt;br /&gt;
FOCUSED_CREATURE=&lt;br /&gt;
CREATURE_VECTOR=&lt;br /&gt;
MOUSE_X=&lt;br /&gt;
MOUSE_Y=&lt;br /&gt;
MOUSE_Z=&lt;br /&gt;
MAP_DATA=0x014A60A4&lt;br /&gt;
MAP_X_COUNT=0x014A60BC&lt;br /&gt;
MAP_Y_COUNT=0x014A60C0&lt;br /&gt;
MAP_Z_COUNT=0x014A60C4&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x030C&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Only reveal works with this memory.ini. Offsets are copied from version 176.38a. --[[User:DFD|DFD]] 11:53, 29 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
No guarantee's (I used an automated program to find these), don't expect any of the creature tools to work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[generic]&lt;br /&gt;
DWARF_FORTRESS=0x008D9A58&lt;br /&gt;
&lt;br /&gt;
[address]&lt;br /&gt;
MAP_DATA=0x014A60A4&lt;br /&gt;
MAP_X_COUNT=0x014A60BC&lt;br /&gt;
MAP_Y_COUNT=0x014A60C0&lt;br /&gt;
MAP_Z_COUNT=0x014A60C4&lt;br /&gt;
MENU_STATE=0x01288D14&lt;br /&gt;
FOCUSED_CREATURE=0x00C7CC04&lt;br /&gt;
STARTING_DWARF_COUNT=0x007BBDB5&lt;br /&gt;
STARTING_POINT_COUNT=0x007BAF5A&lt;br /&gt;
MOUSE_X=0x0094228C&lt;br /&gt;
MOUSE_Y=0x00942290&lt;br /&gt;
MOUSE_Z=0x00942294&lt;br /&gt;
CREATURE_VECTOR=0x01464574&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x0660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x0000&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
CREATURE_BODY_PART_HEAL_VECTOR_OFFSET=0x02FC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 02:28, 4 March 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
STARTING-DWARF_COUNT is wrong again apparently. :&amp;lt; [[User:MikeWulf|MikeWulf]] 21:04, 4 March 2008 (EST)&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28229</id>
		<title>User:Jifodus</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28229"/>
		<updated>2008-03-04T07:36:32Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* tile_tool */ tool updates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My work analyzing DF's formats:&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Memory research|Memory research]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/CMV file format|CMV file format]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Dwarf Fortress Utility Framework|Dwarf Fortress Utility Framework]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Map block|Map block info]]&lt;br /&gt;
&lt;br /&gt;
I'm trying to standardized configuration &amp;amp; configuration distribution, if interested please read: http://www.geocities.com/jifodus/call_to_standardize_configs.txt&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
===tile_tool===&lt;br /&gt;
I wrote a tool that allows nearly complete editing of a tile's data. It's designed for analyzing a tile's data. Since it's not designed for mass editing, therefore I don't recommend using it for adding more than a couple tiles of water or magma. Or build multiple buildings on top of each other. Use '?' for in-tool help.&lt;br /&gt;
&lt;br /&gt;
http://www.geocities.com/jifodus/tile_tool.zip (61KB)&lt;br /&gt;
&lt;br /&gt;
Mar 04, 2008: http://www.geocities.com/jifodus/auto-update_tile_tool.zip (75KB) - Alternate version that is usable as soon as configuration gets uploaded for it. Source code: http://www.geocities.com/jifodus/tile_tool_src.zip (14KB)&lt;br /&gt;
&lt;br /&gt;
Editable information:&lt;br /&gt;
* Liquid Level&lt;br /&gt;
* Designation Flags&lt;br /&gt;
* Occupancy Flags&lt;br /&gt;
* Temperature&lt;br /&gt;
* Tile #&lt;br /&gt;
* Unknown Values&lt;br /&gt;
&lt;br /&gt;
Additional features:&lt;br /&gt;
* Track tile data.&lt;br /&gt;
* Compare a tile with a tracked tile.&lt;br /&gt;
* Dump the raw bits of Designation, Occupancy, Pathfinding and Unknowns.&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8967</id>
		<title>40d:Utilities</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8967"/>
		<updated>2008-03-04T07:31:25Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* Dwarf Foreman */ v0.27.176.38c config&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are third party applications developed for Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
== Movies, Screenshots, Map Files ==&lt;br /&gt;
&lt;br /&gt;
=== DF Map Compressor / DF Map Archive ===&lt;br /&gt;
&lt;br /&gt;
*[http://shadowlord13.googlepages.com/dfmap-index.html SL's DF Map Compressor - Website]&lt;br /&gt;
*[http://mkv25.net/dfma/ Dwarf Fortress Map Archive]&lt;br /&gt;
&lt;br /&gt;
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 that features an online viewer (written in Flash).&lt;br /&gt;
&lt;br /&gt;
The map compressor was created by Shadowlord in May 2007. Extract from the website :&lt;br /&gt;
:&amp;quot;The '''DF Map Compressor''' is a program I made to encode Dwarf Fortress fortress or world map images into a much smaller format than is possible with normal image formats. Here's a quick summary of how it works: It determines the size of your tiles from your DF font file (or asks you), splits the map up into tiles, identifies duplicate tiles, writes out every unique tile image, and then writes out a list of ID#s for each tile position which points to the tile image for that tile. What it outputs is piped through the LZMA compressor (the one used in 7-zip), to compress it further. The .df-map file which it writes out is usually less than 100 KB in size. (By comparison, a PNG of the same map can exceed 2 megabytes, depending on how well you compress it, whether you change the color depth, and whether you are using a graphical tileset or detailed font).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Read more about the [[User:Markavian/DF_Map_Archive|DF Map Archive]] on Markavian's User page.&lt;br /&gt;
&lt;br /&gt;
=== CMVPlayer === &lt;br /&gt;
&lt;br /&gt;
[http://www.geocities.com/jifodus/CMVPlayer.zip Download CMVPlayer.zip] &lt;br /&gt;
&lt;br /&gt;
First released by Jifodus in April 2007. This application enables playback of the DF movies (.cmv) without starting DF. It also provides some more functionalities, such as :&lt;br /&gt;
* Rewind&lt;br /&gt;
* Pause&lt;br /&gt;
* Play frame per frame&lt;br /&gt;
&lt;br /&gt;
To use, simply unzip the file, and drop and drag the movie on CMVPlayer.exe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 3Dwarf Visualizer - a tool to view maps in 3D ===&lt;br /&gt;
*[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001450 Bay12Forums Thread]&lt;br /&gt;
This is NOT realtime, that is still a long, long way off.&lt;br /&gt;
What this does is read the map out of your computer's memory when DF is running and save it to a file it can read. It can then open that file and show you your fort in glorious 3d.&lt;br /&gt;
Still in beta, obviously.&lt;br /&gt;
&lt;br /&gt;
=== Dwarvis / MapExtract ===&lt;br /&gt;
*[http://code.google.com/p/dwarvis/ dwarvis on Google Code]&lt;br /&gt;
This project is meant as a 3rd party utility for the cult-game dwarf fortress. Its purpose is to eventually provide 3-dimensual visualization of static snapshots of the ingame world of a given fortress.&lt;br /&gt;
&lt;br /&gt;
=== Dwarf Fortress File Depot ===&lt;br /&gt;
*[http://dffd.wimbli.com/ The Dwarf Fortress File Upload Service], an excellent place to store mods, community games, tilesets and other files. Courtesy of [http://www.dwarffortresswiki.net/index.php/User:Janus Janus]; for files related to Dwarf Fortress only.&lt;br /&gt;
&lt;br /&gt;
== Dwarf Companion ==&lt;br /&gt;
The [[User:Bartavelle/DwarfCompanion|Dwarf Companion]], created by [[User:Bartavelle|Bartavelle]] is a graphical helper utility for dwarf fortress that aims to fill the gaps in the user interface. It allows some for some nefarious cheating. For example, you can now mark your nobles as butcherable, and change possessed dwarves to fey moods.&lt;br /&gt;
&lt;br /&gt;
== [[User:Rick|Rick]]'s utilities ==&lt;br /&gt;
Fabulous tools made by the marvelous Rick. All Hail Rick!&lt;br /&gt;
&lt;br /&gt;
Outdated tools (v0.27.169.32a): [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=5465reveal.zip reveal.exe] [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=tileinfo_2.zip tileinfo.exe]&lt;br /&gt;
&lt;br /&gt;
Outdated tools (v0.27.169.33a): [http://kisskapsel.se/adjuststart.exe adjuststart.exe] [http://kisskapsel.se/heal.exe heal.exe] [http://kisskapsel.se/reveal.exe reveal.exe]&lt;br /&gt;
&lt;br /&gt;
Outdated tools (v0.27.169.33b): [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=4621adjuststart.zip adjuststart.exe] [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=2802heal.zip heal.exe] [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=1725reveal.zip reveal.exe] [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=warp.zip warp.exe]&lt;br /&gt;
&lt;br /&gt;
Outdated tools (v0.27.169.33c): [http://no.shizzle.se/~rgibbed/v0.27.169.33c/adjuststart.exe adjuststart.exe] [http://no.shizzle.se/~rgibbed/v0.27.169.33c/heal.exe heal.exe] [http://no.shizzle.se/~rgibbed/v0.27.169.33c/reveal.exe reveal.exe] [http://no.shizzle.se/~rgibbed/v0.27.169.33c/warp.exe warp.exe]&lt;br /&gt;
&lt;br /&gt;
Outdated tools (v0.27.169.33d): [http://no.shizzle.se/~rgibbed/v0.27.169.33d/adjuststart.exe adjuststart.exe] [http://no.shizzle.se/~rgibbed/v0.27.169.33d/heal.exe heal.exe] [http://no.shizzle.se/~rgibbed/v0.27.169.33d/reveal.exe reveal.exe] [http://no.shizzle.se/~rgibbed/v0.27.169.33d/warp.exe warp.exe]&lt;br /&gt;
&lt;br /&gt;
Most Current tools ('''v0.27.169.33e''', none for '''v0.27.176.38a''' yet, unless you use memory.ini for the '''v0.27.169.33e''' tools):&lt;br /&gt;
&lt;br /&gt;
'''Current version out of date? Have skills to find the newer addresses? [[User:Rick#memory.ini|Check Rick's user page for details on memory.ini]].'''&lt;br /&gt;
&lt;br /&gt;
=== adjuststart.exe ===&lt;br /&gt;
[http://no.shizzle.se/~rgibbed/v0.27.169.33e/adjuststart.exe Download adjuststart.exe] &amp;amp;nbsp; Modifies the starting number of dwarves and/or the starting points. &amp;lt;tt&amp;gt;adjuststart.exe &amp;lt;dwarves&amp;gt; &amp;lt;points&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instructions: type cmd in run, put in the location for adjuststart.exe, navigate to the DF main menu, change the starting dwarf number and points in this format: C:\location\adjuststart.exe 10 9999 (gives 10 dwarves, 9999 points) then hit enter.&lt;br /&gt;
&lt;br /&gt;
=== heal.exe ===&lt;br /&gt;
[http://no.shizzle.se/~rgibbed/v0.27.169.33e/heal.exe Download heal.exe] &amp;amp;nbsp; Heals creature limbs (any creature you can highlight with V basically). You can optionally hurt a creature by specifying -hurt on the command-line arguments.&lt;br /&gt;
&lt;br /&gt;
=== reveal.exe ===&lt;br /&gt;
[http://no.shizzle.se/~rgibbed/v0.27.169.33e/reveal.exe Download reveal.exe] &amp;amp;nbsp; Makes as much of the map visible as it can (eg, it can't reveal unallocated map blocks)  Run while Dwarf Fortress is running.&lt;br /&gt;
&lt;br /&gt;
If you want to reveal the entire map, go to the furthest Z level down you can get to, and designate the entire bottom to be mined, then remove the designation, then run reveal.&lt;br /&gt;
&lt;br /&gt;
=== warp.exe ===&lt;br /&gt;
[http://no.shizzle.se/~rgibbed/v0.27.169.33e/warp.exe Download warp.exe] &amp;amp;nbsp; A creature warper, similar to teleport, but properly sets occupancy flags of the tiles with some limitations (eg: if there are multiple creatures on the source tile, the occupancy flag will still be unset).&lt;br /&gt;
&lt;br /&gt;
== Dwarf Foreman ==&lt;br /&gt;
[http://www.pavlovian.net/foreman/ Home page]. Makes switching jobs on and off for large numbers of dwarves simple. Dwarves are grouped by their profession, or custom profession if they have one. By clicking on the graph you can enable any job for all dwarves with that profession. Still in alpha for this version of DF, if it doesn't recognise one of the new professions, check the file '''debug.txt''' in the directory you run foreman from.&lt;br /&gt;
&lt;br /&gt;
Though prone to crashing currently, saving and exiting DF, starting foreman and then starting DF again will usually get it working again. Zorba would also appreciate it if you'd email him the crash log located in the Dwarf Foreman directory when this happens (zorba-foremancrash@pavlovian.net).&lt;br /&gt;
&lt;br /&gt;
Dwarf Foreman currently allows you to change the jobs of visiting merchants, outpost liaisons, children, and any other dwarves that aren't normally controllable. It is unsupported but occasionally hilarious, and allows you to finally put those lazy dwarven children to work.&lt;br /&gt;
&lt;br /&gt;
This handy utility would be an ideal complent to an updated LabourDF.&lt;br /&gt;
&lt;br /&gt;
Source code is available.&lt;br /&gt;
----&lt;br /&gt;
To make Foreman compatible with '''v0.27.168.33g''', download the new version and update the config file as shown below. - [http://forums.somethingawful.com/showthread.php?threadid=2677834&amp;amp;userid=0&amp;amp;perpage=40&amp;amp;pagenumber=74#post337422833 Originally posted by Mu.]&lt;br /&gt;
&amp;lt;pre&amp;gt;check=008c407c&lt;br /&gt;
critter_start=01427B50&lt;br /&gt;
dwarfidpos=01248AC8&lt;br /&gt;
profession_start=45c&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.173.38a''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01E30A43&lt;br /&gt;
critter_start=01450E98&lt;br /&gt;
dwarfidpos=01271E10&lt;br /&gt;
profession_start=45c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38a''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=023401d3&lt;br /&gt;
critter_start=01463378&lt;br /&gt;
dwarfidpos=01284188&lt;br /&gt;
profession_start=480&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38b''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01e3dbcc&lt;br /&gt;
critter_start=01463570&lt;br /&gt;
dwarfidpos=01284188&lt;br /&gt;
profession_start=0470&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38c''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] if it doesn't work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01cf4654&lt;br /&gt;
critter_start=01464570&lt;br /&gt;
dwarfidpos=01285188&lt;br /&gt;
profession_start=0470&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== StartProfile ==&lt;br /&gt;
Jifodus wrote a little utility that lets you maintain profiles of your starting dwarves.&lt;br /&gt;
Works for versions 0.27.169.33b, 0.27.169.33c, 0.27.169.33d, and 0.27.169.33e. Check the readme to find out how to switch between the different versions. If you wish to patch the executable yourself, please check [[Talk:Utilities#StartProfile|the utilities talk page]].&lt;br /&gt;
&lt;br /&gt;
[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001367 Discussion thread]&lt;br /&gt;
&lt;br /&gt;
Obsolete: [http://www.geocities.com/jifodus/StartProfile.zip StartProfile utility]&lt;br /&gt;
&lt;br /&gt;
[http://www.geocities.com/jifodus/dfufend.zip StartProfile utility]&lt;br /&gt;
&lt;br /&gt;
Incidentally, if you try this utility, please report success/failure in [[Talk:Utilities#StartProfile|the utilities talk page]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== [[User:0x517A5D|0x517A5D]]'s utilities ==&lt;br /&gt;
&lt;br /&gt;
=== Enable Magma Buildings ===&lt;br /&gt;
Helper utility for Rick's reveal.exe&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=3935enable_magma_buildings.zip enable_magma_buildings.zip]&lt;br /&gt;
&lt;br /&gt;
You need this utility in the case that you used the reveal utility, and&lt;br /&gt;
you had not yet discovered any subsurface magma.&lt;br /&gt;
(If the hide utility is ever updated, you could also hide a few magma&lt;br /&gt;
tiles and then dig them out.  That worked in the old version.)&lt;br /&gt;
&lt;br /&gt;
Because there is no actual flag that controls whether magma has been seen&lt;br /&gt;
(the game searches a list, probably a list of notable events), I had to&lt;br /&gt;
patch the game's code.  This means you need to run the utility every time&lt;br /&gt;
you start dwarfort.exe.&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent.  &lt;br /&gt;
It is expected to work with future releases of Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
=== Regional Prospector ===&lt;br /&gt;
&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=regional_prospector.zip regional_prospector.zip]&lt;br /&gt;
&lt;br /&gt;
A simple but very helpful utility that shows hidden map features at embark time.  &lt;br /&gt;
If you're trying to find the perfect start location by repeatedly embarking and &lt;br /&gt;
revealing, give this one a shot!&lt;br /&gt;
&lt;br /&gt;
Map key:&lt;br /&gt;
:{{Raw Tile|≈|#F00|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;volcano; magma reaches the surface&lt;br /&gt;
:{{Raw Tile|~|#F00|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground magma pipe or magma pool&lt;br /&gt;
:{{Raw Tile|≈|#00F|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground river&lt;br /&gt;
:{{Raw Tile|~|#00F|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground pool&lt;br /&gt;
:{{Raw Tile|#|#000|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;chasm&lt;br /&gt;
:{{Raw Tile|£|#0FF|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;adamantine and pits&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent.  &lt;br /&gt;
It is known to work with all releases from 32a to 33g.  &lt;br /&gt;
It is expected to work with future releases of Dwarf Fortress, &lt;br /&gt;
as long as the embark code doesn't change too much.&lt;br /&gt;
&lt;br /&gt;
Discussion and kudos can be left [[User_talk:0x517A5D#Seekret_Projekt|here]].&lt;br /&gt;
&lt;br /&gt;
=== Latitudes ===&lt;br /&gt;
&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=latitudes.zip Latitudes] is a utility that, when on the embark map screen, shows the X/Y coordinates of the current region.   Until Toady adds [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=5&amp;amp;t=002191 proper support], this will do the trick.  Works in .32a through at least .33g.  Technical notes: uses memory injection, so it may be flagged as a suspicious file by antivirus programs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Temporarily withdrawn as I am experiencing crashes of DF when invoking the utility.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 14:26, 31 December 2007 (EST) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- The bug I was experiencing was a regression in my development version.  It&lt;br /&gt;
does not occur in the current release.  So everything's okay. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Teleport ==&lt;br /&gt;
[http://angband.org/~erasmus/df/teleport22.zip teleport22.zip] -- Teleport dwarves and other creatures&lt;br /&gt;
&lt;br /&gt;
Version 2.2 is &amp;lt;u&amp;gt;really&amp;lt;/u&amp;gt; now independent of the DF version. (33c)&lt;br /&gt;
&lt;br /&gt;
Caveat: The teleport utility does not correctly set the occupancy flag for map squares.  As a results, dwarves will permanently crawl through the square that you teleported them out of.  In addition, you cannot build structures in those squares.&lt;br /&gt;
&lt;br /&gt;
== Water ==&lt;br /&gt;
[http://angband.org/~erasmus/df/water.exe water.exe] -- Quick hack to refill ponds.  Run this while your fortress is up, and it'll restore any &amp;quot;murky pool&amp;quot; tiles (i.e. the floor of ponds and lakes) to 7/7 water.  If you've tunneled into a pond, it'll still refill but will flow out normally.&lt;br /&gt;
&lt;br /&gt;
Only works with version 33e due to its &amp;quot;quick hack&amp;quot; status.&lt;br /&gt;
&lt;br /&gt;
Note:  If there is lava in a murky pool, it will be raised to depth 7/7.&lt;br /&gt;
&lt;br /&gt;
== Lava square ==&lt;br /&gt;
[http://angband.org/~erasmus/df/lavasquare.exe lavasquare.exe] -- Another quick hack to make a 7/7 unit of lava on the currently selected square.  Ignore the random text it spams, as it was quickly adapted from a map query tool, and I didn't bother removing the print statements.&lt;br /&gt;
&lt;br /&gt;
Only works with version 33e. To hack this executable for a later version of dwarf fortress see the [[Talk:Utilities#Lavasquare|talk page]].&lt;br /&gt;
&lt;br /&gt;
33g version plus autohotkey script: http://www.sendspace.com/file/xsl6gs --[[User:Jackard|Jackard]] 09:43, 13 January 2008 (EST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DF Merge by Ikkonoishi ==&lt;br /&gt;
A quick and dirty utility to merge the DF data files together. I plan on making it scriptable so that you can use it to combine mods together easily and sort out any conflicts. Right now it is only useful to merge init files together for different versions of DF. Any values that are shared across the two files are combined with the values from the source overwriting the destination. You then click on the text to select it and copy it into the init.txt file of the new version. &lt;br /&gt;
&lt;br /&gt;
Get it at http://www.mediafire.com/?d3yosptjze0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [http://en.wikipedia.org/wiki/Macro_%28computer_science%29 Macro Programs] ==&lt;br /&gt;
A program that lets you program scripts/macros so that when you press a certain key combination, or in any other fashion activates the program, a series of keystrokes is sent to the active program instead.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.autohotkey.com/ AutoHotKey] ===&lt;br /&gt;
AHK lets you define global hotkeys to send a sequence of keystrokes. For example, you can have {{key|alt}}+{{key|w}} replace {{key|b}}-{{key|C}}-{{key|w}}-{{key|Enter}}-{{key|Enter}} to make wall building much easier.  See [[Macros and Keymaps]] for a how-to and some example scripts.&lt;br /&gt;
----&lt;br /&gt;
See [[:Category:ahk scripts]] for a list of user submitted scripts.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Winmerge ==&lt;br /&gt;
&lt;br /&gt;
This utility allow you to compare even folders or just files and it highlight where lines are different so see what make files different. So that can see what you want merge into one file or not.&lt;br /&gt;
&lt;br /&gt;
Which is at http://winmerge.org/ to download it. [[User:Omagaalpha|Omagaalpha]] 08:30, 13 February 2008 (EST)&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User_talk:Rick&amp;diff=25152</id>
		<title>User talk:Rick</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User_talk:Rick&amp;diff=25152"/>
		<updated>2008-03-04T07:28:05Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* 0.27.176.38c */ full config&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requests ==&lt;br /&gt;
Hey there. Thanks for writing reveal.exe. It's made my dwarves' lives so much easier!&lt;br /&gt;
&lt;br /&gt;
Do you take requests?&lt;br /&gt;
&lt;br /&gt;
And is this the right place to ask? [[User:Runspotrun|Runspotrun]] 20:32, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Yes, and yes. --[[User:Rick|Rick]] 20:49, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Excellent! Now, I don't know how many people would use it, but I'd love to see a utility that would allow me to choose the temperature/forest/shrub/surroundings/neighbours when starting out. I like to stick to the same sort of areas, but it can be a pain finding them on the map - if they exist at all. Problem is, I think most people take what they're given, region-wise... so I don't think it'd have much of an audience. What do you think? [[User:Runspotrun|Runspotrun]] 20:55, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Er, I haven't just described startpoints.exe, have I? [[User:Runspotrun|Runspotrun]] 21:01, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Well, if you're not averse to requests...  A utility to activate the subterranean flag on indoor areas would be awesome for those of us who'd like to build surface castles in cold/freezing terrain without our dwarves dying of frostbite.  -[[User:EarthquakeDamage|EarthquakeDamage]] 22:45, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::I'd like a rock/gem/ore tool. Would be really neat. Especially the ore/gem one. Also, maybe water/magma creation tools if possible?--[[User:Spelguru|Spelguru]] 01:29, 11 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Something similar to the old skills.exe would be great! --[[User:Vanan|Vanan]] 11:44, 19 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::What I'd like is some way to search for a particular tile on the map.  Probably the easiest thing for you to code is to have reveal.exe have an option where it prints the map data to a file in some simple text format (Just a simple list of 'Z,X,Y &amp;quot;tile code&amp;quot;' would be sufficient.  mapping what tiles have what value would be nice, but not necessary.)  I want to answer the question &amp;quot;Is the raw material for the item the possessed dwarf is asking for somewhere on my map, and if so, where?&amp;quot;  --[[User:Warnold|Warnold]] 23:08, 9 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::I would like to request something that teleports items. --[[User:Demosthenes|Demosthenes]] 02:05, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Is it possible for a utility to remove excess stone? (name and amount in command line) --[[User:Jackard|Jackard]] 07:35, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Wild Praise ==&lt;br /&gt;
Thank you so much for your incredible work! Your applications add so much fun to the game! --[[User:Vanan|Vanan]] 13:56, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Astonishing response time for 33e!  --[[User:Geofferic|Geofferic]] 01:04, 9 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== In reply to ==&lt;br /&gt;
Your statement to me on my page, &amp;quot;Don't subject your opinion unto others. (Though I think you were just trying to be funny...) --Rick 03:54, 31 October 2007 (EDT)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Of course I was. But some people have no real sense of humor. &lt;br /&gt;
&lt;br /&gt;
Also, some people believe they can do things they tell others NOT to do. Your statement is a perfect example of this. You tell me not to subject others to MY opinion, but in doing so you are subjecting me to YOUR opinion. Oh yes, you are one of the VIPs in the DF community, because you wrote a couple utilities. So I suppose I should be humble in your presence, and bow to someone so great. I would do that, but when I bow, I do it facing AWAY from that person, and I drop my trousers at the same time. Still want me to bow to your greatness?&lt;br /&gt;
&lt;br /&gt;
I read other contributions here that voice their opinions the same as I did. I wonder if you said the same thing to all of them as well? Tho since I was able to read the pages they wrote, you clearly did not delete their words as you did mine. And while other entries I made were either deleted or edited, as I expected them to be, since I am not a great wiki writer, you were the only one to send me a somewhat nasty note. &lt;br /&gt;
&lt;br /&gt;
Think whatever you like of me, but at least I was contributing, and trying to give a few smiles along the way. Seems to me tho, that DF is fun, and it's wiki should be too. And, from other pages I read, others feel the same way I do. Maybe you should take a look around at some of their pages, and lighten up yourself a bit? Maybe trade with the elves for a tame blue jay, and drop it down your shorts. If that doesnt get a giggle out of you, maybe you should go join the undead at one of their ruins?&lt;br /&gt;
&lt;br /&gt;
: Wow, way to blow up that up, I was just jesting. I think I'll leave your words here, [[User:Darknight|Darknight]]. --[[User:Rick|Rick]] 19:25, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Oh, and for the record, I did not remove your message, someone else did that. Check the page history. --[[User:Rick|Rick]] 19:29, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== heal.exe bug? ==&lt;br /&gt;
&lt;br /&gt;
Hmm... I've found that heal -hurt doesn't work on fire men, at least in 33b. It sets all their body parts to red, but the fire man just keeps wandering around and scaring my poor witless dwarves. I haven't found a living fire man yet in 33c so I can't check. [[User:Runspotrun|Runspotrun]] 06:59, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Are firemen immune to pain? Hurt just nukes bodyparts, not kills creatures, most creatures who feel pain will die from that, but I guess ones who don't won't. --[[User:Rick|Rick]] 12:08, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Just checked - yes they are. That'd explain it then, ta. [[User:Runspotrun|Runspotrun]] 14:38, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== INI? ==&lt;br /&gt;
&lt;br /&gt;
Does anyone see anything obviously wrong about this? I used various comparisons to come to these values (as well as what the hex fellow posted in the memory hacking section), and editing them as such into the reveal.exe allowed me to get that program to function, but the ini isn't reenabling the executables on its own:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[address]&lt;br /&gt;
DWARF_FORTRESS=0x0089C414 ; correct&lt;br /&gt;
MENU_STATE=0x0124565C ; maybe&lt;br /&gt;
FOCUSED_CREATURE=0x00C39548 ; correct&lt;br /&gt;
CREATURE_VECTOR=0x01420A48 ; correct&lt;br /&gt;
MOUSE_X=0x008FF290 ; pretty sure should be 008FF288&lt;br /&gt;
MOUSE_Y=0x008FF294 ; pretty sure should be 008FF28C&lt;br /&gt;
MOUSE_Z=0x008FF298 ; pretty sure should be 008FF290&lt;br /&gt;
MAP_DATA=0x01462568 ; correct&lt;br /&gt;
MAP_X_COUNT=0x01462580 ; correct&lt;br /&gt;
MAP_Y_COUNT=0x01462584 ; correct&lt;br /&gt;
MAP_Z_COUNT=0x01462588 ; correct&lt;br /&gt;
STARTING_DWARF_COUNT=0x0078A54E ; wrong.  0078A554 (value actually is dword at 0078A555)&lt;br /&gt;
STARTING_POINT_COUNT=0x00789703 ; correct (value actually is word at 0078970A)&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260 ; dunno&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660 ; dunno&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000 ; yes&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308 ; probably&lt;br /&gt;
CREATURE_X_OFFSET=0x0094 ; probably&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096 ; probably&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098 ; probably&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:Qalnor|Qalnor]] 14:05, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
I commented the above.  none of the corrections should affect reveal.  I don't know what's going wrong.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 19:53, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: I made a few mistakes when documenting the existing data, which probably threw you guys off. My user page has been updated for 33f. --[[User:Rick|Rick]] 20:41, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Thanks, to both of you. I'll have to go over what I was doing when I get home to try and see where I was going wrong.  [[User:Qalnor|Qalnor]] 15:11, 17 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Possible adjuststart enhancement ==&lt;br /&gt;
Hi!  Merry culturally-appropriate politically-correct generic holiday!&lt;br /&gt;
&lt;br /&gt;
I have found some interesting addresses that work well with adjuststart.&lt;br /&gt;
&lt;br /&gt;
In .33f, the byte at 0078654B holds a constant that is the upper limit that starting skills can be advanced to.  It is normally 5 (proficient).  If you change it to 15, skills can be advanced to legendary.  If you change it to 20, skills can be advanced to legendary+5.&lt;br /&gt;
&lt;br /&gt;
Also in .33f, there's a pair of bytes at 00786466 and 00786608.  If you set both to 0, then the 10 skills per dwarf limit is removed.&lt;br /&gt;
&lt;br /&gt;
I've found equivalant addresses for all the .33 releases.  They're in the memory hacking subpages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;—Preceding unsigned comment added by [[User:0x517A5D|0x517A5D]] ([[User talk:0x517A5D|talk]]{{!}}[[Special:Contributions/0x517A5D|contribs]]) {{{2|}}}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Did I not sign that?  Oops.  Well, I was tired.  Thank you, VengefulDonut.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:02, 19 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Very cool, I'll probably add these for the next release then. --[[User:Rick|Rick]] 04:18, 20 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Update of utilities ==&lt;br /&gt;
&lt;br /&gt;
So how much longer do you suppose it might take to transition the utilities to 33f?--[[User:Heliopios|Heliopios]] 13:04, 19 December 2007 (EST)&lt;br /&gt;
:With the .ini method there isnt really a need to rebuild the utilities for 32f. [[User:VengefulDonut|VengefulDonut]] 15:25, 19 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:And how exactly do you use memory.ini?  I've created a new ini file (yes, it's a .ini, not a .ini.txt) and pasted everything under [code] tags for .33f, and lugged it into the dir. with the required executable (heal.exe in this case) but when I run it it still says it was built for .33e. Should I put it somewhere else?  In any case, instructions for use are either inexistent or pretty well hidden here in the wiki.&lt;br /&gt;
:Cheers. [[User:N35t0r|N35t0r]] 21:45, 19 December 2007 (EST)&lt;br /&gt;
::Did you name it &amp;quot;memory.ini&amp;quot;? This worked for me with reveal.exe [[User:VengefulDonut|VengefulDonut]] 01:52, 20 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Possible INI file syntax change ==&lt;br /&gt;
&lt;br /&gt;
I would like to suggest a change to the format of MEMORY.INI.  Instead of the [generic], [address], and [offset] sections (which in my opinion buy you nothing), I would suggest using sections keyed off the PE header timestamp.  (You have previously indicated that you plan to convert to that method anyway.)  So a sample .INI file might look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;; .33e&lt;br /&gt;
[475B7526]&lt;br /&gt;
MENU_STATE=0x01244654&lt;br /&gt;
FOCUSED_CREATURE=0x00C38540&lt;br /&gt;
CREATURE_VECTOR=0x0141FA40&lt;br /&gt;
MOUSE_X=0x008FE288&lt;br /&gt;
MOUSE_Y=0x008FE28C&lt;br /&gt;
MOUSE_Z=0x008FE290&lt;br /&gt;
MAP_DATA=0x01461560&lt;br /&gt;
MAP_X_COUNT=0x01461578&lt;br /&gt;
MAP_Y_COUNT=0x0146157C&lt;br /&gt;
MAP_Z_COUNT=0x01461580&lt;br /&gt;
STARTING_DWARF_COUNT=0x007893C5&lt;br /&gt;
STARTING_POINT_COUNT=0x0078857A&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
&lt;br /&gt;
; .33f&lt;br /&gt;
[4763710C]&lt;br /&gt;
MENU_STATE=0x0124565C&lt;br /&gt;
FOCUSED_CREATURE=0x00C39548&lt;br /&gt;
CREATURE_VECTOR=0x01420A48&lt;br /&gt;
MOUSE_X=0x008FF288&lt;br /&gt;
MOUSE_Y=0x008FF28C&lt;br /&gt;
MOUSE_Z=0x008FF290&lt;br /&gt;
MAP_DATA=0x01462568&lt;br /&gt;
MAP_X_COUNT=0x01462580&lt;br /&gt;
MAP_Y_COUNT=0x01462584&lt;br /&gt;
MAP_Z_COUNT=0x01462588&lt;br /&gt;
STARTING_DWARF_COUNT=0x0078A555&lt;br /&gt;
STARTING_POINT_COUNT=0x0078970A&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main reason to do this is to allow data for multiple versions to be in the .INI file.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 18:22, 21 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Agreed, will do this. --[[User:Rick|Rick]] 15:28, 22 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== 33g memory.ini ==&lt;br /&gt;
&lt;br /&gt;
0x517A5D looked these up and put them on the 33g memory hacking page, but did not actually put them in here. He copied/pasted from 33f. Mistake? I looked up the dwarf fortress tag and used his values for the ones I could see on the other page he posted (33g memory hacking page) and updated them. It works for reveal, but it's missing FOCUSED_CREATURE and CREATURE_VECTOR because I can't find them.&lt;br /&gt;
--[[User:Paul|Paul]] 15:05, 22 December 2007 (CST)&lt;br /&gt;
:I just cross-referenced those 2 values with the 33f memory location page and updated them. Should work now, though I haven't tested. --[[User:Janus|Janus]] 16:27, 22 December 2007 (EST)&lt;br /&gt;
::The currently listed FOCUSED_CREATURE and CREATURE_VECTOR values don't appear to work. --[[User:Zurai|Zurai]] 22:20, 22 December 2007 (EST)&lt;br /&gt;
:::Hi Zurai.  Do to my blunder, there was a short period where those two values were incorrect.  You probably hit that window.  Check the values in your copy against the ones shown now.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:59, 22 December 2007 (EST)&lt;br /&gt;
::::Heal.exe and warp.exe (only when trying to warp a creature - warp to find the coords of a tile works fine) both give me &amp;quot;An error has occured: please select a unit in 'view units' mode&amp;quot; using FOCUSED_CREATURE=0x00C40540 and CREATURE_VECTOR=0x01427B60, which are the values listed at the time of this writing. I've redownloaded both executables and re-made the ini from scratch, copy-pasting the values from the 33g listing, and it still occurs. Is anyone else having the same issue? Maybe my computer doesn't like heal or warp any more. Reveal works fine, though. --[[User:Zurai|Zurai]] 18:45, 23 December 2007 (EST)&lt;br /&gt;
:::::I found the problem.  It was MENU_STATE.  Yes, anyone else who tried to use these utils would experience the same problem.  I have now edited the .33g memory.ini section again, and verified that warp.exe, heal.exe -hurt, and heal.exe all work.  I'm really, really sorry for the mess up.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:39, 23 December 2007 (EST)&lt;br /&gt;
::::::I'm having this pop up with the new memory.ini info for warp.exe: &amp;quot;An error has occured:failed to read block pointer for to block&amp;quot;.  --[[User:Corbine|Corbine]] 03:19, 24 December 2007 (EST)&lt;br /&gt;
:::::::Well, let's go down the checklist.  Due to a blunder on my part, the .33g memory.ini file was wrong for several hours.  One of the mistakes causes that error message.   Try deleting memory.ini and making a new one with the [[User:Rick#v0.27.169.33g|current data]].&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 14:29, 24 December 2007 (EST)&lt;br /&gt;
::::::::Deleted the memory.ini, made a new one and threw the new info into it, still same error. --[[User:Corbine|Corbine]] 01:28, 25 December 2007 (EST)&lt;br /&gt;
:::::::::Corbine, are you still experiencing this?  I just realized I've left this hanging for a week.  Sorry.  Okay, next.  Previous versions of warp have worked for you with previous versions of DF?  Do other of Rick's utilities work for you?  My tentative diagnosis is that &amp;lt;u&amp;gt;part&amp;lt;/u&amp;gt; of your INI file is wrong.  If the whole thing was wrong, it would merely complain that it was built for version .33e.  I don't know which particular key being wrong gives that error, and I don't have a .33g test fort at the moment, so I can't easily check right now.  But I could when I have time.  Really, I'm puzzled.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 03:47, 31 December 2007 (EST)&lt;br /&gt;
:Yes, mistake.  Arrgh.  I must have copied from the wrong editor window.  Thank you both.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 17:08, 22 December 2007 (EST)&lt;br /&gt;
::No worries, and thanks for posting the new memory locations in the first place. I personally was looking forward to that info so I could use reveal.exe to examine potential fortress locations in newly created 33g worlds, so it is much appreciated. --[[User:Janus|Janus]] 18:07, 22 December 2007 (EST)&lt;br /&gt;
::I was all excited when I saw the 33g info up, then went to paste it into my ini and realised the data was the same... I figured you just accidentally pasted the wrong thing in. The only thing I could figure out how to look up was the Dwarf Fortress tag location, so it is appreciated that you looked all the rest up. With the world generation changing, it's nice to have reveal available to search for new sites. [[User:Paul|Paul]] 21:20, 22 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
==38a==&lt;br /&gt;
&lt;br /&gt;
How would we update this? --[[User:Squeegy|Squeegy]] 20:22, 5 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we can start by finding the relevant mem locations for 88a&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[generic]&amp;lt;br /&amp;gt;&lt;br /&gt;
DWARF_FORTRESS=0x00C11218&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[address]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
MENU_STATE=&amp;lt;br /&amp;gt;&lt;br /&gt;
FOCUSED_CREATURE=&amp;lt;br /&amp;gt;.&lt;br /&gt;
CREATURE_VECTOR=&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_X=0x0092f288&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_Y=0x0092f28c&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_Z=0x0092f290&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_DATA=&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_X_COUNT=0x014929F0&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_Y_COUNT=0x014929F4&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_Z_COUNT=0x014929F8&amp;lt;br /&amp;gt;&lt;br /&gt;
STARTING_DWARF_COUNT=&amp;lt;br /&amp;gt;&lt;br /&gt;
STARTING_POINT_COUNT=&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
those are the easy ones.&lt;br /&gt;
if we had map data and confirmed that the offset was correct at least Reveal.exe would work but I'm out of time today.  --[[User:Shadetree|Shadetree]] 22:23, 6 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
I've found the other addresses. I won't guarantee that the offsets other than MAP_DATA_DESIGNATION_OFFSET, MAP_DATA_OCCUPANCY_OFFSET, and CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET are correct.&lt;br /&gt;
 [generic]&lt;br /&gt;
 DWARF_FORTRESS=0x00C11218&lt;br /&gt;
 &lt;br /&gt;
 [address]&lt;br /&gt;
 STARTING_POINT_COUNT=0x007AF4FA&lt;br /&gt;
 STARTING_DWARF_COUNT=0x007B0345&lt;br /&gt;
 MENU_STATE=0x0127599C&lt;br /&gt;
 FOCUSED_CREATURE=0x00C69888&lt;br /&gt;
 CREATURE_VECTOR=0x01450E98&lt;br /&gt;
 MOUSE_X=0x0092F288&lt;br /&gt;
 MOUSE_Y=0x0092F28C&lt;br /&gt;
 MOUSE_Z=0x0092F290&lt;br /&gt;
 MAP_DATA=0x014929CC&lt;br /&gt;
 MAP_X_COUNT=0x014929E4&lt;br /&gt;
 MAP_Y_COUNT=0x014929E8&lt;br /&gt;
 MAP_Z_COUNT=0x014929EC&lt;br /&gt;
 &lt;br /&gt;
 [offset]&lt;br /&gt;
 MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
 MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
 CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
 CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
 CREATURE_X_OFFSET=0x0094&lt;br /&gt;
 CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
 CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
If I understand how Rick's tools work, the offsets I've verified are the only offsets necessary.&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 20:05, 7 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
confirmed that this works with Reveal.exe --[[User:Shadetree|Shadetree]] 18:41, 8 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
warp.exe and heal.exe do not work with this configuration. --[[User:Markham|Markham]] 11:28, 9 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
The reason the creature tools will work is due to some issue with how FOCUSED_CREATURE now behaves. Assuming the address is correct, and I'm 99.9% positive it's the correct address, a new method will have to be determined which unit is focused. Also, did your map have existing creatures? -- [[User:Jifodus|Jifodus]] 17:39, 9 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
Confirmed that adjuststart.exe works with this. --[[User:Squeegy|Squeegy]] 23:44, 10 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==176-38a==&lt;br /&gt;
&lt;br /&gt;
Any love on new offsets with version df_27_176_38a? What do you all use to dig up the offsets? A debugger running trace on particular strings?&lt;br /&gt;
&lt;br /&gt;
I use IDA Pro Free, and do a binary match.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[generic]&lt;br /&gt;
DWARF_FORTRESS=0x008D8B08&lt;br /&gt;
&lt;br /&gt;
[address]&lt;br /&gt;
STARTING_POINT_COUNT=0x007B995A&lt;br /&gt;
STARTING_DWARF_COUNT=0x007BA7B3&lt;br /&gt;
MENU_STATE=0x01287D14&lt;br /&gt;
FOCUSED_CREATURE=0x00C7BC00&lt;br /&gt;
CREATURE_VECTOR=0x01450E9C&lt;br /&gt;
MOUSE_X=0x00941288&lt;br /&gt;
MOUSE_Y=0x0094128C&lt;br /&gt;
MOUSE_Z=0x00941290&lt;br /&gt;
MAP_DATA=0x014A4EAC&lt;br /&gt;
MAP_X_COUNT=0x014A4EC4&lt;br /&gt;
MAP_Y_COUNT=0x014A4EC8&lt;br /&gt;
MAP_Z_COUNT=0x014A4ECC&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x030C&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Heal &amp;amp; Warp won't work due to FOCUSED_CREATURE not working properly. -- [[User:Jifodus|Jifodus]] 04:00, 17 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== 0.27.176.38b ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[generic]&lt;br /&gt;
DWARF_FORTRESS=0x008D8A58&lt;br /&gt;
&lt;br /&gt;
[address]&lt;br /&gt;
MAP_DATA=0x014A50A4&lt;br /&gt;
MAP_X_COUNT=0x014A50BC&lt;br /&gt;
MAP_Y_COUNT=0x014A50C0&lt;br /&gt;
MAP_Z_COUNT=0x014A50C4&lt;br /&gt;
MENU_STATE=0x01287D14&lt;br /&gt;
FOCUSED_CREATURE=0x00C7BC04&lt;br /&gt;
STARTING_DWARF_COUNT=0x007AEB77&lt;br /&gt;
STARTING_POINT_COUNT=0x007BAE4A&lt;br /&gt;
MOUSE_X=0x0094128C&lt;br /&gt;
MOUSE_Y=0x00941290&lt;br /&gt;
MOUSE_Z=0x00941294&lt;br /&gt;
CREATURE_VECTOR=0x01463574&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x0660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x0000&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
CREATURE_BODY_PART_HEAL_VECTOR_OFFSET=0x02FC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 23:08, 24 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Are you sure that's right? Reveal.exe isn't working for me with this.--[[User:Eiba|Eiba]] 00:19, 25 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
Seems you got the starting points right for AdjustStart, but not the dwarf count. [[User:MikeWulf|MikeWulf]]&lt;br /&gt;
&lt;br /&gt;
A little late, but my finder program didn't spit out the correct address for vectors. -- [[User:Jifodus|Jifodus]] 02:26, 4 March 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== 0.27.176.38c ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[generic]&lt;br /&gt;
DWARF_FORTRESS=0x008D9A58&lt;br /&gt;
&lt;br /&gt;
[address]&lt;br /&gt;
STARTING_POINT_COUNT=&lt;br /&gt;
STARTING_DWARF_COUNT=&lt;br /&gt;
MENU_STATE=&lt;br /&gt;
FOCUSED_CREATURE=&lt;br /&gt;
CREATURE_VECTOR=&lt;br /&gt;
MOUSE_X=&lt;br /&gt;
MOUSE_Y=&lt;br /&gt;
MOUSE_Z=&lt;br /&gt;
MAP_DATA=0x014A60A4&lt;br /&gt;
MAP_X_COUNT=0x014A60BC&lt;br /&gt;
MAP_Y_COUNT=0x014A60C0&lt;br /&gt;
MAP_Z_COUNT=0x014A60C4&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x030C&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Only reveal works with this memory.ini. Offsets are copied from version 176.38a. --[[User:DFD|DFD]] 11:53, 29 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
No guarantee's (I used an automated program to find these), don't expect any of the creature tools to work.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[generic]&lt;br /&gt;
DWARF_FORTRESS=0x008D9A58&lt;br /&gt;
&lt;br /&gt;
[address]&lt;br /&gt;
MAP_DATA=0x014A60A4&lt;br /&gt;
MAP_X_COUNT=0x014A60BC&lt;br /&gt;
MAP_Y_COUNT=0x014A60C0&lt;br /&gt;
MAP_Z_COUNT=0x014A60C4&lt;br /&gt;
MENU_STATE=0x01288D14&lt;br /&gt;
FOCUSED_CREATURE=0x00C7CC04&lt;br /&gt;
STARTING_DWARF_COUNT=0x007AEC87&lt;br /&gt;
STARTING_POINT_COUNT=0x007BAF5A&lt;br /&gt;
MOUSE_X=0x0094228C&lt;br /&gt;
MOUSE_Y=0x00942290&lt;br /&gt;
MOUSE_Z=0x00942294&lt;br /&gt;
CREATURE_VECTOR=0x01464574&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x0660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x0000&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
CREATURE_BODY_PART_HEAL_VECTOR_OFFSET=0x02FC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 02:28, 4 March 2008 (EST)&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User_talk:Rick&amp;diff=25151</id>
		<title>User talk:Rick</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User_talk:Rick&amp;diff=25151"/>
		<updated>2008-03-04T07:26:29Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* 0.27.176.38b */ config fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requests ==&lt;br /&gt;
Hey there. Thanks for writing reveal.exe. It's made my dwarves' lives so much easier!&lt;br /&gt;
&lt;br /&gt;
Do you take requests?&lt;br /&gt;
&lt;br /&gt;
And is this the right place to ask? [[User:Runspotrun|Runspotrun]] 20:32, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Yes, and yes. --[[User:Rick|Rick]] 20:49, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Excellent! Now, I don't know how many people would use it, but I'd love to see a utility that would allow me to choose the temperature/forest/shrub/surroundings/neighbours when starting out. I like to stick to the same sort of areas, but it can be a pain finding them on the map - if they exist at all. Problem is, I think most people take what they're given, region-wise... so I don't think it'd have much of an audience. What do you think? [[User:Runspotrun|Runspotrun]] 20:55, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Er, I haven't just described startpoints.exe, have I? [[User:Runspotrun|Runspotrun]] 21:01, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Well, if you're not averse to requests...  A utility to activate the subterranean flag on indoor areas would be awesome for those of us who'd like to build surface castles in cold/freezing terrain without our dwarves dying of frostbite.  -[[User:EarthquakeDamage|EarthquakeDamage]] 22:45, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::I'd like a rock/gem/ore tool. Would be really neat. Especially the ore/gem one. Also, maybe water/magma creation tools if possible?--[[User:Spelguru|Spelguru]] 01:29, 11 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Something similar to the old skills.exe would be great! --[[User:Vanan|Vanan]] 11:44, 19 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::What I'd like is some way to search for a particular tile on the map.  Probably the easiest thing for you to code is to have reveal.exe have an option where it prints the map data to a file in some simple text format (Just a simple list of 'Z,X,Y &amp;quot;tile code&amp;quot;' would be sufficient.  mapping what tiles have what value would be nice, but not necessary.)  I want to answer the question &amp;quot;Is the raw material for the item the possessed dwarf is asking for somewhere on my map, and if so, where?&amp;quot;  --[[User:Warnold|Warnold]] 23:08, 9 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::I would like to request something that teleports items. --[[User:Demosthenes|Demosthenes]] 02:05, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Is it possible for a utility to remove excess stone? (name and amount in command line) --[[User:Jackard|Jackard]] 07:35, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Wild Praise ==&lt;br /&gt;
Thank you so much for your incredible work! Your applications add so much fun to the game! --[[User:Vanan|Vanan]] 13:56, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Astonishing response time for 33e!  --[[User:Geofferic|Geofferic]] 01:04, 9 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== In reply to ==&lt;br /&gt;
Your statement to me on my page, &amp;quot;Don't subject your opinion unto others. (Though I think you were just trying to be funny...) --Rick 03:54, 31 October 2007 (EDT)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Of course I was. But some people have no real sense of humor. &lt;br /&gt;
&lt;br /&gt;
Also, some people believe they can do things they tell others NOT to do. Your statement is a perfect example of this. You tell me not to subject others to MY opinion, but in doing so you are subjecting me to YOUR opinion. Oh yes, you are one of the VIPs in the DF community, because you wrote a couple utilities. So I suppose I should be humble in your presence, and bow to someone so great. I would do that, but when I bow, I do it facing AWAY from that person, and I drop my trousers at the same time. Still want me to bow to your greatness?&lt;br /&gt;
&lt;br /&gt;
I read other contributions here that voice their opinions the same as I did. I wonder if you said the same thing to all of them as well? Tho since I was able to read the pages they wrote, you clearly did not delete their words as you did mine. And while other entries I made were either deleted or edited, as I expected them to be, since I am not a great wiki writer, you were the only one to send me a somewhat nasty note. &lt;br /&gt;
&lt;br /&gt;
Think whatever you like of me, but at least I was contributing, and trying to give a few smiles along the way. Seems to me tho, that DF is fun, and it's wiki should be too. And, from other pages I read, others feel the same way I do. Maybe you should take a look around at some of their pages, and lighten up yourself a bit? Maybe trade with the elves for a tame blue jay, and drop it down your shorts. If that doesnt get a giggle out of you, maybe you should go join the undead at one of their ruins?&lt;br /&gt;
&lt;br /&gt;
: Wow, way to blow up that up, I was just jesting. I think I'll leave your words here, [[User:Darknight|Darknight]]. --[[User:Rick|Rick]] 19:25, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Oh, and for the record, I did not remove your message, someone else did that. Check the page history. --[[User:Rick|Rick]] 19:29, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== heal.exe bug? ==&lt;br /&gt;
&lt;br /&gt;
Hmm... I've found that heal -hurt doesn't work on fire men, at least in 33b. It sets all their body parts to red, but the fire man just keeps wandering around and scaring my poor witless dwarves. I haven't found a living fire man yet in 33c so I can't check. [[User:Runspotrun|Runspotrun]] 06:59, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Are firemen immune to pain? Hurt just nukes bodyparts, not kills creatures, most creatures who feel pain will die from that, but I guess ones who don't won't. --[[User:Rick|Rick]] 12:08, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Just checked - yes they are. That'd explain it then, ta. [[User:Runspotrun|Runspotrun]] 14:38, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== INI? ==&lt;br /&gt;
&lt;br /&gt;
Does anyone see anything obviously wrong about this? I used various comparisons to come to these values (as well as what the hex fellow posted in the memory hacking section), and editing them as such into the reveal.exe allowed me to get that program to function, but the ini isn't reenabling the executables on its own:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[address]&lt;br /&gt;
DWARF_FORTRESS=0x0089C414 ; correct&lt;br /&gt;
MENU_STATE=0x0124565C ; maybe&lt;br /&gt;
FOCUSED_CREATURE=0x00C39548 ; correct&lt;br /&gt;
CREATURE_VECTOR=0x01420A48 ; correct&lt;br /&gt;
MOUSE_X=0x008FF290 ; pretty sure should be 008FF288&lt;br /&gt;
MOUSE_Y=0x008FF294 ; pretty sure should be 008FF28C&lt;br /&gt;
MOUSE_Z=0x008FF298 ; pretty sure should be 008FF290&lt;br /&gt;
MAP_DATA=0x01462568 ; correct&lt;br /&gt;
MAP_X_COUNT=0x01462580 ; correct&lt;br /&gt;
MAP_Y_COUNT=0x01462584 ; correct&lt;br /&gt;
MAP_Z_COUNT=0x01462588 ; correct&lt;br /&gt;
STARTING_DWARF_COUNT=0x0078A54E ; wrong.  0078A554 (value actually is dword at 0078A555)&lt;br /&gt;
STARTING_POINT_COUNT=0x00789703 ; correct (value actually is word at 0078970A)&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260 ; dunno&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660 ; dunno&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000 ; yes&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308 ; probably&lt;br /&gt;
CREATURE_X_OFFSET=0x0094 ; probably&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096 ; probably&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098 ; probably&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:Qalnor|Qalnor]] 14:05, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
I commented the above.  none of the corrections should affect reveal.  I don't know what's going wrong.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 19:53, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: I made a few mistakes when documenting the existing data, which probably threw you guys off. My user page has been updated for 33f. --[[User:Rick|Rick]] 20:41, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Thanks, to both of you. I'll have to go over what I was doing when I get home to try and see where I was going wrong.  [[User:Qalnor|Qalnor]] 15:11, 17 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Possible adjuststart enhancement ==&lt;br /&gt;
Hi!  Merry culturally-appropriate politically-correct generic holiday!&lt;br /&gt;
&lt;br /&gt;
I have found some interesting addresses that work well with adjuststart.&lt;br /&gt;
&lt;br /&gt;
In .33f, the byte at 0078654B holds a constant that is the upper limit that starting skills can be advanced to.  It is normally 5 (proficient).  If you change it to 15, skills can be advanced to legendary.  If you change it to 20, skills can be advanced to legendary+5.&lt;br /&gt;
&lt;br /&gt;
Also in .33f, there's a pair of bytes at 00786466 and 00786608.  If you set both to 0, then the 10 skills per dwarf limit is removed.&lt;br /&gt;
&lt;br /&gt;
I've found equivalant addresses for all the .33 releases.  They're in the memory hacking subpages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;—Preceding unsigned comment added by [[User:0x517A5D|0x517A5D]] ([[User talk:0x517A5D|talk]]{{!}}[[Special:Contributions/0x517A5D|contribs]]) {{{2|}}}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Did I not sign that?  Oops.  Well, I was tired.  Thank you, VengefulDonut.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:02, 19 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Very cool, I'll probably add these for the next release then. --[[User:Rick|Rick]] 04:18, 20 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Update of utilities ==&lt;br /&gt;
&lt;br /&gt;
So how much longer do you suppose it might take to transition the utilities to 33f?--[[User:Heliopios|Heliopios]] 13:04, 19 December 2007 (EST)&lt;br /&gt;
:With the .ini method there isnt really a need to rebuild the utilities for 32f. [[User:VengefulDonut|VengefulDonut]] 15:25, 19 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:And how exactly do you use memory.ini?  I've created a new ini file (yes, it's a .ini, not a .ini.txt) and pasted everything under [code] tags for .33f, and lugged it into the dir. with the required executable (heal.exe in this case) but when I run it it still says it was built for .33e. Should I put it somewhere else?  In any case, instructions for use are either inexistent or pretty well hidden here in the wiki.&lt;br /&gt;
:Cheers. [[User:N35t0r|N35t0r]] 21:45, 19 December 2007 (EST)&lt;br /&gt;
::Did you name it &amp;quot;memory.ini&amp;quot;? This worked for me with reveal.exe [[User:VengefulDonut|VengefulDonut]] 01:52, 20 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Possible INI file syntax change ==&lt;br /&gt;
&lt;br /&gt;
I would like to suggest a change to the format of MEMORY.INI.  Instead of the [generic], [address], and [offset] sections (which in my opinion buy you nothing), I would suggest using sections keyed off the PE header timestamp.  (You have previously indicated that you plan to convert to that method anyway.)  So a sample .INI file might look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;; .33e&lt;br /&gt;
[475B7526]&lt;br /&gt;
MENU_STATE=0x01244654&lt;br /&gt;
FOCUSED_CREATURE=0x00C38540&lt;br /&gt;
CREATURE_VECTOR=0x0141FA40&lt;br /&gt;
MOUSE_X=0x008FE288&lt;br /&gt;
MOUSE_Y=0x008FE28C&lt;br /&gt;
MOUSE_Z=0x008FE290&lt;br /&gt;
MAP_DATA=0x01461560&lt;br /&gt;
MAP_X_COUNT=0x01461578&lt;br /&gt;
MAP_Y_COUNT=0x0146157C&lt;br /&gt;
MAP_Z_COUNT=0x01461580&lt;br /&gt;
STARTING_DWARF_COUNT=0x007893C5&lt;br /&gt;
STARTING_POINT_COUNT=0x0078857A&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
&lt;br /&gt;
; .33f&lt;br /&gt;
[4763710C]&lt;br /&gt;
MENU_STATE=0x0124565C&lt;br /&gt;
FOCUSED_CREATURE=0x00C39548&lt;br /&gt;
CREATURE_VECTOR=0x01420A48&lt;br /&gt;
MOUSE_X=0x008FF288&lt;br /&gt;
MOUSE_Y=0x008FF28C&lt;br /&gt;
MOUSE_Z=0x008FF290&lt;br /&gt;
MAP_DATA=0x01462568&lt;br /&gt;
MAP_X_COUNT=0x01462580&lt;br /&gt;
MAP_Y_COUNT=0x01462584&lt;br /&gt;
MAP_Z_COUNT=0x01462588&lt;br /&gt;
STARTING_DWARF_COUNT=0x0078A555&lt;br /&gt;
STARTING_POINT_COUNT=0x0078970A&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main reason to do this is to allow data for multiple versions to be in the .INI file.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 18:22, 21 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Agreed, will do this. --[[User:Rick|Rick]] 15:28, 22 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== 33g memory.ini ==&lt;br /&gt;
&lt;br /&gt;
0x517A5D looked these up and put them on the 33g memory hacking page, but did not actually put them in here. He copied/pasted from 33f. Mistake? I looked up the dwarf fortress tag and used his values for the ones I could see on the other page he posted (33g memory hacking page) and updated them. It works for reveal, but it's missing FOCUSED_CREATURE and CREATURE_VECTOR because I can't find them.&lt;br /&gt;
--[[User:Paul|Paul]] 15:05, 22 December 2007 (CST)&lt;br /&gt;
:I just cross-referenced those 2 values with the 33f memory location page and updated them. Should work now, though I haven't tested. --[[User:Janus|Janus]] 16:27, 22 December 2007 (EST)&lt;br /&gt;
::The currently listed FOCUSED_CREATURE and CREATURE_VECTOR values don't appear to work. --[[User:Zurai|Zurai]] 22:20, 22 December 2007 (EST)&lt;br /&gt;
:::Hi Zurai.  Do to my blunder, there was a short period where those two values were incorrect.  You probably hit that window.  Check the values in your copy against the ones shown now.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:59, 22 December 2007 (EST)&lt;br /&gt;
::::Heal.exe and warp.exe (only when trying to warp a creature - warp to find the coords of a tile works fine) both give me &amp;quot;An error has occured: please select a unit in 'view units' mode&amp;quot; using FOCUSED_CREATURE=0x00C40540 and CREATURE_VECTOR=0x01427B60, which are the values listed at the time of this writing. I've redownloaded both executables and re-made the ini from scratch, copy-pasting the values from the 33g listing, and it still occurs. Is anyone else having the same issue? Maybe my computer doesn't like heal or warp any more. Reveal works fine, though. --[[User:Zurai|Zurai]] 18:45, 23 December 2007 (EST)&lt;br /&gt;
:::::I found the problem.  It was MENU_STATE.  Yes, anyone else who tried to use these utils would experience the same problem.  I have now edited the .33g memory.ini section again, and verified that warp.exe, heal.exe -hurt, and heal.exe all work.  I'm really, really sorry for the mess up.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:39, 23 December 2007 (EST)&lt;br /&gt;
::::::I'm having this pop up with the new memory.ini info for warp.exe: &amp;quot;An error has occured:failed to read block pointer for to block&amp;quot;.  --[[User:Corbine|Corbine]] 03:19, 24 December 2007 (EST)&lt;br /&gt;
:::::::Well, let's go down the checklist.  Due to a blunder on my part, the .33g memory.ini file was wrong for several hours.  One of the mistakes causes that error message.   Try deleting memory.ini and making a new one with the [[User:Rick#v0.27.169.33g|current data]].&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 14:29, 24 December 2007 (EST)&lt;br /&gt;
::::::::Deleted the memory.ini, made a new one and threw the new info into it, still same error. --[[User:Corbine|Corbine]] 01:28, 25 December 2007 (EST)&lt;br /&gt;
:::::::::Corbine, are you still experiencing this?  I just realized I've left this hanging for a week.  Sorry.  Okay, next.  Previous versions of warp have worked for you with previous versions of DF?  Do other of Rick's utilities work for you?  My tentative diagnosis is that &amp;lt;u&amp;gt;part&amp;lt;/u&amp;gt; of your INI file is wrong.  If the whole thing was wrong, it would merely complain that it was built for version .33e.  I don't know which particular key being wrong gives that error, and I don't have a .33g test fort at the moment, so I can't easily check right now.  But I could when I have time.  Really, I'm puzzled.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 03:47, 31 December 2007 (EST)&lt;br /&gt;
:Yes, mistake.  Arrgh.  I must have copied from the wrong editor window.  Thank you both.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 17:08, 22 December 2007 (EST)&lt;br /&gt;
::No worries, and thanks for posting the new memory locations in the first place. I personally was looking forward to that info so I could use reveal.exe to examine potential fortress locations in newly created 33g worlds, so it is much appreciated. --[[User:Janus|Janus]] 18:07, 22 December 2007 (EST)&lt;br /&gt;
::I was all excited when I saw the 33g info up, then went to paste it into my ini and realised the data was the same... I figured you just accidentally pasted the wrong thing in. The only thing I could figure out how to look up was the Dwarf Fortress tag location, so it is appreciated that you looked all the rest up. With the world generation changing, it's nice to have reveal available to search for new sites. [[User:Paul|Paul]] 21:20, 22 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
==38a==&lt;br /&gt;
&lt;br /&gt;
How would we update this? --[[User:Squeegy|Squeegy]] 20:22, 5 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we can start by finding the relevant mem locations for 88a&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[generic]&amp;lt;br /&amp;gt;&lt;br /&gt;
DWARF_FORTRESS=0x00C11218&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[address]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
MENU_STATE=&amp;lt;br /&amp;gt;&lt;br /&gt;
FOCUSED_CREATURE=&amp;lt;br /&amp;gt;.&lt;br /&gt;
CREATURE_VECTOR=&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_X=0x0092f288&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_Y=0x0092f28c&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_Z=0x0092f290&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_DATA=&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_X_COUNT=0x014929F0&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_Y_COUNT=0x014929F4&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_Z_COUNT=0x014929F8&amp;lt;br /&amp;gt;&lt;br /&gt;
STARTING_DWARF_COUNT=&amp;lt;br /&amp;gt;&lt;br /&gt;
STARTING_POINT_COUNT=&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
those are the easy ones.&lt;br /&gt;
if we had map data and confirmed that the offset was correct at least Reveal.exe would work but I'm out of time today.  --[[User:Shadetree|Shadetree]] 22:23, 6 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
I've found the other addresses. I won't guarantee that the offsets other than MAP_DATA_DESIGNATION_OFFSET, MAP_DATA_OCCUPANCY_OFFSET, and CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET are correct.&lt;br /&gt;
 [generic]&lt;br /&gt;
 DWARF_FORTRESS=0x00C11218&lt;br /&gt;
 &lt;br /&gt;
 [address]&lt;br /&gt;
 STARTING_POINT_COUNT=0x007AF4FA&lt;br /&gt;
 STARTING_DWARF_COUNT=0x007B0345&lt;br /&gt;
 MENU_STATE=0x0127599C&lt;br /&gt;
 FOCUSED_CREATURE=0x00C69888&lt;br /&gt;
 CREATURE_VECTOR=0x01450E98&lt;br /&gt;
 MOUSE_X=0x0092F288&lt;br /&gt;
 MOUSE_Y=0x0092F28C&lt;br /&gt;
 MOUSE_Z=0x0092F290&lt;br /&gt;
 MAP_DATA=0x014929CC&lt;br /&gt;
 MAP_X_COUNT=0x014929E4&lt;br /&gt;
 MAP_Y_COUNT=0x014929E8&lt;br /&gt;
 MAP_Z_COUNT=0x014929EC&lt;br /&gt;
 &lt;br /&gt;
 [offset]&lt;br /&gt;
 MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
 MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
 CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
 CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
 CREATURE_X_OFFSET=0x0094&lt;br /&gt;
 CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
 CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
If I understand how Rick's tools work, the offsets I've verified are the only offsets necessary.&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 20:05, 7 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
confirmed that this works with Reveal.exe --[[User:Shadetree|Shadetree]] 18:41, 8 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
warp.exe and heal.exe do not work with this configuration. --[[User:Markham|Markham]] 11:28, 9 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
The reason the creature tools will work is due to some issue with how FOCUSED_CREATURE now behaves. Assuming the address is correct, and I'm 99.9% positive it's the correct address, a new method will have to be determined which unit is focused. Also, did your map have existing creatures? -- [[User:Jifodus|Jifodus]] 17:39, 9 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
Confirmed that adjuststart.exe works with this. --[[User:Squeegy|Squeegy]] 23:44, 10 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==176-38a==&lt;br /&gt;
&lt;br /&gt;
Any love on new offsets with version df_27_176_38a? What do you all use to dig up the offsets? A debugger running trace on particular strings?&lt;br /&gt;
&lt;br /&gt;
I use IDA Pro Free, and do a binary match.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[generic]&lt;br /&gt;
DWARF_FORTRESS=0x008D8B08&lt;br /&gt;
&lt;br /&gt;
[address]&lt;br /&gt;
STARTING_POINT_COUNT=0x007B995A&lt;br /&gt;
STARTING_DWARF_COUNT=0x007BA7B3&lt;br /&gt;
MENU_STATE=0x01287D14&lt;br /&gt;
FOCUSED_CREATURE=0x00C7BC00&lt;br /&gt;
CREATURE_VECTOR=0x01450E9C&lt;br /&gt;
MOUSE_X=0x00941288&lt;br /&gt;
MOUSE_Y=0x0094128C&lt;br /&gt;
MOUSE_Z=0x00941290&lt;br /&gt;
MAP_DATA=0x014A4EAC&lt;br /&gt;
MAP_X_COUNT=0x014A4EC4&lt;br /&gt;
MAP_Y_COUNT=0x014A4EC8&lt;br /&gt;
MAP_Z_COUNT=0x014A4ECC&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x030C&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Heal &amp;amp; Warp won't work due to FOCUSED_CREATURE not working properly. -- [[User:Jifodus|Jifodus]] 04:00, 17 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== 0.27.176.38b ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[generic]&lt;br /&gt;
DWARF_FORTRESS=0x008D8A58&lt;br /&gt;
&lt;br /&gt;
[address]&lt;br /&gt;
MAP_DATA=0x014A50A4&lt;br /&gt;
MAP_X_COUNT=0x014A50BC&lt;br /&gt;
MAP_Y_COUNT=0x014A50C0&lt;br /&gt;
MAP_Z_COUNT=0x014A50C4&lt;br /&gt;
MENU_STATE=0x01287D14&lt;br /&gt;
FOCUSED_CREATURE=0x00C7BC04&lt;br /&gt;
STARTING_DWARF_COUNT=0x007AEB77&lt;br /&gt;
STARTING_POINT_COUNT=0x007BAE4A&lt;br /&gt;
MOUSE_X=0x0094128C&lt;br /&gt;
MOUSE_Y=0x00941290&lt;br /&gt;
MOUSE_Z=0x00941294&lt;br /&gt;
CREATURE_VECTOR=0x01463574&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x0660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x0000&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
CREATURE_BODY_PART_HEAL_VECTOR_OFFSET=0x02FC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 23:08, 24 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Are you sure that's right? Reveal.exe isn't working for me with this.--[[User:Eiba|Eiba]] 00:19, 25 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
Seems you got the starting points right for AdjustStart, but not the dwarf count. [[User:MikeWulf|MikeWulf]]&lt;br /&gt;
&lt;br /&gt;
A little late, but my finder program didn't spit out the correct address for vectors. -- [[User:Jifodus|Jifodus]] 02:26, 4 March 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== 0.27.176.38c ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[generic]&lt;br /&gt;
DWARF_FORTRESS=0x008D9A58&lt;br /&gt;
&lt;br /&gt;
[address]&lt;br /&gt;
STARTING_POINT_COUNT=&lt;br /&gt;
STARTING_DWARF_COUNT=&lt;br /&gt;
MENU_STATE=&lt;br /&gt;
FOCUSED_CREATURE=&lt;br /&gt;
CREATURE_VECTOR=&lt;br /&gt;
MOUSE_X=&lt;br /&gt;
MOUSE_Y=&lt;br /&gt;
MOUSE_Z=&lt;br /&gt;
MAP_DATA=0x014A60A4&lt;br /&gt;
MAP_X_COUNT=0x014A60BC&lt;br /&gt;
MAP_Y_COUNT=0x014A60C0&lt;br /&gt;
MAP_Z_COUNT=0x014A60C4&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x030C&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Only reveal works with this memory.ini. Offsets are copied from version 176.38a. --[[User:DFD|DFD]] 11:53, 29 February 2008 (EST)&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User_talk:Rick&amp;diff=25144</id>
		<title>User talk:Rick</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User_talk:Rick&amp;diff=25144"/>
		<updated>2008-02-25T04:08:12Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: 0.27.176.38b&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requests ==&lt;br /&gt;
Hey there. Thanks for writing reveal.exe. It's made my dwarves' lives so much easier!&lt;br /&gt;
&lt;br /&gt;
Do you take requests?&lt;br /&gt;
&lt;br /&gt;
And is this the right place to ask? [[User:Runspotrun|Runspotrun]] 20:32, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Yes, and yes. --[[User:Rick|Rick]] 20:49, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Excellent! Now, I don't know how many people would use it, but I'd love to see a utility that would allow me to choose the temperature/forest/shrub/surroundings/neighbours when starting out. I like to stick to the same sort of areas, but it can be a pain finding them on the map - if they exist at all. Problem is, I think most people take what they're given, region-wise... so I don't think it'd have much of an audience. What do you think? [[User:Runspotrun|Runspotrun]] 20:55, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Er, I haven't just described startpoints.exe, have I? [[User:Runspotrun|Runspotrun]] 21:01, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Well, if you're not averse to requests...  A utility to activate the subterranean flag on indoor areas would be awesome for those of us who'd like to build surface castles in cold/freezing terrain without our dwarves dying of frostbite.  -[[User:EarthquakeDamage|EarthquakeDamage]] 22:45, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::I'd like a rock/gem/ore tool. Would be really neat. Especially the ore/gem one. Also, maybe water/magma creation tools if possible?--[[User:Spelguru|Spelguru]] 01:29, 11 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Something similar to the old skills.exe would be great! --[[User:Vanan|Vanan]] 11:44, 19 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::What I'd like is some way to search for a particular tile on the map.  Probably the easiest thing for you to code is to have reveal.exe have an option where it prints the map data to a file in some simple text format (Just a simple list of 'Z,X,Y &amp;quot;tile code&amp;quot;' would be sufficient.  mapping what tiles have what value would be nice, but not necessary.)  I want to answer the question &amp;quot;Is the raw material for the item the possessed dwarf is asking for somewhere on my map, and if so, where?&amp;quot;  --[[User:Warnold|Warnold]] 23:08, 9 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::I would like to request something that teleports items. --[[User:Demosthenes|Demosthenes]] 02:05, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Is it possible for a utility to remove excess stone? (name and amount in command line) --[[User:Jackard|Jackard]] 07:35, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Wild Praise ==&lt;br /&gt;
Thank you so much for your incredible work! Your applications add so much fun to the game! --[[User:Vanan|Vanan]] 13:56, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Astonishing response time for 33e!  --[[User:Geofferic|Geofferic]] 01:04, 9 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== In reply to ==&lt;br /&gt;
Your statement to me on my page, &amp;quot;Don't subject your opinion unto others. (Though I think you were just trying to be funny...) --Rick 03:54, 31 October 2007 (EDT)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Of course I was. But some people have no real sense of humor. &lt;br /&gt;
&lt;br /&gt;
Also, some people believe they can do things they tell others NOT to do. Your statement is a perfect example of this. You tell me not to subject others to MY opinion, but in doing so you are subjecting me to YOUR opinion. Oh yes, you are one of the VIPs in the DF community, because you wrote a couple utilities. So I suppose I should be humble in your presence, and bow to someone so great. I would do that, but when I bow, I do it facing AWAY from that person, and I drop my trousers at the same time. Still want me to bow to your greatness?&lt;br /&gt;
&lt;br /&gt;
I read other contributions here that voice their opinions the same as I did. I wonder if you said the same thing to all of them as well? Tho since I was able to read the pages they wrote, you clearly did not delete their words as you did mine. And while other entries I made were either deleted or edited, as I expected them to be, since I am not a great wiki writer, you were the only one to send me a somewhat nasty note. &lt;br /&gt;
&lt;br /&gt;
Think whatever you like of me, but at least I was contributing, and trying to give a few smiles along the way. Seems to me tho, that DF is fun, and it's wiki should be too. And, from other pages I read, others feel the same way I do. Maybe you should take a look around at some of their pages, and lighten up yourself a bit? Maybe trade with the elves for a tame blue jay, and drop it down your shorts. If that doesnt get a giggle out of you, maybe you should go join the undead at one of their ruins?&lt;br /&gt;
&lt;br /&gt;
: Wow, way to blow up that up, I was just jesting. I think I'll leave your words here, [[User:Darknight|Darknight]]. --[[User:Rick|Rick]] 19:25, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Oh, and for the record, I did not remove your message, someone else did that. Check the page history. --[[User:Rick|Rick]] 19:29, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== heal.exe bug? ==&lt;br /&gt;
&lt;br /&gt;
Hmm... I've found that heal -hurt doesn't work on fire men, at least in 33b. It sets all their body parts to red, but the fire man just keeps wandering around and scaring my poor witless dwarves. I haven't found a living fire man yet in 33c so I can't check. [[User:Runspotrun|Runspotrun]] 06:59, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Are firemen immune to pain? Hurt just nukes bodyparts, not kills creatures, most creatures who feel pain will die from that, but I guess ones who don't won't. --[[User:Rick|Rick]] 12:08, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Just checked - yes they are. That'd explain it then, ta. [[User:Runspotrun|Runspotrun]] 14:38, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== INI? ==&lt;br /&gt;
&lt;br /&gt;
Does anyone see anything obviously wrong about this? I used various comparisons to come to these values (as well as what the hex fellow posted in the memory hacking section), and editing them as such into the reveal.exe allowed me to get that program to function, but the ini isn't reenabling the executables on its own:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[address]&lt;br /&gt;
DWARF_FORTRESS=0x0089C414 ; correct&lt;br /&gt;
MENU_STATE=0x0124565C ; maybe&lt;br /&gt;
FOCUSED_CREATURE=0x00C39548 ; correct&lt;br /&gt;
CREATURE_VECTOR=0x01420A48 ; correct&lt;br /&gt;
MOUSE_X=0x008FF290 ; pretty sure should be 008FF288&lt;br /&gt;
MOUSE_Y=0x008FF294 ; pretty sure should be 008FF28C&lt;br /&gt;
MOUSE_Z=0x008FF298 ; pretty sure should be 008FF290&lt;br /&gt;
MAP_DATA=0x01462568 ; correct&lt;br /&gt;
MAP_X_COUNT=0x01462580 ; correct&lt;br /&gt;
MAP_Y_COUNT=0x01462584 ; correct&lt;br /&gt;
MAP_Z_COUNT=0x01462588 ; correct&lt;br /&gt;
STARTING_DWARF_COUNT=0x0078A54E ; wrong.  0078A554 (value actually is dword at 0078A555)&lt;br /&gt;
STARTING_POINT_COUNT=0x00789703 ; correct (value actually is word at 0078970A)&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260 ; dunno&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660 ; dunno&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000 ; yes&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308 ; probably&lt;br /&gt;
CREATURE_X_OFFSET=0x0094 ; probably&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096 ; probably&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098 ; probably&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:Qalnor|Qalnor]] 14:05, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
I commented the above.  none of the corrections should affect reveal.  I don't know what's going wrong.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 19:53, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: I made a few mistakes when documenting the existing data, which probably threw you guys off. My user page has been updated for 33f. --[[User:Rick|Rick]] 20:41, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Thanks, to both of you. I'll have to go over what I was doing when I get home to try and see where I was going wrong.  [[User:Qalnor|Qalnor]] 15:11, 17 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Possible adjuststart enhancement ==&lt;br /&gt;
Hi!  Merry culturally-appropriate politically-correct generic holiday!&lt;br /&gt;
&lt;br /&gt;
I have found some interesting addresses that work well with adjuststart.&lt;br /&gt;
&lt;br /&gt;
In .33f, the byte at 0078654B holds a constant that is the upper limit that starting skills can be advanced to.  It is normally 5 (proficient).  If you change it to 15, skills can be advanced to legendary.  If you change it to 20, skills can be advanced to legendary+5.&lt;br /&gt;
&lt;br /&gt;
Also in .33f, there's a pair of bytes at 00786466 and 00786608.  If you set both to 0, then the 10 skills per dwarf limit is removed.&lt;br /&gt;
&lt;br /&gt;
I've found equivalant addresses for all the .33 releases.  They're in the memory hacking subpages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;—Preceding unsigned comment added by [[User:0x517A5D|0x517A5D]] ([[User talk:0x517A5D|talk]]{{!}}[[Special:Contributions/0x517A5D|contribs]]) {{{2|}}}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Did I not sign that?  Oops.  Well, I was tired.  Thank you, VengefulDonut.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:02, 19 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Very cool, I'll probably add these for the next release then. --[[User:Rick|Rick]] 04:18, 20 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Update of utilities ==&lt;br /&gt;
&lt;br /&gt;
So how much longer do you suppose it might take to transition the utilities to 33f?--[[User:Heliopios|Heliopios]] 13:04, 19 December 2007 (EST)&lt;br /&gt;
:With the .ini method there isnt really a need to rebuild the utilities for 32f. [[User:VengefulDonut|VengefulDonut]] 15:25, 19 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:And how exactly do you use memory.ini?  I've created a new ini file (yes, it's a .ini, not a .ini.txt) and pasted everything under [code] tags for .33f, and lugged it into the dir. with the required executable (heal.exe in this case) but when I run it it still says it was built for .33e. Should I put it somewhere else?  In any case, instructions for use are either inexistent or pretty well hidden here in the wiki.&lt;br /&gt;
:Cheers. [[User:N35t0r|N35t0r]] 21:45, 19 December 2007 (EST)&lt;br /&gt;
::Did you name it &amp;quot;memory.ini&amp;quot;? This worked for me with reveal.exe [[User:VengefulDonut|VengefulDonut]] 01:52, 20 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Possible INI file syntax change ==&lt;br /&gt;
&lt;br /&gt;
I would like to suggest a change to the format of MEMORY.INI.  Instead of the [generic], [address], and [offset] sections (which in my opinion buy you nothing), I would suggest using sections keyed off the PE header timestamp.  (You have previously indicated that you plan to convert to that method anyway.)  So a sample .INI file might look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;; .33e&lt;br /&gt;
[475B7526]&lt;br /&gt;
MENU_STATE=0x01244654&lt;br /&gt;
FOCUSED_CREATURE=0x00C38540&lt;br /&gt;
CREATURE_VECTOR=0x0141FA40&lt;br /&gt;
MOUSE_X=0x008FE288&lt;br /&gt;
MOUSE_Y=0x008FE28C&lt;br /&gt;
MOUSE_Z=0x008FE290&lt;br /&gt;
MAP_DATA=0x01461560&lt;br /&gt;
MAP_X_COUNT=0x01461578&lt;br /&gt;
MAP_Y_COUNT=0x0146157C&lt;br /&gt;
MAP_Z_COUNT=0x01461580&lt;br /&gt;
STARTING_DWARF_COUNT=0x007893C5&lt;br /&gt;
STARTING_POINT_COUNT=0x0078857A&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
&lt;br /&gt;
; .33f&lt;br /&gt;
[4763710C]&lt;br /&gt;
MENU_STATE=0x0124565C&lt;br /&gt;
FOCUSED_CREATURE=0x00C39548&lt;br /&gt;
CREATURE_VECTOR=0x01420A48&lt;br /&gt;
MOUSE_X=0x008FF288&lt;br /&gt;
MOUSE_Y=0x008FF28C&lt;br /&gt;
MOUSE_Z=0x008FF290&lt;br /&gt;
MAP_DATA=0x01462568&lt;br /&gt;
MAP_X_COUNT=0x01462580&lt;br /&gt;
MAP_Y_COUNT=0x01462584&lt;br /&gt;
MAP_Z_COUNT=0x01462588&lt;br /&gt;
STARTING_DWARF_COUNT=0x0078A555&lt;br /&gt;
STARTING_POINT_COUNT=0x0078970A&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main reason to do this is to allow data for multiple versions to be in the .INI file.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 18:22, 21 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Agreed, will do this. --[[User:Rick|Rick]] 15:28, 22 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== 33g memory.ini ==&lt;br /&gt;
&lt;br /&gt;
0x517A5D looked these up and put them on the 33g memory hacking page, but did not actually put them in here. He copied/pasted from 33f. Mistake? I looked up the dwarf fortress tag and used his values for the ones I could see on the other page he posted (33g memory hacking page) and updated them. It works for reveal, but it's missing FOCUSED_CREATURE and CREATURE_VECTOR because I can't find them.&lt;br /&gt;
--[[User:Paul|Paul]] 15:05, 22 December 2007 (CST)&lt;br /&gt;
:I just cross-referenced those 2 values with the 33f memory location page and updated them. Should work now, though I haven't tested. --[[User:Janus|Janus]] 16:27, 22 December 2007 (EST)&lt;br /&gt;
::The currently listed FOCUSED_CREATURE and CREATURE_VECTOR values don't appear to work. --[[User:Zurai|Zurai]] 22:20, 22 December 2007 (EST)&lt;br /&gt;
:::Hi Zurai.  Do to my blunder, there was a short period where those two values were incorrect.  You probably hit that window.  Check the values in your copy against the ones shown now.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:59, 22 December 2007 (EST)&lt;br /&gt;
::::Heal.exe and warp.exe (only when trying to warp a creature - warp to find the coords of a tile works fine) both give me &amp;quot;An error has occured: please select a unit in 'view units' mode&amp;quot; using FOCUSED_CREATURE=0x00C40540 and CREATURE_VECTOR=0x01427B60, which are the values listed at the time of this writing. I've redownloaded both executables and re-made the ini from scratch, copy-pasting the values from the 33g listing, and it still occurs. Is anyone else having the same issue? Maybe my computer doesn't like heal or warp any more. Reveal works fine, though. --[[User:Zurai|Zurai]] 18:45, 23 December 2007 (EST)&lt;br /&gt;
:::::I found the problem.  It was MENU_STATE.  Yes, anyone else who tried to use these utils would experience the same problem.  I have now edited the .33g memory.ini section again, and verified that warp.exe, heal.exe -hurt, and heal.exe all work.  I'm really, really sorry for the mess up.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:39, 23 December 2007 (EST)&lt;br /&gt;
::::::I'm having this pop up with the new memory.ini info for warp.exe: &amp;quot;An error has occured:failed to read block pointer for to block&amp;quot;.  --[[User:Corbine|Corbine]] 03:19, 24 December 2007 (EST)&lt;br /&gt;
:::::::Well, let's go down the checklist.  Due to a blunder on my part, the .33g memory.ini file was wrong for several hours.  One of the mistakes causes that error message.   Try deleting memory.ini and making a new one with the [[User:Rick#v0.27.169.33g|current data]].&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 14:29, 24 December 2007 (EST)&lt;br /&gt;
::::::::Deleted the memory.ini, made a new one and threw the new info into it, still same error. --[[User:Corbine|Corbine]] 01:28, 25 December 2007 (EST)&lt;br /&gt;
:::::::::Corbine, are you still experiencing this?  I just realized I've left this hanging for a week.  Sorry.  Okay, next.  Previous versions of warp have worked for you with previous versions of DF?  Do other of Rick's utilities work for you?  My tentative diagnosis is that &amp;lt;u&amp;gt;part&amp;lt;/u&amp;gt; of your INI file is wrong.  If the whole thing was wrong, it would merely complain that it was built for version .33e.  I don't know which particular key being wrong gives that error, and I don't have a .33g test fort at the moment, so I can't easily check right now.  But I could when I have time.  Really, I'm puzzled.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 03:47, 31 December 2007 (EST)&lt;br /&gt;
:Yes, mistake.  Arrgh.  I must have copied from the wrong editor window.  Thank you both.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 17:08, 22 December 2007 (EST)&lt;br /&gt;
::No worries, and thanks for posting the new memory locations in the first place. I personally was looking forward to that info so I could use reveal.exe to examine potential fortress locations in newly created 33g worlds, so it is much appreciated. --[[User:Janus|Janus]] 18:07, 22 December 2007 (EST)&lt;br /&gt;
::I was all excited when I saw the 33g info up, then went to paste it into my ini and realised the data was the same... I figured you just accidentally pasted the wrong thing in. The only thing I could figure out how to look up was the Dwarf Fortress tag location, so it is appreciated that you looked all the rest up. With the world generation changing, it's nice to have reveal available to search for new sites. [[User:Paul|Paul]] 21:20, 22 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
==38a==&lt;br /&gt;
&lt;br /&gt;
How would we update this? --[[User:Squeegy|Squeegy]] 20:22, 5 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we can start by finding the relevant mem locations for 88a&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[generic]&amp;lt;br /&amp;gt;&lt;br /&gt;
DWARF_FORTRESS=0x00C11218&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[address]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
MENU_STATE=&amp;lt;br /&amp;gt;&lt;br /&gt;
FOCUSED_CREATURE=&amp;lt;br /&amp;gt;.&lt;br /&gt;
CREATURE_VECTOR=&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_X=0x0092f288&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_Y=0x0092f28c&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_Z=0x0092f290&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_DATA=&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_X_COUNT=0x014929F0&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_Y_COUNT=0x014929F4&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_Z_COUNT=0x014929F8&amp;lt;br /&amp;gt;&lt;br /&gt;
STARTING_DWARF_COUNT=&amp;lt;br /&amp;gt;&lt;br /&gt;
STARTING_POINT_COUNT=&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
those are the easy ones.&lt;br /&gt;
if we had map data and confirmed that the offset was correct at least Reveal.exe would work but I'm out of time today.  --[[User:Shadetree|Shadetree]] 22:23, 6 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
I've found the other addresses. I won't guarantee that the offsets other than MAP_DATA_DESIGNATION_OFFSET, MAP_DATA_OCCUPANCY_OFFSET, and CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET are correct.&lt;br /&gt;
 [generic]&lt;br /&gt;
 DWARF_FORTRESS=0x00C11218&lt;br /&gt;
 &lt;br /&gt;
 [address]&lt;br /&gt;
 STARTING_POINT_COUNT=0x007AF4FA&lt;br /&gt;
 STARTING_DWARF_COUNT=0x007B0345&lt;br /&gt;
 MENU_STATE=0x0127599C&lt;br /&gt;
 FOCUSED_CREATURE=0x00C69888&lt;br /&gt;
 CREATURE_VECTOR=0x01450E98&lt;br /&gt;
 MOUSE_X=0x0092F288&lt;br /&gt;
 MOUSE_Y=0x0092F28C&lt;br /&gt;
 MOUSE_Z=0x0092F290&lt;br /&gt;
 MAP_DATA=0x014929CC&lt;br /&gt;
 MAP_X_COUNT=0x014929E4&lt;br /&gt;
 MAP_Y_COUNT=0x014929E8&lt;br /&gt;
 MAP_Z_COUNT=0x014929EC&lt;br /&gt;
 &lt;br /&gt;
 [offset]&lt;br /&gt;
 MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
 MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
 CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
 CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
 CREATURE_X_OFFSET=0x0094&lt;br /&gt;
 CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
 CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
If I understand how Rick's tools work, the offsets I've verified are the only offsets necessary.&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 20:05, 7 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
confirmed that this works with Reveal.exe --[[User:Shadetree|Shadetree]] 18:41, 8 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
warp.exe and heal.exe do not work with this configuration. --[[User:Markham|Markham]] 11:28, 9 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
The reason the creature tools will work is due to some issue with how FOCUSED_CREATURE now behaves. Assuming the address is correct, and I'm 99.9% positive it's the correct address, a new method will have to be determined which unit is focused. Also, did your map have existing creatures? -- [[User:Jifodus|Jifodus]] 17:39, 9 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
Confirmed that adjuststart.exe works with this. --[[User:Squeegy|Squeegy]] 23:44, 10 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==176-38a==&lt;br /&gt;
&lt;br /&gt;
Any love on new offsets with version df_27_176_38a? What do you all use to dig up the offsets? A debugger running trace on particular strings?&lt;br /&gt;
&lt;br /&gt;
I use IDA Pro Free, and do a binary match.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[generic]&lt;br /&gt;
DWARF_FORTRESS=0x008D8B08&lt;br /&gt;
&lt;br /&gt;
[address]&lt;br /&gt;
STARTING_POINT_COUNT=0x007B995A&lt;br /&gt;
STARTING_DWARF_COUNT=0x007BA7B3&lt;br /&gt;
MENU_STATE=0x01287D14&lt;br /&gt;
FOCUSED_CREATURE=0x00C7BC00&lt;br /&gt;
CREATURE_VECTOR=0x01450E9C&lt;br /&gt;
MOUSE_X=0x00941288&lt;br /&gt;
MOUSE_Y=0x0094128C&lt;br /&gt;
MOUSE_Z=0x00941290&lt;br /&gt;
MAP_DATA=0x014A4EAC&lt;br /&gt;
MAP_X_COUNT=0x014A4EC4&lt;br /&gt;
MAP_Y_COUNT=0x014A4EC8&lt;br /&gt;
MAP_Z_COUNT=0x014A4ECC&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x030C&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Heal &amp;amp; Warp won't work due to FOCUSED_CREATURE not working properly. -- [[User:Jifodus|Jifodus]] 04:00, 17 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== 0.27.176.38b ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[generic]&lt;br /&gt;
DWARF_FORTRESS=0x008D8A58&lt;br /&gt;
&lt;br /&gt;
[address]&lt;br /&gt;
MAP_DATA=0x014A50A0&lt;br /&gt;
MAP_X_COUNT=0x014A50BC&lt;br /&gt;
MAP_Y_COUNT=0x014A50C0&lt;br /&gt;
MAP_Z_COUNT=0x014A50C4&lt;br /&gt;
MENU_STATE=0x01287D14&lt;br /&gt;
FOCUSED_CREATURE=0x00C7BC04&lt;br /&gt;
STARTING_DWARF_COUNT=0x007AEB77&lt;br /&gt;
STARTING_POINT_COUNT=0x007BAE4A&lt;br /&gt;
MOUSE_X=0x0094128C&lt;br /&gt;
MOUSE_Y=0x00941290&lt;br /&gt;
MOUSE_Z=0x00941294&lt;br /&gt;
CREATURE_VECTOR=0x01463570&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x0660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x0000&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
CREATURE_BODY_PART_HEAL_VECTOR_OFFSET=0x02FC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 23:08, 24 February 2008 (EST)&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8966</id>
		<title>40d:Utilities</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8966"/>
		<updated>2008-02-25T03:58:10Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* Dwarf Foreman */ v0.27.176.38b&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are third party applications developed for Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
== Movies, Screenshots, Map Files ==&lt;br /&gt;
&lt;br /&gt;
=== DF Map Compressor / DF Map Archive ===&lt;br /&gt;
&lt;br /&gt;
*[http://shadowlord13.googlepages.com/dfmap-index.html SL's DF Map Compressor - Website]&lt;br /&gt;
*[http://mkv25.net/dfma/ Dwarf Fortress Map Archive]&lt;br /&gt;
&lt;br /&gt;
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 that features an online viewer (written in Flash).&lt;br /&gt;
&lt;br /&gt;
The map compressor was created by Shadowlord in May 2007. Extract from the website :&lt;br /&gt;
:&amp;quot;The '''DF Map Compressor''' is a program I made to encode Dwarf Fortress fortress or world map images into a much smaller format than is possible with normal image formats. Here's a quick summary of how it works: It determines the size of your tiles from your DF font file (or asks you), splits the map up into tiles, identifies duplicate tiles, writes out every unique tile image, and then writes out a list of ID#s for each tile position which points to the tile image for that tile. What it outputs is piped through the LZMA compressor (the one used in 7-zip), to compress it further. The .df-map file which it writes out is usually less than 100 KB in size. (By comparison, a PNG of the same map can exceed 2 megabytes, depending on how well you compress it, whether you change the color depth, and whether you are using a graphical tileset or detailed font).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Read more about the [[User:Markavian/DF_Map_Archive|DF Map Archive]] on Markavian's User page.&lt;br /&gt;
&lt;br /&gt;
=== CMVPlayer === &lt;br /&gt;
&lt;br /&gt;
[http://www.geocities.com/jifodus/CMVPlayer.zip Download CMVPlayer.zip] &lt;br /&gt;
&lt;br /&gt;
First released by Jifodus in April 2007. This application enables playback of the DF movies (.cmv) without starting DF. It also provides some more functionalities, such as :&lt;br /&gt;
* Rewind&lt;br /&gt;
* Pause&lt;br /&gt;
* Play frame per frame&lt;br /&gt;
&lt;br /&gt;
To use, simply unzip the file, and drop and drag the movie on CMVPlayer.exe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 3Dwarf Visualizer - a tool to view maps in 3D ===&lt;br /&gt;
*[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001450 Bay12Forums Thread]&lt;br /&gt;
This is NOT realtime, that is still a long, long way off.&lt;br /&gt;
What this does is read the map out of your computer's memory when DF is running and save it to a file it can read. It can then open that file and show you your fort in glorious 3d.&lt;br /&gt;
Still in beta, obviously.&lt;br /&gt;
&lt;br /&gt;
=== Dwarvis / MapExtract ===&lt;br /&gt;
*[http://code.google.com/p/dwarvis/ dwarvis on Google Code]&lt;br /&gt;
This project is meant as a 3rd party utility for the cult-game dwarf fortress. Its purpose is to eventually provide 3-dimensual visualization of static snapshots of the ingame world of a given fortress.&lt;br /&gt;
&lt;br /&gt;
=== Dwarf Fortress File Depot ===&lt;br /&gt;
*[http://dffd.wimbli.com/ The Dwarf Fortress File Upload Service], an excellent place to store mods, community games, tilesets and other files. Courtesy of [http://www.dwarffortresswiki.net/index.php/User:Janus Janus]; for files related to Dwarf Fortress only.&lt;br /&gt;
&lt;br /&gt;
== Dwarf Companion ==&lt;br /&gt;
The [[User:Bartavelle/DwarfCompanion|Dwarf Companion]], created by [[User:Bartavelle|Bartavelle]] is a graphical helper utility for dwarf fortress that aims to fill the gaps in the user interface. It allows some for some nefarious cheating. For example, you can now mark your nobles as butcherable, and change possessed dwarves to fey moods.&lt;br /&gt;
&lt;br /&gt;
== [[User:Rick|Rick]]'s utilities ==&lt;br /&gt;
Fabulous tools made by the marvelous Rick. All Hail Rick!&lt;br /&gt;
&lt;br /&gt;
Outdated tools (v0.27.169.32a): [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=5465reveal.zip reveal.exe] [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=tileinfo_2.zip tileinfo.exe]&lt;br /&gt;
&lt;br /&gt;
Outdated tools (v0.27.169.33a): [http://kisskapsel.se/adjuststart.exe adjuststart.exe] [http://kisskapsel.se/heal.exe heal.exe] [http://kisskapsel.se/reveal.exe reveal.exe]&lt;br /&gt;
&lt;br /&gt;
Outdated tools (v0.27.169.33b): [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=4621adjuststart.zip adjuststart.exe] [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=2802heal.zip heal.exe] [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=1725reveal.zip reveal.exe] [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=warp.zip warp.exe]&lt;br /&gt;
&lt;br /&gt;
Outdated tools (v0.27.169.33c): [http://no.shizzle.se/~rgibbed/v0.27.169.33c/adjuststart.exe adjuststart.exe] [http://no.shizzle.se/~rgibbed/v0.27.169.33c/heal.exe heal.exe] [http://no.shizzle.se/~rgibbed/v0.27.169.33c/reveal.exe reveal.exe] [http://no.shizzle.se/~rgibbed/v0.27.169.33c/warp.exe warp.exe]&lt;br /&gt;
&lt;br /&gt;
Outdated tools (v0.27.169.33d): [http://no.shizzle.se/~rgibbed/v0.27.169.33d/adjuststart.exe adjuststart.exe] [http://no.shizzle.se/~rgibbed/v0.27.169.33d/heal.exe heal.exe] [http://no.shizzle.se/~rgibbed/v0.27.169.33d/reveal.exe reveal.exe] [http://no.shizzle.se/~rgibbed/v0.27.169.33d/warp.exe warp.exe]&lt;br /&gt;
&lt;br /&gt;
Most Current tools ('''v0.27.169.33e''', none for '''v0.27.176.38a''' yet, unless you use memory.ini for the '''v0.27.169.33e''' tools):&lt;br /&gt;
&lt;br /&gt;
'''Current version out of date? Have skills to find the newer addresses? [[User:Rick#memory.ini|Check Rick's user page for details on memory.ini]].'''&lt;br /&gt;
&lt;br /&gt;
=== adjuststart.exe ===&lt;br /&gt;
[http://no.shizzle.se/~rgibbed/v0.27.169.33e/adjuststart.exe Download adjuststart.exe] &amp;amp;nbsp; Modifies the starting number of dwarves and/or the starting points. &amp;lt;tt&amp;gt;adjuststart.exe &amp;lt;dwarves&amp;gt; &amp;lt;points&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instructions: type cmd in run, put in the location for adjuststart.exe, navigate to the DF main menu, change the starting dwarf number and points in this format: C:\location\adjuststart.exe 10 9999 (gives 10 dwarves, 9999 points) then hit enter.&lt;br /&gt;
&lt;br /&gt;
=== heal.exe ===&lt;br /&gt;
[http://no.shizzle.se/~rgibbed/v0.27.169.33e/heal.exe Download heal.exe] &amp;amp;nbsp; Heals creature limbs (any creature you can highlight with V basically). You can optionally hurt a creature by specifying -hurt on the command-line arguments.&lt;br /&gt;
&lt;br /&gt;
=== reveal.exe ===&lt;br /&gt;
[http://no.shizzle.se/~rgibbed/v0.27.169.33e/reveal.exe Download reveal.exe] &amp;amp;nbsp; Makes as much of the map visible as it can (eg, it can't reveal unallocated map blocks)  Run while Dwarf Fortress is running.&lt;br /&gt;
&lt;br /&gt;
If you want to reveal the entire map, go to the furthest Z level down you can get to, and designate the entire bottom to be mined, then remove the designation, then run reveal.&lt;br /&gt;
&lt;br /&gt;
=== warp.exe ===&lt;br /&gt;
[http://no.shizzle.se/~rgibbed/v0.27.169.33e/warp.exe Download warp.exe] &amp;amp;nbsp; A creature warper, similar to teleport, but properly sets occupancy flags of the tiles with some limitations (eg: if there are multiple creatures on the source tile, the occupancy flag will still be unset).&lt;br /&gt;
&lt;br /&gt;
== Dwarf Foreman ==&lt;br /&gt;
[http://www.pavlovian.net/foreman/ Home page]. Makes switching jobs on and off for large numbers of dwarves simple. Dwarves are grouped by their profession, or custom profession if they have one. By clicking on the graph you can enable any job for all dwarves with that profession. Still in alpha for this version of DF, if it doesn't recognise one of the new professions, check the file '''debug.txt''' in the directory you run foreman from.&lt;br /&gt;
&lt;br /&gt;
Though prone to crashing currently, saving and exiting DF, starting foreman and then starting DF again will usually get it working again. Zorba would also appreciate it if you'd email him the crash log located in the Dwarf Foreman directory when this happens (zorba-foremancrash@pavlovian.net).&lt;br /&gt;
&lt;br /&gt;
Dwarf Foreman currently allows you to change the jobs of visiting merchants, outpost liaisons, children, and any other dwarves that aren't normally controllable. It is unsupported but occasionally hilarious, and allows you to finally put those lazy dwarven children to work.&lt;br /&gt;
&lt;br /&gt;
This handy utility would be an ideal complent to an updated LabourDF.&lt;br /&gt;
&lt;br /&gt;
Source code is available.&lt;br /&gt;
----&lt;br /&gt;
To make Foreman compatible with '''v0.27.168.33g''', download the new version and update the config file as shown below. - [http://forums.somethingawful.com/showthread.php?threadid=2677834&amp;amp;userid=0&amp;amp;perpage=40&amp;amp;pagenumber=74#post337422833 Originally posted by Mu.]&lt;br /&gt;
&amp;lt;pre&amp;gt;check=008c407c&lt;br /&gt;
critter_start=01427B50&lt;br /&gt;
dwarfidpos=01248AC8&lt;br /&gt;
profession_start=45c&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.173.38a''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01E30A43&lt;br /&gt;
critter_start=01450E98&lt;br /&gt;
dwarfidpos=01271E10&lt;br /&gt;
profession_start=45c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38a''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=023401d3&lt;br /&gt;
critter_start=01463378&lt;br /&gt;
dwarfidpos=01284188&lt;br /&gt;
profession_start=480&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38b''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01e3dbcc&lt;br /&gt;
critter_start=01463570&lt;br /&gt;
dwarfidpos=01284188&lt;br /&gt;
profession_start=0470&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== StartProfile ==&lt;br /&gt;
Jifodus wrote a little utility that lets you maintain profiles of your starting dwarves.&lt;br /&gt;
Works for versions 0.27.169.33b, 0.27.169.33c, 0.27.169.33d, and 0.27.169.33e. Check the readme to find out how to switch between the different versions. If you wish to patch the executable yourself, please check [[Talk:Utilities#StartProfile|the utilities talk page]].&lt;br /&gt;
&lt;br /&gt;
[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001367 Discussion thread]&lt;br /&gt;
&lt;br /&gt;
Obsolete: [http://www.geocities.com/jifodus/StartProfile.zip StartProfile utility]&lt;br /&gt;
&lt;br /&gt;
[http://www.geocities.com/jifodus/dfufend.zip StartProfile utility]&lt;br /&gt;
&lt;br /&gt;
Incidentally, if you try this utility, please report success/failure in [[Talk:Utilities#StartProfile|the utilities talk page]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== [[User:0x517A5D|0x517A5D]]'s utilities ==&lt;br /&gt;
&lt;br /&gt;
=== Enable Magma Buildings ===&lt;br /&gt;
Helper utility for Rick's reveal.exe&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=3935enable_magma_buildings.zip enable_magma_buildings.zip]&lt;br /&gt;
&lt;br /&gt;
You need this utility in the case that you used the reveal utility, and&lt;br /&gt;
you had not yet discovered any subsurface magma.&lt;br /&gt;
(If the hide utility is ever updated, you could also hide a few magma&lt;br /&gt;
tiles and then dig them out.  That worked in the old version.)&lt;br /&gt;
&lt;br /&gt;
Because there is no actual flag that controls whether magma has been seen&lt;br /&gt;
(the game searches a list, probably a list of notable events), I had to&lt;br /&gt;
patch the game's code.  This means you need to run the utility every time&lt;br /&gt;
you start dwarfort.exe.&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent.  &lt;br /&gt;
It is expected to work with future releases of Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
=== Regional Prospector ===&lt;br /&gt;
&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=regional_prospector.zip regional_prospector.zip]&lt;br /&gt;
&lt;br /&gt;
A simple but very helpful utility that shows hidden map features at embark time.  &lt;br /&gt;
If you're trying to find the perfect start location by repeatedly embarking and &lt;br /&gt;
revealing, give this one a shot!&lt;br /&gt;
&lt;br /&gt;
Map key:&lt;br /&gt;
:{{Raw Tile|≈|#F00|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;volcano; magma reaches the surface&lt;br /&gt;
:{{Raw Tile|~|#F00|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground magma pipe or magma pool&lt;br /&gt;
:{{Raw Tile|≈|#00F|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground river&lt;br /&gt;
:{{Raw Tile|~|#00F|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground pool&lt;br /&gt;
:{{Raw Tile|#|#000|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;chasm&lt;br /&gt;
:{{Raw Tile|£|#0FF|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;adamantine and pits&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent.  &lt;br /&gt;
It is known to work with all releases from 32a to 33g.  &lt;br /&gt;
It is expected to work with future releases of Dwarf Fortress, &lt;br /&gt;
as long as the embark code doesn't change too much.&lt;br /&gt;
&lt;br /&gt;
Discussion and kudos can be left [[User_talk:0x517A5D#Seekret_Projekt|here]].&lt;br /&gt;
&lt;br /&gt;
=== Latitudes ===&lt;br /&gt;
&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=latitudes.zip Latitudes] is a utility that, when on the embark map screen, shows the X/Y coordinates of the current region.   Until Toady adds [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=5&amp;amp;t=002191 proper support], this will do the trick.  Works in .32a through at least .33g.  Technical notes: uses memory injection, so it may be flagged as a suspicious file by antivirus programs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Temporarily withdrawn as I am experiencing crashes of DF when invoking the utility.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 14:26, 31 December 2007 (EST) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- The bug I was experiencing was a regression in my development version.  It&lt;br /&gt;
does not occur in the current release.  So everything's okay. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Teleport ==&lt;br /&gt;
[http://angband.org/~erasmus/df/teleport22.zip teleport22.zip] -- Teleport dwarves and other creatures&lt;br /&gt;
&lt;br /&gt;
Version 2.2 is &amp;lt;u&amp;gt;really&amp;lt;/u&amp;gt; now independent of the DF version. (33c)&lt;br /&gt;
&lt;br /&gt;
Caveat: The teleport utility does not correctly set the occupancy flag for map squares.  As a results, dwarves will permanently crawl through the square that you teleported them out of.  In addition, you cannot build structures in those squares.&lt;br /&gt;
&lt;br /&gt;
== Water ==&lt;br /&gt;
[http://angband.org/~erasmus/df/water.exe water.exe] -- Quick hack to refill ponds.  Run this while your fortress is up, and it'll restore any &amp;quot;murky pool&amp;quot; tiles (i.e. the floor of ponds and lakes) to 7/7 water.  If you've tunneled into a pond, it'll still refill but will flow out normally.&lt;br /&gt;
&lt;br /&gt;
Only works with version 33e due to its &amp;quot;quick hack&amp;quot; status.&lt;br /&gt;
&lt;br /&gt;
Note:  If there is lava in a murky pool, it will be raised to depth 7/7.&lt;br /&gt;
&lt;br /&gt;
== Lava square ==&lt;br /&gt;
[http://angband.org/~erasmus/df/lavasquare.exe lavasquare.exe] -- Another quick hack to make a 7/7 unit of lava on the currently selected square.  Ignore the random text it spams, as it was quickly adapted from a map query tool, and I didn't bother removing the print statements.&lt;br /&gt;
&lt;br /&gt;
Only works with version 33e. To hack this executable for a later version of dwarf fortress see the [[Talk:Utilities#Lavasquare|talk page]].&lt;br /&gt;
&lt;br /&gt;
33g version plus autohotkey script: http://www.sendspace.com/file/xsl6gs --[[User:Jackard|Jackard]] 09:43, 13 January 2008 (EST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DF Merge by Ikkonoishi ==&lt;br /&gt;
A quick and dirty utility to merge the DF data files together. I plan on making it scriptable so that you can use it to combine mods together easily and sort out any conflicts. Right now it is only useful to merge init files together for different versions of DF. Any values that are shared across the two files are combined with the values from the source overwriting the destination. You then click on the text to select it and copy it into the init.txt file of the new version. &lt;br /&gt;
&lt;br /&gt;
Get it at http://www.mediafire.com/?d3yosptjze0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [http://en.wikipedia.org/wiki/Macro_%28computer_science%29 Macro Programs] ==&lt;br /&gt;
A program that lets you program scripts/macros so that when you press a certain key combination, or in any other fashion activates the program, a series of keystrokes is sent to the active program instead.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.autohotkey.com/ AutoHotKey] ===&lt;br /&gt;
AHK lets you define global hotkeys to send a sequence of keystrokes. For example, you can have {{key|alt}}+{{key|w}} replace {{key|b}}-{{key|C}}-{{key|w}}-{{key|Enter}}-{{key|Enter}} to make wall building much easier.  See [[Macros and Keymaps]] for a how-to and some example scripts.&lt;br /&gt;
----&lt;br /&gt;
See [[:Category:ahk scripts]] for a list of user submitted scripts.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Winmerge ==&lt;br /&gt;
&lt;br /&gt;
This utility allow you to compare even folders or just files and it highlight where lines are different so see what make files different. So that can see what you want merge into one file or not.&lt;br /&gt;
&lt;br /&gt;
Which is at http://winmerge.org/ to download it. [[User:Omagaalpha|Omagaalpha]] 08:30, 13 February 2008 (EST)&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28228</id>
		<title>User:Jifodus</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28228"/>
		<updated>2008-02-23T21:34:09Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: Another little project (not utility)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My work analyzing DF's formats:&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Memory research|Memory research]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/CMV file format|CMV file format]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Dwarf Fortress Utility Framework|Dwarf Fortress Utility Framework]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Map block|Map block info]]&lt;br /&gt;
&lt;br /&gt;
I'm trying to standardized configuration &amp;amp; configuration distribution, if interested please read: http://www.geocities.com/jifodus/call_to_standardize_configs.txt&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
===tile_tool===&lt;br /&gt;
I wrote a tool that allows nearly complete editing of a tile's data. It's designed for analyzing a tile's data. Since it's not designed for mass editing, therefore I don't recommend using it for adding more than a couple tiles of water or magma. Or build multiple buildings on top of each other. Use '?' for in-tool help.&lt;br /&gt;
&lt;br /&gt;
http://www.geocities.com/jifodus/tile_tool.zip (61KB)&lt;br /&gt;
&lt;br /&gt;
http://www.geocities.com/jifodus/auto-update_tile_tool.zip (69KB) - Alternate version that is usable as soon as configuration gets uploaded for it. Source code: http://www.geocities.com/jifodus/tile_tool_src.zip (14KB)&lt;br /&gt;
&lt;br /&gt;
Editable information:&lt;br /&gt;
* Liquid Level&lt;br /&gt;
* Designation Flags&lt;br /&gt;
* Occupancy Flags&lt;br /&gt;
* Temperature&lt;br /&gt;
* Tile #&lt;br /&gt;
* Unknown Values&lt;br /&gt;
&lt;br /&gt;
Additional features:&lt;br /&gt;
* Track tile data.&lt;br /&gt;
* Compare a tile with a tracked tile.&lt;br /&gt;
* Dump the raw bits of Designation, Occupancy, Pathfinding and Unknowns.&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28227</id>
		<title>User:Jifodus</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28227"/>
		<updated>2008-02-23T21:11:56Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* tile_tool */ Forgot about the source code&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My work analyzing DF's formats:&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Memory research|Memory research]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/CMV file format|CMV file format]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Dwarf Fortress Utility Framework|Dwarf Fortress Utility Framework]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Map block|Map block info]]&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
===tile_tool===&lt;br /&gt;
I wrote a tool that allows nearly complete editing of a tile's data. It's designed for analyzing a tile's data. Since it's not designed for mass editing, therefore I don't recommend using it for adding more than a couple tiles of water or magma. Or build multiple buildings on top of each other. Use '?' for in-tool help.&lt;br /&gt;
&lt;br /&gt;
http://www.geocities.com/jifodus/tile_tool.zip (61KB)&lt;br /&gt;
&lt;br /&gt;
http://www.geocities.com/jifodus/auto-update_tile_tool.zip (69KB) - Alternate version that is usable as soon as configuration gets uploaded for it. Source code: http://www.geocities.com/jifodus/tile_tool_src.zip (14KB)&lt;br /&gt;
&lt;br /&gt;
Editable information:&lt;br /&gt;
* Liquid Level&lt;br /&gt;
* Designation Flags&lt;br /&gt;
* Occupancy Flags&lt;br /&gt;
* Temperature&lt;br /&gt;
* Tile #&lt;br /&gt;
* Unknown Values&lt;br /&gt;
&lt;br /&gt;
Additional features:&lt;br /&gt;
* Track tile data.&lt;br /&gt;
* Compare a tile with a tracked tile.&lt;br /&gt;
* Dump the raw bits of Designation, Occupancy, Pathfinding and Unknowns.&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28226</id>
		<title>User:Jifodus</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28226"/>
		<updated>2008-02-23T21:09:10Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* tile_tool */ Alternate version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My work analyzing DF's formats:&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Memory research|Memory research]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/CMV file format|CMV file format]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Dwarf Fortress Utility Framework|Dwarf Fortress Utility Framework]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Map block|Map block info]]&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
===tile_tool===&lt;br /&gt;
I wrote a tool that allows nearly complete editing of a tile's data. It's designed for analyzing a tile's data. Since it's not designed for mass editing, therefore I don't recommend using it for adding more than a couple tiles of water or magma. Or build multiple buildings on top of each other. Use '?' for in-tool help.&lt;br /&gt;
&lt;br /&gt;
http://www.geocities.com/jifodus/tile_tool.zip (61KB)&lt;br /&gt;
&lt;br /&gt;
http://www.geocities.com/jifodus/auto-update_tile_tool.zip (69KB) - Alternate version that is usable as soon as configuration gets uploaded for it.&lt;br /&gt;
&lt;br /&gt;
Editable information:&lt;br /&gt;
* Liquid Level&lt;br /&gt;
* Designation Flags&lt;br /&gt;
* Occupancy Flags&lt;br /&gt;
* Temperature&lt;br /&gt;
* Tile #&lt;br /&gt;
* Unknown Values&lt;br /&gt;
&lt;br /&gt;
Additional features:&lt;br /&gt;
* Track tile data.&lt;br /&gt;
* Compare a tile with a tracked tile.&lt;br /&gt;
* Dump the raw bits of Designation, Occupancy, Pathfinding and Unknowns.&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus/Map_block&amp;diff=37349</id>
		<title>User:Jifodus/Map block</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus/Map_block&amp;diff=37349"/>
		<updated>2008-02-23T05:27:34Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Hacking]]&lt;br /&gt;
&lt;br /&gt;
This is a combination of all I've been able to discover. Which isn't much more than what's been already discovered. What I'm not 100% sure about I've added a question mark to it. The letters in ()'s only have significance in my analyzer and editing tool.&lt;br /&gt;
&lt;br /&gt;
You can download my tile analyzer and editing tool from [[User:Jifodus#tile_tool|here]].&lt;br /&gt;
&lt;br /&gt;
 Designation&lt;br /&gt;
    00  |&amp;gt; Liquid Level (0-7), If Magma bit is set, then&lt;br /&gt;
    01  |&amp;gt; liquid is magma, otherwise water.&lt;br /&gt;
    02  |&amp;gt; &lt;br /&gt;
    03 &lt;br /&gt;
    04  |&amp;gt; 001 - M(I)ne Designation&lt;br /&gt;
    05  |&amp;gt; See [[User:Valdemar/Designation Flags|Valdemar's Designation Flags]] for more details&lt;br /&gt;
    06  |&amp;gt; &lt;br /&gt;
    07 &lt;br /&gt;
&lt;br /&gt;
    08 &lt;br /&gt;
    09 H - (H)idden&lt;br /&gt;
    10  |&amp;gt;&lt;br /&gt;
    11  |&amp;gt; Soil/Rock Layer ID?&lt;br /&gt;
    12  |&amp;gt;&lt;br /&gt;
    13  |&amp;gt;&lt;br /&gt;
    14 L - (L)ight&lt;br /&gt;
    15 S - (S)ubterranean&lt;br /&gt;
&lt;br /&gt;
    16 O - (O)utside&lt;br /&gt;
    17  |&amp;gt;&lt;br /&gt;
    18  |&amp;gt; Unknown ID?&lt;br /&gt;
    19  |&amp;gt;&lt;br /&gt;
    20  |&amp;gt;&lt;br /&gt;
    21 M - (M)agma&lt;br /&gt;
    22 D - (D)amp? [[User:Valdemar/Designation Flags|Valdemar's Designation Flags]]&lt;br /&gt;
           lists this flag as Aquifier&lt;br /&gt;
           and that it leaks water when set. I cannot&lt;br /&gt;
           entirely confirm it doesn't leak water&lt;br /&gt;
           on a map that doesn't have an aquifier, but&lt;br /&gt;
           on my map, which doesn't have an aquifier,&lt;br /&gt;
           it didn't leak water. It did, however,&lt;br /&gt;
           visually indicated that the two wall tiles&lt;br /&gt;
           next to the tile I set this flag on were&lt;br /&gt;
           damp (in addition to tile this was set).&lt;br /&gt;
           I won't confirm this finding just yet, but&lt;br /&gt;
           I see a strong indication that this indicates&lt;br /&gt;
           an aquifier.&lt;br /&gt;
    23 R - (R)ain Drop&lt;br /&gt;
&lt;br /&gt;
    24  |&amp;gt; These two bits indicate traffic: 0 - Normal, 1 - Low Traffic, 2 - High Traffic, 3 - Restricted&lt;br /&gt;
    25  |&amp;gt;&lt;br /&gt;
    26 Q - Li(Q)id&lt;br /&gt;
    27 &lt;br /&gt;
    28 Y - Moss(Y)&lt;br /&gt;
    29  |&amp;gt; Liquid Flow Direction? (Directions may be flipped, this points to the edge that has 6/7 water)&lt;br /&gt;
    30  |&amp;gt; 0 - NW   2 - NE   4 - SE   6 - SW&lt;br /&gt;
    31  |&amp;gt; 1 - N    3 - E    5 - S    7 - W&lt;br /&gt;
&lt;br /&gt;
 Occupancy&lt;br /&gt;
    00 U - (U)nwalkable Building Tile&lt;br /&gt;
    01 B - (B)uilding&lt;br /&gt;
    02 &lt;br /&gt;
    03 C - (C)reature&lt;br /&gt;
    04 &lt;br /&gt;
    05 I - (I)tem&lt;br /&gt;
    06 M - (M)uddy&lt;br /&gt;
    07 &lt;br /&gt;
&lt;br /&gt;
    08 &lt;br /&gt;
    09 &lt;br /&gt;
    10 &lt;br /&gt;
    11 &lt;br /&gt;
    12 &lt;br /&gt;
    13 &lt;br /&gt;
    14 &lt;br /&gt;
    15 &lt;br /&gt;
&lt;br /&gt;
    16 &lt;br /&gt;
    17 &lt;br /&gt;
    18 &lt;br /&gt;
    19 &lt;br /&gt;
    20 &lt;br /&gt;
    21 &lt;br /&gt;
    22 &lt;br /&gt;
    23 &lt;br /&gt;
&lt;br /&gt;
    24 &lt;br /&gt;
    25 &lt;br /&gt;
    26 &lt;br /&gt;
    27 &lt;br /&gt;
    28 &lt;br /&gt;
    29 &lt;br /&gt;
    30 &lt;br /&gt;
    31 S - (S)now&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28225</id>
		<title>User:Jifodus</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28225"/>
		<updated>2008-02-23T05:26:03Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: Started a section for my tools. Uploaded a tile editor.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My work analyzing DF's formats:&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Memory research|Memory research]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/CMV file format|CMV file format]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Dwarf Fortress Utility Framework|Dwarf Fortress Utility Framework]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Map block|Map block info]]&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
===tile_tool===&lt;br /&gt;
I wrote a tool that allows nearly complete editing of a tile's data. It's designed for analyzing a tile's data. Since it's not designed for mass editing, therefore I don't recommend using it for adding more than a couple tiles of water or magma. Or build multiple buildings on top of each other. Use '?' for in-tool help.&lt;br /&gt;
&lt;br /&gt;
http://www.geocities.com/jifodus/tile_tool.zip (61KB)&lt;br /&gt;
&lt;br /&gt;
Editable information:&lt;br /&gt;
* Liquid Level&lt;br /&gt;
* Designation Flags&lt;br /&gt;
* Occupancy Flags&lt;br /&gt;
* Temperature&lt;br /&gt;
* Tile #&lt;br /&gt;
* Unknown Values&lt;br /&gt;
&lt;br /&gt;
Additional features:&lt;br /&gt;
* Track tile data.&lt;br /&gt;
* Compare a tile with a tracked tile.&lt;br /&gt;
* Dump the raw bits of Designation, Occupancy, Pathfinding and Unknowns.&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User_talk:Rick&amp;diff=25143</id>
		<title>User talk:Rick</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User_talk:Rick&amp;diff=25143"/>
		<updated>2008-02-17T09:00:52Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* 176-38a */ Config for 0.27.176.38a&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requests ==&lt;br /&gt;
Hey there. Thanks for writing reveal.exe. It's made my dwarves' lives so much easier!&lt;br /&gt;
&lt;br /&gt;
Do you take requests?&lt;br /&gt;
&lt;br /&gt;
And is this the right place to ask? [[User:Runspotrun|Runspotrun]] 20:32, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Yes, and yes. --[[User:Rick|Rick]] 20:49, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Excellent! Now, I don't know how many people would use it, but I'd love to see a utility that would allow me to choose the temperature/forest/shrub/surroundings/neighbours when starting out. I like to stick to the same sort of areas, but it can be a pain finding them on the map - if they exist at all. Problem is, I think most people take what they're given, region-wise... so I don't think it'd have much of an audience. What do you think? [[User:Runspotrun|Runspotrun]] 20:55, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Er, I haven't just described startpoints.exe, have I? [[User:Runspotrun|Runspotrun]] 21:01, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Well, if you're not averse to requests...  A utility to activate the subterranean flag on indoor areas would be awesome for those of us who'd like to build surface castles in cold/freezing terrain without our dwarves dying of frostbite.  -[[User:EarthquakeDamage|EarthquakeDamage]] 22:45, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::I'd like a rock/gem/ore tool. Would be really neat. Especially the ore/gem one. Also, maybe water/magma creation tools if possible?--[[User:Spelguru|Spelguru]] 01:29, 11 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Something similar to the old skills.exe would be great! --[[User:Vanan|Vanan]] 11:44, 19 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::What I'd like is some way to search for a particular tile on the map.  Probably the easiest thing for you to code is to have reveal.exe have an option where it prints the map data to a file in some simple text format (Just a simple list of 'Z,X,Y &amp;quot;tile code&amp;quot;' would be sufficient.  mapping what tiles have what value would be nice, but not necessary.)  I want to answer the question &amp;quot;Is the raw material for the item the possessed dwarf is asking for somewhere on my map, and if so, where?&amp;quot;  --[[User:Warnold|Warnold]] 23:08, 9 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::I would like to request something that teleports items. --[[User:Demosthenes|Demosthenes]] 02:05, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Is it possible for a utility to remove excess stone? (name and amount in command line) --[[User:Jackard|Jackard]] 07:35, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Wild Praise ==&lt;br /&gt;
Thank you so much for your incredible work! Your applications add so much fun to the game! --[[User:Vanan|Vanan]] 13:56, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Astonishing response time for 33e!  --[[User:Geofferic|Geofferic]] 01:04, 9 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== In reply to ==&lt;br /&gt;
Your statement to me on my page, &amp;quot;Don't subject your opinion unto others. (Though I think you were just trying to be funny...) --Rick 03:54, 31 October 2007 (EDT)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Of course I was. But some people have no real sense of humor. &lt;br /&gt;
&lt;br /&gt;
Also, some people believe they can do things they tell others NOT to do. Your statement is a perfect example of this. You tell me not to subject others to MY opinion, but in doing so you are subjecting me to YOUR opinion. Oh yes, you are one of the VIPs in the DF community, because you wrote a couple utilities. So I suppose I should be humble in your presence, and bow to someone so great. I would do that, but when I bow, I do it facing AWAY from that person, and I drop my trousers at the same time. Still want me to bow to your greatness?&lt;br /&gt;
&lt;br /&gt;
I read other contributions here that voice their opinions the same as I did. I wonder if you said the same thing to all of them as well? Tho since I was able to read the pages they wrote, you clearly did not delete their words as you did mine. And while other entries I made were either deleted or edited, as I expected them to be, since I am not a great wiki writer, you were the only one to send me a somewhat nasty note. &lt;br /&gt;
&lt;br /&gt;
Think whatever you like of me, but at least I was contributing, and trying to give a few smiles along the way. Seems to me tho, that DF is fun, and it's wiki should be too. And, from other pages I read, others feel the same way I do. Maybe you should take a look around at some of their pages, and lighten up yourself a bit? Maybe trade with the elves for a tame blue jay, and drop it down your shorts. If that doesnt get a giggle out of you, maybe you should go join the undead at one of their ruins?&lt;br /&gt;
&lt;br /&gt;
: Wow, way to blow up that up, I was just jesting. I think I'll leave your words here, [[User:Darknight|Darknight]]. --[[User:Rick|Rick]] 19:25, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Oh, and for the record, I did not remove your message, someone else did that. Check the page history. --[[User:Rick|Rick]] 19:29, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== heal.exe bug? ==&lt;br /&gt;
&lt;br /&gt;
Hmm... I've found that heal -hurt doesn't work on fire men, at least in 33b. It sets all their body parts to red, but the fire man just keeps wandering around and scaring my poor witless dwarves. I haven't found a living fire man yet in 33c so I can't check. [[User:Runspotrun|Runspotrun]] 06:59, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Are firemen immune to pain? Hurt just nukes bodyparts, not kills creatures, most creatures who feel pain will die from that, but I guess ones who don't won't. --[[User:Rick|Rick]] 12:08, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Just checked - yes they are. That'd explain it then, ta. [[User:Runspotrun|Runspotrun]] 14:38, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== INI? ==&lt;br /&gt;
&lt;br /&gt;
Does anyone see anything obviously wrong about this? I used various comparisons to come to these values (as well as what the hex fellow posted in the memory hacking section), and editing them as such into the reveal.exe allowed me to get that program to function, but the ini isn't reenabling the executables on its own:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[address]&lt;br /&gt;
DWARF_FORTRESS=0x0089C414 ; correct&lt;br /&gt;
MENU_STATE=0x0124565C ; maybe&lt;br /&gt;
FOCUSED_CREATURE=0x00C39548 ; correct&lt;br /&gt;
CREATURE_VECTOR=0x01420A48 ; correct&lt;br /&gt;
MOUSE_X=0x008FF290 ; pretty sure should be 008FF288&lt;br /&gt;
MOUSE_Y=0x008FF294 ; pretty sure should be 008FF28C&lt;br /&gt;
MOUSE_Z=0x008FF298 ; pretty sure should be 008FF290&lt;br /&gt;
MAP_DATA=0x01462568 ; correct&lt;br /&gt;
MAP_X_COUNT=0x01462580 ; correct&lt;br /&gt;
MAP_Y_COUNT=0x01462584 ; correct&lt;br /&gt;
MAP_Z_COUNT=0x01462588 ; correct&lt;br /&gt;
STARTING_DWARF_COUNT=0x0078A54E ; wrong.  0078A554 (value actually is dword at 0078A555)&lt;br /&gt;
STARTING_POINT_COUNT=0x00789703 ; correct (value actually is word at 0078970A)&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260 ; dunno&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660 ; dunno&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000 ; yes&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308 ; probably&lt;br /&gt;
CREATURE_X_OFFSET=0x0094 ; probably&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096 ; probably&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098 ; probably&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:Qalnor|Qalnor]] 14:05, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
I commented the above.  none of the corrections should affect reveal.  I don't know what's going wrong.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 19:53, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: I made a few mistakes when documenting the existing data, which probably threw you guys off. My user page has been updated for 33f. --[[User:Rick|Rick]] 20:41, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Thanks, to both of you. I'll have to go over what I was doing when I get home to try and see where I was going wrong.  [[User:Qalnor|Qalnor]] 15:11, 17 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Possible adjuststart enhancement ==&lt;br /&gt;
Hi!  Merry culturally-appropriate politically-correct generic holiday!&lt;br /&gt;
&lt;br /&gt;
I have found some interesting addresses that work well with adjuststart.&lt;br /&gt;
&lt;br /&gt;
In .33f, the byte at 0078654B holds a constant that is the upper limit that starting skills can be advanced to.  It is normally 5 (proficient).  If you change it to 15, skills can be advanced to legendary.  If you change it to 20, skills can be advanced to legendary+5.&lt;br /&gt;
&lt;br /&gt;
Also in .33f, there's a pair of bytes at 00786466 and 00786608.  If you set both to 0, then the 10 skills per dwarf limit is removed.&lt;br /&gt;
&lt;br /&gt;
I've found equivalant addresses for all the .33 releases.  They're in the memory hacking subpages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;—Preceding unsigned comment added by [[User:0x517A5D|0x517A5D]] ([[User talk:0x517A5D|talk]]{{!}}[[Special:Contributions/0x517A5D|contribs]]) {{{2|}}}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Did I not sign that?  Oops.  Well, I was tired.  Thank you, VengefulDonut.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:02, 19 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Very cool, I'll probably add these for the next release then. --[[User:Rick|Rick]] 04:18, 20 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Update of utilities ==&lt;br /&gt;
&lt;br /&gt;
So how much longer do you suppose it might take to transition the utilities to 33f?--[[User:Heliopios|Heliopios]] 13:04, 19 December 2007 (EST)&lt;br /&gt;
:With the .ini method there isnt really a need to rebuild the utilities for 32f. [[User:VengefulDonut|VengefulDonut]] 15:25, 19 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:And how exactly do you use memory.ini?  I've created a new ini file (yes, it's a .ini, not a .ini.txt) and pasted everything under [code] tags for .33f, and lugged it into the dir. with the required executable (heal.exe in this case) but when I run it it still says it was built for .33e. Should I put it somewhere else?  In any case, instructions for use are either inexistent or pretty well hidden here in the wiki.&lt;br /&gt;
:Cheers. [[User:N35t0r|N35t0r]] 21:45, 19 December 2007 (EST)&lt;br /&gt;
::Did you name it &amp;quot;memory.ini&amp;quot;? This worked for me with reveal.exe [[User:VengefulDonut|VengefulDonut]] 01:52, 20 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Possible INI file syntax change ==&lt;br /&gt;
&lt;br /&gt;
I would like to suggest a change to the format of MEMORY.INI.  Instead of the [generic], [address], and [offset] sections (which in my opinion buy you nothing), I would suggest using sections keyed off the PE header timestamp.  (You have previously indicated that you plan to convert to that method anyway.)  So a sample .INI file might look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;; .33e&lt;br /&gt;
[475B7526]&lt;br /&gt;
MENU_STATE=0x01244654&lt;br /&gt;
FOCUSED_CREATURE=0x00C38540&lt;br /&gt;
CREATURE_VECTOR=0x0141FA40&lt;br /&gt;
MOUSE_X=0x008FE288&lt;br /&gt;
MOUSE_Y=0x008FE28C&lt;br /&gt;
MOUSE_Z=0x008FE290&lt;br /&gt;
MAP_DATA=0x01461560&lt;br /&gt;
MAP_X_COUNT=0x01461578&lt;br /&gt;
MAP_Y_COUNT=0x0146157C&lt;br /&gt;
MAP_Z_COUNT=0x01461580&lt;br /&gt;
STARTING_DWARF_COUNT=0x007893C5&lt;br /&gt;
STARTING_POINT_COUNT=0x0078857A&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
&lt;br /&gt;
; .33f&lt;br /&gt;
[4763710C]&lt;br /&gt;
MENU_STATE=0x0124565C&lt;br /&gt;
FOCUSED_CREATURE=0x00C39548&lt;br /&gt;
CREATURE_VECTOR=0x01420A48&lt;br /&gt;
MOUSE_X=0x008FF288&lt;br /&gt;
MOUSE_Y=0x008FF28C&lt;br /&gt;
MOUSE_Z=0x008FF290&lt;br /&gt;
MAP_DATA=0x01462568&lt;br /&gt;
MAP_X_COUNT=0x01462580&lt;br /&gt;
MAP_Y_COUNT=0x01462584&lt;br /&gt;
MAP_Z_COUNT=0x01462588&lt;br /&gt;
STARTING_DWARF_COUNT=0x0078A555&lt;br /&gt;
STARTING_POINT_COUNT=0x0078970A&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main reason to do this is to allow data for multiple versions to be in the .INI file.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 18:22, 21 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Agreed, will do this. --[[User:Rick|Rick]] 15:28, 22 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== 33g memory.ini ==&lt;br /&gt;
&lt;br /&gt;
0x517A5D looked these up and put them on the 33g memory hacking page, but did not actually put them in here. He copied/pasted from 33f. Mistake? I looked up the dwarf fortress tag and used his values for the ones I could see on the other page he posted (33g memory hacking page) and updated them. It works for reveal, but it's missing FOCUSED_CREATURE and CREATURE_VECTOR because I can't find them.&lt;br /&gt;
--[[User:Paul|Paul]] 15:05, 22 December 2007 (CST)&lt;br /&gt;
:I just cross-referenced those 2 values with the 33f memory location page and updated them. Should work now, though I haven't tested. --[[User:Janus|Janus]] 16:27, 22 December 2007 (EST)&lt;br /&gt;
::The currently listed FOCUSED_CREATURE and CREATURE_VECTOR values don't appear to work. --[[User:Zurai|Zurai]] 22:20, 22 December 2007 (EST)&lt;br /&gt;
:::Hi Zurai.  Do to my blunder, there was a short period where those two values were incorrect.  You probably hit that window.  Check the values in your copy against the ones shown now.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:59, 22 December 2007 (EST)&lt;br /&gt;
::::Heal.exe and warp.exe (only when trying to warp a creature - warp to find the coords of a tile works fine) both give me &amp;quot;An error has occured: please select a unit in 'view units' mode&amp;quot; using FOCUSED_CREATURE=0x00C40540 and CREATURE_VECTOR=0x01427B60, which are the values listed at the time of this writing. I've redownloaded both executables and re-made the ini from scratch, copy-pasting the values from the 33g listing, and it still occurs. Is anyone else having the same issue? Maybe my computer doesn't like heal or warp any more. Reveal works fine, though. --[[User:Zurai|Zurai]] 18:45, 23 December 2007 (EST)&lt;br /&gt;
:::::I found the problem.  It was MENU_STATE.  Yes, anyone else who tried to use these utils would experience the same problem.  I have now edited the .33g memory.ini section again, and verified that warp.exe, heal.exe -hurt, and heal.exe all work.  I'm really, really sorry for the mess up.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:39, 23 December 2007 (EST)&lt;br /&gt;
::::::I'm having this pop up with the new memory.ini info for warp.exe: &amp;quot;An error has occured:failed to read block pointer for to block&amp;quot;.  --[[User:Corbine|Corbine]] 03:19, 24 December 2007 (EST)&lt;br /&gt;
:::::::Well, let's go down the checklist.  Due to a blunder on my part, the .33g memory.ini file was wrong for several hours.  One of the mistakes causes that error message.   Try deleting memory.ini and making a new one with the [[User:Rick#v0.27.169.33g|current data]].&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 14:29, 24 December 2007 (EST)&lt;br /&gt;
::::::::Deleted the memory.ini, made a new one and threw the new info into it, still same error. --[[User:Corbine|Corbine]] 01:28, 25 December 2007 (EST)&lt;br /&gt;
:::::::::Corbine, are you still experiencing this?  I just realized I've left this hanging for a week.  Sorry.  Okay, next.  Previous versions of warp have worked for you with previous versions of DF?  Do other of Rick's utilities work for you?  My tentative diagnosis is that &amp;lt;u&amp;gt;part&amp;lt;/u&amp;gt; of your INI file is wrong.  If the whole thing was wrong, it would merely complain that it was built for version .33e.  I don't know which particular key being wrong gives that error, and I don't have a .33g test fort at the moment, so I can't easily check right now.  But I could when I have time.  Really, I'm puzzled.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 03:47, 31 December 2007 (EST)&lt;br /&gt;
:Yes, mistake.  Arrgh.  I must have copied from the wrong editor window.  Thank you both.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 17:08, 22 December 2007 (EST)&lt;br /&gt;
::No worries, and thanks for posting the new memory locations in the first place. I personally was looking forward to that info so I could use reveal.exe to examine potential fortress locations in newly created 33g worlds, so it is much appreciated. --[[User:Janus|Janus]] 18:07, 22 December 2007 (EST)&lt;br /&gt;
::I was all excited when I saw the 33g info up, then went to paste it into my ini and realised the data was the same... I figured you just accidentally pasted the wrong thing in. The only thing I could figure out how to look up was the Dwarf Fortress tag location, so it is appreciated that you looked all the rest up. With the world generation changing, it's nice to have reveal available to search for new sites. [[User:Paul|Paul]] 21:20, 22 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
==38a==&lt;br /&gt;
&lt;br /&gt;
How would we update this? --[[User:Squeegy|Squeegy]] 20:22, 5 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we can start by finding the relevant mem locations for 88a&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[generic]&amp;lt;br /&amp;gt;&lt;br /&gt;
DWARF_FORTRESS=0x00C11218&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[address]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
MENU_STATE=&amp;lt;br /&amp;gt;&lt;br /&gt;
FOCUSED_CREATURE=&amp;lt;br /&amp;gt;.&lt;br /&gt;
CREATURE_VECTOR=&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_X=0x0092f288&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_Y=0x0092f28c&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_Z=0x0092f290&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_DATA=&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_X_COUNT=0x014929F0&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_Y_COUNT=0x014929F4&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_Z_COUNT=0x014929F8&amp;lt;br /&amp;gt;&lt;br /&gt;
STARTING_DWARF_COUNT=&amp;lt;br /&amp;gt;&lt;br /&gt;
STARTING_POINT_COUNT=&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
those are the easy ones.&lt;br /&gt;
if we had map data and confirmed that the offset was correct at least Reveal.exe would work but I'm out of time today.  --[[User:Shadetree|Shadetree]] 22:23, 6 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
I've found the other addresses. I won't guarantee that the offsets other than MAP_DATA_DESIGNATION_OFFSET, MAP_DATA_OCCUPANCY_OFFSET, and CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET are correct.&lt;br /&gt;
 [generic]&lt;br /&gt;
 DWARF_FORTRESS=0x00C11218&lt;br /&gt;
 &lt;br /&gt;
 [address]&lt;br /&gt;
 STARTING_POINT_COUNT=0x007AF4FA&lt;br /&gt;
 STARTING_DWARF_COUNT=0x007B0345&lt;br /&gt;
 MENU_STATE=0x0127599C&lt;br /&gt;
 FOCUSED_CREATURE=0x00C69888&lt;br /&gt;
 CREATURE_VECTOR=0x01450E98&lt;br /&gt;
 MOUSE_X=0x0092F288&lt;br /&gt;
 MOUSE_Y=0x0092F28C&lt;br /&gt;
 MOUSE_Z=0x0092F290&lt;br /&gt;
 MAP_DATA=0x014929CC&lt;br /&gt;
 MAP_X_COUNT=0x014929E4&lt;br /&gt;
 MAP_Y_COUNT=0x014929E8&lt;br /&gt;
 MAP_Z_COUNT=0x014929EC&lt;br /&gt;
 &lt;br /&gt;
 [offset]&lt;br /&gt;
 MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
 MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
 CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
 CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
 CREATURE_X_OFFSET=0x0094&lt;br /&gt;
 CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
 CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
If I understand how Rick's tools work, the offsets I've verified are the only offsets necessary.&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 20:05, 7 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
confirmed that this works with Reveal.exe --[[User:Shadetree|Shadetree]] 18:41, 8 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
warp.exe and heal.exe do not work with this configuration. --[[User:Markham|Markham]] 11:28, 9 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
The reason the creature tools will work is due to some issue with how FOCUSED_CREATURE now behaves. Assuming the address is correct, and I'm 99.9% positive it's the correct address, a new method will have to be determined which unit is focused. Also, did your map have existing creatures? -- [[User:Jifodus|Jifodus]] 17:39, 9 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
Confirmed that adjuststart.exe works with this. --[[User:Squeegy|Squeegy]] 23:44, 10 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==176-38a==&lt;br /&gt;
&lt;br /&gt;
Any love on new offsets with version df_27_176_38a? What do you all use to dig up the offsets? A debugger running trace on particular strings?&lt;br /&gt;
&lt;br /&gt;
I use IDA Pro Free, and do a binary match.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[generic]&lt;br /&gt;
DWARF_FORTRESS=0x008D8B08&lt;br /&gt;
&lt;br /&gt;
[address]&lt;br /&gt;
STARTING_POINT_COUNT=0x007B995A&lt;br /&gt;
STARTING_DWARF_COUNT=0x007BA7B3&lt;br /&gt;
MENU_STATE=0x01287D14&lt;br /&gt;
FOCUSED_CREATURE=0x00C7BC00&lt;br /&gt;
CREATURE_VECTOR=0x01450E9C&lt;br /&gt;
MOUSE_X=0x00941288&lt;br /&gt;
MOUSE_Y=0x0094128C&lt;br /&gt;
MOUSE_Z=0x00941290&lt;br /&gt;
MAP_DATA=0x014A4EAC&lt;br /&gt;
MAP_X_COUNT=0x014A4EC4&lt;br /&gt;
MAP_Y_COUNT=0x014A4EC8&lt;br /&gt;
MAP_Z_COUNT=0x014A4ECC&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x030C&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Heal &amp;amp; Warp won't work due to FOCUSED_CREATURE not working properly. -- [[User:Jifodus|Jifodus]] 04:00, 17 February 2008 (EST)&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8962</id>
		<title>40d:Utilities</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8962"/>
		<updated>2008-02-17T08:49:03Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* Dwarf Foreman */ 0.27.176.38a config&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are third party applications developed for Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
== Movies, Screenshots, Map Files ==&lt;br /&gt;
&lt;br /&gt;
=== DF Map Compressor / DF Map Archive ===&lt;br /&gt;
&lt;br /&gt;
*[http://shadowlord13.googlepages.com/dfmap-index.html SL's DF Map Compressor - Website]&lt;br /&gt;
*[http://mkv25.net/dfma/ Dwarf Fortress Map Archive]&lt;br /&gt;
&lt;br /&gt;
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 that features an online viewer (written in Flash).&lt;br /&gt;
&lt;br /&gt;
The map compressor was created by Shadowlord in May 2007. Extract from the website :&lt;br /&gt;
:&amp;quot;The '''DF Map Compressor''' is a program I made to encode Dwarf Fortress fortress or world map images into a much smaller format than is possible with normal image formats. Here's a quick summary of how it works: It determines the size of your tiles from your DF font file (or asks you), splits the map up into tiles, identifies duplicate tiles, writes out every unique tile image, and then writes out a list of ID#s for each tile position which points to the tile image for that tile. What it outputs is piped through the LZMA compressor (the one used in 7-zip), to compress it further. The .df-map file which it writes out is usually less than 100 KB in size. (By comparison, a PNG of the same map can exceed 2 megabytes, depending on how well you compress it, whether you change the color depth, and whether you are using a graphical tileset or detailed font).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Read more about the [[User:Markavian/DF_Map_Archive|DF Map Archive]] on Markavian's User page.&lt;br /&gt;
&lt;br /&gt;
=== CMVPlayer === &lt;br /&gt;
&lt;br /&gt;
[http://www.geocities.com/jifodus/CMVPlayer.zip Download CMVPlayer.zip] &lt;br /&gt;
&lt;br /&gt;
First released by Jifodus in April 2007. This application enables playback of the DF movies (.cmv) without starting DF. It also provides some more functionalities, such as :&lt;br /&gt;
* Rewind&lt;br /&gt;
* Pause&lt;br /&gt;
* Play frame per frame&lt;br /&gt;
&lt;br /&gt;
To use, simply unzip the file, and drop and drag the movie on CMVPlayer.exe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 3Dwarf Visualizer - a tool to view maps in 3D ===&lt;br /&gt;
*[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001450 Bay12Forums Thread]&lt;br /&gt;
This is NOT realtime, that is still a long, long way off.&lt;br /&gt;
What this does is read the map out of your computer's memory when DF is running and save it to a file it can read. It can then open that file and show you your fort in glorious 3d.&lt;br /&gt;
Still in beta, obviously.&lt;br /&gt;
&lt;br /&gt;
== Dwarf Companion ==&lt;br /&gt;
The [[User:Bartavelle/DwarfCompanion|Dwarf Companion]], created by [[User:Bartavelle|Bartavelle]] is a graphical helper utility for dwarf fortress that aims to fill the gaps in the user interface. It allows some for some nefarious cheating. For example, you can now mark your nobles as butcherable, and change possessed dwarves to fey moods.&lt;br /&gt;
&lt;br /&gt;
== [[User:Rick|Rick]]'s utilities ==&lt;br /&gt;
Fabulous tools made by the marvelous Rick. All Hail Rick!&lt;br /&gt;
&lt;br /&gt;
Outdated tools (v0.27.169.32a): [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=5465reveal.zip reveal.exe] [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=tileinfo_2.zip tileinfo.exe]&lt;br /&gt;
&lt;br /&gt;
Outdated tools (v0.27.169.33a): [http://kisskapsel.se/adjuststart.exe adjuststart.exe] [http://kisskapsel.se/heal.exe heal.exe] [http://kisskapsel.se/reveal.exe reveal.exe]&lt;br /&gt;
&lt;br /&gt;
Outdated tools (v0.27.169.33b): [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=4621adjuststart.zip adjuststart.exe] [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=2802heal.zip heal.exe] [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=1725reveal.zip reveal.exe] [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=warp.zip warp.exe]&lt;br /&gt;
&lt;br /&gt;
Outdated tools (v0.27.169.33c): [http://no.shizzle.se/~rgibbed/v0.27.169.33c/adjuststart.exe adjuststart.exe] [http://no.shizzle.se/~rgibbed/v0.27.169.33c/heal.exe heal.exe] [http://no.shizzle.se/~rgibbed/v0.27.169.33c/reveal.exe reveal.exe] [http://no.shizzle.se/~rgibbed/v0.27.169.33c/warp.exe warp.exe]&lt;br /&gt;
&lt;br /&gt;
Outdated tools (v0.27.169.33d): [http://no.shizzle.se/~rgibbed/v0.27.169.33d/adjuststart.exe adjuststart.exe] [http://no.shizzle.se/~rgibbed/v0.27.169.33d/heal.exe heal.exe] [http://no.shizzle.se/~rgibbed/v0.27.169.33d/reveal.exe reveal.exe] [http://no.shizzle.se/~rgibbed/v0.27.169.33d/warp.exe warp.exe]&lt;br /&gt;
&lt;br /&gt;
Most Current tools ('''v0.27.169.33e''', none for '''v0.27.169.33g''' yet, unless you use memory.ini for the '''v0.27.169.33e''' tools):&lt;br /&gt;
&lt;br /&gt;
'''Current version out of date? Have skills to find the newer addresses? [[User:Rick#memory.ini|Check Rick's user page for details on memory.ini]].'''&lt;br /&gt;
&lt;br /&gt;
=== adjuststart.exe ===&lt;br /&gt;
[http://no.shizzle.se/~rgibbed/v0.27.169.33e/adjuststart.exe Download adjuststart.exe] &amp;amp;nbsp; Modifies the starting number of dwarves and/or the starting points. &amp;lt;tt&amp;gt;adjuststart.exe &amp;lt;dwarves&amp;gt; &amp;lt;points&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instructions: type cmd in run, put in the location for adjuststart.exe, navigate to the DF main menu, change the starting dwarf number and points in this format: C:\location\adjuststart.exe 10 9999 (gives 10 dwarves, 9999 points) then hit enter.&lt;br /&gt;
&lt;br /&gt;
=== heal.exe ===&lt;br /&gt;
[http://no.shizzle.se/~rgibbed/v0.27.169.33e/heal.exe Download heal.exe] &amp;amp;nbsp; Heals creature limbs (any creature you can highlight with V basically). You can optionally hurt a creature by specifying -hurt on the command-line arguments.&lt;br /&gt;
&lt;br /&gt;
=== reveal.exe ===&lt;br /&gt;
[http://no.shizzle.se/~rgibbed/v0.27.169.33e/reveal.exe Download reveal.exe] &amp;amp;nbsp; Makes as much of the map visible as it can (eg, it can't reveal unallocated map blocks)  Run while Dwarf Fortress is running.&lt;br /&gt;
&lt;br /&gt;
If you want to reveal the entire map, go to the furthest Z level down you can get to, and designate the entire bottom to be mined, then remove the designation, then run reveal.&lt;br /&gt;
&lt;br /&gt;
=== warp.exe ===&lt;br /&gt;
[http://no.shizzle.se/~rgibbed/v0.27.169.33e/warp.exe Download warp.exe] &amp;amp;nbsp; A creature warper, similar to teleport, but properly sets occupancy flags of the tiles with some limitations (eg: if there are multiple creatures on the source tile, the occupancy flag will still be unset).&lt;br /&gt;
&lt;br /&gt;
== Dwarf Foreman ==&lt;br /&gt;
[http://www.pavlovian.net/foreman/ Home page]. Makes switching jobs on and off for large numbers of dwarves simple. Dwarves are grouped by their profession, or custom profession if they have one. By clicking on the graph you can enable any job for all dwarves with that profession. Still in alpha for this version of DF, if it doesn't recognise one of the new professions, check the file '''debug.txt''' in the directory you run foreman from.&lt;br /&gt;
&lt;br /&gt;
Though prone to crashing currently, saving and exiting DF, starting foreman and then starting DF again will usually get it working again. Zorba would also appreciate it if you'd email him the crash log located in the Dwarf Foreman directory when this happens (zorba-foremancrash@pavlovian.net).&lt;br /&gt;
&lt;br /&gt;
Dwarf Foreman currently allows you to change the jobs of visiting merchants, outpost liaisons, children, and any other dwarves that aren't normally controllable. It is unsupported but occasionally hilarious, and allows you to finally put those lazy dwarven children to work.&lt;br /&gt;
&lt;br /&gt;
This handy utility would be an ideal complent to an updated LabourDF.&lt;br /&gt;
&lt;br /&gt;
Source code is available.&lt;br /&gt;
----&lt;br /&gt;
To make Foreman compatible with '''v0.27.168.33g''', download the new version and update the config file as shown below. - [http://forums.somethingawful.com/showthread.php?threadid=2677834&amp;amp;userid=0&amp;amp;perpage=40&amp;amp;pagenumber=74#post337422833 Originally posted by Mu.]&lt;br /&gt;
&amp;lt;pre&amp;gt;check=008c407c&lt;br /&gt;
critter_start=01427B50&lt;br /&gt;
dwarfidpos=01248AC8&lt;br /&gt;
profession_start=45c&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.173.38a''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=01E30A43&lt;br /&gt;
critter_start=01450E98&lt;br /&gt;
dwarfidpos=01271E10&lt;br /&gt;
profession_start=45c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.27.176.38a''', update config file as shown below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=023401d3&lt;br /&gt;
critter_start=01463378&lt;br /&gt;
dwarfidpos=01284188&lt;br /&gt;
profession_start=480&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== StartProfile ==&lt;br /&gt;
Jifodus wrote a little utility that lets you maintain profiles of your starting dwarves.&lt;br /&gt;
Works for versions 0.27.169.33b, 0.27.169.33c, 0.27.169.33d, and 0.27.169.33e. Check the readme to find out how to switch between the different versions. If you wish to patch the executable yourself, please check [[Talk:Utilities#StartProfile|the utilities talk page]].&lt;br /&gt;
&lt;br /&gt;
[http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001367 Discussion thread]&lt;br /&gt;
&lt;br /&gt;
Obsolete: [http://www.geocities.com/jifodus/StartProfile.zip StartProfile utility]&lt;br /&gt;
&lt;br /&gt;
[http://www.geocities.com/jifodus/dfufend.zip StartProfile utility]&lt;br /&gt;
&lt;br /&gt;
Incidentally, if you try this utility, please report success/failure in [[Talk:Utilities#StartProfile|the utilities talk page]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== [[User:0x517A5D|0x517A5D]]'s utilities ==&lt;br /&gt;
&lt;br /&gt;
=== Enable Magma Buildings ===&lt;br /&gt;
Helper utility for Rick's reveal.exe&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=3935enable_magma_buildings.zip enable_magma_buildings.zip]&lt;br /&gt;
&lt;br /&gt;
You need this utility in the case that you used the reveal utility, and&lt;br /&gt;
you had not yet discovered any subsurface magma.&lt;br /&gt;
(If the hide utility is ever updated, you could also hide a few magma&lt;br /&gt;
tiles and then dig them out.  That worked in the old version.)&lt;br /&gt;
&lt;br /&gt;
Because there is no actual flag that controls whether magma has been seen&lt;br /&gt;
(the game searches a list, probably a list of notable events), I had to&lt;br /&gt;
patch the game's code.  This means you need to run the utility every time&lt;br /&gt;
you start dwarfort.exe.&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent.  &lt;br /&gt;
It is expected to work with future releases of Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
=== Regional Prospector ===&lt;br /&gt;
&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=regional_prospector.zip regional_prospector.zip]&lt;br /&gt;
&lt;br /&gt;
A simple but very helpful utility that shows hidden map features at embark time.  &lt;br /&gt;
If you're trying to find the perfect start location by repeatedly embarking and &lt;br /&gt;
revealing, give this one a shot!&lt;br /&gt;
&lt;br /&gt;
Map key:&lt;br /&gt;
:{{Raw Tile|≈|#F00|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;volcano; magma reaches the surface&lt;br /&gt;
:{{Raw Tile|~|#F00|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground magma pipe or magma pool&lt;br /&gt;
:{{Raw Tile|≈|#00F|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground river&lt;br /&gt;
:{{Raw Tile|~|#00F|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;underground pool&lt;br /&gt;
:{{Raw Tile|#|#000|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;chasm&lt;br /&gt;
:{{Raw Tile|£|#0FF|#AAA}}&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;adamantine and pits&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent.  &lt;br /&gt;
It is known to work with all releases from 32a to 33g.  &lt;br /&gt;
It is expected to work with future releases of Dwarf Fortress, &lt;br /&gt;
as long as the embark code doesn't change too much.&lt;br /&gt;
&lt;br /&gt;
Discussion and kudos can be left [[User_talk:0x517A5D#Seekret_Projekt|here]].&lt;br /&gt;
&lt;br /&gt;
=== Latitudes ===&lt;br /&gt;
&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=latitudes.zip Latitudes] is a utility that, when on the embark map screen, shows the X/Y coordinates of the current region.   Until Toady adds [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=5&amp;amp;t=002191 proper support], this will do the trick.  Works in .32a through at least .33g.  Technical notes: uses memory injection, so it may be flagged as a suspicious file by antivirus programs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Temporarily withdrawn as I am experiencing crashes of DF when invoking the utility.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 14:26, 31 December 2007 (EST) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- The bug I was experiencing was a regression in my development version.  It&lt;br /&gt;
does not occur in the current release.  So everything's okay. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Teleport ==&lt;br /&gt;
[http://angband.org/~erasmus/df/teleport22.zip teleport22.zip] -- Teleport dwarves and other creatures&lt;br /&gt;
&lt;br /&gt;
Version 2.2 is &amp;lt;u&amp;gt;really&amp;lt;/u&amp;gt; now independent of the DF version. (33c)&lt;br /&gt;
&lt;br /&gt;
Caveat: The teleport utility does not correctly set the occupancy flag for map squares.  As a results, dwarves will permanently crawl through the square that you teleported them out of.  In addition, you cannot build structures in those squares.&lt;br /&gt;
&lt;br /&gt;
== Water ==&lt;br /&gt;
[http://angband.org/~erasmus/df/water.exe water.exe] -- Quick hack to refill ponds.  Run this while your fortress is up, and it'll restore any &amp;quot;murky pool&amp;quot; tiles (i.e. the floor of ponds and lakes) to 7/7 water.  If you've tunneled into a pond, it'll still refill but will flow out normally.&lt;br /&gt;
&lt;br /&gt;
Only works with version 33e due to its &amp;quot;quick hack&amp;quot; status.&lt;br /&gt;
&lt;br /&gt;
Note:  If there is lava in a murky pool, it will be raised to depth 7/7.&lt;br /&gt;
&lt;br /&gt;
== Lava square ==&lt;br /&gt;
[http://angband.org/~erasmus/df/lavasquare.exe lavasquare.exe] -- Another quick hack to make a 7/7 unit of lava on the currently selected square.  Ignore the random text it spams, as it was quickly adapted from a map query tool, and I didn't bother removing the print statements.&lt;br /&gt;
&lt;br /&gt;
Only works with version 33e. To hack this executable for a later version of dwarf fortress see the [[Talk:Utilities#Lavasquare|talk page]].&lt;br /&gt;
&lt;br /&gt;
33g version plus autohotkey script: http://www.sendspace.com/file/xsl6gs --[[User:Jackard|Jackard]] 09:43, 13 January 2008 (EST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DF Merge by Ikkonoishi ==&lt;br /&gt;
A quick and dirty utility to merge the DF data files together. I plan on making it scriptable so that you can use it to combine mods together easily and sort out any conflicts. Right now it is only useful to merge init files together for different versions of DF. Any values that are shared across the two files are combined with the values from the source overwriting the destination. You then click on the text to select it and copy it into the init.txt file of the new version. &lt;br /&gt;
&lt;br /&gt;
Get it at http://www.mediafire.com/?d3yosptjze0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [http://en.wikipedia.org/wiki/Macro_%28computer_science%29 Macro Programs] ==&lt;br /&gt;
A program that lets you program scripts/macros so that when you press a certain key combination, or in any other fashion activates the program, a series of keystrokes is sent to the active program instead.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.autohotkey.com/ AutoHotKey] ===&lt;br /&gt;
AHK lets you define global hotkeys to send a sequence of keystrokes. For example, you can have {{key|alt}}+{{key|w}} replace {{key|b}}-{{key|C}}-{{key|w}}-{{key|Enter}}-{{key|Enter}} to make wall building much easier.  See [[Macros and Keymaps]] for a how-to and some example scripts.&lt;br /&gt;
----&lt;br /&gt;
See [[:Category:ahk scripts]] for a list of user submitted scripts.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Winmerge ==&lt;br /&gt;
&lt;br /&gt;
This utility allow you to compare even folders or just files and it highlight where lines are different so see what make files different. So that can see what you want merge into one file or not.&lt;br /&gt;
&lt;br /&gt;
Which is at http://winmerge.org/ to download it. [[User:Omagaalpha|Omagaalpha]] 08:30, 13 February 2008 (EST)&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus/Map_block&amp;diff=37348</id>
		<title>User:Jifodus/Map block</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus/Map_block&amp;diff=37348"/>
		<updated>2008-02-13T23:09:01Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: New page: This is a combination of all I've been able to discover. Which isn't much more than what's been already discovered. What I'm not 100% sure about I've added a question mark to it. The lette...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a combination of all I've been able to discover. Which isn't much more than what's been already discovered. What I'm not 100% sure about I've added a question mark to it. The letters in ()'s only have significance in my unreleased tile analyzer and editing tool.&lt;br /&gt;
&lt;br /&gt;
 Designation&lt;br /&gt;
    00  |&amp;gt;&lt;br /&gt;
    01  |&amp;gt; Liquid Level (0-7), If Magma bit is set, then liquid is magma, otherwise water.&lt;br /&gt;
    02  |&amp;gt;&lt;br /&gt;
    03 &lt;br /&gt;
    04 I - M(I)ne Designation&lt;br /&gt;
    05 &lt;br /&gt;
    06 &lt;br /&gt;
    07 &lt;br /&gt;
&lt;br /&gt;
    08 &lt;br /&gt;
    09 H - (H)idden&lt;br /&gt;
    10  |&amp;gt;&lt;br /&gt;
    11  |&amp;gt; Soil/Rock Layer ID?&lt;br /&gt;
    12  |&amp;gt;&lt;br /&gt;
    13  |&amp;gt;&lt;br /&gt;
    14 L - (L)ight&lt;br /&gt;
    15 S - (S)ubterranean&lt;br /&gt;
&lt;br /&gt;
    16 O - (O)utside&lt;br /&gt;
    17  |&amp;gt;&lt;br /&gt;
    18  |&amp;gt; Unknown ID?&lt;br /&gt;
    19  |&amp;gt;&lt;br /&gt;
    20  |&amp;gt;&lt;br /&gt;
    21 M - (M)agma&lt;br /&gt;
    22 D - (D)amp?&lt;br /&gt;
    23 R - (R)ain Drop&lt;br /&gt;
&lt;br /&gt;
    24  |&amp;gt; These two bits indicate traffic: 0 - Normal, 1 - Low Traffic, 2 - High Traffic, 3 - Restricted&lt;br /&gt;
    25  |&amp;gt;&lt;br /&gt;
    26 Q - Li(Q)id&lt;br /&gt;
    27 &lt;br /&gt;
    28 Y - Moss(Y)&lt;br /&gt;
    29  |&amp;gt; Liquid Flow Direction? (Directions may be flipped, this points to the edge that has 6/7 water)&lt;br /&gt;
    30  |&amp;gt; 0 - NW   2 - NE   4 - SE   6 - SW&lt;br /&gt;
    31  |&amp;gt; 1 - N    3 - E    5 - S    7 - W&lt;br /&gt;
&lt;br /&gt;
 Occupancy&lt;br /&gt;
    00 U - (U)nwalkable Building Tile&lt;br /&gt;
    01 B - (B)uilding&lt;br /&gt;
    02 &lt;br /&gt;
    03 C - (C)reature&lt;br /&gt;
    04 &lt;br /&gt;
    05 I - (I)tem&lt;br /&gt;
    06 M - (M)uddy&lt;br /&gt;
    07 &lt;br /&gt;
&lt;br /&gt;
    08 &lt;br /&gt;
    09 &lt;br /&gt;
    10 &lt;br /&gt;
    11 &lt;br /&gt;
    12 &lt;br /&gt;
    13 &lt;br /&gt;
    14 &lt;br /&gt;
    15 &lt;br /&gt;
&lt;br /&gt;
    16 &lt;br /&gt;
    17 &lt;br /&gt;
    18 &lt;br /&gt;
    19 &lt;br /&gt;
    20 &lt;br /&gt;
    21 &lt;br /&gt;
    22 &lt;br /&gt;
    23 &lt;br /&gt;
&lt;br /&gt;
    24 &lt;br /&gt;
    25 &lt;br /&gt;
    26 &lt;br /&gt;
    27 &lt;br /&gt;
    28 &lt;br /&gt;
    29 &lt;br /&gt;
    30 &lt;br /&gt;
    31 S - (S)now&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28224</id>
		<title>User:Jifodus</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus&amp;diff=28224"/>
		<updated>2008-02-13T22:56:58Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My work analyzing DF's formats:&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Memory research|Memory research]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/CMV file format|CMV file format]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Dwarf Fortress Utility Framework|Dwarf Fortress Utility Framework]]&lt;br /&gt;
&lt;br /&gt;
[[User:Jifodus/Map block|Map block info]]&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User_talk:Rick&amp;diff=25139</id>
		<title>User talk:Rick</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User_talk:Rick&amp;diff=25139"/>
		<updated>2008-02-09T22:39:58Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* 38a */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requests ==&lt;br /&gt;
Hey there. Thanks for writing reveal.exe. It's made my dwarves' lives so much easier!&lt;br /&gt;
&lt;br /&gt;
Do you take requests?&lt;br /&gt;
&lt;br /&gt;
And is this the right place to ask? [[User:Runspotrun|Runspotrun]] 20:32, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Yes, and yes. --[[User:Rick|Rick]] 20:49, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Excellent! Now, I don't know how many people would use it, but I'd love to see a utility that would allow me to choose the temperature/forest/shrub/surroundings/neighbours when starting out. I like to stick to the same sort of areas, but it can be a pain finding them on the map - if they exist at all. Problem is, I think most people take what they're given, region-wise... so I don't think it'd have much of an audience. What do you think? [[User:Runspotrun|Runspotrun]] 20:55, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Er, I haven't just described startpoints.exe, have I? [[User:Runspotrun|Runspotrun]] 21:01, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Well, if you're not averse to requests...  A utility to activate the subterranean flag on indoor areas would be awesome for those of us who'd like to build surface castles in cold/freezing terrain without our dwarves dying of frostbite.  -[[User:EarthquakeDamage|EarthquakeDamage]] 22:45, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::I'd like a rock/gem/ore tool. Would be really neat. Especially the ore/gem one. Also, maybe water/magma creation tools if possible?--[[User:Spelguru|Spelguru]] 01:29, 11 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Something similar to the old skills.exe would be great! --[[User:Vanan|Vanan]] 11:44, 19 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::What I'd like is some way to search for a particular tile on the map.  Probably the easiest thing for you to code is to have reveal.exe have an option where it prints the map data to a file in some simple text format (Just a simple list of 'Z,X,Y &amp;quot;tile code&amp;quot;' would be sufficient.  mapping what tiles have what value would be nice, but not necessary.)  I want to answer the question &amp;quot;Is the raw material for the item the possessed dwarf is asking for somewhere on my map, and if so, where?&amp;quot;  --[[User:Warnold|Warnold]] 23:08, 9 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::I would like to request something that teleports items. --[[User:Demosthenes|Demosthenes]] 02:05, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Is it possible for a utility to remove excess stone? (name and amount in command line) --[[User:Jackard|Jackard]] 07:35, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Wild Praise ==&lt;br /&gt;
Thank you so much for your incredible work! Your applications add so much fun to the game! --[[User:Vanan|Vanan]] 13:56, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Astonishing response time for 33e!  --[[User:Geofferic|Geofferic]] 01:04, 9 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== In reply to ==&lt;br /&gt;
Your statement to me on my page, &amp;quot;Don't subject your opinion unto others. (Though I think you were just trying to be funny...) --Rick 03:54, 31 October 2007 (EDT)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Of course I was. But some people have no real sense of humor. &lt;br /&gt;
&lt;br /&gt;
Also, some people believe they can do things they tell others NOT to do. Your statement is a perfect example of this. You tell me not to subject others to MY opinion, but in doing so you are subjecting me to YOUR opinion. Oh yes, you are one of the VIPs in the DF community, because you wrote a couple utilities. So I suppose I should be humble in your presence, and bow to someone so great. I would do that, but when I bow, I do it facing AWAY from that person, and I drop my trousers at the same time. Still want me to bow to your greatness?&lt;br /&gt;
&lt;br /&gt;
I read other contributions here that voice their opinions the same as I did. I wonder if you said the same thing to all of them as well? Tho since I was able to read the pages they wrote, you clearly did not delete their words as you did mine. And while other entries I made were either deleted or edited, as I expected them to be, since I am not a great wiki writer, you were the only one to send me a somewhat nasty note. &lt;br /&gt;
&lt;br /&gt;
Think whatever you like of me, but at least I was contributing, and trying to give a few smiles along the way. Seems to me tho, that DF is fun, and it's wiki should be too. And, from other pages I read, others feel the same way I do. Maybe you should take a look around at some of their pages, and lighten up yourself a bit? Maybe trade with the elves for a tame blue jay, and drop it down your shorts. If that doesnt get a giggle out of you, maybe you should go join the undead at one of their ruins?&lt;br /&gt;
&lt;br /&gt;
: Wow, way to blow up that up, I was just jesting. I think I'll leave your words here, [[User:Darknight|Darknight]]. --[[User:Rick|Rick]] 19:25, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Oh, and for the record, I did not remove your message, someone else did that. Check the page history. --[[User:Rick|Rick]] 19:29, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== heal.exe bug? ==&lt;br /&gt;
&lt;br /&gt;
Hmm... I've found that heal -hurt doesn't work on fire men, at least in 33b. It sets all their body parts to red, but the fire man just keeps wandering around and scaring my poor witless dwarves. I haven't found a living fire man yet in 33c so I can't check. [[User:Runspotrun|Runspotrun]] 06:59, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Are firemen immune to pain? Hurt just nukes bodyparts, not kills creatures, most creatures who feel pain will die from that, but I guess ones who don't won't. --[[User:Rick|Rick]] 12:08, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Just checked - yes they are. That'd explain it then, ta. [[User:Runspotrun|Runspotrun]] 14:38, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== INI? ==&lt;br /&gt;
&lt;br /&gt;
Does anyone see anything obviously wrong about this? I used various comparisons to come to these values (as well as what the hex fellow posted in the memory hacking section), and editing them as such into the reveal.exe allowed me to get that program to function, but the ini isn't reenabling the executables on its own:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[address]&lt;br /&gt;
DWARF_FORTRESS=0x0089C414 ; correct&lt;br /&gt;
MENU_STATE=0x0124565C ; maybe&lt;br /&gt;
FOCUSED_CREATURE=0x00C39548 ; correct&lt;br /&gt;
CREATURE_VECTOR=0x01420A48 ; correct&lt;br /&gt;
MOUSE_X=0x008FF290 ; pretty sure should be 008FF288&lt;br /&gt;
MOUSE_Y=0x008FF294 ; pretty sure should be 008FF28C&lt;br /&gt;
MOUSE_Z=0x008FF298 ; pretty sure should be 008FF290&lt;br /&gt;
MAP_DATA=0x01462568 ; correct&lt;br /&gt;
MAP_X_COUNT=0x01462580 ; correct&lt;br /&gt;
MAP_Y_COUNT=0x01462584 ; correct&lt;br /&gt;
MAP_Z_COUNT=0x01462588 ; correct&lt;br /&gt;
STARTING_DWARF_COUNT=0x0078A54E ; wrong.  0078A554 (value actually is dword at 0078A555)&lt;br /&gt;
STARTING_POINT_COUNT=0x00789703 ; correct (value actually is word at 0078970A)&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260 ; dunno&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660 ; dunno&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000 ; yes&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308 ; probably&lt;br /&gt;
CREATURE_X_OFFSET=0x0094 ; probably&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096 ; probably&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098 ; probably&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:Qalnor|Qalnor]] 14:05, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
I commented the above.  none of the corrections should affect reveal.  I don't know what's going wrong.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 19:53, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: I made a few mistakes when documenting the existing data, which probably threw you guys off. My user page has been updated for 33f. --[[User:Rick|Rick]] 20:41, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Thanks, to both of you. I'll have to go over what I was doing when I get home to try and see where I was going wrong.  [[User:Qalnor|Qalnor]] 15:11, 17 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Possible adjuststart enhancement ==&lt;br /&gt;
Hi!  Merry culturally-appropriate politically-correct generic holiday!&lt;br /&gt;
&lt;br /&gt;
I have found some interesting addresses that work well with adjuststart.&lt;br /&gt;
&lt;br /&gt;
In .33f, the byte at 0078654B holds a constant that is the upper limit that starting skills can be advanced to.  It is normally 5 (proficient).  If you change it to 15, skills can be advanced to legendary.  If you change it to 20, skills can be advanced to legendary+5.&lt;br /&gt;
&lt;br /&gt;
Also in .33f, there's a pair of bytes at 00786466 and 00786608.  If you set both to 0, then the 10 skills per dwarf limit is removed.&lt;br /&gt;
&lt;br /&gt;
I've found equivalant addresses for all the .33 releases.  They're in the memory hacking subpages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;—Preceding unsigned comment added by [[User:0x517A5D|0x517A5D]] ([[User talk:0x517A5D|talk]]{{!}}[[Special:Contributions/0x517A5D|contribs]]) {{{2|}}}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Did I not sign that?  Oops.  Well, I was tired.  Thank you, VengefulDonut.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:02, 19 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Very cool, I'll probably add these for the next release then. --[[User:Rick|Rick]] 04:18, 20 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Update of utilities ==&lt;br /&gt;
&lt;br /&gt;
So how much longer do you suppose it might take to transition the utilities to 33f?--[[User:Heliopios|Heliopios]] 13:04, 19 December 2007 (EST)&lt;br /&gt;
:With the .ini method there isnt really a need to rebuild the utilities for 32f. [[User:VengefulDonut|VengefulDonut]] 15:25, 19 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:And how exactly do you use memory.ini?  I've created a new ini file (yes, it's a .ini, not a .ini.txt) and pasted everything under [code] tags for .33f, and lugged it into the dir. with the required executable (heal.exe in this case) but when I run it it still says it was built for .33e. Should I put it somewhere else?  In any case, instructions for use are either inexistent or pretty well hidden here in the wiki.&lt;br /&gt;
:Cheers. [[User:N35t0r|N35t0r]] 21:45, 19 December 2007 (EST)&lt;br /&gt;
::Did you name it &amp;quot;memory.ini&amp;quot;? This worked for me with reveal.exe [[User:VengefulDonut|VengefulDonut]] 01:52, 20 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Possible INI file syntax change ==&lt;br /&gt;
&lt;br /&gt;
I would like to suggest a change to the format of MEMORY.INI.  Instead of the [generic], [address], and [offset] sections (which in my opinion buy you nothing), I would suggest using sections keyed off the PE header timestamp.  (You have previously indicated that you plan to convert to that method anyway.)  So a sample .INI file might look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;; .33e&lt;br /&gt;
[475B7526]&lt;br /&gt;
MENU_STATE=0x01244654&lt;br /&gt;
FOCUSED_CREATURE=0x00C38540&lt;br /&gt;
CREATURE_VECTOR=0x0141FA40&lt;br /&gt;
MOUSE_X=0x008FE288&lt;br /&gt;
MOUSE_Y=0x008FE28C&lt;br /&gt;
MOUSE_Z=0x008FE290&lt;br /&gt;
MAP_DATA=0x01461560&lt;br /&gt;
MAP_X_COUNT=0x01461578&lt;br /&gt;
MAP_Y_COUNT=0x0146157C&lt;br /&gt;
MAP_Z_COUNT=0x01461580&lt;br /&gt;
STARTING_DWARF_COUNT=0x007893C5&lt;br /&gt;
STARTING_POINT_COUNT=0x0078857A&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
&lt;br /&gt;
; .33f&lt;br /&gt;
[4763710C]&lt;br /&gt;
MENU_STATE=0x0124565C&lt;br /&gt;
FOCUSED_CREATURE=0x00C39548&lt;br /&gt;
CREATURE_VECTOR=0x01420A48&lt;br /&gt;
MOUSE_X=0x008FF288&lt;br /&gt;
MOUSE_Y=0x008FF28C&lt;br /&gt;
MOUSE_Z=0x008FF290&lt;br /&gt;
MAP_DATA=0x01462568&lt;br /&gt;
MAP_X_COUNT=0x01462580&lt;br /&gt;
MAP_Y_COUNT=0x01462584&lt;br /&gt;
MAP_Z_COUNT=0x01462588&lt;br /&gt;
STARTING_DWARF_COUNT=0x0078A555&lt;br /&gt;
STARTING_POINT_COUNT=0x0078970A&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main reason to do this is to allow data for multiple versions to be in the .INI file.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 18:22, 21 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Agreed, will do this. --[[User:Rick|Rick]] 15:28, 22 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== 33g memory.ini ==&lt;br /&gt;
&lt;br /&gt;
0x517A5D looked these up and put them on the 33g memory hacking page, but did not actually put them in here. He copied/pasted from 33f. Mistake? I looked up the dwarf fortress tag and used his values for the ones I could see on the other page he posted (33g memory hacking page) and updated them. It works for reveal, but it's missing FOCUSED_CREATURE and CREATURE_VECTOR because I can't find them.&lt;br /&gt;
--[[User:Paul|Paul]] 15:05, 22 December 2007 (CST)&lt;br /&gt;
:I just cross-referenced those 2 values with the 33f memory location page and updated them. Should work now, though I haven't tested. --[[User:Janus|Janus]] 16:27, 22 December 2007 (EST)&lt;br /&gt;
::The currently listed FOCUSED_CREATURE and CREATURE_VECTOR values don't appear to work. --[[User:Zurai|Zurai]] 22:20, 22 December 2007 (EST)&lt;br /&gt;
:::Hi Zurai.  Do to my blunder, there was a short period where those two values were incorrect.  You probably hit that window.  Check the values in your copy against the ones shown now.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:59, 22 December 2007 (EST)&lt;br /&gt;
::::Heal.exe and warp.exe (only when trying to warp a creature - warp to find the coords of a tile works fine) both give me &amp;quot;An error has occured: please select a unit in 'view units' mode&amp;quot; using FOCUSED_CREATURE=0x00C40540 and CREATURE_VECTOR=0x01427B60, which are the values listed at the time of this writing. I've redownloaded both executables and re-made the ini from scratch, copy-pasting the values from the 33g listing, and it still occurs. Is anyone else having the same issue? Maybe my computer doesn't like heal or warp any more. Reveal works fine, though. --[[User:Zurai|Zurai]] 18:45, 23 December 2007 (EST)&lt;br /&gt;
:::::I found the problem.  It was MENU_STATE.  Yes, anyone else who tried to use these utils would experience the same problem.  I have now edited the .33g memory.ini section again, and verified that warp.exe, heal.exe -hurt, and heal.exe all work.  I'm really, really sorry for the mess up.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:39, 23 December 2007 (EST)&lt;br /&gt;
::::::I'm having this pop up with the new memory.ini info for warp.exe: &amp;quot;An error has occured:failed to read block pointer for to block&amp;quot;.  --[[User:Corbine|Corbine]] 03:19, 24 December 2007 (EST)&lt;br /&gt;
:::::::Well, let's go down the checklist.  Due to a blunder on my part, the .33g memory.ini file was wrong for several hours.  One of the mistakes causes that error message.   Try deleting memory.ini and making a new one with the [[User:Rick#v0.27.169.33g|current data]].&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 14:29, 24 December 2007 (EST)&lt;br /&gt;
::::::::Deleted the memory.ini, made a new one and threw the new info into it, still same error. --[[User:Corbine|Corbine]] 01:28, 25 December 2007 (EST)&lt;br /&gt;
:::::::::Corbine, are you still experiencing this?  I just realized I've left this hanging for a week.  Sorry.  Okay, next.  Previous versions of warp have worked for you with previous versions of DF?  Do other of Rick's utilities work for you?  My tentative diagnosis is that &amp;lt;u&amp;gt;part&amp;lt;/u&amp;gt; of your INI file is wrong.  If the whole thing was wrong, it would merely complain that it was built for version .33e.  I don't know which particular key being wrong gives that error, and I don't have a .33g test fort at the moment, so I can't easily check right now.  But I could when I have time.  Really, I'm puzzled.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 03:47, 31 December 2007 (EST)&lt;br /&gt;
:Yes, mistake.  Arrgh.  I must have copied from the wrong editor window.  Thank you both.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 17:08, 22 December 2007 (EST)&lt;br /&gt;
::No worries, and thanks for posting the new memory locations in the first place. I personally was looking forward to that info so I could use reveal.exe to examine potential fortress locations in newly created 33g worlds, so it is much appreciated. --[[User:Janus|Janus]] 18:07, 22 December 2007 (EST)&lt;br /&gt;
::I was all excited when I saw the 33g info up, then went to paste it into my ini and realised the data was the same... I figured you just accidentally pasted the wrong thing in. The only thing I could figure out how to look up was the Dwarf Fortress tag location, so it is appreciated that you looked all the rest up. With the world generation changing, it's nice to have reveal available to search for new sites. [[User:Paul|Paul]] 21:20, 22 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
==38a==&lt;br /&gt;
&lt;br /&gt;
How would we update this? --[[User:Squeegy|Squeegy]] 20:22, 5 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we can start by finding the relevant mem locations for 88a&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[generic]&amp;lt;br /&amp;gt;&lt;br /&gt;
DWARF_FORTRESS=0x00C11218&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[address]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
MENU_STATE=&amp;lt;br /&amp;gt;&lt;br /&gt;
FOCUSED_CREATURE=&amp;lt;br /&amp;gt;.&lt;br /&gt;
CREATURE_VECTOR=&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_X=0x0092f288&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_Y=0x0092f28c&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_Z=0x0092f290&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_DATA=&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_X_COUNT=0x014929F0&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_Y_COUNT=0x014929F4&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_Z_COUNT=0x014929F8&amp;lt;br /&amp;gt;&lt;br /&gt;
STARTING_DWARF_COUNT=&amp;lt;br /&amp;gt;&lt;br /&gt;
STARTING_POINT_COUNT=&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
those are the easy ones.&lt;br /&gt;
if we had map data and confirmed that the offset was correct at least Reveal.exe would work but I'm out of time today.  --[[User:Shadetree|Shadetree]] 22:23, 6 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
I've found the other addresses. I won't guarantee that the offsets other than MAP_DATA_DESIGNATION_OFFSET, MAP_DATA_OCCUPANCY_OFFSET, and CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET are correct.&lt;br /&gt;
 [generic]&lt;br /&gt;
 DWARF_FORTRESS=0x00C11218&lt;br /&gt;
 &lt;br /&gt;
 [address]&lt;br /&gt;
 STARTING_POINT_COUNT=0x007AF4FA&lt;br /&gt;
 STARTING_DWARF_COUNT=0x007B0345&lt;br /&gt;
 MENU_STATE=0x0127599C&lt;br /&gt;
 FOCUSED_CREATURE=0x00C69888&lt;br /&gt;
 CREATURE_VECTOR=0x01450E98&lt;br /&gt;
 MOUSE_X=0x0092F288&lt;br /&gt;
 MOUSE_Y=0x0092F28C&lt;br /&gt;
 MOUSE_Z=0x0092F290&lt;br /&gt;
 MAP_DATA=0x014929CC&lt;br /&gt;
 MAP_X_COUNT=0x014929E4&lt;br /&gt;
 MAP_Y_COUNT=0x014929E8&lt;br /&gt;
 MAP_Z_COUNT=0x014929EC&lt;br /&gt;
 &lt;br /&gt;
 [offset]&lt;br /&gt;
 MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
 MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
 CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
 CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
 CREATURE_X_OFFSET=0x0094&lt;br /&gt;
 CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
 CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
If I understand how Rick's tools work, the offsets I've verified are the only offsets necessary.&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 20:05, 7 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
confirmed that this works with Reveal.exe --[[User:Shadetree|Shadetree]] 18:41, 8 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
warp.exe and heal.exe do not work with this configuration. --[[User:Markham|Markham]] 11:28, 9 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
The reason the creature tools will work is due to some issue with how FOCUSED_CREATURE now behaves. Assuming the address is correct, and I'm 99.9% positive it's the correct address, a new method will have to be determined which unit is focused. Also, did your map have existing creatures? -- [[User:Jifodus|Jifodus]] 17:39, 9 February 2008 (EST)&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus/Dwarf_Fortress_Utility_Framework&amp;diff=31705</id>
		<title>User:Jifodus/Dwarf Fortress Utility Framework</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus/Dwarf_Fortress_Utility_Framework&amp;diff=31705"/>
		<updated>2008-02-09T05:52:01Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: If you're using or looking at DFUF, please read this.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm currently writing a framework for Dwarf Fortress utilities. The general idea is to use C++ interfaces in a cross-compiler fashion that is very easy to use. This is designed to assist utility writers, by making possible to compile once, and have it work on future versions of Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
'''Attention:''' This is just a quick check to see if anyone is looking at or using the DFUF in any of their projects. I'm thinking of rewriting the interfaces due to some limitations I've been encountering. I also plan on abstracating the environment away from Lua directly. If you are, please PM me on the forums, or leave a note on the talk page. I just want to avoid breaking an existing tool and/or forcing you to learn a new interface.&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
I'm not going to hold copyright of either the source code of the framework. It is in the Public Domain.&lt;br /&gt;
&lt;br /&gt;
However, I will hold copyright of StartProfile. And it is licensed under the WTFPL: http://sam.zoy.org/wtfpl/&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
===First Beta Release: January 1, 2008===&lt;br /&gt;
Source Code: http://www.geocities.com/jifodus/dfuf2.zip&amp;lt;br /&amp;gt;&lt;br /&gt;
Binaries: http://www.geocities.com/jifodus/dfufend2.zip&amp;lt;br /&amp;gt;&lt;br /&gt;
Debugging Symbols for the Binaries: http://www.geocities.com/jifodus/dfufdebug2.zip&lt;br /&gt;
&lt;br /&gt;
'''This first beta release has additional interfaces for working with creatures, it also has more complete data files. It is now possible to cleanly create complex type overrides with ''PointerTo()'', ''VectorOf()'', and ''ArrayOf()''. There is no data for v0.27.169.33g, the data is most complete for v0.27.169.33f.'''&lt;br /&gt;
===Alpha Release===&lt;br /&gt;
Source Code: http://www.geocities.com/jifodus/dfuf.zip&amp;lt;br /&amp;gt;&lt;br /&gt;
Binaries: http://www.geocities.com/jifodus/dfufend.zip&amp;lt;br /&amp;gt;&lt;br /&gt;
Debugging Symbols for the Binaries: http://www.geocities.com/jifodus/dfufdebug.zip&lt;br /&gt;
&lt;br /&gt;
==Todo==&lt;br /&gt;
Before the second release, which is necessary before it can be easily used, the following items need to be taken care of.&lt;br /&gt;
* Bugs&lt;br /&gt;
** There's always going to be a bug somewhere.&lt;br /&gt;
* Features&lt;br /&gt;
** Main Library&lt;br /&gt;
*** '''Error Handling''' - The library itself does not cleanly handle common errors. '''''10% Completed'''''&lt;br /&gt;
*** '''Auto-Update''' - Implement automatic update for both framework code and data. '''''0% Completed'''''&lt;br /&gt;
*** '''Installer''' - An installer for the library. '''''10% Completed'''''&lt;br /&gt;
*** '''Complete Memory Data''' - Complete transforming the memory data available on the wiki to format usable by library. '''''60% Completed'''''&lt;br /&gt;
*** '''More Type Objects''' - Provide interface wrappers to some of the commonly used memory types (Creature and Map). '''''60% Completed'''''&lt;br /&gt;
*** '''Memory Scanner''' - A simple memory searcher. Used for '''Auto-Identifier'''. '''''0% Completed'''''&lt;br /&gt;
*** '''Auto-Identifier''' - Automatically try to find the memory locations and offsets for new versions. '''''0% Completed'''''&lt;br /&gt;
*** '''Remote Memory De/Allocate''' - Needed to properly implement String &amp;amp; Vector set functions. '''''0% Completed'''''&lt;br /&gt;
*** '''Reload Data''' - The data loading portion does not yet properly reload the data. '''''0% Completed'''''&lt;br /&gt;
*** '''Bindings''' - C#/Perl/Java/Python/Lua/Other?&lt;br /&gt;
&lt;br /&gt;
==Features Overview==&lt;br /&gt;
The Dwarf Fortress Utility Framework is designed with the following goals in mind:&lt;br /&gt;
* Utilities compiled for the very first release of the framework still work 10 years later&lt;br /&gt;
** With all the updates and patches applied to the library&lt;br /&gt;
** With the latest release of Dwarf Fortress&lt;br /&gt;
* The end user of a utility can simply download and run the utility and have it work&lt;br /&gt;
* The framework provides a flexible and easy to use way to define types and memory maps, and write utilities to use the types and memory maps&lt;br /&gt;
&lt;br /&gt;
===Current Features===&lt;br /&gt;
* Written in C++, using interfaces&lt;br /&gt;
* Memory data stored in Lua format&lt;br /&gt;
* Sample utility for implementation reference: reimplementation of StartProfile&lt;br /&gt;
* API header &amp;amp; library&lt;br /&gt;
* Complete source code&lt;br /&gt;
* Identify Dwarf Fortress version via PE executable timestamp&lt;br /&gt;
* Cross-compiler/mostly C compatible using Windows COM style interfaces&lt;br /&gt;
** It is not C compatible due to function overloading issues.&lt;br /&gt;
* Auto-loading of Lua data files&lt;br /&gt;
* Library self-contained in DLL&lt;br /&gt;
&lt;br /&gt;
===Current Limitations===&lt;br /&gt;
* '''Buggy!'''&lt;br /&gt;
** Memory leaks exist&lt;br /&gt;
* No real documentation whatsoever&lt;br /&gt;
* Sparse comments&lt;br /&gt;
* Memory data is all there, but the library does not yet use all of it&lt;br /&gt;
* The library is designed for C++, the C interface has not been tested (and probably will not work)&lt;br /&gt;
** Also, this was only tested using MSVC++ .net 2005, it will probably work on other version of MSVC++.&lt;br /&gt;
* Does not cleanly handle errors&lt;br /&gt;
* Some interface functions not implemented&lt;br /&gt;
** Map/Get through pointer functions not yet implemented&lt;br /&gt;
** iDFUF::installDataFile is not yet implemented&lt;br /&gt;
* Compiled as debug mode (bloated file sizes)&lt;br /&gt;
* The library is not extensively tested&lt;br /&gt;
* The library has a dependency on: [http://www.microsoft.com/downloads/details.aspx?FamilyId=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&amp;amp;displaylang=en Visual Studio 8 Debug CRT]&lt;br /&gt;
&lt;br /&gt;
===Second Release===&lt;br /&gt;
The next release planned features will include:&lt;br /&gt;
* Auto-retrieve memory data off the internet&lt;br /&gt;
* Auto-update framework code itself&lt;br /&gt;
* Have an installer that will install the DLL and data file to a shared location, so multiple utilities can use the same library&lt;br /&gt;
&lt;br /&gt;
===Future===&lt;br /&gt;
And further down the road (through auto-update):&lt;br /&gt;
* Implement specific subsets of the std library; reduce utility size more, no large dependencies for the utilities&lt;br /&gt;
** std::string&lt;br /&gt;
** std::vector&lt;br /&gt;
** std::map&lt;br /&gt;
** Console IO&lt;br /&gt;
** File IO&lt;br /&gt;
* Easy to use GUI framework; for making tools with a nice GUI&lt;br /&gt;
* Cross-process memory allocation&lt;br /&gt;
&lt;br /&gt;
==Data Format==&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
The framework requires definitions of the following types:&lt;br /&gt;
* raw: a raw array of bytes; internally it allows access to an array of type.size * type.fixed_array bytes.&lt;br /&gt;
* pointer: a pointer to a location in Dwarf Fortress's memory; can represent a 32-bit pointer&lt;br /&gt;
* dword: an integer type that is 4 bytes&lt;br /&gt;
* word: an integer type that is 2 bytes&lt;br /&gt;
* byte: an integer type that is 1 byte&lt;br /&gt;
* float: a 32-bit floating point type&lt;br /&gt;
* double: a 64-bit floating point type&lt;br /&gt;
* string: a type that represents a std::string&lt;br /&gt;
** required members:&lt;br /&gt;
*** '''dword''' length: defines how many characters string contains&lt;br /&gt;
*** '''dword''' capacity: defines the maximum number of characters the string buffer can contain&lt;br /&gt;
*** '''pointer''' buffer_ptr: a pointer to a memory location containing the string data&lt;br /&gt;
** optional members:&lt;br /&gt;
*** '''raw''' buffer: a fixed-size array of characters containing the string when length &amp;lt; the fixed size of the buffer&lt;br /&gt;
* vector: a type representing a std::vector&lt;br /&gt;
** required members:&lt;br /&gt;
*** '''pointer''' begin: a pointer to the begining of the memory block&lt;br /&gt;
*** '''pointer''' end: a pointer to just beyond of the last valid element in the vector&lt;br /&gt;
*** '''pointer''' last: a pointer to just beyond the end of the memory block&lt;br /&gt;
&lt;br /&gt;
===Data Files===&lt;br /&gt;
The data files must supply the following information:&lt;br /&gt;
* Types: each element of the type list represents one type; there is a special type called '''Main''', '''Main''' represents the global memory map&lt;br /&gt;
* Signatures: each signature is designed to uniquely identify each version of Dwarf Fortress&lt;br /&gt;
&lt;br /&gt;
====Lua Data Files====&lt;br /&gt;
Classes:&lt;br /&gt;
* '''Type''': 'type =' The value can either be a set containing a type override or the string of a type name.&lt;br /&gt;
** Type: 'type =' A string representing the Type Name of the type to override.&lt;br /&gt;
** Subtypes: An array of type overrides and/or Type Names, that are subtypes of this type.&lt;br /&gt;
** Size: 'size =' An integer overriding the size of the type.&lt;br /&gt;
** Fixed Array Size: 'fixed_size =' An integer overriding the fixed array size of the type.&lt;br /&gt;
* Types: 'Types'&lt;br /&gt;
** Version: String representing version&lt;br /&gt;
*** TypeName: String representing name of the type, special type is '''Main'''.&lt;br /&gt;
**** Size: 'size =' an integer representing&lt;br /&gt;
**** Members: 'members' a table of of name value pairs; The name being the Member Name; The value is a set containing the Type and Offset.&lt;br /&gt;
***** Member Name: String representing the name&lt;br /&gt;
****** Type: 'type =' The value can either be a set containing a '''Type''' override or the name of the of a type.&lt;br /&gt;
****** Offset: 'offset =' The member offset (from the base address).&lt;br /&gt;
****** Pointer: 'pointer =' The pointer in memory for which the member can be found. Used for the '''Main''' type.&lt;br /&gt;
* Signatures 'Signatures'&lt;br /&gt;
** Version: String representing the version (same string as types).&lt;br /&gt;
*** PE Timestamp: 'pe_timestamp' The PE header timestamp value.&lt;br /&gt;
*** .text Adler32: 'adler32' The Adler32 CRC of the &amp;quot;.text&amp;quot; section of the executable.&lt;br /&gt;
*** Text Segments: 'text_segments' An array of segments of the &amp;quot;.text&amp;quot; section of the executable.&lt;br /&gt;
**** Address: [1] = The offset into the &amp;quot;.text&amp;quot; section that the following raw data can be found.&lt;br /&gt;
**** Raw Data: [2] = The data the &amp;quot;.text&amp;quot; segment is supposed to contain.&lt;br /&gt;
&lt;br /&gt;
==Library Usage==&lt;br /&gt;
(This part is only useful for utility writers.)&lt;br /&gt;
&lt;br /&gt;
===Basic Programming===&lt;br /&gt;
The basic program needed to use the library is simply:&lt;br /&gt;
 #include &amp;lt;dfuf.h&amp;gt;&lt;br /&gt;
 void main() {&lt;br /&gt;
 	dfuf::iDFUF *uf = dfuf::newDFUF();&lt;br /&gt;
 	// Do something with the framework&lt;br /&gt;
 	uf-&amp;gt;destroy(); // in theory cleans up all memory used&lt;br /&gt;
 }&lt;br /&gt;
To connect to an instance of Dwarf Fortress the program must first scan for instances,&lt;br /&gt;
then get one of the instances of dwarf fortress like this:&lt;br /&gt;
 if (uf-&amp;gt;scanForInstances() == 0) &lt;br /&gt;
 	// none found&lt;br /&gt;
 	return;&lt;br /&gt;
 dfuf::iDFInstance *instance = uf-&amp;gt;getInstance(0);&lt;br /&gt;
After getting a Dwarf Fortress instance, it then becomes possible to access global&lt;br /&gt;
pointers and memory locations (i.e. creature vector location) with&lt;br /&gt;
iDFInstance::getMemoryObject. iDFInstance::getMemoryObject takes a iType* and an&lt;br /&gt;
Address in Dwarf Fortress memory and returns an appropriate iMemoryType*. There are&lt;br /&gt;
different ways to provide the iType* and the Address, including from the data file&lt;br /&gt;
(via the appropriate name), a iPointerType*, and an iPointer* and iType* lets the&lt;br /&gt;
code create from the raw parts. There is a second version of&lt;br /&gt;
iDFInstance::getMemoryObject, which follows all the pointers to a non-pointer object&lt;br /&gt;
and returns the object called iDFInstance::getMemoryObjectThroughPointers. However,&lt;br /&gt;
it has not been implemented in the first release of the library.&lt;br /&gt;
&lt;br /&gt;
From the first memory object created, the code can then either query the value (from&lt;br /&gt;
any of the i*Type) or map other members (from any of the i*Object) objects.&lt;br /&gt;
&lt;br /&gt;
===Advanced Programming===&lt;br /&gt;
An advanced topic is iMemoryType* creation. It is painful to individually map the&lt;br /&gt;
members, therefore creating an iMemoryType* that simplifies access to the type sounds&lt;br /&gt;
ideal. However, the library only knows about the types it has been compiled with. Enter&lt;br /&gt;
iTypeFactory*, the iTypeFactory* gets registered in iDFUF with iDFUF::addTypeFactory.&lt;br /&gt;
Each factory provides 2 functions: construct &amp;amp; destruct. This allows programs to create&lt;br /&gt;
their own structures to wrap the creature type.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
 class cCreatureType : public dfuf::iMemoryObject&lt;br /&gt;
 {&lt;br /&gt;
 public:&lt;br /&gt;
 	// Implement virtual methods here&lt;br /&gt;
 &lt;br /&gt;
 public:&lt;br /&gt;
 	dfuf::u32 getHappiness() { return happiness-&amp;gt;getValue(); }&lt;br /&gt;
 	void setHappiness(dfuf::u32 value) { happiness-&amp;gt;setValue(value); }&lt;br /&gt;
 	// More methods here&lt;br /&gt;
 	cCreatureType(dfuf::iDFInstance *instance, dfuf::iPointer *base, dfuf::iType *type)&lt;br /&gt;
 	{&lt;br /&gt;
 		this-&amp;gt;instance = instance;&lt;br /&gt;
 		this-&amp;gt;base = base;&lt;br /&gt;
 		this-&amp;gt;type = type;&lt;br /&gt;
 		this-&amp;gt;happiness = map(L&amp;quot;happiness&amp;quot;);&lt;br /&gt;
 	}&lt;br /&gt;
 public:&lt;br /&gt;
 	dfuf::iDFInstance *instance;&lt;br /&gt;
 	dfuf::iPointer *base;&lt;br /&gt;
 	dfuf::iType *type;&lt;br /&gt;
 	dfuf::iIntegerType *happiness;&lt;br /&gt;
 };&lt;br /&gt;
 class cCreatureFactory : public dfuf::iTypeFactory&lt;br /&gt;
 {&lt;br /&gt;
 public:&lt;br /&gt;
 	// new creature&lt;br /&gt;
 	{&lt;br /&gt;
 		return new cCreatureType(instance, base, type);&lt;br /&gt;
 	}&lt;br /&gt;
 	// delete creature&lt;br /&gt;
 	{&lt;br /&gt;
 		delete object;&lt;br /&gt;
 	}&lt;br /&gt;
 };&lt;br /&gt;
 // Global instance, otherwise we'd have to do memory management on the pointer&lt;br /&gt;
 cCreatureFactory global_CreatureFactory;&lt;br /&gt;
 // Usage&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
 	dfuf::iDFUF *uf = newDFUF();&lt;br /&gt;
 	dfuf::iDFInstance *instance = uf-&amp;gt;getDFInstance(0);&lt;br /&gt;
 	uf-&amp;gt;addTypeFactory(&amp;quot;creature&amp;quot;, &amp;amp;global_CreatureFactory);&lt;br /&gt;
 	iPointer *pointer;&lt;br /&gt;
 	cCreatureType *creature = (cCreatureType *)instance-&amp;gt;getMemoryObject&lt;br /&gt;
 		(pointer, instance-&amp;gt;getType(&amp;quot;creature&amp;quot;));&lt;br /&gt;
 	creature-&amp;gt;setHappiness(-10000); // hahaha die dwarf!&lt;br /&gt;
 	uf-&amp;gt;destroy();&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User_talk:Rick&amp;diff=25135</id>
		<title>User talk:Rick</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User_talk:Rick&amp;diff=25135"/>
		<updated>2008-02-08T16:52:05Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* 38a */ Fixed creature vector address, forgot to subtract by 0x4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requests ==&lt;br /&gt;
Hey there. Thanks for writing reveal.exe. It's made my dwarves' lives so much easier!&lt;br /&gt;
&lt;br /&gt;
Do you take requests?&lt;br /&gt;
&lt;br /&gt;
And is this the right place to ask? [[User:Runspotrun|Runspotrun]] 20:32, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Yes, and yes. --[[User:Rick|Rick]] 20:49, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Excellent! Now, I don't know how many people would use it, but I'd love to see a utility that would allow me to choose the temperature/forest/shrub/surroundings/neighbours when starting out. I like to stick to the same sort of areas, but it can be a pain finding them on the map - if they exist at all. Problem is, I think most people take what they're given, region-wise... so I don't think it'd have much of an audience. What do you think? [[User:Runspotrun|Runspotrun]] 20:55, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Er, I haven't just described startpoints.exe, have I? [[User:Runspotrun|Runspotrun]] 21:01, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Well, if you're not averse to requests...  A utility to activate the subterranean flag on indoor areas would be awesome for those of us who'd like to build surface castles in cold/freezing terrain without our dwarves dying of frostbite.  -[[User:EarthquakeDamage|EarthquakeDamage]] 22:45, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::I'd like a rock/gem/ore tool. Would be really neat. Especially the ore/gem one. Also, maybe water/magma creation tools if possible?--[[User:Spelguru|Spelguru]] 01:29, 11 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Something similar to the old skills.exe would be great! --[[User:Vanan|Vanan]] 11:44, 19 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::What I'd like is some way to search for a particular tile on the map.  Probably the easiest thing for you to code is to have reveal.exe have an option where it prints the map data to a file in some simple text format (Just a simple list of 'Z,X,Y &amp;quot;tile code&amp;quot;' would be sufficient.  mapping what tiles have what value would be nice, but not necessary.)  I want to answer the question &amp;quot;Is the raw material for the item the possessed dwarf is asking for somewhere on my map, and if so, where?&amp;quot;  --[[User:Warnold|Warnold]] 23:08, 9 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::I would like to request something that teleports items. --[[User:Demosthenes|Demosthenes]] 02:05, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Is it possible for a utility to remove excess stone? (name and amount in command line) --[[User:Jackard|Jackard]] 07:35, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Wild Praise ==&lt;br /&gt;
Thank you so much for your incredible work! Your applications add so much fun to the game! --[[User:Vanan|Vanan]] 13:56, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Astonishing response time for 33e!  --[[User:Geofferic|Geofferic]] 01:04, 9 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== In reply to ==&lt;br /&gt;
Your statement to me on my page, &amp;quot;Don't subject your opinion unto others. (Though I think you were just trying to be funny...) --Rick 03:54, 31 October 2007 (EDT)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Of course I was. But some people have no real sense of humor. &lt;br /&gt;
&lt;br /&gt;
Also, some people believe they can do things they tell others NOT to do. Your statement is a perfect example of this. You tell me not to subject others to MY opinion, but in doing so you are subjecting me to YOUR opinion. Oh yes, you are one of the VIPs in the DF community, because you wrote a couple utilities. So I suppose I should be humble in your presence, and bow to someone so great. I would do that, but when I bow, I do it facing AWAY from that person, and I drop my trousers at the same time. Still want me to bow to your greatness?&lt;br /&gt;
&lt;br /&gt;
I read other contributions here that voice their opinions the same as I did. I wonder if you said the same thing to all of them as well? Tho since I was able to read the pages they wrote, you clearly did not delete their words as you did mine. And while other entries I made were either deleted or edited, as I expected them to be, since I am not a great wiki writer, you were the only one to send me a somewhat nasty note. &lt;br /&gt;
&lt;br /&gt;
Think whatever you like of me, but at least I was contributing, and trying to give a few smiles along the way. Seems to me tho, that DF is fun, and it's wiki should be too. And, from other pages I read, others feel the same way I do. Maybe you should take a look around at some of their pages, and lighten up yourself a bit? Maybe trade with the elves for a tame blue jay, and drop it down your shorts. If that doesnt get a giggle out of you, maybe you should go join the undead at one of their ruins?&lt;br /&gt;
&lt;br /&gt;
: Wow, way to blow up that up, I was just jesting. I think I'll leave your words here, [[User:Darknight|Darknight]]. --[[User:Rick|Rick]] 19:25, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Oh, and for the record, I did not remove your message, someone else did that. Check the page history. --[[User:Rick|Rick]] 19:29, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== heal.exe bug? ==&lt;br /&gt;
&lt;br /&gt;
Hmm... I've found that heal -hurt doesn't work on fire men, at least in 33b. It sets all their body parts to red, but the fire man just keeps wandering around and scaring my poor witless dwarves. I haven't found a living fire man yet in 33c so I can't check. [[User:Runspotrun|Runspotrun]] 06:59, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Are firemen immune to pain? Hurt just nukes bodyparts, not kills creatures, most creatures who feel pain will die from that, but I guess ones who don't won't. --[[User:Rick|Rick]] 12:08, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Just checked - yes they are. That'd explain it then, ta. [[User:Runspotrun|Runspotrun]] 14:38, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== INI? ==&lt;br /&gt;
&lt;br /&gt;
Does anyone see anything obviously wrong about this? I used various comparisons to come to these values (as well as what the hex fellow posted in the memory hacking section), and editing them as such into the reveal.exe allowed me to get that program to function, but the ini isn't reenabling the executables on its own:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[address]&lt;br /&gt;
DWARF_FORTRESS=0x0089C414 ; correct&lt;br /&gt;
MENU_STATE=0x0124565C ; maybe&lt;br /&gt;
FOCUSED_CREATURE=0x00C39548 ; correct&lt;br /&gt;
CREATURE_VECTOR=0x01420A48 ; correct&lt;br /&gt;
MOUSE_X=0x008FF290 ; pretty sure should be 008FF288&lt;br /&gt;
MOUSE_Y=0x008FF294 ; pretty sure should be 008FF28C&lt;br /&gt;
MOUSE_Z=0x008FF298 ; pretty sure should be 008FF290&lt;br /&gt;
MAP_DATA=0x01462568 ; correct&lt;br /&gt;
MAP_X_COUNT=0x01462580 ; correct&lt;br /&gt;
MAP_Y_COUNT=0x01462584 ; correct&lt;br /&gt;
MAP_Z_COUNT=0x01462588 ; correct&lt;br /&gt;
STARTING_DWARF_COUNT=0x0078A54E ; wrong.  0078A554 (value actually is dword at 0078A555)&lt;br /&gt;
STARTING_POINT_COUNT=0x00789703 ; correct (value actually is word at 0078970A)&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260 ; dunno&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660 ; dunno&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000 ; yes&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308 ; probably&lt;br /&gt;
CREATURE_X_OFFSET=0x0094 ; probably&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096 ; probably&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098 ; probably&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:Qalnor|Qalnor]] 14:05, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
I commented the above.  none of the corrections should affect reveal.  I don't know what's going wrong.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 19:53, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: I made a few mistakes when documenting the existing data, which probably threw you guys off. My user page has been updated for 33f. --[[User:Rick|Rick]] 20:41, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Thanks, to both of you. I'll have to go over what I was doing when I get home to try and see where I was going wrong.  [[User:Qalnor|Qalnor]] 15:11, 17 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Possible adjuststart enhancement ==&lt;br /&gt;
Hi!  Merry culturally-appropriate politically-correct generic holiday!&lt;br /&gt;
&lt;br /&gt;
I have found some interesting addresses that work well with adjuststart.&lt;br /&gt;
&lt;br /&gt;
In .33f, the byte at 0078654B holds a constant that is the upper limit that starting skills can be advanced to.  It is normally 5 (proficient).  If you change it to 15, skills can be advanced to legendary.  If you change it to 20, skills can be advanced to legendary+5.&lt;br /&gt;
&lt;br /&gt;
Also in .33f, there's a pair of bytes at 00786466 and 00786608.  If you set both to 0, then the 10 skills per dwarf limit is removed.&lt;br /&gt;
&lt;br /&gt;
I've found equivalant addresses for all the .33 releases.  They're in the memory hacking subpages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;—Preceding unsigned comment added by [[User:0x517A5D|0x517A5D]] ([[User talk:0x517A5D|talk]]{{!}}[[Special:Contributions/0x517A5D|contribs]]) {{{2|}}}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Did I not sign that?  Oops.  Well, I was tired.  Thank you, VengefulDonut.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:02, 19 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Very cool, I'll probably add these for the next release then. --[[User:Rick|Rick]] 04:18, 20 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Update of utilities ==&lt;br /&gt;
&lt;br /&gt;
So how much longer do you suppose it might take to transition the utilities to 33f?--[[User:Heliopios|Heliopios]] 13:04, 19 December 2007 (EST)&lt;br /&gt;
:With the .ini method there isnt really a need to rebuild the utilities for 32f. [[User:VengefulDonut|VengefulDonut]] 15:25, 19 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:And how exactly do you use memory.ini?  I've created a new ini file (yes, it's a .ini, not a .ini.txt) and pasted everything under [code] tags for .33f, and lugged it into the dir. with the required executable (heal.exe in this case) but when I run it it still says it was built for .33e. Should I put it somewhere else?  In any case, instructions for use are either inexistent or pretty well hidden here in the wiki.&lt;br /&gt;
:Cheers. [[User:N35t0r|N35t0r]] 21:45, 19 December 2007 (EST)&lt;br /&gt;
::Did you name it &amp;quot;memory.ini&amp;quot;? This worked for me with reveal.exe [[User:VengefulDonut|VengefulDonut]] 01:52, 20 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Possible INI file syntax change ==&lt;br /&gt;
&lt;br /&gt;
I would like to suggest a change to the format of MEMORY.INI.  Instead of the [generic], [address], and [offset] sections (which in my opinion buy you nothing), I would suggest using sections keyed off the PE header timestamp.  (You have previously indicated that you plan to convert to that method anyway.)  So a sample .INI file might look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;; .33e&lt;br /&gt;
[475B7526]&lt;br /&gt;
MENU_STATE=0x01244654&lt;br /&gt;
FOCUSED_CREATURE=0x00C38540&lt;br /&gt;
CREATURE_VECTOR=0x0141FA40&lt;br /&gt;
MOUSE_X=0x008FE288&lt;br /&gt;
MOUSE_Y=0x008FE28C&lt;br /&gt;
MOUSE_Z=0x008FE290&lt;br /&gt;
MAP_DATA=0x01461560&lt;br /&gt;
MAP_X_COUNT=0x01461578&lt;br /&gt;
MAP_Y_COUNT=0x0146157C&lt;br /&gt;
MAP_Z_COUNT=0x01461580&lt;br /&gt;
STARTING_DWARF_COUNT=0x007893C5&lt;br /&gt;
STARTING_POINT_COUNT=0x0078857A&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
&lt;br /&gt;
; .33f&lt;br /&gt;
[4763710C]&lt;br /&gt;
MENU_STATE=0x0124565C&lt;br /&gt;
FOCUSED_CREATURE=0x00C39548&lt;br /&gt;
CREATURE_VECTOR=0x01420A48&lt;br /&gt;
MOUSE_X=0x008FF288&lt;br /&gt;
MOUSE_Y=0x008FF28C&lt;br /&gt;
MOUSE_Z=0x008FF290&lt;br /&gt;
MAP_DATA=0x01462568&lt;br /&gt;
MAP_X_COUNT=0x01462580&lt;br /&gt;
MAP_Y_COUNT=0x01462584&lt;br /&gt;
MAP_Z_COUNT=0x01462588&lt;br /&gt;
STARTING_DWARF_COUNT=0x0078A555&lt;br /&gt;
STARTING_POINT_COUNT=0x0078970A&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main reason to do this is to allow data for multiple versions to be in the .INI file.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 18:22, 21 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Agreed, will do this. --[[User:Rick|Rick]] 15:28, 22 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== 33g memory.ini ==&lt;br /&gt;
&lt;br /&gt;
0x517A5D looked these up and put them on the 33g memory hacking page, but did not actually put them in here. He copied/pasted from 33f. Mistake? I looked up the dwarf fortress tag and used his values for the ones I could see on the other page he posted (33g memory hacking page) and updated them. It works for reveal, but it's missing FOCUSED_CREATURE and CREATURE_VECTOR because I can't find them.&lt;br /&gt;
--[[User:Paul|Paul]] 15:05, 22 December 2007 (CST)&lt;br /&gt;
:I just cross-referenced those 2 values with the 33f memory location page and updated them. Should work now, though I haven't tested. --[[User:Janus|Janus]] 16:27, 22 December 2007 (EST)&lt;br /&gt;
::The currently listed FOCUSED_CREATURE and CREATURE_VECTOR values don't appear to work. --[[User:Zurai|Zurai]] 22:20, 22 December 2007 (EST)&lt;br /&gt;
:::Hi Zurai.  Do to my blunder, there was a short period where those two values were incorrect.  You probably hit that window.  Check the values in your copy against the ones shown now.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:59, 22 December 2007 (EST)&lt;br /&gt;
::::Heal.exe and warp.exe (only when trying to warp a creature - warp to find the coords of a tile works fine) both give me &amp;quot;An error has occured: please select a unit in 'view units' mode&amp;quot; using FOCUSED_CREATURE=0x00C40540 and CREATURE_VECTOR=0x01427B60, which are the values listed at the time of this writing. I've redownloaded both executables and re-made the ini from scratch, copy-pasting the values from the 33g listing, and it still occurs. Is anyone else having the same issue? Maybe my computer doesn't like heal or warp any more. Reveal works fine, though. --[[User:Zurai|Zurai]] 18:45, 23 December 2007 (EST)&lt;br /&gt;
:::::I found the problem.  It was MENU_STATE.  Yes, anyone else who tried to use these utils would experience the same problem.  I have now edited the .33g memory.ini section again, and verified that warp.exe, heal.exe -hurt, and heal.exe all work.  I'm really, really sorry for the mess up.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:39, 23 December 2007 (EST)&lt;br /&gt;
::::::I'm having this pop up with the new memory.ini info for warp.exe: &amp;quot;An error has occured:failed to read block pointer for to block&amp;quot;.  --[[User:Corbine|Corbine]] 03:19, 24 December 2007 (EST)&lt;br /&gt;
:::::::Well, let's go down the checklist.  Due to a blunder on my part, the .33g memory.ini file was wrong for several hours.  One of the mistakes causes that error message.   Try deleting memory.ini and making a new one with the [[User:Rick#v0.27.169.33g|current data]].&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 14:29, 24 December 2007 (EST)&lt;br /&gt;
::::::::Deleted the memory.ini, made a new one and threw the new info into it, still same error. --[[User:Corbine|Corbine]] 01:28, 25 December 2007 (EST)&lt;br /&gt;
:::::::::Corbine, are you still experiencing this?  I just realized I've left this hanging for a week.  Sorry.  Okay, next.  Previous versions of warp have worked for you with previous versions of DF?  Do other of Rick's utilities work for you?  My tentative diagnosis is that &amp;lt;u&amp;gt;part&amp;lt;/u&amp;gt; of your INI file is wrong.  If the whole thing was wrong, it would merely complain that it was built for version .33e.  I don't know which particular key being wrong gives that error, and I don't have a .33g test fort at the moment, so I can't easily check right now.  But I could when I have time.  Really, I'm puzzled.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 03:47, 31 December 2007 (EST)&lt;br /&gt;
:Yes, mistake.  Arrgh.  I must have copied from the wrong editor window.  Thank you both.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 17:08, 22 December 2007 (EST)&lt;br /&gt;
::No worries, and thanks for posting the new memory locations in the first place. I personally was looking forward to that info so I could use reveal.exe to examine potential fortress locations in newly created 33g worlds, so it is much appreciated. --[[User:Janus|Janus]] 18:07, 22 December 2007 (EST)&lt;br /&gt;
::I was all excited when I saw the 33g info up, then went to paste it into my ini and realised the data was the same... I figured you just accidentally pasted the wrong thing in. The only thing I could figure out how to look up was the Dwarf Fortress tag location, so it is appreciated that you looked all the rest up. With the world generation changing, it's nice to have reveal available to search for new sites. [[User:Paul|Paul]] 21:20, 22 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
==38a==&lt;br /&gt;
&lt;br /&gt;
How would we update this? --[[User:Squeegy|Squeegy]] 20:22, 5 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we can start by finding the relevant mem locations for 88a&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[generic]&amp;lt;br /&amp;gt;&lt;br /&gt;
DWARF_FORTRESS=0x00C11218&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[address]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
MENU_STATE=&amp;lt;br /&amp;gt;&lt;br /&gt;
FOCUSED_CREATURE=&amp;lt;br /&amp;gt;.&lt;br /&gt;
CREATURE_VECTOR=&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_X=0x0092f288&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_Y=0x0092f28c&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_Z=0x0092f290&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_DATA=&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_X_COUNT=0x014929F0&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_Y_COUNT=0x014929F4&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_Z_COUNT=0x014929F8&amp;lt;br /&amp;gt;&lt;br /&gt;
STARTING_DWARF_COUNT=&amp;lt;br /&amp;gt;&lt;br /&gt;
STARTING_POINT_COUNT=&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
those are the easy ones.&lt;br /&gt;
if we had map data and confirmed that the offset was correct at least Reveal.exe would work but I'm out of time today.  --[[User:Shadetree|Shadetree]] 22:23, 6 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
I've found the other addresses. I won't guarantee that the offsets other than MAP_DATA_DESIGNATION_OFFSET, MAP_DATA_OCCUPANCY_OFFSET, and CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET are correct.&lt;br /&gt;
 [generic]&lt;br /&gt;
 DWARF_FORTRESS=0x00C11218&lt;br /&gt;
 &lt;br /&gt;
 [address]&lt;br /&gt;
 STARTING_POINT_COUNT=0x007AF4FA&lt;br /&gt;
 STARTING_DWARF_COUNT=0x007B0345&lt;br /&gt;
 MENU_STATE=0x0127599C&lt;br /&gt;
 FOCUSED_CREATURE=0x00C69888&lt;br /&gt;
 CREATURE_VECTOR=0x01450E98&lt;br /&gt;
 MOUSE_X=0x0092F288&lt;br /&gt;
 MOUSE_Y=0x0092F28C&lt;br /&gt;
 MOUSE_Z=0x0092F290&lt;br /&gt;
 MAP_DATA=0x014929CC&lt;br /&gt;
 MAP_X_COUNT=0x014929E4&lt;br /&gt;
 MAP_Y_COUNT=0x014929E8&lt;br /&gt;
 MAP_Z_COUNT=0x014929EC&lt;br /&gt;
 &lt;br /&gt;
 [offset]&lt;br /&gt;
 MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
 MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
 CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
 CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
 CREATURE_X_OFFSET=0x0094&lt;br /&gt;
 CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
 CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
If I understand how Rick's tools work, the offsets I've verified are the only offsets necessary.&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 20:05, 7 February 2008 (EST)&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User_talk:Rick&amp;diff=25134</id>
		<title>User talk:Rick</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User_talk:Rick&amp;diff=25134"/>
		<updated>2008-02-08T01:05:26Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* 38a */ full memory.ini for 0.27.173.38a&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requests ==&lt;br /&gt;
Hey there. Thanks for writing reveal.exe. It's made my dwarves' lives so much easier!&lt;br /&gt;
&lt;br /&gt;
Do you take requests?&lt;br /&gt;
&lt;br /&gt;
And is this the right place to ask? [[User:Runspotrun|Runspotrun]] 20:32, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Yes, and yes. --[[User:Rick|Rick]] 20:49, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Excellent! Now, I don't know how many people would use it, but I'd love to see a utility that would allow me to choose the temperature/forest/shrub/surroundings/neighbours when starting out. I like to stick to the same sort of areas, but it can be a pain finding them on the map - if they exist at all. Problem is, I think most people take what they're given, region-wise... so I don't think it'd have much of an audience. What do you think? [[User:Runspotrun|Runspotrun]] 20:55, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Er, I haven't just described startpoints.exe, have I? [[User:Runspotrun|Runspotrun]] 21:01, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Well, if you're not averse to requests...  A utility to activate the subterranean flag on indoor areas would be awesome for those of us who'd like to build surface castles in cold/freezing terrain without our dwarves dying of frostbite.  -[[User:EarthquakeDamage|EarthquakeDamage]] 22:45, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::I'd like a rock/gem/ore tool. Would be really neat. Especially the ore/gem one. Also, maybe water/magma creation tools if possible?--[[User:Spelguru|Spelguru]] 01:29, 11 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Something similar to the old skills.exe would be great! --[[User:Vanan|Vanan]] 11:44, 19 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::What I'd like is some way to search for a particular tile on the map.  Probably the easiest thing for you to code is to have reveal.exe have an option where it prints the map data to a file in some simple text format (Just a simple list of 'Z,X,Y &amp;quot;tile code&amp;quot;' would be sufficient.  mapping what tiles have what value would be nice, but not necessary.)  I want to answer the question &amp;quot;Is the raw material for the item the possessed dwarf is asking for somewhere on my map, and if so, where?&amp;quot;  --[[User:Warnold|Warnold]] 23:08, 9 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::I would like to request something that teleports items. --[[User:Demosthenes|Demosthenes]] 02:05, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Is it possible for a utility to remove excess stone? (name and amount in command line) --[[User:Jackard|Jackard]] 07:35, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Wild Praise ==&lt;br /&gt;
Thank you so much for your incredible work! Your applications add so much fun to the game! --[[User:Vanan|Vanan]] 13:56, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Astonishing response time for 33e!  --[[User:Geofferic|Geofferic]] 01:04, 9 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== In reply to ==&lt;br /&gt;
Your statement to me on my page, &amp;quot;Don't subject your opinion unto others. (Though I think you were just trying to be funny...) --Rick 03:54, 31 October 2007 (EDT)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Of course I was. But some people have no real sense of humor. &lt;br /&gt;
&lt;br /&gt;
Also, some people believe they can do things they tell others NOT to do. Your statement is a perfect example of this. You tell me not to subject others to MY opinion, but in doing so you are subjecting me to YOUR opinion. Oh yes, you are one of the VIPs in the DF community, because you wrote a couple utilities. So I suppose I should be humble in your presence, and bow to someone so great. I would do that, but when I bow, I do it facing AWAY from that person, and I drop my trousers at the same time. Still want me to bow to your greatness?&lt;br /&gt;
&lt;br /&gt;
I read other contributions here that voice their opinions the same as I did. I wonder if you said the same thing to all of them as well? Tho since I was able to read the pages they wrote, you clearly did not delete their words as you did mine. And while other entries I made were either deleted or edited, as I expected them to be, since I am not a great wiki writer, you were the only one to send me a somewhat nasty note. &lt;br /&gt;
&lt;br /&gt;
Think whatever you like of me, but at least I was contributing, and trying to give a few smiles along the way. Seems to me tho, that DF is fun, and it's wiki should be too. And, from other pages I read, others feel the same way I do. Maybe you should take a look around at some of their pages, and lighten up yourself a bit? Maybe trade with the elves for a tame blue jay, and drop it down your shorts. If that doesnt get a giggle out of you, maybe you should go join the undead at one of their ruins?&lt;br /&gt;
&lt;br /&gt;
: Wow, way to blow up that up, I was just jesting. I think I'll leave your words here, [[User:Darknight|Darknight]]. --[[User:Rick|Rick]] 19:25, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Oh, and for the record, I did not remove your message, someone else did that. Check the page history. --[[User:Rick|Rick]] 19:29, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== heal.exe bug? ==&lt;br /&gt;
&lt;br /&gt;
Hmm... I've found that heal -hurt doesn't work on fire men, at least in 33b. It sets all their body parts to red, but the fire man just keeps wandering around and scaring my poor witless dwarves. I haven't found a living fire man yet in 33c so I can't check. [[User:Runspotrun|Runspotrun]] 06:59, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Are firemen immune to pain? Hurt just nukes bodyparts, not kills creatures, most creatures who feel pain will die from that, but I guess ones who don't won't. --[[User:Rick|Rick]] 12:08, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Just checked - yes they are. That'd explain it then, ta. [[User:Runspotrun|Runspotrun]] 14:38, 28 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== INI? ==&lt;br /&gt;
&lt;br /&gt;
Does anyone see anything obviously wrong about this? I used various comparisons to come to these values (as well as what the hex fellow posted in the memory hacking section), and editing them as such into the reveal.exe allowed me to get that program to function, but the ini isn't reenabling the executables on its own:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[address]&lt;br /&gt;
DWARF_FORTRESS=0x0089C414 ; correct&lt;br /&gt;
MENU_STATE=0x0124565C ; maybe&lt;br /&gt;
FOCUSED_CREATURE=0x00C39548 ; correct&lt;br /&gt;
CREATURE_VECTOR=0x01420A48 ; correct&lt;br /&gt;
MOUSE_X=0x008FF290 ; pretty sure should be 008FF288&lt;br /&gt;
MOUSE_Y=0x008FF294 ; pretty sure should be 008FF28C&lt;br /&gt;
MOUSE_Z=0x008FF298 ; pretty sure should be 008FF290&lt;br /&gt;
MAP_DATA=0x01462568 ; correct&lt;br /&gt;
MAP_X_COUNT=0x01462580 ; correct&lt;br /&gt;
MAP_Y_COUNT=0x01462584 ; correct&lt;br /&gt;
MAP_Z_COUNT=0x01462588 ; correct&lt;br /&gt;
STARTING_DWARF_COUNT=0x0078A54E ; wrong.  0078A554 (value actually is dword at 0078A555)&lt;br /&gt;
STARTING_POINT_COUNT=0x00789703 ; correct (value actually is word at 0078970A)&lt;br /&gt;
&lt;br /&gt;
[offset]&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260 ; dunno&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660 ; dunno&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000 ; yes&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308 ; probably&lt;br /&gt;
CREATURE_X_OFFSET=0x0094 ; probably&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096 ; probably&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098 ; probably&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:Qalnor|Qalnor]] 14:05, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
I commented the above.  none of the corrections should affect reveal.  I don't know what's going wrong.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 19:53, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: I made a few mistakes when documenting the existing data, which probably threw you guys off. My user page has been updated for 33f. --[[User:Rick|Rick]] 20:41, 16 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:: Thanks, to both of you. I'll have to go over what I was doing when I get home to try and see where I was going wrong.  [[User:Qalnor|Qalnor]] 15:11, 17 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Possible adjuststart enhancement ==&lt;br /&gt;
Hi!  Merry culturally-appropriate politically-correct generic holiday!&lt;br /&gt;
&lt;br /&gt;
I have found some interesting addresses that work well with adjuststart.&lt;br /&gt;
&lt;br /&gt;
In .33f, the byte at 0078654B holds a constant that is the upper limit that starting skills can be advanced to.  It is normally 5 (proficient).  If you change it to 15, skills can be advanced to legendary.  If you change it to 20, skills can be advanced to legendary+5.&lt;br /&gt;
&lt;br /&gt;
Also in .33f, there's a pair of bytes at 00786466 and 00786608.  If you set both to 0, then the 10 skills per dwarf limit is removed.&lt;br /&gt;
&lt;br /&gt;
I've found equivalant addresses for all the .33 releases.  They're in the memory hacking subpages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;—Preceding unsigned comment added by [[User:0x517A5D|0x517A5D]] ([[User talk:0x517A5D|talk]]{{!}}[[Special:Contributions/0x517A5D|contribs]]) {{{2|}}}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Did I not sign that?  Oops.  Well, I was tired.  Thank you, VengefulDonut.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:02, 19 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::Very cool, I'll probably add these for the next release then. --[[User:Rick|Rick]] 04:18, 20 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Update of utilities ==&lt;br /&gt;
&lt;br /&gt;
So how much longer do you suppose it might take to transition the utilities to 33f?--[[User:Heliopios|Heliopios]] 13:04, 19 December 2007 (EST)&lt;br /&gt;
:With the .ini method there isnt really a need to rebuild the utilities for 32f. [[User:VengefulDonut|VengefulDonut]] 15:25, 19 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:And how exactly do you use memory.ini?  I've created a new ini file (yes, it's a .ini, not a .ini.txt) and pasted everything under [code] tags for .33f, and lugged it into the dir. with the required executable (heal.exe in this case) but when I run it it still says it was built for .33e. Should I put it somewhere else?  In any case, instructions for use are either inexistent or pretty well hidden here in the wiki.&lt;br /&gt;
:Cheers. [[User:N35t0r|N35t0r]] 21:45, 19 December 2007 (EST)&lt;br /&gt;
::Did you name it &amp;quot;memory.ini&amp;quot;? This worked for me with reveal.exe [[User:VengefulDonut|VengefulDonut]] 01:52, 20 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Possible INI file syntax change ==&lt;br /&gt;
&lt;br /&gt;
I would like to suggest a change to the format of MEMORY.INI.  Instead of the [generic], [address], and [offset] sections (which in my opinion buy you nothing), I would suggest using sections keyed off the PE header timestamp.  (You have previously indicated that you plan to convert to that method anyway.)  So a sample .INI file might look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;; .33e&lt;br /&gt;
[475B7526]&lt;br /&gt;
MENU_STATE=0x01244654&lt;br /&gt;
FOCUSED_CREATURE=0x00C38540&lt;br /&gt;
CREATURE_VECTOR=0x0141FA40&lt;br /&gt;
MOUSE_X=0x008FE288&lt;br /&gt;
MOUSE_Y=0x008FE28C&lt;br /&gt;
MOUSE_Z=0x008FE290&lt;br /&gt;
MAP_DATA=0x01461560&lt;br /&gt;
MAP_X_COUNT=0x01461578&lt;br /&gt;
MAP_Y_COUNT=0x0146157C&lt;br /&gt;
MAP_Z_COUNT=0x01461580&lt;br /&gt;
STARTING_DWARF_COUNT=0x007893C5&lt;br /&gt;
STARTING_POINT_COUNT=0x0078857A&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
&lt;br /&gt;
; .33f&lt;br /&gt;
[4763710C]&lt;br /&gt;
MENU_STATE=0x0124565C&lt;br /&gt;
FOCUSED_CREATURE=0x00C39548&lt;br /&gt;
CREATURE_VECTOR=0x01420A48&lt;br /&gt;
MOUSE_X=0x008FF288&lt;br /&gt;
MOUSE_Y=0x008FF28C&lt;br /&gt;
MOUSE_Z=0x008FF290&lt;br /&gt;
MAP_DATA=0x01462568&lt;br /&gt;
MAP_X_COUNT=0x01462580&lt;br /&gt;
MAP_Y_COUNT=0x01462584&lt;br /&gt;
MAP_Z_COUNT=0x01462588&lt;br /&gt;
STARTING_DWARF_COUNT=0x0078A555&lt;br /&gt;
STARTING_POINT_COUNT=0x0078970A&lt;br /&gt;
MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
CREATURE_X_OFFSET=0x0094&lt;br /&gt;
CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
CREATURE_Z_OFFSET=0x0098&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main reason to do this is to allow data for multiple versions to be in the .INI file.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 18:22, 21 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Agreed, will do this. --[[User:Rick|Rick]] 15:28, 22 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== 33g memory.ini ==&lt;br /&gt;
&lt;br /&gt;
0x517A5D looked these up and put them on the 33g memory hacking page, but did not actually put them in here. He copied/pasted from 33f. Mistake? I looked up the dwarf fortress tag and used his values for the ones I could see on the other page he posted (33g memory hacking page) and updated them. It works for reveal, but it's missing FOCUSED_CREATURE and CREATURE_VECTOR because I can't find them.&lt;br /&gt;
--[[User:Paul|Paul]] 15:05, 22 December 2007 (CST)&lt;br /&gt;
:I just cross-referenced those 2 values with the 33f memory location page and updated them. Should work now, though I haven't tested. --[[User:Janus|Janus]] 16:27, 22 December 2007 (EST)&lt;br /&gt;
::The currently listed FOCUSED_CREATURE and CREATURE_VECTOR values don't appear to work. --[[User:Zurai|Zurai]] 22:20, 22 December 2007 (EST)&lt;br /&gt;
:::Hi Zurai.  Do to my blunder, there was a short period where those two values were incorrect.  You probably hit that window.  Check the values in your copy against the ones shown now.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:59, 22 December 2007 (EST)&lt;br /&gt;
::::Heal.exe and warp.exe (only when trying to warp a creature - warp to find the coords of a tile works fine) both give me &amp;quot;An error has occured: please select a unit in 'view units' mode&amp;quot; using FOCUSED_CREATURE=0x00C40540 and CREATURE_VECTOR=0x01427B60, which are the values listed at the time of this writing. I've redownloaded both executables and re-made the ini from scratch, copy-pasting the values from the 33g listing, and it still occurs. Is anyone else having the same issue? Maybe my computer doesn't like heal or warp any more. Reveal works fine, though. --[[User:Zurai|Zurai]] 18:45, 23 December 2007 (EST)&lt;br /&gt;
:::::I found the problem.  It was MENU_STATE.  Yes, anyone else who tried to use these utils would experience the same problem.  I have now edited the .33g memory.ini section again, and verified that warp.exe, heal.exe -hurt, and heal.exe all work.  I'm really, really sorry for the mess up.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 22:39, 23 December 2007 (EST)&lt;br /&gt;
::::::I'm having this pop up with the new memory.ini info for warp.exe: &amp;quot;An error has occured:failed to read block pointer for to block&amp;quot;.  --[[User:Corbine|Corbine]] 03:19, 24 December 2007 (EST)&lt;br /&gt;
:::::::Well, let's go down the checklist.  Due to a blunder on my part, the .33g memory.ini file was wrong for several hours.  One of the mistakes causes that error message.   Try deleting memory.ini and making a new one with the [[User:Rick#v0.27.169.33g|current data]].&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 14:29, 24 December 2007 (EST)&lt;br /&gt;
::::::::Deleted the memory.ini, made a new one and threw the new info into it, still same error. --[[User:Corbine|Corbine]] 01:28, 25 December 2007 (EST)&lt;br /&gt;
:::::::::Corbine, are you still experiencing this?  I just realized I've left this hanging for a week.  Sorry.  Okay, next.  Previous versions of warp have worked for you with previous versions of DF?  Do other of Rick's utilities work for you?  My tentative diagnosis is that &amp;lt;u&amp;gt;part&amp;lt;/u&amp;gt; of your INI file is wrong.  If the whole thing was wrong, it would merely complain that it was built for version .33e.  I don't know which particular key being wrong gives that error, and I don't have a .33g test fort at the moment, so I can't easily check right now.  But I could when I have time.  Really, I'm puzzled.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 03:47, 31 December 2007 (EST)&lt;br /&gt;
:Yes, mistake.  Arrgh.  I must have copied from the wrong editor window.  Thank you both.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 17:08, 22 December 2007 (EST)&lt;br /&gt;
::No worries, and thanks for posting the new memory locations in the first place. I personally was looking forward to that info so I could use reveal.exe to examine potential fortress locations in newly created 33g worlds, so it is much appreciated. --[[User:Janus|Janus]] 18:07, 22 December 2007 (EST)&lt;br /&gt;
::I was all excited when I saw the 33g info up, then went to paste it into my ini and realised the data was the same... I figured you just accidentally pasted the wrong thing in. The only thing I could figure out how to look up was the Dwarf Fortress tag location, so it is appreciated that you looked all the rest up. With the world generation changing, it's nice to have reveal available to search for new sites. [[User:Paul|Paul]] 21:20, 22 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
==38a==&lt;br /&gt;
&lt;br /&gt;
How would we update this? --[[User:Squeegy|Squeegy]] 20:22, 5 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we can start by finding the relevant mem locations for 88a&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[generic]&amp;lt;br /&amp;gt;&lt;br /&gt;
DWARF_FORTRESS=0x00C11218&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[address]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
MENU_STATE=&amp;lt;br /&amp;gt;&lt;br /&gt;
FOCUSED_CREATURE=&amp;lt;br /&amp;gt;.&lt;br /&gt;
CREATURE_VECTOR=&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_X=0x0092f288&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_Y=0x0092f28c&amp;lt;br /&amp;gt;&lt;br /&gt;
MOUSE_Z=0x0092f290&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_DATA=&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_X_COUNT=0x014929F0&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_Y_COUNT=0x014929F4&amp;lt;br /&amp;gt;&lt;br /&gt;
MAP_Z_COUNT=0x014929F8&amp;lt;br /&amp;gt;&lt;br /&gt;
STARTING_DWARF_COUNT=&amp;lt;br /&amp;gt;&lt;br /&gt;
STARTING_POINT_COUNT=&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
those are the easy ones.&lt;br /&gt;
if we had map data and confirmed that the offset was correct at least Reveal.exe would work but I'm out of time today.  --[[User:Shadetree|Shadetree]] 22:23, 6 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
I've found the other addresses. I won't guarantee that the offsets other than MAP_DATA_DESIGNATION_OFFSET, MAP_DATA_OCCUPANCY_OFFSET, and CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET are correct.&lt;br /&gt;
 [generic]&lt;br /&gt;
 DWARF_FORTRESS=0x00C11218&lt;br /&gt;
 &lt;br /&gt;
 [address]&lt;br /&gt;
 STARTING_POINT_COUNT=0x007AF4FA&lt;br /&gt;
 STARTING_DWARF_COUNT=0x007B0345&lt;br /&gt;
 MENU_STATE=0x0127599C&lt;br /&gt;
 FOCUSED_CREATURE=0x00C69888&lt;br /&gt;
 CREATURE_VECTOR=0x01450E9C&lt;br /&gt;
 MOUSE_X=0x0092F288&lt;br /&gt;
 MOUSE_Y=0x0092F28C&lt;br /&gt;
 MOUSE_Z=0x0092F290&lt;br /&gt;
 MAP_DATA=0x014929CC&lt;br /&gt;
 MAP_X_COUNT=0x014929E4&lt;br /&gt;
 MAP_Y_COUNT=0x014929E8&lt;br /&gt;
 MAP_Z_COUNT=0x014929EC&lt;br /&gt;
 &lt;br /&gt;
 [offset]&lt;br /&gt;
 MAP_DATA_DESIGNATION_OFFSET=0x0260&lt;br /&gt;
 MAP_DATA_OCCUPANCY_OFFSET=0x660&lt;br /&gt;
 CREATURE_NAME_OFFSET=0x000&lt;br /&gt;
 CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308&lt;br /&gt;
 CREATURE_X_OFFSET=0x0094&lt;br /&gt;
 CREATURE_Y_OFFSET=0x0096&lt;br /&gt;
 CREATURE_Z_OFFSET=0x0098&lt;br /&gt;
If I understand how Rick's tools work, the offsets I've verified are the only offsets necessary.&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 20:05, 7 February 2008 (EST)&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d_Talk:Utilities&amp;diff=11806</id>
		<title>40d Talk:Utilities</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d_Talk:Utilities&amp;diff=11806"/>
		<updated>2008-02-08T00:14:12Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* Patching Lavasquare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== AutoHotKey ==&lt;br /&gt;
&lt;br /&gt;
Should autohotkey be added as a utility tool for dwarf fortress? I know a few forum users have used it to do repetitive tasks like room designations, maybe it could have its own page and a few dwarf fortress specific script?--[[User:Thehunterunseen|Thehunterunseen]] 20:43, 31 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
:Ive been looking for a macro program that works within dwarf fortress and thats free. Havent found a good program thats the combination of both. What do you use? --[[User:Mizipzor|Mizipzor]] 20:51, 31 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::autohotkey &amp;lt;sup&amp;gt;[http://www.autohotkey.com/]&amp;lt;/sup&amp;gt; is a program like that --[[User:Thehunterunseen|Thehunterunseen]] 21:13, 31 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
:::That was the program I used. Wierd. For me, when I inputed &amp;quot;6&amp;quot; for moving one step right... it moved like 8 steps right or something. Couldnt figure out why. Any ideas? --[[User:Mizipzor|Mizipzor]] 22:57, 31 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::::I know that {{k|shift}} + {{k|→}} = 10&amp;amp;times;{{k|→}}. Could that have something to do with it? --[[User:Savok|Savok]] 23:17, 31 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
:::::I use &amp;quot;Send {LeftArrow}{Enter}{Enter}&amp;quot;, as a test to simply have the wall/floor im building to be placed one step to the right instead of where the cursor actually is. As previously said, however, it didnt work. --[[User:Mizipzor|Mizipzor]] 07:05, 1 November 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::::::That might be because the {LeftArrow} part isn't right. It's supposed to be just {Left}. I've downloaded the program myself and am not having any issues with it in DF.. I'm running XP, and use it in fullscreen mode, if that helps any. --[[User:Hesitris|Hesitris]] 18:53, 12 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: So could some people who actually know some autohotkey scripts make an article and  submit some? --[[User:Thehunterunseen|Thehunterunseen]] 13:37, 6 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::I use it and more or less know how it works but as soon as I use it inside DF it bugs out completely and I have no idea why. --[[User:Mizipzor|Mizipzor]] 17:56, 6 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:::I have a number of scripts that I use, but they randomly bug out for no apparent reason.  They will work fine in notepad (ie, output everything exactly as I expect), but be only partially executing and then failing in DF.  Again, sometimes they work fine.  I could post them and how they work if someone wants.  FYI, I am on Vista and that may be an issue.  --[[User:Geofferic|Geofferic]] 02:39, 19 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::::I'm not sure how CPU cycles and the buffer interact in Vista.  Is your FPS low?  Perhaps a key is dropping out of the buffer but DF isn't recognizing it due to lag?  Or lag might be making the buffer overflow.  It might depend on how autohotkey sends keystrokes, I don't know if it simulates a key press or directly input ssomething into the buffer.  You could try a small sleep(50), or the equivalent, in autohotkey and see if that helps.  Also, make sure it isn't losing focus for some reason due to background programs (although that would be strange) -Gotthard&lt;br /&gt;
&lt;br /&gt;
:::::I think it's a lag issue in DF.  I've yet to figure out exactly what is causing lag for me.  I think it's pathing with too many dwarfs and too complex of a hallway system over too many Z levels.  Also, I think playing very large maps causes me to lag, as well, but I think that's related to the pathing problem and all those other creatures trying to path.  It definitely got better in this version, tho.  I will hold off on trying to say definitively what's up with AuthoHotkey until after the next patch.  --[[User:Geofferic|Geofferic]] 03:50, 21 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::::::AHK does tend to do wierd stuff in DF, but most of it is predictable. A lot of wierd errors that make no sense can be fixed by explicitely telling the script to focus on the Dwarf Fortress window, as well as generous Sleep statements. I found while rewalling a 30x30 outline, sleep 100 worked fine for the first two sides but posted about half of the second two. Sleep 150 placed the second two somewhat erraticly. Sleep 200 got the second two just fine. --[[User:Knivesu|Knivesu]] 10:22, 23 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Dwarf Foreman ==&lt;br /&gt;
&lt;br /&gt;
:Foreman is looking at the wrong address for the units... which is not a good sign, since I've seen it in the address it seems to be looking at.  I've also seen it bounce around.  Definitely not a good sign if the list location isn't static.  Or we're just looking at the wrong one completely. --[[User:AzureLightning|AzureLightning]]&lt;br /&gt;
&lt;br /&gt;
It's pretty easy to find the addresses for this for new versions. Running the program in the directory with the new version gives you the check= value, and the others are moderately easy to suss. Also, I don't know exactly how it works or why it works, but from C-&amp;gt;D-&amp;gt;E start and pos were incremented 0x1000 each version, so laziness dictates trying that in future. [[User:Qalnor|Qalnor]] 16:37, 9 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Yourfilehost ==&lt;br /&gt;
&lt;br /&gt;
Yourfilehost.com has kind of a lousy reputation, and I can confirm it's blocked on certain college networks.  Could someone upload these utilities to a more reputable host? -- Mzbundifund 15:55, 04 November 2007 (EDT)&lt;br /&gt;
: Such as? --[[User:Rick|Rick]] 18:03, 4 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
==heal.exe==&lt;br /&gt;
&lt;br /&gt;
heal.exe does not regrow missing limbs.  However, &amp;quot;heal -hurt&amp;quot; on the command line brings missing limbs to red status, and &amp;quot;heal&amp;quot; thereafter restores the being to full health.&lt;br /&gt;
&lt;br /&gt;
I propose a -regrow parameter so we don't have to do this workaround, since if it's possible to bring missing limbs from dark grey to red status it's also possible to grow them back.&lt;br /&gt;
&lt;br /&gt;
Also, when using the -hurt parameter, it still says &amp;quot;059E7210 had 31 body parts '''healed'''&amp;quot;, when it should probably say &amp;quot;wounded&amp;quot;. --[[User:JT|JT]] 17:58, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: Hmm, if it does heal missing limbs then I just need to change my logic slightly for healing. --[[User:Rick|Rick]] 19:01, 10 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
==reveal.exe==&lt;br /&gt;
&lt;br /&gt;
From what I've tested, reveal for 33a does not work for 33b. --[[User:Sparksol|Sparksol]] 13:39, 17 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:Correct.  It uses hardcoded offsets, which will change every time new code is added to DF.&lt;br /&gt;
:I have a version hacked for .33b, which I will not distribute out of respect for Rick.&lt;br /&gt;
:However, if you are skilled with a hex editor, here's what to do: change the first 5 occurances of the pattern 85 45 01 to the pattern 95 45 01.  (The 6th occurance of the pattern is a coincidental match and should not be changed.)  Then change the pattern 8C 33 89 00 to the pattern 8C 43 89 00.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 02:31, 19 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:Actually, as it happens, it looks like Rick has produced updated versions of his tools for .33b.  They were built on the 16th.  However he hasn't linked to them.  I don't know why.  The URL they're at requests that no links be made to them, so I'm not going to tell you. Sorry, you'll just have to do the hexedit.&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 02:45, 19 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:I just havn't mirrored them yet, that's all. --[[User:Rick|Rick]] 03:10, 19 November 2007 (EST)&lt;br /&gt;
::Hey, I'm curious why the file sizes ballooned.  Reveal went from 52k to 101k, a doubling in size.  Heal grew even more.  Maybe you didn't strip debugging info?&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 15:42, 19 November 2007 (EST)&lt;br /&gt;
:::Usage of std libraries mostly. I made a library for working with DF so I wouldn't have to keep duplicating code through projects, and when writing it I figured I might as well make it more friendly for me to code in, hence usage of std:: stuff. --[[User:Rick|Rick]] 19:00, 19 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:Whenever I try to open reveal.exe, the window will open up for a millisecond and then immedietely close. Is this a problem with the program or my windows? I am assuming its windows since everyone else seems to be able to use it. Has anyone else had this problem?--[[User:Varsashi|Varsashi]] 17:59, 26 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
::It hasn't been updated to work with 33c, and doesn't. Hopefully it will be updated soon. If you're using 33b, it should open and close quickly but reveal all allocated squares. To allocate all squares for revealing, I'll repeat the advice I've seen elsewhere: go to the lowest level and designate the entire level for digging, then remove the dig designation and run the reveal utility. --[[User:Janus|Janus]] 20:08, 26 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
So how do people feel about deleting this section, and probably the heal.exe section above too?&amp;lt;br/&amp;gt;&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 00:56, 23 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
==How to use warp.exe?==&lt;br /&gt;
How do you use warp.exe? There's no information on how to use these on the page.--[[User:Demosthenes|Demosthenes]] 02:10, 21 November 2007 (EST)&lt;br /&gt;
: &amp;lt;code&amp;gt;warp.exe&amp;lt;/code&amp;gt; by itself will list your current cursor position. After you have the position you want to warp a creature to, you do &amp;lt;code&amp;gt;warp.exe &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt;&amp;lt;/code&amp;gt; as arguments, and it will warp the selected creature (selected with 'V'iew) to that destination, if it can. --[[User:Rick|Rick]] 18:10, 21 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
==StartProfile==&lt;br /&gt;
Perhaps, I don't understand how to use this correctly.  I'm using 33e, and the StartProfile linked in the Utils section.  I'm supposed to use this util at the Prepare for the Journey screen, correct?  I tried testing the export function with the first dwarf, with no skills assigned.  startprofile.exe -x 0 test.txt What I got back was:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Mining: 1348403210&amp;lt;br/&amp;gt;&lt;br /&gt;
Wood Cutter: 1565676876&amp;lt;br/&amp;gt;&lt;br /&gt;
Carpenter: 3801123&amp;lt;br/&amp;gt;&lt;br /&gt;
Engraving: 34079120&amp;lt;br/&amp;gt;&lt;br /&gt;
Record Keepe: 2293770&amp;lt;br/&amp;gt;&lt;br /&gt;
Liar: 34341293&amp;lt;br/&amp;gt;&lt;br /&gt;
Intimidator: 16843009&amp;lt;br/&amp;gt;&lt;br /&gt;
Conversationalist: 16843009&amp;lt;br/&amp;gt;&lt;br /&gt;
Comedian: 16843009&amp;lt;br/&amp;gt;&lt;br /&gt;
Flatterer: 16843009&amp;lt;br/&amp;gt;&lt;br /&gt;
Consoler: 16843009&amp;lt;br/&amp;gt;&lt;br /&gt;
Pacifier: 16843009&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
When I try to set a dwarf's skills using StartProfile I end up with huge amounts of either negative or positive points available, with no changes being made to the dwarf's skills.  &amp;lt;br/ &amp;gt;--[[User:Stu72|Stu72]] 09:23, 11 December 2007 (EST)&lt;br /&gt;
: The offset for the skills must have changed. I guess I should've actually checked that, and not have assumed that just because the other values were correct, the skills were still correct. I'll check it out and post the appropriate fix. -- [[User:Jifodus|Jifodus]]&lt;br /&gt;
: The appropriate fix is redownloading it, when I hex edited the exe I messed it up field. -- [[User:Jifodus|Jifodus]]&lt;br /&gt;
:: Thanks, works beautifully.  It's a terrific time saver. --[[User:Stu72|Stu72]] 15:30, 14 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
How does one use this? The readme isn't very helpful. --[[User:Jackard|Jackard]] 01:08, 27 November 2007 (EST)&lt;br /&gt;
: Not knowing exactly what you're having trouble understanding, I'll give examples (the one thing I forgot to add in the readme).&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;startprofile 0 Miner.txt&amp;lt;/code&amp;gt; - This will set the skill profile of the first Dwarf, in the list of units, to the skills in Miner.txt&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;startprofile 1 Jeweler.txt&amp;lt;/code&amp;gt; - This will set the skills on the second Dwarf, in the list of units, to the skills in Jeweler.txt&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;startprofile -x 3 Customprofile.txt&amp;lt;/code&amp;gt; - This will save the set of skills on the fourth Dwarf to Customprofile.txt&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;startprofile -v0.27.169.33b 0 Miner.txt&amp;lt;/code&amp;gt; Same as the first example, except it'll work on the previous version of Dwarf Fortress.&amp;lt;br /&amp;gt;-- [[User:Jifodus|Jifodus]] 03:28, 27 November 2007 (EST)&lt;br /&gt;
::Thanks, I'll try that out. --[[User:Jackard|Jackard]] 21:21, 27 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
If you wish to edit the executable, you can modify it so that it works with 0.27.169.33d by making the following changes with a hex editor:&lt;br /&gt;
 Offset   Overwrite With&lt;br /&gt;
 ----------------------------&lt;br /&gt;
  2A530 | 98 16 25 01 04 00 00 00 DC 00 00 00 F0 08 00 00 70 00 00 00 C0 01 00 00&lt;br /&gt;
  2A6A6 | 30 2E 32 37 2E 31 36 39 2E 33 33 64&lt;br /&gt;
  2A77C | 02&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 20:14, 3 December 2007 (EST)&lt;br /&gt;
:CBW; PUSH SS; AND EAX, 00000401h; ADD AH, BL; ADD [EAX], AL; ...  &lt;br /&gt;
:That makes no sense.  Must be missing something off the head end.&lt;br /&gt;
:3 unknown bytes; ADD [EAX+EAX], EAX; ...  No better.  Worse, even.&lt;br /&gt;
:4 unknown bytes; ADD AL, 00h; ADD [EAX], AL; ...  Unh uh.  Don't think so.&lt;br /&gt;
:8 unknown bytes; ESC-4(00); ...  Floating point?  Really?  No way.&lt;br /&gt;
:12 unknown bytes; LOCK OR [EAX], AL ...  Insane.&lt;br /&gt;
:I don't know what those bytes are, but they're not code.&amp;amp;mdash;[[User:0x517A5D|0x517A5D]] 23:23, 3 December 2007 (EST)&lt;br /&gt;
::You're right, they're data. First Row is (left to right, 5 dwords): [[User:Jifodus/Memory research#Addresses_3|Start Address]], Offset from address at start address, Dwarf List begin offset, Starting points offset, Skills offset, remaining skill points points. Second row is a character string (15 chars max). Third row is a dword indicating which data index is default.&lt;br /&gt;
:: &amp;lt;tt&amp;gt;//Start Addr, O, Lizt, Ponts, Skll, Remain&amp;lt;/tt&amp;gt; &lt;br /&gt;
:: &amp;lt;tt&amp;gt;{ 0x01251698, 4, 0xDC, 0x8F0, 0x70, 0x1C0 }&amp;lt;/tt&amp;gt; - The read/write locations and whatnot&lt;br /&gt;
:: &amp;lt;tt&amp;gt;&amp;quot;0.27.169.33d&amp;quot;&amp;lt;/tt&amp;gt; - Used for string comparison (-v flag)&lt;br /&gt;
:: &amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt; - The default version to use is the third in the list (what the above just added).&lt;br /&gt;
:: Configuration data can be found between 'DATA_SET' and 'TES_ATAD'. The list has enough space for 16 versions (3 are now in use). I'll just say I didn't want to have to recompile it for all the versions -- [[User:Jifodus|Jifodus]] 21:52, 6 December 2007 (EST)&lt;br /&gt;
If you wish to edit the executable, you can modify it so that it works with 0.27.169.33e by making the following changes with a hex editor:&lt;br /&gt;
 Offset   Overwrite With&lt;br /&gt;
 ----------------------------&lt;br /&gt;
  2A550 |&amp;quot;98 26 25 01&amp;quot;04 00 00 00 DC 00 00 00 F0 08 00 00 70 00 00 00 C0 01 00 00&lt;br /&gt;
  2A6B5 | 30 2E 32 37 2E 31 36 39 2E 33 33&amp;quot;65&amp;quot;&lt;br /&gt;
  2A77C |&amp;quot;03&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Patching Lavasquare ==&lt;br /&gt;
&lt;br /&gt;
Due to someone being interested in running lavasquare on version 33g, I determined how to patch the exe to work with later versions. With a hex editor, open lavasquare.exe and find and replace with appropriate values (replace the X's with the values underneath for the version you want). I only tested it for 33f, but I'm assuming that the values for 33g are correct (since I got them off the wiki).&lt;br /&gt;
&lt;br /&gt;
 (CursorX)&lt;br /&gt;
 FIND:		EE 57 68 88 E2 8F 00 FF 35&lt;br /&gt;
 REPLACE:	EE 57 68 XX XX XX 0X FF 35&lt;br /&gt;
 33f		         88 F2 8F  0&lt;br /&gt;
 33g		         88 62 90  0&lt;br /&gt;
 38a		         88 F2 92  0&lt;br /&gt;
&lt;br /&gt;
 (CursorY)&lt;br /&gt;
 FIND:		EC 57 68 8C E2 8F 00 FF 35&lt;br /&gt;
 REPLACE:	EC 57 68 XX XX XX 0X FF 35&lt;br /&gt;
 33f		         8C F2 8F  0&lt;br /&gt;
 33g		         8C 62 90  0&lt;br /&gt;
 38a		         8C F2 92  0&lt;br /&gt;
&lt;br /&gt;
 (CursorZ)&lt;br /&gt;
 FIND:		E6 57 68 90 E2 8F 00 FF 35&lt;br /&gt;
 REPLACE:	E6 57 68 XX XX XX 0X FF 35&lt;br /&gt;
 33f		         90 F2 8F  0&lt;br /&gt;
 33g		         90 62 90  0&lt;br /&gt;
 38a		         80 F2 92  0&lt;br /&gt;
&lt;br /&gt;
 (MapBlocks)&lt;br /&gt;
 FIND:		FC 57 68 60 15 46 01 FF 35&lt;br /&gt;
 REPLACE:	FC 57 68 XX XX XX 0X FF 35&lt;br /&gt;
 33f		         68 25 46  1&lt;br /&gt;
 33g		         80 96 46  1&lt;br /&gt;
 38a		         CC 29 49  1&lt;br /&gt;
&lt;br /&gt;
 (To exit immediately after writing, since I don't want to&lt;br /&gt;
 verify the other offsets)&lt;br /&gt;
 FIND:		FF 35 5C 80 40 00 E8 88 61 00 00 0F BF 7D&lt;br /&gt;
 		F8 57 0F BF 7D FA 57 8B 7D FC 81 C7 60 06&lt;br /&gt;
 		00 00&lt;br /&gt;
 REPLACE:	FF 35 5C 80 40 00 E8 88 61 00 00 6A FF FF&lt;br /&gt;
 		25 6C B1 40 00 CC CC CC CC CC CC CC CC CC&lt;br /&gt;
 		CC CC&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 02:05, 25 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
To modify the above for the same behavior as water:&lt;br /&gt;
 FIND:		07 00 20 00&lt;br /&gt;
 REPLACE:	07 00 00 00&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 17:09, 29 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
Addresses for 0.27.173.38a:&lt;br /&gt;
 CursorX 0x0092F288&lt;br /&gt;
 CursorY 0x0092F28C&lt;br /&gt;
 CursorZ 0x0092F290&lt;br /&gt;
 MapBlocks 0x014929CC&lt;br /&gt;
Offsets are still the same.&lt;br /&gt;
-- [[User:Jifodus|Jifodus]] 19:14, 7 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== Lavasquare Popup? ==&lt;br /&gt;
&lt;br /&gt;
How do I remove the prompt? It is a painful thing for large projects. The macro below helps some, though. --[[User:Jackard|Jackard]] 08:05, 4 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
 #Persistent&lt;br /&gt;
 SetTimer, CloseLava, 100&lt;br /&gt;
 return&lt;br /&gt;
 &lt;br /&gt;
 CloseLava:&lt;br /&gt;
 WinClose, lcc runtime&lt;br /&gt;
 return&lt;br /&gt;
 &lt;br /&gt;
 del::&lt;br /&gt;
 IfWinActive Dwarf Fortress&lt;br /&gt;
 {&lt;br /&gt;
   send {down}&lt;br /&gt;
   run C:\Program Files\Dwarf Fortress\Utilities\lavasquare 33g.exe&lt;br /&gt;
   return&lt;br /&gt;
 }&lt;br /&gt;
 else&lt;br /&gt;
 {&lt;br /&gt;
   send {del}&lt;br /&gt;
   return&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Lavasquare ==&lt;br /&gt;
&lt;br /&gt;
Why does it seemingly stop working after a while? It runs but summons no magma/lava. --[[User:Spelguru|Spelguru]] 12:28, 18 January 2008 (EST)&lt;br /&gt;
:No idea, never run into the problem though I've used it quite thoroughly. --[[User:Jackard|Jackard]] 17:52, 18 January 2008 (EST)&lt;br /&gt;
:I've run into this once. Restarting DF fixed the problem. --[[User:SquirrelFarmer|SquirrelFarmer]] 09:50, 29 January 2008 (EST)&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus/Dwarf_Fortress_Utility_Framework&amp;diff=31704</id>
		<title>User:Jifodus/Dwarf Fortress Utility Framework</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus/Dwarf_Fortress_Utility_Framework&amp;diff=31704"/>
		<updated>2008-01-02T00:26:41Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* Current Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm currently writing a framework for Dwarf Fortress utilities. The general idea is to use C++ interfaces in a cross-compiler fashion that is very easy to use. This is designed to assist utility writers, by making possible to compile once, and have it work on future versions of Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
I'm not going to hold copyright of either the source code of the framework. It is in the Public Domain.&lt;br /&gt;
&lt;br /&gt;
However, I will hold copyright of StartProfile. And it is licensed under the WTFPL: http://sam.zoy.org/wtfpl/&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
===First Beta Release: January 1, 2008===&lt;br /&gt;
Source Code: http://www.geocities.com/jifodus/dfuf2.zip&amp;lt;br /&amp;gt;&lt;br /&gt;
Binaries: http://www.geocities.com/jifodus/dfufend2.zip&amp;lt;br /&amp;gt;&lt;br /&gt;
Debugging Symbols for the Binaries: http://www.geocities.com/jifodus/dfufdebug2.zip&lt;br /&gt;
&lt;br /&gt;
'''This first beta release has additional interfaces for working with creatures, it also has more complete data files. It is now possible to cleanly create complex type overrides with ''PointerTo()'', ''VectorOf()'', and ''ArrayOf()''. There is no data for v0.27.169.33g, the data is most complete for v0.27.169.33f.'''&lt;br /&gt;
===Alpha Release===&lt;br /&gt;
Source Code: http://www.geocities.com/jifodus/dfuf.zip&amp;lt;br /&amp;gt;&lt;br /&gt;
Binaries: http://www.geocities.com/jifodus/dfufend.zip&amp;lt;br /&amp;gt;&lt;br /&gt;
Debugging Symbols for the Binaries: http://www.geocities.com/jifodus/dfufdebug.zip&lt;br /&gt;
&lt;br /&gt;
==Todo==&lt;br /&gt;
Before the second release, which is necessary before it can be easily used, the following items need to be taken care of.&lt;br /&gt;
* Bugs&lt;br /&gt;
** There's always going to be a bug somewhere.&lt;br /&gt;
* Features&lt;br /&gt;
** Main Library&lt;br /&gt;
*** '''Error Handling''' - The library itself does not cleanly handle common errors. '''''10% Completed'''''&lt;br /&gt;
*** '''Auto-Update''' - Implement automatic update for both framework code and data. '''''0% Completed'''''&lt;br /&gt;
*** '''Installer''' - An installer for the library. '''''10% Completed'''''&lt;br /&gt;
*** '''Complete Memory Data''' - Complete transforming the memory data available on the wiki to format usable by library. '''''60% Completed'''''&lt;br /&gt;
*** '''More Type Objects''' - Provide interface wrappers to some of the commonly used memory types (Creature and Map). '''''60% Completed'''''&lt;br /&gt;
*** '''Memory Scanner''' - A simple memory searcher. Used for '''Auto-Identifier'''. '''''0% Completed'''''&lt;br /&gt;
*** '''Auto-Identifier''' - Automatically try to find the memory locations and offsets for new versions. '''''0% Completed'''''&lt;br /&gt;
*** '''Remote Memory De/Allocate''' - Needed to properly implement String &amp;amp; Vector set functions. '''''0% Completed'''''&lt;br /&gt;
*** '''Reload Data''' - The data loading portion does not yet properly reload the data. '''''0% Completed'''''&lt;br /&gt;
*** '''Bindings''' - C#/Perl/Java/Python/Lua/Other?&lt;br /&gt;
&lt;br /&gt;
==Features Overview==&lt;br /&gt;
The Dwarf Fortress Utility Framework is designed with the following goals in mind:&lt;br /&gt;
* Utilities compiled for the very first release of the framework still work 10 years later&lt;br /&gt;
** With all the updates and patches applied to the library&lt;br /&gt;
** With the latest release of Dwarf Fortress&lt;br /&gt;
* The end user of a utility can simply download and run the utility and have it work&lt;br /&gt;
* The framework provides a flexible and easy to use way to define types and memory maps, and write utilities to use the types and memory maps&lt;br /&gt;
&lt;br /&gt;
===Current Features===&lt;br /&gt;
* Written in C++, using interfaces&lt;br /&gt;
* Memory data stored in Lua format&lt;br /&gt;
* Sample utility for implementation reference: reimplementation of StartProfile&lt;br /&gt;
* API header &amp;amp; library&lt;br /&gt;
* Complete source code&lt;br /&gt;
* Identify Dwarf Fortress version via PE executable timestamp&lt;br /&gt;
* Cross-compiler/mostly C compatible using Windows COM style interfaces&lt;br /&gt;
** It is not C compatible due to function overloading issues.&lt;br /&gt;
* Auto-loading of Lua data files&lt;br /&gt;
* Library self-contained in DLL&lt;br /&gt;
&lt;br /&gt;
===Current Limitations===&lt;br /&gt;
* '''Buggy!'''&lt;br /&gt;
** Memory leaks exist&lt;br /&gt;
* No real documentation whatsoever&lt;br /&gt;
* Sparse comments&lt;br /&gt;
* Memory data is all there, but the library does not yet use all of it&lt;br /&gt;
* The library is designed for C++, the C interface has not been tested (and probably will not work)&lt;br /&gt;
** Also, this was only tested using MSVC++ .net 2005, it will probably work on other version of MSVC++.&lt;br /&gt;
* Does not cleanly handle errors&lt;br /&gt;
* Some interface functions not implemented&lt;br /&gt;
** Map/Get through pointer functions not yet implemented&lt;br /&gt;
** iDFUF::installDataFile is not yet implemented&lt;br /&gt;
* Compiled as debug mode (bloated file sizes)&lt;br /&gt;
* The library is not extensively tested&lt;br /&gt;
* The library has a dependency on: [http://www.microsoft.com/downloads/details.aspx?FamilyId=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&amp;amp;displaylang=en Visual Studio 8 Debug CRT]&lt;br /&gt;
&lt;br /&gt;
===Second Release===&lt;br /&gt;
The next release planned features will include:&lt;br /&gt;
* Auto-retrieve memory data off the internet&lt;br /&gt;
* Auto-update framework code itself&lt;br /&gt;
* Have an installer that will install the DLL and data file to a shared location, so multiple utilities can use the same library&lt;br /&gt;
&lt;br /&gt;
===Future===&lt;br /&gt;
And further down the road (through auto-update):&lt;br /&gt;
* Implement specific subsets of the std library; reduce utility size more, no large dependencies for the utilities&lt;br /&gt;
** std::string&lt;br /&gt;
** std::vector&lt;br /&gt;
** std::map&lt;br /&gt;
** Console IO&lt;br /&gt;
** File IO&lt;br /&gt;
* Easy to use GUI framework; for making tools with a nice GUI&lt;br /&gt;
* Cross-process memory allocation&lt;br /&gt;
&lt;br /&gt;
==Data Format==&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
The framework requires definitions of the following types:&lt;br /&gt;
* raw: a raw array of bytes; internally it allows access to an array of type.size * type.fixed_array bytes.&lt;br /&gt;
* pointer: a pointer to a location in Dwarf Fortress's memory; can represent a 32-bit pointer&lt;br /&gt;
* dword: an integer type that is 4 bytes&lt;br /&gt;
* word: an integer type that is 2 bytes&lt;br /&gt;
* byte: an integer type that is 1 byte&lt;br /&gt;
* float: a 32-bit floating point type&lt;br /&gt;
* double: a 64-bit floating point type&lt;br /&gt;
* string: a type that represents a std::string&lt;br /&gt;
** required members:&lt;br /&gt;
*** '''dword''' length: defines how many characters string contains&lt;br /&gt;
*** '''dword''' capacity: defines the maximum number of characters the string buffer can contain&lt;br /&gt;
*** '''pointer''' buffer_ptr: a pointer to a memory location containing the string data&lt;br /&gt;
** optional members:&lt;br /&gt;
*** '''raw''' buffer: a fixed-size array of characters containing the string when length &amp;lt; the fixed size of the buffer&lt;br /&gt;
* vector: a type representing a std::vector&lt;br /&gt;
** required members:&lt;br /&gt;
*** '''pointer''' begin: a pointer to the begining of the memory block&lt;br /&gt;
*** '''pointer''' end: a pointer to just beyond of the last valid element in the vector&lt;br /&gt;
*** '''pointer''' last: a pointer to just beyond the end of the memory block&lt;br /&gt;
&lt;br /&gt;
===Data Files===&lt;br /&gt;
The data files must supply the following information:&lt;br /&gt;
* Types: each element of the type list represents one type; there is a special type called '''Main''', '''Main''' represents the global memory map&lt;br /&gt;
* Signatures: each signature is designed to uniquely identify each version of Dwarf Fortress&lt;br /&gt;
&lt;br /&gt;
====Lua Data Files====&lt;br /&gt;
Classes:&lt;br /&gt;
* '''Type''': 'type =' The value can either be a set containing a type override or the string of a type name.&lt;br /&gt;
** Type: 'type =' A string representing the Type Name of the type to override.&lt;br /&gt;
** Subtypes: An array of type overrides and/or Type Names, that are subtypes of this type.&lt;br /&gt;
** Size: 'size =' An integer overriding the size of the type.&lt;br /&gt;
** Fixed Array Size: 'fixed_size =' An integer overriding the fixed array size of the type.&lt;br /&gt;
* Types: 'Types'&lt;br /&gt;
** Version: String representing version&lt;br /&gt;
*** TypeName: String representing name of the type, special type is '''Main'''.&lt;br /&gt;
**** Size: 'size =' an integer representing&lt;br /&gt;
**** Members: 'members' a table of of name value pairs; The name being the Member Name; The value is a set containing the Type and Offset.&lt;br /&gt;
***** Member Name: String representing the name&lt;br /&gt;
****** Type: 'type =' The value can either be a set containing a '''Type''' override or the name of the of a type.&lt;br /&gt;
****** Offset: 'offset =' The member offset (from the base address).&lt;br /&gt;
****** Pointer: 'pointer =' The pointer in memory for which the member can be found. Used for the '''Main''' type.&lt;br /&gt;
* Signatures 'Signatures'&lt;br /&gt;
** Version: String representing the version (same string as types).&lt;br /&gt;
*** PE Timestamp: 'pe_timestamp' The PE header timestamp value.&lt;br /&gt;
*** .text Adler32: 'adler32' The Adler32 CRC of the &amp;quot;.text&amp;quot; section of the executable.&lt;br /&gt;
*** Text Segments: 'text_segments' An array of segments of the &amp;quot;.text&amp;quot; section of the executable.&lt;br /&gt;
**** Address: [1] = The offset into the &amp;quot;.text&amp;quot; section that the following raw data can be found.&lt;br /&gt;
**** Raw Data: [2] = The data the &amp;quot;.text&amp;quot; segment is supposed to contain.&lt;br /&gt;
&lt;br /&gt;
==Library Usage==&lt;br /&gt;
(This part is only useful for utility writers.)&lt;br /&gt;
&lt;br /&gt;
===Basic Programming===&lt;br /&gt;
The basic program needed to use the library is simply:&lt;br /&gt;
 #include &amp;lt;dfuf.h&amp;gt;&lt;br /&gt;
 void main() {&lt;br /&gt;
 	dfuf::iDFUF *uf = dfuf::newDFUF();&lt;br /&gt;
 	// Do something with the framework&lt;br /&gt;
 	uf-&amp;gt;destroy(); // in theory cleans up all memory used&lt;br /&gt;
 }&lt;br /&gt;
To connect to an instance of Dwarf Fortress the program must first scan for instances,&lt;br /&gt;
then get one of the instances of dwarf fortress like this:&lt;br /&gt;
 if (uf-&amp;gt;scanForInstances() == 0) &lt;br /&gt;
 	// none found&lt;br /&gt;
 	return;&lt;br /&gt;
 dfuf::iDFInstance *instance = uf-&amp;gt;getInstance(0);&lt;br /&gt;
After getting a Dwarf Fortress instance, it then becomes possible to access global&lt;br /&gt;
pointers and memory locations (i.e. creature vector location) with&lt;br /&gt;
iDFInstance::getMemoryObject. iDFInstance::getMemoryObject takes a iType* and an&lt;br /&gt;
Address in Dwarf Fortress memory and returns an appropriate iMemoryType*. There are&lt;br /&gt;
different ways to provide the iType* and the Address, including from the data file&lt;br /&gt;
(via the appropriate name), a iPointerType*, and an iPointer* and iType* lets the&lt;br /&gt;
code create from the raw parts. There is a second version of&lt;br /&gt;
iDFInstance::getMemoryObject, which follows all the pointers to a non-pointer object&lt;br /&gt;
and returns the object called iDFInstance::getMemoryObjectThroughPointers. However,&lt;br /&gt;
it has not been implemented in the first release of the library.&lt;br /&gt;
&lt;br /&gt;
From the first memory object created, the code can then either query the value (from&lt;br /&gt;
any of the i*Type) or map other members (from any of the i*Object) objects.&lt;br /&gt;
&lt;br /&gt;
===Advanced Programming===&lt;br /&gt;
An advanced topic is iMemoryType* creation. It is painful to individually map the&lt;br /&gt;
members, therefore creating an iMemoryType* that simplifies access to the type sounds&lt;br /&gt;
ideal. However, the library only knows about the types it has been compiled with. Enter&lt;br /&gt;
iTypeFactory*, the iTypeFactory* gets registered in iDFUF with iDFUF::addTypeFactory.&lt;br /&gt;
Each factory provides 2 functions: construct &amp;amp; destruct. This allows programs to create&lt;br /&gt;
their own structures to wrap the creature type.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
 class cCreatureType : public dfuf::iMemoryObject&lt;br /&gt;
 {&lt;br /&gt;
 public:&lt;br /&gt;
 	// Implement virtual methods here&lt;br /&gt;
 &lt;br /&gt;
 public:&lt;br /&gt;
 	dfuf::u32 getHappiness() { return happiness-&amp;gt;getValue(); }&lt;br /&gt;
 	void setHappiness(dfuf::u32 value) { happiness-&amp;gt;setValue(value); }&lt;br /&gt;
 	// More methods here&lt;br /&gt;
 	cCreatureType(dfuf::iDFInstance *instance, dfuf::iPointer *base, dfuf::iType *type)&lt;br /&gt;
 	{&lt;br /&gt;
 		this-&amp;gt;instance = instance;&lt;br /&gt;
 		this-&amp;gt;base = base;&lt;br /&gt;
 		this-&amp;gt;type = type;&lt;br /&gt;
 		this-&amp;gt;happiness = map(L&amp;quot;happiness&amp;quot;);&lt;br /&gt;
 	}&lt;br /&gt;
 public:&lt;br /&gt;
 	dfuf::iDFInstance *instance;&lt;br /&gt;
 	dfuf::iPointer *base;&lt;br /&gt;
 	dfuf::iType *type;&lt;br /&gt;
 	dfuf::iIntegerType *happiness;&lt;br /&gt;
 };&lt;br /&gt;
 class cCreatureFactory : public dfuf::iTypeFactory&lt;br /&gt;
 {&lt;br /&gt;
 public:&lt;br /&gt;
 	// new creature&lt;br /&gt;
 	{&lt;br /&gt;
 		return new cCreatureType(instance, base, type);&lt;br /&gt;
 	}&lt;br /&gt;
 	// delete creature&lt;br /&gt;
 	{&lt;br /&gt;
 		delete object;&lt;br /&gt;
 	}&lt;br /&gt;
 };&lt;br /&gt;
 // Global instance, otherwise we'd have to do memory management on the pointer&lt;br /&gt;
 cCreatureFactory global_CreatureFactory;&lt;br /&gt;
 // Usage&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
 	dfuf::iDFUF *uf = newDFUF();&lt;br /&gt;
 	dfuf::iDFInstance *instance = uf-&amp;gt;getDFInstance(0);&lt;br /&gt;
 	uf-&amp;gt;addTypeFactory(&amp;quot;creature&amp;quot;, &amp;amp;global_CreatureFactory);&lt;br /&gt;
 	iPointer *pointer;&lt;br /&gt;
 	cCreatureType *creature = (cCreatureType *)instance-&amp;gt;getMemoryObject&lt;br /&gt;
 		(pointer, instance-&amp;gt;getType(&amp;quot;creature&amp;quot;));&lt;br /&gt;
 	creature-&amp;gt;setHappiness(-10000); // hahaha die dwarf!&lt;br /&gt;
 	uf-&amp;gt;destroy();&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus/Dwarf_Fortress_Utility_Framework&amp;diff=31703</id>
		<title>User:Jifodus/Dwarf Fortress Utility Framework</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus/Dwarf_Fortress_Utility_Framework&amp;diff=31703"/>
		<updated>2008-01-02T00:21:23Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* Current Limitations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm currently writing a framework for Dwarf Fortress utilities. The general idea is to use C++ interfaces in a cross-compiler fashion that is very easy to use. This is designed to assist utility writers, by making possible to compile once, and have it work on future versions of Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
I'm not going to hold copyright of either the source code of the framework. It is in the Public Domain.&lt;br /&gt;
&lt;br /&gt;
However, I will hold copyright of StartProfile. And it is licensed under the WTFPL: http://sam.zoy.org/wtfpl/&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
===First Beta Release: January 1, 2008===&lt;br /&gt;
Source Code: http://www.geocities.com/jifodus/dfuf2.zip&amp;lt;br /&amp;gt;&lt;br /&gt;
Binaries: http://www.geocities.com/jifodus/dfufend2.zip&amp;lt;br /&amp;gt;&lt;br /&gt;
Debugging Symbols for the Binaries: http://www.geocities.com/jifodus/dfufdebug2.zip&lt;br /&gt;
&lt;br /&gt;
'''This first beta release has additional interfaces for working with creatures, it also has more complete data files. It is now possible to cleanly create complex type overrides with ''PointerTo()'', ''VectorOf()'', and ''ArrayOf()''. There is no data for v0.27.169.33g, the data is most complete for v0.27.169.33f.'''&lt;br /&gt;
===Alpha Release===&lt;br /&gt;
Source Code: http://www.geocities.com/jifodus/dfuf.zip&amp;lt;br /&amp;gt;&lt;br /&gt;
Binaries: http://www.geocities.com/jifodus/dfufend.zip&amp;lt;br /&amp;gt;&lt;br /&gt;
Debugging Symbols for the Binaries: http://www.geocities.com/jifodus/dfufdebug.zip&lt;br /&gt;
&lt;br /&gt;
==Todo==&lt;br /&gt;
Before the second release, which is necessary before it can be easily used, the following items need to be taken care of.&lt;br /&gt;
* Bugs&lt;br /&gt;
** There's always going to be a bug somewhere.&lt;br /&gt;
* Features&lt;br /&gt;
** Main Library&lt;br /&gt;
*** '''Error Handling''' - The library itself does not cleanly handle common errors. '''''10% Completed'''''&lt;br /&gt;
*** '''Auto-Update''' - Implement automatic update for both framework code and data. '''''0% Completed'''''&lt;br /&gt;
*** '''Installer''' - An installer for the library. '''''10% Completed'''''&lt;br /&gt;
*** '''Complete Memory Data''' - Complete transforming the memory data available on the wiki to format usable by library. '''''60% Completed'''''&lt;br /&gt;
*** '''More Type Objects''' - Provide interface wrappers to some of the commonly used memory types (Creature and Map). '''''60% Completed'''''&lt;br /&gt;
*** '''Memory Scanner''' - A simple memory searcher. Used for '''Auto-Identifier'''. '''''0% Completed'''''&lt;br /&gt;
*** '''Auto-Identifier''' - Automatically try to find the memory locations and offsets for new versions. '''''0% Completed'''''&lt;br /&gt;
*** '''Remote Memory De/Allocate''' - Needed to properly implement String &amp;amp; Vector set functions. '''''0% Completed'''''&lt;br /&gt;
*** '''Reload Data''' - The data loading portion does not yet properly reload the data. '''''0% Completed'''''&lt;br /&gt;
*** '''Bindings''' - C#/Perl/Java/Python/Lua/Other?&lt;br /&gt;
&lt;br /&gt;
==Features Overview==&lt;br /&gt;
The Dwarf Fortress Utility Framework is designed with the following goals in mind:&lt;br /&gt;
* Utilities compiled for the very first release of the framework still work 10 years later&lt;br /&gt;
** With all the updates and patches applied to the library&lt;br /&gt;
** With the latest release of Dwarf Fortress&lt;br /&gt;
* The end user of a utility can simply download and run the utility and have it work&lt;br /&gt;
* The framework provides a flexible and easy to use way to define types and memory maps, and write utilities to use the types and memory maps&lt;br /&gt;
&lt;br /&gt;
===Current Features===&lt;br /&gt;
* Written in C++, using interfaces&lt;br /&gt;
* Memory data stored in Lua format&lt;br /&gt;
* Sample utility for implementation reference: reimplementation of StartProfile&lt;br /&gt;
* API header &amp;amp; library&lt;br /&gt;
* Complete source code&lt;br /&gt;
* Identify Dwarf Fortress version via PE executable timestamp&lt;br /&gt;
* Cross-compiler/C compatible using Windows COM style interfaces&lt;br /&gt;
* Auto-loading of Lua data files&lt;br /&gt;
* Library self-contained in DLL&lt;br /&gt;
&lt;br /&gt;
===Current Limitations===&lt;br /&gt;
* '''Buggy!'''&lt;br /&gt;
** Memory leaks exist&lt;br /&gt;
* No real documentation whatsoever&lt;br /&gt;
* Sparse comments&lt;br /&gt;
* Memory data is all there, but the library does not yet use all of it&lt;br /&gt;
* The library is designed for C++, the C interface has not been tested (and probably will not work)&lt;br /&gt;
** Also, this was only tested using MSVC++ .net 2005, it will probably work on other version of MSVC++.&lt;br /&gt;
* Does not cleanly handle errors&lt;br /&gt;
* Some interface functions not implemented&lt;br /&gt;
** Map/Get through pointer functions not yet implemented&lt;br /&gt;
** iDFUF::installDataFile is not yet implemented&lt;br /&gt;
* Compiled as debug mode (bloated file sizes)&lt;br /&gt;
* The library is not extensively tested&lt;br /&gt;
* The library has a dependency on: [http://www.microsoft.com/downloads/details.aspx?FamilyId=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&amp;amp;displaylang=en Visual Studio 8 Debug CRT]&lt;br /&gt;
&lt;br /&gt;
===Second Release===&lt;br /&gt;
The next release planned features will include:&lt;br /&gt;
* Auto-retrieve memory data off the internet&lt;br /&gt;
* Auto-update framework code itself&lt;br /&gt;
* Have an installer that will install the DLL and data file to a shared location, so multiple utilities can use the same library&lt;br /&gt;
&lt;br /&gt;
===Future===&lt;br /&gt;
And further down the road (through auto-update):&lt;br /&gt;
* Implement specific subsets of the std library; reduce utility size more, no large dependencies for the utilities&lt;br /&gt;
** std::string&lt;br /&gt;
** std::vector&lt;br /&gt;
** std::map&lt;br /&gt;
** Console IO&lt;br /&gt;
** File IO&lt;br /&gt;
* Easy to use GUI framework; for making tools with a nice GUI&lt;br /&gt;
* Cross-process memory allocation&lt;br /&gt;
&lt;br /&gt;
==Data Format==&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
The framework requires definitions of the following types:&lt;br /&gt;
* raw: a raw array of bytes; internally it allows access to an array of type.size * type.fixed_array bytes.&lt;br /&gt;
* pointer: a pointer to a location in Dwarf Fortress's memory; can represent a 32-bit pointer&lt;br /&gt;
* dword: an integer type that is 4 bytes&lt;br /&gt;
* word: an integer type that is 2 bytes&lt;br /&gt;
* byte: an integer type that is 1 byte&lt;br /&gt;
* float: a 32-bit floating point type&lt;br /&gt;
* double: a 64-bit floating point type&lt;br /&gt;
* string: a type that represents a std::string&lt;br /&gt;
** required members:&lt;br /&gt;
*** '''dword''' length: defines how many characters string contains&lt;br /&gt;
*** '''dword''' capacity: defines the maximum number of characters the string buffer can contain&lt;br /&gt;
*** '''pointer''' buffer_ptr: a pointer to a memory location containing the string data&lt;br /&gt;
** optional members:&lt;br /&gt;
*** '''raw''' buffer: a fixed-size array of characters containing the string when length &amp;lt; the fixed size of the buffer&lt;br /&gt;
* vector: a type representing a std::vector&lt;br /&gt;
** required members:&lt;br /&gt;
*** '''pointer''' begin: a pointer to the begining of the memory block&lt;br /&gt;
*** '''pointer''' end: a pointer to just beyond of the last valid element in the vector&lt;br /&gt;
*** '''pointer''' last: a pointer to just beyond the end of the memory block&lt;br /&gt;
&lt;br /&gt;
===Data Files===&lt;br /&gt;
The data files must supply the following information:&lt;br /&gt;
* Types: each element of the type list represents one type; there is a special type called '''Main''', '''Main''' represents the global memory map&lt;br /&gt;
* Signatures: each signature is designed to uniquely identify each version of Dwarf Fortress&lt;br /&gt;
&lt;br /&gt;
====Lua Data Files====&lt;br /&gt;
Classes:&lt;br /&gt;
* '''Type''': 'type =' The value can either be a set containing a type override or the string of a type name.&lt;br /&gt;
** Type: 'type =' A string representing the Type Name of the type to override.&lt;br /&gt;
** Subtypes: An array of type overrides and/or Type Names, that are subtypes of this type.&lt;br /&gt;
** Size: 'size =' An integer overriding the size of the type.&lt;br /&gt;
** Fixed Array Size: 'fixed_size =' An integer overriding the fixed array size of the type.&lt;br /&gt;
* Types: 'Types'&lt;br /&gt;
** Version: String representing version&lt;br /&gt;
*** TypeName: String representing name of the type, special type is '''Main'''.&lt;br /&gt;
**** Size: 'size =' an integer representing&lt;br /&gt;
**** Members: 'members' a table of of name value pairs; The name being the Member Name; The value is a set containing the Type and Offset.&lt;br /&gt;
***** Member Name: String representing the name&lt;br /&gt;
****** Type: 'type =' The value can either be a set containing a '''Type''' override or the name of the of a type.&lt;br /&gt;
****** Offset: 'offset =' The member offset (from the base address).&lt;br /&gt;
****** Pointer: 'pointer =' The pointer in memory for which the member can be found. Used for the '''Main''' type.&lt;br /&gt;
* Signatures 'Signatures'&lt;br /&gt;
** Version: String representing the version (same string as types).&lt;br /&gt;
*** PE Timestamp: 'pe_timestamp' The PE header timestamp value.&lt;br /&gt;
*** .text Adler32: 'adler32' The Adler32 CRC of the &amp;quot;.text&amp;quot; section of the executable.&lt;br /&gt;
*** Text Segments: 'text_segments' An array of segments of the &amp;quot;.text&amp;quot; section of the executable.&lt;br /&gt;
**** Address: [1] = The offset into the &amp;quot;.text&amp;quot; section that the following raw data can be found.&lt;br /&gt;
**** Raw Data: [2] = The data the &amp;quot;.text&amp;quot; segment is supposed to contain.&lt;br /&gt;
&lt;br /&gt;
==Library Usage==&lt;br /&gt;
(This part is only useful for utility writers.)&lt;br /&gt;
&lt;br /&gt;
===Basic Programming===&lt;br /&gt;
The basic program needed to use the library is simply:&lt;br /&gt;
 #include &amp;lt;dfuf.h&amp;gt;&lt;br /&gt;
 void main() {&lt;br /&gt;
 	dfuf::iDFUF *uf = dfuf::newDFUF();&lt;br /&gt;
 	// Do something with the framework&lt;br /&gt;
 	uf-&amp;gt;destroy(); // in theory cleans up all memory used&lt;br /&gt;
 }&lt;br /&gt;
To connect to an instance of Dwarf Fortress the program must first scan for instances,&lt;br /&gt;
then get one of the instances of dwarf fortress like this:&lt;br /&gt;
 if (uf-&amp;gt;scanForInstances() == 0) &lt;br /&gt;
 	// none found&lt;br /&gt;
 	return;&lt;br /&gt;
 dfuf::iDFInstance *instance = uf-&amp;gt;getInstance(0);&lt;br /&gt;
After getting a Dwarf Fortress instance, it then becomes possible to access global&lt;br /&gt;
pointers and memory locations (i.e. creature vector location) with&lt;br /&gt;
iDFInstance::getMemoryObject. iDFInstance::getMemoryObject takes a iType* and an&lt;br /&gt;
Address in Dwarf Fortress memory and returns an appropriate iMemoryType*. There are&lt;br /&gt;
different ways to provide the iType* and the Address, including from the data file&lt;br /&gt;
(via the appropriate name), a iPointerType*, and an iPointer* and iType* lets the&lt;br /&gt;
code create from the raw parts. There is a second version of&lt;br /&gt;
iDFInstance::getMemoryObject, which follows all the pointers to a non-pointer object&lt;br /&gt;
and returns the object called iDFInstance::getMemoryObjectThroughPointers. However,&lt;br /&gt;
it has not been implemented in the first release of the library.&lt;br /&gt;
&lt;br /&gt;
From the first memory object created, the code can then either query the value (from&lt;br /&gt;
any of the i*Type) or map other members (from any of the i*Object) objects.&lt;br /&gt;
&lt;br /&gt;
===Advanced Programming===&lt;br /&gt;
An advanced topic is iMemoryType* creation. It is painful to individually map the&lt;br /&gt;
members, therefore creating an iMemoryType* that simplifies access to the type sounds&lt;br /&gt;
ideal. However, the library only knows about the types it has been compiled with. Enter&lt;br /&gt;
iTypeFactory*, the iTypeFactory* gets registered in iDFUF with iDFUF::addTypeFactory.&lt;br /&gt;
Each factory provides 2 functions: construct &amp;amp; destruct. This allows programs to create&lt;br /&gt;
their own structures to wrap the creature type.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
 class cCreatureType : public dfuf::iMemoryObject&lt;br /&gt;
 {&lt;br /&gt;
 public:&lt;br /&gt;
 	// Implement virtual methods here&lt;br /&gt;
 &lt;br /&gt;
 public:&lt;br /&gt;
 	dfuf::u32 getHappiness() { return happiness-&amp;gt;getValue(); }&lt;br /&gt;
 	void setHappiness(dfuf::u32 value) { happiness-&amp;gt;setValue(value); }&lt;br /&gt;
 	// More methods here&lt;br /&gt;
 	cCreatureType(dfuf::iDFInstance *instance, dfuf::iPointer *base, dfuf::iType *type)&lt;br /&gt;
 	{&lt;br /&gt;
 		this-&amp;gt;instance = instance;&lt;br /&gt;
 		this-&amp;gt;base = base;&lt;br /&gt;
 		this-&amp;gt;type = type;&lt;br /&gt;
 		this-&amp;gt;happiness = map(L&amp;quot;happiness&amp;quot;);&lt;br /&gt;
 	}&lt;br /&gt;
 public:&lt;br /&gt;
 	dfuf::iDFInstance *instance;&lt;br /&gt;
 	dfuf::iPointer *base;&lt;br /&gt;
 	dfuf::iType *type;&lt;br /&gt;
 	dfuf::iIntegerType *happiness;&lt;br /&gt;
 };&lt;br /&gt;
 class cCreatureFactory : public dfuf::iTypeFactory&lt;br /&gt;
 {&lt;br /&gt;
 public:&lt;br /&gt;
 	// new creature&lt;br /&gt;
 	{&lt;br /&gt;
 		return new cCreatureType(instance, base, type);&lt;br /&gt;
 	}&lt;br /&gt;
 	// delete creature&lt;br /&gt;
 	{&lt;br /&gt;
 		delete object;&lt;br /&gt;
 	}&lt;br /&gt;
 };&lt;br /&gt;
 // Global instance, otherwise we'd have to do memory management on the pointer&lt;br /&gt;
 cCreatureFactory global_CreatureFactory;&lt;br /&gt;
 // Usage&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
 	dfuf::iDFUF *uf = newDFUF();&lt;br /&gt;
 	dfuf::iDFInstance *instance = uf-&amp;gt;getDFInstance(0);&lt;br /&gt;
 	uf-&amp;gt;addTypeFactory(&amp;quot;creature&amp;quot;, &amp;amp;global_CreatureFactory);&lt;br /&gt;
 	iPointer *pointer;&lt;br /&gt;
 	cCreatureType *creature = (cCreatureType *)instance-&amp;gt;getMemoryObject&lt;br /&gt;
 		(pointer, instance-&amp;gt;getType(&amp;quot;creature&amp;quot;));&lt;br /&gt;
 	creature-&amp;gt;setHappiness(-10000); // hahaha die dwarf!&lt;br /&gt;
 	uf-&amp;gt;destroy();&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus/Dwarf_Fortress_Utility_Framework&amp;diff=31702</id>
		<title>User:Jifodus/Dwarf Fortress Utility Framework</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus/Dwarf_Fortress_Utility_Framework&amp;diff=31702"/>
		<updated>2008-01-02T00:13:32Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm currently writing a framework for Dwarf Fortress utilities. The general idea is to use C++ interfaces in a cross-compiler fashion that is very easy to use. This is designed to assist utility writers, by making possible to compile once, and have it work on future versions of Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
I'm not going to hold copyright of either the source code of the framework. It is in the Public Domain.&lt;br /&gt;
&lt;br /&gt;
However, I will hold copyright of StartProfile. And it is licensed under the WTFPL: http://sam.zoy.org/wtfpl/&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
===First Beta Release: January 1, 2008===&lt;br /&gt;
Source Code: http://www.geocities.com/jifodus/dfuf2.zip&amp;lt;br /&amp;gt;&lt;br /&gt;
Binaries: http://www.geocities.com/jifodus/dfufend2.zip&amp;lt;br /&amp;gt;&lt;br /&gt;
Debugging Symbols for the Binaries: http://www.geocities.com/jifodus/dfufdebug2.zip&lt;br /&gt;
&lt;br /&gt;
'''This first beta release has additional interfaces for working with creatures, it also has more complete data files. It is now possible to cleanly create complex type overrides with ''PointerTo()'', ''VectorOf()'', and ''ArrayOf()''. There is no data for v0.27.169.33g, the data is most complete for v0.27.169.33f.'''&lt;br /&gt;
===Alpha Release===&lt;br /&gt;
Source Code: http://www.geocities.com/jifodus/dfuf.zip&amp;lt;br /&amp;gt;&lt;br /&gt;
Binaries: http://www.geocities.com/jifodus/dfufend.zip&amp;lt;br /&amp;gt;&lt;br /&gt;
Debugging Symbols for the Binaries: http://www.geocities.com/jifodus/dfufdebug.zip&lt;br /&gt;
&lt;br /&gt;
==Todo==&lt;br /&gt;
Before the second release, which is necessary before it can be easily used, the following items need to be taken care of.&lt;br /&gt;
* Bugs&lt;br /&gt;
** There's always going to be a bug somewhere.&lt;br /&gt;
* Features&lt;br /&gt;
** Main Library&lt;br /&gt;
*** '''Error Handling''' - The library itself does not cleanly handle common errors. '''''10% Completed'''''&lt;br /&gt;
*** '''Auto-Update''' - Implement automatic update for both framework code and data. '''''0% Completed'''''&lt;br /&gt;
*** '''Installer''' - An installer for the library. '''''10% Completed'''''&lt;br /&gt;
*** '''Complete Memory Data''' - Complete transforming the memory data available on the wiki to format usable by library. '''''60% Completed'''''&lt;br /&gt;
*** '''More Type Objects''' - Provide interface wrappers to some of the commonly used memory types (Creature and Map). '''''60% Completed'''''&lt;br /&gt;
*** '''Memory Scanner''' - A simple memory searcher. Used for '''Auto-Identifier'''. '''''0% Completed'''''&lt;br /&gt;
*** '''Auto-Identifier''' - Automatically try to find the memory locations and offsets for new versions. '''''0% Completed'''''&lt;br /&gt;
*** '''Remote Memory De/Allocate''' - Needed to properly implement String &amp;amp; Vector set functions. '''''0% Completed'''''&lt;br /&gt;
*** '''Reload Data''' - The data loading portion does not yet properly reload the data. '''''0% Completed'''''&lt;br /&gt;
*** '''Bindings''' - C#/Perl/Java/Python/Lua/Other?&lt;br /&gt;
&lt;br /&gt;
==Features Overview==&lt;br /&gt;
The Dwarf Fortress Utility Framework is designed with the following goals in mind:&lt;br /&gt;
* Utilities compiled for the very first release of the framework still work 10 years later&lt;br /&gt;
** With all the updates and patches applied to the library&lt;br /&gt;
** With the latest release of Dwarf Fortress&lt;br /&gt;
* The end user of a utility can simply download and run the utility and have it work&lt;br /&gt;
* The framework provides a flexible and easy to use way to define types and memory maps, and write utilities to use the types and memory maps&lt;br /&gt;
&lt;br /&gt;
===Current Features===&lt;br /&gt;
* Written in C++, using interfaces&lt;br /&gt;
* Memory data stored in Lua format&lt;br /&gt;
* Sample utility for implementation reference: reimplementation of StartProfile&lt;br /&gt;
* API header &amp;amp; library&lt;br /&gt;
* Complete source code&lt;br /&gt;
* Identify Dwarf Fortress version via PE executable timestamp&lt;br /&gt;
* Cross-compiler/C compatible using Windows COM style interfaces&lt;br /&gt;
* Auto-loading of Lua data files&lt;br /&gt;
* Library self-contained in DLL&lt;br /&gt;
&lt;br /&gt;
===Current Limitations===&lt;br /&gt;
* '''Buggy!'''&lt;br /&gt;
** Memory leaks exist&lt;br /&gt;
* No real documentation whatsoever&lt;br /&gt;
* Sparse comments&lt;br /&gt;
* Memory data is all there, but the library does not yet use all of it&lt;br /&gt;
* The library is designed for C++, the C interface has not been tested (and probably will not work)&lt;br /&gt;
** Also, this was only tested using MSVC++ .net 2005, it will probably work on other version of MSVC++.&lt;br /&gt;
* Does not cleanly handle errors&lt;br /&gt;
* Some interface functions not implemented&lt;br /&gt;
** Map/Get through pointer functions not yet implemented&lt;br /&gt;
** iDFUF::installDataFile is not yet implemented&lt;br /&gt;
* Compiled as debug mode (bloated file sizes)&lt;br /&gt;
* Windows XP or later required (from the use of GetModuleHandleEx)&lt;br /&gt;
* The library is not extensively tested&lt;br /&gt;
&lt;br /&gt;
===Second Release===&lt;br /&gt;
The next release planned features will include:&lt;br /&gt;
* Auto-retrieve memory data off the internet&lt;br /&gt;
* Auto-update framework code itself&lt;br /&gt;
* Have an installer that will install the DLL and data file to a shared location, so multiple utilities can use the same library&lt;br /&gt;
&lt;br /&gt;
===Future===&lt;br /&gt;
And further down the road (through auto-update):&lt;br /&gt;
* Implement specific subsets of the std library; reduce utility size more, no large dependencies for the utilities&lt;br /&gt;
** std::string&lt;br /&gt;
** std::vector&lt;br /&gt;
** std::map&lt;br /&gt;
** Console IO&lt;br /&gt;
** File IO&lt;br /&gt;
* Easy to use GUI framework; for making tools with a nice GUI&lt;br /&gt;
* Cross-process memory allocation&lt;br /&gt;
&lt;br /&gt;
==Data Format==&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
The framework requires definitions of the following types:&lt;br /&gt;
* raw: a raw array of bytes; internally it allows access to an array of type.size * type.fixed_array bytes.&lt;br /&gt;
* pointer: a pointer to a location in Dwarf Fortress's memory; can represent a 32-bit pointer&lt;br /&gt;
* dword: an integer type that is 4 bytes&lt;br /&gt;
* word: an integer type that is 2 bytes&lt;br /&gt;
* byte: an integer type that is 1 byte&lt;br /&gt;
* float: a 32-bit floating point type&lt;br /&gt;
* double: a 64-bit floating point type&lt;br /&gt;
* string: a type that represents a std::string&lt;br /&gt;
** required members:&lt;br /&gt;
*** '''dword''' length: defines how many characters string contains&lt;br /&gt;
*** '''dword''' capacity: defines the maximum number of characters the string buffer can contain&lt;br /&gt;
*** '''pointer''' buffer_ptr: a pointer to a memory location containing the string data&lt;br /&gt;
** optional members:&lt;br /&gt;
*** '''raw''' buffer: a fixed-size array of characters containing the string when length &amp;lt; the fixed size of the buffer&lt;br /&gt;
* vector: a type representing a std::vector&lt;br /&gt;
** required members:&lt;br /&gt;
*** '''pointer''' begin: a pointer to the begining of the memory block&lt;br /&gt;
*** '''pointer''' end: a pointer to just beyond of the last valid element in the vector&lt;br /&gt;
*** '''pointer''' last: a pointer to just beyond the end of the memory block&lt;br /&gt;
&lt;br /&gt;
===Data Files===&lt;br /&gt;
The data files must supply the following information:&lt;br /&gt;
* Types: each element of the type list represents one type; there is a special type called '''Main''', '''Main''' represents the global memory map&lt;br /&gt;
* Signatures: each signature is designed to uniquely identify each version of Dwarf Fortress&lt;br /&gt;
&lt;br /&gt;
====Lua Data Files====&lt;br /&gt;
Classes:&lt;br /&gt;
* '''Type''': 'type =' The value can either be a set containing a type override or the string of a type name.&lt;br /&gt;
** Type: 'type =' A string representing the Type Name of the type to override.&lt;br /&gt;
** Subtypes: An array of type overrides and/or Type Names, that are subtypes of this type.&lt;br /&gt;
** Size: 'size =' An integer overriding the size of the type.&lt;br /&gt;
** Fixed Array Size: 'fixed_size =' An integer overriding the fixed array size of the type.&lt;br /&gt;
* Types: 'Types'&lt;br /&gt;
** Version: String representing version&lt;br /&gt;
*** TypeName: String representing name of the type, special type is '''Main'''.&lt;br /&gt;
**** Size: 'size =' an integer representing&lt;br /&gt;
**** Members: 'members' a table of of name value pairs; The name being the Member Name; The value is a set containing the Type and Offset.&lt;br /&gt;
***** Member Name: String representing the name&lt;br /&gt;
****** Type: 'type =' The value can either be a set containing a '''Type''' override or the name of the of a type.&lt;br /&gt;
****** Offset: 'offset =' The member offset (from the base address).&lt;br /&gt;
****** Pointer: 'pointer =' The pointer in memory for which the member can be found. Used for the '''Main''' type.&lt;br /&gt;
* Signatures 'Signatures'&lt;br /&gt;
** Version: String representing the version (same string as types).&lt;br /&gt;
*** PE Timestamp: 'pe_timestamp' The PE header timestamp value.&lt;br /&gt;
*** .text Adler32: 'adler32' The Adler32 CRC of the &amp;quot;.text&amp;quot; section of the executable.&lt;br /&gt;
*** Text Segments: 'text_segments' An array of segments of the &amp;quot;.text&amp;quot; section of the executable.&lt;br /&gt;
**** Address: [1] = The offset into the &amp;quot;.text&amp;quot; section that the following raw data can be found.&lt;br /&gt;
**** Raw Data: [2] = The data the &amp;quot;.text&amp;quot; segment is supposed to contain.&lt;br /&gt;
&lt;br /&gt;
==Library Usage==&lt;br /&gt;
(This part is only useful for utility writers.)&lt;br /&gt;
&lt;br /&gt;
===Basic Programming===&lt;br /&gt;
The basic program needed to use the library is simply:&lt;br /&gt;
 #include &amp;lt;dfuf.h&amp;gt;&lt;br /&gt;
 void main() {&lt;br /&gt;
 	dfuf::iDFUF *uf = dfuf::newDFUF();&lt;br /&gt;
 	// Do something with the framework&lt;br /&gt;
 	uf-&amp;gt;destroy(); // in theory cleans up all memory used&lt;br /&gt;
 }&lt;br /&gt;
To connect to an instance of Dwarf Fortress the program must first scan for instances,&lt;br /&gt;
then get one of the instances of dwarf fortress like this:&lt;br /&gt;
 if (uf-&amp;gt;scanForInstances() == 0) &lt;br /&gt;
 	// none found&lt;br /&gt;
 	return;&lt;br /&gt;
 dfuf::iDFInstance *instance = uf-&amp;gt;getInstance(0);&lt;br /&gt;
After getting a Dwarf Fortress instance, it then becomes possible to access global&lt;br /&gt;
pointers and memory locations (i.e. creature vector location) with&lt;br /&gt;
iDFInstance::getMemoryObject. iDFInstance::getMemoryObject takes a iType* and an&lt;br /&gt;
Address in Dwarf Fortress memory and returns an appropriate iMemoryType*. There are&lt;br /&gt;
different ways to provide the iType* and the Address, including from the data file&lt;br /&gt;
(via the appropriate name), a iPointerType*, and an iPointer* and iType* lets the&lt;br /&gt;
code create from the raw parts. There is a second version of&lt;br /&gt;
iDFInstance::getMemoryObject, which follows all the pointers to a non-pointer object&lt;br /&gt;
and returns the object called iDFInstance::getMemoryObjectThroughPointers. However,&lt;br /&gt;
it has not been implemented in the first release of the library.&lt;br /&gt;
&lt;br /&gt;
From the first memory object created, the code can then either query the value (from&lt;br /&gt;
any of the i*Type) or map other members (from any of the i*Object) objects.&lt;br /&gt;
&lt;br /&gt;
===Advanced Programming===&lt;br /&gt;
An advanced topic is iMemoryType* creation. It is painful to individually map the&lt;br /&gt;
members, therefore creating an iMemoryType* that simplifies access to the type sounds&lt;br /&gt;
ideal. However, the library only knows about the types it has been compiled with. Enter&lt;br /&gt;
iTypeFactory*, the iTypeFactory* gets registered in iDFUF with iDFUF::addTypeFactory.&lt;br /&gt;
Each factory provides 2 functions: construct &amp;amp; destruct. This allows programs to create&lt;br /&gt;
their own structures to wrap the creature type.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
 class cCreatureType : public dfuf::iMemoryObject&lt;br /&gt;
 {&lt;br /&gt;
 public:&lt;br /&gt;
 	// Implement virtual methods here&lt;br /&gt;
 &lt;br /&gt;
 public:&lt;br /&gt;
 	dfuf::u32 getHappiness() { return happiness-&amp;gt;getValue(); }&lt;br /&gt;
 	void setHappiness(dfuf::u32 value) { happiness-&amp;gt;setValue(value); }&lt;br /&gt;
 	// More methods here&lt;br /&gt;
 	cCreatureType(dfuf::iDFInstance *instance, dfuf::iPointer *base, dfuf::iType *type)&lt;br /&gt;
 	{&lt;br /&gt;
 		this-&amp;gt;instance = instance;&lt;br /&gt;
 		this-&amp;gt;base = base;&lt;br /&gt;
 		this-&amp;gt;type = type;&lt;br /&gt;
 		this-&amp;gt;happiness = map(L&amp;quot;happiness&amp;quot;);&lt;br /&gt;
 	}&lt;br /&gt;
 public:&lt;br /&gt;
 	dfuf::iDFInstance *instance;&lt;br /&gt;
 	dfuf::iPointer *base;&lt;br /&gt;
 	dfuf::iType *type;&lt;br /&gt;
 	dfuf::iIntegerType *happiness;&lt;br /&gt;
 };&lt;br /&gt;
 class cCreatureFactory : public dfuf::iTypeFactory&lt;br /&gt;
 {&lt;br /&gt;
 public:&lt;br /&gt;
 	// new creature&lt;br /&gt;
 	{&lt;br /&gt;
 		return new cCreatureType(instance, base, type);&lt;br /&gt;
 	}&lt;br /&gt;
 	// delete creature&lt;br /&gt;
 	{&lt;br /&gt;
 		delete object;&lt;br /&gt;
 	}&lt;br /&gt;
 };&lt;br /&gt;
 // Global instance, otherwise we'd have to do memory management on the pointer&lt;br /&gt;
 cCreatureFactory global_CreatureFactory;&lt;br /&gt;
 // Usage&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
 	dfuf::iDFUF *uf = newDFUF();&lt;br /&gt;
 	dfuf::iDFInstance *instance = uf-&amp;gt;getDFInstance(0);&lt;br /&gt;
 	uf-&amp;gt;addTypeFactory(&amp;quot;creature&amp;quot;, &amp;amp;global_CreatureFactory);&lt;br /&gt;
 	iPointer *pointer;&lt;br /&gt;
 	cCreatureType *creature = (cCreatureType *)instance-&amp;gt;getMemoryObject&lt;br /&gt;
 		(pointer, instance-&amp;gt;getType(&amp;quot;creature&amp;quot;));&lt;br /&gt;
 	creature-&amp;gt;setHappiness(-10000); // hahaha die dwarf!&lt;br /&gt;
 	uf-&amp;gt;destroy();&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Jifodus/Dwarf_Fortress_Utility_Framework&amp;diff=31701</id>
		<title>User:Jifodus/Dwarf Fortress Utility Framework</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Jifodus/Dwarf_Fortress_Utility_Framework&amp;diff=31701"/>
		<updated>2008-01-02T00:06:35Z</updated>

		<summary type="html">&lt;p&gt;Jifodus: /* Todo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm currently writing a framework for Dwarf Fortress utilities. The general idea is to use C++ interfaces in a cross-compiler fashion that is very easy to use. This is designed to assist utility writers, by making possible to compile once, and have it work on future versions of Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
I'm not going to hold copyright of either the source code of the framework. It is in the Public Domain.&lt;br /&gt;
&lt;br /&gt;
However, I will hold copyright of StartProfile. And it is licensed under the WTFPL: http://sam.zoy.org/wtfpl/&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
First Beta Release January 1, 2008&amp;lt;br /&amp;gt;&lt;br /&gt;
Source Code: http://www.geocities.com/jifodus/dfuf2.zip&amp;lt;br /&amp;gt;&lt;br /&gt;
Binaries: http://www.geocities.com/jifodus/dfufend2.zip&amp;lt;br /&amp;gt;&lt;br /&gt;
Debugging Symbols for the Binaries: http://www.geocities.com/jifodus/dfufdebug2.zip&lt;br /&gt;
&lt;br /&gt;
Alpha Release:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source Code: http://www.geocities.com/jifodus/dfuf.zip&amp;lt;br /&amp;gt;&lt;br /&gt;
Binaries: http://www.geocities.com/jifodus/dfufend.zip&amp;lt;br /&amp;gt;&lt;br /&gt;
Debugging Symbols for the Binaries: http://www.geocities.com/jifodus/dfufdebug.zip&lt;br /&gt;
&lt;br /&gt;
==Todo==&lt;br /&gt;
Before the second release, which is necessary before it can be easily used, the following items need to be taken care of.&lt;br /&gt;
* Bugs&lt;br /&gt;
** There's always going to be a bug somewhere.&lt;br /&gt;
* Features&lt;br /&gt;
** Main Library&lt;br /&gt;
*** '''Error Handling''' - The library itself does not cleanly handle common errors. '''''10% Completed'''''&lt;br /&gt;
*** '''Auto-Update''' - Implement automatic update for both framework code and data. '''''0% Completed'''''&lt;br /&gt;
*** '''Installer''' - An installer for the library. '''''10% Completed'''''&lt;br /&gt;
*** '''Complete Memory Data''' - Complete transforming the memory data available on the wiki to format usable by library. '''''60% Completed'''''&lt;br /&gt;
*** '''More Type Objects''' - Provide interface wrappers to some of the commonly used memory types (Creature and Map). '''''60% Completed'''''&lt;br /&gt;
*** '''Memory Scanner''' - A simple memory searcher. Used for '''Auto-Identifier'''. '''''0% Completed'''''&lt;br /&gt;
*** '''Auto-Identifier''' - Automatically try to find the memory locations and offsets for new versions. '''''0% Completed'''''&lt;br /&gt;
*** '''Remote Memory De/Allocate''' - Needed to properly implement String &amp;amp; Vector set functions. '''''0% Completed'''''&lt;br /&gt;
*** '''Reload Data''' - The data loading portion does not yet properly reload the data. '''''0% Completed'''''&lt;br /&gt;
*** '''Bindings''' - C#/Perl/Java/Python/Lua/Other?&lt;br /&gt;
&lt;br /&gt;
==Features Overview==&lt;br /&gt;
The Dwarf Fortress Utility Framework is designed with the following goals in mind:&lt;br /&gt;
* Utilities compiled for the very first release of the framework still work 10 years later&lt;br /&gt;
** With all the updates and patches applied to the library&lt;br /&gt;
** With the latest release of Dwarf Fortress&lt;br /&gt;
* The end user of a utility can simply download and run the utility and have it work&lt;br /&gt;
* The framework provides a flexible and easy to use way to define types and memory maps, and write utilities to use the types and memory maps&lt;br /&gt;
&lt;br /&gt;
===Current Features===&lt;br /&gt;
* Written in C++, using interfaces&lt;br /&gt;
* Memory data stored in Lua format&lt;br /&gt;
* Sample utility for implementation reference: reimplementation of StartProfile&lt;br /&gt;
* API header &amp;amp; library&lt;br /&gt;
* Complete source code&lt;br /&gt;
* Identify Dwarf Fortress version via PE executable timestamp&lt;br /&gt;
* Cross-compiler/C compatible using Windows COM style interfaces&lt;br /&gt;
* Auto-loading of Lua data files&lt;br /&gt;
* Library self-contained in DLL&lt;br /&gt;
&lt;br /&gt;
===Current Limitations===&lt;br /&gt;
* '''Buggy!'''&lt;br /&gt;
** Memory leaks exist&lt;br /&gt;
* No real documentation whatsoever&lt;br /&gt;
* Sparse comments&lt;br /&gt;
* Memory data is all there, but the library does not yet use all of it&lt;br /&gt;
* The library is designed for C++, the C interface has not been tested (and probably will not work)&lt;br /&gt;
** Also, this was only tested using MSVC++ .net 2005, it will probably work on other version of MSVC++.&lt;br /&gt;
* Does not cleanly handle errors&lt;br /&gt;
* Some interface functions not implemented&lt;br /&gt;
** Map/Get through pointer functions not yet implemented&lt;br /&gt;
** iDFUF::installDataFile is not yet implemented&lt;br /&gt;
* Compiled as debug mode (bloated file sizes)&lt;br /&gt;
* Windows XP or later required (from the use of GetModuleHandleEx)&lt;br /&gt;
* The library is not extensively tested&lt;br /&gt;
&lt;br /&gt;
===Second Release===&lt;br /&gt;
The next release planned features will include:&lt;br /&gt;
* Auto-retrieve memory data off the internet&lt;br /&gt;
* Auto-update framework code itself&lt;br /&gt;
* Have an installer that will install the DLL and data file to a shared location, so multiple utilities can use the same library&lt;br /&gt;
&lt;br /&gt;
===Future===&lt;br /&gt;
And further down the road (through auto-update):&lt;br /&gt;
* Implement specific subsets of the std library; reduce utility size more, no large dependencies for the utilities&lt;br /&gt;
** std::string&lt;br /&gt;
** std::vector&lt;br /&gt;
** std::map&lt;br /&gt;
** Console IO&lt;br /&gt;
** File IO&lt;br /&gt;
* Easy to use GUI framework; for making tools with a nice GUI&lt;br /&gt;
* Cross-process memory allocation&lt;br /&gt;
&lt;br /&gt;
==Data Format==&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
The framework requires definitions of the following types:&lt;br /&gt;
* raw: a raw array of bytes; internally it allows access to an array of type.size * type.fixed_array bytes.&lt;br /&gt;
* pointer: a pointer to a location in Dwarf Fortress's memory; can represent a 32-bit pointer&lt;br /&gt;
* dword: an integer type that is 4 bytes&lt;br /&gt;
* word: an integer type that is 2 bytes&lt;br /&gt;
* byte: an integer type that is 1 byte&lt;br /&gt;
* float: a 32-bit floating point type&lt;br /&gt;
* double: a 64-bit floating point type&lt;br /&gt;
* string: a type that represents a std::string&lt;br /&gt;
** required members:&lt;br /&gt;
*** '''dword''' length: defines how many characters string contains&lt;br /&gt;
*** '''dword''' capacity: defines the maximum number of characters the string buffer can contain&lt;br /&gt;
*** '''pointer''' buffer_ptr: a pointer to a memory location containing the string data&lt;br /&gt;
** optional members:&lt;br /&gt;
*** '''raw''' buffer: a fixed-size array of characters containing the string when length &amp;lt; the fixed size of the buffer&lt;br /&gt;
* vector: a type representing a std::vector&lt;br /&gt;
** required members:&lt;br /&gt;
*** '''pointer''' begin: a pointer to the begining of the memory block&lt;br /&gt;
*** '''pointer''' end: a pointer to just beyond of the last valid element in the vector&lt;br /&gt;
*** '''pointer''' last: a pointer to just beyond the end of the memory block&lt;br /&gt;
&lt;br /&gt;
===Data Files===&lt;br /&gt;
The data files must supply the following information:&lt;br /&gt;
* Types: each element of the type list represents one type; there is a special type called '''Main''', '''Main''' represents the global memory map&lt;br /&gt;
* Signatures: each signature is designed to uniquely identify each version of Dwarf Fortress&lt;br /&gt;
&lt;br /&gt;
====Lua Data Files====&lt;br /&gt;
Classes:&lt;br /&gt;
* '''Type''': 'type =' The value can either be a set containing a type override or the string of a type name.&lt;br /&gt;
** Type: 'type =' A string representing the Type Name of the type to override.&lt;br /&gt;
** Subtypes: An array of type overrides and/or Type Names, that are subtypes of this type.&lt;br /&gt;
** Size: 'size =' An integer overriding the size of the type.&lt;br /&gt;
** Fixed Array Size: 'fixed_size =' An integer overriding the fixed array size of the type.&lt;br /&gt;
* Types: 'Types'&lt;br /&gt;
** Version: String representing version&lt;br /&gt;
*** TypeName: String representing name of the type, special type is '''Main'''.&lt;br /&gt;
**** Size: 'size =' an integer representing&lt;br /&gt;
**** Members: 'members' a table of of name value pairs; The name being the Member Name; The value is a set containing the Type and Offset.&lt;br /&gt;
***** Member Name: String representing the name&lt;br /&gt;
****** Type: 'type =' The value can either be a set containing a '''Type''' override or the name of the of a type.&lt;br /&gt;
****** Offset: 'offset =' The member offset (from the base address).&lt;br /&gt;
****** Pointer: 'pointer =' The pointer in memory for which the member can be found. Used for the '''Main''' type.&lt;br /&gt;
* Signatures 'Signatures'&lt;br /&gt;
** Version: String representing the version (same string as types).&lt;br /&gt;
*** PE Timestamp: 'pe_timestamp' The PE header timestamp value.&lt;br /&gt;
*** .text Adler32: 'adler32' The Adler32 CRC of the &amp;quot;.text&amp;quot; section of the executable.&lt;br /&gt;
*** Text Segments: 'text_segments' An array of segments of the &amp;quot;.text&amp;quot; section of the executable.&lt;br /&gt;
**** Address: [1] = The offset into the &amp;quot;.text&amp;quot; section that the following raw data can be found.&lt;br /&gt;
**** Raw Data: [2] = The data the &amp;quot;.text&amp;quot; segment is supposed to contain.&lt;br /&gt;
&lt;br /&gt;
==Library Usage==&lt;br /&gt;
(This part is only useful for utility writers.)&lt;br /&gt;
&lt;br /&gt;
===Basic Programming===&lt;br /&gt;
The basic program needed to use the library is simply:&lt;br /&gt;
 #include &amp;lt;dfuf.h&amp;gt;&lt;br /&gt;
 void main() {&lt;br /&gt;
 	dfuf::iDFUF *uf = dfuf::newDFUF();&lt;br /&gt;
 	// Do something with the framework&lt;br /&gt;
 	uf-&amp;gt;destroy(); // in theory cleans up all memory used&lt;br /&gt;
 }&lt;br /&gt;
To connect to an instance of Dwarf Fortress the program must first scan for instances,&lt;br /&gt;
then get one of the instances of dwarf fortress like this:&lt;br /&gt;
 if (uf-&amp;gt;scanForInstances() == 0) &lt;br /&gt;
 	// none found&lt;br /&gt;
 	return;&lt;br /&gt;
 dfuf::iDFInstance *instance = uf-&amp;gt;getInstance(0);&lt;br /&gt;
After getting a Dwarf Fortress instance, it then becomes possible to access global&lt;br /&gt;
pointers and memory locations (i.e. creature vector location) with&lt;br /&gt;
iDFInstance::getMemoryObject. iDFInstance::getMemoryObject takes a iType* and an&lt;br /&gt;
Address in Dwarf Fortress memory and returns an appropriate iMemoryType*. There are&lt;br /&gt;
different ways to provide the iType* and the Address, including from the data file&lt;br /&gt;
(via the appropriate name), a iPointerType*, and an iPointer* and iType* lets the&lt;br /&gt;
code create from the raw parts. There is a second version of&lt;br /&gt;
iDFInstance::getMemoryObject, which follows all the pointers to a non-pointer object&lt;br /&gt;
and returns the object called iDFInstance::getMemoryObjectThroughPointers. However,&lt;br /&gt;
it has not been implemented in the first release of the library.&lt;br /&gt;
&lt;br /&gt;
From the first memory object created, the code can then either query the value (from&lt;br /&gt;
any of the i*Type) or map other members (from any of the i*Object) objects.&lt;br /&gt;
&lt;br /&gt;
===Advanced Programming===&lt;br /&gt;
An advanced topic is iMemoryType* creation. It is painful to individually map the&lt;br /&gt;
members, therefore creating an iMemoryType* that simplifies access to the type sounds&lt;br /&gt;
ideal. However, the library only knows about the types it has been compiled with. Enter&lt;br /&gt;
iTypeFactory*, the iTypeFactory* gets registered in iDFUF with iDFUF::addTypeFactory.&lt;br /&gt;
Each factory provides 2 functions: construct &amp;amp; destruct. This allows programs to create&lt;br /&gt;
their own structures to wrap the creature type.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
 class cCreatureType : public dfuf::iMemoryObject&lt;br /&gt;
 {&lt;br /&gt;
 public:&lt;br /&gt;
 	// Implement virtual methods here&lt;br /&gt;
 &lt;br /&gt;
 public:&lt;br /&gt;
 	dfuf::u32 getHappiness() { return happiness-&amp;gt;getValue(); }&lt;br /&gt;
 	void setHappiness(dfuf::u32 value) { happiness-&amp;gt;setValue(value); }&lt;br /&gt;
 	// More methods here&lt;br /&gt;
 	cCreatureType(dfuf::iDFInstance *instance, dfuf::iPointer *base, dfuf::iType *type)&lt;br /&gt;
 	{&lt;br /&gt;
 		this-&amp;gt;instance = instance;&lt;br /&gt;
 		this-&amp;gt;base = base;&lt;br /&gt;
 		this-&amp;gt;type = type;&lt;br /&gt;
 		this-&amp;gt;happiness = map(L&amp;quot;happiness&amp;quot;);&lt;br /&gt;
 	}&lt;br /&gt;
 public:&lt;br /&gt;
 	dfuf::iDFInstance *instance;&lt;br /&gt;
 	dfuf::iPointer *base;&lt;br /&gt;
 	dfuf::iType *type;&lt;br /&gt;
 	dfuf::iIntegerType *happiness;&lt;br /&gt;
 };&lt;br /&gt;
 class cCreatureFactory : public dfuf::iTypeFactory&lt;br /&gt;
 {&lt;br /&gt;
 public:&lt;br /&gt;
 	// new creature&lt;br /&gt;
 	{&lt;br /&gt;
 		return new cCreatureType(instance, base, type);&lt;br /&gt;
 	}&lt;br /&gt;
 	// delete creature&lt;br /&gt;
 	{&lt;br /&gt;
 		delete object;&lt;br /&gt;
 	}&lt;br /&gt;
 };&lt;br /&gt;
 // Global instance, otherwise we'd have to do memory management on the pointer&lt;br /&gt;
 cCreatureFactory global_CreatureFactory;&lt;br /&gt;
 // Usage&lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
 	dfuf::iDFUF *uf = newDFUF();&lt;br /&gt;
 	dfuf::iDFInstance *instance = uf-&amp;gt;getDFInstance(0);&lt;br /&gt;
 	uf-&amp;gt;addTypeFactory(&amp;quot;creature&amp;quot;, &amp;amp;global_CreatureFactory);&lt;br /&gt;
 	iPointer *pointer;&lt;br /&gt;
 	cCreatureType *creature = (cCreatureType *)instance-&amp;gt;getMemoryObject&lt;br /&gt;
 		(pointer, instance-&amp;gt;getType(&amp;quot;creature&amp;quot;));&lt;br /&gt;
 	creature-&amp;gt;setHappiness(-10000); // hahaha die dwarf!&lt;br /&gt;
 	uf-&amp;gt;destroy();&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Jifodus</name></author>
	</entry>
</feed>