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.

Interaction token

From Dwarf Fortress Wiki
Revision as of 18:28, 7 September 2014 by Dirst (talk | contribs) (→‎Interaction Definitions: Added IT_LOCATION:CONTEXT_CREATURE_OR_LOCATION)
Jump to navigation Jump to search
This article is about the current version of DF.
Note that some content may still need to be updated.

The following tokens can be used to define and use interactions.

Interaction Definitions

Token Context Arguments Description
I_SOURCE Global type Defines what things are capable of triggering this interaction. Can be specified multiple times. Valid values:
  • REGION - The interaction takes place in particular types of regions in the world.
  • SECRET - The interaction is a secret that can be learned by particular individuals.
  • DISTURBANCE - The interaction is triggered when disturbing a tomb.
  • DEITY - The interaction is inflicted upon mortals by the gods.
  • ATTACK - The interaction is triggered by an attack during combat.
  • INGESTION - The interaction is triggered by eating or drinking something.
  • CREATURE_ACTION - The interaction is triggered by an explicit action.
  • UNDERGROUND_SPECIAL - The interaction takes place in curious underground structures.
IS_HIST_STRING_1 Within I_SOURCE text Describes what the interaction did to a historical figure. Displayed after the name of the historical figure that performed the interaction.

[IS_HIST_STRING_1: cursed ]

IS_HIST_STRING_2 Within I_SOURCE text Describes what the interaction did to a historical figure. Displayed after the name of the historical figure that was targeted by the interaction.

[IS_HIST_STRING_2: to assume the form of a lizard-like monster every full moon]

IS_FREQUENCY Within I_SOURCE Number Presumably, the probability of biome specified by [IS_REGION] to have this interaction.
IS_NAME Within I_SOURCE string Generally used with secrets, describes what the secret is about.
IS_REGION Within I_SOURCE:REGION Region type Indicates what types regions are capable of performing this interaction. Can be specified multiple times. Valid values:
  • ANY
  • ANY_TERRAIN
  • NORMAL_ALLOWED
  • EVIL_ALLOWED
  • GOOD_ALLOWED
  • SAVAGE_ALLOWED
  • EVIL_ONLY
  • GOOD_ONLY
  • SAVAGE_ONLY
  • Region type - SWAMP, DESERT, FOREST, MOUNTAINS, OCEAN, LAKE, GLACIER, TUNDRA, GRASSLAND, HILLS
IS_SPHERE Within I_SOURCE:SECRET Sphere Indicates the sphere to which this secret pertains. Only one sphere can be defined for each [I_SOURCE:SECRET] token, thus several [I_SOURCE:SECRET] tokens required to create a valid custom secret, which belongs to several different spheres
IS_SECRET_GOAL Within I_SOURCE:SECRET Secret Goal token Indicates why somebody would want to learn the secret. Valid values:
  • STAY_ALIVE
  • MAINTAIN_ENTITY_STATUS
  • START_A_FAMILY
  • RULE_THE_WORLD
  • CREATE_A_GREAT_WORK_OF_ART
  • CRAFT_A_MASTERWORK
  • BRING_PEACE_TO_THE_WORLD
  • BECOME_A_LEGENDARY_WARRIOR
  • MASTER_A_SKILL
  • FALL_IN_LOVE
  • SEE_THE_GREAT_NATURAL_SITES
  • IMMORTALITY

However, currently only immortality will result in a secret being pursued during world-gen.

IS_SECRET Within I_SOURCE:SECRET Secret Flag Indicates how the secret can be learned. Valid values:
  • SUPERNATURAL_LEARNING_POSSIBLE - the secret can be learned by supernatural means
  • MUNDANE_RESEARCH_POSSIBLE - the secret can be researched by mundane means
  • MUNDANE_TEACHING_POSSIBLE - the secret can be taught to apprentices
  • MUNDANE_RECORDING_POSSIBLE:objects/text/(book_title).txt:objects/text/(book_topic).txt - the secret can be written in books with the specified title. If this tag is present, a slab will be created upon learning the secret by supernatural means.
IS_USAGE_HINT Within I_SOURCE:DEITY Usage Hint token Indicates why a deity would choose to perform this interaction. See CDI:USAGE_HINT below for valid values - in this context, MAJOR_CURSE is the only value that makes sense.
I_TARGET Global id, type Specifies what things this interaction acts upon. Can be specified multiple times. Valid values:
  • CORPSE - Also includes pieces of corpses
  • CREATURE
  • MATERIAL
  • LOCATION
IT_LOCATION Within I_TARGET Location Narrows down exactly what the interaction targets. Valid values:
  • CONTEXT_REGION - Can only be used by IS_REGION interactions.
  • CONTEXT_CREATURE
  • CONTEXT_CREATURE_OR_LOCATION - Lets projectiles be aimed at specific creatures.
  • CONTEXT_ITEM - Used when the target is a CORPSE.
  • CONTEXT_BP - Use body part from CDI:BP_REQUIRED token (below).
  • CONTEXT_LOCATION
IT_MANUAL_INPUT Within I_TARGET text Tells the player what they should be selecting.
IT_AFFECTED_CREATURE Within I_TARGET:CORPSE or I_TARGET:CREATURE CREATURE:CASTE Specifies specific creatures the interaction can target.
IT_AFFECTED_CLASS Within I_TARGET:CORPSE or I_TARGET:CREATURE Creature class Specifies creature classes the interaction can target.
IT_IMMUNE_CREATURE Within I_TARGET:CORPSE or I_TARGET:CREATURE CREATURE:CASTE Specifies specific creatures the interaction cannot target.
IT_IMMUNE_CLASS Within I_TARGET:CORPSE or I_TARGET:CREATURE Creature class Specifies creature classes the interaction cannot target.
IT_REQUIRES Within I_TARGET:CORPSE or I_TARGET:CREATURE Creature token or property Indicates that the target must have the specified property. Valid values:
  • FIT_FOR_ANIMATION - Any corpse or body part that can become a zombie (heads, hands, etc.)
  • FIT_FOR_RESURRECTION - The target corpse's UPPERBODY must be attached.
  • HAS_BLOOD
  • MORTAL
  • NO_AGING
  • STERILE
  • Creature token: BLOODSUCKER, CAN_LEARN, CAN_SPEAK, CRAZED, EXTRAVISION, LIKES_FIGHTING (or LIKESFIGHTING), MISCHIEVOUS (or MISCHIEVIOUS), NO_CONNECTIONS_FOR_MOVEMENT, NO_DIZZINESS, NO_DRINK, NO_EAT, NO_FEVERS, NO_PHYS_ATT_GAIN, NO_PHYS_ATT_RUST, NO_SLEEP, NO_THOUGHT_CENTER_FOR_MOVEMENT, NOBREATHE, NOEMOTION, NOEXERT, NOFEAR, NONAUSEA, NOPAIN, NOSTUN, NOT_LIVING, NOTHOUGHT, OPPOSED_TO_LIFE, PARALYZEIMMUNE, SUPERNATURAL, TRANCES, UTTERANCES
IT_FORBIDDEN Within I_TARGET:CORPSE or I_TARGET:CREATURE Creature token or property Indicates that the target must not have the specified property. Valid values are the same as for IT_REQUIRES.
IT_CANNOT_TARGET_IF_ALREADY_AFFECTED Within I_TARGET:CORPSE or I_TARGET:CREATURE Prevents the interaction from targeting a creature that's already under the effect of the same interaction.
IT_CANNOT_HAVE_SYNDROME_CLASS Within I_TARGET:CORPSE or I_TARGET:CREATURE Syndrome class Prevents the interaction from targeting a creature under the effects of a syndrome having the specified SYN_CLASS value.
IT_MATERIAL Within I_TARGET:MATERIAL Type Specifies the type of material the interaction targets. Valid values:
  • FLOW:Breath attack token - Specifies an attack not made of any material.
  • MATERIAL:Material token:Breath attack token - Specifies an attack made of a specific material.
  • CONTEXT_MATERIAL - Use material from CDI:MATERIAL token (below).
I_EFFECT Global type Specifies what the interaction does to the targets. Can be specified multiple times. Valid values:
  • ANIMATE - Raises the target corpse/bodypart as a zombie. The zombie will always be hostile to life and will retain no information about its original personality/loyalties. Syndromes can also be specified within this tag.
  • ADD_SYNDROME - Adds one or more syndromes. The actual syndrome is specified with the [SYNDROME] tag.
  • RESURRECT - Returns the creature to life. This can be used on parts that are not FIT_FOR_RESURRECTION, but only the main part (with an UPPERBODY attached) will remain loyal to its original faction. Syndromes can also be specified within this tag.
  • CLEAN - Cleans off most liquids/dust covering the creature.
  • CONTACT - Causes the creatures to touch. The interaction's range must be TOUCHABLE.
  • MATERIAL_EMISSION - Used within the MATERIAL_EMISSION interaction.
  • HIDE - Allows the creature to hide even if another creature can see it.
IE_TARGET Within I_EFFECT ID Specifies which I_TARGET this effect will be applied to
IE_INTERMITTENT Within I_EFFECT Frequency Indicates that the effect happens intermittently and specifies roughly how often. Valid values:
  • WEEKLY
IE_IMMEDIATE Within I_EFFECT Indicates that the effect happens immediately.
IE_LOCATION Within I_EFFECT Location Hint Indicates where the effect can take place. Valid values:
  • IN_WATER
  • IN_MAGMA
  • NO_WATER
  • NO_MAGMA
IE_ARENA_NAME Within I_EFFECT text Allows the interaction to be applied to newly spawned creatures in Arena mode.
IE_GRIME_LEVEL Within I_EFFECT:CLEAN amount? [IE_GRIME_LEVEL:2] appears in the default cleaning interaction, and may indicate amount of grime cleaned.
IE_SYNDROME_TAG Within I_EFFECT:CLEAN Syndrome flag Indicates that cleaning off materials will activate their syndromes if they have this flag.
GENERATED Global Indicates that this is a generated interaction. Cannot be specified in user-defined raws.

Interaction Usage

In order to actually use an interaction, add the creature token [CAN_DO_INTERACTION:NAME] followed by a series of [CDI:...] tokens. Interactions can also be granted through syndromes using the token [CE_CAN_DO_INTERACTION] (plus the same series of CDI tokens).

The following CDI tokens can be specified:

Token Arguments Description
INTERACTION id Specifies which interaction can be performed. Only to be used with syndromes, since CE_CAN_DO_INTERACTION does not allow specifying the interaction ID directly.
TARGET target ID, target types Specifies how the creature chooses what to . Target ID refers to an I_TARGET defined in the interaction itself. Multiple target types can be specified. If no target is specified, creature will target any available target within range, even through walls. Valid target types:
  • LINE_OF_SIGHT - the source needs to be able to see the target
  • TOUCHABLE - the source needs to be able to touch the target
  • DISTURBER_ONLY - the target must be whoever disturbed the source
  • SELF_ALLOWED - the target can be the source
  • SELF_ONLY - the target must be the source
TARGET_RANGE target ID, range Specifies how far away the target can be, in tiles.
LOCATION_HINT Location Hint (see above) ?
USAGE_HINT Usage hint token Indicates when and how CPU-controlled creatures will use the interaction. If no hint is specified, the interaction will be used whenever a valid target is available. Valid values:
  • MAJOR_CURSE - Used in disturbance curses and deity curses. Targets the tomb disturber/temple defiler.
  • GREETING - Creatures will target 'friendly' creatures, usually at random.
  • CLEAN_SELF - Creature targets itself when covered in liquids or dust.
  • CLEAN_FRIEND - Same, but targets other friendly units.
  • ATTACK - Targets enemy creatures in combat. If the interaction specifies SELF_ONLY, CPU-controlled creatures will never use it.
  • FLEEING - Used when fleeing an enemy. Creature will target itself.
  • NEGATIVE_SOCIAL_RESPONSE - Used when a creature is expressing contempt (for example, to a murderer). Used for spitting by civilised races.
  • TORMENT
ADV_NAME text Specifies the interaction's name when used in Adventurer mode.
MAX_TARGET_NUMBER ID, number Specifies the maximum number of things that can be selected for a particular I_TARGET.
WAIT_PERIOD number Controls how often the interaction can be used.
VERBAL Only creatures that can speak will be able to use the interaction. Might also be needed for VERBAL_SPEECH.
VERBAL_SPEECH filename Specifies what the creature says when they perform the interaction. Filename path is relative to /data/speech.
CAN_BE_MUTUAL Presumably, allows two creatures with this same interaction to use it on each other simultaneously, for example cats cleaning each other.
FREE_ACTION Indicates that performing the interaction doesn't take any time.
VERB self:other:mutual When a creature uses the interaction, a message will display, describing the source as doing this.
VERB_REVERSE ? ?
TARGET_VERB self:other When a creature uses the interaction, a message will display, describing the target as doing this.
BP_REQUIRED Body part criteria Indicates that a particular body part must be present in order to perform the interaction. Criteria are BY_CATEGORY:category, BY_TYPE:type, or BY_TOKEN:token.
FLOW Breath attack token Causes the interaction to create an effect not made of any material. Only makes sense for FIREBALL, FIREJET, or DRAGONFIRE.
MATERIAL Material token:Breath attack token Causes the interaction to create an effect made of a specific material. Doesn't make sense for FIREBALL, FIREJET, or DRAGONFIRE.

See Also