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 40d:Reactions

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 "40d"). 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:
{{av}}{{Quality|Exceptional}}
 
 
Reactions currently control the actions of the [[smelter]] building. They consist of at least one reagent and one product. Eventually the goal is to include all buildings and their actions within the raws.
 
Reactions currently control the actions of the [[smelter]] building. They consist of at least one reagent and one product. Eventually the goal is to include all buildings and their actions within the raws.
  
 
You may have multiple reagents and products within a reaction. By including a product that replaces a consumed reagent, you could create things like tools and catalytic reactions.
 
You may have multiple reagents and products within a reaction. By including a product that replaces a consumed reagent, you could create things like tools and catalytic reactions.
 
Additions to reaction_standard.txt do not take effect until you generate a new world, but changes to existing reactions take effect next time you open the game.
 
  
 
==Anatomy of a Reaction==
 
==Anatomy of a Reaction==
Line 10: Line 7:
  
 
[REACTION:BITUMINOUS_COAL_TO_COKE] <-- The name of the reaction. Not referenced elsewhere yet, but must be unique.
 
[REACTION:BITUMINOUS_COAL_TO_COKE] <-- The name of the reaction. Not referenced elsewhere yet, but must be unique.
===NAME===
+
 
 
[NAME:make coke from bituminous coal] <-- What appears in the game when the necessary reagents are available.
 
[NAME:make coke from bituminous coal] <-- What appears in the game when the necessary reagents are available.
===SMELTER===
+
 
 
[SMELTER] <-- Says the reaction is performed in the smelter. There are currently no other building tokens.
 
[SMELTER] <-- Says the reaction is performed in the smelter. There are currently no other building tokens.
===REAGENT===
 
Reagents come in three main types.
 
  
====Type 1====
+
[REAGENT:1:STONE:NO_SUBTYPE:STONE:COAL_BITUMINOUS] <-- First parameter after REAGENT is the number of this item the reaction needs. The second is an [[Item Token]], for instance BAR for metal bars. The third is the subtype, if applicable. Fourth is the matgloss class - probably only PLANT, STONE, METAL, COAL, and WOOD, although there may be more lurking. The last is the name of the material in the matgloss files.
[REAGENT:<Quantity>:<[[Item token|ITEM_TOKEN]]>:<ITEM_SUBTYPE>:<[[Material token|MATERIAL_TOKEN]]>:<MATGLOSS>]
 
  
As with all raw entries the values here are separated by colons. This style of reaction has five variables.
+
[REAGENT:1:REACTION_CLASS:FLUX] <-- Any object with the token of [REACTION_CLASS:FLUX] may be used here. It might be possible to add reaction classes arbitrarily.
=====Quantity=====
 
The number of items this reaction requires.
 
  
=====ITEM_TOKEN=====
+
[PRODUCT:100:3:BAR:NO_SUBTYPE:COAL:COKE] <-- The end product(s) of the reaction. The first parameter might be probability of success. The rest is the same as in REAGENT.
A value from the <[[Item token|ITEM_TOKEN]]> list for the item you want to make.
 
  
=====ITEM_SUBTYPE=====
+
[FUEL] <-- Says the reaction uses fuel.
An item identifier from the raw file for this item type. For instance if you want to make gloves you would look in the item_gloves.txt file and find the name of one of the items there like ITEM_GLOVES_GLOVES. You would also need to set the ITEM_TOKEN to GLOVES.
 
If you don't have a subtype to use just put "NONE".
 
  
=====MATERIAL_TOKEN=====
+
==Notes==
You put the general category of the material you want to use here.
 
  
=====MATGLOSS=====
+
There are some pitfalls to reaction modding, and other odd behaviour that should be noted.
The specific type goes here. Like the ITEM_SUBTYPE, you can look up the possible values from the raws. The material COAL has two valid subtypes (COKE and CHARCOAL), and all other materials not defined in the raws should use NO_MATGLOSS.
 
  
====Type 2====
+
Certain item tokens, notably LEAVES and PLANT use the MATERIAL and MATGLOSS tokens in an unexpected way. Rather than interpreting these tokens in the usual way, the game takes the numerical value of the MATERIAL token (as listed on the [[Item tokens]] page, and picks the plant that is that number of places in the raws. The MATGLOSS token appears to be ignored. For example, using the token [PRODUCT:100:1:PLANT:NO_SUBTYPE:BONE:DWARF] would result in the creation of one sweet pod plant, because BONE is material token number 4, and sweet pod is the fourth plant in the matgloss_plant.txt raw file.
[REAGENT:<Quantity>:REACTION_CLASS:<Class>]
 
 
 
This permits the usage of any stone which contains a matching [[Stone token|REACTION_CLASS]] token. Normally, the only class used is FLUX to permit any of several types of stone to be used for making pig iron and steel.
 
 
 
====Type 3====
 
[REAGENT:<Quantity>:METAL_ORE:<Metal>]
 
 
 
This permits the usage of any stone which contains a matching [[Stone token|METAL_ORE]] token, useful for allowing one reaction to take any type of ore that yields a particular metal.
 
 
 
===PRODUCT===
 
[PRODUCT:100:3:BAR:NO_SUBTYPE:COAL:COKE] <-- The end product(s) of the reaction. The first parameter is the percentage chance of producing that product - with a value less than 100, the product will sometimes simply not be produced. The second parameter is the amount of objects that will be created.  The rest is the same as in REAGENT.
 
 
 
===FUEL===
 
[FUEL] <-- Says the reaction uses fuel.
 
 
 
==Notes==
 
  
It is seemingly impossible to use extracts of any sort (liquid, powder, and so on) in smelter reactions. It likely won't show up on the job list at all and, if it does, will result in immediate cancellation when a dwarf tries to select it from the job queue. Extracts can be the product of a reaction but since they must be stored, they will immediately be "spilled" upon creation and be impossible to store and use.  
+
Secondly, it does not seem possible to use extracts as reagents at this time. Attempting to do so will behave as if the reagent is not available, even if it is in plentiful supply. Queueing up the reaction from the manager will result in the job being cancelled, telling you that your dwarf needs some of the relevant extract. Extracts can still be created as reaction products, using the normal MATERIAL and MATGLOSS rules. However, since extracts need to go in a container (bag, barrel, or vial), any extract produced in a reaction is treated as 'spilled', and if placed in a stockpile it will be swiftly cleaned up by a dwarf.
  
{{Category|Modding}}
+
[[Category:Modding]]

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)