SMM++ Manual Version 5.0

9 Mapping with SMM

Mapping is the most powerfull feature of SMM and the feature, which makes SMM unique. But on the otherhand side it is the most complicated and difficult part of SMM to explain, although on an absolute scale it is not that difficult;)

Before going into all the details, I will

  1. say a few words to maps in MUD's / how SMM fits into this scheme,
  2. then show the easymans way of mapping.
  3. At last I will go into all the details of SMM mapping.

Please, take your time to read this manual. I strongly believe that it will pay off.

9.1 Maps in MUD's/SMM

As stated before, maps are a collection of rooms. The rooms themself are conected to other rooms with exits and by using an exit you travel from one room to another. Of course rooms can be connected to rooms in other maps.

Most MUD's support the general idea of north, south, west and east. Therefore a grid is naturally the base of a map. Of course, one could just draw blobs as rooms, which are placed just anywhere and connect all the blobs with eachother without caring about north, shouth, west and east.
For SMM I have choosen grids as basis's of maps. This gives much better orientation!

So far everything sounds sensible and easy. But here comes the whole truth:

9.1.1 Rooms

Rooms in MUD's are not rooms as we normally use to know them; instead a room can be a whole landscape (top of a mountain, part of a forest), a cave, a tunnel, a part of a road, a building or also just a normal room.

Advise: You should try to separate maps, if the sizes of the rooms are too different: e.g. outside of a city (rivers, mountains, swamps) - in a city (roads, buildings) - in a building (rooms).

9.1.2 Exits

Exits also don't need to be sensible: e.g. you could walk n-e-s-w and be somewhere totally different than you started. In such a case you need to redirect one exit and avoid so the collision of two different rooms. SMM supports redirecting.

9.1.3 SMM Maps and Rooms

A SMM map is collection of rooms, which are placed on a grid. The general orientation of the grid is as follows:

  • north is above,
  • south is below,
  • west is left,
  • east is right.

The SMM coordinate system is the following:

  • X-axis: left -> right
  • Y-axis: below -> above
It absolutely doesnt matter where the origin (0,0) is or if it exists at all.

When you map, you add one room by room to the map. A room can have a maximum number of 12 exits (up to now I never reached this limit). But rooms can store and display even more information:

  • backgrounds (BG),
  • little icons/pictures (refered as stuff from here on) and
  • normal text.

Backgrounds are very important: a room only exists, if it has a background. The default background is just a dot, but you can choose backgounds from a variaty of buildings, landscapes, etc,..

Just one last remark: SMM supports and ecourage drawing of sensible maps, but the user still has a maximum degree of freedom; e.g. a southern exit leading to north and sending a movement command to east:)). You dont need to understand this right now. Just keep in mind, that you can draw any map as you like it and not as SMM forces you to draw it. SMM just gives some guidiance, so it looks/feels better/more sensible.

After all this theory we now come to the practical part.

9.2 The easymans way of mapping

As the zoom interface (zif) is of major importance: for remembering (for more detailed information, please follow this link: The Roominterface/Zoom (8)),..


The reason is, that you cannot draw directly on the map, but must instead build the map room by room in the zif and then add it (press accept) to the map. OK,..

  1. First you need an active session. Load one for the beginning.
  2. Now you need a map you can map on: menubar -> map -> new map.
    click on 'create'.

You will see a nearly empty canvas; just a grid is drawn and two boxes of red and blue color.

The blue box shows, where the player actually is (at least what SMM think it is at) and the red box shows the actual zoom position. If you press the accept button, it refers to this position (see below). This means rooms are added at the zoomposition and the content of this room is displayed in the zif.

The coordinates of the zoomposition are displayed at (4.4). Change the numbers at (4.4), press return and the zoom will change its positon to the new position.

Single click with the left button into the map. the zoom will follow.

Double click into the map, and the player position will follow.

9.2.1 Create a room

Single click with the right mouse button on button (4.1) - you have created a room with the default background (BG). Accept. You got your first room.

Single click with the right mouse button on button (4.1). Accept. You have deleted the room again.

A room only exists, if it has a BG.

You can choose another BG: click with the middle mousebutton (or hold shift and click with the right mouse button) onto the BG button. An interface will show up and you just select the now you like.

You can also choose another bg to be the default bg: first press 'set def. bg', then choose a bg.

9.2.2 Stuff

You can mark the room, that something interessting is lying around. Right click onto any of the stuff buttons (3) and press the accept button.

You can also choose from other icons: middle click (or shift-right click) onto any stuff button. A interface shows up, which behaves just as the bg interface.

9.2.3 Text

If an icon is not sufficient, you can leave text on the map: just input anything into the text entry (4.2) and accept. The text will show up.

You can set the text attributes: middle click onto the label 'text: '. A selfexplaning interface will show up.

9.2.4 Exits

All this is kind of neat, but not as useful, as what follows now. E.g. you are in a room with exits to north and east. Right click on button ex(nc) and ex(ce), accept. Your exits have been created. Now left click on ex(nc). At this point the command north is send to the mud and you are moved to your new position on the map.

Now you are in a room with exits south and up: right click (right click = RC) on ex(sc), RC on ex(nw), RC on ex(nw), accept. The buttons at the corners can be used for up and down commands too as you see. Of course you can also use them for northeast, etc. commands.

RC on ex(nw) and accept. the exit is deleted.

RC on ex(uo) and accept. LC on ex(uo) and you are asked, if you want to create a new map. The buttons in the center redirect on default the exit to a new map. This is useful, if you map e.g. a building with several floors,..

These are so far all the the easymans ways of mapping. You now know everything, except how to customize exits for your special needs.

9.3 Customize an Exit

First off: even, if you want to build a totally unusual exit, building a default exit first and then change a few things is in most cases the better way.

Click on any exitbuttons with the middle mouse button (or keep shift pressed and RC). an interface will show up:

  • command: this is what is send to the SMM parser and then finally to the MUD. You must have this! Or the exit doesn't exist.
  • map: the name and level of the map, this exit leads to. If its empty, exit leads to the same map.
  • door: check it, if the exit has a door. -> a little square is drawn, which symbolizes the door and the open/close door commands are send around the 'command' command (see above) when moving.
  • connect: here you can redirect the exit. Just enter new coordinates. Or click on the button with the mouse symbol on it; now you have to click onto the map to the position, where this exit should lead to. You can change maps while this action and redirect to another map!
    If you cut the connection (scissor symbol), the exit still exists but leads to nowhere.
  • draw: you can draw to other coordinates than the connection is leading to. Cut it (scissor symbol), if you dont want it to be drawn.

    Keep in mind, that you always draw a line or arrow on the same map.

    So why the heck should you draw the connection to somewhere else then the exit leads to? e.g. you may have maped a city in a separate map and the lands around the city in another map. The nothern gate of the city is at 0,20. You are now outside the city - one north of the nothern gate at position 0,1000. So what you want to do, is to connect the exit to 0,20, but draw the line just to 0,999. Maybe you also want to draw a city background at 0,999.

Now I hope you understand what I mean with: a nothern exit is leading south and sending an east command to the MUD.

If you can understand this, then you have understood the concept! If not, you hope to understand it later, read the manual or send an email to me or better to the mailing list.

9.4 Development Mode

From "Menu->Map->Development Mode" you can turn on/off development mode. If its on: lets say you have edited the room in the zif and are now changing the zoom position, then the room in the zif is automatically saved before leaving this room.

9.5 ::smm::map commands

Up to here you were tought how to create rooms and maps using the graphical userinterface. But you can do everything also from the command line or from within a script. Please refer to the smm commands section: ::smm::map

You can use these commands in aliases/procs, to build an automapper, etc..

Selim Issever
<Commands: SMM++|Contents|SMM++ Maps>