Files
minecraft-bedrock-json-schemas/source/behavior/blocks/format/minecraft.block.json
Xterionix 2082ad8e86 1.21.110 (#376)
* - Added precipitation client biome component

* - Renamed input_air_controlled to free_camera_controlled

* - Added vertical_movement_action

* - Renamed dash to dash_action

* - Updated on_death documentation

* - Updated :interact slot list

* - Added drop_item event response

* - Removed experimental markers for poly_mesh

* - Removed experimental markers for texture_meshes

* - Added use_pixel_depth option to texture_mesh

* - Updated swamp surface builder

* - Updated roar behavior

* - Standardize control_flags definition

* - Updated slime_attack behavior

* - Added control_flags to certain goals based on vanilla schemas

* - Added direction to dash_action

* - Added fire_resistant component

* - Added underwater_music field to biome_music

* - Added redstone_producer block component

* - Added flower_pottable

* - Added embedded_visual component

* - Added embedded item_display_transform

* - Added y_rotation filter

* - Added on_take_flower trigger to give_flower behavior

* - Added passenger_of_entity loot condition

* - Added is_baby loot condition

* - Added manifest v3

* - Added stonecutter recipe tag
- Remove duplicate description in recipe schema

* - Give entity_placer block a type
2025-09-08 14:01:39 +02:00

167 lines
8.1 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "blockception.minecraft.behavior.blocks",
"title": "Block Definitions",
"description": "A custom block definition.",
"type": "object",
"additionalProperties": false,
"required": [ "description", "components" ],
"definitions": {
"components_ref": {
"type": "object",
"title": "Component",
"description": "The components of this block.",
"additionalProperties": true,
"properties": {
//Components
"minecraft:collision_box": { "$ref": "./components/collision_box.json" },
"minecraft:crafting_table": { "$ref": "./components/crafting_table.json" },
"minecraft:destructible_by_explosion": { "$ref": "./components/destructible_by_explosion.json" },
"minecraft:destructible_by_mining": { "$ref": "./components/destructible_by_mining.json" },
"minecraft:destruction_particles": { "$ref": "./components/destruction_particles.json" },
"minecraft:display_name": { "$ref": "./components/display_name.json" },
"minecraft:embedded_visual": { "$ref": "./components/embedded_visual.json" },
"minecraft:flammable": { "$ref": "./components/flammable.json" },
"minecraft:flower_pottable": { "$ref": "./components/flower_pottable.json" },
"minecraft:friction": { "$ref": "./components/friction.json" },
"minecraft:geometry": { "$ref": "./components/geometry.json" },
"minecraft:item_visual": { "$ref": "./components/item_visual.json" },
"minecraft:light_dampening": { "$ref": "./components/light_dampening.json" },
"minecraft:light_emission": { "$ref": "./components/light_emission.json" },
"minecraft:liquid_detection": { "$ref": "./components/liquid_detection.json" },
"minecraft:loot": { "$ref": "./components/loot.json" },
"minecraft:map_color": { "$ref": "./components/map_color.json" },
"minecraft:material_instances": { "$ref": "./components/material_instances.json" },
"minecraft:movable": { "$ref": "./components/movable.json" },
"minecraft:placement_filter": { "$ref": "./components/placement_filter.json" },
"minecraft:random_offset": { "$ref": "./components/random_offset.json" },
"minecraft:redstone_conductivity": { "$ref": "./components/redstone_conductivity.json" },
"minecraft:redstone_producer": { "$ref": "./components/redstone_producer.json" },
"minecraft:replaceable": { "$ref": "./components/replaceable.json" },
"minecraft:selection_box": { "$ref": "./components/selection_box.json" },
"minecraft:transformation": { "$ref": "./components/transformation.json" },
"minecraft:custom_components": { "$ref": "./components/custom_components.json" },
"minecraft:tick": { "$ref": "./components/tick.json" },
"minecraft:entity_fall_on": { "$ref": "./components/entity_fall_on.json" },
// Tags
"tag:minecraft:diamond_tier_destructible": { },
"tag:minecraft:iron_tier_destructible": { },
"tag:minecraft:is_axe_item_destructible": { },
"tag:minecraft:is_hoe_item_destructible": { },
"tag:minecraft:is_mace_item_destructible": { },
"tag:minecraft:is_pickaxe_item_destructible": { },
"tag:minecraft:is_shears_item_destructible": { },
"tag:minecraft:is_shovel_item_destructible": { },
"tag:minecraft:is_sword_item_destructible": { },
"tag:minecraft:netherite_tier_destructible": { },
"tag:minecraft:stone_tier_destructible": { }
},
"patternProperties": {
"tag:.+": {
"title": "Tag",
"description": "Applies a tag to the block, using the key without the \"tag:\" prefix as the tag name.",
"type": "object",
"additionalProperties": false
}
}
},
"states_ref": {
"title": "States",
"description": "Block states are variables that can be set to different values in order to change how your block looks or behaves.",
"type": "object",
"propertyNames": { "pattern": "^([a-zA-Z0-9_]+:[a-zA-Z0-9_\\-]+)$" },
"additionalProperties": {
"title": "State",
"description": "The key defines the name of a state, which must be properly namespaced. Each value is an array that contains all of the possible values of that state or an object defining a range of integers.",
"oneOf": [
// "my:state": [false, true]
{ "$ref": "./states/enum.json" },
// "my:state": { "values": { "min": 0, "max": 15 } }
{ "$ref": "./states/integer_range.json" }
]
}
},
"traits_ref": {
"title": "Traits",
"description": "A shortcut for creators to use Vanilla block states without needing to define and manage a series of events or triggers on custom blocks",
"type": "object",
"additionalProperties": false,
"properties": {
"minecraft:placement_direction": { "$ref": "./traits/placement_direction.json" },
"minecraft:placement_position": { "$ref": "./traits/placement_position.json" }
}
}
},
"properties": {
"description": {
"title": "Block Description",
"description": "The description for this block.",
"type": "object",
"additionalProperties": false,
"required": [ "identifier" ],
"properties": {
"identifier": {
"title": "Identifier",
"description": "The identifier for this block. The name must include a namespace and must not use the Minecraft namespace unless overriding a Vanilla block.",
"type": "string",
"$ref": "../../../general/block/identifier.json"
},
"menu_category": {
"title": "Menu Category",
"description": "Specifies the menu category and group for the block, which determine where this block is placed in the inventory and crafting table container screens. If this field is omitted, the block will not appear in the inventory or crafting table container screens.",
"type": "object",
"examples": [ { "category": "construction" } ],
"additionalProperties": false,
"required": [ "category" ],
"properties": {
"category": {
"$ref": "../../../general/vanilla/creative_category.json"
},
"group": {
"title": "Group",
"description": "A translation string of an existing group in minecraft to group this block/item under",
"type": "string",
"pattern": "^[0-9a-zA-Z:_\\.\\-]+$"
},
"is_hidden_in_commands": {
"title": "Is Hidden In Commands",
"description": "Determines whether or not this item can be used with commands such as /give and /setblock. Commands can use blocks by default",
"type": "boolean",
"default": false
}
}
},
"states": { "$ref": "#/definitions/states_ref" },
"traits": { "$ref": "#/definitions/traits_ref" }
}
},
"components": { "$ref": "#/definitions/components_ref" },
"permutations": {
"type": "array",
"title": "Permutations",
"description": "An array of different versions of a block, allowing you to specify which components you want the block to have under certain conditions.",
"$comment": "UNDOCUMENTED",
"items": {
"title": "Permutation",
"description": "A permutation of a block, which will be applied given the condition is met.",
"$comment": "UNDOCUMENTED",
"type": "object",
"additionalProperties": false,
"required": [ "condition" ],
"properties": {
"condition": {
"title": "Condition",
"description": "A Molang expression that evaluates to true or false to determine if this permutation should be used. For permutation conditions you are limited to using one Molang query: \"query.block_state()\"",
"$ref": "../../../molang/boolean.json"
},
"components": {
"type": "object",
"title": "Component",
"$ref": "#/definitions/components_ref"
}
}
}
}
}
}