=========================================================================== MAPEDIT FAQ v. 1.0 By: Jay Chapman (MAD-DOG) Last Edited: June 20th, 1997 =========================================================================== NOTE: Do not edit or change this FAQ in any way. This FAQ is property of the author. You may distribute this FAQ freely; however, you may not charge people in any way for this FAQ. If the product is non-profit or for some other cause, and would like to include it, then you must contact the author and receive his personal permission to do so.
NOTE: The author assumes that anyone reading this FAQ has already read the manual that came with Mapedit. Sometimes I will tell you the keys also, but that is just to try and make it easy for the reader. Sometimes I don't say the key. If you read the manual I feel you will benefit greatly from this FAQ, and in your own MAP making.
NOTE: At this time it is unclear if there will be a user question section, like planned, at the end of this FAQ. It is possible, but we will have to be patient.
NOTE: I can be reached by E-MAIL at . Please do not send me unnecessary E-MAIL. ---------------------------------------------------------------------------
I. Introduction A. What is the purpose of this FAQ? II. What is MAPEDIT? A. How do I use it? III. Simple Editing to get your feet wet A. Drawing your first Sector B. Adjusting the height of the sector IV. Adding Sprites A. Face Sprites B. Flat (Wall) Sprites C. Floor Sprites D. Enemies E. Ammo, or other items V. Making Z-Motion Sectors A. Doors B. Elevators. C. Z-Motion can be used for endless possibilities VI. Making Sliding Sectors VII. Making Rotating Sectors VIII. Making Water A. Just above B. With the ability to go above and below IX. True Room over Room Sectors X. Translucency A. Windows B. Water XI. Mirrors XII. Triggers A. Switch triggers B. Event Triggers C. Secrets XIII. Light Switches A. Lights can be activated by anything B. Special Lighting effects XIV. Making Walls Blow up with holes A. From Explosion B. From Trigger XV. Z-Motion Sprites XVI. Sliding Marked A. Sprites B. Sliding Doors XVII. Gibable objects A. Sprites B. Walls XVIII. Panning Textures XIX. Adding Sound effects to the World A. In sectors B. Ambient sounds C. Already existent sprites. XX. Teleporters XXI. Multi-player, Single-player Starts
XXII. User Questions ***************************************************************************
I. Introduction
This FAQ was originally started based on the demand for a FAQ that would help people create MAPs for Blood using MAPEDIT. I saw a lot of questions. A lot I could answer so I decided to start a FAQ. I will show you how to do many things, from creating a sector, to blowing up walls and Gib effects.
***************************************************************************
II. What is MAPEDIT?
MAPEDIT is a program used to make Blood MAPs. Originally Build, MAPEDIT now supports new features, for the new BUILD engine. (BUILD was the engine used in Duke Nukem 3D, and being used in Shadow Warrior). You use MAPEDIT by drawing the sectors in a 2D area. Then you can switch to a 3D edit are using the keypad 'ENTER' and change the height, shading, textures, palettes, and a bunch more. Also in 2D mode you will edit, what I like to call the hard code section, its what make the levels do what they do. And I like to call what you do in 3D edit mode cosmetic code. Its more for looks then for how everything works. However they both contribute equally much to making an exciting MAP for Blood.
***************************************************************************
III. Simple Editing to get your feet wet
To draw a sector in MAPEDIT place the mouse cursor where you want to start and press 'SPACE' continue the process until you close the sector. The lines will be white. This means that they are solid walls, and you can not pass through them, or see the other side of them. Make sure that the white arrow is inside the sector that you just created, if it is not, then move the mouse cursor inside the sector and right click with the mouse. then press the keypad 'ENTER' to enter 3D mode. In 3D edit mode use PgUp / PgDn to change the height of the floor and ceiling or the sector that the mouse cursor is pointed on, or selected. Using '['/']' will change the slope of the Floor or ceiling (not walls). Use 'V' to select a texture for a surface (i.e. Wall, Floor, Ceiling). First it will show all the textures currently used in the MAP; however, it will only show the textures for that kind of texture; for example, if you are editing the floor texture it will only show the textures that you have used on the floor. Press 'V' again and you will be able to see all the textures. (Not all the Textures are meant for Walls, they are also for Sprites and other things (We will talk about that later)). You can add more sectors inside of the sector you created by following the same process as before but inside the sector. The lines will be white and you will have created a column-esque structure in your MAP. To make the sector so that you can walk through it or change the height. have the mouse cursor over one of the walls (in 2D mode) and press ALT-S. The walls of that sector will now become red. You can go into 3D edit mode and you will see that it looks like the sector is gone. Its there it just has all the same attributes as the sector that it came from. You can edit the height and textures and whatever of it. Lift the floor to make a counter. You can create a lot of things with this simple feature, be creative. To view the properties of a sector press F5 and to edit them hit ALT-F5. Remember to have the mouse cursor inside that sector first. This feature will become important later on in this FAQ.
***************************************************************************
IV. Adding Sprites
You can add sprites from either 2D or 3D edit mode. To add a sprite from 2D edit mode move the mouse cursor to the spot that you want to insert the sprite, then press s. you will see a little blue circle with a stem. The stem is the direction that the sprite is pointing in. This is a face sprite, that's all that all that you can create from the 2D edit mode. Sometimes when you place a sprite in 2D mode the height of it is below or above the ceiling. For this reason I like to place the sprite in 3D mode first and then go back to 2D mode to fine tune the position or whatever, unless its a sound sprite, then it doesn't really matter. In 3D mode you can place two different kind of sprites. To make a face sprite put the mouse cursor on the floor and press 'S'. You will see all currently used sprite textures, press 'V' and you will see all art tiles. To make a wall sprite place the cursor on the wall, towards the top, and press 'S', then the rest of the process is the same as the face sprites. To switch between the kind of sprite after it has been created use 'R'. There are three possible kinds of sprites in Blood, Wall (Flat), face, and floor sprites. face sprites always face the player. Wall sprites remain facing the same direction, and floor sprites remain facing the same direction but are looking up(or down). To create Enemies or Ammo the best way is in 3D mode instead of using 'S', use ALT-'S', A pop-up menu will appear, follow the menu to get what you want. This way you don't have to do any of the editing in 2D to make sure that they serve the appropriate purpose. However, in case you are wondering how you would edit them in 2D, here is what you do. Create the sprite. Then in 2D edit mode press ALT-F6 on the sprite. A box will come up where you can edit the properties of the sprite. The first box that is selected is where you would have to change for enemies, ammo, or keys to take effect. Locate the appropriate Type of what you want and hit 'ENTER' to save. Use 'ESC' to cancel while you are editing. you can view the properties of any sprite by just using F6. This box allows many features in MAPEDIT. More on those later though.
***************************************************************************
V. Making Z-Motion Sectors
Z-Motion Sectors can be used to create some really cool effects in Blood. They are used for lots of things, from destruction to changing the height of water. They are used for doors and elevators to. To make a Z-Motion Sector you must edit the properties of the sector by using ALT-F5. Change the Type to Z-Motion. To adjust the positions for the Z-Motion Sector go to 3D edit mode. Select where you would like the Sector to be in the OFF position. when you find it press ALT-F3, the position is now changed. Pressing F3 will show you the OFF position. ALT-F4 and F4 work the same way for the ON position. Selecting a Busy Time for the OFF->ON (going from OFF position to ON, ON->OFF is just the opposite) or ON->OFF will tell how long it takes to go from the one position to the other. If you select a waittime this is how long the sector will wait before returning to the other position. Very useful for doors that you want to close after they have been opened by the player. It is helpful when editing to leave the sector in the ON position so you can see by it, but be sure that the state is OFF. Usually you should press 'O' on the sides of the Z-Motion sector so that the textures stay in the same place and don't change with as the sector changes its Z-Position.
To make a Z-Motion Door create the Z-Motion sector like explained above. Select the Textures as you please, although its not necessary, it is essential to have the Textures be what you want in the MAP. Select the TRIGGER ON: Box for WALLPUSH. This way whenever the player pushes (uses the action key, on a wall it will activate the sector. If its ON, then it will go OFF. If OFF then ON. Or if Interruptible is set then in between in one direction to the other).
To make an elevator create the Z-Motion sector like above. Select the Textures that you want. This time Make sure that your ON and OFF positions are always open and have the same amount of space in between them. That way they will look like an elevator. To make an Elevator trigger when the player steps in the elevator select the TRIGGER ON: box for ENTER. This To make the user press the action key to activate it select PUSH. WALLPUSH to make the player press the action key on the wall. You can select multiple trigger options. We will discuss how to make it trigger by other Triggers in the Trigger Section.
Z-Motion Sectors are used to create many of the cool special effects in the Blood Levels. If you want a Wall to fall then you use Z-Motion Sectors. If you want to blow a hole in a wall then you use Z-Motion Sectors.
***************************************************************************
VI. Making Sliding Sectors
To make a sliding sector make the sector that you want to slide. Make the sector. Change its type to Slide. A new sprite type gizmo appears on the screen. Place the sector in the on position and put the arrow part of the sprite on the sector, and the stub end of the gizmo where you want the part that you have the gizmo pointing to go. The gizmo doesn't really have to be pointing to anything on the sector it just makes it easier for me, so I recommend that way. It makes it easier to see for me. Make sure that the State is OFF. That way when the level is started the sector will be where the stub part of the gizmo is. Again the busytime and waittime do the same thing as for the Z-Motion Sectors. To make the texture stay relative to the sector and not stay in the same spot hit 'R' on the surface of the sector. They can also be triggered all the same ways as Z-Motion Sectors.
!!!This is not how you make Sliding Doors, due to the fact that you can't have a sector slide between sectors. This is for the Same reason as for why the Rotating Sectors can't go between sectors!!!
-Sliding Doors are explained in Chapter XVI: Sliding Marked
***************************************************************************
VII. Making Rotating Sectors
To make a Rotating Sector first create the sector in the on state. Then make the type Rotating, keeping the state in OFF. A rotating sprite will be created. This sprite tells the sector how much to rotate. It does not point in the direction that the sector will rotate. Instead it tells how much to rotate. When it points to the right it is at 0. When the angle is negative the sector will rotate counter-clockwise. If the angle is positive then the sector will rotate clockwise. The angle number will tell how far. Use it from the 0 to whatever. And just rotate everything in your mind so that the 0 angle is the way the door is, and then the angle pointing is at the place where the door will be. (By the way: The number used for the sprites angle is from the ON Position to the OFF. To figure out the OFF position the Build engine just goes backwards from the ON position to the OFF based on how far it would rotate to get to that ON position. Sometimes this can make it seem like the positive number is for counter-clockwise.)
Make sure never to have the sector rotate into another sector. The Build Engine renders a whole sector at a time (The one closest to you, and then continuously further away), and has a mask file which won't let the engine write to the screen in any place that had been drawn to before. That way you get Hidden Surface Removal. If the sector goes into another sector that is closer to you then you will only see the part of the door in the other sector. Very Ugly!!!
Again this kind of sector can be activated just like Z-Motion or Sliding Sectors.
***************************************************************************
VIII. Making Water
There is two basic kinds of water. The kind that you stay on top and you dip down and here the sound effects, and the kind that you can go under. First I will explain the first kind of water.
To make water that you stay above and dip down in, make a sector like normal and have the floor texture be one of the water textures. Then to define how deep you dip down change the depth field. It ranges from 0-7. This is called the GOO depth field. The engine has no information about anything under the water. There is nothing there. It just makes sounds so that it sounds like water (when jumping in it), and it adjusts the height.
To make the kind of water that you can go under, make two sectors. The first sector is for above water and the other is for below water. Make the floor of the above sector a water texture, and make the ceiling of the below sector have the same texture as the floor on the above sector. Create two sprites, one in each sector. Change the type of the sprites so that the above sector sprite is Upper Water. and the type of the below sector sprite is Lower Water. !!!Very Important: Make sure that the sector for above and below water is identical in 2D mode. That's the shape and size. The heights and certain properties can be different but you have be able to come out of the water in every place you can come in. That's just common sense!!!. In 3D mode you will see that they are arrows pointing up and down. Down for above water and up for below water. Put these sprites on the ceiling for below water, and on the floor for above water. Make sure that these sprites are in the exact same location in both sprites so that they are aligned correctly. Edit data field one on the sprites. Put the same number in them. This tells the engine which sector to look to for above or below the sector. Edit the sector property for below the water. Check the box next to underwater so that it will be blue under water and you will be able to float, and suffocate.
***************************************************************************
IX. True Room over Room Sectors
Room over Room sectors are almost identical to water sectors. Instead of selecting a water texture for the ceiling and floor of the sectors put texture #504 on them. Make the type of the two created sprites Upper Link and Lower Link. Put the number in data field one again. Do not make it underwater since its not. That's all there is to it.
***************************************************************************
X. Translucency
To make a sprite or wall translucent press 'T' on it. To make a wall Translucent it must be a masking wall. Masking walls are between the floor and ceiling of a sector and are visible blocking objects with sectors on both sides of it. You can make any sprite Translucent. To make a window you can take either method. I prefer sprite just to make it gibable, or breakable in this case. create a wall sprite, put it where you want the window, select the texture for the window, and then press 'T' to select the translucency level. There are only three levels, all none, or 50/50.
To make translucent water you actually create two Room over Room Sectors instead of two water sectors. However the two sprites are still labeled upper water and lower water. However you use texture #504 instead of the Water texture. Instead you create sprites for the water. Create the sprites to fill the space on the floor of the above water sector. Make the sector a floor sprite, and make it on the floor. Use Ctrl-PgDn to put it exactly on the floor. Then make the sprites translucent using 'T'. Its kind of like faking translucent water by making two room over room sectors with a water translucency sprite to make it look like water. You only need the sprite on the above water sector because you will see it from below when it goes above the ceiling.
***************************************************************************
XI. Mirrors
Mirrors are very easy to make. Just change the texture of what you want the mirror to be (must be a wall), to texture #504. That's all there is to it.
***************************************************************************
XII. Triggers
Triggers are very useful, whether they are from trigger switches or event triggers. First, to make a trigger switch create whatever you want to be triggered. Then create a sprite for the switch. I recommend using ALT-S that way the type will already be set to Toggle Switch. Give the sprite an unused Transmit Channel (Must be >=100), and give the sector (or whatever) that you want to be toggled the same Receive channel. (By the Way: Transmit and Receive Channels are labeled as Tx and Rx in MAPEDIT.) Change the CMD of the switch to Toggle. Make sure its checked to send at both ON and OFF. Have it trigger on Push. That means whenever the player uses the action key on it will be triggered. (Note: sometimes you don't want a switch that toggles all the time. Maybe you might want a 1-way switch. Just change the type of it to 1-way switch. Plus there are Different CMDs to use. They will partially listed below).
To make something trigger on an event, such as Entering a room. Create the sector that is going to be the room. Give it an Unused Transmit Channel. Make it transmit going ON and OFF. Have it be triggered on ENTER. Make the CMD Toggle. Make whatever you want to be triggered and give it the Receive channel that same as the Transmit on the other Sector. Then it will be activated whenever someone steps into that room. (Note: That example is for entering a room only, everything is similar to that so that should be enough to get you experimenting and easily figuring things out.)
You also use Triggers to tell when the player has found a secret. To do this Set the CMD to #64 which is 0. Set the Transmit Channel 2. That is the reserved channel for secrets. Check off 1-shot to ensure that the player only gets credit for the secret once. Select send on OFF->ON. You can anything activate it. To have it say "found a secret" when the player enters the room, select Trigger on ENTER. That's all.
CMDs: ON: Turn the Object (Whatever you have it set to) to ON OFF: Turn the Object to OFF Toggle: go from OFF->ON or ON->OFF Link: to link Objects together Lock: To lock the Object Unlock: Unlock the Object Toggle Lock: go from Locked->Unlocked or Unlocked->Locked.
Also on what's being triggered you can change things like how many times it can be triggered and such. For example, if you want something to only be triggered once check off 1-shot. If you want it to be able to change its state while in the middle of transition check off interruptible
***************************************************************************
XIII. Light Switches
To create a light switch first create the sector or sectors to be shaded by the switch in the OFF position. Create a switch and give it an unused Transmit Channel, and set the CMD to Toggle. In the sector or sectors that will be effected create the corresponding Receive Channel. Go into the FX section under the Sector properties. In the lighting section check off ceiling, walls, and floor to shade the whole sector. Set the amplitude to the amount that you want the shade to change. + is darker, and - is brighter. You can use anything to trigger lighting effects, not just switches.
***************************************************************************
XIV. Making Walls Blow up with holes
To make holes in walls make the sectors where the hole will be. Make these sectors Z-Motion. Put the sectors in the position that you want for when the hole is open. Save each sector of the hole in the ON position. Use ALT-F4 incase you forgot. Then close the hole and save all the sectors in the OFF position. Put all the sectors state in the OFF. Put a wall sprite on the wall where you want the hole to be (doesn't have to be but would be kind of stupid for it not to be) using ALT-S in 3D mode, and select misc-Wall Crack. In 2D give the Wall Crack sprite an unused Transmit Channel and give all the sectors for the hole the corresponding Receive Channel. On the sprite make the CMD: ON. Have it send when going ON. For the sectors check off the 1-shot.
To add explosions when the hole is created, make sprites, and change the types to hidden explosions. Give them the same Receive channel as the Sectors. Use the waittime to decide when the hidden explosion will go off. It is better to have the explosion last with multiple blows then to have one great big one at the same time. Or at least that is my visual preference, and I guess Monoliths too, as that is the way all the levels that have exploding walls do it.
You can make a wall blow up by making anything transmit CMD: ON, to that channel.
***************************************************************************
XV. Z-Motion Sprites
Z-Motion Sprites are loosely similar to Z-Motion Sectors. They both use ALT-F3 and ALT-F4 to change their heights. But they react use them very differently. First Create the Sector that the sprite will be in, then create the sprite. Change the Type of the sector to Z-Motion Sprite. Set the Sprite in the OFF position. Save the position using ALT-F3. Then move the floor to the amount that you want the sprite to move, and press ALT-F4. After that put the floor back to where you want it and then mark the sprites that you want to move. Use 'K' to mark the sprites.
(NOTE: This was the hardest thing to figure out. With the help of Philip Buchan, we figured it out. I knew about the marking, and the sector being Z-Motion Sprite, which is the easier part. And he somehow figured out how to change the heights using the floor. Thanks Phil!!!)
***************************************************************************
XVI. Sliding Marked
Sliding Marked is used for Sliding either walls or sprites. This works very much similar to Sliding Sectors. First Create the sector that the sprite or wall will slide through. If it is a sprite place the sprite inside the sector. Make the Sector type Slide Marked. A Sprite will appear that is exactly the same as for Sliding Sectors except that it is for Sliding Marked. Again it can be anywhere but helps to be on the thing that you want to slide. to mark something for slide use the 'K' key. The sprite or wall will turn Blue. If you press 'K' again, it will turn Green. Blue means to go in the direction that the arrow sprite indicates, and Green means the opposite. So if you wanted to make a gate, one side would be green and the other would be Blue. That way they would join and separate together. Use the busytime and waittime of the sector just like you would for anything else. To toggle this from a switch give the sector the Receive channel. If you want the player to push on the sprite to have it slide, Give the sprite the Transmit Channel that corresponds to the Sectors Receive Channel, mark it to send on PUSH, going ON, going OFF, and change the CMD: to Toggle.
To do this with walls (i.e. to make sliding Doors) you must make the sector that slides marked in a special way. The following Diagram tries to show you. The | and - are lines. = is two lines together. The numbers indicate in what order to make the lines. This is for a single door.
|1-----------------| 2 | 10 | ============--- | 3 |4 | 5 | |9 ============--- | 6 |7 | | 8 | |------------------|
If you can notice from this diagram after step 1 you go back to the end of door that is going to be created, and then step three goes past the previous vertex, and comes out how far you want the door to stick out from the wall. Step 4 goes down to the other side of the door. Step 5 goes all the to the end of the Door. Step six comes up to the wall of the room that the door is going through, and it is in line with the line of Step 1. Then the rest just finishes the Creation of the Room. I expanded on the Creation, because that is the trickiest part of the Sliding Door. Change the Type of the created sector to Slide Marked, and mark all three walls of the sliding door using 'K'. Then to make the door slide when the player presses the action key on the door, edit the properties of the walls of the door so it transmits through the corresponding Channel of the Slide Sector. Mark it just like you marked the Sprite from the previous example with the sliding sprites to make a gate. Again if you want two sliding doors to come together you must mark the opposite side Green to that it will move in the opposite direction of the other side.
***************************************************************************
XVII. Gibable Objects
To make Gibable Sprites, change their type to Gibable objects. The gib is controlled through the first two Data Fields. The second two are for sound effects. There is no documentation on which number represents what gib, so you must experiment to get the effect you are working or look in the levels that come with Blood. (To access these levels use BARF.EXE that came with Blood. use the command: BARF -x BLOOD.RFF). I will tell you that #8 is a blood effect, and #16 is left over body parts.
You can also make Gibable Walls. When making a Gibable wall first make sure that the wall is two sided, and that it is masking. To make a wall masking press 'M' on it. A solid image will appear if it wasn't already masking. Make the wall have hitscan using 'H'. Edit its properties. Remember to edit them from both sides of the wall. Two sided walls are basically two walls, so they have two sets of properties. Change the types to Gib Wall. Change the Data for the effect. Have it set to trigger on VECTOR. DATA 1 is for clear white glass.
Some Gibable objects are gibable by other types of sprites. There are exploding objects, or even trees are built in with the burning tree.
Sometimes you might want to make a sprite invisible when it is a gibable object. Such is the case for exploding holes in walls, when you want pieces to fly from the wall. Press 'I' on the sprite. The sprite will still appear in 3D edit mode, but won't be there in the game. The effect will be visible though.
***************************************************************************
XVIII. Panning Textures
To make a panning texture, create the sector that will have the panning textures. Edit the properties of this sector and go into the FX section. Under Motion FX select either PAN FLOOR or PAN CEILING, or even both depending on what you want to pan. Mark off PAN always to make it always pan. If you want the texture to drag the player around then select drag. Then select the speed that you want to have the texture pan. Then the angle of motion. (Reminder: MAPEDIT does not use degrees for the angles. Instead it uses its own system. To try to make it more simple these are 2 equivalents. 90=512 180=1024)
***************************************************************************
XIX. Adding Sound Effects to the World
To add sound effects for sectors create a sprite inside the sector. Change its type to Sector Sound. The four data fields are used for the sounds. Use the First two for OFF->ON, and the second two for ON->OFF. The first one for while transitioning, and the second for the end of the transition. You don't need a Transmit and Receive Channel since it is automatic when the Sector is activated.
To make Ambient sounds, create a sprite and change its type to Ambient Sound. Again the Data Fields are used for the sound effects. This time the #1 is for the Hotspot of the sound. By Hotspot I mean this is the the radius of the sound at its full volume. When you enter a number into this field a brown circle will be created. #2 is for the cut-off. By cut-off I mean this is the radius of the extent of the sound. If you are passed the radius, you will not hear the sound. #3 is the sound effect and #4 is for the volume. Be sure that the State is in ON if you want the sounds to be heard. You could have them toggled by a switch, if you wanted. Then you would leave the STATE off, and go through the switch stages.
To give sound to an already existent sprite just edit its data fields like it was a Sector Sound. Then it will work the same way except it will be triggered when the sprite is triggered instead of the sector.
There are a couple partial sound lists. I currently know of two. One which I found on a site, and the other Philip Buchan made. Keep a look out for them if you are interested. The first list that I mentioned can be found on Tempest's site. If you don't know the address for Tempest's site then go to www.blood.com and under links select it.
***************************************************************************
XX. Teleporters
To make A teleporter first make the sector where you want the teleporter to be. Change its type to teleporter. Have it send going ON->OFF and OFF->ON. Make it trigger on ENTER. Use busytime to tell how long it will take to transport from one place to another. After you complete the properties, a sprite will appear. Place the sprite at the destination, and have it point in the direction that you want the player to be looking when he teleports to that spot.
***************************************************************************
XXI. Single-player Starts, Multi-player
Sure you can use the brown arrow for a single player start; However, sometimes you might move it accidentally, and its very convenient to use for editing, just leave it where you left off and you will be there when you load it in. To make a single player start position without using the brown arrow, just place a sprite where you want the player to start, and point it in the right angle. Change the Type to Player Start. The DATA 1 field tells which player start position it is. Also in 3D edit mode you will see a number on the flag that tells you what number the player start is. (NOTE: DATA 1: 0 = Player 1 Start position, up to 7 = Player 8 Start position.) Player Starts are also used for co-op starts, and that's why you need the DATA field. To make BloodBath starts place the sprites where you want them and change their type to BloodBath start. Change the DATA 1 field just like the Player Starts.
***************************************************************************
XXII. User Questions