diff --git a/behavior/blocks/blocks.json b/behavior/blocks/blocks.json index 35ac946c..4bbdda20 100644 --- a/behavior/blocks/blocks.json +++ b/behavior/blocks/blocks.json @@ -1 +1 @@ -{"$schema":"http://json-schema.org/draft-07/schema","$id":"blockception.minecraft.behavior.block","$comment":"UNDOCUMENTED","required":["format_version","minecraft:block"],"type":"object","title":"Block Behavior","description":"The minecraft block behavior specification.","additionalProperties":false,"properties":{"format_version":{"$ref":"#/definitions/A"},"minecraft:block":{"$ref":"#/definitions/B"}},"definitions":{"A":{"title":"Format Version","description":"A version that tells minecraft what type of data format can be expected when reading this file.","pattern":"^([1-9]+)\\.([0-9]+)\\.([0-9]+)$","type":"string","default":"1.20.41","examples":["1.20.41","1.19.0","1.18.0","1.17.0","1.16.0","1.15.0","1.14.0","1.13.0","1.12.0","1.10.0","1.8.0"],"defaultSnippets":[{"label":"New Format version","body":"1.${1|8,10,12,17,18,19,20|}.${3|2|0|}"}]},"B_components_ref":{"type":"object","title":"Component","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","additionalProperties":false,"properties":{"minecraft:collision_box":{"$ref":"#/definitions/C"},"minecraft:crafting_table":{"$ref":"#/definitions/D"},"minecraft:destructible_by_explosion":{"$ref":"#/definitions/E"},"minecraft:destructible_by_mining":{"$ref":"#/definitions/F"},"minecraft:display_name":{"$ref":"#/definitions/G"},"minecraft:flammable":{"$ref":"#/definitions/H"},"minecraft:friction":{"$ref":"#/definitions/I"},"minecraft:geometry":{"$ref":"#/definitions/J"},"minecraft:light_dampening":{"$ref":"#/definitions/BA"},"minecraft:light_emission":{"$ref":"#/definitions/BB"},"minecraft:loot":{"$ref":"#/definitions/BC"},"minecraft:map_color":{"$ref":"#/definitions/BD"},"minecraft:material_instances":{"$ref":"#/definitions/BE"},"minecraft:placement_filter":{"$ref":"#/definitions/BF"},"minecraft:selection_box":{"$ref":"#/definitions/BJ"},"minecraft:transformation":{"$ref":"#/definitions/CA"},"minecraft:on_fall_on":{"$ref":"#/definitions/CB"},"minecraft:on_interact":{"$ref":"#/definitions/CC"},"minecraft:on_placed":{"$ref":"#/definitions/CD"},"minecraft:on_player_destroyed":{"$ref":"#/definitions/CE"},"minecraft:on_player_placing":{"$ref":"#/definitions/CF"},"minecraft:on_step_off":{"$ref":"#/definitions/CG"},"minecraft:on_step_on":{"$ref":"#/definitions/CH"},"minecraft:queued_ticking":{"$ref":"#/definitions/CI"},"minecraft:random_ticking":{"$ref":"#/definitions/CJ"}}},"C":{"title":"Collision Box","description":"This component can be specified as a Boolean. If this component is omitted, the default value for this component is true, which will give your block the default values for its parameters (a collision box the size/shape of a regular block).","oneOf":[{"type":"boolean","default":true},{"type":"object","additionalProperties":false,"properties":{"origin":{"title":"Origin","description":"Minimal position of the bounds of the collision box. origin is specified as [x, y, z] and must be in the range (-8, 0, -8) to (8, 16, 8), inclusive.","type":"array","items":[{"title":"X","type":"number","minimum":-8.0,"maximum":8},{"title":"Y","type":"number","minimum":0,"maximum":16},{"title":"Z","type":"number","minimum":-8.0,"maximum":8}]},"size":{"title":"Size","description":"Size of each side of the collision box. Size is specified as [x, y, z]. origin + size must be in the range (-8, 0, -8) to (8, 16, 8), inclusive.","type":"array","items":[{"title":"X","type":"number","minimum":-8.0,"maximum":8},{"title":"Y","type":"number","minimum":0,"maximum":16},{"title":"Z","type":"number","minimum":-8.0,"maximum":8}]}}}]},"D":{"title":"Crafting Table","description":"Makes your block into a custom crafting table which enables the crafting table UI and the ability to craft recipes.","additionalProperties":false,"type":"object","required":[],"properties":{"crafting_tags":{"title":"Crafting Tags","description":"Defines the tags recipes should define to be crafted on this table. Limited to 64 tags. Each tag is limited to 64 characters.","type":"array","maxItems":64,"items":{"type":"string","title":"Tag","description":"The tag to check for.","minLength":1,"maxLength":64}},"table_name":{"title":"Table Name","description":"Specifies the language file key that maps to what text will be displayed in the UI of this table. If the string given can not be resolved as a loc string, the raw string given will be displayed. If this field is omitted, the name displayed will default to the name specified in the \"display_name\" component. If this block has no \"display_name\" component, the name displayed will default to the name of the block.","type":"string"}}},"E":{"title":"Destructible By Explosion","description":"Describes the destructible by explosion properties for this block. If set to true, the block will have the default explosion resistance. If set to false, this block is indestructible by explosion. If the component is omitted, the block will have the default explosion resistance.","oneOf":[{"type":"boolean","default":true},{"type":"object","additionalProperties":false,"required":[],"properties":{"explosion_resistance":{"title":"Explosion Resistance","description":"Describes how resistant the block is to explosion. Greater values mean the block is less likely to break when near an explosion (or has higher resistance to explosions). The scale will be different for different explosion power levels. A negative value or 0 means it will easily explode; larger numbers increase level of resistance.","type":"number","default":0.0}}}]},"F":{"title":"Destructible By Mining","description":"Describes the destructible by mining properties for this block. If set to true, the block will take the default number of seconds to destroy. If set to false, this block is indestructible by mining. If the component is omitted, the block will take the default number of seconds to destroy.","oneOf":[{"type":"boolean","default":true},{"type":"object","additionalProperties":false,"required":[],"properties":{"seconds_to_destroy":{"title":"Seconds To Destroy","description":"Sets the number of seconds it takes to destroy the block with base equipment. Greater numbers result in greater mining times.","type":"number","default":0.0}}}]},"G":{"title":"Display Name","description":"Specifies the language file key that maps to what text will be displayed when you hover over the block in your inventory and hotbar. If the string given can not be resolved as a loc string, the raw string given will be displayed. If this component is omitted, the name of the block will be used as the display name.","type":"string"},"H":{"title":"Flammable","description":"Describes the flammable properties for this block. If set to true, default values are used. If set to false, or if this component is omitted, the block will not be able to catch on fire naturally from neighbors, but it can still be directly ignited.","oneOf":[{"type":"boolean","default":true},{"type":"object","additionalProperties":false,"required":[],"properties":{"catch_chance_modifier":{"title":"Catch Chance Modifier","description":"A modifier affecting the chance that this block will catch flame when next to a fire. Values are greater than or equal to 0, with a higher number meaning more likely to catch on fire","type":"number","default":5},"destroy_chance_modifier":{"title":"Destroy Chance Modifier","description":"A modifier affecting the chance that this block will be destroyed by flames when on fire.","type":"number","default":20}}}]},"I":{"title":"Friction","description":"Describes the friction for this block in a range of (0.0-0.9). Friction affects an entity's movement speed when it travels on the block. Greater value results in more friction.","type":"number","default":0.4,"minimum":0,"maximum":0.9},"J":{"title":"Geometry","description":"The description identifier of the geometry file to use to render this block. This identifier must match an existing geometry identifier in any of the currently loaded resource packs.","oneOf":[{"type":"string"},{"type":"object","properties":{"identifier":{"title":"Identifier","description":"The description identifier of the geometry file to use to render this block. This identifier must match an existing geometry identifier in any of the currently loaded resource packs.","type":"string","enum":["minecraft:geometry.full_block","minecraft:geometry.cross"]}}},{"type":"object","additionalProperties":false,"required":["identifier"],"properties":{"identifier":{"title":"Identifier","description":"The description identifier of the geometry file to use to render this block. This identifier must match an existing geometry identifier in any of the currently loaded resource packs.","type":"string"},"bone_visibility":{"title":"Bone Visibility","description":"A list of bones that should be visible when rendering this block. If not specified, all bones will be visible.","type":"object","additionalProperties":{"type":"boolean","description":"Whether or not the bone should be visible.","title":"Bone Visibility"}},"culling":{"title":"Block Culling Rule","description":"The description identifer of the block culling rule used to cull this block. This identifier must match an existing geometry identifier in any of the currently loaded resource packs.","type":"string"}}}]},"BA":{"title":"Light Dampening","description":"The amount that light will be dampened when it passes through the block, in a range (0-15). Higher value means the light will be dampened more.","type":"integer","default":15,"minimum":0,"maximum":15},"BB":{"title":"Light Emission","description":"The amount of light this block will emit in a range (0-15). Higher value means more light will be emitted.","type":"integer","default":15,"minimum":0,"maximum":15},"BC":{"title":"Loot","description":"The path to the loot table, relative to the behavior pack.","type":"string","pattern":"loot_tables/.*\\.json$","maxLength":256},"BD":{"title":"Map Color","description":"Sets the color of the block when rendered to a map. The color is represented as a hex value in the format \"#RRGGBB\". May also be expressed as an array of [R, G, B] from 0 to 255. If this component is omitted, the block will not show up on the map.","oneOf":[{"type":"string","format":"colox-hex","default":"#FFFFFF"},{"type":"array","items":[{"title":"Red","type":"integer","default":0,"minimum":0,"maximum":255},{"title":"Green","type":"integer","default":0,"minimum":0,"maximum":255},{"title":"Blue","type":"integer","default":0,"minimum":0,"maximum":255}]}],"examples":["#FFFFFF",[255,255,255]]},"BE":{"title":"Material Instances","description":"The material instances for a block. Maps face or material_instance names in a geometry file to an actual material instance. You can assign a material instance object to any of these faces: \"up\", \"down\", \"north\", \"south\", \"east\", \"west\", or \"*\". You can also give an instance the name of your choosing such as \"my_instance\", and then assign it to a face by doing \"north\":\"my_instance\".","required":[],"examples":[{"*":{}},{"custom_sides":{}},{"up":{}},{"down":{}},{"north":{}},{"south":"custom_sides"},{"east":"custom_sides"},{"west":"custom_sides"}],"type":"object","additionalProperties":{"title":"Material Instance","description":"The material instance for a block. Maps face or material_instance names in a geometry file to an actual material instance. You can assign a material instance object to any of these faces: \"up\", \"down\", \"north\", \"south\", \"east\", \"west\", or \"*\". You can also give an instance the name of your choosing such as \"my_instance\", and then assign it to a face by doing \"north\":\"my_instance\".","oneOf":[{"type":"string"},{"type":"object","additionalProperties":false,"properties":{"ambient_occlusion":{"title":"Ambient Occlusion","type":"boolean","default":true,"description":"Should this material have ambient occlusion applied when lighting? If true, shadows will be created around and underneath the block."},"face_dimming":{"title":"Face Dimming","type":"boolean","default":true,"description":"Should this material be dimmed by the direction it's facing?"},"render_method":{"title":"Render Method","type":"string","default":"opaque","description":"The render method to use. Must be one of these options: opaque - Used for a regular block texture without an alpha layer. Does not allow for transparency or translucency. double_sided - Used for completely disabling backface culling. blend - Used for a block like stained glass. Allows for transparency and translucency (slightly transparent textures). alpha_test - Used for a block like the vanilla (unstained) glass. Does not allow for translucency, only fully opaque or fully transparent textures. Also disables backface culling.","markdownDescription":"The render method to use. Must be one of these options: \nopaque - Used for a regular block texture without an alpha layer. Does not allow for transparency or translucency.\ndouble_sided - Used for completely disabling backface culling.\nblend - Used for a block like stained glass. Allows for transparency and translucency (slightly transparent textures).\nalpha_test - Used for a block like the vanilla (unstained) glass. Does not allow for translucency, only fully opaque or fully transparent textures. Also disables backface culling.","enum":["opaque","double_sided","blend","alpha_test"]},"texture":{"title":"Texture","type":"string","default":"","description":"Texture name for the material."}}}]}},"BH":{"description":"A minecraft block identifier.","examples":["namespace:block"],"pattern":"^[0-9a-zA-Z:_\\.\\-]+$","title":"Block Identifier","type":"string","defaultSnippets":[{"label":"New Identifier","body":"$1:$2"}]},"BI":{"type":"string","title":"Molang","description":"Molang definition.","format":"molang","examples":["query.variant","(1.0)","query.","variable.=;"],"defaultSnippets":[{"label":"New Molang","body":"$1"}]},"BG":{"description":"A minecraft block reference.","examples":["namespace:block",{"name":"namespace:block"}],"title":"Block Reference","defaultSnippets":[{"label":"New Identifier","body":"$1:$2"}],"oneOf":[{"type":"string","$ref":"#/definitions/BH"},{"title":"Block Reference","description":"","type":"object","additionalProperties":false,"properties":{"name":{"type":"string","$ref":"#/definitions/BH"},"states":{"title":"States","description":"","type":"object","propertyNames":{"pattern":"\\w*:?\\w+"},"example":[{"property":"value"}],"additionalProperties":{"type":["boolean","integer","string"],"title":"State Value","description":"The key of property is the name of the block state/property, the value must be the same as the block properties accepted values."}},"tags":{"$ref":"#/definitions/BI","description":"A condition using Molang queries that results to true/false that can be used to query for blocks with certain tags.","examples":["query.any_tag('wood')"]}}}]},"BF":{"title":"Placement Filter","type":"object","properties":{"conditions":{"title":"Conditions","description":"List of conditions where the block can be placed/survive. Limited to 64 conditions. Each condition is a JSON Object that must contain at least one (and can contain both) of the parameters allowed_faces or block_filter as shown below.","examples":[{"allowed_faces":["up"],"block_filter":["grass"]}],"type":"array","minItems":1,"items":{"title":"Placement Filter","type":"object","additionalProperties":false,"properties":{"allowed_faces":{"title":"Allowed Faces","type":"array","description":"List of any of the following strings describing which face(s) this block can be placed on: \"up\", \"down\", \"north\", \"south\", \"east\", \"west\", \"side\", \"all\". Limited to 6 faces.","uniqueItems":true,"items":{"type":"string","enum":["up","down","north","south","east","west","side","all"]}},"block_filter":{"title":"Block Filter","type":"array","description":"List of blocks that this block can be placed against in the \"allowed_faces\" direction. Limited to 64 blocks. Each block in this list can either be specified as a String (block name) or as a BlockDescriptor. A BlockDescriptor is an object that allows you to reference a block (or multiple blocks) based on its tags, or based on its name and states. The fields of a BlockDescriptor are described below.","items":{"title":"Block Filter","description":"[Experimental]","$ref":"#/definitions/BG"}}}}}}},"BJ":{"title":"Selection Box","description":"Defines the area of the block that is selected by the player's cursor. If set to true, default values are used. If set to false, this block is not selectable by the player's cursor. If this component is omitted, default values are used.","oneOf":[{"type":"boolean"},{"type":"object","additionalProperties":false,"properties":{"origin":{"title":"Origin","default":[0,0,0],"description":"Minimal position of the bounds of the selection box. \"origin\" is specified as [x, y, z] and must be in the range (-8, 0, -8) to (8, 16, 8), inclusive.","type":"array","items":[{"title":"X","type":"number","minimum":-8.0,"maximum":8},{"title":"Y","type":"number","minimum":0,"maximum":16},{"title":"Z","type":"number","minimum":-8.0,"maximum":8}]},"size":{"title":"Size","default":[8.0,8.0,8.0],"description":"Size of each side of the selection box. Size is specified as [x, y, z]. \"origin\" + \"size\" must be in the range (-8, 0, -8) to (8, 16, 8), inclusive.","type":"array","items":[{"title":"X","type":"number","minimum":-8.0,"maximum":8},{"title":"Y","type":"number","minimum":0,"maximum":16},{"title":"Z","type":"number","minimum":-8.0,"maximum":8}]}}}]},"CA":{"title":"Transformation","description":"Supports rotation, scaling, and translation","type":"object","additionalProperties":false,"properties":{"rotation":{"title":"Rotation","description":"Rotation in xxx?","type":"array","items":[{"title":"X","description":"Rotation in xxx?","type":"number","default":0},{"title":"Y","description":"Rotation in xxx?","type":"number","default":0},{"title":"Z","description":"Rotation in xxx?","type":"number","default":0}]},"scale":{"title":"Scale","description":"UNDOCUMENTED","type":"array","items":[{"title":"X","description":"UNDOCUMENTED","type":"number","default":1},{"title":"Y","description":"UNDOCUMENTED","type":"number","default":1},{"title":"Z","description":"UNDOCUMENTED","type":"number","default":1}]},"translation":{"title":"Translation","description":"UNDOCUMENTED","type":"array","items":[{"title":"X","description":"UNDOCUMENTED","type":"number","default":0},{"title":"Y","description":"UNDOCUMENTED","type":"number","default":0},{"title":"Z","description":"UNDOCUMENTED","type":"number","default":0}]}}},"CB":{"type":"object","title":"On Fall On","description":"[Experimental] Describes event for this block.","properties":{"condition":{"type":"string","default":"","description":"The condition of event to be executed on the block.","title":"Condition"},"event":{"type":"string","default":"","description":"The event executed on the block.","title":"Event"},"min_fall_distance":{"type":"number","default":0,"description":"The minimum distance in blocks that an actor needs to fall to trigger this event.","title":"Minimum Fall Distance"},"target":{"type":"string","default":"self","description":"The target of event executed on the block.","title":"Target"}}},"CC":{"type":"object","title":"On Fall On","description":"[Experimental] Describes event for this block.","properties":{"condition":{"type":"string","default":"","description":"The condition of event to be executed on the block.","title":"Condition"},"event":{"type":"string","default":"","description":"The event executed on the block.","title":"Event"},"target":{"type":"string","default":"self","description":"The target of event executed on the block.","title":"Target"}}},"CD":{"type":"object","title":"On Placed","description":"[Experimental] Describes event for this block.","properties":{"condition":{"type":"string","default":"","description":"The condition of event to be executed on the block.","title":"Condition"},"event":{"type":"string","default":"","description":"The event executed on the block.","title":"Event"},"target":{"type":"string","default":"self","description":"The target of event executed on the block.","title":"Target"}}},"CE":{"type":"object","title":"On Player Destroyed","description":"[Experimental] Describes event for this block.","properties":{"condition":{"type":"string","default":"","description":"The condition of event to be executed on the block.","title":"Condition"},"event":{"type":"string","default":"","description":"The event executed on the block.","title":"Event"},"target":{"type":"string","default":"self","description":"The target of event executed on the block.","title":"Target"}}},"CF":{"type":"object","title":"On Player Placing","description":"[Experimental] Describes event for this block.","properties":{"condition":{"type":"string","default":"","description":"The condition of event to be executed on the block.","title":"Condition"},"event":{"type":"string","default":"","description":"The event executed on the block.","title":"Event"},"target":{"type":"string","default":"self","description":"The target of event executed on the block.","title":"Target"}}},"CG":{"type":"object","title":"On Step Off","description":"[Experimental] Describes event for this block.","properties":{"condition":{"type":"string","default":"","description":"The condition of event to be executed on the block.","title":"Condition"},"event":{"type":"string","default":"","description":"The event executed on the block.","title":"Event"},"target":{"type":"string","default":"self","description":"The target of event executed on the block.","title":"Target"}}},"CH":{"type":"object","title":"On Step On","description":"[Experimental] Describes event for this block.","properties":{"condition":{"type":"string","default":"","description":"The condition of event to be executed on the block.","title":"Condition"},"event":{"type":"string","default":"","description":"The event executed on the block.","title":"Event"},"target":{"type":"string","default":"self","description":"The target of event executed on the block.","title":"Target"}}},"CI":{"title":"Random Ticking","description":"[Experimental] Describes the component that will trigger an even at a regular interval between two values.","type":"object","additionalProperties":false,"properties":{"on_tick":{"title":"On Tick","description":"Describes the component that will trigger an even at a regular interval between two values.","type":"string","additionalProperties":false,"properties":{"condition":{"title":"Condition","type":"string","default":"1","description":"The condition of event to be executed on the block. Molang"},"event":{"title":"Event","type":"string","default":"set_block_property","description":"The type of event executed on the block."},"range":{"title":"Range","type":"array","items":[{"type":"integer"},{"type":"integer"}]},"target":{"title":"Target","description":"The target of event executed on the block.","type":"string","enum":["block","damager","other","parent","player","self","target"]}}},"looping":{"type":"boolean","default":true,"description":"Does the event loop.","title":"Looping"},"range":{"type":"array","default":[10,10],"description":"The Range between which the component will trigger his event.","title":"Range"}}},"CJ":{"title":"Random Ticking","description":"[Experimental] Triggers the specified event randomly based on the random tick speed gamerule. The random tick speed determines how often blocks are updated.","type":"object","additionalProperties":false,"properties":{"on_tick":{"title":"On Tick","description":"the event that will be triggered on random ticks."},"condition":{"title":"Condition","type":"string","default":"1","description":"A condition using Molang queries that results to true/false. If true on the random tick, the event will be triggered. If false on the random tick, the event will not be triggered."},"event":{"title":"Event","type":"string","default":"set_block_property","description":"The event that will be triggered."},"target":{"title":"Target","type":"string","default":"self","description":"The target of the event executed by the block"}}},"DA_event_base":{"title":"Event","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","type":"object","additionalProperties":false,"properties":{"condition":{"title":"Condition","description":"The condition of event to be executed on the block.","type":"string"},"event":{"title":"Event","description":"The event executed on the block.","type":"string"},"target":{"title":"Target","description":"The target of event executed on the block.","type":"string","default":"self"}}},"DA":{"title":"Events","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","type":"object","properties":{"minecraft:on_fall_on":{"$ref":"#/definitions/DA_event_base"},"minecraft:on_interact":{"$ref":"#/definitions/DA_event_base"},"minecraft:on_placed":{"$ref":"#/definitions/DA_event_base"},"minecraft:on_player_destroyed":{"$ref":"#/definitions/DA_event_base"},"minecraft:on_player_placing":{"$ref":"#/definitions/DA_event_base"},"minecraft:on_step_off":{"$ref":"#/definitions/DA_event_base"},"minecraft:on_step_on":{"$ref":"#/definitions/DA_event_base"}}},"B":{"title":"Block Definitions","description":"A custom block definition.","type":"object","additionalProperties":false,"required":["description","components"],"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":{"title":"Category","description":"Determines which category this block will be placed under in the inventory and crafting table container screens. Options are \"construction\", \"nature\", \"equipment\", \"items\", and \"none\". If omitted or \"none\" is specified, the block will not appear in the inventory or crafting table container screens.","type":"string","enum":["construction","nature","equipment","items","none"]},"group":{"title":"Group","$comment":"UNDOCUMENTED","description":"A translation string of an existing group in minecraft to group this item under","type":"string","enum":["itemGroup.name.anvil","itemGroup.name.arrow","itemGroup.name.axe","itemGroup.name.banner_pattern","itemGroup.name.banner","itemGroup.name.beacon","itemGroup.name.bed","itemGroup.name.bell","itemGroup.name.boat","itemGroup.name.boots","itemGroup.name.brick","itemGroup.name.buttons","itemGroup.name.cactus","itemGroup.name.camera","itemGroup.name.candles","itemGroup.name.chemistrytable","itemGroup.name.chest","itemGroup.name.chestboat","itemGroup.name.chestplate","itemGroup.name.clay","itemGroup.name.climbing","itemGroup.name.cobblestone","itemGroup.name.composter","itemGroup.name.concrete","itemGroup.name.concretePowder","itemGroup.name.constructionMisc","itemGroup.name.cookedFood","itemGroup.name.copper","itemGroup.name.coral_decorations","itemGroup.name.coral","itemGroup.name.craftingTables","itemGroup.name.crop","itemGroup.name.dirt","itemGroup.name.door","itemGroup.name.dye","itemGroup.name.eggBlocks","itemGroup.name.element","itemGroup.name.enchantedBook","itemGroup.name.enchantingTable","itemGroup.name.endPortalFrame","itemGroup.name.endRod","itemGroup.name.fence","itemGroup.name.fenceGate","itemGroup.name.firework","itemGroup.name.fireworkStars","itemGroup.name.flower","itemGroup.name.furnaces","itemGroup.name.glass","itemGroup.name.glassPane","itemGroup.name.glazedTerracotta","itemGroup.name.glowstone","itemGroup.name.goatHorn","itemGroup.name.grass","itemGroup.name.gravel","itemGroup.name.greenery","itemGroup.name.grindStone","itemGroup.name.helmet","itemGroup.name.hoe","itemGroup.name.horseArmor","itemGroup.name.ice","itemGroup.name.ironFence","itemGroup.name.items","itemGroup.name.leaves","itemGroup.name.lectern","itemGroup.name.leggings","itemGroup.name.lights","itemGroup.name.lingeringPotion","itemGroup.name.log","itemGroup.name.minecart","itemGroup.name.miscFood","itemGroup.name.mobEgg","itemGroup.name.monsterStoneEgg","itemGroup.name.mushroom","itemGroup.name.musicBlocks","itemGroup.name.natureBuildingBlocks","itemGroup.name.natureMisc","itemGroup.name.ore","itemGroup.name.oreBlocks","itemGroup.name.permission","itemGroup.name.pickaxe","itemGroup.name.pistons","itemGroup.name.planks","itemGroup.name.potion","itemGroup.name.pressurePlate","itemGroup.name.pumpkins","itemGroup.name.purpur","itemGroup.name.rail","itemGroup.name.rawFood","itemGroup.name.record","itemGroup.name.redstone","itemGroup.name.redstoneContainers","itemGroup.name.redstoneProducers","itemGroup.name.sand","itemGroup.name.sandstone","itemGroup.name.sapling","itemGroup.name.sculk","itemGroup.name.seed","itemGroup.name.shovel","itemGroup.name.shulkerBox","itemGroup.name.sign","itemGroup.name.skull","itemGroup.name.slab","itemGroup.name.splashPotion","itemGroup.name.stainedClay","itemGroup.name.stairs","itemGroup.name.stone","itemGroup.name.stoneBrick","itemGroup.name.sword","itemGroup.name.tnt","itemGroup.name.torch","itemGroup.name.trapdoor","itemGroup.name.walls","itemGroup.name.wood","itemGroup.name.wool","itemGroup.name.woolCarpet"]},"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":"#/definitions/BH"},"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.","oneOf":[{"type":"array","items":{"title":"Property Value","description":"The value of this property.","anyOf":[{"type":"boolean"},{"type":"number"},{"type":"integer"},{"type":"string"}]}},{"type":"object"}]}}}},"events":{"$ref":"#/definitions/DA"},"components":{"type":"object","title":"Component","$ref":"#/definitions/B_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":"#/definitions/BI"},"components":{"type":"object","title":"Component","$ref":"#/definitions/B_components_ref"}}}}}}}} \ No newline at end of file +{"$schema":"http://json-schema.org/draft-07/schema","$id":"blockception.minecraft.behavior.block","$comment":"UNDOCUMENTED","required":["format_version","minecraft:block"],"type":"object","title":"Block Behavior","description":"The minecraft block behavior specification.","additionalProperties":false,"properties":{"format_version":{"$ref":"#/definitions/A"},"minecraft:block":{"$ref":"#/definitions/B"}},"definitions":{"A":{"title":"Format Version","description":"A version that tells minecraft what type of data format can be expected when reading this file.","pattern":"^([1-9]+)\\.([0-9]+)\\.([0-9]+)$","type":"string","default":"1.20.41","examples":["1.20.41","1.19.0","1.18.0","1.17.0","1.16.0","1.15.0","1.14.0","1.13.0","1.12.0","1.10.0","1.8.0"],"defaultSnippets":[{"label":"New Format version","body":"1.${1|8,10,12,17,18,19,20|}.${3|2|0|}"}]},"B_components_ref":{"type":"object","title":"Component","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","additionalProperties":false,"properties":{"minecraft:collision_box":{"$ref":"#/definitions/C"},"minecraft:crafting_table":{"$ref":"#/definitions/D"},"minecraft:destructible_by_explosion":{"$ref":"#/definitions/E"},"minecraft:destructible_by_mining":{"$ref":"#/definitions/F"},"minecraft:display_name":{"$ref":"#/definitions/G"},"minecraft:flammable":{"$ref":"#/definitions/H"},"minecraft:friction":{"$ref":"#/definitions/I"},"minecraft:geometry":{"$ref":"#/definitions/J"},"minecraft:light_dampening":{"$ref":"#/definitions/BA"},"minecraft:light_emission":{"$ref":"#/definitions/BB"},"minecraft:loot":{"$ref":"#/definitions/BC"},"minecraft:map_color":{"$ref":"#/definitions/BD"},"minecraft:material_instances":{"$ref":"#/definitions/BE"},"minecraft:placement_filter":{"$ref":"#/definitions/BF"},"minecraft:selection_box":{"$ref":"#/definitions/BJ"},"minecraft:transformation":{"$ref":"#/definitions/CA"},"minecraft:on_fall_on":{"$ref":"#/definitions/CB"},"minecraft:on_interact":{"$ref":"#/definitions/CC"},"minecraft:on_placed":{"$ref":"#/definitions/CD"},"minecraft:on_player_destroyed":{"$ref":"#/definitions/CE"},"minecraft:on_player_placing":{"$ref":"#/definitions/CF"},"minecraft:on_step_off":{"$ref":"#/definitions/CG"},"minecraft:on_step_on":{"$ref":"#/definitions/CH"},"minecraft:queued_ticking":{"$ref":"#/definitions/CI"},"minecraft:random_ticking":{"$ref":"#/definitions/CJ"}}},"C":{"title":"Collision Box","description":"This component can be specified as a Boolean. If this component is omitted, the default value for this component is true, which will give your block the default values for its parameters (a collision box the size/shape of a regular block).","oneOf":[{"type":"boolean","default":true},{"type":"object","additionalProperties":false,"properties":{"origin":{"title":"Origin","description":"Minimal position of the bounds of the collision box. origin is specified as [x, y, z] and must be in the range (-8, 0, -8) to (8, 16, 8), inclusive.","type":"array","items":[{"title":"X","type":"number","minimum":-8.0,"maximum":8},{"title":"Y","type":"number","minimum":0,"maximum":16},{"title":"Z","type":"number","minimum":-8.0,"maximum":8}]},"size":{"title":"Size","description":"Size of each side of the collision box. Size is specified as [x, y, z]. origin + size must be in the range (-8, 0, -8) to (8, 16, 8), inclusive.","type":"array","items":[{"title":"X","type":"number","minimum":-8.0,"maximum":8},{"title":"Y","type":"number","minimum":0,"maximum":16},{"title":"Z","type":"number","minimum":-8.0,"maximum":8}]}}}]},"D":{"title":"Crafting Table","description":"Makes your block into a custom crafting table which enables the crafting table UI and the ability to craft recipes.","additionalProperties":false,"type":"object","required":[],"properties":{"crafting_tags":{"title":"Crafting Tags","description":"Defines the tags recipes should define to be crafted on this table. Limited to 64 tags. Each tag is limited to 64 characters.","type":"array","maxItems":64,"items":{"type":"string","title":"Tag","description":"The tag to check for.","minLength":1,"maxLength":64}},"table_name":{"title":"Table Name","description":"Specifies the language file key that maps to what text will be displayed in the UI of this table. If the string given can not be resolved as a loc string, the raw string given will be displayed. If this field is omitted, the name displayed will default to the name specified in the \"display_name\" component. If this block has no \"display_name\" component, the name displayed will default to the name of the block.","type":"string"}}},"E":{"title":"Destructible By Explosion","description":"Describes the destructible by explosion properties for this block. If set to true, the block will have the default explosion resistance. If set to false, this block is indestructible by explosion. If the component is omitted, the block will have the default explosion resistance.","oneOf":[{"type":"boolean","default":true},{"type":"object","additionalProperties":false,"required":[],"properties":{"explosion_resistance":{"title":"Explosion Resistance","description":"Describes how resistant the block is to explosion. Greater values mean the block is less likely to break when near an explosion (or has higher resistance to explosions). The scale will be different for different explosion power levels. A negative value or 0 means it will easily explode; larger numbers increase level of resistance.","type":"number","default":0.0}}}]},"F":{"title":"Destructible By Mining","description":"Describes the destructible by mining properties for this block. If set to true, the block will take the default number of seconds to destroy. If set to false, this block is indestructible by mining. If the component is omitted, the block will take the default number of seconds to destroy.","oneOf":[{"type":"boolean","default":true},{"type":"object","additionalProperties":false,"required":[],"properties":{"seconds_to_destroy":{"title":"Seconds To Destroy","description":"Sets the number of seconds it takes to destroy the block with base equipment. Greater numbers result in greater mining times.","type":"number","default":0.0}}}]},"G":{"title":"Display Name","description":"Specifies the language file key that maps to what text will be displayed when you hover over the block in your inventory and hotbar. If the string given can not be resolved as a loc string, the raw string given will be displayed. If this component is omitted, the name of the block will be used as the display name.","type":"string"},"H":{"title":"Flammable","description":"Describes the flammable properties for this block. If set to true, default values are used. If set to false, or if this component is omitted, the block will not be able to catch on fire naturally from neighbors, but it can still be directly ignited.","oneOf":[{"type":"boolean","default":true},{"type":"object","additionalProperties":false,"required":[],"properties":{"catch_chance_modifier":{"title":"Catch Chance Modifier","description":"A modifier affecting the chance that this block will catch flame when next to a fire. Values are greater than or equal to 0, with a higher number meaning more likely to catch on fire","type":"number","default":5},"destroy_chance_modifier":{"title":"Destroy Chance Modifier","description":"A modifier affecting the chance that this block will be destroyed by flames when on fire.","type":"number","default":20}}}]},"I":{"title":"Friction","description":"Describes the friction for this block in a range of (0.0-0.9). Friction affects an entity's movement speed when it travels on the block. Greater value results in more friction.","type":"number","default":0.4,"minimum":0,"maximum":0.9},"J":{"title":"Geometry","description":"The description identifier of the geometry file to use to render this block. This identifier must match an existing geometry identifier in any of the currently loaded resource packs.","oneOf":[{"type":"string","pattern":"[a-zA-Z0-9_\\.:\\=]"},{"type":"object","additionalProperties":false,"required":["identifier"],"properties":{"identifier":{"title":"Identifier","description":"The description identifier of the geometry file to use to render this block. This identifier must match an existing geometry identifier in any of the currently loaded resource packs.","type":"string","pattern":"[a-zA-Z0-9_\\.:\\=]"},"bone_visibility":{"title":"Bone Visibility","description":"A list of bones that should be visible when rendering this block. If not specified, all bones will be visible.","type":"object","additionalProperties":{"type":"boolean","description":"Whether or not the bone should be visible.","title":"Bone Visibility"}},"culling":{"title":"Block Culling Rule","description":"The description identifer of the block culling rule used to cull this block. This identifier must match an existing geometry identifier in any of the currently loaded resource packs.","type":"string"}}}]},"BA":{"title":"Light Dampening","description":"The amount that light will be dampened when it passes through the block, in a range (0-15). Higher value means the light will be dampened more.","type":"integer","default":15,"minimum":0,"maximum":15},"BB":{"title":"Light Emission","description":"The amount of light this block will emit in a range (0-15). Higher value means more light will be emitted.","type":"integer","default":15,"minimum":0,"maximum":15},"BC":{"title":"Loot","description":"The path to the loot table, relative to the behavior pack.","type":"string","pattern":"loot_tables/.*\\.json$","maxLength":256},"BD":{"title":"Map Color","description":"Sets the color of the block when rendered to a map. The color is represented as a hex value in the format \"#RRGGBB\". May also be expressed as an array of [R, G, B] from 0 to 255. If this component is omitted, the block will not show up on the map.","oneOf":[{"type":"string","format":"colox-hex","default":"#FFFFFF"},{"type":"array","items":[{"title":"Red","type":"integer","default":0,"minimum":0,"maximum":255},{"title":"Green","type":"integer","default":0,"minimum":0,"maximum":255},{"title":"Blue","type":"integer","default":0,"minimum":0,"maximum":255}]}],"examples":["#FFFFFF",[255,255,255]]},"BE":{"title":"Material Instances","description":"The material instances for a block. Maps face or material_instance names in a geometry file to an actual material instance. You can assign a material instance object to any of these faces: \"up\", \"down\", \"north\", \"south\", \"east\", \"west\", or \"*\". You can also give an instance the name of your choosing such as \"my_instance\", and then assign it to a face by doing \"north\":\"my_instance\".","required":[],"examples":[{"*":{}},{"custom_sides":{}},{"up":{}},{"down":{}},{"north":{}},{"south":"custom_sides"},{"east":"custom_sides"},{"west":"custom_sides"}],"type":"object","additionalProperties":{"title":"Material Instance","description":"The material instance for a block. Maps face or material_instance names in a geometry file to an actual material instance. You can assign a material instance object to any of these faces: \"up\", \"down\", \"north\", \"south\", \"east\", \"west\", or \"*\". You can also give an instance the name of your choosing such as \"my_instance\", and then assign it to a face by doing \"north\":\"my_instance\".","oneOf":[{"type":"string"},{"type":"object","additionalProperties":false,"properties":{"ambient_occlusion":{"title":"Ambient Occlusion","type":"boolean","default":true,"description":"Should this material have ambient occlusion applied when lighting? If true, shadows will be created around and underneath the block."},"face_dimming":{"title":"Face Dimming","type":"boolean","default":true,"description":"Should this material be dimmed by the direction it's facing?"},"render_method":{"title":"Render Method","type":"string","default":"opaque","description":"The render method to use. Must be one of these options: opaque - Used for a regular block texture without an alpha layer. Does not allow for transparency or translucency. double_sided - Used for completely disabling backface culling. blend - Used for a block like stained glass. Allows for transparency and translucency (slightly transparent textures). alpha_test - Used for a block like the vanilla (unstained) glass. Does not allow for translucency, only fully opaque or fully transparent textures. Also disables backface culling.","markdownDescription":"The render method to use. Must be one of these options: \nopaque - Used for a regular block texture without an alpha layer. Does not allow for transparency or translucency.\ndouble_sided - Used for completely disabling backface culling.\nblend - Used for a block like stained glass. Allows for transparency and translucency (slightly transparent textures).\nalpha_test - Used for a block like the vanilla (unstained) glass. Does not allow for translucency, only fully opaque or fully transparent textures. Also disables backface culling.","enum":["opaque","double_sided","blend","alpha_test"]},"texture":{"title":"Texture","type":"string","default":"","description":"Texture name for the material."}}}]}},"BH":{"description":"A minecraft block identifier.","examples":["namespace:block"],"pattern":"^[0-9a-zA-Z:_\\.\\-]+$","title":"Block Identifier","type":"string","defaultSnippets":[{"label":"New Identifier","body":"$1:$2"}]},"BI":{"type":"string","title":"Molang","description":"Molang definition.","format":"molang","examples":["query.variant","(1.0)","query.","variable.=;"],"defaultSnippets":[{"label":"New Molang","body":"$1"}]},"BG":{"description":"A minecraft block reference.","examples":["namespace:block",{"name":"namespace:block"}],"title":"Block Reference","defaultSnippets":[{"label":"New Identifier","body":"$1:$2"}],"oneOf":[{"type":"string","$ref":"#/definitions/BH"},{"title":"Block Reference","description":"","type":"object","additionalProperties":false,"properties":{"name":{"type":"string","$ref":"#/definitions/BH"},"states":{"title":"States","description":"","type":"object","propertyNames":{"pattern":"\\w*:?\\w+"},"example":[{"property":"value"}],"additionalProperties":{"type":["boolean","integer","string"],"title":"State Value","description":"The key of property is the name of the block state/property, the value must be the same as the block properties accepted values."}},"tags":{"$ref":"#/definitions/BI","description":"A condition using Molang queries that results to true/false that can be used to query for blocks with certain tags.","examples":["query.any_tag('wood')"]}}}]},"BF":{"title":"Placement Filter","type":"object","properties":{"conditions":{"title":"Conditions","description":"List of conditions where the block can be placed/survive. Limited to 64 conditions. Each condition is a JSON Object that must contain at least one (and can contain both) of the parameters allowed_faces or block_filter as shown below.","examples":[{"allowed_faces":["up"],"block_filter":["grass"]}],"type":"array","minItems":1,"items":{"title":"Placement Filter","type":"object","additionalProperties":false,"properties":{"allowed_faces":{"title":"Allowed Faces","type":"array","description":"List of any of the following strings describing which face(s) this block can be placed on: \"up\", \"down\", \"north\", \"south\", \"east\", \"west\", \"side\", \"all\". Limited to 6 faces.","uniqueItems":true,"items":{"type":"string","enum":["up","down","north","south","east","west","side","all"]}},"block_filter":{"title":"Block Filter","type":"array","description":"List of blocks that this block can be placed against in the \"allowed_faces\" direction. Limited to 64 blocks. Each block in this list can either be specified as a String (block name) or as a BlockDescriptor. A BlockDescriptor is an object that allows you to reference a block (or multiple blocks) based on its tags, or based on its name and states. The fields of a BlockDescriptor are described below.","items":{"title":"Block Filter","description":"[Experimental]","$ref":"#/definitions/BG"}}}}}}},"BJ":{"title":"Selection Box","description":"Defines the area of the block that is selected by the player's cursor. If set to true, default values are used. If set to false, this block is not selectable by the player's cursor. If this component is omitted, default values are used.","oneOf":[{"type":"boolean"},{"type":"object","additionalProperties":false,"properties":{"origin":{"title":"Origin","default":[0,0,0],"description":"Minimal position of the bounds of the selection box. \"origin\" is specified as [x, y, z] and must be in the range (-8, 0, -8) to (8, 16, 8), inclusive.","type":"array","items":[{"title":"X","type":"number","minimum":-8.0,"maximum":8},{"title":"Y","type":"number","minimum":0,"maximum":16},{"title":"Z","type":"number","minimum":-8.0,"maximum":8}]},"size":{"title":"Size","default":[8.0,8.0,8.0],"description":"Size of each side of the selection box. Size is specified as [x, y, z]. \"origin\" + \"size\" must be in the range (-8, 0, -8) to (8, 16, 8), inclusive.","type":"array","items":[{"title":"X","type":"number","minimum":-8.0,"maximum":8},{"title":"Y","type":"number","minimum":0,"maximum":16},{"title":"Z","type":"number","minimum":-8.0,"maximum":8}]}}}]},"CA":{"title":"Transformation","description":"Supports rotation, scaling, and translation","type":"object","additionalProperties":false,"properties":{"rotation":{"title":"Rotation","description":"Rotation in xxx?","type":"array","items":[{"title":"X","description":"Rotation in xxx?","type":"number","default":0},{"title":"Y","description":"Rotation in xxx?","type":"number","default":0},{"title":"Z","description":"Rotation in xxx?","type":"number","default":0}]},"scale":{"title":"Scale","description":"UNDOCUMENTED","type":"array","items":[{"title":"X","description":"UNDOCUMENTED","type":"number","default":1},{"title":"Y","description":"UNDOCUMENTED","type":"number","default":1},{"title":"Z","description":"UNDOCUMENTED","type":"number","default":1}]},"translation":{"title":"Translation","description":"UNDOCUMENTED","type":"array","items":[{"title":"X","description":"UNDOCUMENTED","type":"number","default":0},{"title":"Y","description":"UNDOCUMENTED","type":"number","default":0},{"title":"Z","description":"UNDOCUMENTED","type":"number","default":0}]}}},"CB":{"type":"object","title":"On Fall On","description":"[Experimental] Describes event for this block.","properties":{"condition":{"type":"string","default":"","description":"The condition of event to be executed on the block.","title":"Condition"},"event":{"type":"string","default":"","description":"The event executed on the block.","title":"Event"},"min_fall_distance":{"type":"number","default":0,"description":"The minimum distance in blocks that an actor needs to fall to trigger this event.","title":"Minimum Fall Distance"},"target":{"type":"string","default":"self","description":"The target of event executed on the block.","title":"Target"}}},"CC":{"type":"object","title":"On Fall On","description":"[Experimental] Describes event for this block.","properties":{"condition":{"type":"string","default":"","description":"The condition of event to be executed on the block.","title":"Condition"},"event":{"type":"string","default":"","description":"The event executed on the block.","title":"Event"},"target":{"type":"string","default":"self","description":"The target of event executed on the block.","title":"Target"}}},"CD":{"type":"object","title":"On Placed","description":"[Experimental] Describes event for this block.","properties":{"condition":{"type":"string","default":"","description":"The condition of event to be executed on the block.","title":"Condition"},"event":{"type":"string","default":"","description":"The event executed on the block.","title":"Event"},"target":{"type":"string","default":"self","description":"The target of event executed on the block.","title":"Target"}}},"CE":{"type":"object","title":"On Player Destroyed","description":"[Experimental] Describes event for this block.","properties":{"condition":{"type":"string","default":"","description":"The condition of event to be executed on the block.","title":"Condition"},"event":{"type":"string","default":"","description":"The event executed on the block.","title":"Event"},"target":{"type":"string","default":"self","description":"The target of event executed on the block.","title":"Target"}}},"CF":{"type":"object","title":"On Player Placing","description":"[Experimental] Describes event for this block.","properties":{"condition":{"type":"string","default":"","description":"The condition of event to be executed on the block.","title":"Condition"},"event":{"type":"string","default":"","description":"The event executed on the block.","title":"Event"},"target":{"type":"string","default":"self","description":"The target of event executed on the block.","title":"Target"}}},"CG":{"type":"object","title":"On Step Off","description":"[Experimental] Describes event for this block.","properties":{"condition":{"type":"string","default":"","description":"The condition of event to be executed on the block.","title":"Condition"},"event":{"type":"string","default":"","description":"The event executed on the block.","title":"Event"},"target":{"type":"string","default":"self","description":"The target of event executed on the block.","title":"Target"}}},"CH":{"type":"object","title":"On Step On","description":"[Experimental] Describes event for this block.","properties":{"condition":{"type":"string","default":"","description":"The condition of event to be executed on the block.","title":"Condition"},"event":{"type":"string","default":"","description":"The event executed on the block.","title":"Event"},"target":{"type":"string","default":"self","description":"The target of event executed on the block.","title":"Target"}}},"CI":{"title":"Random Ticking","description":"[Experimental] Describes the component that will trigger an even at a regular interval between two values.","type":"object","additionalProperties":false,"properties":{"on_tick":{"title":"On Tick","description":"Describes the component that will trigger an even at a regular interval between two values.","type":"string","additionalProperties":false,"properties":{"condition":{"title":"Condition","type":"string","default":"1","description":"The condition of event to be executed on the block. Molang"},"event":{"title":"Event","type":"string","default":"set_block_property","description":"The type of event executed on the block."},"range":{"title":"Range","type":"array","items":[{"type":"integer"},{"type":"integer"}]},"target":{"title":"Target","description":"The target of event executed on the block.","type":"string","enum":["block","damager","other","parent","player","self","target"]}}},"looping":{"type":"boolean","default":true,"description":"Does the event loop.","title":"Looping"},"range":{"type":"array","default":[10,10],"description":"The Range between which the component will trigger his event.","title":"Range"}}},"CJ":{"title":"Random Ticking","description":"[Experimental] Triggers the specified event randomly based on the random tick speed gamerule. The random tick speed determines how often blocks are updated.","type":"object","additionalProperties":false,"properties":{"on_tick":{"title":"On Tick","description":"the event that will be triggered on random ticks."},"condition":{"title":"Condition","type":"string","default":"1","description":"A condition using Molang queries that results to true/false. If true on the random tick, the event will be triggered. If false on the random tick, the event will not be triggered."},"event":{"title":"Event","type":"string","default":"set_block_property","description":"The event that will be triggered."},"target":{"title":"Target","type":"string","default":"self","description":"The target of the event executed by the block"}}},"DA_event_base":{"title":"Event","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","type":"object","additionalProperties":false,"properties":{"condition":{"title":"Condition","description":"The condition of event to be executed on the block.","type":"string"},"event":{"title":"Event","description":"The event executed on the block.","type":"string"},"target":{"title":"Target","description":"The target of event executed on the block.","type":"string","default":"self"}}},"DA":{"title":"Events","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","type":"object","properties":{"minecraft:on_fall_on":{"$ref":"#/definitions/DA_event_base"},"minecraft:on_interact":{"$ref":"#/definitions/DA_event_base"},"minecraft:on_placed":{"$ref":"#/definitions/DA_event_base"},"minecraft:on_player_destroyed":{"$ref":"#/definitions/DA_event_base"},"minecraft:on_player_placing":{"$ref":"#/definitions/DA_event_base"},"minecraft:on_step_off":{"$ref":"#/definitions/DA_event_base"},"minecraft:on_step_on":{"$ref":"#/definitions/DA_event_base"}}},"B":{"title":"Block Definitions","description":"A custom block definition.","type":"object","additionalProperties":false,"required":["description","components"],"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":{"title":"Category","description":"Determines which category this block will be placed under in the inventory and crafting table container screens. Options are \"construction\", \"nature\", \"equipment\", \"items\", and \"none\". If omitted or \"none\" is specified, the block will not appear in the inventory or crafting table container screens.","type":"string","enum":["construction","nature","equipment","items","none"]},"group":{"title":"Group","$comment":"UNDOCUMENTED","description":"A translation string of an existing group in minecraft to group this item under","type":"string","enum":["itemGroup.name.anvil","itemGroup.name.arrow","itemGroup.name.axe","itemGroup.name.banner_pattern","itemGroup.name.banner","itemGroup.name.beacon","itemGroup.name.bed","itemGroup.name.bell","itemGroup.name.boat","itemGroup.name.boots","itemGroup.name.brick","itemGroup.name.buttons","itemGroup.name.cactus","itemGroup.name.camera","itemGroup.name.candles","itemGroup.name.chemistrytable","itemGroup.name.chest","itemGroup.name.chestboat","itemGroup.name.chestplate","itemGroup.name.clay","itemGroup.name.climbing","itemGroup.name.cobblestone","itemGroup.name.composter","itemGroup.name.concrete","itemGroup.name.concretePowder","itemGroup.name.constructionMisc","itemGroup.name.cookedFood","itemGroup.name.copper","itemGroup.name.coral_decorations","itemGroup.name.coral","itemGroup.name.craftingTables","itemGroup.name.crop","itemGroup.name.dirt","itemGroup.name.door","itemGroup.name.dye","itemGroup.name.eggBlocks","itemGroup.name.element","itemGroup.name.enchantedBook","itemGroup.name.enchantingTable","itemGroup.name.endPortalFrame","itemGroup.name.endRod","itemGroup.name.fence","itemGroup.name.fenceGate","itemGroup.name.firework","itemGroup.name.fireworkStars","itemGroup.name.flower","itemGroup.name.furnaces","itemGroup.name.glass","itemGroup.name.glassPane","itemGroup.name.glazedTerracotta","itemGroup.name.glowstone","itemGroup.name.goatHorn","itemGroup.name.grass","itemGroup.name.gravel","itemGroup.name.greenery","itemGroup.name.grindStone","itemGroup.name.helmet","itemGroup.name.hoe","itemGroup.name.horseArmor","itemGroup.name.ice","itemGroup.name.ironFence","itemGroup.name.items","itemGroup.name.leaves","itemGroup.name.lectern","itemGroup.name.leggings","itemGroup.name.lights","itemGroup.name.lingeringPotion","itemGroup.name.log","itemGroup.name.minecart","itemGroup.name.miscFood","itemGroup.name.mobEgg","itemGroup.name.monsterStoneEgg","itemGroup.name.mushroom","itemGroup.name.musicBlocks","itemGroup.name.natureBuildingBlocks","itemGroup.name.natureMisc","itemGroup.name.ore","itemGroup.name.oreBlocks","itemGroup.name.permission","itemGroup.name.pickaxe","itemGroup.name.pistons","itemGroup.name.planks","itemGroup.name.potion","itemGroup.name.pressurePlate","itemGroup.name.pumpkins","itemGroup.name.purpur","itemGroup.name.rail","itemGroup.name.rawFood","itemGroup.name.record","itemGroup.name.redstone","itemGroup.name.redstoneContainers","itemGroup.name.redstoneProducers","itemGroup.name.sand","itemGroup.name.sandstone","itemGroup.name.sapling","itemGroup.name.sculk","itemGroup.name.seed","itemGroup.name.shovel","itemGroup.name.shulkerBox","itemGroup.name.sign","itemGroup.name.skull","itemGroup.name.slab","itemGroup.name.splashPotion","itemGroup.name.stainedClay","itemGroup.name.stairs","itemGroup.name.stone","itemGroup.name.stoneBrick","itemGroup.name.sword","itemGroup.name.tnt","itemGroup.name.torch","itemGroup.name.trapdoor","itemGroup.name.walls","itemGroup.name.wood","itemGroup.name.wool","itemGroup.name.woolCarpet"]},"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":"#/definitions/BH"},"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"}]}}}},"events":{"$ref":"#/definitions/DA"},"components":{"type":"object","title":"Component","$ref":"#/definitions/B_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":"#/definitions/BI"},"components":{"type":"object","title":"Component","$ref":"#/definitions/B_components_ref"}}}}}}}} \ No newline at end of file diff --git a/resource/particles/particles.json b/resource/particles/particles.json index 27370edd..eacf28ec 100644 --- a/resource/particles/particles.json +++ b/resource/particles/particles.json @@ -1 +1 @@ -{"$schema":"http://json-schema.org/draft-07/schema","$id":"blockception.minecraft.resource.particle","examples":[{"format_version":"1.20.41","particle_effect":{"description":{"identifier":"example:particle","basic_render_parameters":{"material":"particles_alpha","texture":"textures/particle/particle"}},"curves":{},"components":{}}}],"type":"object","additionalProperties":false,"description":"A particle definition file.","title":"Particle","properties":{"format_version":{"$ref":"#/definitions/A"},"particle_effect":{"type":"object","additionalProperties":false,"description":"UNDOCUMENTED: particle effect.","title":"Particle Effect","properties":{"description":{"additionalProperties":false,"type":"object","required":["identifier","basic_render_parameters"],"properties":{"identifier":{"type":"string","description":"UNDOCUMENTED: identifier.","title":"Identifier","$ref":"#/definitions/B"},"basic_render_parameters":{"additionalProperties":false,"type":"object","description":"UNDOCUMENTED: basic render parameters.","title":"Basic Render Parameters","properties":{"material":{"type":"string","examples":["particles_alpha","particles_blend"],"description":" Minecraft material to use for emitter.","title":"Material"},"texture":{"type":"string","pattern":"^.+$","description":"Minecraft texture to use for emitter.","title":"Texture"}}}},"description":"UNDOCUMENTED: description.","title":"Description"},"curves":{"title":"Curves","description":"Curves are interpolation values, with inputs from 0 to 1, and outputs based on the curve. The result of the curve is a Molang variable of the same name that can be referenced in Molang in components. For each rendering frame for each particle, the curves are evaluated and the result is placed in a Molang variable of the name of the curve.","type":"object","propertyNames":{"pattern":"^(v|variable)\\.[a-zA-z0-9]+$"},"additionalProperties":{"type":"object","additionalProperties":false,"title":"Curve","description":"The curve definitions, conists out of a couple of nodes.","$comment":"UNDOCUMENTED","properties":{"input":{"$ref":"#/definitions/C","title":"Input","description":"What is the input value to use."},"nodes":{"description":"Control nodes for curve. These are assumed to be equally, used Object for bezier_chain","title":"Nodes","oneOf":[{"minItems":1,"type":"array","items":{"$ref":"#/definitions/C"}},{"type":"object","propertyNames":{"pattern":"(^[\\-0-9]+$|^[\\-0-9]+\\.[\\-0-9]+$)"},"additionalProperties":{"type":"object","properties":{}}}]},"type":{"type":"string","title":"Type","description":"The type of curve.","enum":["linear","bezier","bezier_chain","catmull_rom"]},"horizontal_range":{"title":"Horizontal Range","description":"What is the range the input is mapped onto.","$ref":"#/definitions/C"}}}},"components":{"additionalProperties":false,"type":"object","description":"The particle components.","title":"Components","properties":{"minecraft:emitter_initialization":{"$ref":"#/definitions/D"},"minecraft:emitter_lifetime_events":{"$ref":"#/definitions/F"},"minecraft:emitter_lifetime_expression":{"$ref":"#/definitions/G"},"minecraft:emitter_lifetime_once":{"$ref":"#/definitions/H"},"minecraft:emitter_lifetime_looping":{"$ref":"#/definitions/I"},"minecraft:emitter_local_space":{"$ref":"#/definitions/J"},"minecraft:emitter_rate_instant":{"$ref":"#/definitions/BA"},"minecraft:emitter_rate_manual":{"$ref":"#/definitions/BB"},"minecraft:emitter_rate_steady":{"$ref":"#/definitions/BC"},"minecraft:emitter_shape_box":{"$ref":"#/definitions/BD"},"minecraft:emitter_shape_custom":{"$ref":"#/definitions/BE"},"minecraft:emitter_shape_disc":{"$ref":"#/definitions/BF"},"minecraft:emitter_shape_entity_aabb":{"$ref":"#/definitions/BG"},"minecraft:emitter_shape_point":{"$ref":"#/definitions/BH"},"minecraft:emitter_shape_sphere":{"$ref":"#/definitions/BI"},"minecraft:particle_appearance_billboard":{"$ref":"#/definitions/BJ"},"minecraft:particle_appearance_tinting":{"$ref":"#/definitions/CA"},"minecraft:particle_appearance_lighting":{"$ref":"#/definitions/CB"},"minecraft:particle_expire_if_not_in_blocks":{"$ref":"#/definitions/CC"},"minecraft:particle_expire_if_in_blocks":{"$ref":"#/definitions/CE"},"minecraft:particle_initialization":{"$ref":"#/definitions/CF"},"minecraft:particle_initial_speed":{"$ref":"#/definitions/CG"},"minecraft:particle_initial_spin":{"$ref":"#/definitions/CH"},"minecraft:particle_lifetime_expression":{"$ref":"#/definitions/CI"},"minecraft:particle_lifetime_events":{"$ref":"#/definitions/CJ"},"minecraft:particle_kill_plane":{"$ref":"#/definitions/DA"},"minecraft:particle_motion_collision":{"$ref":"#/definitions/DB"},"minecraft:particle_motion_dynamic":{"$ref":"#/definitions/DC"},"minecraft:particle_motion_parametric":{"$ref":"#/definitions/DD"}}},"events":{"type":"object","description":"UNDOCUMENTED: events.","title":"Events","additionalProperties":{"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Event","type":"object","additionalProperties":false,"properties":{"particle_effect":{"title":"Particle Effect","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","properties":{"effect":{"type":"string","description":"UNDOCUMENTED: effect.","title":"Effect"},"type":{"type":"string","description":"UNDOCUMENTED: type.","title":"Type"}}},"sound_effect":{"title":"Sound Effect","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","properties":{"event_name":{"type":"string","description":"UNDOCUMENTED: effect.","title":"Event Name"}}}}}}}}},"definitions":{"A":{"title":"Format Version","description":"A version that tells minecraft what type of data format can be expected when reading this file.","pattern":"^([1-9]+)\\.([0-9]+)\\.([0-9]+)$","type":"string","default":"1.20.41","examples":["1.20.41","1.19.0","1.18.0","1.17.0","1.16.0","1.15.0","1.14.0","1.13.0","1.12.0","1.10.0","1.8.0"],"defaultSnippets":[{"label":"New Format version","body":"1.${1|8,10,12,17,18,19,20|}.${3|2|0|}"}]},"B":{"description":"The minecraft particle identifier.","examples":["namespace:particle_name"],"pattern":"^[0-9a-zA-Z:_\\.\\-]+$","title":"Particle Identifier","type":"string","defaultSnippets":[{"label":"New Identifier","body":"$1:$2"}]},"C":{"title":"Molang Number","description":"The minecraft molang definition that results in a float.","anyOf":[{"type":"string","minLength":0},{"type":"number"}],"examples":[0,"query.variant","(1.0)","query.","variable.=;"],"defaultSnippets":[{"label":"New Molang","body":"$1"}]},"E":{"type":"string","title":"Molang","description":"Molang definition.","format":"molang","examples":["query.variant","(1.0)","query.","variable.=;"],"defaultSnippets":[{"label":"New Molang","body":"$1"}]},"D":{"description":"This component allows the emitter to run some Molang at creation, primarily to populate any Molang variables that get used later.","type":"object","title":"Emitter Initialization Component For 1.10.0","additionalProperties":false,"properties":{"creation_expression":{"$ref":"#/definitions/E","description":"This is run once at emitter startup.","title":"Creation Expression"},"per_update_expression":{"$ref":"#/definitions/E","description":"This is run once per emitter update.","title":"Per Update Expression"}}},"F":{"type":"object","title":"Emitter Lifetime Events Component For 1.10.0","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","additionalProperties":false,"properties":{"creation_event":{"title":"Creation Event","description":"Fires when the emitter is created.","oneOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},"expiration_event":{"title":"Expiration Event","description":"Fires when the emitter expires (does not wait for particles to expire too).","oneOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},"timeline":{"title":"Timeline","type":"object","description":"A series of times, e.g. 0.0 or 1.0, that trigger the event, these get fired on every loop the emitter goes through, `time` is the time, e.g. one line might be: `0.4`: `event`","propertyNames":{"pattern":"^[\\d\\.]+$"},"additionalProperties":{"title":"Timeline Object","description":"A single point in time that executes commands/molang/events.","oneOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]}},"travel_distance_events":{"title":"Travel Distance Events","description":"A series of distances, e.g. 0.0 or 1.0, that trigger the event these get fired when the emitter has moved by the specified input distance, e.g. one line might be: `0.4`: `event`","propertyNames":{"pattern":"^[\\d\\.]+$"}},"looping_travel_distance_events":{"title":"Looping Travel Distance Events","description":"A series of events that occur at set intervals these get fired every time the emitter has moved the specified input distance from the last time it was fired.","type":"array","items":{"type":"object","title":"Distance Event","additionalProperties":false,"properties":{"distance":{"title":"Distance","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","type":"number"},"effects":{"title":"Effects","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","oneOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]}}}}}},"G":{"type":"object","title":"Emitter Rate Manual Component 1.10.0","description":"UNDOCUMENTED.","additionalProperties":false,"properties":{"activation_expression":{"$ref":"#/definitions/C","description":"When the expression is non-zero, the emitter will emit particles. Evaluated every frame","title":"Activation Expression"},"expiration_expression":{"$ref":"#/definitions/C","description":"Emitter will expire if the expression is non-zero. Evaluated every frame","title":"Expiration Expression"}}},"H":{"type":"object","title":"Emitter Lifetime Once Component For 1.10.0","additionalProperties":false,"properties":{"active_time":{"$ref":"#/definitions/C","description":"How long the particles emit for evaluated once.","title":"Active Time"}},"description":"UNDOCUMENTED."},"I":{"type":"object","title":"Emitter Lifetime Looping Component For 1.10.0","additionalProperties":false,"properties":{"active_time":{"$ref":"#/definitions/C","description":"Emitter will emit particles for this time per loop evaluated once per particle emitter loop.","title":"Active Time"},"sleep_time":{"$ref":"#/definitions/C","description":"Emitter will pause emitting particles for this time per loop evaluated once per particle emitter loop.","title":"Sleep Time"}},"description":"UNDOCUMENTED."},"J":{"type":"object","title":"Emitter Local Space Component For 1.10.0","description":"UNDOCUMENTED:.","additionalProperties":false,"properties":{"position":{"type":"boolean","description":"UNDOCUMENTED: position.","title":"Position"},"rotation":{"type":"boolean","description":"UNDOCUMENTED: rotation.","title":"Rotation"},"velocity":{"type":"boolean","description":"UNDOCUMENTED: rotation.","title":"Rotation"}}},"BA":{"type":"object","title":"Emitter Rate Instant Component For 1.10.0","additionalProperties":false,"properties":{"num_particles":{"$ref":"#/definitions/C","description":"This many particles are emitted at once evaluated once per particle emitter loop.","title":"Num Particles","default":10}},"description":"UNDOCUMENTED."},"BB":{"type":"object","title":"Emitter Rate Manual Component For 1.10.0","additionalProperties":false,"properties":{"max_particles":{"$ref":"#/definitions/C","description":"Evaluated once per particle emitted.","title":"Maximum Particles"}},"description":"UNDOCUMENTED."},"BC":{"type":"object","title":"Emitter Rate Steady Component For 1.10.0","additionalProperties":false,"properties":{"max_particles":{"$ref":"#/definitions/C","description":"Maximum number of particles that can be active at once for this emitter, evaluated once per particle emitter loop.","title":"Maximum Particles"},"spawn_rate":{"$ref":"#/definitions/C","description":"How often a particle is emitted, in particles/sec evaluated once per particle emitted.","title":"Spawn Rate"}},"description":"UNDOCUMENTED."},"BD":{"type":"object","title":"Emitter Shape Box Component For 1.10.0","additionalProperties":false,"properties":{"direction":{"anyOf":[{"type":"string","enum":["inwards","outwards"]},{"type":"array","items":[{"$ref":"#/definitions/C","title":"X"},{"$ref":"#/definitions/C","title":"Y"},{"$ref":"#/definitions/C","title":"Z"}]}],"description":"UNDOCUMENTED: direction.","title":"Direction"},"radius":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: radius.","title":"Radius"},"offset":{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}],"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Offset"},"half_dimensions":{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}],"description":"UNDOCUMENTED: half dimensions.","title":"Half Dimensions"},"surface_only":{"type":"boolean","description":"UNDOCUMENTED: surface only.","title":"Surface Only"}},"description":"UNDOCUMENTED."},"BE":{"type":"object","title":"Emitter Shape Custom Component For 1.10.0","additionalProperties":false,"properties":{"direction":{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}],"description":"UNDOCUMENTED: direction.","title":"Direction"},"offset":{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}],"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Offset"}},"description":"UNDOCUMENTED."},"BF":{"type":"object","title":"Emitter Shape Disc Component For 1.10.0","additionalProperties":false,"properties":{"direction":{"anyOf":[{"type":"string","enum":["inwards","outwards"]},{"type":"array","items":[{"$ref":"#/definitions/C","title":"X"},{"$ref":"#/definitions/C","title":"Y"},{"$ref":"#/definitions/C","title":"Z"}]}],"description":"UNDOCUMENTED: direction.","title":"Direction"},"radius":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: radius.","title":"Radius"},"offset":{"type":"array","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Offset","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}]},"plane_normal":{"title":"Plane Normal","description":"Specifies the normal of the disc plane, the disc will be perpendicular to this direction.","default":[0,1,0],"oneOf":[{"type":"string","enum":["x","y","z"]},{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}]}]},"surface_only":{"type":"boolean","description":"UNDOCUMENTED: surface only.","title":"Surface Only"}},"description":"UNDOCUMENTED."},"BG":{"type":"object","title":"Emitter Shape Entity Aabb Component For 1.10.0","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","additionalProperties":false,"properties":{"direction":{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}],"description":"UNDOCUMENTED: direction.","title":"Direction"},"offset":{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}],"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Offset"}}},"BH":{"type":"object","title":"Emitter Shape Point Component For 1.10.0","description":"UNDOCUMENTED.","additionalProperties":false,"properties":{"direction":{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}],"description":"UNDOCUMENTED: direction.","title":"Direction"},"offset":{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}],"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Offset"}}},"BI":{"type":"object","title":"Emitter Shape Sphere Component For 1.10.0","description":"UNDOCUMENTED.","additionalProperties":false,"properties":{"direction":{"anyOf":[{"type":"string","enum":["inwards","outwards"]},{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}]}],"description":"UNDOCUMENTED: direction.","title":"Direction"},"offset":{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}],"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Offset"},"radius":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: radius.","title":"Radius"},"surface_only":{"type":"boolean","description":"UNDOCUMENTED: surface only.","title":"Surface Only"}}},"BJ":{"type":"object","title":"Particle Appearance Billboard Component For 1.10.0","additionalProperties":false,"properties":{"size":{"type":"array","minItems":2,"maxItems":2,"items":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: size.","title":"Size"},"description":"UNDOCUMENTED: size.","title":"Size"},"facing_camera_mode":{"description":"Used to orient the billboard.","type":"string","enum":["lookat_xyz","lookat_y","rotate_xyz","rotate_y","direction_x","direction_y","direction_z"],"title":"Facing Camera Mode"},"direction":{"type":"object","description":"UNDOCUMENTED","properties":{"mode":{"type":"string","enum":["custom","derive_from_velocity"],"description":"Specified how to calculate the billboard direction of a particle."},"custom_direction":{"type":"array","minItems":3,"maxItems":3,"items":{"$ref":"#/definitions/C","description":"UNDOCUMENTED."},"description":"The facing direction of emitted particles."},"min_speed_threshold":{"type":"number","description":"The direction is set if the speed of the particle is above the threshold.","default":0.01}}},"uv":{"additionalProperties":false,"type":"object","properties":{"texture_width":{"type":"integer","description":"UNDOCUMENTED: texture width.","title":"Texture Width"},"texture_height":{"type":"integer","description":"UNDOCUMENTED: texture height.","title":"Texture Height"},"flipbook":{"additionalProperties":false,"type":"object","required":["max_frame"],"properties":{"base_UV":{"type":"array","minItems":2,"maxItems":2,"items":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: base UV.","title":"Base U V"},"description":"UNDOCUMENTED: base UV.","title":"Base U V"},"size_UV":{"type":"array","minItems":2,"maxItems":2,"items":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: size UV.","title":"Size U V"},"description":"UNDOCUMENTED: size UV.","title":"Size U V"},"step_UV":{"type":"array","minItems":2,"maxItems":2,"items":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: step UV.","title":"Step U V"},"description":"UNDOCUMENTED: step UV.","title":"Step U V"},"frames_per_second":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: frames per second.","title":"Frames Per Second"},"max_frame":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: Maximum frame.","title":"Maximum Frame"},"stretch_to_lifetime":{"type":"boolean","description":"UNDOCUMENTED: stretch to lifetime.","title":"Stretch To Lifetime"},"loop":{"type":"boolean","description":"UNDOCUMENTED: loop.","title":"Loop"}},"description":"UNDOCUMENTED: flipbook.","title":"Flipbook"},"uv":{"type":"array","minItems":2,"maxItems":2,"items":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: uv.","title":"Uv"},"description":"UNDOCUMENTED: uv.","title":"Uv"},"uv_size":{"type":"array","minItems":2,"maxItems":2,"items":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: uv size.","title":"Uv Size"},"description":"UNDOCUMENTED: uv size.","title":"Uv Size"}},"description":"UNDOCUMENTED: uv.","title":"Uv"}},"description":"UNDOCUMENTED."},"CA":{"description":"Color fields are special, they can be either an RGB, or a `#RRGGBB` field (or RGBA or `AARRGGBB`). If RGB(A), the channels are from 0 to 1. If the string `#AARRGGBB`, then the values are hex from 00 to ff.","type":"object","title":"Particle Appearance Tinting Component For 1.10.0","additionalProperties":false,"properties":{"color":{"title":"Color","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","anyOf":[{"type":"array","description":"Direct color field.","items":{"$ref":"#/definitions/C"}},{"type":"string","format":"color-hex","description":"Direct color field."},{"description":"Interpolation based color.","type":"object","additionalProperties":false,"properties":{"gradient":{"title":"Gradient","oneOf":[{"description":"An array of colors.","type":"array","items":{"type":"string","description":"Color.","title":"Color","format":"color-hex","examples":["#FFFFFF"]}},{"description":"An object of colors.","type":"object","propertyNames":{"pattern":"(^[\\-0-9]+$|^[\\-0-9]+\\.[\\-0-9]+$)"},"additionalProperties":{"type":"string","description":"Color.","format":"color-hex","examples":["#FFFFFF"]}},{"description":"An array of colors.","type":"array","items":{"type":"array","minItems":3,"items":{"oneOf":[{"type":"number","description":"Color.","title":"Color","minimum":0,"maximum":1},{"type":"string","title":"Molang"}]}}}]},"interpolant":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: interpolant.","title":"Interpolant"}}}]}}},"CB":{"type":"object","title":"Particle Appearance Lighting Component For 1.10.0","additionalProperties":false,"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED"},"CD":{"description":"A minecraft block identifier.","examples":["namespace:block"],"pattern":"^[0-9a-zA-Z:_\\.\\-]+$","title":"Block Identifier","type":"string","defaultSnippets":[{"label":"New Identifier","body":"$1:$2"}]},"CC":{"type":"array","title":"Particle Expire If Not In Blocks Component For 1.10.0","additionalProperties":false,"items":{"$ref":"#/definitions/CD","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Block"},"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED"},"CE":{"type":"array","title":"Particle Expire If Not In Blocks Component For 1.10.0","additionalProperties":false,"items":{"$ref":"#/definitions/CD","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Block"},"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED"},"CF":{"type":"object","title":"Particle Initialization Component For 1.10.0","additionalProperties":false,"properties":{"per_update_expression":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: per update expression.","title":"Per Update Expression"},"per_render_expression":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: per render expression.","title":"Per Render Expression"}},"description":"UNDOCUMENTED."},"CG":{"title":"Particle Initial Speed Component For 1.10.0","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","anyOf":[{"$ref":"#/definitions/C"},{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}]}]},"CH":{"title":"Particle Initial Spin Component For 1.10.0","description":"Starts the particle with a specified orientation and rotation rate.","additionalProperties":false,"type":"object","properties":{"rotation":{"$ref":"#/definitions/C","description":"Specifies the initial rotation in degrees.","title":"Rotation"},"rotation_rate":{"$ref":"#/definitions/C","description":"Specifies the spin rate in degrees/second.","title":"Rotation Rate"}}},"CI":{"type":"object","description":"UNDOCUMENTED:.","title":"Particle Lifetime Expression Component For 1.10.0","additionalProperties":false,"properties":{"expiration_expression":{"title":"Expiration Expression","description":"This expression makes the particle expire when true (non-zero), The float/expr is evaluated once per particle, evaluated every frame.","$ref":"#/definitions/C"},"max_lifetime":{"$ref":"#/definitions/C","description":"Alternate way to express lifetime, particle will expire after this much time, evaluated once.","title":"Maximum Lifetime"}}},"CJ":{"type":"object","title":"Particle Lifetime Events Component For 1.10.0","additionalProperties":false,"properties":{"creation_event":{"title":"Creation Event","description":"Fires when the particle is created.","oneOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},"custom_events":{"title":"Custom Events","description":"UNDOCUMENTED, unclear structure :(."},"expiration_event":{"title":"Expiration Event","description":"Fires when the particle expires (does not wait for particles to expire too).","oneOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},"timeline":{"propertyNames":{"pattern":"[0-9]*.[0-9]*"},"description":"UNDOCUMENTED: timeline.","title":"Timeline"}},"description":"UNDOCUMENTED."},"DA":{"type":"array","title":"Particle Kill Plane Component For 1.10.0","description":"A*x + B*y + C*z + D = 0\nwith the parameters being [ A, B, C, D ].","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"A"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"B"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"C"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"D"}]},"DB":{"type":"object","title":"Particle Motion Collision Component For 1.10.0","additionalProperties":false,"properties":{"collision_drag":{"type":"number","description":"UNDOCUMENTED: collision drag.","title":"Collision Drag"},"coefficient_of_restitution":{"type":"number","description":"UNDOCUMENTED: coefficient of restitution.","title":"Coefficient Of Restitution"},"collision_radius":{"type":"number","description":"UNDOCUMENTED: collision radius.","title":"Collision Radius"},"enabled":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: enabled.","title":"Enabled"},"expire_on_contact":{"type":"boolean","description":"UNDOCUMENTED: expire on contact.","title":"Expire On Contact"},"events":{"type":"array","items":{"properties":{"additionalProperties":false,"event":{"type":"string","description":"UNDOCUMENTED: event.","title":"Event"},"min_speed":{"type":"number","description":"UNDOCUMENTED: Minimum speed.","title":"Minimum Speed"}},"description":"UNDOCUMENTED: events.","title":"Events"},"description":"UNDOCUMENTED: events.","title":"Events"}},"description":"UNDOCUMENTED."},"DC":{"description":"This component specifies the dynamic properties of the particle, from a simulation standpoint what forces act upon the particle? These dynamics alter the velocity of the particle, which is a combination of the direction of the particle and the speed. Particle direction will always be in the direction of the velocity of the particle.","type":"object","title":"Particle Motion Dynamic Component For 1.10.0","additionalProperties":false,"properties":{"linear_acceleration":{"type":"array","default":[0,0,0],"minItems":3,"maxItems":3,"items":{"$ref":"#/definitions/C"},"description":"The linear acceleration applied to the particle. Units are blocks/sec/sec","title":"Linear Acceleration"},"linear_drag_coefficient":{"$ref":"#/definitions/C","description":"Using the equation: `acceleration = -linear_drag_coefficient*velocity` where velocity is the current direction times speed. Think of this as air-drag. The higher the value, the more drag evaluated every frame","default":0,"title":"Linear Drag Coefficient"},"rotation_acceleration":{"$ref":"#/definitions/C","description":"Acceleration applies to the rotation speed of the particle.","title":"Rotation Acceleration","default":0},"rotation_drag_coefficient":{"$ref":"#/definitions/C","description":"Drag applied to rotation.","title":"Rotation Drag Coefficient","default":0}}},"DD":{"type":"object","title":"Particle Motion Parametric Component For 1.10.0","additionalProperties":false,"properties":{"relative_position":{"type":"array","minItems":3,"maxItems":3,"items":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: relative position.","title":"Relative Position"},"description":"UNDOCUMENTED: relative position.","title":"Relative Position"},"rotation":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: rotation.","title":"Rotation"},"direction":{"type":"array","minItems":3,"maxItems":3,"items":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: relative position.","title":"Direction"},"description":"UNDOCUMENTED: relative position.","title":"Direction"}},"description":"UNDOCUMENTED."}}} \ No newline at end of file +{"$schema":"http://json-schema.org/draft-07/schema","$id":"blockception.minecraft.resource.particle","examples":[{"format_version":"1.20.41","particle_effect":{"description":{"identifier":"example:particle","basic_render_parameters":{"material":"particles_alpha","texture":"textures/particle/particle"}},"curves":{},"components":{}}}],"definitions":{"event":{"additionalProperties":false,"title":"Particle event","description":"The particle event.","properties":{"sequence":{"title":"Event sequence","description":"A sequence of elements to execute.","type":"array","items":{"$ref":"#/definitions/event"}},"randomize":{"title":"Event randomize","description":"A list of elements to execute one of.","type":"array","items":{"$ref":"#/definitions/event"}},"particle_effect":{"title":"Particle Effect","description":"Particle effect action.","properties":{"effect":{"type":"string","description":"Identifier of the effect.","title":"Effect"},"type":{"type":"string","description":"UNDOCUMENTED: type.","title":"Type","enum":["emitter","emitter_bound","particle","particle_with_velocity"]},"pre_effect_expression":{"type":"string","description":"Molang expression to run on the new emitter.","title":"Pre Effect Expression"}}},"sound_effect":{"title":"Sound Effect","description":"Sound effect action.","properties":{"event_name":{"type":"string","description":"Name of the level sound event.","title":"Event Name"}}},"expression":{"type":"string","description":"Molang expression to run on the event-firing emitter.","title":"Expression"},"log":{"type":"string","description":"Message to log, along with the firing effect's name and event position.","title":"Log"},"weight":{"type":"number","description":"The weight of the element.","title":"Weight"}}},"A":{"title":"Format Version","description":"A version that tells minecraft what type of data format can be expected when reading this file.","pattern":"^([1-9]+)\\.([0-9]+)\\.([0-9]+)$","type":"string","default":"1.20.41","examples":["1.20.41","1.19.0","1.18.0","1.17.0","1.16.0","1.15.0","1.14.0","1.13.0","1.12.0","1.10.0","1.8.0"],"defaultSnippets":[{"label":"New Format version","body":"1.${1|8,10,12,17,18,19,20|}.${3|2|0|}"}]},"B":{"description":"The minecraft particle identifier.","examples":["namespace:particle_name"],"pattern":"^[0-9a-zA-Z:_\\.\\-]+$","title":"Particle Identifier","type":"string","defaultSnippets":[{"label":"New Identifier","body":"$1:$2"}]},"C":{"title":"Molang Number","description":"The minecraft molang definition that results in a float.","anyOf":[{"type":"string","minLength":0},{"type":"number"}],"examples":[0,"query.variant","(1.0)","query.","variable.=;"],"defaultSnippets":[{"label":"New Molang","body":"$1"}]},"E":{"type":"string","title":"Molang","description":"Molang definition.","format":"molang","examples":["query.variant","(1.0)","query.","variable.=;"],"defaultSnippets":[{"label":"New Molang","body":"$1"}]},"D":{"description":"This component allows the emitter to run some Molang at creation, primarily to populate any Molang variables that get used later.","type":"object","title":"Emitter Initialization Component For 1.10.0","additionalProperties":false,"properties":{"creation_expression":{"$ref":"#/definitions/E","description":"This is run once at emitter startup.","title":"Creation Expression"},"per_update_expression":{"$ref":"#/definitions/E","description":"This is run once per emitter update.","title":"Per Update Expression"}}},"F":{"type":"object","title":"Emitter Lifetime Events Component For 1.10.0","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","additionalProperties":false,"properties":{"creation_event":{"title":"Creation Event","description":"Fires when the emitter is created.","oneOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},"expiration_event":{"title":"Expiration Event","description":"Fires when the emitter expires (does not wait for particles to expire too).","oneOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},"timeline":{"title":"Timeline","type":"object","description":"A series of times, e.g. 0.0 or 1.0, that trigger the event, these get fired on every loop the emitter goes through, `time` is the time, e.g. one line might be: `0.4`: `event`","propertyNames":{"pattern":"^[\\d\\.]+$"},"additionalProperties":{"title":"Timeline Object","description":"A single point in time that executes commands/molang/events.","oneOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]}},"travel_distance_events":{"title":"Travel Distance Events","description":"A series of distances, e.g. 0.0 or 1.0, that trigger the event these get fired when the emitter has moved by the specified input distance, e.g. one line might be: `0.4`: `event`","propertyNames":{"pattern":"^[\\d\\.]+$"}},"looping_travel_distance_events":{"title":"Looping Travel Distance Events","description":"A series of events that occur at set intervals these get fired every time the emitter has moved the specified input distance from the last time it was fired.","type":"array","items":{"type":"object","title":"Distance Event","additionalProperties":false,"properties":{"distance":{"title":"Distance","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","type":"number"},"effects":{"title":"Effects","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","oneOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]}}}}}},"G":{"type":"object","title":"Emitter Rate Manual Component 1.10.0","description":"UNDOCUMENTED.","additionalProperties":false,"properties":{"activation_expression":{"$ref":"#/definitions/C","description":"When the expression is non-zero, the emitter will emit particles. Evaluated every frame","title":"Activation Expression"},"expiration_expression":{"$ref":"#/definitions/C","description":"Emitter will expire if the expression is non-zero. Evaluated every frame","title":"Expiration Expression"}}},"H":{"type":"object","title":"Emitter Lifetime Once Component For 1.10.0","additionalProperties":false,"properties":{"active_time":{"$ref":"#/definitions/C","description":"How long the particles emit for evaluated once.","title":"Active Time"}},"description":"UNDOCUMENTED."},"I":{"type":"object","title":"Emitter Lifetime Looping Component For 1.10.0","additionalProperties":false,"properties":{"active_time":{"$ref":"#/definitions/C","description":"Emitter will emit particles for this time per loop evaluated once per particle emitter loop.","title":"Active Time"},"sleep_time":{"$ref":"#/definitions/C","description":"Emitter will pause emitting particles for this time per loop evaluated once per particle emitter loop.","title":"Sleep Time"}},"description":"UNDOCUMENTED."},"J":{"type":"object","title":"Emitter Local Space Component For 1.10.0","description":"UNDOCUMENTED:.","additionalProperties":false,"properties":{"position":{"type":"boolean","description":"UNDOCUMENTED: position.","title":"Position"},"rotation":{"type":"boolean","description":"UNDOCUMENTED: rotation.","title":"Rotation"},"velocity":{"type":"boolean","description":"UNDOCUMENTED: rotation.","title":"Rotation"}}},"BA":{"type":"object","title":"Emitter Rate Instant Component For 1.10.0","additionalProperties":false,"properties":{"num_particles":{"$ref":"#/definitions/C","description":"This many particles are emitted at once evaluated once per particle emitter loop.","title":"Num Particles","default":10}},"description":"UNDOCUMENTED."},"BB":{"type":"object","title":"Emitter Rate Manual Component For 1.10.0","additionalProperties":false,"properties":{"max_particles":{"$ref":"#/definitions/C","description":"Evaluated once per particle emitted.","title":"Maximum Particles"}},"description":"UNDOCUMENTED."},"BC":{"type":"object","title":"Emitter Rate Steady Component For 1.10.0","additionalProperties":false,"properties":{"max_particles":{"$ref":"#/definitions/C","description":"Maximum number of particles that can be active at once for this emitter, evaluated once per particle emitter loop.","title":"Maximum Particles"},"spawn_rate":{"$ref":"#/definitions/C","description":"How often a particle is emitted, in particles/sec evaluated once per particle emitted.","title":"Spawn Rate"}},"description":"UNDOCUMENTED."},"BD":{"type":"object","title":"Emitter Shape Box Component For 1.10.0","additionalProperties":false,"properties":{"direction":{"anyOf":[{"type":"string","enum":["inwards","outwards"]},{"type":"array","items":[{"$ref":"#/definitions/C","title":"X"},{"$ref":"#/definitions/C","title":"Y"},{"$ref":"#/definitions/C","title":"Z"}]}],"description":"UNDOCUMENTED: direction.","title":"Direction"},"radius":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: radius.","title":"Radius"},"offset":{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}],"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Offset"},"half_dimensions":{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}],"description":"UNDOCUMENTED: half dimensions.","title":"Half Dimensions"},"surface_only":{"type":"boolean","description":"UNDOCUMENTED: surface only.","title":"Surface Only"}},"description":"UNDOCUMENTED."},"BE":{"type":"object","title":"Emitter Shape Custom Component For 1.10.0","additionalProperties":false,"properties":{"direction":{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}],"description":"UNDOCUMENTED: direction.","title":"Direction"},"offset":{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}],"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Offset"}},"description":"UNDOCUMENTED."},"BF":{"type":"object","title":"Emitter Shape Disc Component For 1.10.0","additionalProperties":false,"properties":{"direction":{"anyOf":[{"type":"string","enum":["inwards","outwards"]},{"type":"array","items":[{"$ref":"#/definitions/C","title":"X"},{"$ref":"#/definitions/C","title":"Y"},{"$ref":"#/definitions/C","title":"Z"}]}],"description":"UNDOCUMENTED: direction.","title":"Direction"},"radius":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: radius.","title":"Radius"},"offset":{"type":"array","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Offset","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}]},"plane_normal":{"title":"Plane Normal","description":"Specifies the normal of the disc plane, the disc will be perpendicular to this direction.","default":[0,1,0],"oneOf":[{"type":"string","enum":["x","y","z"]},{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}]}]},"surface_only":{"type":"boolean","description":"UNDOCUMENTED: surface only.","title":"Surface Only"}},"description":"UNDOCUMENTED."},"BG":{"type":"object","title":"Emitter Shape Entity Aabb Component For 1.10.0","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","additionalProperties":false,"properties":{"direction":{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}],"description":"UNDOCUMENTED: direction.","title":"Direction"},"offset":{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}],"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Offset"}}},"BH":{"type":"object","title":"Emitter Shape Point Component For 1.10.0","description":"UNDOCUMENTED.","additionalProperties":false,"properties":{"direction":{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}],"description":"UNDOCUMENTED: direction.","title":"Direction"},"offset":{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}],"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Offset"}}},"BI":{"type":"object","title":"Emitter Shape Sphere Component For 1.10.0","description":"UNDOCUMENTED.","additionalProperties":false,"properties":{"direction":{"anyOf":[{"type":"string","enum":["inwards","outwards"]},{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}]}],"description":"UNDOCUMENTED: direction.","title":"Direction"},"offset":{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}],"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Offset"},"radius":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: radius.","title":"Radius"},"surface_only":{"type":"boolean","description":"UNDOCUMENTED: surface only.","title":"Surface Only"}}},"BJ":{"type":"object","title":"Particle Appearance Billboard Component For 1.10.0","additionalProperties":false,"properties":{"size":{"type":"array","minItems":2,"maxItems":2,"items":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: size.","title":"Size"},"description":"UNDOCUMENTED: size.","title":"Size"},"facing_camera_mode":{"description":"Used to orient the billboard.","type":"string","enum":["rotate_xyz","rotate_y","lookat_xyz","lookat_y","lookat_direction","direction_x","direction_y","direction_z","emitter_transform_xy","emitter_transform_xz","emitter_transform_yz"],"title":"Facing Camera Mode"},"direction":{"type":"object","description":"UNDOCUMENTED","properties":{"mode":{"type":"string","enum":["custom","derive_from_velocity"],"description":"Specified how to calculate the billboard direction of a particle."},"custom_direction":{"type":"array","minItems":3,"maxItems":3,"items":{"$ref":"#/definitions/C","description":"UNDOCUMENTED."},"description":"The facing direction of emitted particles."},"min_speed_threshold":{"type":"number","description":"The direction is set if the speed of the particle is above the threshold.","default":0.01}}},"uv":{"additionalProperties":false,"type":"object","properties":{"texture_width":{"type":"integer","description":"UNDOCUMENTED: texture width.","title":"Texture Width"},"texture_height":{"type":"integer","description":"UNDOCUMENTED: texture height.","title":"Texture Height"},"flipbook":{"additionalProperties":false,"type":"object","required":["max_frame"],"properties":{"base_UV":{"type":"array","minItems":2,"maxItems":2,"items":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: base UV.","title":"Base U V"},"description":"UNDOCUMENTED: base UV.","title":"Base U V"},"size_UV":{"type":"array","minItems":2,"maxItems":2,"items":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: size UV.","title":"Size U V"},"description":"UNDOCUMENTED: size UV.","title":"Size U V"},"step_UV":{"type":"array","minItems":2,"maxItems":2,"items":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: step UV.","title":"Step U V"},"description":"UNDOCUMENTED: step UV.","title":"Step U V"},"frames_per_second":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: frames per second.","title":"Frames Per Second"},"max_frame":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: Maximum frame.","title":"Maximum Frame"},"stretch_to_lifetime":{"type":"boolean","description":"UNDOCUMENTED: stretch to lifetime.","title":"Stretch To Lifetime"},"loop":{"type":"boolean","description":"UNDOCUMENTED: loop.","title":"Loop"}},"description":"UNDOCUMENTED: flipbook.","title":"Flipbook"},"uv":{"type":"array","minItems":2,"maxItems":2,"items":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: uv.","title":"Uv"},"description":"UNDOCUMENTED: uv.","title":"Uv"},"uv_size":{"type":"array","minItems":2,"maxItems":2,"items":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: uv size.","title":"Uv Size"},"description":"UNDOCUMENTED: uv size.","title":"Uv Size"}},"description":"UNDOCUMENTED: uv.","title":"Uv"}},"description":"UNDOCUMENTED."},"CA":{"description":"Color fields are special, they can be either an RGB, or a `#RRGGBB` field (or RGBA or `AARRGGBB`). If RGB(A), the channels are from 0 to 1. If the string `#AARRGGBB`, then the values are hex from 00 to ff.","type":"object","title":"Particle Appearance Tinting Component For 1.10.0","additionalProperties":false,"properties":{"color":{"title":"Color","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","anyOf":[{"type":"array","description":"Direct color field.","items":{"$ref":"#/definitions/C"}},{"type":"string","format":"color-hex","description":"Direct color field."},{"description":"Interpolation based color.","type":"object","additionalProperties":false,"properties":{"gradient":{"title":"Gradient","oneOf":[{"description":"An array of colors.","type":"array","items":{"type":"string","description":"Color.","title":"Color","format":"color-hex","examples":["#FFFFFF"]}},{"description":"An object of colors.","type":"object","propertyNames":{"pattern":"(^[\\-0-9]+$|^[\\-0-9]+\\.[\\-0-9]+$)"},"additionalProperties":{"type":"string","description":"Color.","format":"color-hex","examples":["#FFFFFF"]}},{"description":"An array of colors.","type":"array","items":{"type":"array","minItems":3,"items":{"oneOf":[{"type":"number","description":"Color.","title":"Color","minimum":0,"maximum":1},{"type":"string","title":"Molang"}]}}}]},"interpolant":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: interpolant.","title":"Interpolant"}}}]}}},"CB":{"type":"object","title":"Particle Appearance Lighting Component For 1.10.0","additionalProperties":false,"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED"},"CD":{"description":"A minecraft block identifier.","examples":["namespace:block"],"pattern":"^[0-9a-zA-Z:_\\.\\-]+$","title":"Block Identifier","type":"string","defaultSnippets":[{"label":"New Identifier","body":"$1:$2"}]},"CC":{"type":"array","title":"Particle Expire If Not In Blocks Component For 1.10.0","additionalProperties":false,"items":{"$ref":"#/definitions/CD","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Block"},"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED"},"CE":{"type":"array","title":"Particle Expire If Not In Blocks Component For 1.10.0","additionalProperties":false,"items":{"$ref":"#/definitions/CD","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Block"},"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED"},"CF":{"type":"object","title":"Particle Initialization Component For 1.10.0","additionalProperties":false,"properties":{"per_update_expression":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: per update expression.","title":"Per Update Expression"},"per_render_expression":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: per render expression.","title":"Per Render Expression"}},"description":"UNDOCUMENTED."},"CG":{"title":"Particle Initial Speed Component For 1.10.0","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","anyOf":[{"$ref":"#/definitions/C"},{"type":"array","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"X"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Y"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Z"}]}]},"CH":{"title":"Particle Initial Spin Component For 1.10.0","description":"Starts the particle with a specified orientation and rotation rate.","additionalProperties":false,"type":"object","properties":{"rotation":{"$ref":"#/definitions/C","description":"Specifies the initial rotation in degrees.","title":"Rotation"},"rotation_rate":{"$ref":"#/definitions/C","description":"Specifies the spin rate in degrees/second.","title":"Rotation Rate"}}},"CI":{"type":"object","description":"UNDOCUMENTED:.","title":"Particle Lifetime Expression Component For 1.10.0","additionalProperties":false,"properties":{"expiration_expression":{"title":"Expiration Expression","description":"This expression makes the particle expire when true (non-zero), The float/expr is evaluated once per particle, evaluated every frame.","$ref":"#/definitions/C"},"max_lifetime":{"$ref":"#/definitions/C","description":"Alternate way to express lifetime, particle will expire after this much time, evaluated once.","title":"Maximum Lifetime"}}},"CJ":{"type":"object","title":"Particle Lifetime Events Component For 1.10.0","additionalProperties":false,"properties":{"creation_event":{"title":"Creation Event","description":"Fires when the particle is created.","oneOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},"custom_events":{"title":"Custom Events","description":"UNDOCUMENTED, unclear structure :(."},"expiration_event":{"title":"Expiration Event","description":"Fires when the particle expires (does not wait for particles to expire too).","oneOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},"timeline":{"propertyNames":{"pattern":"[0-9]*.[0-9]*"},"description":"UNDOCUMENTED: timeline.","title":"Timeline"}},"description":"UNDOCUMENTED."},"DA":{"type":"array","title":"Particle Kill Plane Component For 1.10.0","description":"A*x + B*y + C*z + D = 0\nwith the parameters being [ A, B, C, D ].","items":[{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"A"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"B"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"C"},{"$ref":"#/definitions/C","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"D"}]},"DB":{"type":"object","title":"Particle Motion Collision Component For 1.10.0","additionalProperties":false,"required":["collision_radius"],"properties":{"collision_drag":{"type":"number","description":"UNDOCUMENTED: collision drag.","title":"Collision Drag"},"coefficient_of_restitution":{"type":"number","description":"UNDOCUMENTED: coefficient of restitution.","title":"Coefficient Of Restitution"},"collision_radius":{"type":"number","description":"UNDOCUMENTED: collision radius.","title":"Collision Radius"},"enabled":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: enabled.","title":"Enabled"},"expire_on_contact":{"type":"boolean","description":"UNDOCUMENTED: expire on contact.","title":"Expire On Contact"},"events":{"type":"array","items":{"properties":{"additionalProperties":false,"event":{"type":"string","description":"UNDOCUMENTED: event.","title":"Event"},"min_speed":{"type":"number","description":"UNDOCUMENTED: Minimum speed.","title":"Minimum Speed"}},"description":"UNDOCUMENTED: events.","title":"Events"},"description":"UNDOCUMENTED: events.","title":"Events"}},"description":"UNDOCUMENTED."},"DC":{"description":"This component specifies the dynamic properties of the particle, from a simulation standpoint what forces act upon the particle? These dynamics alter the velocity of the particle, which is a combination of the direction of the particle and the speed. Particle direction will always be in the direction of the velocity of the particle.","type":"object","title":"Particle Motion Dynamic Component For 1.10.0","additionalProperties":false,"properties":{"linear_acceleration":{"type":"array","default":[0,0,0],"minItems":3,"maxItems":3,"items":{"$ref":"#/definitions/C"},"description":"The linear acceleration applied to the particle. Units are blocks/sec/sec","title":"Linear Acceleration"},"linear_drag_coefficient":{"$ref":"#/definitions/C","description":"Using the equation: `acceleration = -linear_drag_coefficient*velocity` where velocity is the current direction times speed. Think of this as air-drag. The higher the value, the more drag evaluated every frame","default":0,"title":"Linear Drag Coefficient"},"rotation_acceleration":{"$ref":"#/definitions/C","description":"Acceleration applies to the rotation speed of the particle.","title":"Rotation Acceleration","default":0},"rotation_drag_coefficient":{"$ref":"#/definitions/C","description":"Drag applied to rotation.","title":"Rotation Drag Coefficient","default":0}}},"DD":{"type":"object","title":"Particle Motion Parametric Component For 1.10.0","additionalProperties":false,"properties":{"relative_position":{"type":"array","minItems":3,"maxItems":3,"items":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: relative position.","title":"Relative Position"},"description":"UNDOCUMENTED: relative position.","title":"Relative Position"},"rotation":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: rotation.","title":"Rotation"},"direction":{"type":"array","minItems":3,"maxItems":3,"items":{"$ref":"#/definitions/C","description":"UNDOCUMENTED: relative position.","title":"Direction"},"description":"UNDOCUMENTED: relative position.","title":"Direction"}},"description":"UNDOCUMENTED."}},"type":"object","additionalProperties":false,"description":"A particle definition file.","title":"Particle","properties":{"format_version":{"$ref":"#/definitions/A"},"particle_effect":{"type":"object","additionalProperties":false,"description":"UNDOCUMENTED: particle effect.","title":"Particle Effect","properties":{"description":{"additionalProperties":false,"type":"object","required":["identifier","basic_render_parameters"],"properties":{"identifier":{"type":"string","description":"UNDOCUMENTED: identifier.","title":"Identifier","$ref":"#/definitions/B"},"basic_render_parameters":{"additionalProperties":false,"type":"object","description":"UNDOCUMENTED: basic render parameters.","title":"Basic Render Parameters","properties":{"material":{"type":"string","examples":["particles_alpha","particles_blend","particles_add"],"description":" Minecraft material to use for emitter.","title":"Material"},"texture":{"type":"string","pattern":"^.+$","description":"Minecraft texture to use for emitter.","title":"Texture"}}}},"description":"UNDOCUMENTED: description.","title":"Description"},"curves":{"title":"Curves","description":"Curves are interpolation values, with inputs from 0 to 1, and outputs based on the curve. The result of the curve is a Molang variable of the same name that can be referenced in Molang in components. For each rendering frame for each particle, the curves are evaluated and the result is placed in a Molang variable of the name of the curve.","type":"object","propertyNames":{"pattern":"^(v|variable)\\.[a-zA-z0-9]+$"},"additionalProperties":{"type":"object","additionalProperties":false,"title":"Curve","description":"The curve definitions, conists out of a couple of nodes.","$comment":"UNDOCUMENTED","properties":{"input":{"$ref":"#/definitions/C","title":"Input","description":"What is the input value to use."},"nodes":{"description":"Control nodes for curve. These are assumed to be equally, used Object for bezier_chain","title":"Nodes","oneOf":[{"minItems":1,"type":"array","items":{"$ref":"#/definitions/C"}},{"type":"object","propertyNames":{"pattern":"(^[\\-0-9]+$|^[\\-0-9]+\\.[\\-0-9]+$)"},"additionalProperties":{"type":"object","properties":{}}}]},"type":{"type":"string","title":"Type","description":"The type of curve.","enum":["linear","bezier","bezier_chain","catmull_rom"]},"horizontal_range":{"title":"Horizontal Range","description":"What is the range the input is mapped onto.","$ref":"#/definitions/C"}}}},"components":{"additionalProperties":false,"type":"object","description":"The particle components.","title":"Components","properties":{"minecraft:emitter_initialization":{"$ref":"#/definitions/D"},"minecraft:emitter_lifetime_events":{"$ref":"#/definitions/F"},"minecraft:emitter_lifetime_expression":{"$ref":"#/definitions/G"},"minecraft:emitter_lifetime_once":{"$ref":"#/definitions/H"},"minecraft:emitter_lifetime_looping":{"$ref":"#/definitions/I"},"minecraft:emitter_local_space":{"$ref":"#/definitions/J"},"minecraft:emitter_rate_instant":{"$ref":"#/definitions/BA"},"minecraft:emitter_rate_manual":{"$ref":"#/definitions/BB"},"minecraft:emitter_rate_steady":{"$ref":"#/definitions/BC"},"minecraft:emitter_shape_box":{"$ref":"#/definitions/BD"},"minecraft:emitter_shape_custom":{"$ref":"#/definitions/BE"},"minecraft:emitter_shape_disc":{"$ref":"#/definitions/BF"},"minecraft:emitter_shape_entity_aabb":{"$ref":"#/definitions/BG"},"minecraft:emitter_shape_point":{"$ref":"#/definitions/BH"},"minecraft:emitter_shape_sphere":{"$ref":"#/definitions/BI"},"minecraft:particle_appearance_billboard":{"$ref":"#/definitions/BJ"},"minecraft:particle_appearance_tinting":{"$ref":"#/definitions/CA"},"minecraft:particle_appearance_lighting":{"$ref":"#/definitions/CB"},"minecraft:particle_expire_if_not_in_blocks":{"$ref":"#/definitions/CC"},"minecraft:particle_expire_if_in_blocks":{"$ref":"#/definitions/CE"},"minecraft:particle_initialization":{"$ref":"#/definitions/CF"},"minecraft:particle_initial_speed":{"$ref":"#/definitions/CG"},"minecraft:particle_initial_spin":{"$ref":"#/definitions/CH"},"minecraft:particle_lifetime_expression":{"$ref":"#/definitions/CI"},"minecraft:particle_lifetime_events":{"$ref":"#/definitions/CJ"},"minecraft:particle_kill_plane":{"$ref":"#/definitions/DA"},"minecraft:particle_motion_collision":{"$ref":"#/definitions/DB"},"minecraft:particle_motion_dynamic":{"$ref":"#/definitions/DC"},"minecraft:particle_motion_parametric":{"$ref":"#/definitions/DD"}}},"events":{"type":"object","description":"UNDOCUMENTED: events.","title":"Events","additionalProperties":{"$ref":"#/definitions/event"}}}}}} \ No newline at end of file