RvS Mapping Tutorials
Odds & Ends
Building Your First Raven Shield Map
-by Beckett, last updated March 24, 2003
By the end of this two part tutorial, you will be able to create a very basic Raven Shield map and play it in-game. You'll know how to create player insertion points and random tango positions. You'll be able to write mission briefings, and your map will work perfectly in the mission planning stage.

This tutorial assumes that you have some knowledge of UnrealED. If you have never created even a simple map before, I recommend you first work through a few of
Architectonic's tutorials to learn the basic principles and abilities of the Unreal editor: (If you are comfortable carving out rooms and applying textures, keep reading... you'll do fine.)

Let's get started. Open a "new" map and immediately save it as "mymap.rsm". The editor does not allow spaces in the filename (including spaces in the directory path), so you will need to save the map to a temporary location, such as "c:\RavenShield\mymap.rsm".

Open the texture browser and select any typical wall or floor texture (I opened "CityStreet.utx" and used "CityStreet.Floor.floor_concrete_02a").

Carve out a small room by substractracting a cube sized: Height=256,Width=1280,Breadth=1280.

Next add a wall sized: Height=256,Width=16,Breadth=768. Place the wall so that it creates a small hallway on the far side of the room, and carefully align the right edge to the outside wall. We'll soon be hiding some tangos behind this divider.

Place 4 or 5 lights throughout the room, and rebuild the map. Now we're ready to deal with some classes and settings unique to the RvS editor...

As you know, the planning stage in Raven Shield allows a player to view a map on a 2 dimensional plane, one floor at a time. To allow your map to work with the planning stage, you need to assign elements (walls, floors, doors, stairs, ladders, static meshes, etc.) to one or more floors. By default, the ground floor is identified in the editor as "100", the next floor up as "101", etc. You'll see how this principle applies through the rest of this tutorial.

Let's add an insertion zone for our operatives. Open the actor class browser, expand "NavigationPoint | SmallNavigationPoint | PlayerStart | R6AbstractInsertionZone" and select "R6InsertionZone". Right click in the large open area of our room and choose "Add R6InsertionZone Here". Double-click on the insertion zone (represented as a yellow square) to open the properties window.

Expand "Display". Change DrawType to "DT_StaticMesh". Scroll down and select "StaticMesh". Click the "..." button, open "MeatPacking_SM.usx", and browse to "MeatPacking_SM | Deployement_Zone" in the static mesh browser. Then go back to the properties window and click the "Use" button. In the 3d view, the yellow square will change to a larger sqare (384x384 units to be exact) with the word "plan" plastered over it. Reposition and rotate the insertion zone as necessary so that it does not overlap any of our walls (Move the dividing wall brush towards the back wall if necessary). Vertically, the insertion zone should sit around 80 units above the floor.

Return to the properties window for the R6InsertionZone, expand "R6Planning". Change m_iPlanningFloor_0 to "100" and change m_iPlanningFloor_1 to "100" so that our insertion zone will appear on the first floor of the planning stage map. (If our insertion zone was on the second floor, we would set these values to "101"; in this case, of course, our map is only comprised of one floor.) Notice that by default m_eDisplayFlag is set to "ShowOnlyInPlanning" since we certainly don't want an ugly two dimensional square showing up in the game world. Now, let's set our insertion zone to look just like the game manual says it will. Select m_PlanningColor, click the "..." button and select the dark red color in the fourth row, first column. Scroll up and expand "Display" again. Change m_bOutlinedInPlanning to "False".

While we're in the properties window, expand "R6Availability". Note that with these settings you can create different insertion zones for different game types. I've had a lot of people ask about setting up insertions for adversarial games, so I'll cover it briefly here. Place a second insertion zone next to the first one (review the steps above if necessary). Double click on the second insertion zone to open it's properties. Expand "Rainbow" and set m_iInsertionNumber to "1" to identify this as an insertion for the Red Team. Since our first insertion zone defaulted to an m_iInsertionNumber of "0" it is already automatically setup as an insertion for the Green Team. Note that at this point, the map would only support 1 player on each team. To enable 16-player adversarial games you would need to duplicate the insertion zones until you had 8 created for each team. We really don't have room for 16 players on this tiny map, so let's move on. (In a future tutorial, I'll go into more detail on setting up proper insertion zones for every game type.)

Right click and add 2 or 3 "Path Nodes" leading from the insertion zone to the dark corner of the back hallway. Path nodes are utilized by the bot AI to navigate the map intelligently (an important lesson, but outside the scope of this tutorial).

Now let's add some bad guys. Open the actor class browser, expand "R6DeploymentZone", and select "R6DZonePoint". Right click somewhere in the hallway and choose "Add R6DZonePoint Here". Double click on the R6DZonePoint (represented by a little blue gingerbread man) to open the properties window.

New R6DZonePoints default to terrorists (but can be changed to hostages). We want a tango, so we'll just change his behavior a little bit. Expand "R6DZoneTerrorist" and change "m_eEngageReaction" to "EREACT_SprayFire". Take a look over the other settings to get some ideas on how terrorists' brains work, then close the properties window. If you'd like, add a second tango and assign different behavior to this one. The tango we just created will only spawn in the MissionMode gametype (including practice and coop mission mode).

Now let's add a random terrorist insertion for Tango Hunt and Lone Wolf mode. Open the actor class browser, expand "R6DeploymentZone", and select "R6DZoneRandomPoints". Right click somewhere in the hallway and choose "Add R6DZoneRandomPoints Here". Two new icons will appear. The larger icon represents the random tango who will spawn, and the smaller icon represent a RandomPointNode, one possible position where he could spawn. If you'd like, go ahead and change the behavior of the random tango (modify the properties of the larger icon) the same as we did for the fixed tango.

Note that this random tango will spawn in the mission game type as well as tango hunt and lone wolf, unless we change his "R6Availability" settings. Expand "R6Availability". Change m_eMissionMode to "MFO_NotAvailable" and change m_eStoryMode to "MFO_NotAvailable". Close the properties window.

Should we warn the player that there's danger behind that wall divider? Open the actor class browser, expand "R6ReferenceIcons" and select "R6TerroristIcon". Right click somewhere in the hallway and choose "Add R6TerroristIcon Here". Make sure the TerroristIcon (representated by a red X) is positioned above the floor, then double click on it to open the properties window. Expand "R6Planning". Change m_iPlanningFloor_0 to "100" and change m_iPlanningFloor_1 to "100" so that the red X will appear on the first floor of the planning map. Close the properties window.

Now let's make sure that our walls and floors display properly in the planning stage. Ctrl click on each inside wall of our room (inclulding both sides of the divider) to select all the wall surfaces together. Then right click and choose "Surface Properties". Select the "Wall" checkbox. Change main floor to "100" and change sec. floor to "100". (On multi-floor maps, some walls may span more than one floor, in which case the main floor would be 100 and the sec. floor would be 101 or even 102. Stairways will always span several floors and should never have the same number entered in both settings.) Click the "Apply" button (or your changes will be lost) and then close the surface properties window.

Select the floor texture, then Right click and choose "Surface Properties". Select the "Walkable" checkbox. This will allow you to give in-game "Move" orders to your operatives. Change main floor to "100" and change sec. floor to "100". Click the "Apply" button and then close the surface properties window.

One more thing. Click the "View" menu in the editor and choose "Level Properties". Expand "R6Planning". Expand R6PlanningMaxVector, change X to "5000", and change Y to "5000". Expand R6PlanningMinVector, change X to "-5000", and change Y to "-5000". This will allow the player to scroll/reposition the map during the planning stage. Finally, since this map is only one floor high, set R6PlanningMinLevel to "100" and R6PlanningMaxLevel to "100".

Rebuild your map and then Save it. Copy mymap.rsm from c:\RavenShield (or wherever you saved it) to the official "maps" folder where your game is installed. The map is now compiled and ready to play, however we'll need to create a map info (.INI) file before we can load it into Raven Shield. I'll show you how to create that file in Part II.

Next: Part II - Creating an RvS Map Info (.INI) file

Display a printable version of this article

2005, RvSMaps.com, all rights reserved
Send questions, critiques, etc. to http://www.juncmodule.net/rvs/rvsmaps/content/contact.htm