- 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.
23a:Known bugs and issues
This article is about an older version of DF. |
This is a list of known bugs and issues.
Do NOT post theories, observed problems or unverified hiccups here.
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.
To apply a binary patch, open "dwarfort.exe" in a hex editor (such as XVI32), jump to the address listed, verify that the sequence of bytes on the left are correct, then overwrite them with the sequence of bytes on the right. If only one set of bytes is listed (and the character between the address and the patch is an equals sign instead of a colon), then the source bytes should all be zeroes.
Artifact holders
When a dwarf completes a strange mood, it will carry its artifact around with it. After several months, the dwarf is supposed to either drop the artifact (leaving it available for general use), hide it (making it disappear from the game), or become obsessed with it (and carry it until death, going insane if the artifact is ever lost). Due to a bug, this never happens - dwarves carry their artifacts forever.
The underlying problem is that when the game compares the dwarf carrying the artifact to the dwarf who created it (to prevent a hauler from hiding or obsessing over an artifact it did not create), it truncates the creator's 32-bit ID to an 8-bit value; since more than 256 units are created during world generation, this prevents the numbers from ever matching.
Patch:
- 0x14079B : 8A -> 8B
- 0x1407A1 : B0 FE C2 04 00 90 90 90 -> B8 FE FF FF FF C2 04 00
- 0x0B5430 : B0 FE C2 04 00 90 90 90 -> B8 FE FF FF FF C2 04 00
- 0x1E8015 : 0F BE C0 -> 90 90 90
Missing Thoughts
The Sheriff, Mayor, and Baron are supposed to receive unhappy thoughts if you do not have enough jails, fortress guards, and/or royal guards. 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.
Patches:
- 0x2344E2 : 74 -> 75 (insufficient jails for Sheriff)
- 0x23448B : 74 -> 75 (insufficient fortress guards for Sheriff and Mayor)
- 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.
Patch:
- 0x2BCEF3 : 8B 54 24 3C 8B F0 -> 90 E9 61 17 09 00
- 0x34E65A = 8B 94 24 70 01 00 00 89 C6 E9 91 E8 F6 FF
Stuck Dwarves
If a dwarf wanders near a magma smelter, magma glass furnace, or magma kiln, it can stop on a tile that has magma beneath it, leaving it unable to move away and causing it to repeatedly spam Drink job cancellations due to "cannot find path". This bug is well known for its appearance in Update 2-11 of the saga of Boatmurdered, in which "Sankis has suddenly decided to try and drink out of the lava river".
The problem is that these workshops use the same tile accessibility logic as their non-magma counterparts, which allows dwarves to walk onto the magma tiles.
Patch:
- 0x016EF0 : A5 6E 41 -> 68 E6 74
- 0x34E668 = 83 7C 24 18 01 0F 85 A0 85 CC FF 8B 44 24 1C 85 C0 0F 85 94 85 CC FF E9 30 88 CC FF
Another bug causes dwarves to get stuck inside buildings when constructing statues, windows, and wells, since the jobs cause them to stand on top of the building itself during construction instead of next to the building.
Patch:
- 0x0F64D7 : 12 0F 84 52 01 -> 0F 0F 8C 12 00
- 0x0F64EB : 84 -> 8E
- 0x0F7E9F : 12 0F 84 41 01 -> 0F 0F 8C 12 00
- 0x0F7EB3 : 84 -> 8E
Z Coordinate Bugs
While fortresses in this version only occupy a single Z-level, the game engine still tracks everything in 3 dimensions. However, there are several places where the game forgets to initialize the Z-coordinate of newly created objects, resulting in them not appearing correctly if you start a new fortress after having done something else (such as generate a new world).
The first place where this problem appears is that waterfalls in the cave river sometimes fail to generate mist. The fix for this bug only applies to newly created fortresses; for existing fortresses, a 3rd-party utility is necessary to fix the problem.
Patch:
- 0x28A90E : 66 -> 90
The second instance of this bug affects the hidden webs woven by giant cave spiders over the chasm, preventing dwarves from ever stumbling upon them. As above, this fix only affects newly created spider webs.
Patch:
- 0x249EDD : BB 10 00 00 00 -> 66 89 6B 20 90
- 0x249EE5 : 94 01 00 -> AC 47 10
- 0x34E695 = BB 10 00 00 00 E9 DE B9 EF FF
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.
Patch:
- 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.
Patch:
- 0x169D12 : DD -> D6
- 0x169D29 : C6 -> BF
Item Improvements
For reasons unknown, items which have been improved in any way are ineligible for most jobs. This restriction was removed in later versions of Dwarf Fortress, and this patch does the same thing.
Patch:
- 0x0F6C04 : D7 05 -> 00 00
- 0x0F74DC : AB 03 -> 00 00
- 0x107C03 : D3 02 -> 00 00
- 0x108231 : D0 02 -> 00 00
- 0x1087B7 : 17 04 -> 00 00
- 0x108EA3 : FD 03 -> 00 00
Item Production
In the raws for trap components, the MATERIAL_SIZE token allows specifying how many bars are needed to make it, but this value is never actually used. Curiously, logic does exist to look up the trap component's material size, but the logic is never reached because it is inside a case which does not handle trap components.
Patch:
- 0x0F82C0 : 22 23 -> 05 05
- 0x0F835B : 09 -> 00
- 0x0F8423 : 0D -> 0A
Whenever a strange mood produces a gauntlet, it always makes it right-handed. What actually happens is that it has a 50% chance to make the gauntlet right-handed, but the opposing case also makes it right-handed - the fix makes it left-handed instead.
Patch:
- 0x12DD09 : 01 -> 00
If an armorsmith in a strange mood decides to make a helmet, it instead creates the item using the SHOES item type. This bug was officially fixed in version 0.34.06.
Patch:
- 0x171ED7 : 0F 95 C0 84 C0 -> BD 1D 00 00 00
Miscarriages
If a pregnant dwarf gets too hungry or thirsty (Starving or Dehydrated), she will have a miscarriage and receive an unhappy thought. Due a bug, though, the check for dehydration accidentally checks the dwarf's current Hunger instead of her Thirst, resulting in a miscarriage if the dwarf merely becomes Hungry.
Patch:
- 0x2BD3CF : 81 F9 50 C3 00 -> 90 E9 AF 12 09
- 0x34E684 = 8B 8D 8C 03 00 00 81 F9 50 C3 00 00 E9 40 ED F6 FF
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.
Patch:
- 0x1F3FBA : 43 -> 41
Guild Request Crash
If more than 6 guild leaders make requests to the Mayor in a single season, the game will crash at the start of the next season once the Mayor attempts to dismiss the 7th request. This is caused by the wrong array being checked for a particular value.
Patch:
- 0x2CB95A : 82 -> 81
Short-lived Demands
When a noble issues a demand, the demand's duration is never initialized, so it is possible that it will expire immediately after it is made.
Patch:
- 0x2B45A1 : 8B 4C 24 34 66 8B 54 -> 31 C0 89 42 0C 8B 4C
- 0x2B45AC : 51 -> 4A
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).
Patch:
- 0x226817 : E8 44 FD FD FF -> 89 74 24 18 5E
- 0x226894 : E8 87 6F FC FF -> E9 06 7E 12 00
- 0x34E69F = 8B 4C 24 18 51 89 D9 E8 B5 7E EB FF E8 70 F1 E9 FF E9 E4 81 ED FF
Noise Memory
If dwarves are exposed to loud noises while they are sleeping, they will get unhappy thoughts once they wake up depending on the noise's loudness and proximity. However, the dwarf only remembers the last noise it heard, so if it is exposed to a very loud noise followed by a moderately quiet (but still audible) noise, it will only be mildly annoyed. In later versions of Dwarf Fortress, this works correctly.
Patch:
- 0x220839 : 81 -> 89
- 0x22083F : 09 78 20 8B 15 EC B3 AC 00 8B 04 B2 8B 80 98 02 00 -> 8B 51 20 66 81 E2 80 01 66 81 FA 80 01 74 0E 8D 40
- 0x220853 : 60 -> 61
- 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
Caravan Oddities
When caravans bring bags of mill powders (flour, sugar, or dye) or barrels of extracts (e.g. milk), they only put one single unit inside the container. In later versions of Dwarf Fortress, they bring 10 units.
Patch (powders):
- 0x25188B : 8B 6F 10 -> B0 0A 90
- 0x25188F : 81 CD 00 C0 00 00 -> 66 81 4F 10 00 C0
- 0x251897 : 89 6F 10 -> 88 47 3C
Patch (extracts):
- 0x251A6F : 8B 5D 10 56 80 CF C0 -> 80 4D 11 C0 B0 0A 53
- 0x251A78 : 89 5D 10 -> 88 45 3C
Meal Values
Prepared meals are supposed to derive their value from not only their preparation quality but also the individual ingredients used. Due to what is assumed to have been a typo, the ingredient values are ignored.
Patch:
- 0x35D44C : 90 66 5E -> E0 29 5F
Tree Biomes
Trees which include the token [BIOME_ANY_TROPICAL] are supposed to appear in all tropical biomes. Due to a bug, though, they do not appear in tropical marshes or swamps, instead appearing in temperate marshes and swamps (in addition to the other tropical biomes). This only occurs when using modded raws, as the stock raws do not use this token for trees.
Patch:
- 0x218D26 : 06 -> 0A
- 0x218D64 : 07 -> 0B
- 0x218DDC : 08 -> 0D
- 0x218E19 : 09 -> 0E
Minor issues
The issues that follow aren't really bugs per se, but simply things that can confuse new players.
Milking Issue
To milk something it has to be a verminous 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.
Note that while you cannot milk larger animals yourself, civilisations can still milk animals "off screen" for your benefit.
Building a Wooden Weapon... Rack
There is a minor problem with the carpenter's workshop. Inexperienced players might be confused because in the build menu it says "Construct wooden Weapon", but they will get a weapon rack out of the deal. This isn't a bug, merely a shortcoming of the interface. You cannot actually build wooden weapons at the carpenter's workshop; the full name, "Construct wooden Weapon rack", is cut off in the default view, and can be seen if Tab is used to expand the menu. Expanding the menu will reveal that the option does not specify constructing a wooden weapon, but rather a wooden weapon rack.
Creatures Don't Always Use Graphics
When a creature is caught in a cage and put in a stockpile, and graphic sets are used, the creature is displayed with the correct graphic tile. But should you install the goblin cage anywhere, the graphic is ignored and the traditional letter displayed instead. this also happens with dead creatures, even dwarves.