KeyPoint Class Reference: by BlackSway

Last Updated 6 July, 2002

 
Introduction

This is a descriptive list of the KeyPoint actor class within the unreal script class structure. It is intended as a reference for level editors and is not intended for programmers or mod developers. However they may find it of some use, you never know.

The KeyPoint classes are used to mark specific places in a level and provide further actions or properties to that place.

Some of these classes are of no use to level editors at all, and will be covered very lightly. For some others, only the parent classes will be dealt with and these features should apply to all their children classes.

 
Quick Guide to acronymns and icons

UT: Unreal Tournament only

 

: Useful to level editors

AmbientSound | BlockAll | BlockMonster | BlockPlayer | DynamicAmbientSound | EarthQuake | CH_Earthquake | InterpolationPoint | LocationID | MakeNaliFriendly | ObjectPath | PathPoint | RockSlide | SpectatorCam | QuakeCam | ThingFactory | CreatureFactory | ThrowStuff | TriggeredAmbientSound

 

: Some interest to level editors

GuardPoint | HoldSpot

 

: No interest to level editors, don't even bother, I know I wish I hadn't

OEMEnd

 
AmbientSound:
Sits their and emits a sound. No different from placing any other actor in a level and setting its ambient sound
[^TOP]
 
BlockAll:

Simply put, this actor blocks all actors (in much the same way as a wall does, but it cannot be seem when playing.) Used by Epic stop bots try to get to unreachable places, (e.g. through floor grates etc.)

These three keypoints use the following properties to affect different types of objects.

bCollideActors:

Blocks projectiles etc.

bBlockActors:

Blocks monsters

bBlockPlayers:

Blocks players and bots

[^TOP]
 
BlockMonster:
BlockMonsters prevents monsters from passing, but allows players and projectiles to cross.
[^TOP]
 
BlockPlayer:
BlockPlayers prevents players from passing, but allows monsters and projectiles to cross.
[^TOP]
 
DynamicAmbientSound:

Randomlly plays one of a number of different sounds. You can specify a probability the likelyhood of a sound playing next 'round'.

Every n seconds, where n is a random time between minReCheckTime and maxReCheckTime it will check the playProbability, and if true then it will play one of however many sounds you have specified.

Parameters

bInitiallyOn:

Will play a random sound on startup if true

Sounds[16]:

The sounds to play

playProbability:

The probability of playing a sound each 'round' (between 0 and 1, default is 0.6)

minReCheckTime:

The minimum time between 'rounds'

maxReCheckTime:

The maximum time between 'rounds'

bDontRepeat:

Never play a sound twice in a row.

[^TOP]
 
EarthQuake:

This will shake and throw players on a level. This makes their HUD shake and can optionally move tha player about as well.

Parameters

magnitude:

The amount to shake the player by, default is 2000

duration:

duration for earthquake, default is 5 seconds

radius:

radius for those players to be affected by the earthquake

bThrowPlayer:

Does the earthquake move the player as well (throws them from side to side etc.)

[^TOP]
 
CH_Earthquake: UT:
Much the same as EarthQuake, but uses a more efficient algorithm for checking to see if players are affects, and will also throw pushable objects (barrels etc) around if bThrowStuff is set to true. This is the only parameter that is different from the above EarthQuake.
[^TOP]
 
GuardPoint:
This is created when a monster is set to guard a particular object. You set 'Orders' to "Guarding" and set the 'OrderTag' to the tag of the object to be guarded. You shouldn't place this in your levels.
[^TOP]
 
HoldSpot: UT:
This is created when you issue the 'Hold' command to bots in Unreal Tournament. You shouldn't got placing this in your levels.
[^TOP]
 
InterpolationPoint:

Ooh, complicated. Put basically they are used for creating a path for a kind of movie fly-by effect. They are used in the start-game castle fly-by at the start of Unreal and the start-game intro in Unreal Tournament. But enough about that, lets get down and dirty…

First thing to do is create a SpecialEvent with initial state "PlayerPath". Set its Event to "Int1" for example. Next create a number of InterpolationPoint's with tags of "Int1" and set their Position values from 0 to the whatever. Set one of the InterpolationPoint's bEndPath to true (presumably the last one!). Then when the SpecialEvent is triggered the player should get a fly-by rush. I really must test this!

Half the other properties aren't used anywhere, so I don't know why they are there. Who knows.

[^TOP]
 
LocationID:

Marks and names an area in a Zone. These can be used when you want area descriptions to appear (say in team matches in the chat screen) bu don't want to split you level up into little zones.

Simply place the LocationID in your level, set its Radius and the LocationName.

[^TOP]
 
MakeNaliFriendly:

Should really be in the 'Triggers' section, but hey, who am I to complain.

When triggered makes all Nali in the level friendly to the player (even if you've blown their friends to little bits of Nali Chunks!)

[^TOP]
 
ObjectPath:

Allows you to move an actor. Set the tag of the actor to be moved to the same as the PathActorTag property. Then place a number of PathPoints with the same tag as the ObjectPath actor. These define the path to be taken by the actor object. Then when the ObjectPath is triggered the object is moved to the first PathPoint and then allong the path (using lots of complicated curving algorithms that I couldn't be arsed to work out).

N.B Important! You need to set Advanced->bStatic to false else the ObjectPath will not work!

Parameters

PathActorTag:

Tag of the actor to be moved

bAlterPitch:

Does the pitch of the actor change as it moves along

bAlterYaw:

Does the yaw of the actor change as it moves along

bAlterRoll:

Does the roll of the actor change as it moves along. Use all three for a kind of airplane effect

RAdjust:

Adjust the rotation of the actor as it moves along.

[^TOP]
 
OEMEnd:
Err, presumably used at the end of Unreal somewhere. Don't have Unreal on this computer so I can't tell you.
[^TOP]
 
PathPoint:

See above ObjectPath for more details.

Parameters

sequence_Number:

To order the path points

curveSpeed:

how fast the object must move at this point (affects shape of path, not really speed)

speedU:

speed factor, a value of 1 will travel through the segment in 1 second, 0 stop, 2 in 1/2 second, etc..

[^TOP]
 
RockSlide:

This would appear to create a rock slide, hey, what will these epic guys think of next…

It spawns rocks within the CubeDimensions of the RockSlides location you specify. It will continue till TimeLength is reached or forever if TimeLimit is false.

As noted in the code, the rocks aren't currently doing a lot, so let them fall a distance to do more damage.

Parameters

CubeDimensions:

vector of the dimensions of the space to create the rocks in.

TimeLimit:

if false will continue for ever.

TimeLength:

the amount of time till no more rocks are created from when it is triggered.

MinBetweenTime:

Minimum time between rocks

MaxBetweenTime:

Maximum time between rocks

MinScaleFactor:

Minimum scale factor of the rocks (1 is normal etc)

MaxScaleFactor:

Maximum scale factor of the rocks

InitialDirection:

The initial rotation of the rock

minInitialSpeed:

the minimum initial speed

maxInitialSpeed:

the maximum initial speed

[^TOP]
 
SpectatorCam: UT:

Simply put, this is a camera position which is placed in the game. It is used if someone starts the game as a spectator, and also for those end of game sequences in the Assault maps.

 

Parameters

bSkipView:

If being used by player as a spectator, then should they skip this camera.

FadeOutTime:

The time to fade when used as a end game camera.

[^TOP]
 
QuakeCam: UT:

Identical to the SpectatorCam, except is also shakes the view of the player

Parameters

magnitude:

The magnitude of the shakes, defaults to 2000.

[^TOP]
 
ThingFactory:
Simply put the thing factory creates things. You place a ThingFactory somewhere on your map, and a number of SpawnPoints (See NavigationPoint Ref). Set up the factory with a prototype and the maxitems and capacity for the factory. When the ThingFactory is triggered it should start spawning things at the various SpawnPoints.
Parameters

prototype:

The class of the thing to spawn.

maxitems:

The maximum number of current objects allowed in existence at once.

capacity:

The total number of objects this factory will spawn in its lifetime.

interval:

interval in seconds between spawning, altered by timeDistribution below

itemtag:

A tag to apply to any spawned objects, defaults to 'MadeInUSA', those crazie Epic guys!

bFalling:

Whether the object created is initially set into a falling physical state.

timeDistribution:

One of: Constant, time between each creation is the same; Uniform, time between spawnings is between 0 and 2*interval; Gaussian, some kind of ultra random range between 0 and 2* interval.

bOnlyPlayerTouched:

If triggered by touch (determined largely by where you put the damn thing) only trigger from the player, not monsters.

bConvert:

If true, then only spawn at a spawnpoint which the player cannot see, if players can see them all then no object is spawned.

bStoppable:

Stops spawning if the thing factory is untouched (i.e. the player walks away)

[^TOP]
 
CreatureFactory:

The same as ThingFactory above, but allows you to assign orders to creatures that are spawned.

See Unreal AI reference for patrol points and guard points for the purpose of Orders etc.

Parameters

Orders:

See above reference, but you may wish to for example set the Orders property to Ambush, set the OrderTag to the value of a AmbushPoint and then the creature will move to this AmbushPoint upon creation.

OrderTag:

Used in conjunction with the Orders value above.

AlarmTag:

The tag of the AlarmPoint the creature should attempt to reach when they see the player.

AddedCoopCapacity:

If the game type is CoopGame then add the capacity of the creature factory is increased by this amount.

[^TOP]
 
ThrowStuff:
This will throw all pushable objects in a given or random direction.
Parameters

throwVect:

The velocity vector to throw the objects, or used as the basis for the random direction if bRandomize is true.

bRandomize:

If true then the above throwVect is randomized. The vertical direction is always maintained (i.e. if throwVect is in a upwardly direction then so will the new random vector)

interval:

Time between throws.

Numthrows:

The number of throws. Defaults to 1.

[^TOP]
 
TriggeredAmbientSound:

While on this will replay a sound using the values set below.

This has 2 states, either TriggerToggled or OnWhileTriggered.

If TriggerToggled then each time it is triggered it is turned either on or off.

If OnWhileTriggered then it will be on while triggered and off while not triggered.

Parameters

bInitiallyOn:

If true then the sound is played as soon as the level starts.

AmbSound:

The sound to play.

rePlayTime:

The minimum time between replays of the sound.

rePlayVariance:

A random variation of this size to when the sound replays.

bPlayOnceOnly:

Should the sound be only played once. Doesn't could the first play if bInitiallyOn is true.

[^TOP]
 
WayBeacon

OK, these don't seem to be used much as far as I can tell. If anyone knows then please let me know.

There are references in 2 functions in PlayerPawn.uc and also in Bots.uc

I think they are used for debugging, to check where bots are heading (it is spawned as a little unreal lamp).

[^TOP]