Scaling Types 2.0 - tristankechlo/RandomMobSizes GitHub Wiki
Static Scaling
The mob will always scaled by the amount specified.
Keys:
scaling- The scaling factor. This is a number between 0 and 10scale_health- how the health should be scaled, values see below herescale_damage- how the damage should be scaled, values see below herescale_speed- how the movement_speed should be scaled, values see below here
Can be easily setup in the config like this "minecraft:bat": 1.25, this will be parsed and converted to:
"minecraft:bat": {
"type": "static",
"scaling": 1.25,
"scale_health": "normal",
"scale_damage": "normal",
"scale_speed": "inverse"
}
This would cause all newly spawned bats to be 25% larger than normal, their attributes (health, damage and speed) would be scaled alongside.
Uniform Scaling
Will cause the scaling factor to be evenly distributed between the min and max scaling (random value between min and max)
Keys:
min_scaling- The minimum scaling factor. This is a number between 0 and 10max_scaling- The maximum scaling factor. This is a number between 0 and 10scale_health- how the health should be scaled, values see below herescale_damage- how the damage should be scaled, values see below herescale_speed- how the movement_speed should be scaled, values see below here
Example:
{
"type": "uniform",
"min_scaling": 0.5,
"max_scaling": 1.5,
"scale_health": "normal",
"scale_damage": "normal",
"scale_speed": "inverse"
}
Gaussian Scaling
Will cause the scaling factor to be distributed according to a gaussian distribution.
This causes that most mobs will spawn with a scaling factor close to the center of the min and max scaling.
So the extreme large and small mobs will spawn less often.
Keys:
min_scaling- The minimum scaling factor. This is a number between 0 and 10max_scaling- The maximum scaling factor. This is a number between 0 and 10close_to_original- when true, the mean of the gaussian distribution is dynamically calculated so that most mobs are sized close to their original size (which is 1.0)scale_health- how the health should be scaled, values see below herescale_damage- how the damage should be scaled, values see below herescale_speed- how the movement_speed should be scaled, values see below here
Example:
{
"type": "gaussian",
"min_scaling": 0.5,
"max_scaling": 1.5,
"close_to_original": false,
"scale_health": "normal",
"scale_damage": "normal",
"scale_speed": "inverse"
}
Difficulty based Scaling
Can be used to have different mob scalings when the gamemode changes.
For each gamemode the value is also expected to be a scaling type.
All keys are optional, for not specfied keys, a static scaling of 1.0 will be used.
Keys
peaceful- the scaling to choose when gamemode is peacefuleasy- the scaling to choose when gamemode is easynormal- the scaling to choose when gamemode is normalhard- the scaling to choose when gamemode is hard
Example
{
"type": "difficulty",
"peaceful": 1.3,
"easy": 1.15,
"normal": 1.0,
"hard": 0.75
}
Attribute Scaling Values
following values are possible for the previous attribute scaling types (scale_health, scale_damage and scale_speed)
- none => no scaling for the corresponding attribute
- normal => same scaling as the mob size
- square => scaling is squared
(scaling ✱ scaling) - inverse => scaling is inversed, attribute value gets lower when the mob gets larger and vice versa
(1 / scaling)- could be used to make larger mobs move slower instead of faster
- inverse_square => scaling is squared and inversed
(1 / (scaling ✱ scaling))