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

Editing 23a:Known bugs and issues

Jump to navigation Jump to search

Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.

You are editing a page for an older version of Dwarf Fortress ("Main" is the current version, not "23a"). Please make sure you intend to do this. If you are here by mistake, see the current page instead.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
 
{{Quality|Fine|20:30, 30 April 2013 (UTC)}}
 
{{Quality|Fine|20:30, 30 April 2013 (UTC)}}
 
{{av}}
 
{{av}}
Dwarf Fortress is a constant work in progress, and is thus full of '''bugs'''. Some of them are minor and completely harmless, some are small and annoying, and some are major and even game-changing. This page is a historical list of some of the best-known bugs in 23a; an official compilation of all bugs, and their development status, can be found on the [http://www.bay12games.com/dwarves/mantisbt/my_view_page.php Mantis Bug Tracker]. Please do '''not''' report new bugs for this version; if the problem still exists in the current development version it should be reported on the [http://www.bay12games.com/dwarves/mantisbt/my_view_page.php bug tracker] for that version instead. If you have issues signing up for the bug tracker, see the [http://www.bay12forums.com/smf/index.php?board=6.0 forum bug tracker board] for instructions (but don't report bugs on the forum either).
+
This is a list of '''known bugs and issues'''.
  
 +
Do '''NOT''' post theories, observed problems or unverified hiccups here.
  
 
== Known bugs ==
 
== Known bugs ==
 
A number of significant bugs exist in this version of Dwarf Fortress, and while Toady has fixed some of them in later versions, he will obviously never fix them in this version. To address this, a number of '''binary patches''' have been written which will fix some of the most significant bugs in this version of the game.
 
A number of significant bugs exist in this version of Dwarf Fortress, and while Toady has fixed some of them in later versions, he will obviously never fix them in this version. To address this, a number of '''binary patches''' have been written which will fix some of the most significant bugs in this version of the game.
  
As of April 24 2016, all of the patches listed below (and a few more which are ''not'' listed below) can be found in the [https://github.com/quietust/dfhack-23a/tree/master/patches DFHack-23a GitHub repository] (primarily in the "bugs" subdirectory), in a format which can be easily applied using the "binpatch" utility included with all versions of DFHack for Dwarf Fortress 0.31 thru 0.42.
+
As of April 24 2016, all of the patches listed below (and a few more which are ''not'' listed below) can be found in the [https://github.com/quietust/dfhack-23a/tree/master/patches/bugs DFHack-23a GitHub repository], in a format which can be easily applied using the "binpatch" utility included with all versions of DFHack for Dwarf Fortress 0.31 thru 0.42.
  
 
To apply any other binary patch, open "dwarfort.exe" in a hex editor (such as [http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm XVI32]), jump to the address listed, verify that the sequence of bytes on the left is correct, then overwrite it with the sequence of bytes on the right. If only one set of bytes is listed (and the address is followed by "=" instead of ":"), then the source bytes should all be zeroes.
 
To apply any other binary patch, open "dwarfort.exe" in a hex editor (such as [http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm XVI32]), jump to the address listed, verify that the sequence of bytes on the left is correct, then overwrite it with the sequence of bytes on the right. If only one set of bytes is listed (and the address is followed by "=" instead of ":"), then the source bytes should all be zeroes.
Line 23: Line 24:
  
 
=== Missing Thoughts ===
 
=== Missing Thoughts ===
The [[Sheriff]], [[Mayor]], and [[Baron]] are supposed to receive unhappy thoughts if you do not have enough [[jail]]s, [[fortress guard]]s, and/or [[royal guard]]s. Special logic exists to prevent these thoughts from happening within 3 months of their arrival at your fortress (so you get a grace period to comply with their new demands). Due to a bug, the condition is backwards, so they only receive these thoughts during their first 3 months at your fortress. This bug (#5844) was officially fixed in version 0.40.05.
+
The [[Sheriff]], [[Mayor]], and [[Baron]] are supposed to receive unhappy thoughts if you do not have enough [[jail]]s, [[fortress guard]]s, and/or [[royal guard]]s. Special logic exists to prevent these thoughts from happening within 3 months of their arrival at your fortress (so you get a grace period to comply with their new demands). Due to a bug, the condition is backwards, so they only receive these thoughts during their first 3 months at your fortress.
  
 
{{collapsible|hidden=yes|Patched with "thought-bugs.dif"|
 
{{collapsible|hidden=yes|Patched with "thought-bugs.dif"|
Line 30: Line 31:
 
* 0x234425 : 84 -> 85 (insufficient royal guards for Baron)}}
 
* 0x234425 : 84 -> 85 (insufficient royal guards for Baron)}}
  
Additionally, nobles which require a [[tomb]] do not receive any thoughts based on its quality, whether it is above or below the quality level they require. They will still receive unhappy thought about '''other''' dwarves having better tombs than them (unless said dwarf actually deserves a tomb that good), though. This happens because the noble compares its current tomb quality to '''itself''' rather than to its desired tomb quality. This bug (#5843) still exists in the current version of Dwarf Fortress.
+
Additionally, nobles which require a [[tomb]] do not receive any thoughts based on its quality, whether it is above or below the quality level they require. They will still receive unhappy thought about '''other''' dwarves having better tombs than them (unless said dwarf actually deserves a tomb that good), though. This happens because the noble compares its current tomb quality to '''itself''' rather than to its desired tomb quality.
  
 
{{collapsible|hidden=yes|Patched with "thought-bugs.dif"|
 
{{collapsible|hidden=yes|Patched with "thought-bugs.dif"|
Line 69: Line 70:
  
 
=== Vermin Problems ===
 
=== Vermin Problems ===
If a vermin marked as being capable of escaping from traps is placed inside a container (e.g. a [[cage]], [[animal trap]], or an Adventurer's [[backpack]]), it will remain inside indefinitely, but if the container happens to be an [[artifact]], the vermin will escape immediately. Not surprisingly, this bug is caused by a backwards condition. This bug (#6117) was officially fixed in version 0.40.05.
+
If a vermin marked as being capable of escaping from traps is placed inside a container (e.g. a [[cage]], [[animal trap]], or an Adventurer's [[backpack]]), it will remain inside indefinitely, but if the container happens to be an [[artifact]], the vermin will escape immediately. Not surprisingly, this bug is caused by a backwards condition.
  
 
{{collapsible|hidden=yes|Patched with "vermin-bugs.dif"|
 
{{collapsible|hidden=yes|Patched with "vermin-bugs.dif"|
 
* 0x169B1B : 84 -> 85}}
 
* 0x169B1B : 84 -> 85}}
  
Additionally, if a live [[fish]] is successfully caught and placed inside an aquarium filled with water, all subsequently captured live vermin will fail to be processed by the game - fish out of water will not suffocate, and purring maggots will never allow themselves to be milked subsequent times. This bug results from the incorrect usage of a C++ "break;" statement instead of "continue;", causing it to exit out of its loop early instead of continuing on the next entry. This bug (#6116) was officially fixed in version 0.40.05.
+
Additionally, if a live [[fish]] is successfully caught and placed inside an aquarium filled with water, all subsequently captured live vermin will fail to be processed by the game - fish out of water will not suffocate, and purring maggots will never allow themselves to be milked subsequent times. This bug results from the incorrect usage of a C++ "break;" statement instead of "continue;", causing it to exit out of its loop early instead of continuing on the next entry.
  
 
{{collapsible|hidden=yes|Patched with "vermin-bugs.dif"|
 
{{collapsible|hidden=yes|Patched with "vermin-bugs.dif"|
 
* 0x169D12 : DD -> D6
 
* 0x169D12 : DD -> D6
* 0x169D28 : 85 C6 -> 84 BF}}
+
* 0x169D29 : C6 -> BF}}
  
 
=== Item Improvements ===
 
=== Item Improvements ===
Line 117: Line 118:
  
 
=== Art Facets ===
 
=== Art Facets ===
Different civilizations are supposed to assign higher (or lower) values to art images portraying certain types of creatures; later versions control this using the ART_FACET_MODIFIER token in the raws, but in this version it is hardcoded. Due to a bug, these modifiers are not applied correctly due to a type cast being applied to the wrong pointer. This bug (#6440) was officially fixed in version 0.40.05.
+
Different civilizations are supposed to assign higher (or lower) values to art images portraying certain types of creatures; later versions control this using the ART_FACET_MODIFIER token in the raws, but in this version it is hardcoded. Due to a bug, these modifiers are not applied correctly due to a type cast being applied to the wrong pointer.
  
 
{{collapsible|hidden=yes|Patched with "trade-bugs.dif"|
 
{{collapsible|hidden=yes|Patched with "trade-bugs.dif"|
Line 136: Line 137:
  
 
=== Unmeltable Chests ===
 
=== Unmeltable Chests ===
If you mark a metal [[chest]] for melting, a dwarf will haul to a [[smelter]] (or [[magma smelter]]), sit there for a while, and then not actually melt the item, potentially leading to an infinite loop if the job was added on Repeat. This is due to the way the game handles glassmaking jobs - it removes the sand bag item (BOX made of cloth/leather and containing SAND) from the job and replaces it with a piece of raw glass, but it removes the "sand bag" item before confirming that it's actually a bag and that it actually contains sand. Since "melt" jobs take place afterwards, the chest is no longer part of the job and nothing actually happens (aside from the unit gaining some skill and possibly using up fuel). This bug (#2493) was officially fixed in version 0.40.05.
+
If you mark a metal [[chest]] for melting, a dwarf will haul to a [[smelter]] (or [[magma smelter]]), sit there for a while, and then not actually melt the item, potentially leading to an infinite loop if the job was added on Repeat. This is due to the way the game handles glassmaking jobs - it removes the sand bag item (BOX made of cloth/leather and containing SAND) from the job and replaces it with a piece of raw glass, but it removes the "sand bag" item before confirming that it's actually a bag and that it actually contains sand. Since "melt" jobs take place afterwards, the chest is no longer part of the job and nothing actually happens (aside from the unit gaining some skill and possibly using up fuel).
  
 
{{collapsible|hidden=yes|Patched with "job-bugs.dif"|
 
{{collapsible|hidden=yes|Patched with "job-bugs.dif"|
Line 152: Line 153:
 
* 0x220857 : A1 EC B3 AC 00 -> 66 09 79 20 90
 
* 0x220857 : A1 EC B3 AC 00 -> 66 09 79 20 90
 
* 0x220876 : 09 68 20 A1 EC B3 AC 00 8B 0C B0 8B 81 -> F7 40 20 80 01 75 10 66 09 68 20 8B 82}}
 
* 0x220876 : 09 68 20 A1 EC B3 AC 00 8B 0C B0 8B 81 -> F7 40 20 80 01 75 10 66 09 68 20 8B 82}}
 
=== Clothing Damage ===
 
Dwarves receive one unhappy [[thought]] ("old clothing") when their clothes reach the first [[wear]] level and are supposed to receive a different one ("tattered clothing") when they reach the second wear level; due to a bug, they instead receive '''both''' thoughts at wear level 2 and suffer a much greater happiness penalty, often enough to induce immediate [[tantrum]]s.
 
 
{{collapsible|hidden=yes|Patched with "thought-bugs.dif"|
 
* 0x2BCC76 : 05 -> 12
 
* 0x2BCC78 : 74 0F EB 1A -> 75 1C 6A 00
 
* 0x2BCC7D : 00 -> FF
 
* 0x2BCC7F : FF 6A 68 8B CD E8 87 32 FF FF -> 69 89 E9 E8 89 32 FF FF EB 0D
 
* 0x2BCC8E : 69 -> 68}}
 
  
 
=== Caravan Oddities ===
 
=== Caravan Oddities ===
Line 191: Line 182:
  
 
=== Inaccurate Siege Engines ===
 
=== Inaccurate Siege Engines ===
Whenever Dwarves operate [[catapult]]s or [[ballista]]e, they attempt to fire their projectile perfectly straight, but low skill levels cause it to veer off to either side. Due to a bug, the result of the skill check is discarded and the projectile ''always'' fails to fly straight. This has an additional effect on catapult stones, since they used the "better" trajectory when limiting their flight distance (based on the presence of a target), making them even less accurate. This bug (#6483) was officially fixed in version 0.40.13.
+
Whenever Dwarves operate [[catapult]]s or [[ballista]]e, they attempt to fire their projectile perfectly straight, but low skill levels cause it to veer off to either side. Due to a bug, the result of the skill check is discarded and the projectile ''always'' fails to fly straight. This has an additional effect on catapult stones, since they used the "better" trajectory when limiting their flight distance (based on the presence of a target), making them even less accurate. This bug was officially fixed in version 0.40.13.
  
 
{{collapsible|hidden=yes|Patched with "job-bugs.dif"|
 
{{collapsible|hidden=yes|Patched with "job-bugs.dif"|
Line 202: Line 193:
 
=== Milking Issue ===
 
=== Milking Issue ===
  
To milk something it has to be a [[vermin]]ous creature, so the only milkable thing you can milk yourself is a [[purring maggot]]. For unknown reasons, purring maggots which have been ''tamed'' are not eligible for milking, so you have to leave them untamed.
+
To milk something it has to be a [[vermin]]ous creature.  The only milkable thing you can carry is a purring maggot.  Larger creatures are not yet milkable because the AI is not yet implemented to bring the creatures to the [[farmer's workshop]]. It would be relatively simple to implement, but is not a priority at this time.
  
Larger creatures are not milkable because the logic to bring the creatures to the [[farmer's workshop]] was not added until version 0.31.01; fortunately, other civilizations can still milk such animals "off screen" for your benefit and bring their milk and cheese as trade goods.
+
Note that while you cannot milk larger animals yourself, civilisations can still milk animals "off screen" for your benefit.
  
 
=== Building a Wooden Weapon... Rack ===
 
=== Building a Wooden Weapon... Rack ===

Please note that all contributions to Dwarf Fortress Wiki are considered to be released under the GFDL & MIT (see Dwarf Fortress Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel Editing help (opens in new window)