Table of Contents
Alora's LML Guide
Quick links: LML Tagset, Castle Building
Below, “I” refers to the writer, Alora. Text marked up for wiki by Electra.
Introduction
LML is Lensmoor's markup language, an xml-like system that allows for dynamic descriptions, changing as the environment changes and dependent on the viewer. These are used in rooms, object descriptions, pets, and player description/personality/background files.
I offer here some tips on making LML work smoothly, and some examples of how to use LML.
First of all, <LML> must be the first thing in the description, including color codes! </LML> must be the last thing, again, including color codes.
<LML>
body with as many tags, or as few tags as you like.
</LML>
For the sake of readability, I have made line breaks but please remember that the line breaks will affect the text output, so it is best to format it with $. However, sometimes if the line breaks come in a bad place for the LML tags, there may be an error. If everything else works, then that may be an issue.
LML tags tend to make a blank line if there is no output, the line starts with the tag, and nothing else shows up on that line. So you may have an extra line after–two blank lines instead of one.
You will often see an extra space behind an output of a tag, or between outputs. LML will take your spaces, and will show or not show them depending on whether the text is shown. If you want the space to depend on the tag, put it inside the tags. If you want it not to be affected, put it outside.
Since LML inserts the appropriate text, it will also insert commas, periods, spaces, and color codes. Proper placement of spaces are key. If you see an extra space, this may be due to adding them in places without thinking about it, such as just before the closing tag, or between two tags. Also, there may be “color bleed” depending on where you place your color codes. Sometimes, this is a GOOD THING if you want to save money on your home request. But if it's not intentional, close it off with an {x as early on as you can.
Name
If you have a message or some other hidden description that you would like only specific people to see, then NAME is very useful for this. Here, I have used it to simulate a 'seal' upon a scroll. First is the scroll's description, then either you cannot see past the seal or you get the message.
<LML>
This scroll if bleached white paper has been sealed with a deep green glob of wax. The wax is stamped with the Wyen family seal, a wineglass tilted at a 45 degree angle. To the left of the seal is stamped the name Jiawyr and to the right is stamped the name Kalarus.
<NAME != Alora Kalarus Jiawyr>Short of destruction, this scroll can not be opened.</NAME>
<NAME == Alora Kalarus Jiawyr>Secret message here.</NAME>
</LML>
Race
Playing with the idea that it's hard for non-dragons to find out a dragon's gender, I made the statue appear ambiguous here, but with enough hints for a dragon to know.
<LML>
Upon a square base of bronze, a dragon hatchling on the verge of imprinting a color stands, <RACE == dragon>her</RACE><RACE != dragon>its</RACE> scales muted, an unpolished bronze.
</LML>
Also, we can use the replace command to just replace the race with the viewer's race.
<LML>
Made of solid platinum, this egg is about the size of a chicken’s. Its surface is well polished. Though it looks simple, its magic is not noticeable in a glance. If one watches it closely long enough, the sound of laughing <REPLACE == RACE>RACE</REPLACE> children can be heard like a gentle breeze of hope.
</LML>
These also work:
<REPLACE == RACE>RACE</REPLACE>
<REPLACE == RACE></REPLACE>
<REPLACE == RACE/>
Day/Night and Moon
Day and night are nice to put into room descriptions, as much of the world changes between the two halves. In this desc, I have combined both day/night and whether or not the moon is new.
<LML>
<TIME == day>Sunlight spills across the bed and onto the floor</TIME>
<TIME == night><MOON != new>Soft moonlight filters</MOON>
<MOON == new>Starlight rains</MOON> down</TIME>
from three long skylights that radiate from the center of the tapered ceiling. Wide, overhung windows to the east and northwest permit views of the ocean and Tandanu respectively.
</LML>
Day
Sunlight spills across the bed and onto the floor from three long skylights that radiate from the center of the tapered ceiling. Wide, overhung windows to the east and northwest permit views of the ocean and Tandanu respectively.
Night
Soft moonlight filters down from three long skylights that radiate from the center of the tapered ceiling. Wide, overhung windows to the east and northwest permit views of the ocean and Tandanu respectively.
Night with New Moon
Starlight rains down from three long skylights that radiate from the center of the tapered ceiling. Wide, overhung windows to the east and northwest permit views of the ocean and Tandanu respectively.
Time, Season and Weather
This object has panels that show different descriptions, one for the time, one for the moon, and two based on season. The weather can be seen across the surface.
<LML>
Carved out of wood, this drum has the profile of an hourglass with a slightly shorter base. The top portion has four rounded panels carved into it. One panel, representing the sun, shows
<HOUR < 6>darkness</HOUR>
<HOUR > 18>darkness</HOUR>
<HOUR == 6>the rosy hues of sunrise</HOUR>
<HOUR == 18>the vibrant reds of sunset</HOUR>
<HOUR >,< 6,11>the morning sun</HOUR>
<HOUR >,< 10,14>the midday sun</HOUR>
<HOUR >,< 13,18>the afternoon sun</HOUR>.
A second panel, representing the moon, shows the <REPLACE == MOON/> moon.
Another panel, representing the stars, shows the pattern of stars seen in <REPLACE == SEASON/>.
The last panel, representing the earth, shows the rolling landscape of Lensmoor passing by as if one were flying over it.
<SEASON == spring>It is covered in new spring growth</SEASON>
<SEASON == summer>It is growing golden in the health of summer</SEASON>
<SEASON == fall>It is covered in the golds and reds of autumn</SEASON>
<SEASON == winter>It is covered in snow</SEASON>.
The surface of the drum reflects the patterns of the sky, depicting a
<WEATHER == cloudless>clear</WEATHER>
<WEATHER == cloudy>cloudy</WEATHER> <WEATHER == raining>overcast</WEATHER>
<WEATHER == lightning>stormy</WEATHER>
<WEATHER == snowing>snow-laden</WEATHER>
<TIME == day>day</TIME> <TIME == night>night</TIME> sky.
</LML>
sample output:
Carved out of wood, this drum has the profile of an hourglass with a slightly shorter base. The top portion has four rounded panels carved into it. One panel, representing the sun, shows darkness. A second panel, representing the moon, shows the waning moon. Another panel, representing the stars, shows the pattern of stars seen in summer. The last panel, representing the earth, shows the rolling landscape of Lensmoor passing by as if one were flying over it. It is growing golden in the health of summer. The surface of the drum reflects the patterns of the sky, depicting a day sky.
Language
The language tag will display text if you know the language. If you don't know the language, it will show gibberish. Runes is considered a language.
<LML>
This potion is a very clear liquid that looks like water but is thicker, almost syrupy. It smells faintly of aloe. A label on it reads: <LANGUAGE == runes>restore youth</LANGUAGE>.
</LML>
Skillcheck
Another way to employ runes is to use a skillcheck to describe what they say, rather than having them read directly.
<LML>
Magical spheres of sunny light shine from the ceiling, illuminating the apartment. A collection of antique sidhe masks decorates the walls, their extravagant colors contrasting with the pure background. The floor consists of auburn and golden woods fitted together into a mosaic of spirals and runes<SKILLCHECK == runes> of health and happiness</SKILLCHECK>. Rugs of greens and golds obscure the delicate patterns in the wood.
</LML>
check succeeded:
The floor consists of auburn and golden woods fitted together into a mosaic of spirals and runes of health and happiness.
check failed:
The floor consists of auburn and golden woods fitted together into a mosaic of spirals and runes.
Stacked Skills
Perhaps my most ambitious work, I attempted to stack skillchecks so that those with higher skill in blacksmith will gain more out of the description than others. Note that because it was difficult to take the result of the previous skillcheck (each skillcheck is checked separately) and that there was no value given as it was a success or failure, I was very sneaky with the text that is viewed. Be careful doing this and test often.
<LML>
This document is a very technical piece of writing with complicated drawings.
<SKILLCHECK != blacksmith> It is a blueprint for a very complicated golem. </SKILLCHECK>
<SKILLCHECK == blacksmith>
<SKILLCHECK != blacksmith> It appears to be some sort of arachnid-based model. </SKILLCHECK> \\
<SKILLCHECK == blacksmith> \\
<SKILLCHECK != blacksmith> The mechanisms within are meant to produce silky steel from thread through an array of simple mechanisms within the main body. </SKILLCHECK> \\
<SKILLCHECK == blacksmith> \\
<SKILLCHECK != blacksmith> This sophisticated machine can produce several strands at the same time, improving on nature's 'design'. </SKILLCHECK> \\
<SKILLCHECK == blacksmith> The first two sets of legs are used to handle all the threads separately, pulling on each in a set pattern. </SKILLCHECK> \\
</SKILLCHECK> \\
</SKILLCHECK> \\
</SKILLCHECK>
</LML>
output examples:
This document is a very technical piece of writing with complicated drawings.
This document is a very technical piece of writing with complicated drawings. It is a blueprint for a very complicated golem.
This document is a very technical piece of writing with complicated drawings. It is a blueprint for a very complicated golem. It appears to be some sort of arachnid-based model. This sophisticated machine can produce several strands at the same time, improving on nature's 'design'. The first two sets of legs are used to handle all the threads separately, pulling on each in a set pattern.
This document is a very technical piece of writing with complicated drawings. It is a blueprint for a very complicated golem. It appears to be some sort of arachnid-based model. The mechanisms within are meant to produce silky steel from thread through an array of simple mechanisms within the main body. This sophisticated machine can produce several strands at the same time, improving on nature's 'design'. The first two sets of legs are used to handle all the threads separately, pulling on each in a set pattern.
Sector
Working with a mob description, I wanted it to appear to behave differently in different sectors.
<LML>
Made of clay, this is actually a skate-like golem with great flexibility in shape. Its gray dorsal surface is covered in small scaly spikes. The two large fins can flutter as it moves. A long, thin tail lashes behind it. Two sapphire eyes glimmer in the right light. Underneath, it might have a slit of a mouth but that may change for it uses the softer bottom surface to ingest debris, a cleaning mechanism. The gills open and close mechanically, bringing air to the systems inside.
<SECTOR == city inside vehicle>Right now, it is sucking up trash.</SECTOR>
<SECTOR == field forest hills>Right now, it is sucking up dirt.</SECTOR>
<SECTOR == desert>Right now, it is sucking up sand.</SECTOR>
<SECTOR == mountains>Right now, it is sucking up gravel and dirt.</SECTOR>
<SECTOR == underwater ocean>Right now, it is swimming about.</SECTOR>
<SECTOR == air>Right now, it is flying through the air as if in water.</SECTOR>
<SECTOR == ice>Right now, it is sucking up ice.</SECTOR>
<SECTOR == swamp>Right now, it is sucking up swamp muck for slime mold juice.</SECTOR>
</LML>
Container
A cloak designed for a ranger, the fact that it can cary things is hidden unless it is open. To reflect his desire to be stealthy, when it has a lot of stuff in it, it appears bulkier.
<LML>
Leaves are picked out in fine silken thread which is mottled rather than one consistent hue, and further changing with the angle of view. In contrast, the background material of the cloak itself is a coarse wool in mottled shades of dark green.
<SKILLCHECK == runes>Runes describing angelic protection are carefully hidden within the different shades of green. </SKILLCHECK>
The reverse side, however, is a very soft, dense wool dyed black, held in with sturdy seams along the hem.
<CONTSTATUS == open>There are deep folds within the cloak. </CONTSTATUS>
<CONTHOLDS > 5>The cloak is a bit lumpy.</CONTHOLDS>
</LML>
