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.

v0.31:Building token

From Dwarf Fortress Wiki
Jump to navigation Jump to search
This article is about an older version of DF.

These tokens control the functionality of custom buildings.

All custom buildings are defined as objects of type BUILDING_WORKSHOP or BUILDING_FURNACE; workshops show up in the b-w menu, while furnaces show up in the b-e menu.

You also must add any new custom buildings to the civilization that you want to use it.

Additionally, furnaces must be designed by an Template:L before being constructed (and will gain Template:L accordingly), though they will always use the labor(s) specified in the building definition rather than ones based on the materials being used.

Token Arguments Description
NAME name The name of the custom building.
NAME_COLOR fg:bg:bright The color of the building's name when querying it.
DIM width:height The size of the custom building, in number of tiles.
WORK_LOCATION x:y The tile in which dwarves will stand when they are performing tasks. Upper-left is 1:1.
BUILD_LABOR Template:L The labor required to construct the custom building. If multiple BUILD_LABOR tokens are specified, then any of the indicated labors can be used to construct the building; if none are specified, then no labors are required.
For furnaces, this labor does not come into play until after the workshop has been designed by an Template:L.
BUILD_KEY key token The shortcut key used in the Build menu for selecting the custom building.
BLOCK
  • row
  • tiles...
Specifies whether or not each workshop tile blocks movement. The first parameter is the row (1 = top), and each subsequent parameter is a 0 (nonblocking) or 1 (blocking) for each column, left to right.
TILE
  • stage
  • row
  • tiles...
Specifies the characters used to represent the custom building. The first parameter is the building stage, varying either from 0 to 3 (0 = awaiting construction, 1 = partially constructed, 2 = nearly constructed, 3 = completed) or from 0 to 1 (0 = awaiting construction, 1 = completed, similar to simple buildings like the Template:L), the 2nd parameter is the row number, and each subsequent parameter is a character number (or literal character enclosed in 'quotes').
COLOR
  • stage
  • row
  • colors...
Specifies the colors in which the custom building's tiles will be displayed. The first parameter is the building stage, the 2nd parameter is the row number, and subsequent parameters are either sets of 3 numbers (foreground:background:brightness) or the token "MAT" to use the color of the primary building material.
BUILD_ITEM Specifies one of the objects necessary to construct the custom building. Each BUILD_ITEM can be followed by zero or more modifiers.
NEEDS_MAGMA Specifies that one of the building's tiles (other than the WORK_LOCATION) must be hanging over Template:L in order for the building to function.

Item Modifiers

Building items have many of the same modifiers as Template:L in custom reactions.

Token Meaning
[REACTION_CLASS:X] Item's material has a [REACTION_CLASS] token with the appropriate ID.
[HAS_MATERIAL_REACTION_PRODUCT:X] Item's material has a [MATERIAL_REACTION_PRODUCT] token with the appropriate ID.
[UNROTTEN] Item must not be rotten, mainly for organic materials.
[CONTAINS_LYE] If the item is a container, it must contain LYE.
[POTASHABLE] Alias for [CONTAINS_LYE].
[NOT_WEB] States that the item must have been collected (to distinguish silk thread from webs).
[WEB_ONLY] States that the item must be undisturbed (to distinguish silk thread from webs).
[EMPTY] If the item is a container, it must be empty.
[NOT_CONTAIN_BARREL_ITEM] If the item is a Barrel, it must not contain an item that has to reside in a barrel. A building which is built from a barrel should probably have both this and [EMPTY].
[BAG] Item has to be a bag - that is, made of cloth or leather. Intended to be used with an item type of BOX:NONE, to prevent chests, coffers, and other containers from being used instead.
[GLASS_MATERIAL] Item material must have the [IS_GLASS] token. All 3 types of glass have this token hardcoded.
[BUILDMAT] Item is a general building component - BAR, BLOCKS, BOULDER, or WOOD.
[FIRE_BUILD_SAFE] Item's material must have an IGNITE_POINT of NONE.
[MAGMA_BUILD_SAFE] Item's material must be magma-safe. Currently broken - behaves exactly the same as [FIRE_BUILD_SAFE].[Verify]
[CAN_USE_ARTIFACT] Item can be an Artifact.
[WORTHLESS_STONE_ONLY] Item material must be non-economic.
[ANY_PLANT_MATERIAL] Item material must be subordinate to a PLANT object.
[ANY_SILK_MATERIAL] Item material must have the [SILK] token.
[ANY_YARN_MATERIAL] Item material must have the [YARN] token.
[ANY_SOAP_MATERIAL] Item material must have the [SOAP] token.
[ANY_LEATHER_MATERIAL] Item material must have the [LEATHER] token.
[ANY_BONE_MATERIAL] Item material must have the [BONE] token.
[ANY_STRAND_TISSUE] Item is made of a tissue having [TISSUE_SHAPE:STRANDS], intended for matching hair and wool. Must be used with [USE_BODY_COMPONENT].
[ANY_SHELL_MATERIAL] Item material must have the [SHELL] token.
[ANY_TOOTH_MATERIAL] Item material must have the [TOOTH] token.
[ANY_HORN_MATERIAL] Item material must have the [HORN] token.
[ANY_PEARL_MATERIAL] Item material must have the [PEARL] token.
[USE_BODY_COMPONENT] Item material must be a body part.
[NO_EDGE_ALLOWED] Item must not have been sharpened.
[NOT_ENGRAVED] ?
[METAL_ORE:X] Item material must be an ore of the specified metal.
[MIN_DIMENSION:X] ?
[HAS_TOOL_USE:X] Item must be a Template:L with the specific TOOL_USE value. The item type must be TOOL:NONE for this to make any sense.