Game Balance - Classes
Overview
Class Property Modification can be used to modify the balance properties inherent to player classes (i.e. Light, Medium, Heavy, or pre-OOTB classes like Pathfinder, Sentinel or Brute).
All class modification functions and properties fall under the Classes namespace. Properties fall under the Classes.Properties namespace. So for instance, one could reference a property with Classes.Properties.HealthPool.
Setting Class Properties
Getter and Setter functions for property values are provided.
Classes.setProperty(className: string, property: ItemProperty, value: T)
setProperty sets the value of the property property for the class className. The type T represents the type of the values of that property - depending on the property this may be a boolean, integer, float or string.
Classes.getProperty(className: string, property: ItemProperty): T
getProperty retrieves the value of the given property. The type T is the type of values of that property.
Base Stats
| Property | Type | Value Restrictions | Units | Description |
|---|---|---|---|---|
| Health Pool | float | > 0 | Health | Health pool for this class |
| Energy Pool | float | >= 0 | Energy | Energy pool for the class |
| EnergyRechargeRate | float | >= 0 | Energy / S | Rate at which energy recovers |
| JetEnergyCost | float | >= 0 | Energy / S | Energy per second needed to jet |
| InitialJetEnergyCost | float | >= 0 | Energy | Amount of energy used in initiating the jetpack |
| RegenTime | float | >= 0 | S | Time before health regen starts |
| RegenRate | float | >= 0 | How fast to regenerate health while regen is ongoing | |
| LowHealthThreshold | float | >= 0 | Percentage of health at which low health UI effects play |
Movement and Skiing
| Property | Type | Value Restrictions | Units | Description |
|---|---|---|---|---|
| Mass | float | >= 0 | Mass for players of this type | |
| GroundSpeed | float | >= 0 | UU / S | Walking speed |
| MaxSkiingSpeed | float | UU / S | Max speed achievable via skiing | |
| MaxSkiControl | float | 0 <= x <= 1 | Max proportion of turn control the player can have while skiing | |
| SkiControlPeakSpeed | float | >= 0 | UU / S | Speed at which the player has maximum turning control; the mean of the normal curve for turn control |
| SkiControlVariance | float | >= 0 | Variance of the normal / bell curve for turn control; larger values mean a broader speed range with high control | |
| SkiSlopeGravity | float | >= 0 | Gravity applied to the player while skiing down a slope | |
| VehicleSpeedInheritance | float | 0 <= x <= 1 | Proportion of speed to inherit when jumping out of a vehicle; affected by the vehicle's exit speed cap | |
| MomentumDampeningEnabled | boolean | Whether impulse from an explosive weapon is reduced when the player is moving fast enough | ||
| MomentumDampeningThreshold | float | >= 0 | UU / S | Speed threshold past which momentum dampening is active |
| MomentumDampeningProportion | float | 0 <= x <= 1 | Proportional reduction in impulse when momentum is dampened | |
| MaxHealthRegenSpeed | float | >= 0 (disabled if -1) | UU / S | Speed threshold above which health regen is disabled |
Jetting and Air Control
| Property | Type | Value Restrictions | Units | Description |
|---|---|---|---|---|
| MaxJettingSpeed | float | >= 0 | UU / S | Max speed achievable via jetting |
| JetAcceleration | float | >= 0 | UU / S^2 | Acceleration caused by jetting |
| InitialJetAccelerationMultiplier | float | >= 0 | Multiplier to acceleration for an initial jetpack boost | |
| InitialJetLength | float | >= 0 | S | How long the initial jetpack boost lasts |
| ForwardJetProportion | float | 0 <= x <= 1 | Proportion of jetting acceleration applied to forwards momentum | |
| JetBoostMaxGroundSpeed | float | >= 0 | UU / S | Maximum ground speed achievable via jetting while skiing |
| DefaultAirControl | float | 0 <= x <= 1 | Base proportion of turn / strafe control the player has in the air | |
| AirControlMaxMultiplier | float | >= 0 | Multiplier applied to air control at speeds below the reduction range | |
| AirControlMinMultiplier | float | >= 0 | Multiplier applied to air control at speeds above the reduction range | |
| AirControlReductionRangeMax | float | >= 0 | UU / S | Speed at which air control begins to decrease |
| AirControlReductionRangeMin | float | >= 0 | UU / S | Speed at which air control stops decreasing |
Air control works in a similar way to damage falloff: there is a 'reduction range' of speeds between AirControlReductionRangeMax and AirControlReductionRangeMin, between which the multiplier applied to air control will drop off linearly.
Collision
| Property | Type | Value Restrictions | Units | Description |
|---|---|---|---|---|
| CollisionCylinderRadius | float | >= 0 | UU | Radius of the class's collision cylinder |
| CollisionCylinderHeight | float | >= 0 | UU | Height of the class's collision cylinder |