Sniper's Paradise!


Unreal NavigationPoints

AlarmPoint | AmbushPoint | ButtonMarker | HomeBase | InventorySpot | LiftCenter | LiftExit | PathNode | PatrolPoint | PlayerStart | QueenDest | SpawnPoint | Teleporter | FavoritesTeleporter | Transporter | TriggerMarker | WarpZoneMarker

Unreal Tournament NavigationPoints

AlternatePath | DefensePoint | AssaultRandomiser | BlockedPath | ControlPoint | FlagBase | JumpSpot | PainPath | TranslocDest | TranslocStart | VisibleTeleporter


Introduction

I would first like to point out that this reference is aimed directly at level designers, and is not intended as a guide to the UnrealScript behind these objects. However to learn more about these objects I did frequently delve behind the scenes. So if you wish to converse about the script then feel free to e-mail.

A lot of this stuff in here will be very woolly, as most of it has to do with path determination and complicated features which I have yet to understand!


First a bit of jargon:


NavigationPoint

Navigation points are used by the unreal engine to help players, monsters and bots navigate around levels. They can get a bit complicated so I will describe what they are used for (with some examples where appropriate) but not how they work.

Most of the parameters described here have no effect until you get to the sub-classes.

N.B. just to confuse matters further there are slight differences between NavigationPoint in Unreal and Unreal Tournament. Oh joy!

Parameters

OwnerTeam:

ExtraCost: Any extra cost involved in moving along this path

bPlayerOnly: Only players (and this I think includes bots) should use this path

bOneWayPath: The path is only a one way path. You'll need to set bDirectional to true for this to work

PathDescription: (Unreal Only) Pointer to path description in zone info locationstring array

bNeverUseStrafing: (UT Only) Don't use advanced techniques to get to this nav point (i.e. You might fall off ledge or summit..)


AlarmPoint

The AlarmPoint is used primarily in single player games to make scripted pawns (monsters) perform certain actions when they see a player. This is used to make the bad guys trigger alarms and wake up other monsters and by the Nali to open secret areas for you)

I've "borrowed" most of this information from Myscha and from the original Unreal I AI page.

You first set the AlarmTag in the creatures Orders set of properties to the Tag of the first AlarmPoint.

It will then move from AlarmPoint to AlarmPoint until no new alarm is found.

Parameters

NextAlarm: The next AlarmPoint to go to after finishing here. If none then it reverts to it's normal AI.

pausetime: The amount of time to pause at this AlarmPoint

ducktime: How long to pause after playing the AlarmAnim, typically for the creature to duck, and then stand and shoot.

AlarmAnim: If specified the creature will play this animation.

bStrafeTo: If the creature can strafe, they will strafe to this AlarmPoint, i.e. still facing the player.

bAttackWhilePaused: Whether the creature will attack the player while paused at this AlarmPoint, must have a ranged attack though

bNoFail: Sometimes creatures might get knocked of course, if this is true they will always try to get to the AlarmPoint, even if it now miles away.

bStopIfNoEmeny: If the enemy is no longer in sight the creature will stop at this AlarmPoint (used for Nali I guess).

bKillMe: Any creatures triggered by the AlarmPoint's event tag will hate the create triggering the AlarmPoint.

bDestroyAlarmTriggerer: The creature will be destroyed upon reaching this AlarmPoint.

ShootTarget: A tag for a creature to shoot at upon reaching this AlarmPoint other than the player.

AlarmSound: A sound to play if the AlarmAnim is also set.


AlternatePath: UT

Used only in CTF maps to signify an alternative route either too the flag or back to the home base.

Only 1 AlternatePath is required per route. The bots decide which path they are going to use and then head for that alternative path. Once they reach that alternative path they then head for the flag base.

All paths should have one of these per team, check out CTF-LavaGiant as an example, each tunnel has 2 AlternatePath's.

A AlternatePath counts as a normal PathNode in all other circumstances so no need to place PathNode's as well.

Parameters

Team: usual team setting, 0 = red, 1 = blue

SelectionWeight: you can weight the different AlternatePath's, default is 1.00000

bReturnOnly: true if this route is only valid as a return route (i.e. when they have the flag)


AmbushPoint

Put simply bots will think this point is a good place to go and stand to catch you by suprise.

Also can be used for snipe points by setting bSniping to true.

In UT you can use the team based DefencePoint

Parameters

SightRadius: How far bot at this point should look for enemies

bSniping: Bots should snipe from this position


Defence Point: UT

Extends ambush point above, and used in UT team games. It has a team property which defines the team to use the given defense point, as well as a priority.

Parameters

team: 0 = red, 1 = blue

priority: Priority of the DefencePoint, compared to other points

FortTag: The tag of the FortStandard that the bot should be defending from this point.


AssaultRandomizer: UT

This is a navigation point which has an extra cost to the attacking team when enabled, i.e. makes it less likely that they will go this way. It starts out disabled and toggles each time it is triggered.

Parameters

ToggledCost: The special extra cost for this nav point when enabled.


BlockedPath: UT

This blocks the bots path until triggered, meaning they will not try to go through here. When it is triggered the extra cost is removed. Used in AS-Mazon to stop the bots trying to travel through the portcullis until the two couter-weights have been destroyed.

No Parameters

ButtonMarker

And I quote:

// OBSOLETE - TO BE REMOVED


ControlPoint: UT

This is used in Domination games, in fact it is pretty much the only extra thing you need to place on a domination map except changing the name to DOM.

Simply put you place the control point, give it a PointName which appears in the game, set a ControlSound if you want for the sound to play when the control point is captured and bobs your uncle.

You can also use the event properties to make events happen when a particular team takes control of the control point. I'm going to try to put a map together to illustrate this. Watch this point.

Parameters

RedEvent: The event to trigger when the red team take control of the ControlPoint.

BlueEvent: The event to trigger when the blue team take control of the ControlPoint.

GreenEvent: The event to trigger when the green team take control of the ControlPoint.

GoldEvent: The event to trigger when the gold team take control of the ControlPoint.

bSelfDisplayed: If false then the actual 'mesh' (i.e. the coloured cross thing) isn't displayed for the control point.

PointName: The name of the control point, displayed in the HUD and in when you control the point.

ControlSound: The sound to play when you gain control of the point.


FlagBase: UT

Following on nicely from above, this is the core of the CTF game type. Simply place 2 of these on a map, set Team to 0 (red team) for one of them and Team to 1 (blue team) for the other. Change TakenSound if you want. Make sure that the flag is well into the ground, ideally the paths to the flag should be horizantal. If not then the bots will not go for the flag!

Parameters

Team: The team, 0 - red, 1 - blue. Originally you could also use 2 and 3, but Epic stopped this in patch 405b I think. Check out one of the CTF mods for more teams.

TakenSound: The sound to play when the flag is taken.


HomeBase

In theory this is the 'home' of all pawns. It is only used for scripted pawn, i.e. monsters. They will use this navigation point has their 'home'. They are less fearful when near their home, and may head towards it when retreating.

Parameters

extent: radius of the effect of the home.


InventorySpot

Placed in the game by the editor to mark a spawn spot for an Invetory item. Has no parameters and you shouldn't worry about it.

Apart from to say that each Inventory item placed creates a InventorySpot which acts as a pathnode, so don't place those path nodes to close to your Inventory.

No Parameters


LiftCenter

An essential element to any lift, this is used to tell the bots where the center of the lift is. It should be placed on-top of the mover when the mover is in KeyFrame 0. Set the LiftTag to the same name as the Tag of the Mover.

If your LiftExits are especailly higher or lower than the LiftExit then increase the value of MaxZDiffAdd and if they are long horizantal distance away then increase MaxDist2D.

Parameters

LiftTag: The tag of the mover and any associated LiftExits.

LiftTrigger: If the mover is to be triggered then place the tag of the trigger here also. It helps the bot find it if its not obvious.

MaxZDiffAdd: Adds additional height difference between any given LiftExit and the LiftCenter (if the LiftExit is say at the bottom of a ramp or something)

MaxDist2D: The maximum horizantal distance bots can stand away from the lift and still trigger it. Increase this if the lift center is in the middle of a very wide lift for example.


JumpSpot: UT

This is a subclass of LiftCenter and is used for places that Bots an reach if either a) they have the jumpboots, b) gravity is low c) they can translocate or d) they know how to impact-hammer jump. For them to try d) you must set bImpactJump to true.

If the bots do not seem to be reaching where you want them to go then try setting bAlwaysAccel to true

Parameters

bImpactJump: If you want bots to impact jump (and have high enough health and skill) then set this to true.

bAlwaysAccel: This will aid bots in turning in the air to get to where you want them to go, mostly used for low gravity and jumpboots.


PainPath: UT

This is a special kind of LiftCenter which if the bot has reduced damage to a particular type of damage. It doesn't appear to be used by Epic at all in any of their maps as far as I can tell.

Parameters

DamageType: If the bot has reduced damage to this damage type then they will go this way.


TranslocDest: UT

A special kind of LifeCenter which means that a bot will try to tranlocate to this spot from the TranslocStart. the usual LiftTag properties must be set, along with a LifeExit for the exit to the translocation.

NoParameters

LiftExit

The other half of the LiftExit-LiftCenter combo. A standard lift has 2 LiftExits, one where you would wait for the lift at the start, and one at the end, and finally a LiftCenter on the actual lift mover (whereever it's start position is). They all share the same LiftTag, and LiftTrigger value can be entered as the Tag of a trigger which moves the Mover in question.

Parameters

LiftTag: The tag of the other LiftExit and the LiftCenter

LiftTrigger: Gives a helping hand to the bots so they know which Trigger to use to trigger the lift.


TranslocStart: UT

Replaces the LiftExit for the place the bot must stand to fire off their Translocator.

No Parameters


PathNode

The most basic of navigation points, this simply maps out the routes that the Bots can follow. They should not be placed too near to each other, and should be placed about 70 units above the ground.

No Parameters


PatrolPoint

If the Order of a ScriptedPawn (monster) is set to 'Patroling' then the OrderTag should point to the Tag of a PatrolPoint. Upon reaching the PatrolPoint the pawn will then go to the PatrolPoint with the Tag of Nextpatrol.

If pausetime is set to greater than 0 then the pawn will play the PatrolAnim animation and PatrolSound sound numAnims times.

Parameters

Nextpatrol: The Tag of the next PatrolPoint

pausetime: The aount of time to pause at the PatrolPoint. If greater than 0 then PatrolAnim and PatrolSound will be played 'numAnims' times.

PatrolAnim: A string describing the animation to play, e.g. the Brute model has an animation called CockGun, which could be used, or another one called Breath2.

PatrolSound: The sound to play with each animation

numAnims: THe number of animation loops to play while paused.


PlayerStart

This is the basic player start position. It is used to signify the single player start position, any co-operative start positions and all bots and player start positions for deathmatch etc. Ideally you should have more PlayerStart's than your map is designed to handle to avoid TeleFragging.

Parameters

TeamNumber: For team games with bases (e.g. CTF and Assualt, but not Team Deathmatch or Domination) this is the team who spawns here, 0 = red, 1 = blue.

bSinglePlayerStart: If a map has been set up for Co-op or Deathmatch as well as Single Player then only one PlayerStart should have this set to True. This will be the true Single Player start

bCoopStart: If this is a Co-operative start then set this to true (and usually bSinglePlayerStart to false)

bEnabled: Is most often used in Assault maps to advance the player start through the map after some advancement. Trigger the player start to alternate the bEnabled property.


QueenDest

Used by the Queen in the end of the Unreal 1 SIngle Player game to teleport.

No Parameters


SpawnPoint

These are placed along with a ThingFactory (or CreatureFactory) where you actually want the things to be Spawned. They should all have the same Tag.

No Parameters


Teleporter

Used as destination and departure points for teleporting. If bEnabled is false or URL is empty then it will act only as a destination. See the URL property below for more details on its format.

Trigger the teleporter to flip its enabled property.

N.B.

This does some slightly different things depending on whether you are in Unreal or UT.

In UT the change in Yaw has 180 degree + the difference in the players yaw and the source teleporters yaw added to it.

Parameters

URL: Destination Teleporter. Can also be destination map or server. I quote from the UT AI Guide:

"If the URL attribute is empty, the teleporter acts only as a teleporter destination. If it contains the same string as the tag of another teleporter in the level, that teleporter will be the destination. If it contains a string in the form of 'LevelName/TeleporterName', it will teleport to a different level on this server (single player only). If it contains a string in the form of Unreal://Server.domain.com/LevelName/TeleporterName', it will teleport to a different server on the net."

ProductRequired: You'd guess this was a product required to teleport, but no, its not actually used! Go figure!

bChangesVelocity: Sets velocity of an Incoming teleporter to the TargetVelocity if true.

bChangesYaw: If true then the new direction is the direction of this teleporter. See above for note about UT.

bReversesX: If bChangeVelocity is false this reverses your X velocity. Otherwise it does nothing.

bReversesY: If bChangeVelocity is false this reverses your Y velocity. Otherwise it does nothing.

bReversesZ: If bChangeVelocity is false this reverses your Z velocity. Otherwise it does nothing.

bEnabled:

Can be toggled by triggering. If false then nothing will be teleported.

TargetVelocity: Used to set velocity when bChangesVelocity is true.


FavoritesTeleporter

Err, again not sure here. I think it's meant to get your favorite internet server and set the URL to this. However the line that should set the URL is commented out, so obviously it just acts like a normal teleporter.

Parameters

FavoriteNumber: The number of the favorite to pick from the list of favorites.

VisibleTeleporter: UT

No different from the above teleporter except it has the teleport effect, and is hence "visible".

No Parameters


Transporter

Moves the player instantly by the Offset vector. Works only in Unreal 1 Single Player games.

Can only be triggered once.

Parameters

Offset: The vector that the player is moved by


TriggerMarker

Obsolete


WarpZoneMarker

This is placed by the Editor when you place a WarpZoneInfo to allow bots to navigate through WarpZones. So don't worry about it.

NavigationPoint Class Reference: by BlackSway



Spam Killer

Back To Top
2005 Sniper's Paradise
All logos and trademarks are properties of their respective owners.
Unreal™ is a registered trademark of Epic Games Inc.
Privacy Policy
Website by Softly
Powered by RUSH