I search for solutions in this order: Past Code, Unreal Source, Wiki, BUF, groups.yahoo, google, screaming at monitor. – RegularX

User:Crusha/UltimateMappingTools

From Unreal Wiki, The Unreal Engine Documentation Site
< User:Crusha
Revision as of 16:29, 30 April 2011 by Crusha (Talk | contribs) (CullDistanceVolume: Fatal error with linked page name. :d)

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)

Contents

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.


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.


UTMaterialTrigger

by Wormbo, originally named JBMaterialTrigger in the package 'JBToolbox'

UT2004 Object >> Actor >> Triggers >> MaterialTrigger >> UTMaterialTrigger (custom)

MaterialTrigger that works properly in network games and also allows to reset materials.


See JDN:JBMaterialTrigger for more informations about this Actor.


UTEmitterClientTriggerable

by Wormbo, originally named JBEmitterClientTriggerable in the package 'JBToolbox'

UT2004 Object >> Actor >> Emitter >> UTEmitterClientTriggerable (custom)

Emitter that properly propagates Trigger() events to clients in network games. Otherwise it like a regular Emitter Actor.


See JDN:JBEmitterClientTriggerable for more informations about this Actor.


UTNetworkProjectileSpawner

by Wormbo, originally named NetworkProjectileSpawner in the package 'NetworkProjectileSpawner'

UT2004 Object >> Actor >> UTNetworkProjectileSpawner (custom)

An advanced network-compatible ProjectileSpawner alternative mappers can add to their levels.

This features an incredible amount of options to create your own projectile in any way you like. And I will not list all those 70 properties here. Luckily the Worm itself documented it in all details.


See this page 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.


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.


UTKickerTriggerable

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

UT2004 Object >> Actor >> Triggers >> xKicker >> UTKickerTriggerable (custom)

A triggerable xKicker with several additional features:

  • can be trigger-toggled or trigger-controlled on/off
  • defines directions "in front" and "behind" by its location and rotation so it can ignore touches if touching Actor is behind and mirror the kick direction if the touching Actor is behind
  • can cause damage to kicked Actors
  • can play a sound on the kicked Actor


See JDN:JBKickerTriggerable for more informations about this Actor.


VehicleTeleporter

by KillBait

UT2004 Object >> Actor >> NavigationPoint >> SmallNavigationPoint >> Teleporter >> VehicleTeleporter (custom)

A Teleporter that can also teleport vehicles. Works in online games and with bot support.

Property group 'VehicleTeleporter'

bTeleportVehiclesOnly

Type: bool

Teleporter won't teleport players on foot.

bGroundVehiclesOnly

Type: bool

Teleporter won't teleport a vehicle that has bCanFly set to True.


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.


UltimateDestroyableEnvironment

by Crusha K. Rool

UT2004 Object >> Actor >> Decoration >> UltimateDestroyableEnvironment (custom)

A StaticMesh that can change it's appearance when taking a certain amount of damage. Additionally it can play sounds, spawn KActors and use Emitter effects when it reaches the next Level of Destruction.


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.


CullDistanceVolume

UT2004 Volume >> CullDistanceVolume (custom)
This class in other games:
UT3, UDK

This catches up the idea of the CullDistanceVolume from UT3: At the beginning of the match, all StaticMeshes are checked if their BoundingSphere's diameter is smaller than the values in this array. Then they automatically get the CullDistance set from these properties that match their size, thus allow to quickly set up performance enhancements for the whole map.


See this page for more information about this Actor.

KarmaWakingVolume

by Crusha K. Rool

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

This Volume causes every Pawn or KActor subclasses in Phys_Karma or Phys_KarmaRagdoll state to perform their Karma calculations on every Tick instead of falling "asleep" if they aren't occupied by a player or waked by damage.

The purpose of this Volume is to enclose the area in which a Vehicle or KActor can be on a Mover, for example a vehicle lift. That will allow the lift to properly move the vehicle while it normally would simply stay at it's old location.

Use this only where it's necessary as it adds a constant strain of all enclosed Karma objects on the performance instead of using the automatic optimization.


UTTunnelExitVolume

by Wormbo, originally named JBVolumeTunnelExit in the package 'JBToolbox'

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

Volume that allowes players to walk or crouch off ledges. Useful wherever a player has to get off a human ladder or exit a tunnel while crouching.


See JDN:JBVolumeTunnelExit for more informations about this Actor.


UltimateSkyZoneInfo

by Wormbo and Crusha K. Rool

UT2004 Object >> Actor >> Info >> ZoneInfo >> UltimateSkyZoneInfo (custom)

Don't get confused by the name, this Actor is supposed to be used instead of a ZoneInfo and not instead of a SkyZoneInfo!

This is an enhanced version Wormbo's SelectableSkyZoneInfo. It allows to choose which skybox can be seen from the current Zone (including the ability to have different skyboxes with different detail levels to choose from) and additionally to specify completely different skyboxes from which one is chosen randomly at the beginning of the match, resulting in the ability to play the same map in a completely different environment each time you play it.


See this page for more informations about this Actor.


ParallaxSkyZoneInfo

by Party Boy

UT2004 Object >> Actor >> Info >> ZoneInfo >> SkyZoneInfo >> ParallaxSkyZoneInfo (custom)
This class in other games:
U2XMP

Moves the skybox around with the players view in order to simulate a distant environment like in UT3 instead of one that is static and infinitely far away. A skybox must be set up to match certain requirements since the actualy SkyZoneInfo is moving around in the skybox and thereby could pass through StaticMeshes (also fog rings) that are placed in traditional skyboxes.

Property group 'ParallaxSkyZoneInfo'

SkyBoxRelativeOffset

Type: Vector

Offset for the relative location of the SkyboxMover from the actual player in the map.

SkyScale

Type: float

This determines how strong the movement of the player is scaled down when moving the view in the skybox. This varies a lot, depending on the size of the skybox.

Default value: 0.0625


UltimateRadarMap

by Crusha K. Rool

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

Place this Actor in the map to be able to display an ONSlaught-like RadarMap in the HUD in any gametype you wish.

Supported are CTF gametypes (CTF, CTF4, VCTF), BR gametypes (BR, BR4, Bombing Spree Mutator), Domination (DOM, Triple Domination) and Assault. Supported means, that those will display the GameObjectives properly for that gametype. Unsupported gametypes can still be set to show all currently active GameObjectives or just simply show the RadarMap to give some feedback about your location.

In order to display a RadarMap you have to set one up in the LevelProperties as you would do in ONS.


Property group 'UltimateRadarMap'

bShowOwnObjectiveCarrier

Type: bool

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

Default value: True

bShowEnemyObjectiveCarrier

Type: bool

Show the location of the enemy flag or bomb 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.