{ "$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": "UNDOCUMENTED.", "$comment": "UNDOCUMENTED", "additionalProperties": false, "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:display_name": { "$ref": "./components/display_name.json" }, "minecraft:flammable": { "$ref": "./components/flammable.json" }, "minecraft:friction": { "$ref": "./components/friction.json" }, "minecraft:geometry": { "$ref": "./components/geometry.json" }, "minecraft:light_dampening": { "$ref": "./components/light_dampening.json" }, "minecraft:light_emission": { "$ref": "./components/light_emission.json" }, "minecraft:loot": { "$ref": "./components/loot.json" }, "minecraft:map_color": { "$ref": "./components/map_color.json" }, "minecraft:material_instances": { "$ref": "./components/material_instances.json" }, "minecraft:placement_filter": { "$ref": "./components/placement_filter.json" }, "minecraft:selection_box": { "$ref": "./components/selection_box.json" }, "minecraft:transformation": { "$ref": "./components/transformation.json" }, //Triggers "minecraft:on_fall_on": { "$ref": "./triggers/on_fall_on.json" }, "minecraft:on_interact": { "$ref": "./triggers/on_interact.json" }, "minecraft:on_placed": { "$ref": "./triggers/on_placed.json" }, "minecraft:on_player_destroyed": { "$ref": "./triggers/on_player_destroyed.json" }, "minecraft:on_player_placing": { "$ref": "./triggers/on_player_placing.json" }, "minecraft:on_step_off": { "$ref": "./triggers/on_step_off.json" }, "minecraft:on_step_on": { "$ref": "./triggers/on_step_on.json" }, "minecraft:queued_ticking": { "$ref": "./triggers/queued_ticking.json" }, "minecraft:random_ticking": { "$ref": "./triggers/random_ticking.json" } } }, "traits_ref": { "type": "object", "title": "Trait", "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", "additionalProperties": false, "properties": { "minecraft:placement_position": { "$ref": "./traits/placement_position.json" }, "minecraft:placement_direction": { "$ref": "./traits/placement_direction.json" } } } }, "properties": { "description": { "title": "Block Description", "description": "The description for this block.", "type": "object", "additionalProperties": false, "required": ["identifier"], "properties": { "menu_category": { "title": "Menu Category", "$comment": "UNDOCUMENTED", "description": "The category this block will be placed in the menu.", "type": "object", "default": "misc", "additionalProperties": false, "required": ["category"], "properties": { "category": { "$ref": "../../../general/vanilla/creative_category.json" }, "group": { "$ref": "../../../general/vanilla/item_group.json" }, "is_hidden_in_commands": { "title": "Is Hidden In Commands", "$comment": "UNDOCUMENTED", "description": "If true, this item will not be shown in the /give command autocomplete list.", "type": "boolean" } } }, "identifier": { "type": "string", "description": "The identifier for this block. The name must include a namespace and must not use the Minecraft namespace unless overriding a Vanilla block.", "title": "Identifier", "$ref": "../../../general/block/identifier.json" }, "is_experimental": { "type": "boolean", "default": false, "description": "If this block is experimental, it will only be registered if the world is marked as experimantal.", "title": "Is Experimental" }, "register_to_creative_menu": { "type": "boolean", "default": false, "description": "Whether or not to register this block to the creative inventory menu.", "title": "Register To Creative Menu" }, "states": { "title": "States", "description": "[HOLIDAY EXPERIMENTAL] UNDOCUMENTED.", "$comment": "UNDOCUMENTED", "propertyNames": { "pattern": "^([a-zA-Z0-9_]+:[a-zA-Z0-9_\\-]+)$" }, "type": "object", "additionalProperties": { "title": "State", "description": "A block property. The name should be specified as `:`", "oneOf": [ { "type": "array", "items": { "title": "Property Value", "description": "The value of this property.", "anyOf": [{ "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "string" }] } }, { "type": "object" } ] } }, "traits": { "type": "object", "title": "Trait", "$ref": "#/definitions/traits_ref" } } }, "events": { "$ref": "./events.json" }, "components": { "type": "object", "title": "Component", "$ref": "#/definitions/components_ref" }, "permutations": { "type": "array", "title": "Permutations", "description": "UNDOCUMENTED.", "$comment": "UNDOCUMENTED", "items": { "title": "Permutation", "description": "UNDOCUMENTED.", "$comment": "UNDOCUMENTED", "type": "object", "additionalProperties": false, "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_property()\"", "$ref": "../../../molang/string.json" }, "components": { "type": "object", "title": "Component", "$ref": "#/definitions/components_ref" } } } } } }