10 Commits

Author SHA1 Message Date
Hell13Cat 566d23ffeb Update cleric_trades.json 2022-01-25 18:32:21 +03:00
Hell13Cat 83bd4c811f Очистка рецептов 2022-01-25 18:22:43 +03:00
Hell13Cat bf6288c34f Create .gitignore 2022-01-25 18:19:06 +03:00
Hell13Cat a763848808 build0006 2022-01-23 23:40:37 +03:00
Hell13Cat 1b2c9d5f40 build0005 2022-01-23 22:56:10 +03:00
Hell13Cat 2552f64a00 build0004 2022-01-23 22:43:10 +03:00
Hell13Cat 573761dec9 build0003 2022-01-23 22:40:31 +03:00
Hell13Cat 5393ff36f5 build0002 2022-01-23 22:06:04 +03:00
Hell13Cat f6df4d81e9 Изменение имени 2022-01-23 22:01:23 +03:00
Hell13Cat 32a05601dc build0001 2022-01-23 21:52:52 +03:00
1208 changed files with 31 additions and 68206 deletions
+2
View File
@@ -0,0 +1,2 @@
MWRecipes.mcpack
File diff suppressed because it is too large Load Diff
-676
View File
@@ -1,676 +0,0 @@
<h1>ANIMATIONS DOCUMENTATION </br>Version: 1.18.1.2</h1>
<h2><p id="Index">Index</p></h2>
<table border="1">
<tr> <th><a href="#Animation Controllers">Animation Controllers</a></th> </tr>
<tr> <td> <a href="#"> </a> </tr> </td>
<tr> <td> <a href="#State Blending"> State Blending</a> </tr> </td>
<tr> <td> <a href="#State Transitions"> State Transitions</a> </tr> </td>
<tr> <td> <a href="#States"> States</a> </tr> </td>
<tr> <th><a href="#Channels (Rotation, Position, Scale)">Channels (Rotation, Position, Scale)</a></th> </tr>
<tr> <th><a href="#Entity Animation Format Examples">Entity Animation Format Examples</a></th> </tr>
<tr> <th><a href="#Getting Started">Getting Started</a></th> </tr>
<tr> <td> <a href="#Adding Animations"> Adding Animations</a> </tr> </td>
<tr> <td> <a href="#Animation Hierarchy"> Animation Hierarchy</a> </tr> </td>
<tr> <td> <a href="#Upgrade from v1.10 to v1.17.30"> Upgrade from v1.10 to v1.17.30</a> </tr> </td>
<tr> <td> <a href="#Upgrade from v1.7 Beta to v1.8"> Upgrade from v1.7 Beta to v1.8</a> </tr> </td>
<tr> <td> <a href="#Upgrade from v1.8 Beta to v1.10"> Upgrade from v1.8 Beta to v1.10</a> </tr> </td>
<tr> <th><a href="#Key Frames">Key Frames</a></th> </tr>
<tr> <td> <a href="#Interpolation"> Interpolation</a> </tr> </td>
<tr> <th><a href="#Names">Names</a></th> </tr>
<tr> <th><a href="#Overview">Overview</a></th> </tr>
<tr> <th><a href="#Render Controllers">Render Controllers</a></th> </tr>
<tr> <td> <a href="#Examples"> Examples</a> </tr> </td>
<tr> <td> <a href="#Getting Started"> Getting Started</a> </tr> </td>
<tr> <th><a href="#Transforms">Transforms</a></th> </tr>
</table>
<a href="#Index">Back to top</a>
<h1><p id="Animation Controllers">Animation Controllers</p></h1>
Animation controllers decide which animations to play when. Each controller contains a list of states that play one or more animations, each of which can be blended by a Molang expression if so desired. Controller files are stored as JSON in the animation_controllers folder</br><h2></h2>
Animation Controller Format:<br / ><textarea readonly="true" cols="59" rows="24">
{
"format_version": "1.17.30",
"animation_controllers": {
"controller.animation.sheep.move": {
"states": {
"default": {
"animations": [
{ "walk": "query.modified_move_speed" }
],
"transitions": [
{ "grazing": "query.is_grazing" }
]
},
"grazing": {
"animations": [ "grazing" ],
"transitions": [
{ "default": "query.all_animations_finished" }
]
}
}
}
}
}
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<h1><p id="State Blending">State Blending</p></h1>
If you would like there to be a cross-fade between states when transitioning, simply set "blend_transition" to the time you would like the system to take in blending between the two states. This is done as a simple lerp between the two states over the time specified.</br><h2></h2>
For example: <br / ><textarea readonly="true" cols="156" rows="18">
"controller.animation.tiger.move": {
"states": {
"default": {
"animations": [ "base_pose", "walk" ],
"transitions": [
{ "angry": "query.is_angry" } // transition to angry state if query.is_angry returns true
],
"blend_transition": 0.2 // when transitioning away from this state, cross-fade over 0.2 seconds
},
"angry": {
"animations": [ "roar", "extend_claws" ],
"transitions": [
{ "default": "query.any_animation_finished" } // transition back to default state when either the roar animation or extend_claws animation finishes
]
}
}
}
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<h1><p id="State Transitions">State Transitions</p></h1>
A state can specify any number of transition scripts, listed in order. Each transition has a target state to switch to, and a script for whether it should switch or not. For each transition in order, evaluate the script, and if it returns non-zero, switch to the specified state immediately. NOTE: Only one transition will be processed per frame.</br><h2></h2>
<br / ><textarea readonly="true" cols="71" rows="17">
"<controller_name>": {
"states": {
"<state_name>": {
...
"transitions": [
// Evaluate the below expressions in order.
// The first to return non-zero is the state to transition to.
// If all are zero, then don't transition.
{ "<target_state_name_A>", "<expression>" },
{ "<target_state_name_B>", "<expression>" },
...
]
}
},
...
}
</textarea> </br>
For example: <br / ><textarea readonly="true" cols="156" rows="24">
"controller.animation.tiger.move": {
"states": {
"default": {
"animations": [ "base_pose", "walk" ],
"transitions": [
{ "angry": "query.is_angry" }, // transition to angry state if query.is_angry returns true
{ "tired": "variable.is_tired" } // transition to tired state if variable.is_tired returns true
]
},
"angry": {
"animations": [ "roar", "extend_claws" ],
"transitions": [
{ "default": "query.any_animation_finished" } // transition back to default state when either the roar animation or extend_claws animation finishes
]
},
"tired": {
"animations": [ "yawn", "stretch" ],
"transitions": [
{ "default": "query.all_animation_finished" } // transition back to default state when the yawn and stretch animations have both finished
]
}
}
}
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<h1><p id="States">States</p></h1>
A state defines a group of animations to process (each of which can have it's own blend value). Each state has an optional variables section, listing any number of variables that referenced animations can use. Each state also has one or more animations, using the name given in the entity's definition json.</br><h2></h2>
<h2><p id="State Variables">State Variables</p></h2>
Variables are either set by the game or by a user defined script that can be found in the entity definition json found in definitions/entity/<entity_name>.json. Variables have their value set by a Molang Expression. They can also have their value remapped via a linearly-interpolated curve.</br><h3></h3>
<h3><p id="For Example:">For Example:</p></h3>
This defines a controller with a single state. It will create a variable `variable.ground_speed_curve` that lives on the entity only while processing the animation controller for that frame. It will take the value of `query.ground_speed`, then remap it to between 0.2 and 0.7 based on the value of `query.ground_speed` going from 0.0 to 1.0It will play one animation walk that will blend from 0.0 to 1.0 as the ground speed increases from stopped to 2.3 m/s. The remap curve can have any number of entries. The animation controller will then play the entity-referenced `wiggle_nose` animations, followed by the `walk` animation, scaling the latter by the value of `variable.ground_speed_curve`</br><h4></h4>
<br / ><textarea readonly="true" cols="54" rows="27">
```
{
"format_version": "1.17.30",
"animation_controllers": {
"controller.animation.sheep.move": {
"states": {
"default": {
"variables": {
"ground_speed_curve": {
"input": "query.ground_speed",
"remap_curve": {
"0.0": 0.2,
"1.0": 0.7
}
}
},
"animations": [
"wiggle_nose",
{ "walk": "variable.ground_speed_curve" }
]
}
}
}
}
}
```
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<br><br>
<h2><p id="User-Defined Script Example">User-Defined Script Example</p></h2>
This script will set foo to the result of the sine of query.life_time to later be used in the animation or animation controller.</br></br>Note: "pre_animation" tells the script to figure out the values of those variables once a frame, before animation occurs, so that the animation can use those values in their own formulas. If a variable didn't exist, it will create a new variable and its default value will be 0.0</br><h3></h3>
Note in this example that because foo is equal to a sin wave, that its values will range from -1 to 1. This means that you will have a period from 0 to -1 to 0 where only "base_pose" will play and then an equal amount of time where Walk will play on top of base_pose as foo goes from 0 to 1 back to 0. Base_pose will have a blend value of 1.0.</br><h4></h4>
<br / ><textarea readonly="true" cols="78" rows="14">
"controller.animation.tiger.move": {
"states": {
"default": {
"animations": [
//animations are ADDITIVE unless otherwise specified
//in this case, base_pose will always be playing in the default state
//walk will play as well if Entity.foo is greater than 0.0
"base_pose",
{ "walk": "variable.foo > 0.0" }
]
}
}
}
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<h3><p id="In definitions\entity\tiger.json:">In definitions\entity\tiger.json:</p></h3>
<h4></h4>
<br / ><textarea readonly="true" cols="51" rows="10">
{
"custom:tiger":{
"scripts":{
"pre_animation": {
"variable.foo = math.sin(query.life_time)"
}
}
}
}
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<br><br>
<br><br>
<br><br>
<h1><p id="Channels (Rotation, Position, Scale)">Channels (Rotation, Position, Scale)</p></h1>
The engine tracks the animation of rotation, position, and scale separately. Within a channel, one or more key frames are specified at arbitrary times, in seconds, from the start of the animation. If no key frames are specified, a single key frame is created at t=0.0 and all channel data is stored within that key frame.</br><a href="#Index">Back to top</a><br><br>
<h1><p id="Entity Animation Format Examples">Entity Animation Format Examples</p></h1>
The json format for an animation is as follows. Note Matching the geometry format, units are in 1/16ths of meters.</br><h2></h2>
<br / ><textarea readonly="true" cols="192" rows="32">
```
<animation_name>": {
// optional
"loop": <bool> // default = false. Should the animation loop back to t=0.0 when it finishes?
"blend_weight": <expression> // default = "1.0". How much this animation is blended with the others. 0.0 = off. 1.0 = fully apply all transforms. Can be an expression - see the Animation Controller section below
"animation_length": <float> // default = time of last key frame. At what time does the system consider this animation finished?
"override_previous_animation": <bool> // default = false. Should the animation pose of the bone be set to the bind pose before applying this animation, thereby overriding any previous animations to this point?
// required
"bones": [
{
"<bone_name>": { // must match the name of the bone specified in the geometry skeleton
// various flavours of setting data
// omitting a channel skips that channel for this animation of this bone
// any number of floats below can be replaced by a string expression as described above; you don't have to replace all the floats on a line with expressions, only the ones you want to be expression-based
"position": 1.0, // set x, y, and z to 1
"position": [1.0], // set x, y, and z to 1
"position": [1.0, 2.0, 3.0], // set x=1 , y=2 , and z=3
"rotation": 45.0, // set x, y, and z to 45 degrees
"rotation": [45.0], // set x, y, and z to 45 degrees
"rotation": [30.0, 0.0, 45.0], // set x, y, and z to the respective values (in degrees)
// note: only uniform scaling is supported at this time
"scale": 2.0, // scales the bone by 2.0
"scale": [2.0], // scales the bone by 2.0
// Key frame data is described below
// Note that any of the above styles of values will work for "pre" and "post", and "pre" does not have to have the same format as "post"
"rotation": {
"0.0": [80.0, 0.0, 0.0],
"0.1667": [-80.0, 0.0, 0.0],
"0.333": [80.0, 0.0, 0.0]
}
// For discontinuous channel curve, you can specify a different value when interpolating to/from this key frame
"rotation": {
"0.3": { // the key field is the time stamp for this key frame: the value can be any of the above examples
"pre": [30.0, 0.0, 45.0], // when interpolating towards this key frame from the previous, use this value
"post": "180.0 * Math.Sin(global.key_frame_lerp_time)" // when at interpolating away from this key frame to the next, use this value
}
}
// another example
"rotation": {
"0.0": [80.0, 0.0, 0.0], // start at an x rotation of 80 degrees
"0.4": {
"pre": [80.0, 0.0, 0.0], // stay at 80 until 0.4 seconds have elapsed
"post": [0.0, 0.0, 0.0], // discontinuously pop the x rotation to 0.0 degrees
},
"0.8": [-80.0, 0.0, 0.0] // using the previous frame's lerp mode, lerp to a x rotation of -80 degrees by 0.8 seconds
}
}
]
}
```
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<h1><p id="Getting Started">Getting Started</p></h1>
<h1><p id="Adding Animations">Adding Animations</p></h1>
<h2></h2>
<h2><p id="Animation Controller">Animation Controller</p></h2>
One needs to be able to control how animations are played, when, and how they interact with other animations. to group animations While a lot of this can be managed in the entity definition `scripts/animate` section, animation controllers give you the functionality of a state machine into states and control them as a block. Animations in an animation controller state can be animation controllers themselves, allowing for arbitrarily complex animation hierarchies.</br><h3></h3>
Here's a sample animation controller<br / ><textarea readonly="true" cols="58" rows="27">
{
"format_version": "1.17.30",
"animation_controllers": {
"controller.animation.my_mob.move": {
"initial_state": "moving",
"states": {
"moving": {
"animations": [
"wag_tail",
"wiggle_ears",
{ "walk": "query.modified_move_speed" }
],
"transitions": [
{ "grazing": "query.is_grazing" }
]
},
"grazing": {
"animations": [ "grazing" ],
"transitions": [
{ "moving": "query.all_animations_finished" }
]
}
}
}
}
}
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<h2><p id="Animations">Animations</p></h2>
At the beginning of each frame, the skeleton is reset to its default pose from its geometry definition and then animations are applied per-channel-additively in order. Note that the channels (x, y, and z) are added separately across animations first, then converted to a transform once all animations have been cumulatively applied.</br><h3></h3>
<h3><p id="Animation data can be either raw data:">Animation data can be either raw data:</p></h3>
<h4></h4>
By default, rotations are in degrees, in euler X-then-Y-then-Z format<br / ><textarea readonly="true" cols="29" rows="2">
"rotation": [90.0, 0.0, 0.0]
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<h3><p id="or a run-time interpreted script:">or a run-time interpreted script:</p></h3>
<h4></h4>
<br / ><textarea readonly="true" cols="80" rows="2">
"rotation": ["cos(query.anim_pos * 38.17) * 80.0 * query.anim_speed", 0.0, 0.0]
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<h3></h3>
Here is an example from quadruped.animation.json in the vanilla resource pack's animation folder:<br / ><textarea readonly="true" cols="91" rows="16">
{
"format_version": "1.8.0",
"animations": {
"animation.quadruped.walk": {
"anim_time_update": "query.modified_distance_moved",
"loop": true,
"bones": {
"leg0": { "rotation": [ "Math.cos(query.anim_time * 38.17) * 80.0", 0.0, 0.0 ] },
"leg1": { "rotation": [ "Math.cos(query.anim_time * 38.17) * -80.0", 0.0, 0.0 ] },
"leg2": { "rotation": [ "Math.cos(query.anim_time * 38.17) * -80.0", 0.0, 0.0 ] },
"leg3": { "rotation": [ "Math.cos(query.anim_time * 38.17) * 80.0", 0.0, 0.0 ] }
}
}
}
}
</textarea> </br>
<br><br>
<h2><p id="Entity Definition">Entity Definition</p></h2>
In order to define what animations an entity has, you must add both an `animations` and a `scripts/animate` section to an entity's entity definition file.</br><h3></h3>
Here you can see the entity definition for pig.json:This means you will not see the move animation in the pig.json animation file either. If you would like to make a custom pig walk you can change this line to point to your custom animation.</br></br>Animations are specified as a short name, followed by their full resource name. The short name is used in animation controllers and the `scripts/animate` list, while the long name is used in the animations file.</br></br>In the `scripts/animate` section, you list the animations to play and in which order. You can either specify an animation directly, or specify a blend expression.</br><h4></h4>
<br / ><textarea readonly="true" cols="61" rows="32">
{
"format_version": "1.10.0",
"minecraft:client_entity": {
"description": {
"identifier": "minecraft:pig",
"min_engine_version": "1.8.0",
"materials": { "default": "pig" },
"textures": {
"default": "textures/entity/pig/pig",
"saddled": "textures/entity/pig/pig_saddle"
},
"geometry": {
"default": "geometry.pig.v1.8"
},
"animations": {
"setup": "animation.pig.setup",
"walk": "animation.quadruped.walk",
"look_at_target": "animation.common.look_at_target",
"baby_transform": "animation.pig.baby_transform"
},
"scripts": {
"animate": [
"setup",
{ "walk": "query.modified_move_speed" },
"look_at_target",
{ "baby_transform": "query.is_baby" }
]
},
"render_controllers": [ "controller.render.pig" ],
"spawn_egg": {
"texture": "spawn_egg",
"texture_index": 2
}
}
}
}
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<br><br>
<br><br>
<h1><p id="Animation Hierarchy">Animation Hierarchy</p></h1>
Animations are channel based (rotation, position, or scale), and within that, they are key-framed:</br></br>EntityAnimation: animation name</br>__BoneAnimation[]: bone name to animation for this animation</br>____AnimationChannel[]: rotation, scale, or translation to animate</br>______KeyFrame[]: the value for the channel to be at, at a specific time</br></br>All of the above concepts are described in a detailed, bottom-up approach below</br><a href="#Index">Back to top</a><br><br>
<h1><p id="Upgrade from v1.10 to v1.17.30">Upgrade from v1.10 to v1.17.30</p></h1>
The major change with 1.17.30 is:</br>- Molang expressions inside transitions that contain capital letters are properly evaluated now. Strings inside such expressions are not forced to lowercase anymore and work as expected.</br><a href="#Index">Back to top</a><br><br>
<h1><p id="Upgrade from v1.7 Beta to v1.8">Upgrade from v1.7 Beta to v1.8</p></h1>
There have been few changes as we clean things up based on feedback and as we push the tech along the road map.To upgrade previous scripts, you'll want to do the following steps to all of your Molang scripts in the order listed:</br>1) entity.flags.foo --> query.foo</br>2) entity.member.foo --> query.foo</br>3) entity.foo --> variable.foo</br>4) params.foo --> global.foo</br>5) The general rule is that 'query' represents read-only values from the entity the script is running on, and 'variable' represents read-write data created by the user.</br>6) We've adopted snake_case for all names of things. You are welcome to use upper-case letters if you wish as we are case-insensitive, however we recommend snake_case in general.</br>7) Several variables previously set on mobs have been changed to use the query.foo format. Look through the updated list below to see what has been added and changed.</br><a href="#Index">Back to top</a><br><br>
<h1><p id="Upgrade from v1.8 Beta to v1.10">Upgrade from v1.8 Beta to v1.10</p></h1>
The three major changes with 1.10 are</br>- the ability to have animations reference other animations in an arbitrarily deep hierarchy.</br>- the parameters section of animation controllers has been replaced with the `variables` section.</br>- in the entity definition file, animation controllers are now listed in the `animations` section, and a `scriptsnimate` section has been added to define which root animations to play.</br>The v1.8 file format is backwards-compatible with v1.10 so you don't _need_ to change anything (although we recommend refactoring your files in the spirit of v1.10 as there is a slight performance win with the new format, as well as it being simpler to understand.</br><a href="#Index">Back to top</a><br><br>
<br><br>
<h1><p id="Key Frames">Key Frames</p></h1>
A key frame defines two values for a channel-specific transform to a specific bone at a specified time, one as time approaches the key frame time, and the second from that key frame time onwards.</br>As such, when interpolating between two key frames, one can define the slope of the animation curve in either a continuous or discontinuous manner.</br><h1><p id="Interpolation">Interpolation</p></h1>
Currently only linear interpolation is supported. Key frame "pre" and "post" settings allow control of the interpolation curve at any key frame.</br><h2></h2>
<h2><p id="Continuous Example">Continuous Example</p></h2>
This example spins the bone "head" around the y axis 1 rotation in 1 second.</br>Note that because interpolation is linear, at .25 seconds the head will be rotated to 90 degrees.</br><h3></h3>
<br / ><textarea readonly="true" cols="25" rows="8">
"head": {
"rotation": {
"0.0":[0, 0, 0],
"0.5": [ 0, 180, 0],
"1.0": [0, 360, 0]
}
}
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<h2><p id="Discontinuous Example">Discontinuous Example</p></h2>
Discontinuous just means that there won't be a smooth transition between key frames. It is useful if you want something to happen immediately.</br>This example scales the bone "head":</br>1. From 0 to 0.5 seconds (in the "pre" tag), the head bone is set to its normal scale of 1 in all dimensions [X, Y, Z]</br>2. At 0.5 seconds, the bone will instantly scale up to 2 times its normal size</br>3. From 0.5 to 1 second ("post"), the bone will re-scale back to its normal size of scale of 1 in all dimensions</br></br>Note In the larger example above of the file format, "pre" and "post" can also be defined by a Molang expression that calculates that value at runtime, allowing you to have a mathematically defined curve instead of being purely linear.</br><h3></h3>
<br / ><textarea readonly="true" cols="24" rows="10">
"head": {
"scale": {
"0.5": {
"pre": [1, 1, 1],
"post": 2.0
}
"1.0": [ 1.0 ]
}
}
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<br><br>
<br><br>
<h1><p id="Names">Names</p></h1>
All names: animations, bones, states, etc, must all start with a letter and contain only alphanumerics, underscore, or period. It is recommended to use names in all lower-case</br><a href="#Index">Back to top</a><br><br>
<h1><p id="Overview">Overview</p></h1>
The follows the current Minecraft JSON paradigms:</br>- Fields should be lower-case and use underscores (no spaces)</br>- All JSON files in the definitions directory and subtree will be read into and interpreted by the animation system</br><a href="#Index">Back to top</a><br><br>
<h1><p id="Render Controllers">Render Controllers</p></h1>
The Render Controller needs an identifier and needs to follow the format of "controller.render.<name>". This name needs to match the name set in the Client Entity Definitions JSON.</br></br>Render Controllers are a way for the player to determine what renders on the entity. Players can set the geometry, materials, textures, and part visibility of the entity. In addition to setting the keys directly, players can use arrays to have the entity choose between different options.</br><h1><p id="Examples">Examples</p></h1>
<h2></h2>
<h3></h3>
Example Array for geometry from the sheep JSON<br / ><textarea readonly="true" cols="59" rows="8">
"arrays": {
"geometries": {
"Array.geos": ["Geometry.default", "Geometry.sheared"]
}
},
"geometry": "Array.geos[query.is_sheared]",
</textarea> </br>
Example Array for materials from the spider JSON<br / ><textarea readonly="true" cols="66" rows="8">
"arrays": {
"materials": {
"Array.materials": ["Material.default", "Material.invisible"]
}
},
"materials": [{ "*": "Array.materials[query.is_invisible]" }],
</textarea> </br>
Example Array for textures from the villager JSON<br / ><textarea readonly="true" cols="113" rows="8">
"arrays": {
"textures": {
"Array.skins": ["Texture.farmer", "Texture.librarian", "Texture.priest", "Texture.smith", "Texture.butcher"]
}
},
"textures": ["Array.skins[query.variant]"]
</textarea> </br>
Example with color for tinting of parts from Armor 1.0 render controller JSON:<br / ><textarea readonly="true" cols="94" rows="32">
"format_version": "1.8.0",
"render_controllers": {
"controller.render.armor.chest.v1.0": {
"arrays": {
"materials": {
"array.armor_material": [
"material.armor",
"material.armor_enchanted",
"material.armor_leather",
"material.armor_leather_enchanted"
]
},
"textures": {
"array.armor_texture": [
"texture.leather",
"texture.chain",
"texture.iron",
"texture.diamond",
"texture.gold"
]
}
},
"geometry": "geometry.armor",
"materials" : [
{ "body": "array.armor_material[query.armor_material_slot(1)]" },
{ "leftarm": "array.armor_material[query.armor_material_slot(1)]" },
{ "rightarm": "array.armor_material[query.armor_material_slot(1)]" }
],
"part_visibility" : [
{ "*": 0 },
{ "body": "query.has_armor_slot(1)" },
{ "leftarm": "query.has_armor_slot(1)" },
{ "rightarm": "query.has_armor_slot(1)" }
],
"color": {
"r": "query.armor_color_slot(1, 0)",
"g": "query.armor_color_slot(1, 1)",
"b": "query.armor_color_slot(1, 2)",
"a": "query.armor_color_slot(1, 3)"
},
"textures": ["array.armor_texture[query.armor_texture_slot(1)]", "texture.enchanted"]
}
}
</textarea> </br>
Example with is_hurt_color from Creeper render controller JSON:<br / ><textarea readonly="true" cols="53" rows="16">
"format_version": "1.8.0",
"render_controllers": {
"controller.render.creeper": {
"geometry" : "Geometry.default",
"materials" : [{ "*": "Material.default" }],
"textures" : "Texture.default",
"is_hurt_color" : {
"r": 0.0,
"g": 0.0,
"b": 1.0,
"a": 0.5,
}
}
}
</textarea> </br>
Example with on_fire_color from Fireball render controller JSON:<br / ><textarea readonly="true" cols="53" rows="16">
"format_version": "1.8.0",
"render_controllers": {
"controller.render.fireball": {
"geometry" : "Geometry.default",
"materials" : [{ "*": "Material.default" }],
"textures" : "Texture.default",
"on_fire_color" : {
"r": 0.0,
"g": 0.0,
"b": 0.0,
"a": 0.0,
}
}
}
</textarea> </br>
Example with overlay_color from Wither Boss render controller JSON:<br / ><textarea readonly="true" cols="78" rows="21">
"format_version": "1.8.0",
"render_controllers": {
"controller.render.wither_boss": {
"arrays": {
"textures": {
"Array.wither_state": ["Texture.invulnerable", "Texture.default"]
}
},
"geometry" : "Geometry.default",
"materials" : [{ "*": "Material.default" }],
"textures" : ["Array.wither_state[variable.display_normal_skin]"],
"overlay_color" : {
"r": "variable.is_invulnerable ? 1.0 : this",
"g": "variable.is_invulnerable ? 1.0 : this",
"b": "variable.is_invulnerable ? 1.0 : this",
"a": "variable.is_invulnerable ? query.overlay_alpha : this"
}
}
}
</textarea> </br>
Example with part_visibility for turning on and off visibility of parts from Llama JSON:<br / ><textarea readonly="true" cols="192" rows="21">
"format_version": "1.8.0",
"render_controllers": {
"controller.render.llama": {
"arrays": {
"textures": {
"Array.base": ["Texture.creamy", "Texture.white", "Texture.brown", "Texture.gray"],
"Array.decor": ["Texture.decor_none", "Texture.decor_white", "Texture.decor_orange", "Texture.decor_magenta", "Texture.decor_light_blue", "Texture.decor_yellow", "Texture.decor_lime", "Texture.decor_pink", "Texture.decor_gray", "Texture.decor_silver", "Texture.decor_cyan", "Texture.decor_purple", "Texture.decor_blue", "Texture.decor_brown", "Texture.decor_green", "Texture.decor_red", "Texture.decor_black"]
}
},
"geometry": "Geometry.default",
"part_visibility": [{ "chest*": "query.is_chested" }],
"materials": [{ "*": "Material.default" }],
"textures": [
"Array.base[query.variant]",
"Array.decor[variable.decor_texture_index]",
"Texture.decor_none"
]
}
}
</textarea> </br>
Material array example from Horse render controllers. Saddle will override Mane, which will override TailA, etc.:<br / ><textarea readonly="true" cols="42" rows="8">
"materials": [
{ "*": "Material.default" },
{ "TailA": "Material.horse_hair" },
{ "Mane": "Material.horse_hair" },
{ "*Saddle*": "Material.horse_saddle" }
],
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<br><br>
<h1><p id="Getting Started">Getting Started</p></h1>
To begin create a new folder named "render_controllers" in the root of the Resource Pack you want to add the new Render Controller JSON inside.</br><h2></h2>
Example render controllers JSON for the ocelot<br / ><textarea readonly="true" cols="91" rows="15">
"format_version": "1.8.0",
"render_controllers": {
"controller.render.ocelot": {
"arrays": {
"textures": {
"Array.skins": ["Texture.wild", "Texture.black", "Texture.red", "Texture.siamese"]
}
},
"geometry": "Geometry.default",
"materials": [{ "*": "Material.default" }],
"textures": ["Array.skins[query.variant]"]
}
}
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<br><br>
<h1><p id="Transforms">Transforms</p></h1>
- Order of operations: vertices are translated, rotated, then scaled.</br>- Animation data is assumed to be hierarchical, and is applied to a bone by name matching the bone name in the animation data to the targeted geometry's skeleton.</br>- Not every bone needs to be animated</br>- You can animate bones that don't exist in the targeted geometry (missing bones are ignored).</br>- For each of scale, rotation, position, one can set the fields individually or uniformly with a single value. For example, these are equivalent.</br><h2></h2>
<br / ><textarea readonly="true" cols="25" rows="4">
"scale": [2.0, 2.0, 2.0]
"scale": 2.0
"scale": [2.0]
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
-312
View File
@@ -1,312 +0,0 @@
<h1>BIOMES DOCUMENTATION </br>Version: 1.18.1.2</h1>
<h2><p id="Index">Index</p></h2>
<table border="1">
<tr> <th><a href="#Overview">Overview</a></th> </tr>
<tr> <th><a href="#JSON format">JSON format</a></th> </tr>
<tr> <th><a href="#Adding biomes">Adding biomes</a></th> </tr>
<tr> <th><a href="#Schema">Schema</a></th> </tr>
</table>
<a href="#Index">Back to top</a>
<h1><p id="Overview">Overview</p></h1>
Biomes describe how a local patch of the world should look and behave. By writing custom biome data you could:</br>1) Change the general shape of terrain for a biome.</br>2) Change the ratio of frequency of biome types.</br>3) Change the blocks that make up the biome, both at the surface and below.</br>4) Change the distribution of decorative features (e.g. trees, grass, etc.) for a biome.</br>5) Change the mobs that spawn for a biome.</br>6) Change the climate for a biome.</br>7) ...and more!</br><a href="#Index">Back to top</a><br><br>
<h1><p id="JSON format">JSON format</p></h1>
All biomes should specify the version that they target via the "format_version" field. The remainder of the biome data is divided up into independent JSON sub-objects, or components. In general you can think of the presence of a component as defining what game behaviors a biome participates in with the component fields defining how it participates. Broadly there are two categories of components:</br>1) Namespaced components (i.e. those with a 'name:' prefix) map to specific behaviors in-game; they may have member fields that parameterize that behavior; only names that have a valid mapping are supported.</br>2) Components with no namespace are treated as 'tags': any name consisting of alphanumeric characters, '.' and '_' is permitted; the tag is attached to the biome so that either code or data may check for its existence; tag components may not have member fields.</br></br>See the full biome schema below for additional details and the full list of namespaced components.</br><h2></h2>
Here is a sample biome<br / ><textarea readonly="true" cols="51" rows="32">
{
"plains": {
"format_version": "1.12.0",
"minecraft:climate": {
"downfall": 0.4,
"snow_accumulation": [ 0.0, 0.125 ],
"temperature": 0.8
},
"minecraft:overworld_height": {
"noise_type": "lowlands"
},
"minecraft:surface_parameters": {
"sea_floor_depth": 7,
"sea_floor_material": "minecraft:gravel",
"foundation_material": "minecraft:stone",
"mid_material": "minecraft:dirt",
"top_material": "minecraft:grass"
},
"minecraft:overworld_generation_rules": {
"hills_transformation": [
[ "forest_hills", 1 ],
[ "forest", 2 ]
],
"mutate_transformation": "sunflower_plains",
"generate_for_climates": [
[ "medium", 3 ],
[ "warm", 1 ],
[ "cold", 1 ]
]
},
"animal": {},
"monster": {},
"overworld": {},
"plains": {}
}
}
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<h1><p id="Adding biomes">Adding biomes</p></h1>
Biomes are read from JSON files in the biomes subfolders of behavior packs. Loading enforces one biome per file; the file name and the actual biome name must match. Adding a file with a new name to the biome data location will make it available for the game to use, while existing biomes can be overriden via files that match their existing name. Note that if you add a new biome you'll need to write component data that allows it to participate in world generation (see full schema below), or else it won't show up in your worlds!</br><a href="#Index">Back to top</a><br><br>
<h1><p id="Schema">Schema</p></h1>
<h2></h2>
<br / ><textarea readonly="true" cols="192" rows="32">
{
object "minecraft:climate"[0,7] : opt // Describes temperature, humidity, precipitation, etc. Biomes without this component will have default values.
{
float "temperature" : opt
float "downfall" : opt
float "red_spores" : opt
float "blue_spores" : opt
float "ash" : opt
float "white_ash" : opt
array "snow_accumulation"[2] : opt
{
float "[0..0]"
float "[1..1]"
}
}
object "minecraft:overworld_height"[0,2] : opt // Noise parameters used to drive terrain height in the Overworld.
{
array "noise_params"[2] : opt
{
float "[0..0]"
float "[1..1]"
}
string "noise_type"<"stone_beach", "deep_ocean", "default", "default_mutated", "lowlands", "river", "ocean", "taiga", "mountains", "highlands", "mushroom", "less_extreme", "extreme", "beach", "swamp"> : opt
}
object "minecraft:forced_features"[0,1] : opt // Force specific decorative features (trees, plants, etc.) to appear in this Biome, regardless of normal decoration rules.
{
array "<identifier>" : opt
{
object "<any array element>" : opt
{
molang "iterations" // Number of scattered positions to generate
object "scatter_chance" : opt // Probability numerator / denominator that this scatter will occur. Not evaluated each iteration; either no iterations will run, or all will.
{
int "numerator"<1-*>
int "denominator"<1-*>
}
molang "scatter_chance" : opt // Probability (0-100] that this scatter will occur. Not evaluated each iteration; either no iterations will run, or all will.
enumerated_value "coordinate_eval_order"<"xyz", "xzy", "yxz", "yzx", "zxy", "zyx"> : opt // The order in which coordinates will be evaluated. Should be used when a coordinate depends on another. If omitted, defaults to "xzy".
molang "x" : opt // Expression for the coordinate (evaluated each iteration). Mutually exclusive with random distribution object below.
object "x" : opt // Distribution for the coordinate (evaluated each iteration). Mutually exclusive with Molang expression above.
{
enumerated_value "distribution"<"uniform", "gaussian", "inverse_gaussian", "triangle", "fixed_grid", "jittered_grid"> // Type of distribution - uniform random, gaussian (centered in the range), triangle (centered in the range), or grid (either fixed-step or jittered)
int "step_size"<1-*> : opt // When the distribution type is grid, defines the distance between steps along this axis
int "grid_offset"<0-*> : opt // When the distribution type is grid, defines the offset along this axis
array "extent"[2]
{
molang "[0..0]" : opt // Lower bound (inclusive) of the scatter range, as an offset from the input point to scatter around
molang "[1..1]" : opt // Upper bound (inclusive) of the scatter range, as an offset from the input point to scatter around
}
}
molang "z" : opt // Expression for the coordinate (evaluated each iteration). Mutually exclusive with random distribution object below.
object "z" : opt // Distribution for the coordinate (evaluated each iteration). Mutually exclusive with Molang expression above.
{
enumerated_value "distribution"<"uniform", "gaussian", "inverse_gaussian", "triangle", "fixed_grid", "jittered_grid"> // Type of distribution - uniform random, gaussian (centered in the range), triangle (centered in the range), or grid (either fixed-step or jittered)
int "step_size"<1-*> : opt // When the distribution type is grid, defines the distance between steps along this axis
int "grid_offset"<0-*> : opt // When the distribution type is grid, defines the offset along this axis
array "extent"[2]
{
molang "[0..0]" : opt // Lower bound (inclusive) of the scatter range, as an offset from the input point to scatter around
molang "[1..1]" : opt // Upper bound (inclusive) of the scatter range, as an offset from the input point to scatter around
}
}
molang "y" : opt // Expression for the coordinate (evaluated each iteration). Mutually exclusive with random distribution object below.
object "y" : opt // Distribution for the coordinate (evaluated each iteration). Mutually exclusive with Molang expression above.
{
enumerated_value "distribution"<"uniform", "gaussian", "inverse_gaussian", "triangle", "fixed_grid", "jittered_grid"> // Type of distribution - uniform random, gaussian (centered in the range), triangle (centered in the range), or grid (either fixed-step or jittered)
int "step_size"<1-*> : opt // When the distribution type is grid, defines the distance between steps along this axis
int "grid_offset"<0-*> : opt // When the distribution type is grid, defines the offset along this axis
array "extent"[2]
{
molang "[0..0]" : opt // Lower bound (inclusive) of the scatter range, as an offset from the input point to scatter around
molang "[1..1]" : opt // Upper bound (inclusive) of the scatter range, as an offset from the input point to scatter around
}
}
feature_reference "places_feature"
string "identifier"
}
}
}
object "minecraft:ignore_automatic_features" : opt // No features will be automatically attached to this Biome, only features specified in the minecraft:forced_features component will appear.
object "minecraft:surface_parameters"[0,6] : opt // Control the blocks used for the default Minecraft Overworld terrain generation.
{
"top_material" // Controls the block type used for the surface of this biome.
"mid_material" // Controls the block type used in a layer below the surface of this biome.
"sea_floor_material" // Controls the block type used as a floor for bodies of water in this biome.
"foundation_material" // Controls the block type used deep underground in this biome.
"sea_material" // Controls the block type used for the bodies of water in this biome.
int "sea_floor_depth" // Controls how deep below the world water level the floor should occur.
}
object "minecraft:surface_material_adjustments"[0,1] : opt // Specify fine-detail changes to blocks used in terrain generation (based on a noise function)
{
array "adjustments" : opt // All adjustments that match the column's noise values will be applied in the order listed.
{
object "<any array element>"
{
object "materials"
{
"top_material" : opt // Controls the block type used for the surface of this biome when this adjustment is active.
"mid_material" : opt // Controls the block type used in a layer below the surface of this biome when this adjustment is active.
"sea_floor_material" : opt // Controls the block type used as a floor for bodies of water in this biome when this adjustment is active.
"foundation_material" : opt // Controls the block type used deep underground in this biome when this adjustment is active.
"sea_material" : opt // Controls the block type used in the bodies of water in this biome when this adjustment is active.
}
array "noise_range"[2] : opt // Defines a range of noise values [min, max) for which this adjustment should be applied.
{
float "[0..0]"<-1.000000-1.000000>
float "[1..1]"<-1.000000-1.000000>
}
array "height_range"[2] : opt // Defines a range of noise values [min, max] for which this adjustment should be applied.
{
molang "[0..0]"
molang "[1..1]"
}
float "noise_frequency_scale" : opt // The scale to multiply by the position when accessing the noise value for the material adjustments.
}
}
}
object "minecraft:swamp_surface"[0,6] : opt // Similar to overworld_surface. Adds swamp surface details.
{
"top_material" // Controls the block type used for the surface of this biome.
"mid_material" // Controls the block type used in a layer below the surface of this biome.
"sea_floor_material" // Controls the block type used as a floor for bodies of water in this biome.
"foundation_material" // Controls the block type used deep underground in this biome.
"sea_material" // Controls the block type used for the bodies of water in this biome.
int "sea_floor_depth" // Controls how deep below the world water level the floor should occur.
}
object "minecraft:frozen_ocean_surface"[0,6] : opt // Similar to overworld_surface. Adds icebergs.
{
"top_material" // Controls the block type used for the surface of this biome.
"mid_material" // Controls the block type used in a layer below the surface of this biome.
"sea_floor_material" // Controls the block type used as a floor for bodies of water in this biome.
"foundation_material" // Controls the block type used deep underground in this biome.
"sea_material" // Controls the block type used for the bodies of water in this biome.
int "sea_floor_depth" // Controls how deep below the world water level the floor should occur.
}
object "minecraft:mesa_surface"[0,10] : opt // Similar to overworld_surface. Adds colored strata and optional pillars.
{
"top_material" // Controls the block type used for the surface of this biome.
"mid_material" // Controls the block type used in a layer below the surface of this biome.
"sea_floor_material" // Controls the block type used as a floor for bodies of water in this biome.
"foundation_material" // Controls the block type used deep underground in this biome.
"sea_material" // Controls the block type used for the bodies of water in this biome.
int "sea_floor_depth" // Controls how deep below the world water level the floor should occur.
"clay_material"
"hard_clay_material"
bool "bryce_pillars"
bool "has_forest"
}
object "minecraft:nether_surface" : opt // Use default Minecraft Nether terrain generation.
object "minecraft:the_end_surface" : opt // Use default Minecraft End terrain generation.
object "minecraft:capped_surface"[0,5] : opt // Generates surface on blocks with non-solid blocks above or below.
{
array "floor_materials"[1,*] // Materials used for the surface floor.
{
block_reference "<any array element>"
}
array "ceiling_materials"[1,*] // Materials used for the surface ceiling.
{
block_reference "<any array element>"
}
block_reference "sea_material" // Material used to replace air blocks below sea level.
block_reference "foundation_material" // Material used to repalce solid blocks that are not surface blocks.
block_reference "beach_material" : opt // Material used to decorate surface near sea level.
}
object "minecraft:mountain_parameters"[0,3] : opt // Noise parameters used to drive mountain terrain generation in Overworld
{
float "peaks_factor" : opt
object "steep_material_adjustment" : opt // Defines surface material for steep slopes
{
"material" : opt // Block type use as steep material.
bool "north_slopes" : opt // Enable for north facing slopes
bool "south_slopes" : opt // Enable for south facing slopes
bool "west_slopes" : opt // Enable for west facing slopes
bool "east_slopes" : opt // Enable for east facing slopes
}
object "top_slide" : opt // Controls the density tapering that happens at the top of the world to prevent terrain from reaching too high
{
bool "enabled" // If false, top slide will be disabled. If true, other parameters will be taken into account
}
}
object "minecraft:overworld_generation_rules"[0,5] : opt // Control how this biome is instantiated (and then potentially modified) during world generation of the overworld.
{
biome_reference "hills_transformation" : opt
array "hills_transformation"[1,*] : opt
{
biome_reference "<any array element>" : opt
array "<any array element>"[2] : opt
{
biome_reference "[0..0]"
int "[1..1]"
}
}
biome_reference "mutate_transformation" : opt
array "mutate_transformation"[1,*] : opt
{
biome_reference "<any array element>" : opt
array "<any array element>"[2] : opt
{
biome_reference "[0..0]"
int "[1..1]"
}
}
array "generate_for_climates" : opt // Controls the world generation climate categories that this biome can spawn for. A single biome can be associated with multiple categories with different weightings.
{
array "<any array element>"[2]
{
enumerated_value "[0..0]"<"medium", "warm", "lukewarm", "cold", "frozen"> // Name of a climate category
int "[1..1]" // Weight with which this biome should be selected, relative to other biomes in the same category
}
}
biome_reference "river_transformation" : opt
array "river_transformation"[1,*] : opt
{
biome_reference "<any array element>" : opt
array "<any array element>"[2] : opt
{
biome_reference "[0..0]"
int "[1..1]"
}
}
biome_reference "shore_transformation" : opt
array "shore_transformation"[1,*] : opt
{
biome_reference "<any array element>" : opt
array "<any array element>"[2] : opt
{
biome_reference "[0..0]"
int "[1..1]"
}
}
}
object "minecraft:multinoise_generation_rules"[0,5] : opt // Controls how this biome is instantiated (and then potentially modified) during world generation of the nether.
{
float "target_temperature" : opt // Temperature with which this biome should selected, relative to other biomes.
float "target_humidity" : opt // Humidity with which this biome should selected, relative to other biomes.
float "target_altitude" : opt // Altitude with which this biome should selected, relative to other biomes.
float "target_weirdness" : opt // Weirdness with which this biome should selected, relative to other biomes.
float "weight" : opt // Weight with which this biome should selected, relative to other biomes.
}
object "minecraft:legacy_world_generation_rules" : opt // Additional world generation control applicable only to legacy limited worlds.
object "[a-z0-9_.:]+" : opt // Attach arbitrary string tags to this biome
}
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
-923
View File
@@ -1,923 +0,0 @@
<h1>BLOCKS DOCUMENTATION </br>Version: 1.18.1.2</h1>
<h2><p id="Index">Index</p></h2>
<table border="1">
<tr> <th><a href="#Blocks">Blocks</a></th> </tr>
<tr> <td> <a href="#Block Components"> Block Components</a> </tr> </td>
<tr> <td> <a href="#Block Definition Properties"> Block Definition Properties</a> </tr> </td>
<tr> <td> <a href="#Block Description Properties"> Block Description Properties</a> </tr> </td>
<tr> <td> <a href="#Block Event Responses"> Block Event Responses</a> </tr> </td>
<tr> <td> <a href="#Block Trigger Components"> Block Trigger Components</a> </tr> </td>
</table>
<a href="#Index">Back to top</a>
<h1><p id="Blocks">Blocks</p></h1>
<h1><p id="Block Components">Block Components</p></h1>
<h2></h2>
<table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:3;">
<tr> <th style="border-style:solid; border-width:3;">Name</th> <th style="border-style:solid; border-width:3;">Type</th> <th style="border-style:solid; border-width:3;">Default Value</th> <th style="border-style:solid; border-width:3;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:block_light_absorption</td>
<td style="border-style:solid; border-width:3; padding:7px">Integer</td>
<td style="border-style:solid; border-width:3; padding:7px">0</td>
<td style="border-style:solid; border-width:3; padding:7px">The amount of light this block will absorb.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:block_light_emission</td>
<td style="border-style:solid; border-width:3; padding:7px">Decimal</td>
<td style="border-style:solid; border-width:3; padding:7px">0.0</td>
<td style="border-style:solid; border-width:3; padding:7px">The amount of light this block will emit in a range [0.0, 1.0].</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:breakonpush</td>
<td style="border-style:solid; border-width:3; padding:7px">Boolean</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">When pushed by a piston the block breaks</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:breathability</td>
<td style="border-style:solid; border-width:3; padding:7px">Enumerator</td>
<td style="border-style:solid; border-width:3; padding:7px">solid</td>
<td style="border-style:solid; border-width:3; padding:7px">Property describing the breathability of this block and whether it is treated as a solid or as air.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:creative_category</td>
<td style="border-style:solid; border-width:3; padding:7px">String</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Specifies the creative group for the block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:destroy_time</td>
<td style="border-style:solid; border-width:3; padding:7px">Decimal</td>
<td style="border-style:solid; border-width:3; padding:7px">0.0</td>
<td style="border-style:solid; border-width:3; padding:7px">Sets the destroy time property for the block. Greater numbers result in greater mining times. Time is measured in seconds with base equipment.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:display_name</td>
<td style="border-style:solid; border-width:3; padding:7px">String</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Specifies the language file key that maps to what text will be displayed when you hover over the block.</br>Experimental toggles required: Holiday Creator Features</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:entity_collision</td>
<td style="border-style:solid; border-width:3; padding:7px">Boolean</td>
<td style="border-style:solid; border-width:3; padding:7px">false</td>
<td style="border-style:solid; border-width:3; padding:7px">Can only be set to false, it disables the collision of the block with entities</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">origin</td>
<td style="border-style:solid; border-width:2; padding:8px">Array</td>
<td style="border-style:solid; border-width:2; padding:8px">[-8.0, 0.0, -8.0]</td>
<td style="border-style:solid; border-width:2; padding:8px">Minimal position Bounds of the collision box</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">size</td>
<td style="border-style:solid; border-width:2; padding:8px">Array</td>
<td style="border-style:solid; border-width:2; padding:8px">[16.0, 16.0, 16.0]</td>
<td style="border-style:solid; border-width:2; padding:8px">Size of each side of the box of the component</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:explosion_resistance</td>
<td style="border-style:solid; border-width:3; padding:7px">Decimal</td>
<td style="border-style:solid; border-width:3; padding:7px">0.0</td>
<td style="border-style:solid; border-width:3; padding:7px">Sets the explosion resistance for this block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:flammable</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Describes the flammable properties for this block.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">burn_odds</td>
<td style="border-style:solid; border-width:2; padding:8px">Integer</td>
<td style="border-style:solid; border-width:2; padding:8px">0</td>
<td style="border-style:solid; border-width:2; padding:8px">How likely the block will be destroyed by flames when on fire. Value must be greater than or equal to 0.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">flame_odds</td>
<td style="border-style:solid; border-width:2; padding:8px">Integer</td>
<td style="border-style:solid; border-width:2; padding:8px">0</td>
<td style="border-style:solid; border-width:2; padding:8px">How likely the block will catch flame when next to a fire. Value must be greater than or equal to 0.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:friction</td>
<td style="border-style:solid; border-width:3; padding:7px">Decimal</td>
<td style="border-style:solid; border-width:3; padding:7px">0.1</td>
<td style="border-style:solid; border-width:3; padding:7px">Property describing the friction for this block. Friction effects an entities movements when it walks on the block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:geometry</td>
<td style="border-style:solid; border-width:3; padding:7px">String</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">The geometry description identifier to use, this identifier must match an existing geometry identifier in any of the currently loaded resource packs.</br>Experimental toggles required: Holiday Creator Features</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:immovable</td>
<td style="border-style:solid; border-width:3; padding:7px">Boolean</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">An Immovable block cannot be pushed by pistons</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:loot</td>
<td style="border-style:solid; border-width:3; padding:7px">String</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">The path to the loot table, relative to the behavior pack.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:map_color</td>
<td style="border-style:solid; border-width:3; padding:7px">String</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">A color represented as a hex value. This will be the color rendered to a map.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:material_instances</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Maps face or material_instance names in a geometry file to an actual material instance. Material instance can either be a full material instance or a name to another already defined instance</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:onlypistonpush</td>
<td style="border-style:solid; border-width:3; padding:7px">Boolean</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Blocks with those components won't stick to stickyPistons</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:part_visibility</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Maps bone names in a geometry file to a condition that turns their rendering on/off. The condition should be a Molang query that uses block properties to determine true/falseSupported queries include 'has_block_property', 'block_property', and other queries that can evaluate without knowledge of the block's in-game positional or player affected data.</br>Experimental toggles required: Upcoming Creator Features</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:pick_collision</td>
<td style="border-style:solid; border-width:3; padding:7px">Boolean</td>
<td style="border-style:solid; border-width:3; padding:7px">false</td>
<td style="border-style:solid; border-width:3; padding:7px">Can only be set to false, it disables the collision of the block with entities</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">origin</td>
<td style="border-style:solid; border-width:2; padding:8px">Array</td>
<td style="border-style:solid; border-width:2; padding:8px">[-8.0, 0.0, -8.0]</td>
<td style="border-style:solid; border-width:2; padding:8px">Minimal position Bounds of the collision box</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">size</td>
<td style="border-style:solid; border-width:2; padding:8px">Array</td>
<td style="border-style:solid; border-width:2; padding:8px">[16.0, 16.0, 16.0]</td>
<td style="border-style:solid; border-width:2; padding:8px">Size of each side of the box of the component</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:placement_filter</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Sets rules for under what conditions the block can be placed/survive</br><h3><p id="conditions">conditions</p></h3>
List of conditions where the block can be placed/survive</br><h4></h4>
<table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:1;">
<tr> <th style="border-style:solid; border-width:1;">Name</th> <th style="border-style:solid; border-width:1;">Type</th> <th style="border-style:solid; border-width:1;">Default Value</th> <th style="border-style:solid; border-width:1;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:1; padding:9px">allowed_faces</td>
<td style="border-style:solid; border-width:1; padding:9px">Array</td>
<td style="border-style:solid; border-width:1; padding:9px"></td>
<td style="border-style:solid; border-width:1; padding:9px">List of any of the following strings: up, down, north, south, east, west, side, all</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:1; padding:9px">block_filter</td>
<td style="border-style:solid; border-width:1; padding:9px">Array</td>
<td style="border-style:solid; border-width:1; padding:9px"></td>
<td style="border-style:solid; border-width:1; padding:9px">List of blocks (can use tags to specify them) that this block can be placed against in the allowed_faces direction</br></td>
</tr>
</table>
<a href="#Index">Back to top</a><br><br>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:preventsjumping</td>
<td style="border-style:solid; border-width:3; padding:7px">Boolean</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">this component makes it so actors can't jump when walking on this block</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:random_ticking</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Describes the component that will trigger an even at a regular interval between two values</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">Trigger</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">on_tick</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:1;">
<tr> <th style="border-style:solid; border-width:1;">Name</th> <th style="border-style:solid; border-width:1;">Type</th> <th style="border-style:solid; border-width:1;">Default Value</th> <th style="border-style:solid; border-width:1;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:1; padding:9px">condition</td>
<td style="border-style:solid; border-width:1; padding:9px">String</td>
<td style="border-style:solid; border-width:1; padding:9px">1</td>
<td style="border-style:solid; border-width:1; padding:9px">The condition of event to be executed on the block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:1; padding:9px">event</td>
<td style="border-style:solid; border-width:1; padding:9px">String</td>
<td style="border-style:solid; border-width:1; padding:9px">set_block_property</td>
<td style="border-style:solid; border-width:1; padding:9px">The type of event executed on the block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:1; padding:9px">range</td>
<td style="border-style:solid; border-width:1; padding:9px">Array</td>
<td style="border-style:solid; border-width:1; padding:9px">[10, 10]</td>
<td style="border-style:solid; border-width:1; padding:9px">The Range between which the component will trigger his event.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:1; padding:9px">target</td>
<td style="border-style:solid; border-width:1; padding:9px">String</td>
<td style="border-style:solid; border-width:1; padding:9px">self</td>
<td style="border-style:solid; border-width:1; padding:9px">The target of event executed on the block.</br></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:rotation</td>
<td style="border-style:solid; border-width:3; padding:7px">Vector [a, b, c]</td>
<td style="border-style:solid; border-width:3; padding:7px">rotation[0, 0, 0]</td>
<td style="border-style:solid; border-width:3; padding:7px">This is the block's rotation around the center of the cube in degrees. The rotation order is x-y-z.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:ticking</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Describes the component that will trigger an even at a regular interval between two values</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">Trigger</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">on_tick</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:1;">
<tr> <th style="border-style:solid; border-width:1;">Name</th> <th style="border-style:solid; border-width:1;">Type</th> <th style="border-style:solid; border-width:1;">Default Value</th> <th style="border-style:solid; border-width:1;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:1; padding:9px">condition</td>
<td style="border-style:solid; border-width:1; padding:9px">String</td>
<td style="border-style:solid; border-width:1; padding:9px">1</td>
<td style="border-style:solid; border-width:1; padding:9px">The condition of event to be executed on the block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:1; padding:9px">event</td>
<td style="border-style:solid; border-width:1; padding:9px">String</td>
<td style="border-style:solid; border-width:1; padding:9px">set_block_property</td>
<td style="border-style:solid; border-width:1; padding:9px">The type of event executed on the block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:1; padding:9px">range</td>
<td style="border-style:solid; border-width:1; padding:9px">Array</td>
<td style="border-style:solid; border-width:1; padding:9px">[10, 10]</td>
<td style="border-style:solid; border-width:1; padding:9px">The Range between which the component will trigger his event.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:1; padding:9px">target</td>
<td style="border-style:solid; border-width:1; padding:9px">String</td>
<td style="border-style:solid; border-width:1; padding:9px">self</td>
<td style="border-style:solid; border-width:1; padding:9px">The target of event executed on the block.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">looping</td>
<td style="border-style:solid; border-width:2; padding:8px">Boolean</td>
<td style="border-style:solid; border-width:2; padding:8px">true</td>
<td style="border-style:solid; border-width:2; padding:8px">Does the event loop</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">range</td>
<td style="border-style:solid; border-width:2; padding:8px">Array</td>
<td style="border-style:solid; border-width:2; padding:8px">[10, 10]</td>
<td style="border-style:solid; border-width:2; padding:8px">The Range between which the component will trigger his event.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:unit_cube</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Specifies that a unit cube is to be used with tessellation.</br>Experimental toggles required: Holiday Creator Features</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:unwalkable</td>
<td style="border-style:solid; border-width:3; padding:7px">Boolean</td>
<td style="border-style:solid; border-width:3; padding:7px">false</td>
<td style="border-style:solid; border-width:3; padding:7px">Sets the block as unwalkable. Mobs would not attempt to path over top of it when the value is set to true.</br></td>
</tr>
</table>
<a href="#Index">Back to top</a><br><br>
<h1><p id="Block Definition Properties">Block Definition Properties</p></h1>
These properties are part of the Block Definition. This helps the system determine how to parse and initialize this block.</br><h2></h2>
<table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:3;">
<tr> <th style="border-style:solid; border-width:3;">Name</th> <th style="border-style:solid; border-width:3;">Type</th> <th style="border-style:solid; border-width:3;">Default Value</th> <th style="border-style:solid; border-width:3;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">format_version</td>
<td style="border-style:solid; border-width:3; padding:7px">String</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Specifies the version of the game this entity was made in. If the version is lower than the current version, any changes made to the entity in the vanilla version will be applied to it.</br></td>
</tr>
</table>
<h2>Code Example</h2>
Example<br / ><textarea readonly="true" cols="66" rows="20">
{
"format_version": "1.16.0",
"minecraft:block": {
"description": {
"identifier": "design:lavenderstone"
},
"components": {
"minecraft:loot": "loot_tables/chests/simple_dungeon.json",
"minecraft:destroy_time": 4.0,
"minecraft:friction": 0.6,
"minecraft:map_color": "#00ff00",
"minecraft:flammable": {
"flame_odds": 50,
"burn_odds": 0
},
"minecraft:block_light_emission": 1.0
}
}
}
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<h1><p id="Block Description Properties">Block Description Properties</p></h1>
<h2></h2>
<table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:3;">
<tr> <th style="border-style:solid; border-width:3;">Name</th> <th style="border-style:solid; border-width:3;">Type</th> <th style="border-style:solid; border-width:3;">Default Value</th> <th style="border-style:solid; border-width:3;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">identifier</td>
<td style="border-style:solid; border-width:3; padding:7px">String</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">The identifier for this block. The name must include a namespace and must not use the Minecraft namespace unless overriding a Vanilla block.</br></td>
</tr>
</table>
<a href="#Index">Back to top</a><br><br>
<h1><p id="Block Event Responses">Block Event Responses</p></h1>
Event responses for block trigger components.</br><h2></h2>
<table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:3;">
<tr> <th style="border-style:solid; border-width:3;">Name</th> <th style="border-style:solid; border-width:3;">Type</th> <th style="border-style:solid; border-width:3;">Default Value</th> <th style="border-style:solid; border-width:3;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">add_mob_effect</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Apply mob effect to target.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">amplifier</td>
<td style="border-style:solid; border-width:2; padding:8px">Integer</td>
<td style="border-style:solid; border-width:2; padding:8px">0</td>
<td style="border-style:solid; border-width:2; padding:8px">The amplifier for the mob effect.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">duration</td>
<td style="border-style:solid; border-width:2; padding:8px">Decimal</td>
<td style="border-style:solid; border-width:2; padding:8px">0.0</td>
<td style="border-style:solid; border-width:2; padding:8px">The duration of the mob effect.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">effect</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The mob effect to apply.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">target</td>
<td style="border-style:solid; border-width:2; padding:8px">Minecraft Filter</td>
<td style="border-style:solid; border-width:2; padding:8px">self</td>
<td style="border-style:solid; border-width:2; padding:8px">The target context to execute against.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">damage</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Deals damage to the target.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">amount</td>
<td style="border-style:solid; border-width:2; padding:8px">Integer</td>
<td style="border-style:solid; border-width:2; padding:8px">0</td>
<td style="border-style:solid; border-width:2; padding:8px">The amount of damage to deal.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">target</td>
<td style="border-style:solid; border-width:2; padding:8px">Minecraft Filter</td>
<td style="border-style:solid; border-width:2; padding:8px">self</td>
<td style="border-style:solid; border-width:2; padding:8px">The target context to execute against.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">type</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The type of damage to deal.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">decrement_stack</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Decrement item stack.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">die</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Kill target. If target is self and this is run from a block then destroy the block.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">target</td>
<td style="border-style:solid; border-width:2; padding:8px">Minecraft Filter</td>
<td style="border-style:solid; border-width:2; padding:8px">self</td>
<td style="border-style:solid; border-width:2; padding:8px">The target context to execute against.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">play_effect</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Spawns a particle effect relative to target position.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">data</td>
<td style="border-style:solid; border-width:2; padding:8px">Integer</td>
<td style="border-style:solid; border-width:2; padding:8px">0</td>
<td style="border-style:solid; border-width:2; padding:8px">Particle data value.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">effect</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The name of the particle effect to create.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">target</td>
<td style="border-style:solid; border-width:2; padding:8px">Minecraft Filter</td>
<td style="border-style:solid; border-width:2; padding:8px">self</td>
<td style="border-style:solid; border-width:2; padding:8px">The target context to execute against.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">play_sound</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Play a sound relative to target position.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">sound</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The name of the sound to play.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">target</td>
<td style="border-style:solid; border-width:2; padding:8px">Minecraft Filter</td>
<td style="border-style:solid; border-width:2; padding:8px">self</td>
<td style="border-style:solid; border-width:2; padding:8px">The target context to execute against.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">remove_mob_effect</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Removes mob effect from target.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">effect</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The mob effect to remove. Use 'all' to remove all mob effects from target.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">target</td>
<td style="border-style:solid; border-width:2; padding:8px">Minecraft Filter</td>
<td style="border-style:solid; border-width:2; padding:8px">self</td>
<td style="border-style:solid; border-width:2; padding:8px">The target context to execute against.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">run_command</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Triggers a slash command or a list of slash commands.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">command</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">Slash command to run.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">command array</td>
<td style="border-style:solid; border-width:2; padding:8px">Array</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">List of slash commands to run.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">target</td>
<td style="border-style:solid; border-width:2; padding:8px">Minecraft Filter</td>
<td style="border-style:solid; border-width:2; padding:8px">self</td>
<td style="border-style:solid; border-width:2; padding:8px">The target context to execute against.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">set_block</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Sets this block to another block type.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">block_type</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The type of block to set.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">set_block_at_pos</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Sets a block relative to this block to another block type.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">block_offset</td>
<td style="border-style:solid; border-width:2; padding:8px">Vector [a, b, c]</td>
<td style="border-style:solid; border-width:2; padding:8px">[0.0, 0.0, 0.0]</td>
<td style="border-style:solid; border-width:2; padding:8px">The offset from the block's center.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">block_type</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The type of block to set.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">set_block_property</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Sets a block property on this block.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">property</td>
<td style="border-style:solid; border-width:2; padding:8px">Molang</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">Block property to set on the block.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">spawn_loot</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Spawn loot from block.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">table</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">File path, relative to the Behavior Pack's path, to the loot table file.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">swing</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Event causes the actor to swing.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">teleport</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Teleport target randomly around destination point.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">avoid_water</td>
<td style="border-style:solid; border-width:2; padding:8px">Boolean</td>
<td style="border-style:solid; border-width:2; padding:8px">true</td>
<td style="border-style:solid; border-width:2; padding:8px">Determines if the teleport avoids putting the target in water.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">destination</td>
<td style="border-style:solid; border-width:2; padding:8px">Vector [a, b, c]</td>
<td style="border-style:solid; border-width:2; padding:8px">[0.0, 0.0, 0.0]</td>
<td style="border-style:solid; border-width:2; padding:8px">Origin destination of the teleport.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">land_on_block</td>
<td style="border-style:solid; border-width:2; padding:8px">Boolean</td>
<td style="border-style:solid; border-width:2; padding:8px">true</td>
<td style="border-style:solid; border-width:2; padding:8px">Determines if the teleport places the target on a block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">max_range</td>
<td style="border-style:solid; border-width:2; padding:8px">Vector [a, b, c]</td>
<td style="border-style:solid; border-width:2; padding:8px">[8.0, 8.0, 8.0]</td>
<td style="border-style:solid; border-width:2; padding:8px">Max range the target can teleport relative to the origin destination.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">target</td>
<td style="border-style:solid; border-width:2; padding:8px">Minecraft Filter</td>
<td style="border-style:solid; border-width:2; padding:8px">self</td>
<td style="border-style:solid; border-width:2; padding:8px">The target context to execute against.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">transform_item</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Transforms item into another item.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">transform</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">Name of the item it should transform into</br></td>
</tr>
</table>
</td>
</tr>
</table>
<h2>Code Example</h2>
Event Response Example<br / ><textarea readonly="true" cols="61" rows="23">
"minecraft:block": {
"description": {
"identifier": "test:on_interact_change_state_block",
"properties": {
"minecraft:direction": {
}
}
},
"components": {
"minecraft:on_interact": {
"event": "test_event"
}
},
"events": {
"test_event": {
"set_block_property": {
"minecraft:direction": "1"
}
}
}
}
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<h1><p id="Block Trigger Components">Block Trigger Components</p></h1>
<h2></h2>
<table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:3;">
<tr> <th style="border-style:solid; border-width:3;">Name</th> <th style="border-style:solid; border-width:3;">Type</th> <th style="border-style:solid; border-width:3;">Default Value</th> <th style="border-style:solid; border-width:3;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:on_fall_on</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Describes event for this block.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">condition</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The condition of event to be executed on the block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">event</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The event executed on the block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">min_fall_distance</td>
<td style="border-style:solid; border-width:2; padding:8px">Decimal</td>
<td style="border-style:solid; border-width:2; padding:8px">0.0</td>
<td style="border-style:solid; border-width:2; padding:8px">The minimum distance in blocks that an actor needs to fall to trigger this event.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">target</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px">self</td>
<td style="border-style:solid; border-width:2; padding:8px">The target of event executed on the block.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:on_interact</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Describes event for this block.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">condition</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The condition of event to be executed on the block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">event</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The event executed on the block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">target</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px">self</td>
<td style="border-style:solid; border-width:2; padding:8px">The target of event executed on the block.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:on_placed</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Describes event for this block.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">condition</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The condition of event to be executed on the block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">event</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The event executed on the block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">target</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px">self</td>
<td style="border-style:solid; border-width:2; padding:8px">The target of event executed on the block.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:on_player_destroyed</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Describes event for this block.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">condition</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The condition of event to be executed on the block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">event</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The event executed on the block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">target</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px">self</td>
<td style="border-style:solid; border-width:2; padding:8px">The target of event executed on the block.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:on_player_placing</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Describes event for this block.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">condition</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The condition of event to be executed on the block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">event</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The event executed on the block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">target</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px">self</td>
<td style="border-style:solid; border-width:2; padding:8px">The target of event executed on the block.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:on_step_off</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Describes event for this block.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">condition</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The condition of event to be executed on the block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">event</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The event executed on the block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">target</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px">self</td>
<td style="border-style:solid; border-width:2; padding:8px">The target of event executed on the block.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:on_step_on</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Describes event for this block.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">condition</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The condition of event to be executed on the block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">event</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The event executed on the block.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">target</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px">self</td>
<td style="border-style:solid; border-width:2; padding:8px">The target of event executed on the block.</br></td>
</tr>
</table>
</td>
</tr>
</table>
<a href="#Index">Back to top</a><br><br>
<br><br>
File diff suppressed because it is too large Load Diff
-137
View File
@@ -1,137 +0,0 @@
<h1>ENTITY EVENTS DOCUMENTATION </br>Version: 1.18.1.2</h1>
<h2><p id="Index">Index</p></h2>
<table border="1">
<tr> <th><a href="#Animation Controller Events">Animation Controller Events</a></th> </tr>
<tr> <th><a href="#Animation Events">Animation Events</a></th> </tr>
<tr> <th><a href="#Animation Notes">Animation Notes</a></th> </tr>
<tr> <th><a href="#Events">Events</a></th> </tr>
<tr> <th><a href="#General Notes">General Notes</a></th> </tr>
</table>
<a href="#Index">Back to top</a>
<h1><p id="Animation Controller Events">Animation Controller Events</p></h1>
</br>Animation controllers can trigger events on entry or exit of a state. Events to trigger on state entry go in the "on_entry" section, those on exit go in the "on_exit" section.</br><h2></h2>
<br / ><textarea readonly="true" cols="105" rows="23">
{
"format_version": "1.8.0",
"animation_controllers": {
"controller.animation.test": {
"states": {
"default": {
"on_entry": [
"event1", // note that these events can be any event, slash command, Molang, or entity event
"event2",
"event3"
],
"on_exit": [
"event1",
"event2"
]
},
}
}
}
}
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<h1><p id="Animation Events">Animation Events</p></h1>
</br>Animations can have a timeline dedicated to events. The "timeline" section contains the event timeline list. Below there are various examples where particular times can trigger a single event, or an array of events:</br><h2></h2>
<br / ><textarea readonly="true" cols="68" rows="32">
{
"format_version": "1.8.0",
"animations": {
"animation.test_events": {
"timeline": {
"2.0": "@s minecraft:entity_born",
"4.0": [ "@s minecraft:ageable_grow_up" ]
},
"animation_length": 5.0
},
"animation.test_molang": {
"timeline": {
"0.0": "variable.pop_smoke = 1; variable.pop_bubbles = 0;",
"3.0": [
"variable.pop_smoke = 0;",
"variable.pop_bubbles = 1;"
]
}
},
"animation.test_commands": {
"timeline": {
"1.0": "/tell @a timeline command1",
"2.0": [
"/tell @a timeline command 2.1",
"/tell @a timeline command 2.2"
],
"3.0": [ "/tell @a command 3" ]
}
}
}
}
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<h1><p id="Animation Notes">Animation Notes</p></h1>
</br>Entity events occur in animations, which normally occur on the client (via resource packs), but can also occur on the server (via behavior packs). As the server side of the game has no visual aspects to it, obviously no bone-based animations can occur. However, a traditional animation is basically a timeline of events, with the events being bone positions for an animated visual rig that moves the entity's visual shape around. The mechanisms for the Bedrock animation system are state machines (Animation Controllers), and timelines (Animations). These concepts apply directly to the triggering of events, thus the animation system can execute on the server (minus the visual aspects), with the intent of driving entity events. </br></br>To use entity events on the server (in a behavior pack), add animation controllers and animations to a behavior pack just as you would to a resource pack. Add animation and animation controllers to an "animations" section in the description field of an entity. These animations and animation controllers will run on the server just as if they were on the client in a resource pack. Add the "scripts" section with an "animate" subsection to specify which animations/animation-controllers to have run.</br></br>Client side (resource pack) events do not require special setup as the client side entities usually already have animations and animation controllers in place. Just add your events where you need them in animations or animation controllers.</br><h2></h2>
<br / ><textarea readonly="true" cols="106" rows="30">
{
// Example of the schema for a server-side entity, modified to run animations and animation controllers
"format_version": "1.8.0",
"minecraft:entity": {
"description": {
"identifier": "minecraft:cat",
...
"animations": {
"anim1": "animation.anim1",
"anim2": "animation.anim2",
"anim_controller1": "controller.animation.test1",
"anim_controller2": "controller.animation.test2"
},
"scripts": {
// note that only these animations and animation controllers will automatically run:
"animate": [
"anim1",
"anim_controller1",
...
]
}
...
},
...
},
...
}
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<h1><p id="Events">Events</p></h1>
</br>Events consist of three categories, all represented by a string:</br>- Entity events</br>- Slash Commands</br>- Molang Expressions</br></br>In detail:</br></br>Entity Events: Server side (behavior packs) only. Currently, we only support entity events to self, and these take the form "@s event". These are events declared in the events section of the entity definition file. For example, in the cat.json, "minecraft:ageable_grow_up" event causes the kitten to grow up. This would take the form of "@s minecraft:ageable_grow_up"</br></br>Slash commands: Server side (behavior packs) only. Any slash command can be invoked, such as "/particle minecraft:example_smoke_puff ~ ~ ~". The assumed entity for the slash command is the invoking entity, so this particular slash command will spawn a smoke puff effect at the entity's location.</br></br>Molang Expressions: This executes a Molang expression. The primary usage is to set Molang variables that can be used later. For example, a state transition might be looking at a particluar Molang variable, and this expression could change that variable. A particle effect on the entity might change color due to Molang variables that the effect uses for color tints. An animation to move an arm might use a Molang variable that was set by an animation event.</br><h2></h2>
<br / ><textarea readonly="true" cols="95" rows="12">
// entity event (behavior packs only), put the particular event name after the @s
"@s minecraft:entity_event"
// slash command (behavior packs only), can be any server-side slash command
// is invoked from the entity, so a teleport, for example, will teleport the entity by default
"/tell @a this is a message"
// Molang Expressions, executes a Molang expression on the entity
"variable.something_to_set = 3;"
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<h1><p id="General Notes">General Notes</p></h1>
</br>This document contains details for driving various events via entity .json data. Entity events can go in both behavior and resource packs. Behavior packs use the same animations and animation controllers setup that are used in resource packs, albeit with a different method in the entity .json itself to activate the animations.</br></br>Entity events are a way to drive gameplay and entity state changes in the Bedrock engine. These events can typically include slash commands (behavior packs only), entity events (e.g. become an adult), and Molang expressions (e.g. set the Molang variable "variable.foo" to 3 on a particular entity). Animations and Animation controllers provide a method for driving state machines and timelines for an entity. For example, a particular animation controller could be in a particular state, and running a particular animation, and we want events triggered when entering/exiting that state. Alternately, an "animation" could be running, and we wish to fire off events during that animation. The entity event timeline mechanic makes this possible.</br><a href="#Index">Back to top</a><br><br>
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
-21
View File
@@ -1,21 +0,0 @@
<html><head><title>DOCUMENTATION</title></head><body><h1>DOCUMENTATION</br>Version: 1.18.1.2
<ol>
<li><a href="Addons.html">Addons</a>
<li><a href="Animations.html">Animations</a>
<li><a href="Biomes.html">Biomes</a>
<li><a href="Blocks.html">Blocks</a>
<li><a href="Entities.html">Entities</a>
<li><a href="Entity Events.html">Entity Events</a>
<li><a href="Features.html">Features</a>
<li><a href="Fogs.html">Fogs</a>
<li><a href="Item.html">Item</a>
<li><a href="Molang.html">Molang</a>
<li><a href="Particles.html">Particles</a>
<li><a href="Recipes.html">Recipes</a>
<li><a href="Schemas.html">Schemas</a>
<li><a href="Scripting.html">Scripting</a>
<li><a href="Texture Sets.html">Texture Sets</a>
<li><a href="UI.html">UI</a>
<li><a href="Volumes.html">Volumes</a>
</ol>
</body></html>
-409
View File
@@ -1,409 +0,0 @@
<h1>ITEM DOCUMENTATION </br>Version: 1.18.1.2</h1>
<h2><p id="Index">Index</p></h2>
<table border="1">
<tr> <th><a href="#Items">Items</a></th> </tr>
<tr> <td> <a href="#Item Components"> Item Components</a> </tr> </td>
<tr> <td> <a href="#Item Definition Properties"> Item Definition Properties</a> </tr> </td>
<tr> <td> <a href="#Item Description Properties"> Item Description Properties</a> </tr> </td>
</table>
<a href="#Index">Back to top</a>
<h1><p id="Items">Items</p></h1>
To define an item, the item definition must be defined in the behavior pack in a JSON file.</br>All attributes, including item names, must be defined using item components.</br><h1><p id="Item Components">Item Components</p></h1>
Below are the various components for item functionality.</br><h2></h2>
<table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:3;">
<tr> <th style="border-style:solid; border-width:3;">Name</th> <th style="border-style:solid; border-width:3;">Type</th> <th style="border-style:solid; border-width:3;">Default Value</th> <th style="border-style:solid; border-width:3;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:armor</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">The armor item component determines the amount of protection you have in your armor item.</br>Experimental toggles required: Holiday Creator Features</br><h3><p id="protection">protection</p></h3>
How much protection does the armor item have.</br>Minimum value: 0</br>Type: integer</br><a href="#Index">Back to top</a><br><br>
<h3><p id="texture_type">texture_type</p></h3>
Texture Type to apply for the armor. Note that Horse armor is restricted to leather, iron, gold, or diamond.</br>Accepted values: "gold", "none", "leather", "chain", "iron", "diamond", "elytra", "turtle", "netherite"</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:block_placer</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Planter item component. planter items are items that can be planted.</br>Experimental toggles required: Holiday Creator Features</br><h3><p id="block">block</p></h3>
block: Set the placement block name for the planter item.</br>Type: block</br><a href="#Index">Back to top</a><br><br>
<h3><p id="use_on">use_on</p></h3>
List of block descriptors that contain blocks that this item can be used on. If left empty, all blocks will be allowed.</br>Type: array of use_on</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:cooldown</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Cool down time for a component. After you use an item it becomes unusable for the duration specified by the 'cool down time' setting in this component.</br>Experimental toggles required: Holiday Creator Features</br><h3><p id="category">category</p></h3>
The type of cool down for this item.</br>Type: category</br><a href="#Index">Back to top</a><br><br>
<h3><p id="duration">duration</p></h3>
The duration of time this item will spend cooling down before becoming usable again.</br>Type: float</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:digger</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Digger item. Component put on items that dig.</br>Experimental toggles required: Holiday Creator Features</br><h3><p id="destroy_speeds">destroy_speeds</p></h3>
Destroy speed per block.</br>Type: array of destroy_speeds</br><a href="#Index">Back to top</a><br><br>
<h3><p id="on_dig">on_dig</p></h3>
Trigger for when you dig a block that isn't listed in destroy_speeds</br>Type: on_dig</br><a href="#Index">Back to top</a><br><br>
<h3><p id="use_efficiency">use_efficiency</p></h3>
Use efficiency? Default is set to false.</br>Type: boolean</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:display_name</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Display Name item component. Display Names set the name to display when an item is in use or hovered over.</br>Experimental toggles required: Holiday Creator Features</br><h3><p id="value">value</p></h3>
The display name for an item.</br>Type: value</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:durability</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">A property that determines when an item will break from use. The durability of an item is potentially depleted upon use based on the damage chance.</br>Experimental toggles required: Holiday Creator Features</br><h3><p id="damage_chance">damage_chance</p></h3>
Damage chance is the chance of this item losing durability. Could be an int or an int range with min and max value.</br>Type: damage_chance</br><a href="#Index">Back to top</a><br><br>
<h3><p id="max_durability">max_durability</p></h3>
Max durability is the amount of damage that this item can take before breaking.</br>Type: integer</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:dye_powder</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Dye powder, there are 16 kinds of dye.</br>Experimental toggles required: Holiday Creator Features</br><h3><p id="color">color</p></h3>
Defines what color the dye is.</br>Accepted values: "black", "red", "green", "brown", "blue", "purple", "cyan", "silver", "gray", "pink", "lime", "yellow", "lightblue", "magenta", "orange", "white"</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:entity_placer</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Entity placer item component. You can specifiy allowed blocks that the item is restricted to.</br>Experimental toggles required: Holiday Creator Features</br><h3><p id="dispense_on">dispense_on</p></h3>
List of block descriptors that contain blocks that this item can be dispensed on. If left empty, all blocks will be allowed.</br>Type: array of dispense_on</br><a href="#Index">Back to top</a><br><br>
<h3><p id="entity">entity</p></h3>
The entity to be placed in the world.</br>Type: entity</br><a href="#Index">Back to top</a><br><br>
<h3><p id="use_on">use_on</p></h3>
List of block descriptors that contain blocks that this item can be used on. If left empty, all blocks will be allowed.</br>Type: array of use_on</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:food</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">When an item has a food component, it becomes edible to the player.</br>Experimental toggles required: Holiday Creator Features</br><h3><p id="can_always_eat">can_always_eat</p></h3>
If true you can always eat this item (even when not hungry), defaults to false.</br>Type: boolean</br><a href="#Index">Back to top</a><br><br>
<h3><p id="nutrition">nutrition</p></h3>
How much nutrition does this food item give the player when eaten.</br>Type: integer</br><a href="#Index">Back to top</a><br><br>
<h3><p id="on_consume">on_consume</p></h3>
</br>Type: on_consume</br><a href="#Index">Back to top</a><br><br>
<h3><p id="saturation_modifier">saturation_modifier</p></h3>
Saturation Modifier is used in this formula: (nutrition * saturation_modifier * 2) when appling the saturation buff. Which happens when you eat the item.</br>Type: saturation_modifier</br><a href="#Index">Back to top</a><br><br>
<h3><p id="using_converts_to">using_converts_to</p></h3>
When used, convert the *this* item to the one specified by 'using_converts_to'.</br>Type: using_converts_to</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:fuel</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Fuel component. Allows this item to be used as fuel in a furnace to 'cook' other items.</br>Experimental toggles required: Holiday Creator Features</br><h3><p id="duration">duration</p></h3>
How long in seconds will this fuel cook items for.</br>Type: float</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:icon</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">The icon item component determines the icon to represent the item.</br>Experimental toggles required: Holiday Creator Features</br><h3><p id="frame">frame</p></h3>
An index or MoLang expression for which frame of the icon to display. Default resolves to 0.</br>Type: frame</br><a href="#Index">Back to top</a><br><br>
<h3><p id="legacy_id">legacy_id</p></h3>
Legacy texture string id for older item icons. Legacy ID list can be found here under 'Namespaced ID': https://minecraft.fandom.com/wiki/Bedrock_Edition_data_values</br>Type: string</br><a href="#Index">Back to top</a><br><br>
<h3><p id="texture">texture</p></h3>
The key for the object contain the expected textures, from file 'resource_pack/textures/item_texture.json'.</br>Type: string</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:knockback_resistance</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Knockback Resistance Item. Component put on items that provide knockback resistance.</br>Experimental toggles required: Holiday Creator Features</br><h3><p id="protection">protection</p></h3>
Amount of knockback resistance provided with the total maximum protection being 1.0</br>Type: float</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:on_use</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">The on_use item component allows you to receive an event when the item is used.</br>Experimental toggles required: Holiday Creator Features</br><h3><p id="on_use">on_use</p></h3>
Event trigger for when the item is used.</br>Type: on_use</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:on_use_on</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">The on_use_on item component allows you to receive an event when the item is used on a block in the world.</br>Experimental toggles required: Holiday Creator Features</br><h3><p id="on_use_on">on_use_on</p></h3>
Event trigger for when the item is used.</br>Type: on_use_on</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:projectile</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Projectile item component. projectile items shoot out, like an arrow.</br>Experimental toggles required: Holiday Creator Features</br><h3><p id="minimum_critical_power">minimum_critical_power</p></h3>
How long you must charge a projectile for it to critically hit.</br>Type: float</br><a href="#Index">Back to top</a><br><br>
<h3><p id="projectile_entity">projectile_entity</p></h3>
The entity to be fired as a projectile.</br>Type: projectile_entity</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:render_offsets</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Render offsets component: optional values can be given to offset the way the item is rendered.</br>Experimental toggles required: Holiday Creator Features</br><h3><p id="main_hand">main_hand</p></h3>
Main hand transform data.</br>Type: main_hand</br><a href="#Index">Back to top</a><br><br>
<h3><p id="off_hand">off_hand</p></h3>
Offhand hand transform data.</br>Type: off_hand</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:repairable</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Repairable item component: how much damage can this item repair, what items can repair it.</br>Experimental toggles required: Holiday Creator Features</br><h3><p id="on_repaired">on_repaired</p></h3>
Event that is called when this item has been repaired.</br>Type: on_repaired</br><a href="#Index">Back to top</a><br><br>
<h3><p id="repair_items">repair_items</p></h3>
Repair item entries.</br>Type: array of repair_items</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:shooter</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Shooter Item Component.</br>Experimental toggles required: Holiday Creator Features</br><h3><p id="ammunition">ammunition</p></h3>
Ammunition.</br>Type: array of ammunition</br><a href="#Index">Back to top</a><br><br>
<h3><p id="charge_on_draw">charge_on_draw</p></h3>
Charge on draw? Default is set to false.</br>Type: boolean</br><a href="#Index">Back to top</a><br><br>
<h3><p id="launch_power_scale">launch_power_scale</p></h3>
Launch power scale. Default is set to 1.0.</br>Type: float</br><a href="#Index">Back to top</a><br><br>
<h3><p id="max_draw_duration">max_draw_duration</p></h3>
Draw Duration. Default is set to 0.</br>Type: max_draw_duration</br><a href="#Index">Back to top</a><br><br>
<h3><p id="max_launch_power">max_launch_power</p></h3>
Launch power. Default is set to 1.0.</br>Type: float</br><a href="#Index">Back to top</a><br><br>
<h3><p id="scale_power_by_draw_duration">scale_power_by_draw_duration</p></h3>
Scale power by draw duration? Default is set to false.</br>Type: boolean</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:throwable</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Throwable item component. Throwable items, such as a snowball.</br>Experimental toggles required: Holiday Creator Features</br><h3><p id="do_swing_animation">do_swing_animation</p></h3>
Whether the item should use the swing animation when thrown. Default is set to false.</br>Type: boolean</br><a href="#Index">Back to top</a><br><br>
<h3><p id="launch_power_scale">launch_power_scale</p></h3>
The scale at which the power of the throw increases. Default is set to 1.0.</br>Type: float</br><a href="#Index">Back to top</a><br><br>
<h3><p id="max_draw_duration">max_draw_duration</p></h3>
The maximum duration to draw a throwable item. Default is set to 0.0.</br>Type: float</br><a href="#Index">Back to top</a><br><br>
<h3><p id="max_launch_power">max_launch_power</p></h3>
The maximum power to launch the throwable item. Default is set to 1.0.</br>Type: float</br><a href="#Index">Back to top</a><br><br>
<h3><p id="min_draw_duration">min_draw_duration</p></h3>
The minimum duration to draw a throwable item. Default is set to 0.0.</br>Type: float</br><a href="#Index">Back to top</a><br><br>
<h3><p id="scale_power_by_draw_duration">scale_power_by_draw_duration</p></h3>
Whether or not the power of the throw increases with duration charged. Default is set to false.</br>Type: boolean</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:weapon</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Weapon Item Component. Added to every weapon item such as axe, sword, trident, bow, crossbow.</br>Experimental toggles required: Holiday Creator Features</br><h3><p id="on_hit_block">on_hit_block</p></h3>
Trigger for letting you know when this item is used to hit a block</br>Type: on_hit_block</br><a href="#Index">Back to top</a><br><br>
<h3><p id="on_hurt_entity">on_hurt_entity</p></h3>
Trigger for letting you know when this item is used to hurt another mob</br>Type: on_hurt_entity</br><a href="#Index">Back to top</a><br><br>
<h3><p id="on_not_hurt_entity">on_not_hurt_entity</p></h3>
Trigger for letting you know when this item hit another actor, but didn't do damage</br>Type: on_not_hurt_entity</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:wearable</td>
<td style="border-style:solid; border-width:3; padding:7px">JSON Object</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Wearable item component.</br>Experimental toggles required: Holiday Creator Features</br><h3><p id="slot">slot</p></h3>
equipment_slot: slot.weapon.mainhand, slot.weapon.offhand, slot.armor.head, slot.armor.chest, slot.armor.legs, slot.armor.feet, slot.hotbar, slot.inventory, slot.enderchest, slot.saddle, slot.armor, slot.chest</br>Accepted values: "slot.armor.legs", "none", "slot.weapon.mainhand", "slot.weapon.offhand", "slot.armor.head", "slot.armor.chest", "slot.armor.feet", "slot.hotbar", "slot.inventory", "slot.enderchest", "slot.saddle", "slot.armor", "slot.chest"</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
</table>
<a href="#Index">Back to top</a><br><br>
<h1><p id="Item Definition Properties">Item Definition Properties</p></h1>
The properties are part of the Item Definition. This helps the system determine how to parse and initialize this item.</br><h2></h2>
<h2><p id="format_version">format_version</p></h2>
Specifies the version of the game this entity was made in. If the version is lower than the current version, any changes made to the entity in the vanilla version will be applied to it.</br><a href="#Index">Back to top</a><br><br>
<h2>Code Example</h2>
Example<br / ><textarea readonly="true" cols="42" rows="22">
{
"format_version": "1.16.1",
"minecraft:item": {
"description": {
"identifier": "minecraft:blaze_rod"
},
"components": {
"minecraft:fuel": {
"duration": 120.0
},
"minecraft:max_stack_size": 64,
"minecraft:icon": {
"texture": "blaze_rod"
},
"minecraft:hand_equipped": true,
"minecraft:display_name": {
"value": "Blaze Rod"
}
}
}
}
</textarea> </br>
<br><br>
<h1><p id="Item Description Properties">Item Description Properties</p></h1>
<h2></h2>
<table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:3;">
<tr> <th style="border-style:solid; border-width:3;">Name</th> <th style="border-style:solid; border-width:3;">Type</th> <th style="border-style:solid; border-width:3;">Default Value</th> <th style="border-style:solid; border-width:3;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">category</td>
<td style="border-style:solid; border-width:3; padding:7px">String</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">The category for this item. Categories are used to control high level properties of how the item is integrated into the bedrock engine, such as whether it can be used in slash commands.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">identifier</td>
<td style="border-style:solid; border-width:3; padding:7px">String</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">The identifier for this item. The name must include a namespace and must not use the Minecraft namespace unless overriding a Vanilla item.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">is_experimental</td>
<td style="border-style:solid; border-width:3; padding:7px">Boolean</td>
<td style="border-style:solid; border-width:3; padding:7px">false</td>
<td style="border-style:solid; border-width:3; padding:7px">If this item is experimental, it will only be registered if the world is marked as experimental.</br></td>
</tr>
</table>
<a href="#Index">Back to top</a><br><br>
<br><br>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-289
View File
@@ -1,289 +0,0 @@
<h1>RECIPES DOCUMENTATION </br>Version: 1.18.1.2</h1>
<h2><p id="Index">Index</p></h2>
<table border="1">
<tr> <th><a href="#Recipes">Recipes</a></th> </tr>
<tr> <td> <a href="#Furnace Recipe"> Furnace Recipe</a> </tr> </td>
<tr> <td> <a href="#Potion Brewing Container Recipe"> Potion Brewing Container Recipe</a> </tr> </td>
<tr> <td> <a href="#Potion Brewing Mix"> Potion Brewing Mix</a> </tr> </td>
<tr> <td> <a href="#Shaped Recipe"> Shaped Recipe</a> </tr> </td>
<tr> <td> <a href="#Shapeless Recipe"> Shapeless Recipe</a> </tr> </td>
</table>
<a href="#Index">Back to top</a>
<h1><p id="Recipes">Recipes</p></h1>
Recipes are setup in Json files under the behavior_packs /'name of pack'/ recipes directory.</br>Recipe JSON files have different structures dependent on their type.</br>There are 3 types of recipes, Furnace, Shaped and Shapeless.</br><h1><p id="Furnace Recipe">Furnace Recipe</p></h1>
Represents a furnace recipe for a furnace.'Input' items will burn and transform into items specified in 'output'..</br><h2></h2>
<h2><p id="Parameters">Parameters</p></h2>
<h3></h3>
<table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">input</td>
<td style="border-style:solid; border-width:2; padding:8px">item names</td>
<td style="border-style:solid; border-width:2; padding:8px">Items used as input for the furnace recipe.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">output</td>
<td style="border-style:solid; border-width:2; padding:8px">item names</td>
<td style="border-style:solid; border-width:2; padding:8px">Items used as output for the furnace recipe.</br></td>
</tr>
</table>
<a href="#Index">Back to top</a><br><br>
<h2>Furnace Recipe Example:</h2>
<br / ><textarea readonly="true" cols="60" rows="16">
{
"format_version": "1.12",
"minecraft:recipe_furnace": {
"description": {
"identifier": "minecraft:furnace_beef"
},
"tags": ["furnace", "smoker", "campfire", "soul_campfire"],
"input": {
"item": "minecraft:beef",
"data": 0,
"count": 4
},
"output ": "minecraft:cooked_beef"
}
}
</textarea> </br>
<br><br>
<h1><p id="Potion Brewing Container Recipe">Potion Brewing Container Recipe</p></h1>
Represents a Potion Brewing Container Recipe..</br><h2></h2>
<h2><p id="Parameters">Parameters</p></h2>
<h3></h3>
<table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">input</td>
<td style="border-style:solid; border-width:2; padding:8px">potion</td>
<td style="border-style:solid; border-width:2; padding:8px">input potion used in the brewing container recipe.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">output</td>
<td style="border-style:solid; border-width:2; padding:8px">potion</td>
<td style="border-style:solid; border-width:2; padding:8px">output potion from the brewing container recipe.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">reagent</td>
<td style="border-style:solid; border-width:2; padding:8px">item</td>
<td style="border-style:solid; border-width:2; padding:8px">item used in the brewing container recipe with the input potion.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">tags</td>
<td style="border-style:solid; border-width:2; padding:8px">array of strings</td>
<td style="border-style:solid; border-width:2; padding:8px">Item used in a Brewing Container Recipe.</br></td>
</tr>
</table>
<a href="#Index">Back to top</a><br><br>
<h2>Potion Brewing Container Recipe Example:</h2>
<br / ><textarea readonly="true" cols="48" rows="16">
{
"format_version": "1.12",
"minecraft:recipe_brewing_container": {
"description": {
"identifier": "minecraft:brew_potion_sulphur"
},
"tags": [ "brewing_stand" ],
"input": "minecraft:potion",
"reagent": "minecraft:gunpowder",
"output": "minecraft:splash_potion",
}
}
</textarea> </br>
<br><br>
<h1><p id="Potion Brewing Mix">Potion Brewing Mix</p></h1>
Represents a Potion Brewing Mix..</br><h2></h2>
<h2><p id="Parameters">Parameters</p></h2>
<h3></h3>
<table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">input</td>
<td style="border-style:solid; border-width:2; padding:8px">potion</td>
<td style="border-style:solid; border-width:2; padding:8px">input potion used on the brewing stand.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">output</td>
<td style="border-style:solid; border-width:2; padding:8px">potion</td>
<td style="border-style:solid; border-width:2; padding:8px">output potion from mixing the input potion with the reagent on the brewing stand.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">reagent</td>
<td style="border-style:solid; border-width:2; padding:8px">item</td>
<td style="border-style:solid; border-width:2; padding:8px">item used to mix with the input potion.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">tags</td>
<td style="border-style:solid; border-width:2; padding:8px">array of strings</td>
<td style="border-style:solid; border-width:2; padding:8px">Item used to make a brewing mix.</br></td>
</tr>
</table>
<a href="#Index">Back to top</a><br><br>
<h2>Potion Brewing Mix Example:</h2>
<br / ><textarea readonly="true" cols="54" rows="16">
{
"format_version": "1.12",
"minecraft:recipe_brewing_mix": {
"description": {
"identifier": "minecraft:brew_awkward_blaze_powder"
},
"tags": [ "brewing_stand" ],
"input": "minecraft:potion_type:awkward",
"reagent": "minecraft:blaze_powder",
"output": "minecraft:potion_type:strength",
}
}
</textarea> </br>
<br><br>
<h1><p id="Shaped Recipe">Shaped Recipe</p></h1>
Represents a shaped crafting recipe for a crafting table.</br>The key used in the pattern may be any single character except the 'space' character, which is reserved for empty slots in a recipe..</br><h2></h2>
<h2><p id="Parameters">Parameters</p></h2>
<h3></h3>
<table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">key</td>
<td style="border-style:solid; border-width:2; padding:8px">array of key and item pairs</td>
<td style="border-style:solid; border-width:2; padding:8px">patten key character mapped to item names.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">pattern</td>
<td style="border-style:solid; border-width:2; padding:8px">array of strings</td>
<td style="border-style:solid; border-width:2; padding:8px">characters that represent a pattern to be defined by keys.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">priority</td>
<td style="border-style:solid; border-width:2; padding:8px">integer</td>
<td style="border-style:solid; border-width:2; padding:8px">Item used as output for the furnace recipe.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">result</td>
<td style="border-style:solid; border-width:2; padding:8px">array of item names</td>
<td style="border-style:solid; border-width:2; padding:8px">when input items match the pattern then these items are the result.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">tags</td>
<td style="border-style:solid; border-width:2; padding:8px">array of strings</td>
<td style="border-style:solid; border-width:2; padding:8px">Item used as input for the furnace recipe.</br></td>
</tr>
</table>
<a href="#Index">Back to top</a><br><br>
<h2>Shaped Recipe Example:</h2>
<br / ><textarea readonly="true" cols="40" rows="27">
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:acacia_boat"
},
"tags": [ "crafting_table" ],
"pattern": [
"#P#",
"###"
],
"key": {
"P": {
"item": "minecraft:wooden_shovel"
},
"#": {
"item": "minecraft:planks",
"data": 4
}
},
"result": {
"item": "minecraft:boat",
"data": 4
}
}
}
</textarea> </br>
<br><br>
<h1><p id="Shapeless Recipe">Shapeless Recipe</p></h1>
Represents a shapeless crafting recipe..</br><h2></h2>
<h2><p id="Parameters">Parameters</p></h2>
<h3></h3>
<table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">ingredients</td>
<td style="border-style:solid; border-width:2; padding:8px">array of item names</td>
<td style="border-style:solid; border-width:2; padding:8px">items used as input (without a shape) for the recipe.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">priority</td>
<td style="border-style:solid; border-width:2; padding:8px">integer</td>
<td style="border-style:solid; border-width:2; padding:8px">Item used as output for the furnace recipe.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">result</td>
<td style="border-style:solid; border-width:2; padding:8px">array of item names</td>
<td style="border-style:solid; border-width:2; padding:8px">these items are the result.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">tags</td>
<td style="border-style:solid; border-width:2; padding:8px">array of strings</td>
<td style="border-style:solid; border-width:2; padding:8px">Item used as input for the furnace recipe.</br></td>
</tr>
</table>
<a href="#Index">Back to top</a><br><br>
<h2>Shapeless Recipe Example:</h2>
<br / ><textarea readonly="true" cols="52" rows="19">
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:firecharge_coal_sulphur"
},
"priority": 0,
"ingredients": {
"item": "minecraft:fireball",
"data": 0,
"count": 4
},
"result": {
"item": "minecraft:blaze_powder",
"data": 4
}
}
}
</textarea> </br>
<br><br>
<br><br>
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
-104
View File
@@ -1,104 +0,0 @@
<h1>TEXTURE SETS DOCUMENTATION </br>Version: 1.18.1.2</h1>
<h2><p id="Index">Index</p></h2>
<table border="1">
<tr> <th><a href="#Texture Sets">Texture Sets</a></th> </tr>
<tr> <td> <a href="#Texture Set Json Schema"> Texture Set Json Schema</a> </tr> </td>
<tr> <td> <a href="#Layers"> Layers</a> </tr> </td>
<tr> <td> <a href="#Specifying uniform values"> Specifying uniform values</a> </tr> </td>
<tr> <td> <a href="#Examples of *.texture_set.json files"> Examples of *.texture_set.json files</a> </tr> </td>
<tr> <td> <a href="#Invalid *.texture_set.json"> Invalid *.texture_set.json</a> </tr> </td>
<tr> <td> <a href="#Resource Stack Behaviour"> Resource Stack Behaviour</a> </tr> </td>
<tr> <td> <a href="#Referencing Texture Resources"> Referencing Texture Resources</a> </tr> </td>
</table>
<a href="#Index">Back to top</a>
<h1><p id="Texture Sets">Texture Sets</p></h1>
Minecraft supports a Physically Based Rendering (PBR) color pipeline (e.g. used for Ray Tracing). This uses more texture data than simply 'color' to enable richer, more realistic visuals. With the PBR approach, you can have layers for different specular reflections, emissivity, normal maps, etc. which goes beyond the Classic color pipeline for Vanilla Minecraft. Texture Sets have been added as the feature for defining multiple PBR layers for a texture resource. Texture sets are data driven from json files.</br><h1><p id="Texture Set Json Schema">Texture Set Json Schema</p></h1>
<h2>Texture Set Json Schema</h2>
```</br>--------</br>{</br> version "format_version"</br> object "minecraft:texture_set"</br> {</br> color "color" : opt // Fill RGBA channels of a textureset layer with the specified values in an array or hex string</br> string "color" : opt // The texture name of a textureset layer</br> string "normal" : opt // The texture name of a textureset layer</br> string "heightmap" : opt // The texture name of a textureset layer</br> color "metalness_emissive_roughness" : opt // Fill RGB channels of a textureset layer with the specified values in an array or hex string</br> string "metalness_emissive_roughness" : opt // The texture name of a textureset layer</br> }</br>}</br></br>----------</br>```</br><a href="#Index">Back to top</a><br><br>
<h1><p id="Layers">Layers</p></h1>
A texture_set.json file may specify several layers.</br>Layers are references to texture image resources. they can also be defined in .json as values for uniform solid values as an alternative to referencing texture images in a pack.</br></br><h2></h2>
<h2><p id="Color">Color</p></h2>
- This is an RGB 3-channel image (defaults to uniform alpha of 1.0), or an RGBA 4-channel image, or a 4 value array for a uniform color with alpha.</br>- This is the only required layer.</br>- It is the only layer used by the Classic pipeline.</br>- Typically there is lighting baked in the color image.</br><a href="#Index">Back to top</a><br><br>
<h2><p id="Normal">Normal</p></h2>
- 3-channel normal map image (or 4-channel where the 4th channel is ignored).</br>- Mutually exclusive with the `heightmap` layer.</br><a href="#Index">Back to top</a><br><br>
<h2><p id="Heightmap">Heightmap</p></h2>
- 1-channel layer image or a single value in json for a uniform heightmap.</br>- Mutually exclusive with the `normal` layer.</br><a href="#Index">Back to top</a><br><br>
<h2><p id="Metalness_emissive_roughness">Metalness_emissive_roughness</p></h2>
- 3-channel image (or 4-channel where the 4th channel is ignored) or a 3 value array for a uniform MER.</br>- RGB images map Red to Metalness, Green to Emissive, and Blue to Roughness.</br><a href="#Index">Back to top</a><br><br>
<br><br>
<h1><p id="Specifying uniform values">Specifying uniform values</p></h1>
Instead of referencing a texture image for a Texture Set layer, values can instead be specified in the *texture_set.json file, which is effectively the equivalent to referencing a texture image filled uniformly with that value or values for the respective channels.</br></br>The values in the json can be specified in any of the following formats:</br>- 0 to 255 numeric range, or as a vector of such integers for a multi-channel layer.</br>- Hexadecimal RGB or ARGB for 3 and 4 channels respectively, also as 2 hex digits for a single channel layer.</br><a href="#Index">Back to top</a><br><br>
<h1><p id="Examples of *.texture_set.json files">Examples of *.texture_set.json files</p></h1>
<h2></h2>
All the layer values can be mixed and match with references to image textures, hexadecimal and numerical values.
<br / ><textarea readonly="true" cols="56" rows="11">
{
"format_version": "1.16.100",
"minecraft:texture_set": {
"color": [ 180, 140, 190, 255 ],
"metalness_emissive_roughness": "#FBA34C",
"normal": "grass_carried_normal"
}
}
</textarea> </br>
This example uses referenced images that exist in the same folder. It uses a normal and MER map.
<br / ><textarea readonly="true" cols="67" rows="11">
{
"format_version": "1.16.100",
"minecraft:texture_set": {
"color": "grass_carried",
"metalness_emissive_roughness": "grass_carried_mer",
"heightmap": "grass_carried_heightmap"
}
}
</textarea> </br>
You could also specify values of textures using numerical or hexadecimal values.
<br / ><textarea readonly="true" cols="63" rows="10">
{
"format_version": "1.16.100",
"minecraft:texture_set": {
"color": [ 180, 135, 190, 170 ],
"metalness_emissive_roughness": [ 130, 135, 140 ]
}
}
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<h1><p id="Invalid *.texture_set.json">Invalid *.texture_set.json</p></h1>
If a Texture Set is invalid, we'll log a CONTENT_ERROR and the Texture Set will not be used.</br>A Texture Set is invalid if:</br>- Json data cannot be parsed, or doesn't meet the Texture Set schema.</br>- Color layer is not specified. Having a color layer in the .texture_set.json is required.</br>- Both heightmap and normal layers are defined.</br>- If a referenced texture does not exist in the same resource pack or the referenced texture cannot be parsed.</br>- Any layer is defined with an unexpected number of channels:</br> - For layers that are specified with referenced images: Color, MER, and Normal support 3 or 4 channel images; Heightmap support 1-channel images only.</br> - For layers that are specified with numerical or hexadecimal values: Color support 4-channel values; MER support 3-channel values;</br><a href="#Index">Back to top</a><br><br>
<h1><p id="Resource Stack Behaviour">Resource Stack Behaviour</p></h1>
- Texture Set definitions can only reference images that exist in the same resource pack as the definition.</br>- Texture images in higher priority resource packs do not override a Texture Set's reference to a texture in its own pack.</br>- In the resource pack stack, Texture Set definitions for the same texture resource don't get merged. The higher priority pack's Texture Set definition will override the lower priority one.</br><a href="#Index">Back to top</a><br><br>
<h1><p id="Referencing Texture Resources">Referencing Texture Resources</p></h1>
The priority of file extensions, in case you have duplicate image references, is: .tga > .png > .jpg > .jpeg. For example: if grass.png and grass.tga both exist in the folder, grass.tga will be chosen. This also applies to other data driven files, like actor json referencing a texture resource.</br><a href="#Index">Back to top</a><br><br>
<br><br>
-120
View File
@@ -1,120 +0,0 @@
<h1>UI DOCUMENTATION </br>Version: 1.18.1.2</h1>
<h2><p id="Index">Index</p></h2>
<table border="1">
<tr> <th><a href="#Scripting System">Scripting System</a></th> </tr>
<tr> <td> <a href="#Engine Bindings"> Engine Bindings</a> </tr> </td>
<tr> <td> <a href="#Getting The Script Engine"> Getting The Script Engine</a> </tr> </td>
<tr> <td> <a href="#Script Bindings"> Script Bindings</a> </tr> </td>
</table>
<a href="#Index">Back to top</a>
<h1><p id="Scripting System">Scripting System</p></h1>
The custom UI for Minecraft is based on HTML 5.</br>You can write JavaScript within the HTML file to listen and respond to events from the UI Engine. These events can be triggered by the UI Engine itself or you can trigger them from your scripts.</br>In order to use custom UI, the resource pack containing the custom UI needs to have the custom UI capabilities enabled. To do this, simply add "experimental_custom_ui" to the capabilities array in the pack's manifest. You can check the Turn-Based RPG demo for an example of how to do this.</br><h1><p id="Engine Bindings">Engine Bindings</p></h1>
<h2></h2>
<h2><p id="on(EventIdentifier, Callback)">on(EventIdentifier, Callback)</p></h2>
This is used to get events from the UI Engine. These events can be originally sent from client scripts using `send_ui_event`, or created by the game and passed along by the UI Engine. The data sent from scripts to this function must be a string.</br><h3></h3>
<h3><p id="Parameters">Parameters</p></h3>
<h4></h4>
<table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:1;">
<tr> <th style="border-style:solid; border-width:1;">Name</th> <th style="border-style:solid; border-width:1;">Type</th> <th style="border-style:solid; border-width:1;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:1; padding:9px">Callback</td>
<td style="border-style:solid; border-width:1; padding:9px">JavaScript Object</td>
<td style="border-style:solid; border-width:1; padding:9px">The callback that will be called when the event happens</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:1; padding:9px">EventIdentifier</td>
<td style="border-style:solid; border-width:1; padding:9px">String</td>
<td style="border-style:solid; border-width:1; padding:9px">Specifies the event that function will react to</br></td>
</tr>
</table>
<a href="#Index">Back to top</a><br><br>
<h3>Example of how to listen for events from a client script:</h3>
<br / ><textarea readonly="true" cols="62" rows="3">
engine.on("exampleEventIdentifier", function (exampleData) {
}
</textarea> </br>
<br><br>
<h2><p id="trigger(EventIdentifier, Arguments)">trigger(EventIdentifier, Arguments)</p></h2>
This is used to send events to the UI Engine.</br><h3></h3>
<h3><p id="Parameters">Parameters</p></h3>
<h4></h4>
<table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:1;">
<tr> <th style="border-style:solid; border-width:1;">Name</th> <th style="border-style:solid; border-width:1;">Type</th> <th style="border-style:solid; border-width:1;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:1; padding:9px">Arguments</td>
<td style="border-style:solid; border-width:1; padding:9px">JavaScript Object</td>
<td style="border-style:solid; border-width:1; padding:9px">The arguments passed to the callback</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:1; padding:9px">EventIdentifier</td>
<td style="border-style:solid; border-width:1; padding:9px">String</td>
<td style="border-style:solid; border-width:1; padding:9px">Specifies the event that function will react to</br></td>
</tr>
</table>
<a href="#Index">Back to top</a><br><br>
<h3>Example of how to send an event to the UI engine:</h3>
<br / ><textarea readonly="true" cols="59" rows="2">
engine.trigger("exampleEventIdentifier", eventDataObject);
</textarea> </br>
<br><br>
<br><br>
<h1><p id="Getting The Script Engine">Getting The Script Engine</p></h1>
In order to create a link between the UI Engine and the Script Engine you need to capture the instance of the Script Engine.</br>The engine.on() function needs to listen for the event "facet:updated:scripting" and you need to store the return value.</br>You will then need to request the script engine by triggering the "facet:request" event and passing it "scripting" in a vector.</br>The order of the calls is important. If you trigger the request before you registered the listener you won't be able to capture the callback.</br><h2>Example of how to capture the Script Engine:</h2>
<br / ><textarea readonly="true" cols="59" rows="6">
let scriptInterface = undefined;
engine.on("facet:updated:scripting", function(interface) {
scriptInterface = interface;
});
engine.trigger("facet:request", ["scripting"]);
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<h1><p id="Script Bindings">Script Bindings</p></h1>
<h2></h2>
<h2><p id="triggerEvent(Data)">triggerEvent(Data)</p></h2>
This triggers the minecraft:ui_event on client scripts with the provided data.</br><h3></h3>
<h3><p id="Parameters">Parameters</p></h3>
<h4></h4>
<table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:1;">
<tr> <th style="border-style:solid; border-width:1;">Name</th> <th style="border-style:solid; border-width:1;">Type</th> <th style="border-style:solid; border-width:1;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:1; padding:9px">Data</td>
<td style="border-style:solid; border-width:1; padding:9px">String</td>
<td style="border-style:solid; border-width:1; padding:9px">This string will be sent to "minecraft:ui_event" event in client scripts</br></td>
</tr>
</table>
<a href="#Index">Back to top</a><br><br>
<h3>Example of how to send events to a client script:</h3>
<br / ><textarea readonly="true" cols="57" rows="2">
scriptInterface.triggerEvent("SendThisDataToTheScript");
</textarea> </br>
<br><br>
<br><br>
<br><br>
-175
View File
@@ -1,175 +0,0 @@
<h1>VOLUMES DOCUMENTATION </br>Version: 1.18.1.2</h1>
<h2><p id="Index">Index</p></h2>
<table border="1">
<tr> <th><a href="#Volumes">Volumes</a></th> </tr>
<tr> <td> <a href="#Volume Components"> Volume Components</a> </tr> </td>
<tr> <td> <a href="#Volume Definition Properties"> Volume Definition Properties</a> </tr> </td>
<tr> <td> <a href="#Volume Description Properties"> Volume Description Properties</a> </tr> </td>
</table>
<a href="#Index">Back to top</a>
<h1><p id="Volumes">Volumes</p></h1>
<h1><p id="Volume Components">Volume Components</p></h1>
These are the various possible components for this entity</br><h2></h2>
<table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:3;">
<tr> <th style="border-style:solid; border-width:3;">Name</th> <th style="border-style:solid; border-width:3;">Type</th> <th style="border-style:solid; border-width:3;">Default Value</th> <th style="border-style:solid; border-width:3;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:bounds</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Component that defines a minimum and maximum block position for a bounding box and which world dimension the bounding box is in. Every volume must have a bounds component.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">dimension</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The name of the dimension the bounding box will exist in: one of 'overworld', 'nether' or 'the end'.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">max</td>
<td style="border-style:solid; border-width:2; padding:8px">Vector [a, b, c]</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The maximum block position of the bounding box.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">min</td>
<td style="border-style:solid; border-width:2; padding:8px">Vector [a, b, c]</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The minimum block position of the bounding box.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:fog</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Displays the given fog whenever a player enters the volume. Each volume can only have one fog attached.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">fog_identifier</td>
<td style="border-style:solid; border-width:2; padding:8px">String</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">The identifier of a fog definition. Note that you will not receive any feedback if the definition does not exist.</br></td>
</tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">priority</td>
<td style="border-style:solid; border-width:2; padding:8px">Integer</td>
<td style="border-style:solid; border-width:2; padding:8px">INT_MAX</td>
<td style="border-style:solid; border-width:2; padding:8px">The priority for this fog definition setting. Smaller numbers have higher priority. Fogs with equal priority will be combined together.</br></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:on_actor_enter</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Component that defines what happens when an actor enters the volume. Can contain multiple json objects.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">on_enter</td>
<td style="border-style:solid; border-width:2; padding:8px">Array</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">Required array that contains all the triggers.</br><h5><p id="condition">condition</p></h5>
Molang expression to test against the actor. The given event will be triggered if the expression evaluates to true.</br><a href="#Index">Back to top</a><br><br>
<h5><p id="event">event</p></h5>
Name of the event to run.</br><a href="#Index">Back to top</a><br><br>
<h5><p id="target">target</p></h5>
One of "self" or "other". Self means the event is attached to the volume. Other means the event is attached to the actor.</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">minecraft:on_actor_leave</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Component that defines what happens when an actor leaves the volume.</br><table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:2;">
<tr> <th style="border-style:solid; border-width:2;">Name</th> <th style="border-style:solid; border-width:2;">Type</th> <th style="border-style:solid; border-width:2;">Default Value</th> <th style="border-style:solid; border-width:2;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:2; padding:8px">on_leave</td>
<td style="border-style:solid; border-width:2; padding:8px">Array</td>
<td style="border-style:solid; border-width:2; padding:8px"></td>
<td style="border-style:solid; border-width:2; padding:8px">Required array that contains all the triggers.</br><h5><p id="condition">condition</p></h5>
Molang expression to test against the actor. The given event will be triggered if the expression evaluates to true.</br><a href="#Index">Back to top</a><br><br>
<h5><p id="event">event</p></h5>
Name of the event to run.</br><a href="#Index">Back to top</a><br><br>
<h5><p id="target">target</p></h5>
One of "self" or "other". Self means the event is attached to the volume. Other means the event is attached to the actor.</br><a href="#Index">Back to top</a><br><br>
</td>
</tr>
</table>
</td>
</tr>
</table>
<a href="#Index">Back to top</a><br><br>
<h1><p id="Volume Definition Properties">Volume Definition Properties</p></h1>
The properties of a minecraft:volume entity. Note that every volume must have a bounds component. All other components are optional.</br><h2></h2>
<table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:3;">
<tr> <th style="border-style:solid; border-width:3;">Name</th> <th style="border-style:solid; border-width:3;">Type</th> <th style="border-style:solid; border-width:3;">Default Value</th> <th style="border-style:solid; border-width:3;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">format_version</td>
<td style="border-style:solid; border-width:3; padding:7px">String</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">Specifies the version of the game this entity was made in. Minimum supported version is 1.17.0. Current supported version is 1.17.0.</br></td>
</tr>
</table>
<h2>Example</h2>
Example<br / ><textarea readonly="true" cols="58" rows="19">
{
"format_version": 1.17.0,
"minecraft:volume": {
"description": {
"identifier": "your_custom_namespace:sample_volume"
},
"components": {
"minecraft:bounds": {
"min": [-50, 0, -50],
"max": [50, 256, 50]
},
"minecraft:fog": {
"fog_identifier": "minecraft:fog_savanna",
"priority": 1
}
}
}
}
</textarea> </br>
<a href="#Index">Back to top</a><br><br>
<h1><p id="Volume Description Properties">Volume Description Properties</p></h1>
The description contains a single 'identifier' string</br><h2></h2>
<table border="1" style="width:100%; border-style:solid; border-collapse:collapse; border-width:3;">
<tr> <th style="border-style:solid; border-width:3;">Name</th> <th style="border-style:solid; border-width:3;">Type</th> <th style="border-style:solid; border-width:3;">Default Value</th> <th style="border-style:solid; border-width:3;">Description</th> </tr>
<tr>
<td style="border-style:solid; border-width:3; padding:7px">identifier</td>
<td style="border-style:solid; border-width:3; padding:7px">String</td>
<td style="border-style:solid; border-width:3; padding:7px"></td>
<td style="border-style:solid; border-width:3; padding:7px">The unique identifier for this volume. It must be of the form 'namespace:name', where namespace cannot be 'minecraft'.</br></td>
</tr>
</table>
<a href="#Index">Back to top</a><br><br>
<br><br>
+6 -6
View File
@@ -1,23 +1,23 @@
{
"format_version": 2,
"header": {
"description": "Example vanilla behavior pack",
"name": "Vanilla Behavior Pack",
"uuid": "ee649bcf-256c-4013-9068-6a802b89d756",
"description": "MW Villagers Behavior Pack",
"name": "MW Villagers",
"uuid": "ee649bcf-256c-4015-9068-6a802b89d756",
"version": [ 0, 0, 1 ],
"min_engine_version": [ 1, 18, 0 ]
},
"modules": [
{
"description": "Example vanilla behavior pack",
"description": "MW Villagers Behavior Pack",
"type": "data",
"uuid": "fa6e90c8-c925-460f-8155-c8a60b753caa",
"uuid": "fa6e90c8-c225-460f-8155-c8a60b753caa",
"version": [0, 0, 1]
}
],
"dependencies": [
{
"uuid": "66c6e9a8-3093-462a-9c36-dbb052165822",
"uuid": "66c6e9a8-3693-462a-9c36-dbb052165822",
"version": [0, 0, 1]
}
]
-28
View File
@@ -1,28 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:acacia_boat"
},
"tags": [ "crafting_table" ],
"pattern": [
"#P#",
"###"
],
"key": {
"P": {
"item": "minecraft:wooden_shovel"
},
"#": {
"item": "minecraft:planks",
"data": 4
}
},
"result": {
"item": "minecraft:boat",
"data": 4
}
}
}
-27
View File
@@ -1,27 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:acacia_door"
},
"tags": [ "crafting_table" ],
"group": "wooden_door",
"pattern": [
"##",
"##",
"##"
],
"key": {
"#": {
"item": "minecraft:planks",
"data": 4
}
},
"result": {
"item": "minecraft:acacia_door",
"count": 3
}
}
}
-29
View File
@@ -1,29 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:acacia_fence"
},
"tags": [ "crafting_table" ],
"pattern": [
"W#W",
"W#W"
],
"key": {
"#": {
"item": "minecraft:stick"
},
"W": {
"item": "minecraft:planks",
"data": 4
}
},
"result": {
"item": "minecraft:fence",
"data": 4,
"count": 3
}
}
}
-28
View File
@@ -1,28 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:acacia_fence_gate"
},
"tags": [ "crafting_table" ],
"group": "wooden_fence_gate",
"pattern": [
"#W#",
"#W#"
],
"key": {
"#": {
"item": "minecraft:stick"
},
"W": {
"item": "minecraft:planks",
"data": 4
}
},
"result": {
"item": "minecraft:acacia_fence_gate"
}
}
}
-26
View File
@@ -1,26 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:acacia_planks"
},
"tags": [ "crafting_table" ],
"group": "planks",
"pattern": [
"#"
],
"key": {
"#": {
"item": "minecraft:log2",
"data": 0
}
},
"result": {
"item": "minecraft:planks",
"data": 4,
"count": 4
}
}
}
-25
View File
@@ -1,25 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:acacia_planks_from_stripped"
},
"tags": [ "crafting_table" ],
"group": "planks",
"pattern": [
"#"
],
"key": {
"#": {
"item": "minecraft:stripped_acacia_log"
}
},
"result": {
"item": "minecraft:planks",
"data": 4,
"count": 4
}
}
}
@@ -1,26 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:acacia_planks_from_stripped_wood"
},
"tags": [ "crafting_table" ],
"group": "planks",
"pattern": [
"#"
],
"key": {
"#": {
"item": "minecraft:wood",
"data": 12
}
},
"result": {
"item": "minecraft:planks",
"data": 4,
"count": 4
}
}
}
-26
View File
@@ -1,26 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:acacia_planks_from_wood"
},
"tags": [ "crafting_table" ],
"group": "planks",
"pattern": [
"#"
],
"key": {
"#": {
"item": "minecraft:wood",
"data": 4
}
},
"result": {
"item": "minecraft:planks",
"data": 4,
"count": 4
}
}
}
-27
View File
@@ -1,27 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:acacia_stairs"
},
"tags": [ "crafting_table" ],
"group": "wooden_stairs",
"pattern": [
"# ",
"## ",
"###"
],
"key": {
"#": {
"item": "minecraft:planks",
"data": 4
}
},
"result": {
"item": "minecraft:acacia_stairs",
"count": 4
}
}
}
-27
View File
@@ -1,27 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:acacia_wood"
},
"tags": [ "crafting_table" ],
"group": "wood",
"pattern": [
"##",
"##"
],
"key": {
"#": {
"item": "minecraft:log2",
"data": 0
}
},
"result": {
"item": "minecraft:wood",
"data": 4,
"count": 3
}
}
}
-26
View File
@@ -1,26 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:acacia_wood_stripped"
},
"tags": [ "crafting_table" ],
"group": "wood",
"pattern": [
"##",
"##"
],
"key": {
"#": {
"item": "minecraft:stripped_acacia_log"
}
},
"result": {
"item": "minecraft:wood",
"data": 12,
"count": 3
}
}
}
-26
View File
@@ -1,26 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:acacia_wooden_slab"
},
"tags": [ "crafting_table" ],
"group": "wooden_slab",
"pattern": [
"###"
],
"key": {
"#": {
"item": "minecraft:planks",
"data": 4
}
},
"result": {
"item": "minecraft:wooden_slab",
"data": 4,
"count": 6
}
}
}
-31
View File
@@ -1,31 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:activator_rail"
},
"tags": [ "crafting_table" ],
"pattern": [
"XSX",
"X#X",
"XSX"
],
"key": {
"#": {
"item": "minecraft:redstone_torch"
},
"S": {
"item": "minecraft:stick"
},
"X": {
"item": "minecraft:iron_ingot"
}
},
"result": {
"item": "minecraft:activator_rail",
"count": 6
}
}
}
-25
View File
@@ -1,25 +0,0 @@
{
"format_version": "1.16",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:amethyst_block"
},
"tags": [
"crafting_table"
],
"pattern": [
"AA",
"AA"
],
"key": {
"A": {
"item": "minecraft:amethyst_shard"
}
},
"result": {
"item": "minecraft:amethyst_block",
"count": 1
},
"priority": 1
}
}
-25
View File
@@ -1,25 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:andesite"
},
"tags": [ "crafting_table" ],
"ingredients": [
{
"item": "minecraft:stone",
"data": 3
},
{
"item": "minecraft:cobblestone"
}
],
"result": {
"item": "minecraft:stone",
"data": 5,
"count": 2
}
}
}
-26
View File
@@ -1,26 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:andesite_stairs"
},
"tags": [ "crafting_table" ],
"pattern": [
"# ",
"## ",
"###"
],
"key": {
"#": {
"item": "minecraft:stone",
"data": 5
}
},
"result": {
"item": "minecraft:andesite_stairs",
"count": 4
}
}
}
-26
View File
@@ -1,26 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:andesite_wall"
},
"tags": [ "crafting_table" ],
"pattern": [
"###",
"###"
],
"key": {
"#": {
"item": "minecraft:stone",
"data": 5
}
},
"result": {
"item": "minecraft:cobblestone_wall",
"data": 4,
"count": 6
}
}
}
-28
View File
@@ -1,28 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:anvil"
},
"tags": [ "crafting_table" ],
"pattern": [
"III",
" i ",
"iii"
],
"key": {
"I": {
"item": "minecraft:iron_block"
},
"i": {
"item": "minecraft:iron_ingot"
}
},
"result": {
"item": "minecraft:anvil",
"data": 0
}
}
}
-28
View File
@@ -1,28 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:armor_stand"
},
"tags": [ "crafting_table" ],
"pattern": [
"///",
" / ",
"/_/"
],
"key": {
"/": {
"item": "minecraft:stick"
},
"_": {
"item": "minecraft:double_stone_slab",
"data": 0
}
},
"result": {
"item": "minecraft:armor_stand"
}
}
}
-31
View File
@@ -1,31 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:arrow"
},
"tags": [ "crafting_table" ],
"pattern": [
"X",
"#",
"Y"
],
"key": {
"#": {
"item": "minecraft:stick"
},
"X": {
"item": "minecraft:flint"
},
"Y": {
"item": "minecraft:feather"
}
},
"result": {
"item": "minecraft:arrow",
"count": 4
}
}
}
-24
View File
@@ -1,24 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:banner_pattern_bricks"
},
"tags": [ "crafting_table" ],
"group": "banner_pattern",
"ingredients": [
{
"item": "minecraft:paper"
},
{
"item": "minecraft:brick_block"
}
],
"result": {
"item": "minecraft:banner_pattern",
"data": 4
}
}
}
-25
View File
@@ -1,25 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:banner_pattern_creeper"
},
"tags": [ "crafting_table" ],
"group": "banner_pattern",
"ingredients": [
{
"item": "minecraft:paper"
},
{
"item": "minecraft:skull",
"data": 4
}
],
"result": {
"item": "minecraft:banner_pattern",
"data": 0
}
}
}
-25
View File
@@ -1,25 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:banner_pattern_flower"
},
"tags": [ "crafting_table" ],
"group": "banner_pattern",
"ingredients": [
{
"item": "minecraft:paper"
},
{
"item": "minecraft:red_flower",
"data": 8
}
],
"result": {
"item": "minecraft:banner_pattern",
"data": 2
}
}
}
-25
View File
@@ -1,25 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:banner_pattern_skull"
},
"tags": [ "crafting_table" ],
"group": "banner_pattern",
"ingredients": [
{
"item": "minecraft:paper"
},
{
"item": "minecraft:skull",
"data": 1
}
],
"result": {
"item": "minecraft:banner_pattern",
"data": 1
}
}
}
-24
View File
@@ -1,24 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:banner_pattern_thing"
},
"tags": [ "crafting_table" ],
"group": "banner_pattern",
"ingredients": [
{
"item": "minecraft:paper"
},
{
"item": "minecraft:appleenchanted"
}
],
"result": {
"item": "minecraft:banner_pattern",
"data": 3
}
}
}
-24
View File
@@ -1,24 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:banner_pattern_vines"
},
"tags": [ "crafting_table" ],
"group": "banner_pattern",
"ingredients": [
{
"item": "minecraft:paper"
},
{
"item": "minecraft:vine"
}
],
"result": {
"item": "minecraft:banner_pattern",
"data": 5
}
}
}
-27
View File
@@ -1,27 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:barrel"
},
"tags": [ "crafting_table" ],
"pattern": [
"#-#",
"# #",
"#-#"
],
"key": {
"#": {
"item": "minecraft:stick"
},
"-": {
"item": "minecraft:wooden_slab"
}
},
"result": {
"item": "minecraft:barrel"
}
}
}
-29
View File
@@ -1,29 +0,0 @@
{
"format_version": "1.16",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:barrel_from_crimson_slab"
},
"tags": [
"crafting_table"
],
"pattern": [
"ABA",
"A A",
"ABA"
],
"key": {
"A": {
"item": "minecraft:stick"
},
"B": {
"item": "crimson_slab"
}
},
"result": {
"item": "minecraft:barrel",
"count": 1
},
"priority": 2
}
}
-29
View File
@@ -1,29 +0,0 @@
{
"format_version": "1.16",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:barrel_from_warped_slab"
},
"tags": [
"crafting_table"
],
"pattern": [
"ABA",
"A A",
"ABA"
],
"key": {
"A": {
"item": "minecraft:stick"
},
"B": {
"item": "warped_slab"
}
},
"result": {
"item": "minecraft:barrel",
"count": 1
},
"priority": 2
}
}
-24
View File
@@ -1,24 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:basic_map_to_enhanced"
},
"tags": [ "crafting_table" ],
"ingredients": [
{
"item": "minecraft:emptymap",
"data": 1
},
{
"item": "minecraft:compass"
}
],
"result": {
"item": "minecraft:emptymap",
"data": 2
}
}
}
-30
View File
@@ -1,30 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:beacon"
},
"tags": [ "crafting_table" ],
"pattern": [
"GGG",
"GSG",
"OOO"
],
"key": {
"S": {
"item": "minecraft:netherstar"
},
"G": {
"item": "minecraft:glass"
},
"O": {
"item": "minecraft:obsidian"
}
},
"result": {
"item": "minecraft:beacon"
}
}
}
-25
View File
@@ -1,25 +0,0 @@
{
"format_version": "1.14",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:beehive"
},
"tags": [ "crafting_table" ],
"pattern": [
"###",
"ooo",
"###"
],
"key": {
"#": {
"item": "minecraft:planks"
},
"o": {
"item": "minecraft:honeycomb"
}
},
"result": [
{ "item": "minecraft:beehive" }
]
}
}
-29
View File
@@ -1,29 +0,0 @@
{
"format_version": "1.16",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:beehive_from_crimson_planks"
},
"tags": [
"crafting_table"
],
"pattern": [
"AAA",
"BBB",
"AAA"
],
"key": {
"A": {
"item": "crimson_planks"
},
"B": {
"item": "honeycomb"
}
},
"result": {
"item": "beehive",
"count": 1
},
"priority": 2
}
}
-29
View File
@@ -1,29 +0,0 @@
{
"format_version": "1.16",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:beehive_from_warped_planks"
},
"tags": [
"crafting_table"
],
"pattern": [
"AAA",
"BBB",
"AAA"
],
"key": {
"A": {
"item": "warped_planks"
},
"B": {
"item": "honeycomb"
}
},
"result": {
"item": "beehive",
"count": 1
},
"priority": 2
}
}
-23
View File
@@ -1,23 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:beetroot_soup"
},
"tags": [ "crafting_table" ],
"ingredients": [
{
"item": "minecraft:bowl"
},
{
"item": "minecraft:beetroot",
"count": 6
}
],
"result": {
"item": "minecraft:beetroot_soup"
}
}
}
-28
View File
@@ -1,28 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:birch_boat"
},
"tags": [ "crafting_table" ],
"pattern": [
"#P#",
"###"
],
"key": {
"P": {
"item": "minecraft:wooden_shovel"
},
"#": {
"item": "minecraft:planks",
"data": 2
}
},
"result": {
"item": "minecraft:boat",
"data": 2
}
}
}
-27
View File
@@ -1,27 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:birch_door"
},
"tags": [ "crafting_table" ],
"group": "wooden_door",
"pattern": [
"##",
"##",
"##"
],
"key": {
"#": {
"item": "minecraft:planks",
"data": 2
}
},
"result": {
"item": "minecraft:birch_door",
"count": 3
}
}
}
-29
View File
@@ -1,29 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:birch_fence"
},
"tags": [ "crafting_table" ],
"pattern": [
"W#W",
"W#W"
],
"key": {
"#": {
"item": "minecraft:stick"
},
"W": {
"item": "minecraft:planks",
"data": 2
}
},
"result": {
"item": "minecraft:fence",
"data": 2,
"count": 3
}
}
}
-28
View File
@@ -1,28 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:birch_fence_gate"
},
"tags": [ "crafting_table" ],
"group": "wooden_fence_gate",
"pattern": [
"#W#",
"#W#"
],
"key": {
"#": {
"item": "minecraft:stick"
},
"W": {
"item": "minecraft:planks",
"data": 2
}
},
"result": {
"item": "minecraft:birch_fence_gate"
}
}
}
-26
View File
@@ -1,26 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:birch_planks"
},
"tags": [ "crafting_table" ],
"group": "planks",
"pattern": [
"#"
],
"key": {
"#": {
"item": "minecraft:log",
"data": 2
}
},
"result": {
"item": "minecraft:planks",
"data": 2,
"count": 4
}
}
}
-25
View File
@@ -1,25 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:birch_planks_from_stripped"
},
"tags": [ "crafting_table" ],
"group": "planks",
"pattern": [
"#"
],
"key": {
"#": {
"item": "minecraft:stripped_birch_log"
}
},
"result": {
"item": "minecraft:planks",
"data": 2,
"count": 4
}
}
}
@@ -1,26 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:birch_planks_from_stripped_wood"
},
"tags": [ "crafting_table" ],
"group": "planks",
"pattern": [
"#"
],
"key": {
"#": {
"item": "minecraft:wood",
"data": 10
}
},
"result": {
"item": "minecraft:planks",
"data": 2,
"count": 4
}
}
}
-26
View File
@@ -1,26 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:birch_planks_from_wood"
},
"tags": [ "crafting_table" ],
"group": "planks",
"pattern": [
"#"
],
"key": {
"#": {
"item": "minecraft:wood",
"data": 2
}
},
"result": {
"item": "minecraft:planks",
"data": 2,
"count": 4
}
}
}
-27
View File
@@ -1,27 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:birch_stairs"
},
"tags": [ "crafting_table" ],
"group": "wooden_stairs",
"pattern": [
"# ",
"## ",
"###"
],
"key": {
"#": {
"item": "minecraft:planks",
"data": 2
}
},
"result": {
"item": "minecraft:birch_stairs",
"count": 4
}
}
}
-27
View File
@@ -1,27 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:birch_wood"
},
"tags": [ "crafting_table" ],
"group": "wood",
"pattern": [
"##",
"##"
],
"key": {
"#": {
"item": "minecraft:log",
"data": 2
}
},
"result": {
"item": "minecraft:wood",
"data": 2,
"count": 3
}
}
}
-26
View File
@@ -1,26 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:birch_wood_stripped"
},
"tags": [ "crafting_table" ],
"group": "wood",
"pattern": [
"##",
"##"
],
"key": {
"#": {
"item": "minecraft:stripped_birch_log"
}
},
"result": {
"item": "minecraft:wood",
"data": 10,
"count": 3
}
}
}
-26
View File
@@ -1,26 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:birch_wooden_slab"
},
"tags": [ "crafting_table" ],
"group": "wooden_slab",
"pattern": [
"###"
],
"key": {
"#": {
"item": "minecraft:planks",
"data": 2
}
},
"result": {
"item": "minecraft:wooden_slab",
"data": 2,
"count": 6
}
}
}
-30
View File
@@ -1,30 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:black_banner"
},
"tags": [ "crafting_table" ],
"group": "banner",
"pattern": [
"###",
"###",
" | "
],
"key": {
"#": {
"item": "minecraft:wool",
"data": 15
},
"|": {
"item": "minecraft:stick"
}
},
"result": {
"item": "minecraft:banner",
"data": 0
}
}
}
-22
View File
@@ -1,22 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:black_candle"
},
"tags": [ "crafting_table" ],
"group": "candle",
"ingredients": [
{
"item": "minecraft:candle"
},
{
"item": "minecraft:dye",
"data": 16
}
],
"result": {
"item": "minecraft:black_candle"
}
}
}
-22
View File
@@ -1,22 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:black_candle_from_ink_sac"
},
"tags": [ "crafting_table" ],
"group": "candle",
"ingredients": [
{
"item": "minecraft:candle"
},
{
"item": "minecraft:dye",
"data": 0
}
],
"result": {
"item": "minecraft:black_candle"
}
}
}
-26
View File
@@ -1,26 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:black_carpet"
},
"tags": [ "crafting_table" ],
"group": "carpet",
"pattern": [
"##"
],
"key": {
"#": {
"item": "minecraft:wool",
"data": 15
}
},
"result": {
"item": "minecraft:carpet",
"data": 15,
"count": 3
}
}
}
-33
View File
@@ -1,33 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:black_carpet_from_white"
},
"tags": [ "crafting_table" ],
"group": "carpet",
"priority": 1,
"pattern": [
"###",
"#X#",
"###"
],
"key": {
"#": {
"item": "minecraft:carpet",
"data": 0
},
"X": {
"item": "minecraft:dye",
"data": 16
}
},
"result": {
"item": "minecraft:carpet",
"data": 15,
"count": 8
}
}
}
-51
View File
@@ -1,51 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:black_concrete_powder"
},
"tags": [ "crafting_table" ],
"group": "concrete_powder",
"ingredients": [
{
"item": "minecraft:dye",
"data": 16
},
{
"item": "minecraft:sand",
"data": 0
},
{
"item": "minecraft:sand",
"data": 0
},
{
"item": "minecraft:sand",
"data": 0
},
{
"item": "minecraft:sand",
"data": 0
},
{
"item": "minecraft:gravel"
},
{
"item": "minecraft:gravel"
},
{
"item": "minecraft:gravel"
},
{
"item": "minecraft:gravel"
}
],
"result": {
"item": "minecraft:concrete_powder",
"data": 15,
"count": 8
}
}
}
@@ -1,52 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:black_concrete_powder_from_ink_sac"
},
"tags": [ "crafting_table" ],
"group": "concrete_powder",
"priority": 1,
"ingredients": [
{
"item": "minecraft:dye",
"data": 0
},
{
"item": "minecraft:sand",
"data": 0
},
{
"item": "minecraft:sand",
"data": 0
},
{
"item": "minecraft:sand",
"data": 0
},
{
"item": "minecraft:sand",
"data": 0
},
{
"item": "minecraft:gravel"
},
{
"item": "minecraft:gravel"
},
{
"item": "minecraft:gravel"
},
{
"item": "minecraft:gravel"
}
],
"result": {
"item": "minecraft:concrete_powder",
"data": 15,
"count": 8
}
}
}
-22
View File
@@ -1,22 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:black_dye_from_ink_sac"
},
"tags": [ "crafting_table" ],
"group": "black_dye",
"ingredients": [
{
"item": "minecraft:dye",
"data": 0
}
],
"result": {
"item": "minecraft:dye",
"data": 16
}
}
}
-19
View File
@@ -1,19 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:black_dye_from_wither_rose"
},
"tags": [ "crafting_table" ],
"group": "black_dye",
"ingredients": [
{
"item": "minecraft:wither_rose"
}
],
"result": {
"item": "minecraft:dye",
"data": 16
}
}
}
-31
View File
@@ -1,31 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:black_stained_glass"
},
"tags": [ "crafting_table" ],
"group": "stained_glass",
"pattern": [
"###",
"#X#",
"###"
],
"key": {
"#": {
"item": "minecraft:glass"
},
"X": {
"item": "minecraft:dye",
"data": 16
}
},
"result": {
"item": "minecraft:stained_glass",
"data": 15,
"count": 8
}
}
}
@@ -1,32 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:black_stained_glass_from_ink_sac"
},
"tags": [ "crafting_table" ],
"group": "stained_glass",
"priority": 1,
"pattern": [
"###",
"#X#",
"###"
],
"key": {
"#": {
"item": "minecraft:glass"
},
"X": {
"item": "minecraft:dye",
"data": 0
}
},
"result": {
"item": "minecraft:stained_glass",
"data": 15,
"count": 8
}
}
}
-27
View File
@@ -1,27 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:black_stained_glass_pane"
},
"tags": [ "crafting_table" ],
"group": "stained_glass_pane",
"pattern": [
"###",
"###"
],
"key": {
"#": {
"item": "minecraft:stained_glass",
"data": 15
}
},
"result": {
"item": "minecraft:stained_glass_pane",
"data": 15,
"count": 16
}
}
}
@@ -1,31 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:black_stained_glass_pane_from_pane"
},
"tags": [ "crafting_table" ],
"group": "stained_glass_pane",
"pattern": [
"###",
"#X#",
"###"
],
"key": {
"#": {
"item": "minecraft:glass_pane"
},
"X": {
"item": "minecraft:dye",
"data": 16
}
},
"result": {
"item": "minecraft:stained_glass_pane",
"data": 15,
"count": 8
}
}
}
-31
View File
@@ -1,31 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:black_stained_hardened_clay"
},
"tags": [ "crafting_table" ],
"group": "stained_hardened_clay",
"pattern": [
"###",
"#X#",
"###"
],
"key": {
"#": {
"item": "minecraft:hardened_clay"
},
"X": {
"item": "minecraft:dye",
"data": 16
}
},
"result": {
"item": "minecraft:stained_hardened_clay",
"data": 15,
"count": 8
}
}
}
@@ -1,32 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:black_stained_hardened_clay_from_ink_sac"
},
"tags": [ "crafting_table" ],
"group": "stained_hardened_clay",
"priority": 1,
"pattern": [
"###",
"#X#",
"###"
],
"key": {
"#": {
"item": "minecraft:hardened_clay"
},
"X": {
"item": "minecraft:dye",
"data": 0
}
},
"result": {
"item": "minecraft:stained_hardened_clay",
"data": 15,
"count": 8
}
}
}
-21
View File
@@ -1,21 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:blackstone_slab"
},
"tags": [ "crafting_table" ],
"pattern": [
"###"
],
"key": {
"#": {
"item": "minecraft:blackstone"
}
},
"result": {
"item": "minecraft:blackstone_slab",
"count": 6
}
}
}
-23
View File
@@ -1,23 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:blackstone_stairs"
},
"tags": [ "crafting_table" ],
"pattern": [
"# ",
"## ",
"###"
],
"key": {
"#": {
"item": "minecraft:blackstone"
}
},
"result": {
"item": "minecraft:blackstone_stairs",
"count": 4
}
}
}
-22
View File
@@ -1,22 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:blackstone_wall"
},
"tags": [ "crafting_table" ],
"pattern": [
"###",
"###"
],
"key": {
"#": {
"item": "minecraft:blackstone"
}
},
"result": {
"item": "minecraft:blackstone_wall",
"count": 6
}
}
}
-30
View File
@@ -1,30 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:blast_furnace"
},
"tags": [ "crafting_table" ],
"pattern": [
"III",
"IFI",
"###"
],
"key": {
"#": {
"item": "minecraft:smooth_stone"
},
"I": {
"item": "minecraft:iron_ingot"
},
"F": {
"item": "minecraft:furnace"
}
},
"result": {
"item": "minecraft:blast_furnace"
}
}
}
-20
View File
@@ -1,20 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:blaze_powder"
},
"tags": [ "crafting_table" ],
"ingredients": [
{
"item": "minecraft:blaze_rod"
}
],
"result": {
"item": "minecraft:blaze_powder",
"count": 2
}
}
}
-30
View File
@@ -1,30 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:blue_banner"
},
"tags": [ "crafting_table" ],
"group": "banner",
"pattern": [
"###",
"###",
" | "
],
"key": {
"#": {
"item": "minecraft:wool",
"data": 11
},
"|": {
"item": "minecraft:stick"
}
},
"result": {
"item": "minecraft:banner",
"data": 4
}
}
}
-22
View File
@@ -1,22 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:blue_candle"
},
"tags": [ "crafting_table" ],
"group": "candle",
"ingredients": [
{
"item": "minecraft:candle"
},
{
"item": "minecraft:dye",
"data": 18
}
],
"result": {
"item": "minecraft:blue_candle"
}
}
}
@@ -1,22 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:blue_candle_from_lapis_lazuli"
},
"tags": [ "crafting_table" ],
"group": "candle",
"ingredients": [
{
"item": "minecraft:candle"
},
{
"item": "minecraft:dye",
"data": 4
}
],
"result": {
"item": "minecraft:blue_candle"
}
}
}
-26
View File
@@ -1,26 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:blue_carpet"
},
"tags": [ "crafting_table" ],
"group": "carpet",
"pattern": [
"##"
],
"key": {
"#": {
"item": "minecraft:wool",
"data": 11
}
},
"result": {
"item": "minecraft:carpet",
"data": 11,
"count": 3
}
}
}
-32
View File
@@ -1,32 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:blue_carpet_from_white"
},
"tags": [ "crafting_table" ],
"group": "carpet",
"pattern": [
"###",
"#X#",
"###"
],
"key": {
"#": {
"item": "minecraft:carpet",
"data": 0
},
"X": {
"item": "minecraft:dye",
"data": 18
}
},
"result": {
"item": "minecraft:carpet",
"data": 11,
"count": 8
}
}
}
-51
View File
@@ -1,51 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:blue_concrete_powder"
},
"tags": [ "crafting_table" ],
"group": "concrete_powder",
"ingredients": [
{
"item": "minecraft:dye",
"data": 18
},
{
"item": "minecraft:sand",
"data": 0
},
{
"item": "minecraft:sand",
"data": 0
},
{
"item": "minecraft:sand",
"data": 0
},
{
"item": "minecraft:sand",
"data": 0
},
{
"item": "minecraft:gravel"
},
{
"item": "minecraft:gravel"
},
{
"item": "minecraft:gravel"
},
{
"item": "minecraft:gravel"
}
],
"result": {
"item": "minecraft:concrete_powder",
"data": 11,
"count": 8
}
}
}
@@ -1,52 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:blue_concrete_powder_from_lapis_lazuli"
},
"tags": [ "crafting_table" ],
"group": "concrete_powder",
"priority": 1,
"ingredients": [
{
"item": "minecraft:dye",
"data": 4
},
{
"item": "minecraft:sand",
"data": 0
},
{
"item": "minecraft:sand",
"data": 0
},
{
"item": "minecraft:sand",
"data": 0
},
{
"item": "minecraft:sand",
"data": 0
},
{
"item": "minecraft:gravel"
},
{
"item": "minecraft:gravel"
},
{
"item": "minecraft:gravel"
},
{
"item": "minecraft:gravel"
}
],
"result": {
"item": "minecraft:concrete_powder",
"data": 11,
"count": 8
}
}
}
-22
View File
@@ -1,22 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:blue_dye_from_cornflower"
},
"tags": [ "crafting_table" ],
"group": "blue_dye",
"ingredients": [
{
"item": "minecraft:red_flower",
"data": 9
}
],
"result": {
"item": "minecraft:dye",
"data": 18
}
}
}
-22
View File
@@ -1,22 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:blue_dye_from_lapis_lazuli"
},
"tags": [ "crafting_table" ],
"group": "blue_dye",
"ingredients": [
{
"item": "minecraft:dye",
"data": 4
}
],
"result": {
"item": "minecraft:dye",
"data": 18
}
}
}
-25
View File
@@ -1,25 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:blue_ice"
},
"tags": [ "crafting_table" ],
"pattern": [
"###",
"###",
"###"
],
"key": {
"#": {
"item": "minecraft:packed_ice"
}
},
"result": {
"item": "minecraft:blue_ice",
"count": 1
}
}
}
-31
View File
@@ -1,31 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:blue_stained_glass"
},
"tags": [ "crafting_table" ],
"group": "stained_glass",
"pattern": [
"###",
"#X#",
"###"
],
"key": {
"#": {
"item": "minecraft:glass"
},
"X": {
"item": "minecraft:dye",
"data": 18
}
},
"result": {
"item": "minecraft:stained_glass",
"data": 11,
"count": 8
}
}
}
@@ -1,32 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:blue_stained_glass_from_lapis_lazuli"
},
"tags": [ "crafting_table" ],
"group": "stained_glass",
"priority": 1,
"pattern": [
"###",
"#X#",
"###"
],
"key": {
"#": {
"item": "minecraft:glass"
},
"X": {
"item": "minecraft:dye",
"data": 4
}
},
"result": {
"item": "minecraft:stained_glass",
"data": 11,
"count": 8
}
}
}
-27
View File
@@ -1,27 +0,0 @@
{
"format_version": "1.12",
"minecraft:recipe_shaped": {
"description": {
"identifier": "minecraft:blue_stained_glass_pane"
},
"tags": [ "crafting_table" ],
"group": "stained_glass_pane",
"pattern": [
"###",
"###"
],
"key": {
"#": {
"item": "minecraft:stained_glass",
"data": 11
}
},
"result": {
"item": "minecraft:stained_glass_pane",
"data": 11,
"count": 16
}
}
}

Some files were not shown because too many files have changed in this diff Show More