
Mobs Properties Randomness
Randomize mobs properties. Add Potion Effects, Equipment, on hit effects and more!
Автор: Insane9657 тыс.32обновлён 13 сент. 2026 г.
ПриключенияМеханики игрыМобы
Описание
Summary
Mobs Properties Randomness lets you add/change many properties to mobs on spawn, and, with events, when other stuff happens, such as on attack, on tick or on death with data packs.
This mod requires InsaneLib
As of 5.0.0 and up the mod (and its dependencies) now work server side only, so with MPR server you can connect with a vanilla client.
The mod
The mod does nothing on its own, you have to make a data pack: click here to get started (please note this is for latest version, click here for a list of versions)
You can also find a video tutorial playlist below.
Some stuff you can do:
- Potion Effects
- Attribute Modifiers
- Equipment
- Effect immunity
- NBT
- Events (attack, kill, target change)
- Presets (for creating stuff like bosses)
Links
Getting Started
Credits
Thanks for part of the logo to Smabblis
Последние версии
Все версии →release
6.1.10.0
6.1.10.013 сент. 2026 г.463Minecraft: 1.21.1neoforge
Что нового
# 6.1.10.0
* Added `target` field to properties inside `apply_properties`
* Defaults to the event's own `target` if omitted, so existing data packs behave the same.
When set, it overrides where that specific property is applied, independently of the event's `target` and of the other properties in the same `apply_properties` list.
E.g., a single event with a 50% chance can now apply one property to `"this"` and another to `"other"` at the same time.
# 6.1.9.0
* Added `target` field to conditions
* Defaults to `"this"`, used in events to decide which entity to check the conditions against.
Before, you couldn't check for conditions on `"other"` while applying properties to `"this"`. Now you can.
E.g., you can now apply an effect to `"this"` if the attacker (`"other"`) has a certain item.
This propagates to inner conditions too, so in `apply_properties`, nested modifiers, etc. you can decide to check conditions against `"this"` or `"other"`
# 6.1.8.0
* Added `days_passed` condition
# 6.1.7.2
* Fixed `health_left` check in `damaged`/`attack` events being inverted (was triggering outside the specified range instead of inside)
* Fixed `flat_health_left` in `damaged`/`attack` events using percentage by default and flat health when enabled, instead of the other way around
* Fixed `nbt` property with `boolean` type using a random chance instead of setting a `true`/`false` value
* Fixed `potion_effect`'s stackable `amplifier`/`duration` discarding the previously stacked value when a `cap` was set, instead of summing then clamping to the cap
# 6.1.7.1
* Fixed weather condition "thunder" not working
# 6.1.7.0
* Stack traces are now hidden from errors in logs by default and can be enabled with a config option
* Basically an error should show up much cleaner in the log
# 6.1.6.1
* Fixed On Hit events not checking for conditions before applying the damage multiplier
# 6.1.6.0
* Added `remove_potion_effects` and `remove_attribute_modifiers` properties
## Technical
* Properties, Conditions etc are now registry objects, like blocks and items
# 6.1.5.2
## Technical
* Fixed events being posted too early, not working
# 6.1.5.1
## Technical
* Fixed events being posted too early, not working
# 6.1.5.0
## Technical
* Changed how Registries work
* Now requires an event to register properties, conditions, etc
# 6.1.4.1
* Fixed `play_sound` not working if played from a player
# 6.1.4.0
* Added `has_owner` condition
# 6.1.3.2
* Updated for latest InsaneLib
# 6.1.3.1
* Disabled warning message when reloading by default
# 6.1.3.0
* Added message to chat when reloading generates errors or warnings
# 6.1.2.0
* Inverted how `priority` on mobs works.
# 6.1.1.1
* Fixed biome condition not working
# 6.1.1.0-beta
* Changed some fields for Potion effects
* `hide_particles` -> `show_particles`: defaults to true now
* Added `show_icon`: defaults to true
* Fixed attribute modifiers erroring (failing to spawn the mob) if a modifier with the same id is already applied
# 6.1.0.0-alpha
BREAKING CHANGES Please read carefully
* More presets!
* PLEASE NOTE that mobs presets now live in `data/<namespace>/mobs_properties_randomness/presets/mobs/` instead of `data/<namespace>/mobs_properties_randomness/presets/`.
* This version introduces modifiers, conditions and functions presets.
These are used if you have multiple conditions, modifiers and functions that repeat, and instead you can write once and reference.
* Example, you want to apply a global difficulty scaling modifier to many attribute values, but this is repetitive
```json
[
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.max_health",
"id": "ns:bonus_health",
"amount": {
"value": 1,
"modifiers": [
{
"modifier": "difficulty",
"operation": "multiply",
"easy": 0.75,
"hard": 1.5
}
]
},
"operation": "add_multiplied_base"
},
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.movement_speed",
"id": "ns:movement_speed",
"amount": {
"value": 0.10,
"modifiers": [
{
"modifier": "difficulty",
"operation": "multiply",
"easy": 0.75,
"hard": 1.5
}
]
},
"operation": "add_multiplied_base"
}
]
```
To avoid all this redundancy, you can use a modifier preset. in `data/ns/presets/modifiers/difficulty_scaling.json`. A modifier preset can contain as many modifiers as you want.
```json
[
{ "modifier": "difficulty", "operation": "multiply", "easy": 0.75, "hard": 1.5 }
]
```
So the properties can become
```json
[
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.max_health",
"id": "ns:bonus_health",
"amount": {
"value": 1,
"modifiers": [
{ "preset": "ns:difficulty_scaling" }
]
},
"operation": "add_multiplied_base"
},
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.movement_speed",
"id": "ns:movement_speed",
"amount": {
"value": 0.10,
"modifiers": [
{ "preset": "ns:difficulty_scaling" }
]
},
"operation": "add_multiplied_base"
}
]
```
This is a quite easy example, but another real example is:
[This is something that will heavily benefit from using presets](https://github.com/Insane96/EnhancedAI/blob/febf0ebe3db34dce1a0d1e9892afb6a2bd8243e4/src/main/resources/integrated_packs/mpr_integration/data/enhancedai/mobs_properties_randomness/mobs/overworld_zombies_equipment.json).
* Fixed summoning via `/mpr` command applying presets 5 times
# 6.0.1.3
* Fixed multiple boss bars flickering
# 6.0.1.2-beta
* Update to latest InsaneLib
# 6.0.1.1-beta
* Update to latest InsaneLib
# 6.0.1.0-beta
* Added `set_component` item function
* You can set whatever data component you want on an item. The following example from the example data pack will make the target equip an iron ingot that can be eaten and used as a pickaxe. Numeric values can be replaced with #range object to generate random values.
```json
{
"property": "equipment",
"slot": "offhand",
"items": [
{
"item": "minecraft:iron_ingot",
"functions": [
{
"function": "set_component",
"components": {
"minecraft:food": {
"nutrition": {"#range": {"min": 2, "max": 6}},
"saturation": {"#range": 0.5}
},
"minecraft:tool": {
"rules": [
{
"blocks": "#mineable/pickaxe",
"speed": 6,
"correct_for_drops": true
}
]
},
"minecraft:max_damage": 453,
"minecraft:damage": 0
}
},
{
"function": "set_drop_chance",
"drop_chance": 2
}
]
}
]
}
```
# 6.0.0.0-alpha
Ported to 1.21.1
Mod support will be added back in the future. Let's see how this goes first.
I've also updated the Example Data Pack which was broken in 1.20.1 too.
The only difference between 1.20.1 and 1.21.1 are attribute modifier operations.
## Missing
* Set (Raw) NBT for items
* Scaling (pehkui is no longer needed (and seems to no longer work?) as scaling is now an attribute)
* Serene Seasons support
* Game stages (hasn't updated past 1.20.3)
release
6.1.9.0
6.1.9.05 сент. 2026 г.108Minecraft: 1.21.1neoforge
Что нового
# 6.1.9.0
* Added `target` field to conditions
* Defaults to `"this"`, used in events to decide which entity to check the conditions against.
Before, you couldn't check for conditions on `"other"` while applying properties to `"this"`. Now you can.
E.g., you can now apply an effect to `"this"` if the attacker (`"other"`) has a certain item.
This propagates to inner conditions too, so in `apply_properties`, nested modifiers, etc. you can decide to check conditions against `"this"` or `"other"`
# 6.1.8.0
* Added `days_passed` condition
# 6.1.7.2
* Fixed `health_left` check in `damaged`/`attack` events being inverted (was triggering outside the specified range instead of inside)
* Fixed `flat_health_left` in `damaged`/`attack` events using percentage by default and flat health when enabled, instead of the other way around
* Fixed `nbt` property with `boolean` type using a random chance instead of setting a `true`/`false` value
* Fixed `potion_effect`'s stackable `amplifier`/`duration` discarding the previously stacked value when a `cap` was set, instead of summing then clamping to the cap
# 6.1.7.1
* Fixed weather condition "thunder" not working
# 6.1.7.0
* Stack traces are now hidden from errors in logs by default and can be enabled with a config option
* Basically an error should show up much cleaner in the log
# 6.1.6.1
* Fixed On Hit events not checking for conditions before applying the damage multiplier
# 6.1.6.0
* Added `remove_potion_effects` and `remove_attribute_modifiers` properties
## Technical
* Properties, Conditions etc are now registry objects, like blocks and items
# 6.1.5.2
## Technical
* Fixed events being posted too early, not working
# 6.1.5.1
## Technical
* Fixed events being posted too early, not working
# 6.1.5.0
## Technical
* Changed how Registries work
* Now requires an event to register properties, conditions, etc
# 6.1.4.1
* Fixed `play_sound` not working if played from a player
# 6.1.4.0
* Added `has_owner` condition
# 6.1.3.2
* Updated for latest InsaneLib
# 6.1.3.1
* Disabled warning message when reloading by default
# 6.1.3.0
* Added message to chat when reloading generates errors or warnings
# 6.1.2.0
* Inverted how `priority` on mobs works.
# 6.1.1.1
* Fixed biome condition not working
# 6.1.1.0-beta
* Changed some fields for Potion effects
* `hide_particles` -> `show_particles`: defaults to true now
* Added `show_icon`: defaults to true
* Fixed attribute modifiers erroring (failing to spawn the mob) if a modifier with the same id is already applied
# 6.1.0.0-alpha
BREAKING CHANGES Please read carefully
* More presets!
* PLEASE NOTE that mobs presets now live in `data/<namespace>/mobs_properties_randomness/presets/mobs/` instead of `data/<namespace>/mobs_properties_randomness/presets/`.
* This version introduces modifiers, conditions and functions presets.
These are used if you have multiple conditions, modifiers and functions that repeat, and instead you can write once and reference.
* Example, you want to apply a global difficulty scaling modifier to many attribute values, but this is repetitive
```json
[
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.max_health",
"id": "ns:bonus_health",
"amount": {
"value": 1,
"modifiers": [
{
"modifier": "difficulty",
"operation": "multiply",
"easy": 0.75,
"hard": 1.5
}
]
},
"operation": "add_multiplied_base"
},
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.movement_speed",
"id": "ns:movement_speed",
"amount": {
"value": 0.10,
"modifiers": [
{
"modifier": "difficulty",
"operation": "multiply",
"easy": 0.75,
"hard": 1.5
}
]
},
"operation": "add_multiplied_base"
}
]
```
To avoid all this redundancy, you can use a modifier preset. in `data/ns/presets/modifiers/difficulty_scaling.json`. A modifier preset can contain as many modifiers as you want.
```json
[
{ "modifier": "difficulty", "operation": "multiply", "easy": 0.75, "hard": 1.5 }
]
```
So the properties can become
```json
[
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.max_health",
"id": "ns:bonus_health",
"amount": {
"value": 1,
"modifiers": [
{ "preset": "ns:difficulty_scaling" }
]
},
"operation": "add_multiplied_base"
},
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.movement_speed",
"id": "ns:movement_speed",
"amount": {
"value": 0.10,
"modifiers": [
{ "preset": "ns:difficulty_scaling" }
]
},
"operation": "add_multiplied_base"
}
]
```
This is a quite easy example, but another real example is:
[This is something that will heavily benefit from using presets](https://github.com/Insane96/EnhancedAI/blob/febf0ebe3db34dce1a0d1e9892afb6a2bd8243e4/src/main/resources/integrated_packs/mpr_integration/data/enhancedai/mobs_properties_randomness/mobs/overworld_zombies_equipment.json).
* Fixed summoning via `/mpr` command applying presets 5 times
# 6.0.1.3
* Fixed multiple boss bars flickering
# 6.0.1.2-beta
* Update to latest InsaneLib
# 6.0.1.1-beta
* Update to latest InsaneLib
# 6.0.1.0-beta
* Added `set_component` item function
* You can set whatever data component you want on an item. The following example from the example data pack will make the target equip an iron ingot that can be eaten and used as a pickaxe. Numeric values can be replaced with #range object to generate random values.
```json
{
"property": "equipment",
"slot": "offhand",
"items": [
{
"item": "minecraft:iron_ingot",
"functions": [
{
"function": "set_component",
"components": {
"minecraft:food": {
"nutrition": {"#range": {"min": 2, "max": 6}},
"saturation": {"#range": 0.5}
},
"minecraft:tool": {
"rules": [
{
"blocks": "#mineable/pickaxe",
"speed": 6,
"correct_for_drops": true
}
]
},
"minecraft:max_damage": 453,
"minecraft:damage": 0
}
},
{
"function": "set_drop_chance",
"drop_chance": 2
}
]
}
]
}
```
# 6.0.0.0-alpha
Ported to 1.21.1
Mod support will be added back in the future. Let's see how this goes first.
I've also updated the Example Data Pack which was broken in 1.20.1 too.
The only difference between 1.20.1 and 1.21.1 are attribute modifier operations.
## Missing
* Set (Raw) NBT for items
* Scaling (pehkui is no longer needed (and seems to no longer work?) as scaling is now an attribute)
* Serene Seasons support
* Game stages (hasn't updated past 1.20.3)
release
6.1.8.0
6.1.8.05 сент. 2026 г.23Minecraft: 1.21.1neoforge
Что нового
# 6.1.8.0
* Added `days_passed` condition
# 6.1.7.2
* Fixed `health_left` check in `damaged`/`attack` events being inverted (was triggering outside the specified range instead of inside)
* Fixed `flat_health_left` in `damaged`/`attack` events using percentage by default and flat health when enabled, instead of the other way around
* Fixed `nbt` property with `boolean` type using a random chance instead of setting a `true`/`false` value
* Fixed `potion_effect`'s stackable `amplifier`/`duration` discarding the previously stacked value when a `cap` was set, instead of summing then clamping to the cap
# 6.1.7.1
* Fixed weather condition "thunder" not working
# 6.1.7.0
* Stack traces are now hidden from errors in logs by default and can be enabled with a config option
* Basically an error should show up much cleaner in the log
# 6.1.6.1
* Fixed On Hit events not checking for conditions before applying the damage multiplier
# 6.1.6.0
* Added `remove_potion_effects` and `remove_attribute_modifiers` properties
## Technical
* Properties, Conditions etc are now registry objects, like blocks and items
# 6.1.5.2
## Technical
* Fixed events being posted too early, not working
# 6.1.5.1
## Technical
* Fixed events being posted too early, not working
# 6.1.5.0
## Technical
* Changed how Registries work
* Now requires an event to register properties, conditions, etc
# 6.1.4.1
* Fixed `play_sound` not working if played from a player
# 6.1.4.0
* Added `has_owner` condition
# 6.1.3.2
* Updated for latest InsaneLib
# 6.1.3.1
* Disabled warning message when reloading by default
# 6.1.3.0
* Added message to chat when reloading generates errors or warnings
# 6.1.2.0
* Inverted how `priority` on mobs works.
# 6.1.1.1
* Fixed biome condition not working
# 6.1.1.0-beta
* Changed some fields for Potion effects
* `hide_particles` -> `show_particles`: defaults to true now
* Added `show_icon`: defaults to true
* Fixed attribute modifiers erroring (failing to spawn the mob) if a modifier with the same id is already applied
# 6.1.0.0-alpha
BREAKING CHANGES Please read carefully
* More presets!
* PLEASE NOTE that mobs presets now live in `data/<namespace>/mobs_properties_randomness/presets/mobs/` instead of `data/<namespace>/mobs_properties_randomness/presets/`.
* This version introduces modifiers, conditions and functions presets.
These are used if you have multiple conditions, modifiers and functions that repeat, and instead you can write once and reference.
* Example, you want to apply a global difficulty scaling modifier to many attribute values, but this is repetitive
```json
[
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.max_health",
"id": "ns:bonus_health",
"amount": {
"value": 1,
"modifiers": [
{
"modifier": "difficulty",
"operation": "multiply",
"easy": 0.75,
"hard": 1.5
}
]
},
"operation": "add_multiplied_base"
},
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.movement_speed",
"id": "ns:movement_speed",
"amount": {
"value": 0.10,
"modifiers": [
{
"modifier": "difficulty",
"operation": "multiply",
"easy": 0.75,
"hard": 1.5
}
]
},
"operation": "add_multiplied_base"
}
]
```
To avoid all this redundancy, you can use a modifier preset. in `data/ns/presets/modifiers/difficulty_scaling.json`. A modifier preset can contain as many modifiers as you want.
```json
[
{ "modifier": "difficulty", "operation": "multiply", "easy": 0.75, "hard": 1.5 }
]
```
So the properties can become
```json
[
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.max_health",
"id": "ns:bonus_health",
"amount": {
"value": 1,
"modifiers": [
{ "preset": "ns:difficulty_scaling" }
]
},
"operation": "add_multiplied_base"
},
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.movement_speed",
"id": "ns:movement_speed",
"amount": {
"value": 0.10,
"modifiers": [
{ "preset": "ns:difficulty_scaling" }
]
},
"operation": "add_multiplied_base"
}
]
```
This is a quite easy example, but another real example is:
[This is something that will heavily benefit from using presets](https://github.com/Insane96/EnhancedAI/blob/febf0ebe3db34dce1a0d1e9892afb6a2bd8243e4/src/main/resources/integrated_packs/mpr_integration/data/enhancedai/mobs_properties_randomness/mobs/overworld_zombies_equipment.json).
* Fixed summoning via `/mpr` command applying presets 5 times
# 6.0.1.3
* Fixed multiple boss bars flickering
# 6.0.1.2-beta
* Update to latest InsaneLib
# 6.0.1.1-beta
* Update to latest InsaneLib
# 6.0.1.0-beta
* Added `set_component` item function
* You can set whatever data component you want on an item. The following example from the example data pack will make the target equip an iron ingot that can be eaten and used as a pickaxe. Numeric values can be replaced with #range object to generate random values.
```json
{
"property": "equipment",
"slot": "offhand",
"items": [
{
"item": "minecraft:iron_ingot",
"functions": [
{
"function": "set_component",
"components": {
"minecraft:food": {
"nutrition": {"#range": {"min": 2, "max": 6}},
"saturation": {"#range": 0.5}
},
"minecraft:tool": {
"rules": [
{
"blocks": "#mineable/pickaxe",
"speed": 6,
"correct_for_drops": true
}
]
},
"minecraft:max_damage": 453,
"minecraft:damage": 0
}
},
{
"function": "set_drop_chance",
"drop_chance": 2
}
]
}
]
}
```
# 6.0.0.0-alpha
Ported to 1.21.1
Mod support will be added back in the future. Let's see how this goes first.
I've also updated the Example Data Pack which was broken in 1.20.1 too.
The only difference between 1.20.1 and 1.21.1 are attribute modifier operations.
## Missing
* Set (Raw) NBT for items
* Scaling (pehkui is no longer needed (and seems to no longer work?) as scaling is now an attribute)
* Serene Seasons support
* Game stages (hasn't updated past 1.20.3)
release
6.1.7.2
6.1.7.24 сент. 2026 г.25Minecraft: 1.21.1neoforge
Что нового
# 6.1.7.2
* Fixed `health_left` check in `damaged`/`attack` events being inverted (was triggering outside the specified range instead of inside)
* Fixed `flat_health_left` in `damaged`/`attack` events using percentage by default and flat health when enabled, instead of the other way around
* Fixed `nbt` property with `boolean` type using a random chance instead of setting a `true`/`false` value
* Fixed `potion_effect`'s stackable `amplifier`/`duration` discarding the previously stacked value when a `cap` was set, instead of summing then clamping to the cap
# 6.1.7.1
* Fixed weather condition "thunder" not working
# 6.1.7.0
* Stack traces are now hidden from errors in logs by default and can be enabled with a config option
* Basically an error should show up much cleaner in the log
# 6.1.6.1
* Fixed On Hit events not checking for conditions before applying the damage multiplier
# 6.1.6.0
* Added `remove_potion_effects` and `remove_attribute_modifiers` properties
## Technical
* Properties, Conditions etc are now registry objects, like blocks and items
# 6.1.5.2
## Technical
* Fixed events being posted too early, not working
# 6.1.5.1
## Technical
* Fixed events being posted too early, not working
# 6.1.5.0
## Technical
* Changed how Registries work
* Now requires an event to register properties, conditions, etc
# 6.1.4.1
* Fixed `play_sound` not working if played from a player
# 6.1.4.0
* Added `has_owner` condition
# 6.1.3.2
* Updated for latest InsaneLib
# 6.1.3.1
* Disabled warning message when reloading by default
# 6.1.3.0
* Added message to chat when reloading generates errors or warnings
# 6.1.2.0
* Inverted how `priority` on mobs works.
# 6.1.1.1
* Fixed biome condition not working
# 6.1.1.0-beta
* Changed some fields for Potion effects
* `hide_particles` -> `show_particles`: defaults to true now
* Added `show_icon`: defaults to true
* Fixed attribute modifiers erroring (failing to spawn the mob) if a modifier with the same id is already applied
# 6.1.0.0-alpha
BREAKING CHANGES Please read carefully
* More presets!
* PLEASE NOTE that mobs presets now live in `data/<namespace>/mobs_properties_randomness/presets/mobs/` instead of `data/<namespace>/mobs_properties_randomness/presets/`.
* This version introduces modifiers, conditions and functions presets.
These are used if you have multiple conditions, modifiers and functions that repeat, and instead you can write once and reference.
* Example, you want to apply a global difficulty scaling modifier to many attribute values, but this is repetitive
```json
[
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.max_health",
"id": "ns:bonus_health",
"amount": {
"value": 1,
"modifiers": [
{
"modifier": "difficulty",
"operation": "multiply",
"easy": 0.75,
"hard": 1.5
}
]
},
"operation": "add_multiplied_base"
},
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.movement_speed",
"id": "ns:movement_speed",
"amount": {
"value": 0.10,
"modifiers": [
{
"modifier": "difficulty",
"operation": "multiply",
"easy": 0.75,
"hard": 1.5
}
]
},
"operation": "add_multiplied_base"
}
]
```
To avoid all this redundancy, you can use a modifier preset. in `data/ns/presets/modifiers/difficulty_scaling.json`. A modifier preset can contain as many modifiers as you want.
```json
[
{ "modifier": "difficulty", "operation": "multiply", "easy": 0.75, "hard": 1.5 }
]
```
So the properties can become
```json
[
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.max_health",
"id": "ns:bonus_health",
"amount": {
"value": 1,
"modifiers": [
{ "preset": "ns:difficulty_scaling" }
]
},
"operation": "add_multiplied_base"
},
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.movement_speed",
"id": "ns:movement_speed",
"amount": {
"value": 0.10,
"modifiers": [
{ "preset": "ns:difficulty_scaling" }
]
},
"operation": "add_multiplied_base"
}
]
```
This is a quite easy example, but another real example is:
[This is something that will heavily benefit from using presets](https://github.com/Insane96/EnhancedAI/blob/febf0ebe3db34dce1a0d1e9892afb6a2bd8243e4/src/main/resources/integrated_packs/mpr_integration/data/enhancedai/mobs_properties_randomness/mobs/overworld_zombies_equipment.json).
* Fixed summoning via `/mpr` command applying presets 5 times
# 6.0.1.3
* Fixed multiple boss bars flickering
# 6.0.1.2-beta
* Update to latest InsaneLib
# 6.0.1.1-beta
* Update to latest InsaneLib
# 6.0.1.0-beta
* Added `set_component` item function
* You can set whatever data component you want on an item. The following example from the example data pack will make the target equip an iron ingot that can be eaten and used as a pickaxe. Numeric values can be replaced with #range object to generate random values.
```json
{
"property": "equipment",
"slot": "offhand",
"items": [
{
"item": "minecraft:iron_ingot",
"functions": [
{
"function": "set_component",
"components": {
"minecraft:food": {
"nutrition": {"#range": {"min": 2, "max": 6}},
"saturation": {"#range": 0.5}
},
"minecraft:tool": {
"rules": [
{
"blocks": "#mineable/pickaxe",
"speed": 6,
"correct_for_drops": true
}
]
},
"minecraft:max_damage": 453,
"minecraft:damage": 0
}
},
{
"function": "set_drop_chance",
"drop_chance": 2
}
]
}
]
}
```
# 6.0.0.0-alpha
Ported to 1.21.1
Mod support will be added back in the future. Let's see how this goes first.
I've also updated the Example Data Pack which was broken in 1.20.1 too.
The only difference between 1.20.1 and 1.21.1 are attribute modifier operations.
## Missing
* Set (Raw) NBT for items
* Scaling (pehkui is no longer needed (and seems to no longer work?) as scaling is now an attribute)
* Serene Seasons support
* Game stages (hasn't updated past 1.20.3)
release
6.1.7.1
6.1.7.123 авг. 2026 г.210Minecraft: 1.21.1neoforge
Что нового
# 6.1.7.1
* Fixed weather condition "thunder" not working
# 6.1.7.0
* Stack traces are now hidden from errors in logs by default and can be enabled with a config option
* Basically an error should show up much cleaner in the log
# 6.1.6.1
* Fixed On Hit events not checking for conditions before applying the damage multiplier
# 6.1.6.0
* Added `remove_potion_effects` and `remove_attribute_modifiers` properties
## Technical
* Properties, Conditions etc are now registry objects, like blocks and items
# 6.1.5.2
## Technical
* Fixed events being posted too early, not working
# 6.1.5.1
## Technical
* Fixed events being posted too early, not working
# 6.1.5.0
## Technical
* Changed how Registries work
* Now requires an event to register properties, conditions, etc
# 6.1.4.1
* Fixed `play_sound` not working if played from a player
# 6.1.4.0
* Added `has_owner` condition
# 6.1.3.2
* Updated for latest InsaneLib
# 6.1.3.1
* Disabled warning message when reloading by default
# 6.1.3.0
* Added message to chat when reloading generates errors or warnings
# 6.1.2.0
* Inverted how `priority` on mobs works.
# 6.1.1.1
* Fixed biome condition not working
# 6.1.1.0-beta
* Changed some fields for Potion effects
* `hide_particles` -> `show_particles`: defaults to true now
* Added `show_icon`: defaults to true
* Fixed attribute modifiers erroring (failing to spawn the mob) if a modifier with the same id is already applied
# 6.1.0.0-alpha
BREAKING CHANGES Please read carefully
* More presets!
* PLEASE NOTE that mobs presets now live in `data/<namespace>/mobs_properties_randomness/presets/mobs/` instead of `data/<namespace>/mobs_properties_randomness/presets/`.
* This version introduces modifiers, conditions and functions presets.
These are used if you have multiple conditions, modifiers and functions that repeat, and instead you can write once and reference.
* Example, you want to apply a global difficulty scaling modifier to many attribute values, but this is repetitive
```json
[
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.max_health",
"id": "ns:bonus_health",
"amount": {
"value": 1,
"modifiers": [
{
"modifier": "difficulty",
"operation": "multiply",
"easy": 0.75,
"hard": 1.5
}
]
},
"operation": "add_multiplied_base"
},
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.movement_speed",
"id": "ns:movement_speed",
"amount": {
"value": 0.10,
"modifiers": [
{
"modifier": "difficulty",
"operation": "multiply",
"easy": 0.75,
"hard": 1.5
}
]
},
"operation": "add_multiplied_base"
}
]
```
To avoid all this redundancy, you can use a modifier preset. in `data/ns/presets/modifiers/difficulty_scaling.json`. A modifier preset can contain as many modifiers as you want.
```json
[
{ "modifier": "difficulty", "operation": "multiply", "easy": 0.75, "hard": 1.5 }
]
```
So the properties can become
```json
[
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.max_health",
"id": "ns:bonus_health",
"amount": {
"value": 1,
"modifiers": [
{ "preset": "ns:difficulty_scaling" }
]
},
"operation": "add_multiplied_base"
},
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.movement_speed",
"id": "ns:movement_speed",
"amount": {
"value": 0.10,
"modifiers": [
{ "preset": "ns:difficulty_scaling" }
]
},
"operation": "add_multiplied_base"
}
]
```
This is a quite easy example, but another real example is:
[This is something that will heavily benefit from using presets](https://github.com/Insane96/EnhancedAI/blob/febf0ebe3db34dce1a0d1e9892afb6a2bd8243e4/src/main/resources/integrated_packs/mpr_integration/data/enhancedai/mobs_properties_randomness/mobs/overworld_zombies_equipment.json).
* Fixed summoning via `/mpr` command applying presets 5 times
# 6.0.1.3
* Fixed multiple boss bars flickering
# 6.0.1.2-beta
* Update to latest InsaneLib
# 6.0.1.1-beta
* Update to latest InsaneLib
# 6.0.1.0-beta
* Added `set_component` item function
* You can set whatever data component you want on an item. The following example from the example data pack will make the target equip an iron ingot that can be eaten and used as a pickaxe. Numeric values can be replaced with #range object to generate random values.
```json
{
"property": "equipment",
"slot": "offhand",
"items": [
{
"item": "minecraft:iron_ingot",
"functions": [
{
"function": "set_component",
"components": {
"minecraft:food": {
"nutrition": {"#range": {"min": 2, "max": 6}},
"saturation": {"#range": 0.5}
},
"minecraft:tool": {
"rules": [
{
"blocks": "#mineable/pickaxe",
"speed": 6,
"correct_for_drops": true
}
]
},
"minecraft:max_damage": 453,
"minecraft:damage": 0
}
},
{
"function": "set_drop_chance",
"drop_chance": 2
}
]
}
]
}
```
# 6.0.0.0-alpha
Ported to 1.21.1
Mod support will be added back in the future. Let's see how this goes first.
I've also updated the Example Data Pack which was broken in 1.20.1 too.
The only difference between 1.20.1 and 1.21.1 are attribute modifier operations.
## Missing
* Set (Raw) NBT for items
* Scaling (pehkui is no longer needed (and seems to no longer work?) as scaling is now an attribute)
* Serene Seasons support
* Game stages (hasn't updated past 1.20.3)
release
6.1.7.0
6.1.7.022 авг. 2026 г.28Minecraft: 1.21.1neoforge
Что нового
# 6.1.7.0
* Stack traces are now hidden from errors in logs by default and can be enabled with a data pack
* Basically an error should show up much cleaner in the log
# 6.1.6.1
* Fixed On Hit events not checking for conditions before applying the damage multiplier
# 6.1.6.0
* Added `remove_potion_effects` and `remove_attribute_modifiers` properties
## Technical
* Properties, Conditions etc are now registry objects, like blocks and items
# 6.1.5.2
## Technical
* Fixed events being posted too early, not working
# 6.1.5.1
## Technical
* Fixed events being posted too early, not working
# 6.1.5.0
## Technical
* Changed how Registries work
* Now requires an event to register properties, conditions, etc
# 6.1.4.1
* Fixed `play_sound` not working if played from a player
# 6.1.4.0
* Added `has_owner` condition
# 6.1.3.2
* Updated for latest InsaneLib
# 6.1.3.1
* Disabled warning message when reloading by default
# 6.1.3.0
* Added message to chat when reloading generates errors or warnings
# 6.1.2.0
* Inverted how `priority` on mobs works.
# 6.1.1.1
* Fixed biome condition not working
# 6.1.1.0-beta
* Changed some fields for Potion effects
* `hide_particles` -> `show_particles`: defaults to true now
* Added `show_icon`: defaults to true
* Fixed attribute modifiers erroring (failing to spawn the mob) if a modifier with the same id is already applied
# 6.1.0.0-alpha
BREAKING CHANGES Please read carefully
* More presets!
* PLEASE NOTE that mobs presets now live in `data/<namespace>/mobs_properties_randomness/presets/mobs/` instead of `data/<namespace>/mobs_properties_randomness/presets/`.
* This version introduces modifiers, conditions and functions presets.
These are used if you have multiple conditions, modifiers and functions that repeat, and instead you can write once and reference.
* Example, you want to apply a global difficulty scaling modifier to many attribute values, but this is repetitive
```json
[
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.max_health",
"id": "ns:bonus_health",
"amount": {
"value": 1,
"modifiers": [
{
"modifier": "difficulty",
"operation": "multiply",
"easy": 0.75,
"hard": 1.5
}
]
},
"operation": "add_multiplied_base"
},
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.movement_speed",
"id": "ns:movement_speed",
"amount": {
"value": 0.10,
"modifiers": [
{
"modifier": "difficulty",
"operation": "multiply",
"easy": 0.75,
"hard": 1.5
}
]
},
"operation": "add_multiplied_base"
}
]
```
To avoid all this redundancy, you can use a modifier preset. in `data/ns/presets/modifiers/difficulty_scaling.json`. A modifier preset can contain as many modifiers as you want.
```json
[
{ "modifier": "difficulty", "operation": "multiply", "easy": 0.75, "hard": 1.5 }
]
```
So the properties can become
```json
[
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.max_health",
"id": "ns:bonus_health",
"amount": {
"value": 1,
"modifiers": [
{ "preset": "ns:difficulty_scaling" }
]
},
"operation": "add_multiplied_base"
},
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.movement_speed",
"id": "ns:movement_speed",
"amount": {
"value": 0.10,
"modifiers": [
{ "preset": "ns:difficulty_scaling" }
]
},
"operation": "add_multiplied_base"
}
]
```
This is a quite easy example, but another real example is:
[This is something that will heavily benefit from using presets](https://github.com/Insane96/EnhancedAI/blob/febf0ebe3db34dce1a0d1e9892afb6a2bd8243e4/src/main/resources/integrated_packs/mpr_integration/data/enhancedai/mobs_properties_randomness/mobs/overworld_zombies_equipment.json).
* Fixed summoning via `/mpr` command applying presets 5 times
# 6.0.1.3
* Fixed multiple boss bars flickering
# 6.0.1.2-beta
* Update to latest InsaneLib
# 6.0.1.1-beta
* Update to latest InsaneLib
# 6.0.1.0-beta
* Added `set_component` item function
* You can set whatever data component you want on an item. The following example from the example data pack will make the target equip an iron ingot that can be eaten and used as a pickaxe. Numeric values can be replaced with #range object to generate random values.
```json
{
"property": "equipment",
"slot": "offhand",
"items": [
{
"item": "minecraft:iron_ingot",
"functions": [
{
"function": "set_component",
"components": {
"minecraft:food": {
"nutrition": {"#range": {"min": 2, "max": 6}},
"saturation": {"#range": 0.5}
},
"minecraft:tool": {
"rules": [
{
"blocks": "#mineable/pickaxe",
"speed": 6,
"correct_for_drops": true
}
]
},
"minecraft:max_damage": 453,
"minecraft:damage": 0
}
},
{
"function": "set_drop_chance",
"drop_chance": 2
}
]
}
]
}
```
# 6.0.0.0-alpha
Ported to 1.21.1
Mod support will be added back in the future. Let's see how this goes first.
I've also updated the Example Data Pack which was broken in 1.20.1 too.
The only difference between 1.20.1 and 1.21.1 are attribute modifier operations.
## Missing
* Set (Raw) NBT for items
* Scaling (pehkui is no longer needed (and seems to no longer work?) as scaling is now an attribute)
* Serene Seasons support
* Game stages (hasn't updated past 1.20.3)
release
6.1.6.1
6.1.6.11 авг. 2026 г.155Minecraft: 1.21.1neoforge
Что нового
# 6.1.6.1
* Fixed On Hit events not checking for conditions before applying the damage multiplier
# 6.1.6.0
* Added `remove_potion_effects` and `remove_attribute_modifiers` properties
## Technical
* Properties, Conditions etc are now registry objects, like blocks and items
# 6.1.5.2
## Technical
* Fixed events being posted too early, not working
# 6.1.5.1
## Technical
* Fixed events being posted too early, not working
# 6.1.5.0
## Technical
* Changed how Registries work
* Now requires an event to register properties, conditions, etc
# 6.1.4.1
* Fixed `play_sound` not working if played from a player
# 6.1.4.0
* Added `has_owner` condition
# 6.1.3.2
* Updated for latest InsaneLib
# 6.1.3.1
* Disabled warning message when reloading by default
# 6.1.3.0
* Added message to chat when reloading generates errors or warnings
# 6.1.2.0
* Inverted how `priority` on mobs works.
# 6.1.1.1
* Fixed biome condition not working
# 6.1.1.0-beta
* Changed some fields for Potion effects
* `hide_particles` -> `show_particles`: defaults to true now
* Added `show_icon`: defaults to true
* Fixed attribute modifiers erroring (failing to spawn the mob) if a modifier with the same id is already applied
# 6.1.0.0-alpha
BREAKING CHANGES Please read carefully
* More presets!
* PLEASE NOTE that mobs presets now live in `data/<namespace>/mobs_properties_randomness/presets/mobs/` instead of `data/<namespace>/mobs_properties_randomness/presets/`.
* This version introduces modifiers, conditions and functions presets.
These are used if you have multiple conditions, modifiers and functions that repeat, and instead you can write once and reference.
* Example, you want to apply a global difficulty scaling modifier to many attribute values, but this is repetitive
```json
[
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.max_health",
"id": "ns:bonus_health",
"amount": {
"value": 1,
"modifiers": [
{
"modifier": "difficulty",
"operation": "multiply",
"easy": 0.75,
"hard": 1.5
}
]
},
"operation": "add_multiplied_base"
},
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.movement_speed",
"id": "ns:movement_speed",
"amount": {
"value": 0.10,
"modifiers": [
{
"modifier": "difficulty",
"operation": "multiply",
"easy": 0.75,
"hard": 1.5
}
]
},
"operation": "add_multiplied_base"
}
]
```
To avoid all this redundancy, you can use a modifier preset. in `data/ns/presets/modifiers/difficulty_scaling.json`. A modifier preset can contain as many modifiers as you want.
```json
[
{ "modifier": "difficulty", "operation": "multiply", "easy": 0.75, "hard": 1.5 }
]
```
So the properties can become
```json
[
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.max_health",
"id": "ns:bonus_health",
"amount": {
"value": 1,
"modifiers": [
{ "preset": "ns:difficulty_scaling" }
]
},
"operation": "add_multiplied_base"
},
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.movement_speed",
"id": "ns:movement_speed",
"amount": {
"value": 0.10,
"modifiers": [
{ "preset": "ns:difficulty_scaling" }
]
},
"operation": "add_multiplied_base"
}
]
```
This is a quite easy example, but another real example is:
[This is something that will heavily benefit from using presets](https://github.com/Insane96/EnhancedAI/blob/febf0ebe3db34dce1a0d1e9892afb6a2bd8243e4/src/main/resources/integrated_packs/mpr_integration/data/enhancedai/mobs_properties_randomness/mobs/overworld_zombies_equipment.json).
* Fixed summoning via `/mpr` command applying presets 5 times
# 6.0.1.3
* Fixed multiple boss bars flickering
# 6.0.1.2-beta
* Update to latest InsaneLib
# 6.0.1.1-beta
* Update to latest InsaneLib
# 6.0.1.0-beta
* Added `set_component` item function
* You can set whatever data component you want on an item. The following example from the example data pack will make the target equip an iron ingot that can be eaten and used as a pickaxe. Numeric values can be replaced with #range object to generate random values.
```json
{
"property": "equipment",
"slot": "offhand",
"items": [
{
"item": "minecraft:iron_ingot",
"functions": [
{
"function": "set_component",
"components": {
"minecraft:food": {
"nutrition": {"#range": {"min": 2, "max": 6}},
"saturation": {"#range": 0.5}
},
"minecraft:tool": {
"rules": [
{
"blocks": "#mineable/pickaxe",
"speed": 6,
"correct_for_drops": true
}
]
},
"minecraft:max_damage": 453,
"minecraft:damage": 0
}
},
{
"function": "set_drop_chance",
"drop_chance": 2
}
]
}
]
}
```
# 6.0.0.0-alpha
Ported to 1.21.1
Mod support will be added back in the future. Let's see how this goes first.
I've also updated the Example Data Pack which was broken in 1.20.1 too.
The only difference between 1.20.1 and 1.21.1 are attribute modifier operations.
## Missing
* Set (Raw) NBT for items
* Scaling (pehkui is no longer needed (and seems to no longer work?) as scaling is now an attribute)
* Serene Seasons support
* Game stages (hasn't updated past 1.20.3)
release
6.1.6.0
6.1.6.031 июл. 2026 г.55Minecraft: 1.21.1neoforge
Что нового
# 6.1.6.0
* Added `remove_potion_effects` and `remove_attribute_modifiers` properties
## Technical
* Properties, Conditions etc are now registry objects, like blocks and items
# 6.1.5.2
## Technical
* Fixed events being posted too early, not working
# 6.1.5.1
## Technical
* Fixed events being posted too early, not working
# 6.1.5.0
## Technical
* Changed how Registries work
* Now requires an event to register properties, conditions, etc
# 6.1.4.1
* Fixed `play_sound` not working if played from a player
# 6.1.4.0
* Added `has_owner` condition
# 6.1.3.2
* Updated for latest InsaneLib
# 6.1.3.1
* Disabled warning message when reloading by default
# 6.1.3.0
* Added message to chat when reloading generates errors or warnings
# 6.1.2.0
* Inverted how `priority` on mobs works.
# 6.1.1.1
* Fixed biome condition not working
# 6.1.1.0-beta
* Changed some fields for Potion effects
* `hide_particles` -> `show_particles`: defaults to true now
* Added `show_icon`: defaults to true
* Fixed attribute modifiers erroring (failing to spawn the mob) if a modifier with the same id is already applied
# 6.1.0.0-alpha
BREAKING CHANGES Please read carefully
* More presets!
* PLEASE NOTE that mobs presets now live in `data/<namespace>/mobs_properties_randomness/presets/mobs/` instead of `data/<namespace>/mobs_properties_randomness/presets/`.
* This version introduces modifiers, conditions and functions presets.
These are used if you have multiple conditions, modifiers and functions that repeat, and instead you can write once and reference.
* Example, you want to apply a global difficulty scaling modifier to many attribute values, but this is repetitive
```json
[
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.max_health",
"id": "ns:bonus_health",
"amount": {
"value": 1,
"modifiers": [
{
"modifier": "difficulty",
"operation": "multiply",
"easy": 0.75,
"hard": 1.5
}
]
},
"operation": "add_multiplied_base"
},
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.movement_speed",
"id": "ns:movement_speed",
"amount": {
"value": 0.10,
"modifiers": [
{
"modifier": "difficulty",
"operation": "multiply",
"easy": 0.75,
"hard": 1.5
}
]
},
"operation": "add_multiplied_base"
}
]
```
To avoid all this redundancy, you can use a modifier preset. in `data/ns/presets/modifiers/difficulty_scaling.json`. A modifier preset can contain as many modifiers as you want.
```json
[
{ "modifier": "difficulty", "operation": "multiply", "easy": 0.75, "hard": 1.5 }
]
```
So the properties can become
```json
[
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.max_health",
"id": "ns:bonus_health",
"amount": {
"value": 1,
"modifiers": [
{ "preset": "ns:difficulty_scaling" }
]
},
"operation": "add_multiplied_base"
},
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.movement_speed",
"id": "ns:movement_speed",
"amount": {
"value": 0.10,
"modifiers": [
{ "preset": "ns:difficulty_scaling" }
]
},
"operation": "add_multiplied_base"
}
]
```
This is a quite easy example, but another real example is:
[This is something that will heavily benefit from using presets](https://github.com/Insane96/EnhancedAI/blob/febf0ebe3db34dce1a0d1e9892afb6a2bd8243e4/src/main/resources/integrated_packs/mpr_integration/data/enhancedai/mobs_properties_randomness/mobs/overworld_zombies_equipment.json).
* Fixed summoning via `/mpr` command applying presets 5 times
# 6.0.1.3
* Fixed multiple boss bars flickering
# 6.0.1.2-beta
* Update to latest InsaneLib
# 6.0.1.1-beta
* Update to latest InsaneLib
# 6.0.1.0-beta
* Added `set_component` item function
* You can set whatever data component you want on an item. The following example from the example data pack will make the target equip an iron ingot that can be eaten and used as a pickaxe. Numeric values can be replaced with #range object to generate random values.
```json
{
"property": "equipment",
"slot": "offhand",
"items": [
{
"item": "minecraft:iron_ingot",
"functions": [
{
"function": "set_component",
"components": {
"minecraft:food": {
"nutrition": {"#range": {"min": 2, "max": 6}},
"saturation": {"#range": 0.5}
},
"minecraft:tool": {
"rules": [
{
"blocks": "#mineable/pickaxe",
"speed": 6,
"correct_for_drops": true
}
]
},
"minecraft:max_damage": 453,
"minecraft:damage": 0
}
},
{
"function": "set_drop_chance",
"drop_chance": 2
}
]
}
]
}
```
# 6.0.0.0-alpha
Ported to 1.21.1
Mod support will be added back in the future. Let's see how this goes first.
I've also updated the Example Data Pack which was broken in 1.20.1 too.
The only difference between 1.20.1 and 1.21.1 are attribute modifier operations.
## Missing
* Set (Raw) NBT for items
* Scaling (pehkui is no longer needed (and seems to no longer work?) as scaling is now an attribute)
* Serene Seasons support
* Game stages (hasn't updated past 1.20.3)
release
6.1.5.2
6.1.5.231 июл. 2026 г.9Minecraft: 1.21.1neoforge
Что нового
# 6.1.5.2
## Technical
* Fixed events being posted too early, not working
# 6.1.5.1
## Technical
* Fixed events being posted too early, not working
# 6.1.5.0
## Technical
* Changed how Registries work
* Now requires an event to register properties, conditions, etc
# 6.1.4.1
* Fixed `play_sound` not working if played from a player
# 6.1.4.0
* Added `has_owner` condition
# 6.1.3.2
* Updated for latest InsaneLib
# 6.1.3.1
* Disabled warning message when reloading by default
# 6.1.3.0
* Added message to chat when reloading generates errors or warnings
# 6.1.2.0
* Inverted how `priority` on mobs works.
# 6.1.1.1
* Fixed biome condition not working
# 6.1.1.0-beta
* Changed some fields for Potion effects
* `hide_particles` -> `show_particles`: defaults to true now
* Added `show_icon`: defaults to true
* Fixed attribute modifiers erroring (failing to spawn the mob) if a modifier with the same id is already applied
# 6.1.0.0-alpha
BREAKING CHANGES Please read carefully
* More presets!
* PLEASE NOTE that mobs presets now live in `data/<namespace>/mobs_properties_randomness/presets/mobs/` instead of `data/<namespace>/mobs_properties_randomness/presets/`.
* This version introduces modifiers, conditions and functions presets.
These are used if you have multiple conditions, modifiers and functions that repeat, and instead you can write once and reference.
* Example, you want to apply a global difficulty scaling modifier to many attribute values, but this is repetitive
```json
[
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.max_health",
"id": "ns:bonus_health",
"amount": {
"value": 1,
"modifiers": [
{
"modifier": "difficulty",
"operation": "multiply",
"easy": 0.75,
"hard": 1.5
}
]
},
"operation": "add_multiplied_base"
},
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.movement_speed",
"id": "ns:movement_speed",
"amount": {
"value": 0.10,
"modifiers": [
{
"modifier": "difficulty",
"operation": "multiply",
"easy": 0.75,
"hard": 1.5
}
]
},
"operation": "add_multiplied_base"
}
]
```
To avoid all this redundancy, you can use a modifier preset. in `data/ns/presets/modifiers/difficulty_scaling.json`. A modifier preset can contain as many modifiers as you want.
```json
[
{ "modifier": "difficulty", "operation": "multiply", "easy": 0.75, "hard": 1.5 }
]
```
So the properties can become
```json
[
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.max_health",
"id": "ns:bonus_health",
"amount": {
"value": 1,
"modifiers": [
{ "preset": "ns:difficulty_scaling" }
]
},
"operation": "add_multiplied_base"
},
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.movement_speed",
"id": "ns:movement_speed",
"amount": {
"value": 0.10,
"modifiers": [
{ "preset": "ns:difficulty_scaling" }
]
},
"operation": "add_multiplied_base"
}
]
```
This is a quite easy example, but another real example is:
[This is something that will heavily benefit from using presets](https://github.com/Insane96/EnhancedAI/blob/febf0ebe3db34dce1a0d1e9892afb6a2bd8243e4/src/main/resources/integrated_packs/mpr_integration/data/enhancedai/mobs_properties_randomness/mobs/overworld_zombies_equipment.json).
* Fixed summoning via `/mpr` command applying presets 5 times
# 6.0.1.3
* Fixed multiple boss bars flickering
# 6.0.1.2-beta
* Update to latest InsaneLib
# 6.0.1.1-beta
* Update to latest InsaneLib
# 6.0.1.0-beta
* Added `set_component` item function
* You can set whatever data component you want on an item. The following example from the example data pack will make the target equip an iron ingot that can be eaten and used as a pickaxe. Numeric values can be replaced with #range object to generate random values.
```json
{
"property": "equipment",
"slot": "offhand",
"items": [
{
"item": "minecraft:iron_ingot",
"functions": [
{
"function": "set_component",
"components": {
"minecraft:food": {
"nutrition": {"#range": {"min": 2, "max": 6}},
"saturation": {"#range": 0.5}
},
"minecraft:tool": {
"rules": [
{
"blocks": "#mineable/pickaxe",
"speed": 6,
"correct_for_drops": true
}
]
},
"minecraft:max_damage": 453,
"minecraft:damage": 0
}
},
{
"function": "set_drop_chance",
"drop_chance": 2
}
]
}
]
}
```
# 6.0.0.0-alpha
Ported to 1.21.1
Mod support will be added back in the future. Let's see how this goes first.
I've also updated the Example Data Pack which was broken in 1.20.1 too.
The only difference between 1.20.1 and 1.21.1 are attribute modifier operations.
## Missing
* Set (Raw) NBT for items
* Scaling (pehkui is no longer needed (and seems to no longer work?) as scaling is now an attribute)
* Serene Seasons support
* Game stages (hasn't updated past 1.20.3)
release
6.1.5.1
6.1.5.131 июл. 2026 г.15Minecraft: 1.21.1neoforge
Что нового
# 6.1.5.1
## Technical
* Fixed events being posted too early, not working
# 6.1.5.0
## Technical
* Changed how Registries work
* Now requires an event to register properties, conditions, etc
# 6.1.4.1
* Fixed `play_sound` not working if played from a player
# 6.1.4.0
* Added `has_owner` condition
# 6.1.3.2
* Updated for latest InsaneLib
# 6.1.3.1
* Disabled warning message when reloading by default
# 6.1.3.0
* Added message to chat when reloading generates errors or warnings
# 6.1.2.0
* Inverted how `priority` on mobs works.
# 6.1.1.1
* Fixed biome condition not working
# 6.1.1.0-beta
* Changed some fields for Potion effects
* `hide_particles` -> `show_particles`: defaults to true now
* Added `show_icon`: defaults to true
* Fixed attribute modifiers erroring (failing to spawn the mob) if a modifier with the same id is already applied
# 6.1.0.0-alpha
BREAKING CHANGES Please read carefully
* More presets!
* PLEASE NOTE that mobs presets now live in `data/<namespace>/mobs_properties_randomness/presets/mobs/` instead of `data/<namespace>/mobs_properties_randomness/presets/`.
* This version introduces modifiers, conditions and functions presets.
These are used if you have multiple conditions, modifiers and functions that repeat, and instead you can write once and reference.
* Example, you want to apply a global difficulty scaling modifier to many attribute values, but this is repetitive
```json
[
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.max_health",
"id": "ns:bonus_health",
"amount": {
"value": 1,
"modifiers": [
{
"modifier": "difficulty",
"operation": "multiply",
"easy": 0.75,
"hard": 1.5
}
]
},
"operation": "add_multiplied_base"
},
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.movement_speed",
"id": "ns:movement_speed",
"amount": {
"value": 0.10,
"modifiers": [
{
"modifier": "difficulty",
"operation": "multiply",
"easy": 0.75,
"hard": 1.5
}
]
},
"operation": "add_multiplied_base"
}
]
```
To avoid all this redundancy, you can use a modifier preset. in `data/ns/presets/modifiers/difficulty_scaling.json`. A modifier preset can contain as many modifiers as you want.
```json
[
{ "modifier": "difficulty", "operation": "multiply", "easy": 0.75, "hard": 1.5 }
]
```
So the properties can become
```json
[
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.max_health",
"id": "ns:bonus_health",
"amount": {
"value": 1,
"modifiers": [
{ "preset": "ns:difficulty_scaling" }
]
},
"operation": "add_multiplied_base"
},
{
"property": "attribute_modifier",
"attribute": "minecraft:generic.movement_speed",
"id": "ns:movement_speed",
"amount": {
"value": 0.10,
"modifiers": [
{ "preset": "ns:difficulty_scaling" }
]
},
"operation": "add_multiplied_base"
}
]
```
This is a quite easy example, but another real example is:
[This is something that will heavily benefit from using presets](https://github.com/Insane96/EnhancedAI/blob/febf0ebe3db34dce1a0d1e9892afb6a2bd8243e4/src/main/resources/integrated_packs/mpr_integration/data/enhancedai/mobs_properties_randomness/mobs/overworld_zombies_equipment.json).
* Fixed summoning via `/mpr` command applying presets 5 times
# 6.0.1.3
* Fixed multiple boss bars flickering
# 6.0.1.2-beta
* Update to latest InsaneLib
# 6.0.1.1-beta
* Update to latest InsaneLib
# 6.0.1.0-beta
* Added `set_component` item function
* You can set whatever data component you want on an item. The following example from the example data pack will make the target equip an iron ingot that can be eaten and used as a pickaxe. Numeric values can be replaced with #range object to generate random values.
```json
{
"property": "equipment",
"slot": "offhand",
"items": [
{
"item": "minecraft:iron_ingot",
"functions": [
{
"function": "set_component",
"components": {
"minecraft:food": {
"nutrition": {"#range": {"min": 2, "max": 6}},
"saturation": {"#range": 0.5}
},
"minecraft:tool": {
"rules": [
{
"blocks": "#mineable/pickaxe",
"speed": 6,
"correct_for_drops": true
}
]
},
"minecraft:max_damage": 453,
"minecraft:damage": 0
}
},
{
"function": "set_drop_chance",
"drop_chance": 2
}
]
}
]
}
```
# 6.0.0.0-alpha
Ported to 1.21.1
Mod support will be added back in the future. Let's see how this goes first.
I've also updated the Example Data Pack which was broken in 1.20.1 too.
The only difference between 1.20.1 and 1.21.1 are attribute modifier operations.
## Missing
* Set (Raw) NBT for items
* Scaling (pehkui is no longer needed (and seems to no longer work?) as scaling is now an attribute)
* Serene Seasons support
* Game stages (hasn't updated past 1.20.3)