Tag Reference
Wildermyth accomplished Dynamic Writing by using Tags to control what text is inserted into a passage.
Tags use <angle brackets> and allow a fairly wide variety of functionality.
Note: mostly case insensitive Note: comma and slash as separators, most of the time!
Top-Level Tags
These are simple tags that work in any context and insert names of interesting things.
tag | example | might render as | explanation |
---|---|---|---|
Town | <town> | Ninesprings | Finds either the nearest town, or the origin town for the heroes. |
Company | <company> | The Fellowship of the Eagle | Gives the name of the player's company, which they get a chance to choose at the end of the introduction. |
Site | <site> | Moosetunnel | Finds the relevant site in a situation, if there is one, or falls back to the nearest interesting site. |
Tower | <tower> | Cranespire | Finds the name of the Heroes' main base, their home tower, which they gain control of during the introduction. |
Role Tags
Most tags (and the most useful tags) rely on Story Roles. A role is used to refer to a particular target, usually a hero, and then select text depending on properties of the target.
Role tags use this form:
- <roleName> gives the short name of the target
- <roleName.tag...> most tags work like this, has a variety of effects depending.
- <roleName.#.tag...> where # is a number like 1,2,3,4... Which is useful if more than one entity is assigned to a role.
Numbered roles are not generally recommended because they're a bit awkward to think about, but sometimes they're convenient if, for example, you know there are 2 heroes in the party and you just need to list them or something.
Names and Specials
Use these tags to insert names.
tag | example | might render as | explanation |
---|---|---|---|
<leader> | Barlox | Use a plain role tag to show the short name, which, for heroes, is always their first name. | |
shortName | <leader.shortName> | Barlox | Short name. Same as unadorned role. |
firstName | <leader.firstName> | Barlox | First name. Same as short name. |
name | <leader.name> | Barlox | Same as short name and first name. |
lastName | <leader.lastName> | Spidermusk | If the entity has a two-part name, return the last part. |
fullName | <leader.fullName> | Barlox Spidermusk | The whole name. Very formal. |
nameCAPS | <leader.nameCAPS> | BARLOX | BARLOX ARE YOU SERIOUS. |
namelower | <leader.namelower> | barlox | stream of consciousness, mumbling.. |
fullNameCAPS | <leader.fullNameCAPS> | BARLOX SPIDERMUSK | Gah! What'd I do Ma?! |
fullnamelower | <leader.fullnamelower> | barlox spidermusk | was a strange fellow i'd say |
lastNameCAPS | <leader.lastNameCAPS> | SPIDERMUSK | Branding? Yelling? |
lastnamelower | <leader.lastnamelower> | spidermusk | no one will use this tag. go ahead prove me wrong. |
singular | <foes.singular> | Gorgon | Useful for monsters, if you want the singular version of the monster group name. |
plural | <foes.plural> | Gorgons | Gives the plural version of the name of a group of monsters. |
biome | <overlandTile.biome> | forest | the short name of the biome. forest, field, hills, or swamp. If the first letter of the tag is capitalized, the first letter of the result will be as well. |
biomeLong | <overlandTile.biomeLong> | pine forest | The longer and more specific name of the biome if any. Broadleaf forest, grassland, foothills, pine forest, wetlands. If the first letter of the tag is capitalized, the first letter of the result will be as well. |
weaponType | <coward.weaponType> | axe | If the first letter of the tag is capitalized (coward.WeaponType), the first letter of the result will be as well. |
link | <leader.link> | Barlox | Creates a clickable link?? Might not function?? what. |
eventRoll | <hook.eventRoll:roll_one|difficulty_one> | 47% | If there is a dice roll defined in the event, you can use this tag to preview your chance of success. The New Option dialog creates this tag automatically when you define a roll, so you don't need to understand all the ins and outs. |
Selectors
Selector tags select between alternatives, depending on some aspect or stat of the target. They usually take this form:
- <roleName.selector:option1/option2/option3> options separated by /
- <roleName.selector:option1,option2,option3> options separated by ,
selector | example | might render as | explanation | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
mf | <bookish.mf:his/her> towel. | her towel. | male/female. if the target is a male, the first option, otherwise the second option. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mf | <bookish.mf:his/her/their> towel. | their towel. | male/female. if the target is a male, the first option. If the target is a female, the second option. If neither, the third option is used. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
awm | I hope to find <romantic.awm:some fine vixen/some wily fox>. | I hope to find some fine vixen. | Attracted to women/men. If the target is attracted to women, the first option. If attracted to men, the second option. If no attraction can be determined, one is picked randomly (but consistently for that character.) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
town OR hometown | Oh no I can't go back to <goofball.hometown>! | Oh no I can't go back to Markvale! | Finds the hometown of the character, or maybe the origin town if no hometown can be determined. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
whm | Let me grab my <hothead.whm:shield/cloak/robe/pitchfork>! | Let me grab my cloak! | warrior/hunter/mystic/none returns different text depending on the class of the target. If none, an optional fourth clause is used. if no fourth clause is present, pretend to be a warrior. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cdgmt | This place stinks of <foes.cdgmt:mushrooms and mold and muckdwellers./Drauv and doom and death./oozing flesh and miscellanious gorgonous gases./gear-oil and rotting bones./spells and spiderfarts.> | This place stinks of gear-oil and rotting bones. | cultist/drauven/gorgon/morthagi/trhixl - give different text depending on the flavor of a threat. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
exists | <hook.exists:<hook> looks suspicious.../Nobody knows...> | Aryssa looks suspicious... | if this role exists, i.e. there is one or more match, return the first option, otherwise the second option if any. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sp | <party.sp:I'm all alone out here!,I am sure am glad you're with me.> | I sure am glad you're with me. | If the role has zero or one matches, return the first option, otherwise the second option. NOTE: bug, can't use / to separate, must use , | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
maimal | <hook.maimal:my lost arm/my lost leg/my aching bones> | my lost arm | Maimed? arm, leg, other/none. used to talk about a lost limb. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bghps | <overlandTile.bghps:that oak tree/this meadow/that cliffside/that redwood/that pond> | that redwood | different text per tile biome: broadleaf forest (deciduous) / grassland / hills / pine forest (coniferous) / swamp. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
weaponType | <hook.weaponType:swing your sword at it/axe it a question/bonk it one/stick the pointy end in its face/fire a shot across its nose/stick a bolt in it/sneak up on it real quiet like/wave your big stick around/wave your magic wand/get up in its grill> | axe it a question | different text depending on target's main weapon type: sword/axe/mace/spear/bow/crossbow/dagger/staff/wand/other (or none). | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
personality | <hook.personality:bookish/cowardly/goofy/greedy/gentle/angry/serious/detached/dreamy/horny/smart> | cowardly | quickly create an 11 way personality split: bookish/coward/goofball/greedy/healer/hothead/leader/loner/poet/romantic/snark | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
directionTo | They're somewhere <leader.directionTo.target:north of us/northeast of us/east of us/southeast of us/south of us/southwest of us/west of us/northwest of us/nearby>. | They're somewhere southeast of us. | The compass direction from one hero or tile to another on the overland: N/NE/E/SE/S/SW/W/NW/Same Position(Optional) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
childOf | I'm their <hook.childOf.hook2:child/friend>. | I'm their child. | If the first role is a child of the second role, returns the first option. Otherwise, the second option. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
parentOf | I'm their <hook.parentOf.hook2:parent/friend>. | I'm their parent. | If the first role is a parent of the second role, returns the first option. Otherwise, the second option. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
familyWith | They're my <hook.familyWith.hook2:family/friend>. | They're my family. | If the first role is family with the second role (child, parent, sibling, grandchild/parent, etc...), returns the first option. Otherwise, the second option.}
Relational TagsRelational tags test some relationship between two people, and let you write different text depending on how they relate.
Generic SelectorsGeneric selector tags allow you to pick different text depending on stat values, or depending on which stat is higher, or aspect values. They're very flexible! <roleName.STAT.##:statIsHigh/statIsLow> test a stat against a value, and give different text depending on the outcome.
<roleName.2nd/STAT_1/STAT_2/STAT_3:stat1IsBest/stat2IsBest/stat3IsBest> test any number of stats against eachother, return text depending on which one is SECOND highest.
|