-
Notifications
You must be signed in to change notification settings - Fork 0
Attribute Scaling
Attribute scaling determines how mob stats increase with level. This system allows precise control over health, damage, speed, and other attributes.
Attribute scaling is defined inside structure, biome, or mob override blocks:
{
"structure": "minecraft:stronghold",
"attribute_scaling": {
"minecraft:generic.max_health": {
"base_bonus": 10.0,
"per_level": 0.5,
"operation": "addition"
}
}
}| Field | Type | Default | Description |
|---|---|---|---|
base_bonus |
Double | 0.0 |
Flat bonus applied at level 1 |
per_level |
Double | 0.0 |
Bonus added per level |
operation |
String | "addition" |
How the bonus is applied |
max_bonus |
Double | null |
Maximum total bonus (optional) |
Adds the calculated bonus directly to the attribute:
final_value = base_value + bonus
Example: A zombie with 20 HP at level 50:
{
"minecraft:generic.max_health": {
"base_bonus": 10.0,
"per_level": 0.5,
"operation": "addition"
}
}Bonus = 10 + (0.5 × 50) = 35 Final HP = 20 + 35 = 55 HP
Multiplies the base attribute value:
final_value = base_value × (1 + bonus)
Example: A zombie with 3 attack damage at level 50:
{
"minecraft:generic.attack_damage": {
"base_bonus": 0.0,
"per_level": 0.02,
"operation": "multiply_base"
}
}Bonus = 0 + (0.02 × 50) = 1.0 Final damage = 3 × (1 + 1.0) = 6 damage
Multiplies after all other modifiers:
final_value = (base_value + additions) × (1 + bonus)
Useful for percentage-based scaling that stacks with other effects.
| Attribute ID | Description | Base Value (Zombie) |
|---|---|---|
minecraft:generic.max_health |
Maximum HP | 20.0 |
minecraft:generic.attack_damage |
Melee damage | 3.0 |
minecraft:generic.armor |
Damage reduction | 0.0 |
minecraft:generic.armor_toughness |
Armor effectiveness | 0.0 |
minecraft:generic.knockback_resistance |
Knockback reduction (0-1) | 0.0 |
minecraft:generic.movement_speed |
Movement speed | 0.23 |
minecraft:generic.follow_range |
Detection range | 35.0 |
minecraft:generic.attack_knockback |
Knockback dealt | 0.0 |
minecraft:generic.attack_speed |
Attack cooldown | 4.0 |
You can use any modded attribute if it's registered properly:
{
"some_mod:custom_attribute": {
"base_bonus": 10.0,
"per_level": 1.0,
"operation": "addition"
}
}Goal: Double health every 100 levels
{
"minecraft:generic.max_health": {
"base_bonus": 0.0,
"per_level": 0.01,
"operation": "multiply_base"
}
}| Level | Multiplier | Zombie HP |
|---|---|---|
| 1 | 1.01 | 20.2 |
| 50 | 1.50 | 30.0 |
| 100 | 2.00 | 40.0 |
| 200 | 3.00 | 60.0 |
Goal: +5 HP per level
{
"minecraft:generic.max_health": {
"base_bonus": 0.0,
"per_level": 5.0,
"operation": "addition"
}
}| Level | Bonus | Zombie HP |
|---|---|---|
| 1 | 5 | 25 |
| 10 | 50 | 70 |
| 50 | 250 | 270 |
| 100 | 500 | 520 |
Goal: Scale damage but cap at +20
{
"minecraft:generic.attack_damage": {
"base_bonus": 2.0,
"per_level": 0.5,
"operation": "addition",
"max_bonus": 20.0
}
}| Level | Calculated | Capped | Zombie Damage |
|---|---|---|---|
| 1 | 2.5 | 2.5 | 5.5 |
| 20 | 12.0 | 12.0 | 15.0 |
| 36 | 20.0 | 20.0 | 23.0 |
| 100 | 52.0 | 20.0 | 23.0 |
Moderate scaling across all stats:
{
"attribute_scaling": {
"minecraft:generic.max_health": {
"base_bonus": 20.0,
"per_level": 1.0,
"operation": "addition",
"max_bonus": 500.0
},
"minecraft:generic.attack_damage": {
"base_bonus": 0.0,
"per_level": 0.02,
"operation": "multiply_base",
"max_bonus": 5.0
},
"minecraft:generic.armor": {
"base_bonus": 2.0,
"per_level": 0.1,
"operation": "addition",
"max_bonus": 20.0
},
"minecraft:generic.movement_speed": {
"base_bonus": 0.0,
"per_level": 0.001,
"operation": "multiply_base",
"max_bonus": 0.5
}
}
}High health, low damage, slow movement:
{
"attribute_scaling": {
"minecraft:generic.max_health": {
"base_bonus": 100.0,
"per_level": 5.0,
"operation": "addition"
},
"minecraft:generic.attack_damage": {
"base_bonus": 0.0,
"per_level": 0.01,
"operation": "multiply_base"
},
"minecraft:generic.armor": {
"base_bonus": 10.0,
"per_level": 0.5,
"operation": "addition"
},
"minecraft:generic.knockback_resistance": {
"base_bonus": 0.5,
"per_level": 0.005,
"operation": "addition",
"max_bonus": 1.0
},
"minecraft:generic.movement_speed": {
"base_bonus": -0.05,
"per_level": 0.0,
"operation": "addition"
}
}
}High damage, low health:
{
"attribute_scaling": {
"minecraft:generic.max_health": {
"base_bonus": 0.0,
"per_level": 0.1,
"operation": "addition"
},
"minecraft:generic.attack_damage": {
"base_bonus": 5.0,
"per_level": 0.1,
"operation": "multiply_base"
},
"minecraft:generic.movement_speed": {
"base_bonus": 0.0,
"per_level": 0.005,
"operation": "multiply_base",
"max_bonus": 1.0
},
"minecraft:generic.attack_speed": {
"base_bonus": 0.0,
"per_level": 0.02,
"operation": "multiply_base"
}
}
}Very fast, moderate stats:
{
"attribute_scaling": {
"minecraft:generic.max_health": {
"base_bonus": 0.0,
"per_level": 0.5,
"operation": "addition"
},
"minecraft:generic.attack_damage": {
"base_bonus": 0.0,
"per_level": 0.03,
"operation": "multiply_base"
},
"minecraft:generic.movement_speed": {
"base_bonus": 0.1,
"per_level": 0.01,
"operation": "multiply_base",
"max_bonus": 2.0
},
"minecraft:generic.follow_range": {
"base_bonus": 10.0,
"per_level": 0.5,
"operation": "addition",
"max_bonus": 100.0
}
}
}The mod only modifies attributes listed in the config whitelist:
[attributes]
allowedAttributes = [
"minecraft:generic.max_health",
"minecraft:generic.attack_damage",
"minecraft:generic.armor",
"minecraft:generic.armor_toughness",
"minecraft:generic.knockback_resistance",
"minecraft:generic.movement_speed",
"minecraft:generic.follow_range",
"minecraft:generic.attack_knockback",
"minecraft:generic.attack_speed"
]Add modded attributes here to enable scaling.
-
Use
max_bonusto prevent scaling from getting out of control - Test at different levels - what works at level 10 may break at level 500
- Balance health and damage - too much of either makes combat unfun
- Consider knockback resistance - high-level mobs should be harder to cheese
- Movement speed caps - values above 2.0 can cause issues
- Start conservative - it's easier to buff than to nerf
Navigation
Quick Links