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 v0.34:Modding guide

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 "v0.34"). 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|Exceptional|14:13, 7 November 2013 (UTC)}}
+
{{av}}{{Quality|Fine}}
{{av}}
+
 
 
This is intended to be a guide to inform those new to DF modding on what elements of the game can be modified, and how. After reading through this guide, a user should be capable of editing creatures, entities, materials ''et al'', and creating their own.
 
This is intended to be a guide to inform those new to DF modding on what elements of the game can be modified, and how. After reading through this guide, a user should be capable of editing creatures, entities, materials ''et al'', and creating their own.
  
Line 7: Line 7:
 
This guide is based on [[40d:Modding guide|Teldin's guide]], originally created for version 0.27.176.39c. Per wiki tradition, it has been updated through all the major releases since then; hopefully it reflects current knowledge.
 
This guide is based on [[40d:Modding guide|Teldin's guide]], originally created for version 0.27.176.39c. Per wiki tradition, it has been updated through all the major releases since then; hopefully it reflects current knowledge.
  
'''See also:''' [[:Category:V0.34:Modding]]
+
'''See also:''' [[:Category:DF2012:Modding]]
  
 
= Modding Guide =
 
= Modding Guide =
 
== Token Reference ==
 
 
It's always good to refer to tokens on the wiki. Even experienced modders have to look up tokens! A list of articles about tokens can be found [http://dwarffortresswiki.org/index.php/Token here.]
 
  
 
== Basics of DF modding ==
 
== Basics of DF modding ==
Line 35: Line 31:
 
As you can see, each file comprises a header string stating the file name, a second header stating the type of object data it contains, followed by the contents of the file itself. These are all necessary elements of the file, and without them, the file won't be parsed correctly by the game. You may have also noticed the file naming scheme - this is also important; files containing creatures have names starting with "creature_", entity file names must begin with "entity_", etc..
 
As you can see, each file comprises a header string stating the file name, a second header stating the type of object data it contains, followed by the contents of the file itself. These are all necessary elements of the file, and without them, the file won't be parsed correctly by the game. You may have also noticed the file naming scheme - this is also important; files containing creatures have names starting with "creature_", entity file names must begin with "entity_", etc..
  
Below the headers, there begins a list of entries. Each entry is made up of its own header (in this case, "[CREATURE:DWARF]"), again stating the type of object, and then the object's unique identifier - if an identifier isn't unique, the game will mess up and you'll get some serious, and potentially very trippy, errors. Below that, we have the body of the entry, which determines the entry's specific properties.
+
Below the headers, there begins a list of entries. Each entry is made up of its own header (in this case, "[CREATURE:DWARF]"), again stating the type of object, and then the object's unique identifier - if an indentifier isn't unique, the game will mess up and you'll get some serious, and potentially very trippy, errors. Below that, we have the body of the entry, which determines the entry's specific properties.
  
 
The body of an entry is made up of a series of "tokens", which are essentially flags that can be added or removed to affect the entry's attributes. Most of these effects are hardcoded: for example, it's possible to make a creature only eat meat with the [CARNIVOROUS] token, but it's impossible to create your own token detailing a specific diet for the creature.
 
The body of an entry is made up of a series of "tokens", which are essentially flags that can be added or removed to affect the entry's attributes. Most of these effects are hardcoded: for example, it's possible to make a creature only eat meat with the [CARNIVOROUS] token, but it's impossible to create your own token detailing a specific diet for the creature.
Line 42: Line 38:
  
 
* Try to avoid modifying the existing raw files when adding objects. It makes removing mods far easier.
 
* Try to avoid modifying the existing raw files when adding objects. It makes removing mods far easier.
* When adding files, all you need to include to ensure proper references are maintained is the token identifier's.  The game will load up all *.txt in the raw folder, and searches through them by tokens.  For example: You can add a new pair of leather boots and not even have to add it to the item_shoes.txt file, but rather make your own file, say item_shoes_new.txt and ensure you have the token listed, ex. [ITEM_SHOES:ITEM_SHOES_BOOTS_NEW], that's how the game will look for the item.
 
 
* If you want to edit an already-existing creature, always back up the files you plan on editing to a different location. Since v0.31.22, the game no longer loads backup files, but duplicate entries are still a very bad thing.
 
* If you want to edit an already-existing creature, always back up the files you plan on editing to a different location. Since v0.31.22, the game no longer loads backup files, but duplicate entries are still a very bad thing.
 
* When a new world is generated, all the raw files get copied into a \raw\ folder within the applicable save folder. If you want to change something within a world that's already been generated, you'll have to edit those files, not the ones in ~DF\raw\objects.
 
* When a new world is generated, all the raw files get copied into a \raw\ folder within the applicable save folder. If you want to change something within a world that's already been generated, you'll have to edit those files, not the ones in ~DF\raw\objects.
Line 49: Line 44:
 
== Modding civilizations (entities) ==
 
== Modding civilizations (entities) ==
  
Entities - the objects that determine how civilizations work - are stored in entity_default.txt (though, like all other files, you may add more). They follow the same format as any other raw file:
+
Entities - the objects that determine how civilisations work - are stored in entity_default.txt (though, like all other files, you may add more). They follow the same format as any other raw file:
  
 
  entity_default
 
  entity_default
Line 58: Line 53:
 
     [CREATURE:CREATURETYPE]
 
     [CREATURE:CREATURETYPE]
 
     [TRANSLATION:LANGUAGETYPE]
 
     [TRANSLATION:LANGUAGETYPE]
     [BIOME_SUPPORT:BIOMETOKEN:FREQUENCY]
+
     [BIOME_SUPPORT:BIOMETOKEN:FREQENCY]
 
     ...[OTHER TAGS]...
 
     ...[OTHER TAGS]...
  
Line 67: Line 62:
 
Oh, and before you get any funny ideas - it ''is'' possible to define more than one creature for a civ, but that won't work in quite the way you probably expect: later on, in the creature section, you'll learn about castes, which will provide a much more viable alternative, so try to bear with us until then.
 
Oh, and before you get any funny ideas - it ''is'' possible to define more than one creature for a civ, but that won't work in quite the way you probably expect: later on, in the creature section, you'll learn about castes, which will provide a much more viable alternative, so try to bear with us until then.
  
"[TRANSLATION:]" defines the language file that the entity will be using, which will determine what their untranslated words are for things. This doesn't determine which words they use for naming things, only the way those words are spelled. The default language files are HUMAN, DWARF, ELF, and GOBLIN.
+
"[TRANSLATION:]" defines the language file that the entity will be using, which will determine what their untranslated words are for things. This doesn't determine which words they use for naming things, only the way those words are spelt. The default language files are HUMAN, DWARF, ELF, and GOBLIN.
  
"[BIOME_SUPPORT:]" defines the biomes that civs will attempt to settle in. The "FREQUENCY" value determines the likelihood of them building there, but also raises an important point: most of the values you'll be setting for things are relative to each other. If one was to type:
+
"[BIOME_SUPPORT:]" defines the biomes that civs will attempt to settle in. The "FREQUENCY" value determines the likelyhood of them building there, but also raises an important point: most of the values you'll be setting for things are relative to each other. If one was to type:
  
 
  [BIOME_SUPPORT:ANY_FOREST:1]
 
  [BIOME_SUPPORT:ANY_FOREST:1]
Line 81: Line 76:
 
This holds true for a lot of values throughout the files, excluding when it simply doesn't make sense, such as in materials.
 
This holds true for a lot of values throughout the files, excluding when it simply doesn't make sense, such as in materials.
  
You can find many details about the rest of the civilization tokens [[entity token|here]]. Besides those mentioned, some fundamental ones are the CIV_CONTROLLABLE token, which lets you control the civ in fortress mode, the INDIV_CONTROLLABLE token, which allows you to play the civ in adventure mode as an outsider, and the ADVENTURE_TIER token, which allows you to play a civ native (non-outsider) in adventure mode. Other tokens that you should pay attention to are START_BIOME and the ones regarding sites, but in general, you can just run through the aforementioned list and add or remove what you want.
+
You can find many details about the rest of the civilization tokens [[entity token|here]]. Besides those mentioned, some fundamental ones are the CIV_CONTROLLABLE token, which lets you control the civ in fortress mode, the INDIV_CONTROLLABLE token, which allows you to play the civ in adventure mode as an outsider, and the ADVENTURE_TIER token, which allows you to play a civ native (non-outsider) in adventure mode. Other tokens that you should pay attention to are START_BIOME and the ones regarding sites, but in general, you can just run through the aformentioned list and add or remove what you want.
  
 
If you have more than one civ with the CIV_CONTROLLABLE token, all the available civs from those entities will appear in the group selection section on the embark screen. It may not be immediately obvious from which species each civ may be - while this can be determined from legends mode, the topmost species in the "neighbors" display in the embark screen is always the same as the currently selected species; if your group is dwarven, dwarves will be topmost, whilst (say) elves will be topmost if your chosen group is elven. By default, the game seems to choose a civ (and therefore a species if there is more than one) at random.
 
If you have more than one civ with the CIV_CONTROLLABLE token, all the available civs from those entities will appear in the group selection section on the embark screen. It may not be immediately obvious from which species each civ may be - while this can be determined from legends mode, the topmost species in the "neighbors" display in the embark screen is always the same as the currently selected species; if your group is dwarven, dwarves will be topmost, whilst (say) elves will be topmost if your chosen group is elven. By default, the game seems to choose a civ (and therefore a species if there is more than one) at random.
Line 114: Line 109:
 
  [CULL_SYMBOL:ALL:NEGATOR]
 
  [CULL_SYMBOL:ALL:NEGATOR]
  
This section deals with everything else. The things that haven't already been dealt with (hence the "REMAINING") - such as site names, kingdom names, the names of individuals, and such - will have names from the ARTIFICE and EARTH symbol groups. After that the dwarf entity is told to cull all innapropriate symbols - this applies to everything (hence the "ALL") so if the game happens to choose a symbol associated with, say, EVIL for one of the battles, it'll scrap that name and try again. This sort of thing adds a lot of flavour to DF's entities and can account for a lot of a civ's perceived personality.
+
This section deals with everything else. The things that haven't already been dealt with (hence the "REMAINING") - such as site names, kingdom names, the names of individuals, and such - will have names from the ARTIFICE and EARTH symbol groups. After that the dwarf entity is told to cull all innapropriate symbols - this applies to everything (hence the "ALL") so if the game happens to choose a symbol associated with, say, EVIL for one of the battles, it'll scrap that name and try again. This sort of thing adds a lot of flavour to DF's entities and can account for a lot of a civ's percieved personality.
  
 
Another basic thing to note: any entity token that's dealing with weapons, armor, clothing, etc., will state the items that the civ can build natively, not necessarily the ones they can wear or use. For example, you could create a species with no clothes specified, but then rob a clothes shop in adventurer mode and wear everything you want, or give them weapons that are too large to wield and they could sell them, but not use them.  
 
Another basic thing to note: any entity token that's dealing with weapons, armor, clothing, etc., will state the items that the civ can build natively, not necessarily the ones they can wear or use. For example, you could create a species with no clothes specified, but then rob a clothes shop in adventurer mode and wear everything you want, or give them weapons that are too large to wield and they could sell them, but not use them.  
Line 120: Line 115:
 
An easy method of creating a civilization is just to copy-paste a similar one to the bottom of the entity_default.txt file and edit things to your liking. Remember to always change the civ's "ENTITY:" identifier! This can be anything so long as it's not already existing.
 
An easy method of creating a civilization is just to copy-paste a similar one to the bottom of the entity_default.txt file and edit things to your liking. Remember to always change the civ's "ENTITY:" identifier! This can be anything so long as it's not already existing.
  
At the end of some of the default entries you'll find a list of positions, both ones that'll directly affect you in fort mode (such as nobles) and ones that'll primarily affect worldgen and adventure mode. A list of the tokens applicable to positions can be found [[position token|here]]; they don't require a great deal of explanation.
+
At the end of some of the default entries you'll find a list of positions, both ones that'll directly affect you in fort mode (such as nobles) and ones that'll primarily affect worldgen and adventure mode. A list of the tokens applicable to positions can be found [[position token|here]]; they don't require a great deal of explaination.
  
 
== Modding the creatures ==
 
== Modding the creatures ==
Line 332: Line 327:
 
== Modding items ==
 
== Modding items ==
  
Items are fairly simple to deal with. By default, each item type is contained in its own file; this may help make browsing for a specific item easier, but from a purely technical point of view, it's possible to throw all items into one file. Unfortunately, item tokens don't seem to be especially well-documented (at least not as well as the other object types), but you should be able to figure out most things by way of our explanations and your assumptions.
+
Items are fairly simple to deal with. By default, each item type is contained in its own file; this may help make browsing for a specific item easier, but from a purely technical point of view, it's possible to throw all items into one file. Unfortunately, item tokens don't seem to be especially well-documented (at least as not as well as the other object types), but you should be able to figure out most things by way of our explainations and your assumptions.
  
 
Let's look at the entry for, of course, the thong:
 
Let's look at the entry for, of course, the thong:
Line 367: Line 362:
 
SIZE determines how heavy the weapon is. This has a substantial effect on weapon effectiveness. SKILL determines which skill is used in using the weapon; a list of skills can be found [[skill token|on this page]]. MINIMUM_SIZE determines the minimum size a creature must be before the weapon can be wielded, while TWO_HANDED determines how large a creature must be in order to wield the weapon with one hand.
 
SIZE determines how heavy the weapon is. This has a substantial effect on weapon effectiveness. SKILL determines which skill is used in using the weapon; a list of skills can be found [[skill token|on this page]]. MINIMUM_SIZE determines the minimum size a creature must be before the weapon can be wielded, while TWO_HANDED determines how large a creature must be in order to wield the weapon with one hand.
  
Attacks take a little more explanation. The first value determines the contact area of the weapon's attack; this should be high for slashing weapons and low for bludgeoning, piercing and poking ones. The second value determines how deep the weapon penetrates - for BLUNT attacks this value is ignored as they're not supposed to penetrate anyway, but in the case of EDGE attacks it should generally be lower for slashing attacks and higher for stabbing attacks.
+
Attacks take a little more explaination. The first value determines the contact area of the weapon's attack; this should be high for slashing weapons and low for bludgeoning, piercing and poking ones. The second value determines how deep the weapon penetrates - for BLUNT attacks this value is ignored as they're not supposed to penetrate anyway, but in the case of EDGE attacks it should generally be lower for slashing attacks and higher for stabbing attacks.
  
Following these are the nouns and verb used; they should be self-explanatory. Finally, we have the velocity modifier, which has a multiplying effect on the weapon's size for the purposes of determining how powerful it is in combat.
+
Following these are the adjectives used; they should be self-explanatory. Finally, we have the velocity modifier, which has a multiplying effect on the weapon's size for the purposes of determining how powerful it is in combat.
  
 
Other, more miscellaneous items are generally simple and shouldn't require any further explanation.
 
Other, more miscellaneous items are generally simple and shouldn't require any further explanation.
Line 658: Line 653:
 
== Examples ==
 
== Examples ==
  
The Hydling by Mysteryguye (annotated and separated into blocks by Putnam)
+
Coming later
 
 
[CREATURE:HYDLING]
 
[DESCRIPTION:A five-headed small hairy thing, about the size of a dog. It is very loyal to its masters, and will promptly disembowel any enemy straying too close.]
 
This is the description that shows up in-game when viewing the creature.
 
 
 
[NAME:hydling:hydlings:hydlish] If there were a civ made of hydlings, it would appear as "hydlings" in the neighbors screen.
 
 
 
[CASTE_NAME:hydling:hydlings:hydlish]
 
 
 
[CREATURE_TILE:'='][COLOR:2:0:1] Will appear as a light green "=".
 
 
 
[PETVALUE:78][NATURAL] Creature is known to be naturally occurring by the game. Will cost 40 embark points to buy.
 
 
 
[LARGE_ROAMING] Will spawn outdoors, wandering around.
 
 
 
[COMMON_DOMESTIC][TRAINABLE][PET] Can be bought on embark as a pet, war animal, or hunting animal.
 
 
 
[BONECARN] Can eat meat and bones only--no vegetables.
 
 
 
[PREFSTRING:loyalty] Dwarves will like it for its loyalty.
 
 
 
[LIKES_FIGHTING] Will attack rather than flee.
 
 
 
[BODY:QUADRUPED:TAIL:10EYES:10EARS:5NOSES:2LUNGS:HEART:GUTS:ORGANS:5THROATS:5NECKS:5SPINES:5BRAINS:5SKULLS:3TOES_FQ_REG:3TOES_RQ_REG:MOUTH:TONGUE:GENERIC_TEETH_WITH_LARGE_EYE_TEETH:RIBCAGE]
 
Has a lower body, upper body, 4 legs, a tail, ten eyes, ten ears, five noses, two lungs, a heart, guts, a pancreas etc., and 5 heads with all that goes with those.
 
 
 
[BODYGLOSS:PAW] Feet will be called "paws"
 
 
 
[BODY_DETAIL_PLAN:STANDARD_MATERIALS] Declares the standard materials that most creatures' tissues are made of.
 
 
 
[BODY_DETAIL_PLAN:STANDARD_TISSUES] This declares the tissues that the creature's tissue layers are made of.
 
 
 
[BODY_DETAIL_PLAN:VERTEBRATE_TISSUE_LAYERS:SKIN:FAT:MUSCLE:BONE:CARTILAGE] And this describes the tissue layers that the creature is made of.
 
 
 
[BODY_DETAIL_PLAN:BODY_HAIR_TISSUE_LAYERS:HAIR] Creature will be covered with a layer of fur.
 
 
 
[USE_MATERIAL_TEMPLATE:NAIL:NAIL_TEMPLATE] And it'll have nails.
 
 
 
[USE_TISSUE_TEMPLATE:NAIL:NAIL_TEMPLATE]
 
 
 
[TISSUE_LAYER:BY_CATEGORY:TOE:NAIL:FRONT] On the toe, specifically.
 
 
 
[SELECT_TISSUE_LAYER:HEART:BY_CATEGORY:HEART]
 
[PLUS_TISSUE_LAYER:SKIN:BY_CATEGORY:THROAT]
 
[TL_MAJOR_ARTERIES] Heart and throat--called above--will cause heavy bleeding if ruptured.
 
 
 
[BODY_DETAIL_PLAN:STANDARD_HEAD_POSITIONS] Places eyes, ears and what have you into their correct placement, so that you don't have people punching out eyes from behind.
 
 
 
[BODY_DETAIL_PLAN:HUMANOID_RIBCAGE_POSITIONS] Sets the ribcage as being around lungs and heart.
 
 
 
[USE_MATERIAL_TEMPLATE:SINEW:SINEW_TEMPLATE] Defines sinew so that...
 
[TENDONS:LOCAL_CREATURE_MAT:SINEW:200] Tendons
 
[LIGAMENTS:LOCAL_CREATURE_MAT:SINEW:200] And ligaments can be defined.
 
 
 
[HAS_NERVES] Creature has nerves, and as such can be disabled by severing them.
 
 
 
[USE_MATERIAL_TEMPLATE:BLOOD:BLOOD_TEMPLATE] Defines the material BLOOD using the template BLOOD_TEMPLATE.
 
[BLOOD:LOCAL_CREATURE_MAT:BLOOD:LIQUID] Defines the creature's BLOOD as being made of the above-defined BLOOD material in a LIQUID state.
 
 
 
[CREATURE_CLASS:GENERAL_POISON] Creature can be affected by syndromes that affect GENERAL_POISON.
 
 
 
[GETS_WOUND_INFECTIONS] Pretty much self-explanatory. Creature can get infected from wounds.
 
[GETS_INFECTIONS_FROM_ROT] And from necrosis.
 
 
 
[USE_MATERIAL_TEMPLATE:PUS:PUS_TEMPLATE] Defines PUS using PUS_TEMPLATE.
 
[PUS:LOCAL_CREATURE_MAT:PUS:LIQUID] Defines PUS as being made of PUS.
 
 
 
[BODY_SIZE:0:0:1000] Creature will be 1000 cubic centimeters at birth...
 
[BODY_SIZE:1:0:12500] 12500 cubic centimeters at 1 year old...
 
[BODY_SIZE:2:0:30000] and 30000 cubic centimeters at 2.
 
 
 
[BODY_APPEARANCE_MODIFIER:LENGTH:90:95:98:100:102:105:110] Creature can be anywhere from 90% to 110% as long as others.
 
[BODY_APPEARANCE_MODIFIER:HEIGHT:90:95:98:100:102:105:110] As above, but with height.
 
[BODY_APPEARANCE_MODIFIER:BROADNESS:90:95:98:100:102:105:110] As above, but with broadness. This puts the minimum size of the creature (when fully grown) at 21870 and the maximum size at 39930.
 
 
 
[MAXAGE:20:30] Creature will die of old age between the ages of 20 and 30, no later than 30, no sooner than 20.
 
 
 
[CAN_DO_INTERACTION:MATERIAL_EMISSION] Creature can use the MATERIAL_EMISSION interaction.
 
[CDI:ADV_NAME:Hurl fireball] In adventurer mode, the MATERIAL_EMISSION interaction will appear as "Hurl fireball".
 
[CDI:USAGE_HINT:ATTACK] Creature will use MATERIAL_EMISSION when it's attacking, on creatures that it's attacking.
 
[CDI:BP_REQUIRED:BY_CATEGORY:HEAD] Creature must have at least one HEAD to use MATERIAL_EMISSION.
 
[CDI:FLOW:FIREBALL] The MATERIAL_EMISSION will shoot a fireball.
 
[CDI:TARGET:C:LINE_OF_SIGHT] The target for the emission--a location--must be within the line of sight of the Hydling.
 
[CDI:TARGET_RANGE:C:15] And must be, at most, 15 tiles away.
 
[CDI:MAX_TARGET_NUMBER:C:1] The hydling can only shoot at one target at a time...
 
[CDI:WAIT_PERIOD:30] and only every 30 ticks (3 tenths of a second at 100 FPS)
 
 
 
[ATTACK:BITE:CHILD_BODYPART_GROUP:BY_CATEGORY:HEAD:BY_CATEGORY:TOOTH] Defines a BITE attack that uses teeth.
 
[ATTACK_SKILL:BITE] Attack uses the BITE skill.
 
[ATTACK_VERB:nom:noms] "The Hydling noms the Elf in the left first toe, tearing the muscle!"
 
[ATTACK_CONTACT_PERC:100] Will use all of the tooth. Note that this can be more than 100.
 
[ATTACK_PENETRATION_PERC:100] Will sink the tooth all the way in. This can also be more than 100.
 
[ATTACK_FLAG_EDGE] Attack is an EDGE attack.
 
[ATTACK_PRIORITY:MAIN] Attack is of priority MAIN. Other option is SECOND.
 
[ATTACK_FLAG_CANLATCH] Attack can latch.
 
 
 
[ATTACK:SCRATCH:CHILD_TISSUE_LAYER_GROUP:BY_TYPE:STANCE:BY_CATEGORY:ALL:NAIL] As above, but for nail instead of teeth.
 
[ATTACK_SKILL:STANCE_STRIKE] Uses the kicking skill.
 
[ATTACK_VERB:slice:slices] "You slice the Elf in the left foot and the severed part sails off in an arc!"
 
[ATTACK_CONTACT_PERC:100] Uses the whole nail.
 
[ATTACK_PENETRATION_PERC:100] The whole nail goes in.
 
[ATTACK_FLAG_EDGE] Attack is an edge attack.
 
[ATTACK_PRIORITY:SECOND]
 
 
 
[CHILD:1] Hydling will become an adult at 1 year old.
 
 
 
[GENERAL_CHILD_NAME:hydie:hydies] Children will appear as "hydies".
 
 
 
[DIURNAL] Is active during the daytime.
 
 
 
[HOMEOTHERM:10070] Has a body temperature of 102 Fahrenheit.
 
 
 
[SWIMS_INNATE][SWIM_SPEED:2500] Swims innately, about 2.5x slower than it walks.
 
 
 
[CASTE:FEMALE] Defines a caste called FEMALE.
 
[FEMALE] FEMALE caste is female.
 
 
 
[CASTE:MALE] As above, but with male.
 
[MALE] See above.
 
  
 
= Modding utilities =
 
= Modding utilities =
Line 784: Line 660:
  
 
{{Category|Modding}}
 
{{Category|Modding}}
{{Category|Guides}}
+
[[Category:v0.31:Guides]]

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)