promotional bannermobile promotional banner

Itematic (ErrorCraft)

A mod that adds data-driven items to the game, and much more!
Back to Files

Itematic 0.9.0 Preview 4 for 26.3

File nameItematic-0.9.0-preview.4-26.3.jar
Uploader
ErrorCraftErrorCraft
Uploaded
Nov 4, 2026
Downloads
7
Size
2.4 MB
Mod Loaders
Fabric
File ID
9438494
Type
B
Beta
Supported game versions
  • 26.3

Curse Maven Snippet

Fabric

modImplementation "curse.maven:itematic-errorcraft-1756509:9438494"

Learn more about Curse Maven

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_transformer item behaviour component and minecraft:block_transformer data component.
    • minecraft:spawn_egg
      • Its behaviour has been moved to the allow_spawning_offspring boolean field in the minecraft:entity item behaviour component and minecraft:entity_placer data component.
    • minecraft:text_holder
      • Its behaviour has been moved to the minecraft:written_book_content data component.
      • This means that it works for any item stack that has said data component.

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_transformer data component
  • Note that Axes, Shovels and Hoes still use actions rather than this item behaviour and the minecraft:block_transformer data component, as the action system can merge elements more gracefully and can do more as well.

minecraft:enchantable

  • Renamed the transforms_into field to enchant_result_item.
  • Now provides the minecraft:enchant_result_item data 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_enchantments and new minecraft:grind_result_item data components.
  • Renamed the grinding_transforms_into field to grind_result_item.
  • Now provides the minecraft:grind_result_item data 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_rules data component.

minecraft:playable

  • Moved all of its behaviour to the minecraft:instrument data component.
  • No longer sets a cooldown by itself, minecraft:useable with a cooldown must be used instead.

minecraft:shooter

  • Moved all of its behaviour to the new minecraft:shooter_method data component, as well as shooter method-specific data component.

minecraft:steering

  • Moved all of its behaviour to the new minecraft:entity_controller data component.
  • The target field now accepts a list of entity types and hash-prefixed entity type tag as well.
  • Vanilla uses the #minecraft:carrot_on_a_stick_control_targets and #minecraft:warped_fungus_on_a_stick_control_targets entity 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:throwable data component.

minecraft:useable

  • Added the cooldown field, previously defined as the minecraft:cooldown item behaviour component.
  • Format: The same as the minecraft:cooldown data 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.
  • Now provides the minecraft:cooldown and new minecraft:use_cooldown_moment data 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_content data component.
  • Renamed the transforms_into field to sign_result_item.
  • Now provides the new minecraft:sign_result_item data 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_entity The entity transforming the block state.
      minecraft:interacted_position The transformed block state's position.
      minecraft:block_state The block state before it was transformed.
      minecraft:block_entity The block entity at the transformed block state's position if there is one.
      minecraft:tool The item used to transform the block state.

Data Components

  • Added the following data components:
    • minecraft:enchant_result_item
    • minecraft:entity_controller
    • minecraft:grind_result_item
    • minecraft:sign_result_item
    • minecraft:shooter_method
    • minecraft:shooter_range
    • minecraft:throwable
    • minecraft:use_cooldown_moment

minecraft:block_transformer

  • Calls the new minecraft:transformed_block item 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_position parameter instead of minecraft: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_into field to the minecraft:enchant_result_item data 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_offspring field.
  • This previously defined as the presence of the minecraft:spawn_egg item 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:playable item behaviour.

minecraft:item_holder_rules

  • Can now modify the contents of minecraft:bundle_contents without needing the minecraft:item_holder item behaviour.

minecraft:sign_result_item

  • The item to transform into once it is signed via the minecraft:writable_book_content data 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 the minecraft:shooter item behaviour.

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:projectile data 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 ticks field back, which returns in the form of a use duration provider, allowing for more intricate use cooldowns.
  • The ticks field takes precedence over the seconds field 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.

minecraft:writable_book_content

  • Can now open the book editor without needing the minecraft:writable item behaviour.
  • Uses the new minecraft:sign_result_item data 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_upwards field 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.

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_sound fully optional rather than defaulting to minecraft: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 the minecraft:instrument data component now.
    • minecraft:shooter, which uses the minecraft:shooter_method data component now.

Block Predicates (World Generation)

  • Added the minecraft:matching_properties block 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_content data component can now be opened again.

This mod has no additional files