Building Policy

We have some building policies for ensuring a consistent look and feel to the game, and ensuring that global code works properly across the whole game. This is a combination of a building tutorial and a how-to specifically for this game. Even if you're an experienced builder, you'll want to read these instructions.

Note that room display formats are enforced through attribute defaulting. When you @desc a room, the description is automatically formatted. You cannot override the way @nameformat, @conformat, and @exitformat get used. If for some reason you need a different format, you will need to persuade a wizard to give your room the FREE flag.

Please note that you should never use a thing to represent a location on this MUSH. Always make a room. This includes vehicles, ships, etc.

We have no real restrictions on the size of building (within reason, anyway). If you run out of quota, just ask any staff member or GM to give you more.

Where a Location Is

Every room in the game exists somewhere specific. The location is determined by what its parent room is. Locations are hierarchical, based on the chain of parents — for instance, Amber City is parented to Amber, which in turn is parented to the global parent room (#5).

Here's a quick list of dbrefs of commonly-used room parents, for easy reference:

  • OOC areas - #350
  • Private housing in Amber City - #575
  • Businesses in Amber City - #800
  • Amber City - #78
  • Amber Palace - #90
  • Amber countryside - #400
  • Golden Circle - #1000
  • Ships - #595

If you're not sure what parent to use, ask a staff member.


How to Build Just One Room

If you're building a personal room for yourself, or a single-room construction (like a tavern, inn, etc.), you'll want to follow the instructions below.

The quick summary:

  • @dig the room
  • @parent the room to an appropriate parent room
  • Write the general description as the @desc
  • Write the description of the exits as the EXITS attribute
  • Set a one-line description as the SHORT-DESC attribute
  • Set a one or two-sentence description as the TRUMP_DESC attribute
  • Set the room _PUBLIC if it's public
  • Proofread your work, and check it with +inspect and +spell

Here's the detailed explanation:

First, figure out what and where this room is, so you can figure out what to call it. Room names should be straightforward and descriptive. By convention, rooms that are within an area should include the name of the area after a dash. For instance:

  • Throne Room - Rebma
  • Sitting Room - Modest Brownstone
  • Corwin's Suite - Royal Palace

Once you've figured out a room name, use:

@dig/tel room name

This will create your new room, and teleport you to it.

Now, determine what the parent object of your room should be, and use:

@parent here = parent-dbref

Next, you should write the Desc, the general room description. Don't describe exits yet (you'll do that next). The command to do this is:

@desc here = description

If you want to use the editor instead, you can type:

+ed/begin here/desc

Don't start your description with a blank line, a tab, or spaces; paragraphs are automatically formatted, so doing so will make it look weird.

If the description is multiple paragraphs long, place a blank line between each paragraph (a blank line is %r%r). If your description is more than ten lines long, you might want to consider putting some of it into Views (type +help view for details).

Then, you should write the EXITS paragraph, used to describe where the exits in this room are. (You can have general verbiage in this paragraph, too, of course.) When this paragraph is displayed to someone who looks at the room, phrases that match exit names will automatically be highlighted in color. The command to set this is:

&EXITS here = description

Or, to use the editor:

+ed/begin here/exits

If you'd like, set a SHORT-DESC on the room. It shows up on +look, and will be showed to players set TERSE. A SHORT-DESC should be no more than a line long. Use:

&SHORT-DESC here = one-line description

All rooms need a TRUMP_DESC attribute set on them, with a brief description (just a sentence or two). The only exceptions are rooms that, for some very good IC reason, cannot have place Trumps drawn of them. Such locations should have a NO_DRAW set on them. TRUMP_DESC and NO_DRAW are attributes, set just like the SHORT-DESC is; more generically, attributes are set with:

&attribute here = text

We strongly encourage public rooms. If you want to mark your room public, set the _PUBLIC flag on it, with:

@set here = _PUBLIC

Use the +inspect command on your area and consider its advice. You may wish to ignore some of its recommendations, but most of the time, its advice will be useful.

Use the +spell command to spellcheck your area. Obviously, it won't catch all typos, and it may not recognize some words, but it's better than nothing.

Proofread your work. Get a friend to look it over.

Once you're ready, you can get it linked into the grid.


How to Build an Area

We encourage you to build, but we'd like you to build with a purpose. All areas in the game should facilitate roleplay in some way. We have no quotas (other than anti-abuse ones, so if you need more, simply ask for more via +submit), but you should keep your building to a reasonable size — build only as much as you need to achieve the effect that you want. It's harder to maintain quality across a bigger area, so we encourage you to think about small, detailed areas, rather than sprawling ones.

If a room exists, it should be because you expect players to roleplay in it. Try to avoid corridors, unless they're inherently interesting or there's no good alternative; consider a descriptive exit @succ, such as, "You step out of the dining room and walk across the hall before entering the parlor."

It should be possible to draw a map of the area, and have it make logical sense. If you go east to get somewhere, you should be able to go west to get back (or, there should be a logical explanation for why there's no west, such as your taking a one-way ferry to get where you are now).

In fact, you should probably draw a map showing how your rooms connect to one another, before you start building. At the very least, you need a reasonably consistent path for where "out" from any given room will take you.

Getting a Builder

If you are building more than your own personal handful of rooms, you should be using a Builder character — another character object that owns building on behalf of a group of people.

Use +request/alt area_Bldr to obtain a builder character.

You will probably need more quota (we do have server-enforced limits to prevent abuse). We're happy to grant you more; please +submit an admin request for more when you need it, and it will be taken care of.

Setting Up an Area's Parent Room

If your area has more than a handful of rooms (use your judgement, and ask the staff if unsure, but three or more rooms is a good guideline), you'll want a parent room for your area. Do this with:

@dig/tel area name Parent Room

This will create the room, and teleport you to it.

Is your area within another, existing area? If so, this room needs to be parented to that area's parent room:

@parent here = parent-dbref

You'll need a short, descriptive name for your area. This is the name that appears in the upper right-hand corner of the room format, when you look at the room. It's set by the LABEL attribute, as follows:

&LABEL here = area name

If this area is a prop, the prop number for the area (the prop that "controls" whatever the area is part of) should be set as the PROP_AREA attribute on this room parent. See +help Props for more on props; ask a staff member for help if you're unsure what prop, if any, this area is part of, or if you need a new prop set up. Once you know the prop number (given by +props and similar commands), you can set it with:

&PROP_AREA here = number

A parent room is OOC, and therefore should have the _OOC flag:

@set here = _OOC

Note down the number of this room. Type think num(here) if you're not sure what it is. This is the dbref you'll be using for the @parent command in all of your rooms in this area.

Now you're ready to build your area.

Building the Rooms

Start by building the first room in your area — follow the "How to Build Just One Room" instructions above. (Note that this room must be different than the parent room for your area!)

Then, you'll be ready to build the next room, and connect it to this first room via exits.

Exits are named, by convention, with a descriptive term, with aliases of the direction and direction abbreviation, as well as the capitalized letters of the name. The "full name" of an exit is its descriptive term (broadly, its "name"), followed by a semi-colon, followed by a list of the aliases, with each alias separated by a semi-colon.

For example, a valid full name for the exit into the Throne Room might be "Throne Room;south;s;tr". Another valid full name might be "Golden Door;south;s;gd". All exits should have a direction as part of their alias unless there's an extremely good reason for why not.

The last line of a room's format shows the exits out of a room. It contains directional abbreviations if available. If an exit doesn't have a direction, its name will be used instead, unless its name is of the format ""name <abbreviation>", i.e., "Door 1 <D1>"; in this case, the abbreviation is used instead (i.e., "D1").

You need to come up with a full name for the exit from this room into the next room (the link), and a full name for the exit from that next room into this room (the backlink). Once you've done this, you can build the next room and the exits with:

@dig name of the next room = {link full name}, {backlink full name}

Exits should have #44 as a @parent or be parented to an exit that is in turn parented to #44. This will provide some useful default messages. (Exits are automatically parented to #44, so you don't need to do anything unless you want to use a different parent exit for exits in your area.)

From any room in an area, typing 'out' repeatedly should lead to the entrance to the area; therefore, every room should have an 'out' exit. The out exit should have 'out;o' as one of its aliases.

If you want to get fancy, you can consider using a +compass format to better give the layout of this room when someone types +compass. See +help compass formats for a list of the available formats. If you like a particular format, you can set it on this room with:

&COMPASS here = format name

You can now move onto the next room, or keep digging new rooms and new exits from this room. You can work on rooms in any order; just make sure you're at the right connection point for a room before digging a room that's linked to it.

Getting Fancy With Lore

It's possible to make text visible only to people who meet certain RPG pre-requisites. Here are some code snippet examples for doing so. In the examples below, lore/level is something like GL-Begma/3 — i.e., "you must have level 3 in the GL-Begma lore or higher to read this".

Example: Add a portion to a room's desc that has lore-limited visibility

@desc here = [u(MAIN_DESC)][nonzero(Authorized(lore=lore/level,%#),%r[u(MORE_DESC)])]

&MAIN_DESC here = This is the desc portion that's visible to everyone.
&MORE_DESC here = This is the desc portion that's only visible to those with the lore necessary.

Example: Local help (+lhelp) entry with lore-limited visibility

&LH_EXAMPLE here = [nonzero(Authorized(lore=lore/level,%#),u(HELP_EXAMPLE),You can't read that.)]

&HELP_EXAMPLE here = This is where you put your text.

Advanced Configuration

Once you're done building your area, you might consider doing one or more of the following:

  • Set up local help for your area (see +help local help).
  • Set up +zoom shortcut aliases for the rooms you expect to be major gathering points for roleplay (see +help zoom).
  • Customize the exit messages used for +knock (see +help knock).
  • Set up keywords used for ability activations, in each of your rooms (see +help keywords).
  • Set up spying opportunities (see +help spying).

Getting Linked In

Once you're satisfied with how your completed building looks, you're ready to be linked in.

Once you're linked in, you will be able to use the +build commands to set messages on the exits into and out of your room or area, even if you don't own those exits.

Links to Player-Owned Areas

Page or +mail the person who owns the area this room is part of. Ask them to link you in.

The +link command makes it easy for a builder to link you in. To use it:

  • Go stand in the room that you want linked in.
  • Now, get the builder of the area to go stand in the room that you want connected to yours. (They don't even need to log in their builder character; they can do it as any of their registered alts.)
  • The builder can then use +link your-name with exit-name-in to link your room.

Links to the City and Palace

If you need a link into Amber City or the Royal Palace, you should use the following:

+submit link = short name

You will be put into the editor to explain your request. As part of that, make sure to briefly note what the place looks like from the outside (whoever is linking your building will incorporate this into the connecting room description).

When you're done writing that, you will then be given a form to complete. The form will ask you for:

  • The room dbref that you want linked
  • The room that you want it linked from
  • What the door/entrance looks like (used as the description on the exit leading into your room)

You may also need to provide a token ID (see below).

Royal Palace Links

If your character is only just moving into the palace IC (i.e., he does not have historical rooms there granted to him when he was recognized as part of the royal family, or the like), you need to arrange to get a room IC.

Currently, Flora needs to approve new palace residents. She can signify her approval by offering you a 0-point token, which you should include in your link +submit.

You'll also need to decide where you want your room to be. Suites in the palace should only be linked from Solars or Salons, and they use NE / SE / SW / NW links. If all four of those links are already taken in a solar or salon, it is full and you cannot request another link there.

Amber City Links

For all links to Amber City, you will need either a reason why it shouldn't cost you anything to have it linked in (it's building done for the game and not a personal property, it's centuries old and held by your noble house all that time, etc.), or you will need to pay for it via a resource token.

In Amber City, type +neighborhood to see the level of a room's neighborhood. To get a link there, you'll need to obtain a resource token at that level or higher, representing the assets needed to obtain (via either purchase or rent) that property, and often, the influence/prestige necessary to get someone to allow you to obtain property there. Townhouses and other buildings of significant size require at minimum at level 2 resource token (even if the neighborhood is lower level). 6-Focus Pattern Walker tokens may be used to substitute for level 2 resource tokens, as long as the property is "sponsored", IC, by someone with sufficient prestige (one of Oberon's children, or someone with a level 2 resource). Include the number of the resource token in your link +submit.

See the Amber City wiki entry for more details about housing in Amber City.

When choosing the location of your building, keep in mind that the street location needs to have a directional link available. We generally use NE / SE / SW / NW links for buildings, unless for some reason the street already has a diagonal direction. If all the diagonal links are taken, that street is full and you cannot request another link there.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License