Legacy:Mapping For AS (UT)

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to navigation Jump to search

Assault is one of the standard Unreal Tournament gametypes. The map file prefix is AS.

One team assaults a base guarded by the other team and has to fulfill a given number of tasks within limited time; the other team has to prevent that. After a round has ended (because the assaulting team has completed its mission or the time ran out), assaulters and defenders switch positions.


What each Assault map needs:

  • Set the Level Properties -> DefaultGameType to Assault.
  • FortStandard actors mark each goal the attacking team must reach
  • An AssaultInfo allows you to set descriptions and screenshots of each goal


  • Make your hallways and geometry wide enough to allow multiple players to battle easily.
  • Don't make a level that somebody can solve in 30 seconds. It's always a nice idea to put shortcuts or things like that but don't make them so that they make the final objective easy.
  • The translocator is disabled in AS, so it is a good idea to put lift jumps, opportunities for hammerjumps, slope dodges and other things that give players added mobility increasing the enjoyment of playing your level. But, be aware of HUGE boosting opportunities that would compromise the linear plan of your level.
  • If you have objectives that are damage triggered, be sure an attacking team can not shoot at them from unintended areas.


  • Make sure you put enough PlayerStarts in the map to begin with.
  • When players start make sure you have enough ammo and weapons for multiple players.
  • When placing PlayerStarts in AS, you will use "0" for the defending team, and "1" for the attacking team. To set these values go into the player start properties and under PlayerStart -> TeamNumber, enter the appropriate value. It is important to note that you can trigger the bEnabled value in order to spawn players in different areas as they progress through the map. The Events->Event should be matching in both sets of PlayerStarts for both teams, and all the player starts in the two areas to be toggled should have the same Events->Tag. This will switch PlayerStarts for both teams to the appropriate area. You do not need to set PlayerStart Oject->InitialState to TriggerToggle, in fact you can not change the intial state of PlayerStarts. Just remember that the Playerstarts that are farther into the map should have PlayerStart->bEnabled set to False. :D There are a couple of otherwise excellent maps that have overlooked this. You will find it difficult to defend the first four objectives if you are locked behind the fifth... You can put triggers on the other side of objectives that once reached are triggered, or you can make them the events called by a mover etc... If you use a trigger, and don't want the defending team to trigger it, just use a TeamTrigger
  • Some kind of a cannon would be a good idea to protect spawning players too.

Pathing Assault

DefensePoints can be used to tell the bots where to stand for the best defense of each objective. If you do not place defense points, bots will stand as close as possible to the FortStandard.

  • Here are the properties you will need to adjust in the DefensePoint's properties under... yup, DefensePoint:
    • FortTag: Set this to the Events>Tag of the FortStandard you want the bots to defend. You will need to create defense points for each objective. So if there is a spot that is suitable for defending multiple objectives, say a sniper perch or the like, then you will need to place several DefensePoints with each of the different FortTags specified.
    • Priority: Applies only to the group of defense points belonging to a particular FortStandard, and again, "0" is the highest priority. You do not need to set this if you don't want to. But after playtesting, it might be a good idea to enter values for this field.
    • Team: Obviously, they will belong to the defending team so leave them at the default "0"

In order to force bots to take different routes you will need to use an AssaultRandomizer. This will require some playtesting because the level should be fully pathed and all objectives/items etc... should be in place before using these actors. Once the level is fully pathed, playtest it a few times with one bot, and watch the route it takes to accomplish the mission. Where you want him to take a different route, you will place an AssaultRandomizer on the shorter path someplace where he can not get around it by addtitional path lines. Place this after the junction you want him to branch off at. It simulates the impression that that path is longer than it actually is. You will need to trigger this actor and here are a couple ways. I am not sure how this works, because there is no initial state variable for this actor.

  • Use a regular trigger set to toggle (So the randomizer is on and off randomly as players collide the trigger. could be used to make the bots sneaky?)
  • Use a counter
  • Use a StochasticTrigger
  • Use a Dispatcher with the randomizer called twice in outevents, and put a suitable outdelay.

There are probably more ways to do this, but I have not tried them. Good luck, and I love assault and am always looking for new maps. Once your map is done, be sure to Upload it to one of the UT map sites such as Unreal Playground or Nali City. Good luck and have fun. .


Screenshots and Objective descriptions for the HUD:

You should without fail create screenshots for each objective that clearly define where they are, (show more than just a picture of a button. Make it so there is some indication of where it is located.) and compose some some sort of text to describe how to trigger it, (shoot it or touch it?) and why it is an objective. Telling why adds some atmosphere to the map. To do this you will need to place an AssaultInfo actor somewhere in the level. Here are the fields you will be concerned with filling out:

  • Open the AssaultInfo actor's properties and under AssaultInfo you will see:
    • NumObjShots: Enter a value here corresponding to the number of objectives in your level.
    • ObjDesc: is where you will put the text that appears in the HUD when you press F3 during an assault game below the picture when you see the "Transmission Follows:" scroll beneath it.
    • ObjShots: This is similar to putting a Screenshot (UT) in your level.
  • Also a message in the center of the screen telling players what the next objective is once the previous one is complete is a good idea.


Try and do some kind of a nice ending sequence. It's always a joy to see something like a bridge that you were trying to blow up collapse ala AS-Bridge

Related Topics


I don't play Assault. I loathe it..well the online type. I only did this because somebody started the page but put no text so i figured what the hell. This page definitly needs input from an assault player tho, and a mapper who has made an assault level.-shadow

It is important to place grading spawn points on very long levels. Monsters and extra Bots confuse things greatly. Dynamic lighting is fine, but huge areas of strobing just annoys people right? Fort Standards are REALLY IMPORTANT and you must do them well. Big huge levels are great fun. -{di3}killboy

evil_blue_dudeMore mappers should make assault. Its good fun to play and to make.

When making assault maps, remember to test it for hammer jumping exploits. If you have a gate for example check to see if hammer jumpers can get over it. Things like that can be really annoying if left unfixed. Skilled hammer jumpers for example can complete AS-Mazon relatively quickly if no one's guarding the main gate because of the exposed ledge above it. It's not just hammer jumping that can cause problems either. Even AS-Dam has it's flaws - you can jump through the window of the tower and avoid the first objective and can quite easily complete the second and third objectives before the defenders even know what the hell's happening. - Slim


Also, some triggers in Assault maps are affected by ZEROPING weapons, the zeroping weapons just can't hit the fortstandards, it would be great to know why