Map Editor:  Standard Object Editors

Wyvern's Map Editor comes with some built-in dialogs for editing common game objects.


Bag Editor

The bag editor lets you set properties on bags and containers. The initial screen shows some basic properties for the bag:

The "Weight" property is how heavy the bag is itself, when empty. The "Capacity" property is how much stuff you can put in the bag.

The second tab in the dialog shows the contents editor:

You can browse the archetype tree on the right. If you select an item on the right and choose "Add", it will be added to the bag. If you select an item on the left and choose "Remove", it will be removed from the bag.

It is not currently possible to edit the properties of the items you put in the bag (unless you hand-edit the map file, which isn't too hard). We will be adding this capability soon.

The last tab is the standard Appearance editor, and lets you edit the bag's image and drawing layer.

Building Editor

This editor lets you set which squares you can walk on in a building or other structure. The "Walk Locations" display divides the building up into separate squares that you can select individually. A selected square will highlight to indicate that you can walk on this square.

You can also set the width and height of the building. If you do this, you should use the Appearance tab to set the building's image to a picture that fits the new width and height.

All buildings are teleporters. To set the destination for a building, choose "Edit Teleporter" from the popup menu when you right-click on the building.

Door Editor

This editor lets you lock a door and set the key code and tolerance for the lock. The key code is the number that has to be on a key in order for it to be able to open the lock. You can choose numbers up to +/- 2 billion, approximately, so it's easy to produce a lock and key that are practically guaranteed to be unique.

The tolerance property indicates how close the key's number needs to be in order to open the lock. If you have ten doors in a dungeon, and each has a different key code, but you want to have a master key that opens all of them, you could set the codes to, say, 9990 through 9999. Then set the tolerance of each lock to 5, and set the master key to 9994. The master key will then open all locks with numbers 9994 +/- 5, which is 9990 to 9999.

You can use any numbers you like — try to choose numbers that nobody else would pick, if you want to make sure nobody else's key can open your lock.

You can use the Key Editor to edit the key code for a key.

Lever Editor

This editor is a useful one. It lets you wire levers and gates together in a dungeon.

The lever editor is easy to use. First, right-click on any lever and choose "Edit Lever..." to open the dialog. Then move the dialog out of the way, and click in the Map View on any location in the map. That location will be added to the list of locations the lever activates.

You can also specify (x, y) locations manually by typing in the values and choosing "Add". You can also select a location from the list and choose "Remove selected location" to remove it.

Here are some things you should know about levers:

  • we don't currently support levers activating gates in other maps. Your lever can only specify gates in the same map as the lever.

  • button switches (large and small) are also "levers", and you can customize them using the Lever Editor. A small button switch requires you to stand on it to activate it, and a large button switch requires you to push a boulder or other heavy object on top of it.

  • you don't actually specify a gate to activate — you specify an (x, y) location, and the lever will look in that location for a gate to activate. So if you have 2 gates in a single location (not something you'd normally want to do), the lever will activate both of them.

Levers, buttons, switches and gates are useful ways to arrange your dungeon as a series of puzzles and obstacles, making it more interesting.

Sign Editor

The Sign Editor is a simple editor that lets you specify what's on a sign. The short description is what you see in your ground window when you're in the same square as the sign. The long description is what you see when you actually read the sign.

If you don't specify a long description, people will see the short description again when they read the sign. Signs usually have a long description that provides more information. The short description might read "Training Room", and the long description might read "You can come here to learn new combat skills."

Signs are an important navigation tool for players, and you should use them liberally in your maps.

Magic Mouth Editor

This is pretty much like the Sign Editor, except you just type in the message. A Magic Mouth is an invisible sign that activates automatically when you walk on it.

Spiral Staircase Editor

Spiral staircases are useful for areas that have lots of floors with up and down staircases. You can cut your number of stairs in half by using spiral staircases. A spiral staircase has an "up" and a "down" destination.

If you only specify the "down" destination, then trying to go up will tell the player "You are at the top of the stairs." Similarly, if you only specify the "up" destination, trying to go down will tell the player they're at the bottom.

Shop Editor

If you right-click on a Shop object, and choose "Edit Shop...", you'll see this dialog:

Lots of Wizards have messed up with Shops, so please pay attention to this part.

Golden Rule: you only need one shop object per map. Don't put more than one shop in a map (unless you have two separate shop areas that are far apart from each other).

Normally, you use one shop per map (the whole map is the shop), and you stick the shop in the upper-left corner of the map. It will automatically grow to fill the map.

There are certain (fairly unusual) situations where you want to have more than one shop area in a single map. To do this, you have to put ONE "special/shop" object in the upper-left corner of each area. Then you need to fill out the Edit Shop dialog to make sure each shop is the right size.

Set the width and height to make the shop just big enough to cover the area you want to be "in" the shop (i.e. where you can buy and sell things). Then click "Use fixed size specified below", and hit "OK".

Teleporter Editor

This is probably the most important built-in object editor. It lets you edit teleporters, which are links to other maps.

You access the Teleporter Editor dialog by putting any teleporter in a map, right-clicking on the object, and selecting "Edit Teleporter". Note: all buildings are teleporters.

The "Destination" section at the top specifies where the teleporter should take you when it's activated. You type in the path to the map, e.g. "wiz/foobar/maps/village1". The ".map" extension is optional.

By default, the teleporter uses the (x, y) coordinates you type into the coordinate fields. If you choose "Asks dest map for (x,y)", the teleporter will ignore your coordinates and see if the destination map has "startX" and "startY" properties, which can be set in the Map Properties dialog for that map. If so, it uses them; otherwise it will use (0, 0).

You can also select "Chooses random (x, y) location" to have the teleporter put you in a random, different place in the target map each time.

If you select "Teleports automatically", the teleporter will whisk the player to the destination map as soon as the player steps on it. Otherwise the player has to Apply the teleporter to activate it.

You can bring up a very similar editor by right-clicking on any map location in the Map View and choosing "Add Link to Another Map...". This will bring up a teleporter editor that lets you edit an invisible teleporter.

Terrain Editor

The Terrain Editor lets you set the properties of the terrain in a given map location. The properties are as follows:

  • opaque — if selected, the terrain will block visibility. You usually choose this for thick forests and other terrain that would normally obscure vision.

  • blocks movement — if selected, you won't be able to walk through this terrain (at all).

  • lets borders in — if selected, the neighboring terrain will shove their borders into this square if they have a higher terrain priority than this terrain.

  • extends borders out — if selected, this terrain will put its borders out (if it has any) into neighboring squares, if it has a higher terrain priority than the neighbors.

  • terrain priority — this is a number from 0 to 1000. It specifies how high or low this terrain is compared to other terrain types. Water is usually the lowest, and has a priority near zero. Sand is higher, then grass, and forests have a high priority around 600 or so. The terrain priority decides which way the terrain borders go between any two neighboring terrain squares.

  • Terrain objects with the same priority are considered to be the same kind of terrain, and will not draw borders on the boundaries where they meet.

  • movement speed the delay that gets added to players and monsters when they move over this kind of terrain. Value is in milliseconds. If you want it to take an extra half second to move across this kind of terrain, set the value to 500.

You can experiment with the terrain border settings to get the look and feel you want for a given area.

Wall Editor

The Wall Editor lets you set some properties specific to walls. The properties are:

  • blocks movement — if true, you can't walk through this wall. Most walls block movement, but some (e.g. illusionary walls) do not. To make a wall illusionary, simply un-check this option.

  • blocks vision — if true, you can't see through the wall. Most walls block visibility, but some (e.g. fences, hedge walls, glass walls) do not.

  • invisible wall — sets the wall to be invisible, so you can't see its image at all.

  • don't connect to other walls (ever) — if you select this option, the wall will not automatically connect to any other neighboring walls (even walls of the same type).

  • only connect to the same wall type — if you select this option, the wall will only connect to other walls that have the same "join-type" property. You can set a "join-type" property on a wall to force it to connect with another wall with the same "join-type".