Dynamic Descriptions — Example Descriptions
Nine annotated examples demonstrating how to use DD in MCF.
Example 1 — Viewer position
A description that changes to reflect how the observer is positioned in the room.
MCF room long-description:
#DYou are {position} in a long hallway.
Depending on the observer’s position, the room would display as one of:
Long Hallway [Exits: east west ] You are flying in a long hallway. Long Hallway [Exits: east west ] You are standing in a long hallway. Long Hallway [Exits: east west ] You are resting in a long hallway. Long Hallway [Exits: east west ] You are fighting in a long hallway.
Dead, mortally wounded, incapacitated, stunned, and sleeping observers cannot look at a room, so those positions never appear here.
Example 2 — Time of day
A room that appears differently depending on whether it is day or night.
MCF room long-description:
#DYou are in Someone's office where
[{time.day}] sunlight |
[{time.day} == {false}] moonlight |
streams through a skylight.
Note: == {false} must be added to the second conditional to make it true
at night and thus show “moonlight”.
During the day:
Someone's Office [Exits: north ] You are in Someone's office where sunlight streams through a skylight.
At night:
Someone's Office [Exits: north ] You are in Someone's office where moonlight streams through a skylight.
Example 3 — Direction of arrival
A common building mistake is assuming the reader has entered from a particular direction (“As you get closer to the mountain peak…”). What if the player is going down the mountain, or has teleported in? Dynamic Descriptions fix this.
MCF room long-description:
#D[{dir.from} == {dir.down}] As you
[{position.flying}=={false}] climb |
[{position.flying}] get |
closer to the mountain peak it is getting much hotter. |
[{dir.from} == {dir.up}] Things are cooler here as you move away from the mountain peak. |
[{dir.from} == {dir.other}] There is a great deal of heat coming from the mountain peak above you. |
Results based on how the observer arrived:
Walking up the mountain:
Path Up the Mountain [Exits: up down ] As you climb closer to the mountain peak it is getting much hotter.
Flying up:
Path Up the Mountain [Exits: up down ] As you get closer to the mountain peak it is getting much hotter.
Walking down:
Path Up the Mountain [Exits: up down ] Things are cooler here as you move away from the mountain peak.
Teleported or summoned in:
Path Up the Mountain [Exits: up down ] There is a great deal of heat coming from the mountain peak above you.
Example 4 — Statue by size
A statue in a giants’ village that the observer appears to look at differently depending on their racial size.
MCF room long-description:
#DYou are in the town square in the village of the giants.
You are looking
[{size} <= {size.dwarf}] at the lower legs of |
[({size} > {size.dwarf}) && ({size} < {size.giant})] at the belt line of |
[{size} == {size.giant}] into the face of |
[{size} > {size.giant}] down on |
a statue of one of the town's heroes.
A small race (hobbit, dwarf) sees:
Town Square [Exits: up down ] You are in the town square in the village of the giants. You are looking at the lower legs of a statue of one of the town's heroes.
A medium race sees:
You are looking at the belt line of a statue of one of the town's heroes.
A giant sees:
You are looking into the face of a statue of one of the town's heroes.
A larger-than-giant race sees:
You are looking down on a statue of one of the town's heroes.
Example 5 — Helmet by size
An object long description for a bird-sized helmet that reads differently based on the viewer’s racial size.
MCF object long-description:
#DA [{size} <= {size.dwarf}] well fitting |
[({size} > {size.dwarf}) && ({size} < {size.giant})] small |
[{size} >= {size.giant}] very tiny |
helmet is here.
A small race sees: A well fitting helmet is here.
A medium race sees: A small helmet is here.
A large or giant race sees: A very tiny helmet is here.
Example 6 — Mirror by race
A mirror in a room that reflects the observer’s racial appearance back at them.
MCF room long-description (excerpt — add as many races as your area needs):
#DThe reflection of your
[{race}=={race.aarakocra}] feathered form |
[{race}=={race.dragon}] hulking scaled body |
[{race}=={race.elf}] lithe body |
[{race}=={race.merfolk}] slightly blue-tinged body |
looks back at you from the mirror.
An aarakocra sees:
The reflection of your feathered form looks back at you from the mirror.
A dragon sees:
The reflection of your hulking scaled body looks back at you from the mirror.
Example 7 — Named inscription
An object extra-description that uses the observer’s own name, making each reading feel personal.
MCF object extra-description:
#DInscribed on the bracelet is: {name}.
If Talac looks at the inscription:
Inscribed on the bracelet is: Dragonlord Talac.
{name} expands to the short description of whoever is looking.
Example 8 — Player description by race and size
A mob’s look description that reacts to the observer — fellow ogres get a friendly greeting, smaller races see a threat, larger races are not impressed.
MCF mob look-description:
#D[{race} == {race.ogre}] Ogreon is a friendly, soft, fluffy, sweet smelling
one of your countrymen, who will help you whenever there is trouble. |
[{size} < {size.ogre}] A large threatening ogre appears ready to eat you. |
[{size} > {size.ogre}] An ogre gets out of your way so that you don't step on him. |
An ogre observer sees:
Ogreon is a friendly, soft, fluffy, sweet smelling one of your countrymen, who will help you whenever there is trouble.
A smaller race sees:
A large threatening ogre appears ready to eat you.
A larger race sees:
An ogre gets out of your way so that you don't step on him.
Example 9 — Gender
A mob’s long description that uses a different label depending on the observer’s gender.
MCF mob long-description:
#DA [{gender.female}] sister |
[{gender.female} != {true}] sweet girl |
is here.
A female observer sees: A sister is here.
A non-female observer sees: A sweet girl is here.