User:Crusha/UltimateMappingTools
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 toolset 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 gameflow 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 gameflow. 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.
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
Template:User | 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. Each individual vehicle entry in a list can be further modified, also with the ability to track the vehicle on the RadarMap.
Property group 'Events'
Tag
Type: name
Triggering the factory will enable it, i.e. set bEnabled to True.
UnTriggering it will disable it, i.e. setting it to False.
Event
Type: name
The default event is triggered whenever a vehicle is spawned by this factory.
PreSpawnEvent
Type: name
This is triggered before the vehicle spawns, when the SpawnBuildEffect is played. (see PreSpawnTime)
VehicleDestroyedEvent
Type: name
Triggered whenever a vehicle that was spawned by this factory gets destroyed.
Property group 'ONSVehicleFactory'
BlueTeamRotation
Type: int
If bReverseBlueTeamDirection, the vehicle will not turn by 180° for the blue team, but by this value. Negative values will rotate in the opposite direction.
8192 = 45°; 16384 = 90°; 32768 = 180°; etc..
Property group 'UltimateVehicleFactory'
bUseStaticTeams
Type: bool
The factory will not belong to the team that controls the closest team, but to the predefined team. If the other team holds the node, then this factory won't spawn any vehicles for that team.
StaticTeamNum
Type: byte
The factory will only work for this team.
0= red, 1= blue, 255= neutral/none
bIndependentFactory
Type: bool
The closest PowerNode or Core has no influence on this factory's activity or teamnumber. It will spawn the vehicles right away, even if the closest Node is disabled. The teamnumber of the vehicle will be the StaticTeamNum. Neutral vehicles are possible too.
This property overrides bUseStaticTeams.
bRandomFlip
Type: bool
If the spawned vehicle is neutral (because of bIndependentFactory), then there is a 50:50 chance that the spawned vehicle uses the BlueTeamRotation.
NotLockedForTeam
Type: byte
The spawned vehicle is ALWAYS locked for the team that is NOT entered here. This is mainly a hack for AS_MinigunTurrets, use this with them to keep them closed.
255 is normal ONS, 0 will always lock this for Blue, 1 always for Red
Default value: 255
bEnabled
Type: bool
Whether the factory is enabled at the beginning or not.
bToggleTrigger
Type: bool
Instead of the Trigger/UnTrigger-functionality will this only react to TriggerEvents, which will toggle the factory between enabled and disabled.
bUniqueVehicle
Type: bool
The factory spawns only a limited number of vehicles, then it stops working for the rest of the round. The number of vehicles that can be spawned can be set via MaxVehicleCount.
PreSpawnTime
Type: float
How many seconds before the vehicle spawn the SpawnBuildEffect and PreSpawnEvent is triggered.
Default value: 2.0
bCrushable
Type: bool
Allows spawning over colliding actors. Means any player that is in the collision radius of the vehicle when the RespawnTime is over will be crushed.
RetrySpawnTime
Type: float
If not bCrushable and the spawn location is blocked, then try to spawn again after this many seconds.
Default value: 1.0
LinksetupException
Enter the name of a Linksetup to disable this factory when that Linksetup is active. Leave this array empty to enable the factory for all Linksetups.
VehicleListRed
Type: array<SpawnedVehicleProperties>
List of vehicles that are available for spawn if the red team has the factory or it's a neutral independent factory.
VehicleListBlue
Type: array<SpawnedVehicleProperties>
List of vehicles that are available for spawn if the blue team has the factory.
Struct 'SpawnedVehicleProperties'
Vehicle
The class of the vehicle to spawn.
SpawnEffectSize
Type: enum<ESpawnSize>
Size of the SpawnEffect to use with this vehicle.
Health
Type: int
Health value that the spawned vehicle should have. 0 uses the vehicle's default health.
GroundSpeed
Type: float
The maximum ground speed. 0 = default
WaterSpeed
Type: float
The maximum water speed. 0 = default
AirSpeed
Type: float
The maximum flying speed. 0 = default
AccelRate
Type: float
Max acceleration rate. 0 = default
bEjectDriver
Type: bool
Eject the driver when the vehicle gets destroyed instead of killing him.
bSpawnProtected
Type: bool
Vehicle can't be damaged before it has been possessed.
bEnterringDoesNotUnlock
Type: bool
Vehicle is not unlocked to enemies when a player enters it.
bTrackVehicleOnRadar
Type: bool
The vehicle's location will be shown in realtime on the RadarMap.
RadarVisibleToTeam
Type: byte
The vehicle will be shown on the Radar to 255= both teams; 0= own team; 1= enemy team
RadarVisibleToHijack
Type: byte
When being hijacked, vehicle will be shown on the Radar to 255= both teams; 0= old owner team; 1= hijacker team
RadarOwnerUpdateTime
Type: float
How many seconds have to pass before the location of vehicle is updated for the owning team.
RadarEnemyUpdateTime
Type: float
Same as above, just for enemies.
RadarTexture
Type: Material
This image will represent the vehicle on the Radar.
RadarTextureScale
Type: float
The image will be scaled by this factor.
EventLogicGate
Template:User | Object >> Actor >> Triggers >> EventLogicGate (custom) |
The abstract base class of all logic gates. All subclasses have collision turned off and another texture than usual Triggers to distinguish them. LogicGates work the same way like their real life pendants: A TriggerEvent is considered "True", an UnTriggerEvent a "False". The output depends on the gate as described in the following actors.
LogicalNOT
Template:User | Object >> Actor >> Triggers >> EventLogicGate >> LogicalNOT (custom) |
Toggles the boolean value of an incoming Event and forwards it. If the Event was an Untrigger-Event, then it will become a Trigger-Event and the other way around.
Property group 'Events'
Tag
Type: name
Triggering the Event with this name will UnTrigger the Event specified below. UnTriggering the Event will Trigger the output Event.
Event
Type: name
The output Event that will be triggered.
LogicalOR
Template:User | Object >> Actor >> Triggers >> EventLogicGate >> LogicalOR (custom) |
Triggers an Event if AT LEAST ONE condition is True. Untriggers it, if an Event had been triggered and both conditions became False again.
Property group 'Events'
Tag
Type: name
Triggering the Event with this name will toggle the first condition True. UnTriggering it will toggle the condition False.
SecondTag
Type: name
Triggering the Event with this name will toggle the second condition True. UnTriggering it will toggle the condition False.
Event
Type: name
The output Event that will be triggered.
LogicalAND
Template:User | Object >> Actor >> Triggers >> EventLogicGate >> LogicalAND (custom) |
Triggers an Event if BOTH conditions are True. Untriggers it, if an Event had been triggered and one condition became False again.
Property group 'Events'
Tag
Type: name
Triggering the Event with this name will toggle the first condition True. UnTriggering it will toggle the condition False.
SecondTag
Type: name
Triggering the Event with this name will toggle the second condition True. UnTriggering it will toggle the condition False.
Event
Type: name
The output Event that will be triggered.
LogicalNOR
Template:User | Object >> Actor >> Triggers >> EventLogicGate >> LogicalNOR (custom) |
Does exactly the opposite of the Logical OR. That means that it triggers an Event if none of the conditions is True and untriggers the Event if one or both conditions are False.
Property group 'Events'
Tag
Type: name
Triggering the Event with this name will toggle the first condition True. UnTriggering it will toggle the condition False.
SecondTag
Type: name
Triggering the Event with this name will toggle the second condition True. UnTriggering it will toggle the condition False.
Event
Type: name
The output Event that will be triggered.
LogicalNAND
Template:User | Object >> Actor >> Triggers >> EventLogicGate >> LogicalNAND (custom) |
Does exactly the opposite of the LogicalAND. That means that it triggers an Event if only one or none of the conditions is True and untriggers the Event if both conditions are False.
Property group 'Events'
Tag
Type: name
Triggering the Event with this name will toggle the first condition True. UnTriggering it will toggle the condition False.
SecondTag
Type: name
Triggering the Event with this name will toggle the second condition True. UnTriggering it will toggle the condition False.
Event
Type: name
The output Event that will be triggered.
LogicalXOR
Template:User | Object >> Actor >> Triggers >> EventLogicGate >> LogicalXOR (custom) |
Triggers an Event if EXACTLY ONE OF TWO conditions is True. Untriggers it, if an Event had been triggered and both conditions became False or True.
Property group 'Events'
Tag
Type: name
Triggering the Event with this name will toggle the first condition True. UnTriggering it will toggle the condition False.
SecondTag
Type: name
Triggering the Event with this name will toggle the second condition True. UnTriggering it will toggle the condition False.
Event
Type: name
The output Event that will be triggered.