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 | <tile.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 | <tile.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. |
link | <leader.link> | Barlox | Creates a clickable link?? Might not function?? what. |
eventRoll | 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. |
rfln.OTHER_ROLE | <hook.rfln.hook2:It's been a while since we sang anything together./I always did love that song./Song always broke my heart a little, when we sang it together./---> | Song always broke my heart a little, when we sang it together. | rival/friend/lover/none. If hook and hook2 in this example are rivals, friends, or lovers, they say different things about the song. There's no line for if they don't have a relationship, because in this context (a relationship quest) we know they have one. |
shipLevel.OTHER_ROLE | <volunteer.shipLevel.volunteer2:No../Maybe./Yes!≶ | No... | relationshipLevel with OTHER_ROLE. Relationships between heroes have tiers. The first option is tier 0, if they don't have any relationship. next is 1, if they do, then 2. Any number of options can be provided, up to the full 5 relationship tiers. |
rivalLevel.OTHER_ROLE | <hook.rivalLevel.bookish:<bookish>/<bookish>/stinker/slug-lips/supernose>...! | stinker...! | rivalry level with OTHER_ROLE. If these two are not rivals, the first option. If they are rivals, depending on the tier, additional options, up to the full 5 relationship tiers. |
friendLevel.OTHER_ROLE | <volunteer.friendLevel.friend:Well,/Well,/Being honest,/Being honest,/<friend>, you know/<friend>, you know> I'd prefer to be elsewhere. | Being honest, I'd prefer to be elsewhere. | friendship level with OTHER_ROLE. Relationships have a flavor. Right now that can be, rival, friend, or lover. If these two are not friends, the first option is returned. If they are friends, depending on the tier, additional options, up to the full 5 relationship tiers. |
loverLevel.OTHER_ROLE | <volunteer.loverLevel.volunteer2:/crush/flame/sweetheart/lover/soulmate> | lover | lover level with OTHER_ROLE. If these two are not lovers, the first option. If they are, depending on the tier, additional options, up to the full 5 relationship tiers. |
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 | <tile.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. |
Stat Selectors
Stat selector tags allow you to pick different text depending on stat values, or depending on which stat is higher.
<roleName.STAT.##:statIsHigh/statIsLow> test a stat against a value, and give different text depending on the outcome.
example | might render as | explanation |
---|---|---|
<leader.bookish.50:Let's calculate the odds./Let's think it over.> | Let's calculate the odds. | If leader is bookish, he'll say something more precise and scientificish. |
<coward.injury.1:Argghh. Let's rest a bit./Can we hold up a sec?> | Argghh. Let's rest a bit. | If coward is injured, they will use their injury as an excuse to take a break before facing more danger. |
<romantic.charisma.30:Let me just fix my hair.../Do I look alright?> | Do I look alright? | If romantic his a high charisma, they will use a line that's more confident, otherwise they will be more unsure. |
<roleName.STAT_1/STAT_2/STAT_3:stat1IsBest/stat2IsBest/stat3IsBest> test any number of stats against eachother, return text depending on which one is highest.
example | might render as | explanation |
---|---|---|
<poet.loner/leader:The vanity of our years is in thinking we are more than time, more than the tree or flower, doomed to expire/Though we press on against the teeth of time, we all break eventually, consumed by history>. | Though we press on against the teeth of time, we all break eventually, consumed by history. | Poet is trying to make a point about mortality, and it comes out differently if they are more concerned about the individual, or more social and group-oriented. |
<healer.goofball/peacemaker/poet:A spooky blue stone,A glowing crystal,A luminous crystal that calls to me>. | A spooky blue stone. | We're talking about the same object, but we describe it differently depending on our personality. |
<hook3.coward/leader/peacemaker/snark:It's funny to think <legend.mf:he/she> used to scare me when I was little, and there I was.../There were times I thought I would disappear in the night. But./I suppose I understood <legend.name>, better than other people... That was <legend.mf:his,her> name. <legend>./Old cussheart wouldn't just die early and let me get on with my life, but.> | I suppose I understood Borna, better than other people... That was her name. Borna. | hook3 is describing someone she used to know, a bugbear from his childhood, and uses different words depending on his personality. |