Always snap to grid

User:Crusha/UltimateMappingTools

From Unreal Wiki, The Unreal Engine Documentation Site
< User:Crusha
Revision as of 12:47, 2 August 2010 by Crusha (Talk | contribs) (Re-arranged order of the tools and added UltimateVCTFFactory and NetworkLinkedClientVolume)

Jump to: navigation, search

Introduction

About this site

This site is dedicated to my upcoming toolset for Unreal Tournament 2004, formerly known as UltimateONSTools. It serves as a documentation to the tool set and will explain the effects of each variable in each actors. A separate page gives some examples of how the contents of this set can be put to use.

Please do not apply any changes on this site, I will maintain it on my own. Use the discussion page for feedback.

Motivation

First I just wanted to create a VehicleFactory for ONS that allows the mapper to configure more than he can with the default one. It worked fine, but then I wanted to have even more control as a mapper about the game flow by considering which PowerNodes in ONS are captured by a team and which are not. The idea itself grew when I saw UT3's Kismet and decided to create something for all UT2004-mappers that gives them somewhat similar influence about what happens during the match. In the end I came to a point where I wanted to gather everything that a mapper could ever wish to use in map in this set - one single .u-file that every mapper should add to his EditPackages list and be happy. :)


There would be no use in recreating something that has been done by other coders already. And because we are one big community, I asked other coders if I could use some of their work here, especially such things that exist not in their own .u-file. They were very friendly, especially Wormbo. Half of the things in this pack come from him! The actors from other coders have been renamed for this toolset to avoid conflicts with the originals. Most actors from Jailbreak have been renamed from "JBxyz" to "UTxyz" (because UT stands for UltimateTools :P), only a few remained "Ultimate".


Note: In my actors can "red" and "blue" be considered static on the map, that means the mapper only has to think in a way like he would map for gametypes where the teams won't switch sides after reset. If the sides are swapped in ONS, then my actors will handle this automatically and work properly for the other team on that side of the map.


The Tools

UltimateONSFactory

by Crusha K. Rool, thanks to iwanpompier for help at getting the radar to work

UT2004 Object >> Actor >> SVehicleFactory >> ONSVehicleFactory >> UltimateONSFactory (custom)

An ONS-mapper's jack of all trades device. This allows the mapper to tweak the vehicle balance of the match right down to the last detail. Allows to specify an individual vehicle list for both teams from which the next vehicle can be chosen randomly or sequentially. Each individual vehicle entry in a list can be further modified, also with the ability to track the vehicle on the RadarMap.


See this page for more informations about this actor.


UltimateVCTFFactory

by Crusha K. Rool

UT2004 Object >> Actor >> SVehicleFactory >> UltimateVCTFFactory (custom)

The VCTF equivalent to the UltimateONSFactory. Allows to set up a list of vehicles from which the next vehicle can be chosen randomly or sequentially. Each individual vehicle entry in a list can be further modified, also with the ability to change if a vehicle can carry the flag or not. This has less options than the UltimateONSFactory but can be used in any gametype, even those where vehicles are disabled by default.

See this page for more informations about this actor.


UltimateMover

by Wormbo, originally named JBMoverDualDestination in the package 'JBToolbox2'

UT2004 Object >> Actor >> Mover >> UltimateMover (custom)

A mover with a multitude of improvements over standard movers:

  • can trigger an event when receiving damage (like Wormbo's custom DamageTriggerMover)
  • can trigger/untrigger an event when someone stands in it (not only in StandOpenTimed state)
  • mapper can define two different movement paths with individual trigger tags, sounds and events
  • mapper can specify separate open and close times (like VitalOverdose's VariableTimedMover)
  • mapper can specify individual move times for every key (like SuperApe's VariableTimedMover)


See JDN:JBMoverDualDestination for more informations about this actor.


EventGate

by Crusha K. Rool

UT2004 Object >> Actor >> Triggers >> EventGate (custom)
Known custom subclasses:
Crusha/UltimateMappingTools/LogicGate, Crusha/UltimateMappingTools/InstigatorModifier, Crusha/UltimateMappingTools/VIPlayerEventGate, Crusha/UltimateMappingTools/NodeDamageGate, Crusha/UltimateMappingTools/NodeEventDirector, Crusha/UltimateMappingTools/UnTriggerEventGate, Crusha/UltimateMappingTools/ScoreContainer, Crusha/UltimateMappingTools/RandomEventGate, Crusha/UltimateMappingTools/CountdownEventGate

The abstract base class of all custom actors that handle TriggerEvents and UnTriggerEvents. All subclasses have collision disabled because they only depend on triggering.


LogicGate

by Crusha K. Rool

UT2004 Object >> Actor >> Triggers >> EventGate >> LogicGate (custom)
Known custom subclass:
Crusha/UltimateMappingTools/LogicGate

The abstract base class of all logic gates. The only purpose of this class is to group the subclasses.


The following subclasses exist:

LogicalNOT

LogicalOR

LogicalAND

LogicalNOR

LogicalNAND

LogicalXOR


UnTriggerEventGate

by Crusha K. Rool

UT2004 Object >> Actor >> Triggers >> EventGate >> UnTriggerEventGate (custom)

This actor turns the incoming UnTriggerEvents into TriggerEvents or the other way around.

See this page for more informations about this actor.


LinksetupEventGate

by Crusha K. Rool

UT2004 Object >> Actor >> Triggers >> EventGate >> LinksetupEventGate (custom)

When being triggered, this will only trigger the next Event, if the current Linksetup matches one of the ones specified in the array.

Property group 'LinksetupEventGate'

AllowedLinksetups

Type: array<String>

Add names of Linksetups to this list. The next Event will only get (un)triggered when the current Linksetup is equal to one in this list.


RandomEventGate

by Crusha K. Rool

UT2004 Object >> Actor >> Triggers >> EventGate >> RandomEventGate (custom)

Triggers the next Event with a probability that can be defined by the mapper. You can also set an alternative Event that is used instead, if the other one is not chosen.

Property group 'Events'

AlternativeEvent

Type: name

If this is set, then it will be (un)triggered if the normal Event fails.

Property group 'RandomEventGate'

TriggerProbability

Type: float

Enter the probability in percent with that the normal Event shall be triggered. (That means this percentage is used if the actor gets triggered)

UnTriggerProbability

Type: float

Enter the probability in percent with that the normal Event shall be untriggered. (That means this percentage is used if the actor gets untriggered)


VIPlayerEventGate

by Crusha K. Rool

UT2004 Object >> Actor >> Triggers >> EventGate >> VIPlayerEventGate (custom)

This receives an incoming (Un)TriggerEvent and performs several checks about the Instigator of this Event. It will (un)trigger the next Event, depending on what the result of the check is.


See this page for more informations about this actor.


PlayerCountTrigger

by Crusha K. Rool

UT2004 Object >> Actor >> Triggers >> PlayerCountTrigger (custom)

Triggers an Event when at least so many players are in the game as specified here. Untriggers it when the PlayerCount shrinks below the specified amount again.

Property group 'Events'

Event

Type: name

This Event is triggered or untriggered.

Property group 'PlayerCountTrigger'

PlayerCount

Type: byte

Triggers the Event when at least this much players are in the game.

Default Value: 16

bCountHumansOnly

Type: bool

If True, bots are not considered for the PlayerCount.


NodeEventDirector

by Crusha K. Rool

UT2004 Object >> Actor >> Triggers >> EventGate >> NodeEventDirector (custom)

This actor receives the three Events of an ONSPowerNode and interprets the current state of the node from these informations. The actor can then fire Trigger- or UnTrigger-Events when the state of the Node changes.


See this page for more informations about this actor.


NodeDamageGate

by Crusha K. Rool

UT2004 Object >> Actor >> Triggers >> EventGate >> NodeDamageGate (custom)

This actor deals a certain amount of damage to a PowerCore or PowerNode when being triggered.


See this page for more informations about this actor.


ScoreContainer

by Crusha K. Rool

UT2004 Object >> Actor >> Triggers >> EventGate >> ScoreContainer (custom)

This section handles four Actors that are all related to implementing a custom score system in maps, allowing to create an RTS-like resource system or simply doing addition and subtraction based event triggering.

See this page for more informations about these actors.



InstigatorModifier

by Crusha K. Rool

UT2004 Object >> Actor >> Triggers >> EventGate >> InstigatorModifier (custom)

Changes the properties of the Pawn that triggered the Event to the specified ones.


See this page for more informations about this actor.


LockerWeaponsPlayerStart

by Crusha K. Rool, basing on the SpawnWithLockerWeapons-Mutator by Wormbo

UT2004 Object >> Actor >> NavigationPoint >> SmallNavigationPoint >> PlayerStart >> TriggeredPlayerStart >> LockerWeaponsPlayerStart (custom)

This PlayerStart equips the spawning player with the weapons from the closest WeaponLocker in the specified range.

Property group 'LockerWeaponsPlayerStart'

LockerDistance

Type: float

The player will spawn with the weapons from the closest WeaponLocker within this distance.

bAlwaysRefreshClosestLocker

Type: bool

Enabling this will perform a check to find the closest Locker every time a player respawns. This allows to always use the closest Locker in case that this PlayerStart is attached to a Mover and moves away from it's initial location.

However, performing the check is processing intense, so you should disable this if the PlayerStart is not attached to a Mover. Keep in mind that attaching it to a Mover might also break bot paths.

AssignLocker

Type: class<WeaponLocker>

Modifiers: EdFindable

Always use the locker that is specified here. Search for a locker in radius at runtime if none is specified. Overrides bAlwaysRefreshClosestLocker.


KarmaThing

by unknown author

UT2004 Object >> Actor >> KActor >> KarmaThing (custom)
Known custom subclass:
Crusha/UltimateMappingTools/UltimateDestructibleEnvironment

This is a fixed version of the KActor that works in online games.

See this page for more informations about this actor.


OnlineCameraTextureClient

by Maabus

UT2004 Object >> Actor >> Info >> CameraTextureClient >> OnlineCameraTextureClient (custom)

Works exactly the same way as a normal CameraTextureClient, just that this one will also display dynamic actors in netplay.

However, the camera will not change the way how an actor is considered relevant to the local client, that means you can only see things on the camera that are relevant to you at that time. See Relevant Actors to find out how an actor gets relevant and Angel Mapper's Tutorial to find out how to set up a Security Cam.


NetworkImportanceVolume

by Crusha K. Rool

UT2004 Object >> Actor >> Brush >> Volume >> NetworkImportanceVolume (custom)

A Volume that forces any actor inside it to be always relevant to the client for replication. Once the actor leaves the Volume it will use it's default settings to determine the relevancy. This allows OnlineCameraTextureClients to display actors that the client actually don't know about.

Use this wisely as it overrides Unreal's network optimization techniques.

Property group 'NetworkImportanceVolume'

bMakeInitialActorsAlwaysRelevant

Type: bool

If True, the Volume will make a check at the beginning of the match and make also all those Actors relevant that are already inside the Volume and thereby don't cause Touch() events with it. Disabled by default.

NetworkLinkedClientVolumeTag

Type: name

Link NetworkLinkedClientVolumes to this Volume to make it only active if there are human players in those Volumes. This allows to save bandwidth for everyone if there are no viewers in the area from which the actors in this volume should be considered relevant.


NetworkLinkedClientVolume

by Crusha K. Rool

UT2004 Object >> Actor >> Brush >> Volume >> NetworkLinkedClientVolume (custom)

Can be associated by a NetworkImportanceVolume to make that Volume only active if actual players are inside this Volume.

This should be used in the area from which a player can see an OnlineCameraTextureClient. Makes only sense if that area is not very frequently visited by human players or fairly small and if the area of the NetworkImportanceVolume is the opposite of that.


VCTFRadarMap

by Crusha K. Rool

UT2004 Object >> Actor >> Info >> VCTFRadarMap (custom)

Place this actor in the map to be able to display a RadarMap in the HUD like in the Onslaught gametype. In order to display a RadarMap you have to set one up in the LevelProperties as you would do in ONS.

Property group 'VCTFRadarMap'

bShowOwnFlagCarrier

Type: bool

Show the location of the own flag carrier (i.e. your teammember that stole the enemy flag) on radar.

Default value: True

bShowEnemyFlagCarrier

Type: bool

Show the location of the enemy flag carrier on radar.


EnhancedLevelGameRules

created mainly by Wormbo

UT2004 Object >> Actor >> Info >> LevelGameRules >> EnhancedLevelGameRules (custom)

Additionally to the functionality of the normal LevelGameRules, this one can also forbid certain Mutators in the map. That way can a leveldesigner override the Server Mutators completely.

However, in order to prevent major abuse, this actor will not disable Mutators with the GroupName 'Security', like Anti-TCC, UTSecure, etc.

Property group 'EnhancedLevelGameRules'

NotAllowedMutator

Type: array<name>

The Mutators in this array are not allowed in this particular map.

Author comments

Again, this actor relies on the good will of the mapper. It could be used to disable all Mutators (except Security Mutators) on it, but in the end would no server host a map that radically disables all of it's Mutators on it. The actor will write each Mutator that gets disabled by it to the log and explains what disabled it, so Admins know what's going on if they check it.

This thing is thought to disable Mutators that have serious impacts on the playability of the map, for example the Vehicle Stunts Mutator in order to prevent vehicles from climbing all mountains in a map.