Skip to main content

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#

PropertyTypeValue RestrictionsUnitsDescription
Health Poolfloat> 0HealthHealth pool for this class
Energy Poolfloat>= 0EnergyEnergy pool for the class
EnergyRechargeRatefloat>= 0Energy / SRate at which energy recovers
JetEnergyCostfloat>= 0Energy / SEnergy per second needed to jet
InitialJetEnergyCostfloat>= 0EnergyAmount of energy used in initiating the jetpack
RegenTimefloat>= 0STime before health regen starts
RegenRatefloat>= 0How fast to regenerate health while regen is ongoing
LowHealthThresholdfloat>= 0Percentage of health at which low health UI effects play

Movement and Skiing#

PropertyTypeValue RestrictionsUnitsDescription
Massfloat>= 0Mass for players of this type
GroundSpeedfloat>= 0UU / SWalking speed
MaxSkiingSpeedfloatUU / SMax speed achievable via skiing
MaxSkiControlfloat0 <= x <= 1Max proportion of turn control the player can have while skiing
SkiControlPeakSpeedfloat>= 0UU / SSpeed at which the player has maximum turning control; the mean of the normal curve for turn control
SkiControlVariancefloat>= 0Variance of the normal / bell curve for turn control; larger values mean a broader speed range with high control
SkiSlopeGravityfloat>= 0Gravity applied to the player while skiing down a slope
VehicleSpeedInheritancefloat0 <= x <= 1Proportion of speed to inherit when jumping out of a vehicle; affected by the vehicle's exit speed cap
MomentumDampeningEnabledbooleanWhether impulse from an explosive weapon is reduced when the player is moving fast enough
MomentumDampeningThresholdfloat>= 0UU / SSpeed threshold past which momentum dampening is active
MomentumDampeningProportionfloat0 <= x <= 1Proportional reduction in impulse when momentum is dampened
MaxHealthRegenSpeedfloat>= 0 (disabled if -1)UU / SSpeed threshold above which health regen is disabled

Jetting and Air Control#

PropertyTypeValue RestrictionsUnitsDescription
MaxJettingSpeedfloat>= 0UU / SMax speed achievable via jetting
JetAccelerationfloat>= 0UU / S^2Acceleration caused by jetting
InitialJetAccelerationMultiplierfloat>= 0Multiplier to acceleration for an initial jetpack boost
InitialJetLengthfloat>= 0SHow long the initial jetpack boost lasts
ForwardJetProportionfloat0 <= x <= 1Proportion of jetting acceleration applied to forwards momentum
JetBoostMaxGroundSpeedfloat>= 0UU / SMaximum ground speed achievable via jetting while skiing
DefaultAirControlfloat0 <= x <= 1Base proportion of turn / strafe control the player has in the air
AirControlMaxMultiplierfloat>= 0Multiplier applied to air control at speeds below the reduction range
AirControlMinMultiplierfloat>= 0Multiplier applied to air control at speeds above the reduction range
AirControlReductionRangeMaxfloat>= 0UU / SSpeed at which air control begins to decrease
AirControlReductionRangeMinfloat>= 0UU / SSpeed 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#

PropertyTypeValue RestrictionsUnitsDescription
CollisionCylinderRadiusfloat>= 0UURadius of the class's collision cylinder
CollisionCylinderHeightfloat>= 0UUHeight of the class's collision cylinder