Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Creators
Details
Changelog
The very first content preview for Itematic! In this preview version the useable item behaviour was unified.
Changes
Item Behaviour Components
The useable behaviour was merged together and removed from some other components. This makes it so other behaviour components no longer start using an item on their own.
minecraft:shooter
- This component no longer makes its user start using the item on its own and now requires
minecraft:useable.- An integer provider named
minecraft:shooterwas added that can be used in its place.
- An integer provider named
- Changed the
ammunitionandheld_ammunitionfields to be registry entry lists instead of tags.- This means that these entries now require an additional
#prefix to use a tag.- For example,
minecraft:bow_ammunitionshould now be#minecraft:bow_ammunition.
- For example,
- This data is modifiable on specific item stacks with the
minecraft:shooter_ammunitionandminecraft:shooter_held_ammunitiondata components respectively.
- This means that these entries now require an additional
So if you had this:
{
"minecraft:shooter": {
"ammunition": "minecraft:bow_ammunition",
"held_ammunition": "minecraft:bow_ammunition",
"range": 15
}
}
You now have to use this instead:
{
"minecraft:shooter": {
"ammunition": "#minecraft:bow_ammunition",
"held_ammunition": "#minecraft:bow_ammunition",
"range": 15
},
"minecraft:useable": {
"ticks": {
"type": "minecraft:shooter"
}
}
}
minecraft:throwable
- This component no longer makes its user start using the item on its own when
draw_durationis defined and now requiresminecraft:useable.- The
draw_durationfield is now only used to check whether its user has been using the item for the specified duration when they stop using the item. - An integer provider named
minecraft:tridentwas added that can be used in its place.
- The
- Removed the
use_riptide_checkfield as this is now part of an integer provider namedminecraft:tridentinstead, which can be used in its place inminecraft:useable.
So if you had this:
{
"minecraft:throwable": {
"angle_offset": 0.0,
"draw_duration": {
"min": 10
},
"speed": 2.5,
"use_riptide_check": true
}
}
You now have to use this instead:
{
"minecraft:throwable": {
"angle_offset": 0.0,
"draw_duration": {
"min": 10
},
"speed": 2.5
},
"minecraft:useable": {
"ticks": {
"type": "minecraft:trident"
}
}
}
minecraft:use_animation
- Removed this component as it was not behaviour.
- It is now a field inside the
minecraft:useablecomponent instead.
- It is now a field inside the
minecraft:useable
- Changed the
ticksfield to take a provider of a hard amount.- This allows for more dynamic use durations that may be context-dependent.
- The field is optional. When it is not specified, the item will be used indefinitely.
- The field still allows a direct constant amount, just like before.
- This data is modifiable on specific item stacks with the
minecraft:use_durationdata component. - See the Use Integer Providers section further down for more information.
- Moved the value from
minecraft:use_animationto this component in the optionalanimationfield.- Possible values:
blockbowbrushcrossbowdrinkeatnonespearspyglasstoot_horn
- If not specified, it will use
noneinstead. - This data is modifiable on specific item stacks with the
minecraft:use_animationdata component.
- Possible values:
- Added an optional
passesfield, which is a list of strings that allows its user to start using the item given a certain context.- The default value is
["normal"]. - Possible values:
normal: Allows the user to start using the item as-is.block: Allows the user to start using the item when used on a block.entity: Allows the user to start using the item when used on an entity.
- This behaviour is used for the Brush to only start brushing when used on a block.
- Example from
minecraft:brush:{ "minecraft:useable": { "passes": [ "block" ], "ticks": { "type": "minecraft:constant", "amount": 200 } } }
- The default value is
So if you had this:
{
"minecraft:use_animation": "eat",
"minecraft:useable": {
"ticks": 32
}
}
You now have to use this instead:
{
"minecraft:useable": {
"animation": "eat",
"ticks": 32
}
}
Data Components
- Added the following data components:
minecraft:shooter_ammunitionminecraft:shooter_held_ammunitionminecraft:use_animationminecraft:use_duration
minecraft:shooter_ammunition and minecraft:shooter_held_ammunition
- Specified and used by the
minecraft:shooterbehaviour component. - If removed, the
minecraft:shooterbehaviour will no longer work. - Its value is an item, list of items or hash-prefixed item tag.
Examples:
{
"minecraft:shooter_ammunition": "#minecraft:bow_ammunition"
}
{
"minecraft:shooter_held_ammunition": "#minecraft:crossbow_ammunition"
}
minecraft:use_animation
- Specified and used by the
minecraft:useablebehaviour component. - If removed, the
noneanimation will be used instead. - Its value is the same one as the one specified previously in the
minecraft:use_animationitem component and are also specified in theminecraft:useablebehaviour changes. Examples:
{
"minecraft:use_animation": "eat"
}
{
"minecraft:use_animation": "drink"
}
minecraft:use_duration
- Specified and used by the
minecraft:useablebehaviour component. - If removed, the
minecraft:useablebehaviour will no longer work. - The format is the same as the map specified in the
minecraft:useablebehaviour component, with one addition, that being that it allows for a single integer as another shorthand.
Examples:
- Constant duration, simplest form.
{
"minecraft:use_duration": 10
}
- Constant duration, expanded form.
{
"minecraft:use_duration": {
"ticks": 10
}
}
- Indefinite duration.
{
"minecraft:use_duration": {}
}
- Constant duration as a provider. See the Use Integer Providers section further down for more information.
{
"minecraft:use_duration": {
"ticks": {
"type": "minecraft:constant",
"amount": 10
}
}
}
Actions
- Removed
minecraft:start_using_item.- Its behaviour is moved entirely to
minecraft:useableand should be used in its place instead.
- Its behaviour is moved entirely to
Use Integer Providers
These providers are added so the use duration is not hardcoded for specific behaviour components by using different sources.
The integer provider type is determined by the type field and all types are shown below.
An integer provider may return an empty value, in which case the user will not start using the item.
minecraft:constant
Uses the item for a constant duration.
Fields
amount: A positive integer. How long to use the item for.
Example
{
"type": "minecraft:constant",
"amount": 32
}
minecraft:playable
Uses the minecraft:playable item behaviour component to get the use duration from the minecraft:instrument data component or from a default set of instruments as defined by minecraft:playable otherwise.
Has no additional fields.
Example
{
"type": "minecraft:playable"
}
minecraft:shooter
Uses the minecraft:shooter item behaviour component to use the item indefinitely if the user is either holding ammunition as defined by the minecraft:shooter_held_ammunition data component or has ammunition in their inventory as defined by the minecraft:shooter_ammunition data component.
Has no additional fields.
Example
{
"type": "minecraft:shooter"
}
minecraft:trident
Uses the item indefinitely if the item stack has the Riptide enchantment and is either not damageable or not in a broken state and if its user is touching water or rain. Has no additional fields.
Example
{
"type": "minecraft:trident"
}
minecraft:condition
Uses the item for the ticks specified in the amount field if the specified condition passes.
Fields
amount: An integer provider. How long to use the item for if the condition passes.condition: An item predicate. The condition to pass before its user can start using the item.
Example
{
"type": "minecraft:condition",
"amount": 100,
"condition": {
"count": {
"min": 3
}
}
}
Dependencies
Files
Metadata
Release channel
BetaVersion number
0.2.0-preview.1Loaders
Game versions
1.20.5–1.20.6Downloads
7Publication date
November 21, 2025 at 12:04 AMPublisher
ErrorCraft
Member


