Itematic 0.9.0 Preview 4 for 26.3
Curse Maven Snippet
What's new
Itematic 0.9.0 Preview 4 for 26.3
4th of November 2026
Happy first anniversary Itematic! 🎉 To celebrate this, I want to announce another roadmap, this time for the mod's full release! This roadmap will appear at the same time 0.9.0 releases, and the main goal is to get the full release out at the same time Minecraft 27.1 releases next year. In any way, this preview adds even more data components with even more item behaviour moved to those data components! This preview is all about data components, as it adds context number providers for them and moves a bunch of item behaviour to data components!
Changes
Item Behaviour Components
- Added
minecraft:block_transformer. - Removed the following item behaviour components:
minecraft:prevent_use_when_used_on_target- This existed mostly to make placing an Eye of Ender in an End Portal Frame work without also throwing the projectile.
- This behaviour has been moved to the new
minecraft:block_transformeritem behaviour component andminecraft:block_transformerdata component.
minecraft:spawn_egg- Its behaviour has been moved to the
allow_spawning_offspringboolean field in theminecraft:entityitem behaviour component andminecraft:entity_placerdata component.
- Its behaviour has been moved to the
minecraft:text_holder- Its behaviour has been moved to the
minecraft:written_book_contentdata component. - This means that it works for any item stack that has said data component.
- Its behaviour has been moved to the
minecraft:block_transformer
- Allows it user to transform the block the item is used on into another one.
- Format: A block transformer.
- Provides the
minecraft:block_transformerdata component - Note that Axes, Shovels and Hoes still use actions rather than this item behaviour and the
minecraft:block_transformerdata component, as the action system can merge elements more gracefully and can do more as well.
minecraft:enchantable
- Renamed the
transforms_intofield toenchant_result_item. - Now provides the
minecraft:enchant_result_itemdata component.
So if you had this:
{
"minecraft:enchantable": {
"enchantability": 1,
"transforms_into": "minecraft:enchanted_book"
}
}
You now have to use this instead:
{
"minecraft:enchantable": {
"enchant_result_item": "minecraft:enchanted_book",
"enchantability": 1
}
}
minecraft:enchantment_holder
- Moved all of its behaviour to the
minecraft:stored_enchantmentsand newminecraft:grind_result_itemdata components. - Renamed the
grinding_transforms_intofield togrind_result_item. - Now provides the
minecraft:grind_result_itemdata component.
So if you had this:
{
"minecraft:enchantment_holder": {
"grinding_transforms_into": "minecraft:book"
}
}
You now have to use this instead:
{
"minecraft:enchantment_holder": {
"grind_result_item": "minecraft:book"
}
}
minecraft:item_holder
- Moved all of its behaviour to the
minecraft:item_holder_rulesdata component.
minecraft:playable
- Moved all of its behaviour to the
minecraft:instrumentdata component. - No longer sets a cooldown by itself,
minecraft:useablewith a cooldown must be used instead.
minecraft:shooter
- Moved all of its behaviour to the new
minecraft:shooter_methoddata component, as well as shooter method-specific data component.
minecraft:steering
- Moved all of its behaviour to the new
minecraft:entity_controllerdata component. - The
targetfield now accepts a list of entity types and hash-prefixed entity type tag as well. - Vanilla uses the
#minecraft:carrot_on_a_stick_control_targetsand#minecraft:warped_fungus_on_a_stick_control_targetsentity type tags for the Carrot on a Stick and Warped Fungus on a Stick respectively. - Now correctly increments the use statistic when successfully used instead of always incrementing.
minecraft:throwable
- Moved all of its behaviour to the new
minecraft:throwabledata component.
minecraft:useable
- Added the
cooldownfield, previously defined as theminecraft:cooldownitem behaviour component. - Format: The same as the
minecraft:cooldowndata component with additional fields:moment: Determines when to apply the cooldown.- Value must one of the following:
"on_start", in which case it will apply the cooldown when you start using the item."on_end", in which case it will apply the cooldown when you finish using the item.
- Defaults to
"on_end", matching the existing vanilla behaviour. - Note that for instantaneous uses
"on_start"and"on_end"both apply the cooldown immediately.
- Value must one of the following:
- Now provides the
minecraft:cooldownand newminecraft:use_cooldown_momentdata components.
Example:
{
"minecraft:useable": {
"animation": "toot_horn",
"cooldown": {
"moment": "on_start",
"ticks": {
"type": "minecraft:playable"
}
},
"ticks": {
"type": "minecraft:playable"
}
}
}
minecraft:writable
- Moved all of its behaviour to the
minecraft:writable_book_contentdata component. - Renamed the
transforms_intofield tosign_result_item. - Now provides the new
minecraft:sign_result_itemdata component.
So if you had this:
{
"minecraft:writable": {
"transforms_into": "minecraft:written_book"
}
}
You now have to use this instead:
{
"minecraft:writable": {
"sign_result_item": "minecraft:written_book"
}
}
Item Events
- Added
minecraft:transformed_block.Is called right after transforming a block state.
Context:
Parameter Value minecraft:interacting_entityThe entity transforming the block state. minecraft:interacted_positionThe transformed block state's position. minecraft:block_stateThe block state before it was transformed. minecraft:block_entityThe block entity at the transformed block state's position if there is one. minecraft:toolThe item used to transform the block state.
Data Components
- Added the following data components:
minecraft:enchant_result_itemminecraft:entity_controllerminecraft:grind_result_itemminecraft:sign_result_itemminecraft:shooter_methodminecraft:shooter_rangeminecraft:throwableminecraft:use_cooldown_moment
minecraft:block_transformer
- Calls the new
minecraft:transformed_blockitem event right after transforming the block state. - Its context parameter set is almost the same as the one for the loot table, the only difference being that the interacted position uses the
minecraft:interacted_positionparameter instead ofminecraft:origin.
minecraft:enchant_result_item
- The item to transform the item in an Enchanting Table into once it is enchanted.
- Format: An item.
Example:
{
"minecraft:enchant_result_item": "minecraft:enchanted_book"
}
minecraft:enchantable
- Moved the value of the
transforms_intofield to theminecraft:enchant_result_itemdata component.
So if you had this:
{
"minecraft:enchantable": {
"transforms_into": "minecraft:enchanted_book",
"value": 1
}
}
You now have to use this instead:
{
"minecraft:enchantable": {
"value": 1
},
"minecraft:enchant_result_item": "minecraft:enchanted_book"
}
minecraft:entity_controller
- Allows the holder to control an entity while riding it.
- Note that not all entity types work.
- Format: A map with fields:
target: An entity type, list of entity types or hash-prefixed entity type tag. The entity types this entity controller can control.damage_per_use: An optional non-negative int. Defaults to 1. The amount of damage to apply to the item stack when successfully using the item to boost the controlled entity.
Example:
{
"minecraft:entity_controller": {
"damage_per_use": 7,
"target": "#minecraft:carrot_on_a_stick_control_targets"
}
}
minecraft:entity_placer
- Added the
allow_spawning_offspringfield. - This previously defined as the presence of the
minecraft:spawn_eggitem behaviour component.
Example:
{
"minecraft:entity_placer": {
"allow_spawner_modification": true,
"allow_spawning_offspring": true,
"entity": {
"allow_item_data": true,
"entity": "minecraft:pig"
},
"passes": [
"block",
"fluid"
]
}
}
minecraft:grind_result_item
- The item to transform the item in a Grindstone into once it is ground.
- Format: An item.
minecraft:instrument
- Can now play the instrument sound without needing the
minecraft:playableitem behaviour.
minecraft:item_holder_rules
- Can now modify the contents of
minecraft:bundle_contentswithout needing theminecraft:item_holderitem behaviour.
minecraft:sign_result_item
- The item to transform into once it is signed via the
minecraft:writable_book_contentdata component. - Format: An item.
minecraft:shooter_method
- Determines the way this item shoots projectiles.
- Format: A shooter method.
- Currently available values are
"minecraft:direct"and"minecraft:chargeable", the same ones defined in theminecraft:shooteritem behaviour.
- Currently available values are
minecraft:shooter_range
- The maximum distance a mob user can shoot projectiles towards a target.
- Format: A positive integer.
minecraft:stored_enchantments
Is now used in places where previously the minecraft:enchantment_holder item behaviour was used and now no longer needs said item behaviour.
minecraft:throwable
- Allows this item to be thrown as defined by the
minecraft:projectiledata component. - If that data component is not present, no projectile will be thrown.
- Format: A map with fields:
speed: A non-negative float. The speed the projectile when thrown.angle_offset: A float. The angle, in degrees, that affects the vertical speed the projectile is thrown at.draw_duration: An optional integer range. The time frame the player can throw the projectile in.
Example:
{
"minecraft:throwable": {
"angle_offset": 0.0,
"draw_duration": {
"min": 10
},
"speed": 2.5
}
}
minecraft:use_cooldown
- Added the
ticksfield back, which returns in the form of a use duration provider, allowing for more intricate use cooldowns. - The
ticksfield takes precedence over thesecondsfield when both are defined.
Example:
{
"minecraft:use_cooldown": {
"ticks": {
"type": "minecraft:playable"
}
}
}
minecraft:use_cooldown_moment
- Determines when to apply the use cooldown.
- Value must one of the following:
"on_start", in which case it will apply the cooldown when you start using the item."on_end", in which case it will apply the cooldown when you finish using the item.
- Note that for instantaneous uses
"on_start"and"on_end"both apply the cooldown immediately.
- Value must one of the following:
minecraft:writable_book_content
- Can now open the book editor without needing the
minecraft:writableitem behaviour. - Uses the new
minecraft:sign_result_itemdata component to convert the item into another one when signed. If this data component is not defined, it will remain as the current item instead.
minecraft:written_book_content
- Can now open the book without needing any item behaviour.
Block Transformers
- Added an optional
push_entities_upwardsfield to block transformer entries.- Its value is a boolean defaulting to
false, matching vanilla behaviour. - Whether to push entities upwards before modifying the block state, so they always end up on top of the new block state.
- Its value is a boolean defaulting to
Example:
{
"block_state_provider": {
"type": "minecraft:rule_based",
"rules": [
{
"if_true": {
"type": "minecraft:matching_properties",
"properties": {
"eye": "false"
}
},
"then": {
"type": "minecraft:apply_properties",
"properties": {
"eye": "true"
}
}
}
]
},
"push_entities_upwards": true,
"sound": "minecraft:block.end_portal_frame.fill"
}
Shooter Methods
minecraft:direct
- Made the
shoot_soundfully optional rather than defaulting tominecraft:entity.arrow.shoot.
Use durations
- Use duration types that would previously use the item behaviour now use their appropriate data components instead.
- Affected types:
minecraft:playable, which uses theminecraft:instrumentdata component now.minecraft:shooter, which uses theminecraft:shooter_methoddata component now.
Block Predicates (World Generation)
- Added the
minecraft:matching_propertiesblock predicate type.
minecraft:matching_properties
- Matches the properties of the current block state without checking the block itself.
- Format: A field with properties:
offset: An optional block position. Defaults to[0, 0, 0]. The offset from the initial block state position.properties: A state properties predicate. The properties to check on the target block state.
Example:
{
"type": "minecraft:matching_properties",
"properties": {
"eye": "false"
}
}
Fixes
- Carrot/Warped fungus on a stick usage statistic value is increased even if item is not used (MC-112991)
- Extended data component now consider the extra fields for equivalent objects, solving issues regarding hashing and caching.
- Items with the
minecraft:writable_book_contentdata component can now be opened again.
This mod has no additional files

