With a new game comes new tutorials! This one will cover mapping for Onslaught, one of the new gametypes in Unreal Tournament 2004. This tutorial assumes you have read my Beginner Tutorial or are otherwise familiar with mapping for UT2K3/4. Let's get started!
Placing Power Cores and Power Nodes
Before you jump into the map keep in mind that for the radar to work properly the map must be based around the origin of the editor (position 0,0,0). If you have already started building your map and it isn't, you can hold down Ctrl-Alt-Shift and the left mouse button to drag a box around everything and move it to center it around the origin. Be sure you don't have any actors or groups hidden before you do this.
Power Cores - As with most of the gametype objectives, the Power Cores are hidden in the actor browser under NavigationPoint >> JumpDest >> JumpSpot >> GameObjective. They can be found in there under DestroyableObjective >> ONSPowerCore >> ONSPowerCoreRed and ONSPowerCoreBlue. Since I prefer blue, let's select that and add one to our level.
Now lets open its properties up and take a look.
As you can see, most of the properties involve changing the sounds the Power Core makes, and there's a property to change the mesh it uses when it gets destroyed. Some of the properties such as ConstructionTime only apply to Power Nodes, so they won't have any effect on Power Cores. For the most part, you will only have to add it in and won't have to change any default properties.
Power Nodes - Power Nodes are found under ONSPowerCore >> ONSPowerNode >> ONSPowerNodeNeutral.
If we take a look at the Power Node properties, we'll see that they're almost the same as the Power Cores.
In general, you won't have to change anything. Before we continue, you should also place Player Starts at each node and power core. This is done by right clicking in a viewport and hitting Add PlayerStart Here. You'll want to place a lot of them to keep people from accidentally telefragging each other when the map starts. No properties need to be changed, the player starts automatically associate themselves with the closest Power Node or Power Core.
Creating The Default Link Setup
Now we have a red and blue Power Core and all the Power Nodes in place, but if we go in game, none of the Power Cores or Power Nodes show up! This is because we need to make the default link setup. This is done in-game. Start up your map and hit the Escape button to bring up the menu. Click on the Map tab and you'll see that the node setup screen is blank except for your position.
Hit the Link Designer button to bring up the setup menu.
This is where we create our link setup. Click on a node or core, and then click on another node or core to create a link betweent them. Doing it again will break the link if you make a mistake. Remember that nodes with no links to them will not show up in the game for that link setup, and that nodes that are only linked to one team's Power Core can never be taken over by the other team. If you are having a problem where some of the nodes are appearing in the upper left corner, you should exit the game and adjust the radar range (see Miscellaneous Final Bits at the end of this tutorial). Once we have the links setup the way we want, hit the Export To UnrealEd button and exit the game.
Back in our map, right click anywhere and hit Edit >> Paste >> Here to paste the ONSPowerLinkOfficialSetup actor into your map. This actor contains the default link setup you created, and cannot be edited. If you want to change it later, simply delete it and go back into the game to create a new one. You can also create more than one, but be sure to give it a different name in the Link Designer before you export it. You should always have one named Default.
Placing Vehicles, Teleport Pads and Weapon Lockers
Vehicles - The most important new addition to UT2004, vehicles are an important part of Onslaught maps, although you can make one without them if you wanted. The vehicles are found under SVehicleFactory >> ONSVehicleFactory, and the stationary turrets are under Pawn >> Vehicle >> ONSWeaponPawn >> ONSStationaryWeaponPawn >> ONSManualGunPawn. Vehicles automatically associate themselves with the closest Power Node or Power Core, and vehicles associated with a Power Core appear immediately and can never be turned over to the other team (although they can still be car jacked if you get out of it).
There is only one property that we need to be concerned about, bReverseBlueTeamDirection. This tells the vehicle to spawn facing the other direction if the blue team controls it, for example the Scorpion at the center node in Torlan. If left False the vehicle will always spawn facing the direction you set in UnrealEd. There are other properties that can be changed, but they will have no effect in game unless you know how to code.
Teleport Pads - These allow you to teleport to an alternate location if you control the node it's associated with, like the center node in Torlan. These automatically associate with the closest powernode, so you don't need to do anything once it's placed. Keep in mind you will need playerstarts around it for you to be able to teleport to it.
Weapon Lockers - These are found under Pickup >> WeaponLocker.
Clicking Add next to the Weapons property puts a new weapon into the Weapon Locker, and then the WeaponClass can be chosen along with an ExtraAmmo property that will give anyone who picks it up more ammo. You can add as many weapons as you want to a WeaponLocker, and it's a good idea to have a Link Gun at each one since those are the only weapons that can heal nodes and vehicles.
Land Vehicles - For the bots to navigate your map with vehicles, you must use special pathnodes. For land-based vehicles such as the Goliath or Scorpion, you must use NavigationPoint >> PathNode >> RoadPathNode actors. These work the same as normal pathnodes, but indicate to the bots how to drive vehicles around your map. They will also be used by bots that are not in vehicles. If you right click in the top of the 3D viewport and hit View >> Show Paths, you can see your path network after it has been built. White paths are always better to have, since the bots may not be able to drive larger vehicles such as the Leviathan down green or blue paths.
Flying Vehicles - For the Raptor, you will need to add NavigationPoint >> PathNode >> FlyingPathNode actors. These special PathNodes will only form paths between each other and paths on the ground if their collision cylinder overlaps them, although in most cases it will automatically adjust itself. Right click in the top of any viewport and hit Actors >> Radii View to see the collision of actors you have selected, and you can watch as the collision changes when you move them around and Rebuild Paths. These paths will always appear as orange unless ForcedPaths is used to connect them.
The Miscellaneous Final Bits
Adjusting the Radar Range and Adding A Radar Map Image - If your map is incredibly large or goes too close to the edges of the terrain you are using (if any), you may notice weird things happen with the radar map, such as Power Cores or Power Nodes going all the way to the top left of the screen. On the other hand, you may notice everything bunched up if your map is small. To get the size right you will need to adjust the range in the Level Properties. Hit View >> Level Properties and open up the RadarMap tab.
In most cases leaving bUseTerrainForRadarRange as True will work, but sometimes if you go too close to the edge of the terrain or have Power Nodes etc off the edge of the terrain, it won't look right. In these cases, setting bUseTerrainForRadarRange to false and manually adjusting the CustomRadarRange number will get it to fit perfectly. There is also the bShowRadarMap property to turn it off completely.
To set an image for the Radar Map to use, import a custom 256 by 256 texture (preferably into the mylevel package) and input it into the RadarMapImage property.
Dust Color - Scorpions kicking up brown dust on a snow covered planet doesn't quite look right. To change the color of dust that vehicles kick up, use the DustColor tab of the Level Properties.
StallZ - This is used to prevent Raptors from going too high in your level. Above this point they will stall and be forced back down. This property can be found by hitting View >> Level Properties >> LevelInfo >> StallZ, and appears as a blue line in the 2d viewports.
Well, that's it for this tutorial. Onslaught maps are incredibly easy to make, so you shouldn't have any trouble. Good luck!