diff --git a/docs/.vitepress/theme/components/content/CodeHeader.vue b/docs/.vitepress/theme/components/content/CodeHeader.vue new file mode 100644 index 00000000..a33cc6f7 --- /dev/null +++ b/docs/.vitepress/theme/components/content/CodeHeader.vue @@ -0,0 +1,22 @@ + + + + diff --git a/docs/.vitepress/theme/components/content/WikiImage.vue b/docs/.vitepress/theme/components/content/WikiImage.vue new file mode 100644 index 00000000..95778d47 --- /dev/null +++ b/docs/.vitepress/theme/components/content/WikiImage.vue @@ -0,0 +1,26 @@ + + + + + diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts index e105991e..c50c66b4 100644 --- a/docs/.vitepress/theme/index.ts +++ b/docs/.vitepress/theme/index.ts @@ -1,9 +1,13 @@ import DefaultTheme from 'vitepress/theme' import MyFeatures from './components/MyFeatures.vue' +import CodeHeader from './components/content/CodeHeader.vue' +import WikiImage from './components/content/WikiImage.vue' export default { extends: DefaultTheme, enhanceApp({ app }) { - app.component('MyFeatures', MyFeatures) + app.component('MyFeatures', MyFeatures); + app.component('CodeHeader', CodeHeader); + app.component('WikiImage', WikiImage); } } \ No newline at end of file diff --git a/docs/public/assets/images/blocks/block-models/edit_material_instances.png b/docs/public/assets/images/blocks/block-models/edit_material_instances.png new file mode 100644 index 00000000..418b2bde --- /dev/null +++ b/docs/public/assets/images/blocks/block-models/edit_material_instances.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07a64d0a326fa973e47c7e4615854afb1edcdda1098df6fccee947928abe9394 +size 14341 diff --git a/docs/public/assets/images/blocks/block-models/new_cube.png b/docs/public/assets/images/blocks/block-models/new_cube.png new file mode 100644 index 00000000..d6b8c2b7 --- /dev/null +++ b/docs/public/assets/images/blocks/block-models/new_cube.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1738335ba28cbe6365e52391f0649131f7fcacffe8e8e572c479d13191ca1964 +size 23280 diff --git a/docs/public/assets/images/blocks/block-models/new_project.png b/docs/public/assets/images/blocks/block-models/new_project.png new file mode 100644 index 00000000..5a888215 --- /dev/null +++ b/docs/public/assets/images/blocks/block-models/new_project.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8784c5c615e64a262886fe1513053d1ec73f56f334d539570a7ebc24aa6972d5 +size 21934 diff --git a/docs/public/assets/images/blocks/block-models/paper_bag.png b/docs/public/assets/images/blocks/block-models/paper_bag.png new file mode 100644 index 00000000..afbeb7e3 --- /dev/null +++ b/docs/public/assets/images/blocks/block-models/paper_bag.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a92daafc3790c22b69f095e1ecceea0e98bcfd80d64e3c0e03519fe76dc535c +size 211 diff --git a/docs/public/assets/images/blocks/block-models/paper_bag_bottom_fold.png b/docs/public/assets/images/blocks/block-models/paper_bag_bottom_fold.png new file mode 100644 index 00000000..f95a359c --- /dev/null +++ b/docs/public/assets/images/blocks/block-models/paper_bag_bottom_fold.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8e16caef06b22928d22e4651f387ad3e4d444f2b4881787791b994ebfabd111 +size 165 diff --git a/docs/public/assets/images/blocks/block-models/paper_bag_cubes.png b/docs/public/assets/images/blocks/block-models/paper_bag_cubes.png new file mode 100644 index 00000000..e5d6c6ab --- /dev/null +++ b/docs/public/assets/images/blocks/block-models/paper_bag_cubes.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4dd6e93d6fae56ca3f704622635e1f84c5d595586052048a88465c359163da88 +size 18646 diff --git a/docs/public/assets/images/blocks/block-models/paper_bag_final.png b/docs/public/assets/images/blocks/block-models/paper_bag_final.png new file mode 100644 index 00000000..d1c0eabe --- /dev/null +++ b/docs/public/assets/images/blocks/block-models/paper_bag_final.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d84aebdd34fe2efa25c27927e6fc33d3c819482985394558bcef579bf227ee7 +size 10074 diff --git a/docs/public/assets/images/blocks/block-models/paper_bag_handle_faces_removed.png b/docs/public/assets/images/blocks/block-models/paper_bag_handle_faces_removed.png new file mode 100644 index 00000000..a71f1f48 --- /dev/null +++ b/docs/public/assets/images/blocks/block-models/paper_bag_handle_faces_removed.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1a182643f2c6836533515fd53fbc5fcd72d4321585030c1fa2a4a54f5259e5d +size 58027 diff --git a/docs/public/assets/images/blocks/block-models/paper_bag_handle_uv.png b/docs/public/assets/images/blocks/block-models/paper_bag_handle_uv.png new file mode 100644 index 00000000..1ba77cf3 --- /dev/null +++ b/docs/public/assets/images/blocks/block-models/paper_bag_handle_uv.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d24321b2f7e5ccc997e24dd0b0b11b42f37404d5b71f5ac5189e83753e13b04 +size 10661 diff --git a/docs/public/assets/images/blocks/block-models/paper_bag_side_gusset.png b/docs/public/assets/images/blocks/block-models/paper_bag_side_gusset.png new file mode 100644 index 00000000..86d3913b --- /dev/null +++ b/docs/public/assets/images/blocks/block-models/paper_bag_side_gusset.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65196807bef748be70fa41cb36472def34928004ad74fc4f45772cec534d017a +size 183 diff --git a/docs/public/assets/images/blocks/block-models/paper_bag_top_removed.png b/docs/public/assets/images/blocks/block-models/paper_bag_top_removed.png new file mode 100644 index 00000000..9aafff93 --- /dev/null +++ b/docs/public/assets/images/blocks/block-models/paper_bag_top_removed.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0bcb2470e331d3b307ab053f6a0dc4d81fb8df17cec8ef924d815a6da244a94e +size 51890 diff --git a/docs/public/assets/images/blocks/block-models/preview_textures_applied.png b/docs/public/assets/images/blocks/block-models/preview_textures_applied.png new file mode 100644 index 00000000..b5fee3e7 --- /dev/null +++ b/docs/public/assets/images/blocks/block-models/preview_textures_applied.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b97fd68bc1e80be9ce89beaa5d09ea6ebe334efca26e95b82c8f6762035e8ae +size 13850 diff --git a/docs/public/assets/images/blocks/block-models/project_settings.png b/docs/public/assets/images/blocks/block-models/project_settings.png new file mode 100644 index 00000000..67efabac --- /dev/null +++ b/docs/public/assets/images/blocks/block-models/project_settings.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c99c3a7c8fae2fbd5a338aacb5f5119a758d8c1f0f4a8cd50876261a057a9e1a +size 19100 diff --git a/docs/public/assets/images/blocks/block-models/root_bone.png b/docs/public/assets/images/blocks/block-models/root_bone.png new file mode 100644 index 00000000..83e5c5ae --- /dev/null +++ b/docs/public/assets/images/blocks/block-models/root_bone.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:039b52dc47c89832c019a79d67057460b21b11c749e0cfb521d34f29e1a5886d +size 5425 diff --git a/docs/public/assets/images/blocks/block-models/select_edit_material_instances.png b/docs/public/assets/images/blocks/block-models/select_edit_material_instances.png new file mode 100644 index 00000000..c062e598 --- /dev/null +++ b/docs/public/assets/images/blocks/block-models/select_edit_material_instances.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79d702273ff0e82435aca8fbd5f8ad53e34ef8d4b693ab7e0daf38684e775c76 +size 30339 diff --git a/docs/public/assets/images/blocks/block_tr/inventory_render_cubes.png b/docs/public/assets/images/blocks/block_tr/inventory_render_cubes.png new file mode 100644 index 00000000..6b35ef42 --- /dev/null +++ b/docs/public/assets/images/blocks/block_tr/inventory_render_cubes.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aec99e24c658e7386c0c1ea7424d95e8658ef18338e08ff621e91a36a9198502 +size 3400 diff --git a/docs/public/assets/images/blocks/block_tr/tr_dirt.png b/docs/public/assets/images/blocks/block_tr/tr_dirt.png new file mode 100644 index 00000000..9c814cfa --- /dev/null +++ b/docs/public/assets/images/blocks/block_tr/tr_dirt.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6fdb59551d2826b1cfd2a4e9a68d997a0b2a4150a189eec023c8c103b7d5996 +size 6752 diff --git a/docs/public/assets/images/blocks/block_tr/tr_grass.png b/docs/public/assets/images/blocks/block_tr/tr_grass.png new file mode 100644 index 00000000..28f52821 --- /dev/null +++ b/docs/public/assets/images/blocks/block_tr/tr_grass.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c16704c3c73b3a57c56817cf68ecf7e8cba921a449f59c1024b1b3bdb56fcc8 +size 6505 diff --git a/docs/public/assets/images/blocks/block_tr/tr_log.png b/docs/public/assets/images/blocks/block_tr/tr_log.png new file mode 100644 index 00000000..de60f45d --- /dev/null +++ b/docs/public/assets/images/blocks/block_tr/tr_log.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a2c2d3736045ce83d1f433074437de4909506482252221965e82fb9f3fc11c5 +size 5518 diff --git a/docs/public/assets/images/blocks/block_tr/tr_update.png b/docs/public/assets/images/blocks/block_tr/tr_update.png new file mode 100644 index 00000000..6e66b69e --- /dev/null +++ b/docs/public/assets/images/blocks/block_tr/tr_update.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f4174f1192b0c696620952afc706bc8c503f10b6da9b7b212123f9763aa87de +size 10213 diff --git a/docs/public/assets/images/blocks/blocks-intro/compass_block_down.png b/docs/public/assets/images/blocks/blocks-intro/compass_block_down.png new file mode 100644 index 00000000..7dda5943 --- /dev/null +++ b/docs/public/assets/images/blocks/blocks-intro/compass_block_down.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69c8c202494fe5d3aea2e409221079dbfcf33bb62e079d6b3fd30e395d542f87 +size 199 diff --git a/docs/public/assets/images/blocks/blocks-intro/compass_block_east.png b/docs/public/assets/images/blocks/blocks-intro/compass_block_east.png new file mode 100644 index 00000000..03b6e737 --- /dev/null +++ b/docs/public/assets/images/blocks/blocks-intro/compass_block_east.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac966720b42252c58da40fe76af3765186147d7ea4786174415500c53c961c2f +size 189 diff --git a/docs/public/assets/images/blocks/blocks-intro/compass_block_north.png b/docs/public/assets/images/blocks/blocks-intro/compass_block_north.png new file mode 100644 index 00000000..036b7644 --- /dev/null +++ b/docs/public/assets/images/blocks/blocks-intro/compass_block_north.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ce0f44586cd447d1d21a689416e760cff530767d412e51feb8b2566eaa1a19a +size 201 diff --git a/docs/public/assets/images/blocks/blocks-intro/compass_block_south.png b/docs/public/assets/images/blocks/blocks-intro/compass_block_south.png new file mode 100644 index 00000000..7b391890 --- /dev/null +++ b/docs/public/assets/images/blocks/blocks-intro/compass_block_south.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3de979b846fd421edb8f57a9c5d8ec9cc3b2c46347c4cca52628e6f9e9d4ea0e +size 200 diff --git a/docs/public/assets/images/blocks/blocks-intro/compass_block_up.png b/docs/public/assets/images/blocks/blocks-intro/compass_block_up.png new file mode 100644 index 00000000..eadc6563 --- /dev/null +++ b/docs/public/assets/images/blocks/blocks-intro/compass_block_up.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8e4562bec613402ef2cd2ce2ff6eebf1304bdba2b861c5d95dbc352254a3f2c +size 196 diff --git a/docs/public/assets/images/blocks/blocks-intro/compass_block_west.png b/docs/public/assets/images/blocks/blocks-intro/compass_block_west.png new file mode 100644 index 00000000..44d64e7c --- /dev/null +++ b/docs/public/assets/images/blocks/blocks-intro/compass_block_west.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea00b943a462c8ae491c7436aea1413491313c8add42511279186ff606beddee +size 195 diff --git a/docs/public/assets/images/blocks/custom-crops/model.png b/docs/public/assets/images/blocks/custom-crops/model.png new file mode 100644 index 00000000..b66c7c48 --- /dev/null +++ b/docs/public/assets/images/blocks/custom-crops/model.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d73fd3398830b330aff08404c60b5ba9e955ebdd6b78a174ad66ef4751c948d5 +size 39877 diff --git a/docs/public/assets/images/blocks/custom-fluids/fluid_display.png b/docs/public/assets/images/blocks/custom-fluids/fluid_display.png new file mode 100644 index 00000000..48ebdb2f --- /dev/null +++ b/docs/public/assets/images/blocks/custom-fluids/fluid_display.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7929a925650520544d602a676e8e44bac6919a5836f5324a8e8ae76b595a374f +size 2698 diff --git a/docs/public/assets/images/blocks/custom-trees/decaying_leaves_showcase_example.png b/docs/public/assets/images/blocks/custom-trees/decaying_leaves_showcase_example.png new file mode 100644 index 00000000..8736c4ab --- /dev/null +++ b/docs/public/assets/images/blocks/custom-trees/decaying_leaves_showcase_example.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6862c011cf68eeec8d259031ea859ce4b7122e2d0245cdd6ff234b21604be63 +size 109498 diff --git a/docs/public/assets/images/blocks/custom-trees/export_structures.png b/docs/public/assets/images/blocks/custom-trees/export_structures.png new file mode 100644 index 00000000..170a431f --- /dev/null +++ b/docs/public/assets/images/blocks/custom-trees/export_structures.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aea638d4a6d033d7b947237b92ff4630f1b1564cc7a4f8f2190baadbbb2293c6 +size 434634 diff --git a/docs/public/assets/images/blocks/custom-trees/export_tree.png b/docs/public/assets/images/blocks/custom-trees/export_tree.png new file mode 100644 index 00000000..4bf7dc40 --- /dev/null +++ b/docs/public/assets/images/blocks/custom-trees/export_tree.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b637a6e303f0646083f192dbeec6bd4973168de1972dfb3145e45e0c9f9870a +size 430629 diff --git a/docs/public/assets/images/blocks/custom-trees/result.png b/docs/public/assets/images/blocks/custom-trees/result.png new file mode 100644 index 00000000..6ab15f06 --- /dev/null +++ b/docs/public/assets/images/blocks/custom-trees/result.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a357ed0f60f7dd2b49bad0ab883892d745a9a90c81858c7b5de00810c6de7412 +size 396435 diff --git a/docs/public/assets/images/blocks/flipbook-textures/animated_texture_1.gif b/docs/public/assets/images/blocks/flipbook-textures/animated_texture_1.gif new file mode 100644 index 00000000..d9cc4daa --- /dev/null +++ b/docs/public/assets/images/blocks/flipbook-textures/animated_texture_1.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06a068ef2b881dd0d10cf3da20bd77d1be9bb204ac256109bd191fdcf8f1062d +size 155264 diff --git a/docs/public/assets/images/blocks/flipbook-textures/animated_texture_2.gif b/docs/public/assets/images/blocks/flipbook-textures/animated_texture_2.gif new file mode 100644 index 00000000..81a2db6e --- /dev/null +++ b/docs/public/assets/images/blocks/flipbook-textures/animated_texture_2.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0264cf71f8bf604ca742e1c20d117d082cd119c73c903d31309ded7c3744b30 +size 70809 diff --git a/docs/public/assets/images/blocks/glass-block/glass_showcase.png b/docs/public/assets/images/blocks/glass-block/glass_showcase.png new file mode 100644 index 00000000..bac2d57d --- /dev/null +++ b/docs/public/assets/images/blocks/glass-block/glass_showcase.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7cdaa0de10836f4e80a45e7106afbe36e1f65873e8802d9ac6574885069d3233 +size 2276694 diff --git a/docs/public/assets/images/blocks/ore-loot/result.gif b/docs/public/assets/images/blocks/ore-loot/result.gif new file mode 100644 index 00000000..28db61ba --- /dev/null +++ b/docs/public/assets/images/blocks/ore-loot/result.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10c3ee09bff4fc180f648503e6dcb31719c4f41aa5595b951aabefb6674a8102 +size 421964 diff --git a/docs/public/assets/images/blocks/precise-interaction/double_flower_pot.png b/docs/public/assets/images/blocks/precise-interaction/double_flower_pot.png new file mode 100644 index 00000000..e8735c78 --- /dev/null +++ b/docs/public/assets/images/blocks/precise-interaction/double_flower_pot.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0dff083ff2967f5012e1d8590ad8dccc1edc9677d2f698134ea9f05ce9263f51 +size 16807 diff --git a/docs/public/assets/images/blocks/precise-interaction/pigeonholes.png b/docs/public/assets/images/blocks/precise-interaction/pigeonholes.png new file mode 100644 index 00000000..11798809 --- /dev/null +++ b/docs/public/assets/images/blocks/precise-interaction/pigeonholes.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa873a5a0d959d4da7927c1de1196271e1799ece523234d86f96a6761018a124 +size 18296 diff --git a/docs/public/assets/images/blocks/precise-interaction/showcase.png b/docs/public/assets/images/blocks/precise-interaction/showcase.png new file mode 100644 index 00000000..76ae9a1f --- /dev/null +++ b/docs/public/assets/images/blocks/precise-interaction/showcase.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d346ab415a87a57b7e083f9aee45446aa6c4049d321c367556b382fe6c85caf +size 320648 diff --git a/docs/public/assets/images/blocks/precise-rotation/model_bones.png b/docs/public/assets/images/blocks/precise-rotation/model_bones.png new file mode 100644 index 00000000..e39129c0 --- /dev/null +++ b/docs/public/assets/images/blocks/precise-rotation/model_bones.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2372769d4c59bfb6298f76de9a1bafcf76dbbce210349d91c10a4ff37fe605a0 +size 40220 diff --git a/docs/public/assets/images/blocks/precise-rotation/result.png b/docs/public/assets/images/blocks/precise-rotation/result.png new file mode 100644 index 00000000..d09a7401 --- /dev/null +++ b/docs/public/assets/images/blocks/precise-rotation/result.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:597861d8d35b8c01eac566e34bb9a11bac13625638e5a691cd13ca21b043ffb8 +size 61297 diff --git a/docs/public/assets/images/blocks/precise-rotation/showcase.png b/docs/public/assets/images/blocks/precise-rotation/showcase.png new file mode 100644 index 00000000..09d0d5c5 --- /dev/null +++ b/docs/public/assets/images/blocks/precise-rotation/showcase.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb9315ba16171880f0e9cbe8de21e9c25601835c6c87d9dada36f4145ba0e956 +size 229898 diff --git a/docs/public/assets/images/commands/BClogo.png b/docs/public/assets/images/commands/BClogo.png new file mode 100644 index 00000000..f75098ce --- /dev/null +++ b/docs/public/assets/images/commands/BClogo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e405f2cb22b0fb9dbf161d0494f016bbf70299f45d05263fd51fd3ea3e3a15f +size 224219 diff --git a/docs/public/assets/images/commands/chainCommandBlock.png b/docs/public/assets/images/commands/chainCommandBlock.png new file mode 100644 index 00000000..d4ce51a6 --- /dev/null +++ b/docs/public/assets/images/commands/chainCommandBlock.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13e4bf03e114cbe7d6fac1ed20e4d97dc73e0325284d29b89580aae71aed6716 +size 351 diff --git a/docs/public/assets/images/commands/chainConditionalCommandBlock.png b/docs/public/assets/images/commands/chainConditionalCommandBlock.png new file mode 100644 index 00000000..17db79de --- /dev/null +++ b/docs/public/assets/images/commands/chainConditionalCommandBlock.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27a76b6c180c8df809553f341e3ce60c68fd80812a98626155f84849af96229e +size 362 diff --git a/docs/public/assets/images/commands/commandBlockChain/3.png b/docs/public/assets/images/commands/commandBlockChain/3.png new file mode 100644 index 00000000..e3924399 --- /dev/null +++ b/docs/public/assets/images/commands/commandBlockChain/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac77c9336a0accf69401418e0194d7318f077e51a2e3fd037f215bea4c7f7c43 +size 3630 diff --git a/docs/public/assets/images/commands/commandBlockChain/4.png b/docs/public/assets/images/commands/commandBlockChain/4.png new file mode 100644 index 00000000..ff4d672b --- /dev/null +++ b/docs/public/assets/images/commands/commandBlockChain/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2ebdc2f0f1480dcd0ad5c9abb6e05908d1660488e005d6d59c72d847e206ecb +size 3631 diff --git a/docs/public/assets/images/commands/commandBlockChain/6.png b/docs/public/assets/images/commands/commandBlockChain/6.png new file mode 100644 index 00000000..18206b9c --- /dev/null +++ b/docs/public/assets/images/commands/commandBlockChain/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8febb64d5a5c8d3546ddb1c4db5a933c8a21a979f56befcaad310c8ea70f23a +size 3749 diff --git a/docs/public/assets/images/commands/commandBlockChain/7.png b/docs/public/assets/images/commands/commandBlockChain/7.png new file mode 100644 index 00000000..6833d3ea --- /dev/null +++ b/docs/public/assets/images/commands/commandBlockChain/7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c92a9a16b56ee268b1802557bd1d6536cc22b1711d5422503a4d08a11d3cc252 +size 3809 diff --git a/docs/public/assets/images/commands/commandBlockChain/8.png b/docs/public/assets/images/commands/commandBlockChain/8.png new file mode 100644 index 00000000..8cbc49b7 --- /dev/null +++ b/docs/public/assets/images/commands/commandBlockChain/8.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab94f2e3c5bdf7fc0f6193b16512b1286763f949d2794ab03bbc76b12bee8958 +size 3831 diff --git a/docs/public/assets/images/commands/commandBlockUI.png b/docs/public/assets/images/commands/commandBlockUI.png new file mode 100644 index 00000000..ff1499b5 --- /dev/null +++ b/docs/public/assets/images/commands/commandBlockUI.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ad9a0bb1f44d620bc62d61610e2dac6b78df5ec746b7a869f36b4ddfabd7697 +size 9311 diff --git a/docs/public/assets/images/commands/contentLogHistory.png b/docs/public/assets/images/commands/contentLogHistory.png new file mode 100644 index 00000000..e2f578a4 --- /dev/null +++ b/docs/public/assets/images/commands/contentLogHistory.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:003ad5a4baa50f9cfee02458aeaa353b95a492156e2b440992edce518472a4e4 +size 217532 diff --git a/docs/public/assets/images/commands/contentLogToggles.png b/docs/public/assets/images/commands/contentLogToggles.png new file mode 100644 index 00000000..9706eb0e --- /dev/null +++ b/docs/public/assets/images/commands/contentLogToggles.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3716199077620116d644cafee157c41fae224bbb7b64ecc44e8efd3631102d83 +size 25496 diff --git a/docs/public/assets/images/commands/correctCommandBlockPlacement.png b/docs/public/assets/images/commands/correctCommandBlockPlacement.png new file mode 100644 index 00000000..5c9999ed --- /dev/null +++ b/docs/public/assets/images/commands/correctCommandBlockPlacement.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1c0b299aa3d8be2d75777b71bcb12f6de98dc7faede0319d8d9b4084e691b43 +size 41454 diff --git a/docs/public/assets/images/commands/gametick.png b/docs/public/assets/images/commands/gametick.png new file mode 100644 index 00000000..1b899bbc --- /dev/null +++ b/docs/public/assets/images/commands/gametick.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff205db421e6cd219d61efcf87e61b3c530a790245299c8af5ec487139affbb8 +size 12557 diff --git a/docs/public/assets/images/commands/hover_note.png b/docs/public/assets/images/commands/hover_note.png new file mode 100644 index 00000000..067318c0 --- /dev/null +++ b/docs/public/assets/images/commands/hover_note.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96f72eadef0e52edee6e0e2f14a18eb36d0b50cab174035f391d66aef8b6c5c6 +size 779633 diff --git a/docs/public/assets/images/commands/impulseCommandBlock.png b/docs/public/assets/images/commands/impulseCommandBlock.png new file mode 100644 index 00000000..b79032af --- /dev/null +++ b/docs/public/assets/images/commands/impulseCommandBlock.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a5c3662639ecb04c5cd5c50886a9ef0133685c2f641f006cc5b4adb4749b8c1 +size 358 diff --git a/docs/public/assets/images/commands/impulseConditionalCommandBlock.png b/docs/public/assets/images/commands/impulseConditionalCommandBlock.png new file mode 100644 index 00000000..fcca4944 --- /dev/null +++ b/docs/public/assets/images/commands/impulseConditionalCommandBlock.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9ad967abc2256284b232feac9f7577ca7cf586ef74fd639ac984ee795887ad0 +size 359 diff --git a/docs/public/assets/images/commands/incorrectCommandBlockPlacement.png b/docs/public/assets/images/commands/incorrectCommandBlockPlacement.png new file mode 100644 index 00000000..2a607b0f --- /dev/null +++ b/docs/public/assets/images/commands/incorrectCommandBlockPlacement.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2978580932a8865622e1045c9736d0faded28338111653b91ba1b72154dadf1a +size 44202 diff --git a/docs/public/assets/images/commands/longDivision.png b/docs/public/assets/images/commands/longDivision.png new file mode 100644 index 00000000..b4cec2f7 --- /dev/null +++ b/docs/public/assets/images/commands/longDivision.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc470e025dcc80902817339a659f787a64d96ffc286d3b73c12a998d39d7b0a2 +size 103986 diff --git a/docs/public/assets/images/commands/pack_icon.png b/docs/public/assets/images/commands/pack_icon.png new file mode 100644 index 00000000..920c3e72 --- /dev/null +++ b/docs/public/assets/images/commands/pack_icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f860ec422a54614dd6eef4d2b5e47b1f6afffda51c6176e33455794e10fff7df +size 1311 diff --git a/docs/public/assets/images/commands/pasteCommandButton.png b/docs/public/assets/images/commands/pasteCommandButton.png new file mode 100644 index 00000000..0f04df1a --- /dev/null +++ b/docs/public/assets/images/commands/pasteCommandButton.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f193c7236bc93ea2f74b0bbcb45385f1d76df6f23a1a95965485da1030a34eef +size 44547 diff --git a/docs/public/assets/images/commands/repeatingCommandBlock.png b/docs/public/assets/images/commands/repeatingCommandBlock.png new file mode 100644 index 00000000..bc4a28cc --- /dev/null +++ b/docs/public/assets/images/commands/repeatingCommandBlock.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f84e78fbfb39492e2cedb1bbae97da3adb899cdde6d1409cf56df38170138bf1 +size 355 diff --git a/docs/public/assets/images/commands/repeatingConditionalCommandBlock.png b/docs/public/assets/images/commands/repeatingConditionalCommandBlock.png new file mode 100644 index 00000000..55cae3e0 --- /dev/null +++ b/docs/public/assets/images/commands/repeatingConditionalCommandBlock.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84d89eb779a1848eab5cce3fd82ef96d522e71e1b66bc9d9dd94488a0a52a828 +size 362 diff --git a/docs/public/assets/images/commands/timers/timer.gif b/docs/public/assets/images/commands/timers/timer.gif new file mode 100644 index 00000000..240a4a64 --- /dev/null +++ b/docs/public/assets/images/commands/timers/timer.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42c7c8fd3fd9742895e508ba039357200408a383a2e548a3126a77a10bb6869b +size 1200273 diff --git a/docs/public/assets/images/concepts/animation-controllers/three_state_FSM.png b/docs/public/assets/images/concepts/animation-controllers/three_state_FSM.png new file mode 100644 index 00000000..ce611b88 --- /dev/null +++ b/docs/public/assets/images/concepts/animation-controllers/three_state_FSM.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82e61a70d026afa4d3560b5b1842a5da1a835fd15909130a904a6cacfd70bc39 +size 21184 diff --git a/docs/public/assets/images/concepts/animation-controllers/two_state_FSM.png b/docs/public/assets/images/concepts/animation-controllers/two_state_FSM.png new file mode 100644 index 00000000..7918b192 --- /dev/null +++ b/docs/public/assets/images/concepts/animation-controllers/two_state_FSM.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:983734def5d6bf4f0ca6e45a50c2b81ad96ea43721dc142f0e2d90d932d96d5c +size 13659 diff --git a/docs/public/assets/images/concepts/emojis/custom/annotated/glyph_E0.png b/docs/public/assets/images/concepts/emojis/custom/annotated/glyph_E0.png new file mode 100644 index 00000000..d57d7b06 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/custom/annotated/glyph_E0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f47aa1408473da7413f5975a0f709fd1e2a697d3cec6e65d78b8d059d5e7d78d +size 24624 diff --git a/docs/public/assets/images/concepts/emojis/custom/annotated/glyph_E1.png b/docs/public/assets/images/concepts/emojis/custom/annotated/glyph_E1.png new file mode 100644 index 00000000..04accb78 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/custom/annotated/glyph_E1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe2190bbf7a252906701876f397bdaf933425311487b1350a3e1fa95f9cc0e7e +size 8235 diff --git a/docs/public/assets/images/concepts/emojis/custom/glyph_E0.png b/docs/public/assets/images/concepts/emojis/custom/glyph_E0.png new file mode 100644 index 00000000..bc3f27a4 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/custom/glyph_E0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:416cc8b49a09bf5c2311c2562622180d7f0056c5482d0a7c708e00bc4e28418c +size 7558 diff --git a/docs/public/assets/images/concepts/emojis/custom/glyph_E1.png b/docs/public/assets/images/concepts/emojis/custom/glyph_E1.png new file mode 100644 index 00000000..a1e2ec71 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/custom/glyph_E1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e5bfce24efc2f31e78cf4107b684649d28f6498c12392586a77e56068680d52 +size 1477 diff --git a/docs/public/assets/images/concepts/emojis/hud/armor.png b/docs/public/assets/images/concepts/emojis/hud/armor.png new file mode 100644 index 00000000..ddb27c1d --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/hud/armor.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eadd91e36e3c10de64fa720e4c4b9f37240323582594a0198a9adee61445bcca +size 2922 diff --git a/docs/public/assets/images/concepts/emojis/hud/food.png b/docs/public/assets/images/concepts/emojis/hud/food.png new file mode 100644 index 00000000..9da9c911 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/hud/food.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8078516875d9d31ea9cb59b43c2c0d339889d019a84a40c288bf340e998419af +size 2991 diff --git a/docs/public/assets/images/concepts/emojis/hud/heart.png b/docs/public/assets/images/concepts/emojis/hud/heart.png new file mode 100644 index 00000000..1f860f37 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/hud/heart.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:331180b8c1dc5bf5ee6efd0e3625a8a0ae767188e5f53bb5405cf38b9e67fcd0 +size 190 diff --git a/docs/public/assets/images/concepts/emojis/inventory/craft_toggle_off.png b/docs/public/assets/images/concepts/emojis/inventory/craft_toggle_off.png new file mode 100644 index 00000000..70bfb776 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/inventory/craft_toggle_off.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6934177d026bb887779e7bec39261a0f037567cad232f2a48215043740b4d678 +size 3029 diff --git a/docs/public/assets/images/concepts/emojis/inventory/craft_toggle_on.png b/docs/public/assets/images/concepts/emojis/inventory/craft_toggle_on.png new file mode 100644 index 00000000..a51ce23f --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/inventory/craft_toggle_on.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5f5fd43b843975197f310cdf0b22401f491ebb7fd2f69c456deea54e5a1dbe8 +size 3025 diff --git a/docs/public/assets/images/concepts/emojis/items/crafting_table.png b/docs/public/assets/images/concepts/emojis/items/crafting_table.png new file mode 100644 index 00000000..93dd1d73 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/items/crafting_table.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4550a7158609488529b72f00c04d289e1491c5b65b2b513bb44862d5631514b8 +size 451 diff --git a/docs/public/assets/images/concepts/emojis/items/furnace.png b/docs/public/assets/images/concepts/emojis/items/furnace.png new file mode 100644 index 00000000..7206a776 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/items/furnace.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:632d097cee647d3fa3c2e7fcc4ed902fe16306c88475b59f93941a446809fe3c +size 449 diff --git a/docs/public/assets/images/concepts/emojis/items/wooden_pickaxe.png b/docs/public/assets/images/concepts/emojis/items/wooden_pickaxe.png new file mode 100644 index 00000000..618237f4 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/items/wooden_pickaxe.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48ac5bd1533375c6b2c9672eb9a9dc221d4c334024aff5e9fa4285e04db4b9de +size 301 diff --git a/docs/public/assets/images/concepts/emojis/items/wooden_sword.png b/docs/public/assets/images/concepts/emojis/items/wooden_sword.png new file mode 100644 index 00000000..5737c3c3 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/items/wooden_sword.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1382d4a83a893d5fca92881a4568f6b52f727295e33914b3533dceec6d53b860 +size 307 diff --git a/docs/public/assets/images/concepts/emojis/keyboard/left_click.png b/docs/public/assets/images/concepts/emojis/keyboard/left_click.png new file mode 100644 index 00000000..88d9f7ea --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/keyboard/left_click.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b73ef78a1a19d3d00a63627b122b31465ea527ae244619fbd7a99f3b10b7aa15 +size 2991 diff --git a/docs/public/assets/images/concepts/emojis/keyboard/middle_click.png b/docs/public/assets/images/concepts/emojis/keyboard/middle_click.png new file mode 100644 index 00000000..e46afc9d --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/keyboard/middle_click.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe8f757e547d404196224c33a49df94301754ec085e004eaabb26e790efc86a7 +size 3010 diff --git a/docs/public/assets/images/concepts/emojis/keyboard/right_click.png b/docs/public/assets/images/concepts/emojis/keyboard/right_click.png new file mode 100644 index 00000000..58fd96cf --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/keyboard/right_click.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2f3f21edfe0e9de9d235c1c003978d97b15766491f5cf03770d5a1642445c26 +size 3003 diff --git a/docs/public/assets/images/concepts/emojis/keyboard/small_left_click.png b/docs/public/assets/images/concepts/emojis/keyboard/small_left_click.png new file mode 100644 index 00000000..14fb19b1 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/keyboard/small_left_click.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c44b38a76b5970561253e5eb71a9509d8c270c3e807b0667b8d21e801e83247 +size 290 diff --git a/docs/public/assets/images/concepts/emojis/keyboard/small_middle_click.png b/docs/public/assets/images/concepts/emojis/keyboard/small_middle_click.png new file mode 100644 index 00000000..06ec5f17 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/keyboard/small_middle_click.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7eb15e79b9a1090b3f79bd552aeebd908f2dcbf0ab6e46ed633124a40c79a7d8 +size 296 diff --git a/docs/public/assets/images/concepts/emojis/keyboard/small_mouse.png b/docs/public/assets/images/concepts/emojis/keyboard/small_mouse.png new file mode 100644 index 00000000..a4f6da4e --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/keyboard/small_mouse.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53b28eb3850297ab9a4ce90f9df1b6521bfe3e32e127b49d47cebb79b5db0352 +size 279 diff --git a/docs/public/assets/images/concepts/emojis/keyboard/small_right_click.png b/docs/public/assets/images/concepts/emojis/keyboard/small_right_click.png new file mode 100644 index 00000000..c534e4e3 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/keyboard/small_right_click.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da0e118a6f293a8cc57d659657aa87018d02856d639947b7cd5aaa4764c4615c +size 286 diff --git a/docs/public/assets/images/concepts/emojis/marketplace/minecoin.png b/docs/public/assets/images/concepts/emojis/marketplace/minecoin.png new file mode 100644 index 00000000..9e716eb5 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/marketplace/minecoin.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31cd3d24d739bad836c03043bd07ab246db478117a3023630f702ca2bd7fb141 +size 3033 diff --git a/docs/public/assets/images/concepts/emojis/marketplace/token.png b/docs/public/assets/images/concepts/emojis/marketplace/token.png new file mode 100644 index 00000000..1a29b511 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/marketplace/token.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d96ab6e91eb84bdb3212c49cb56e9f025ccf517b53e79b0ed6be497f62cf38a2 +size 2942 diff --git a/docs/public/assets/images/concepts/emojis/new_touch/attack.png b/docs/public/assets/images/concepts/emojis/new_touch/attack.png new file mode 100644 index 00000000..2169b6d6 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/new_touch/attack.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a62e4a633a84d494a3308c5109c68e535aae6dabeb8ddea1192e0c75c1f9e59 +size 242 diff --git a/docs/public/assets/images/concepts/emojis/new_touch/dismount.png b/docs/public/assets/images/concepts/emojis/new_touch/dismount.png new file mode 100644 index 00000000..a22e1731 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/new_touch/dismount.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0aeed969dae25c7ec2c78dee0c7d6bbd53418e3e52e873c0811c70849bbd38e8 +size 255 diff --git a/docs/public/assets/images/concepts/emojis/new_touch/fly_down.png b/docs/public/assets/images/concepts/emojis/new_touch/fly_down.png new file mode 100644 index 00000000..0b7b7f5e --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/new_touch/fly_down.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:859a4befa00754726683583082dfc7e90d007224b9e2b82c8786b0234079f12b +size 257 diff --git a/docs/public/assets/images/concepts/emojis/new_touch/fly_up.png b/docs/public/assets/images/concepts/emojis/new_touch/fly_up.png new file mode 100644 index 00000000..ffc077cb --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/new_touch/fly_up.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:713d8f5be8e5e1cca998cb0eeac7ebde61bbe027ba38224a62cf5de5a51d0467 +size 254 diff --git a/docs/public/assets/images/concepts/emojis/new_touch/joystick.png b/docs/public/assets/images/concepts/emojis/new_touch/joystick.png new file mode 100644 index 00000000..cdc659be --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/new_touch/joystick.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e10aeeff1bbff339629ecbb5125c9155b177691e3062465475ab79c83aab491 +size 239 diff --git a/docs/public/assets/images/concepts/emojis/new_touch/jump.png b/docs/public/assets/images/concepts/emojis/new_touch/jump.png new file mode 100644 index 00000000..9f6c5360 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/new_touch/jump.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9648287fcadc6a2e1a03a811cb2c4c6c234f2f8c38c99824337942c4ffcffa7 +size 234 diff --git a/docs/public/assets/images/concepts/emojis/new_touch/place.png b/docs/public/assets/images/concepts/emojis/new_touch/place.png new file mode 100644 index 00000000..938217cb --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/new_touch/place.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7fc9d2eaaa66c3f105aa0c3c38d5a100a1587875c4ddff6d6caf504fc44b1a95 +size 230 diff --git a/docs/public/assets/images/concepts/emojis/new_touch/sneak.png b/docs/public/assets/images/concepts/emojis/new_touch/sneak.png new file mode 100644 index 00000000..5df2b847 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/new_touch/sneak.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:730ea7851674fa7fbbe29bf42a7d7de215144d1d56e65ba8f30d88e3eaca4769 +size 231 diff --git a/docs/public/assets/images/concepts/emojis/new_touch/sprint.png b/docs/public/assets/images/concepts/emojis/new_touch/sprint.png new file mode 100644 index 00000000..1dccf406 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/new_touch/sprint.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af9c6ada457f9b1d47c3fc0148a6e6e2c859e38e9df751c6547575131e0c1e3e +size 230 diff --git a/docs/public/assets/images/concepts/emojis/oculus/0_button.png b/docs/public/assets/images/concepts/emojis/oculus/0_button.png new file mode 100644 index 00000000..15009292 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/oculus/0_button.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac00d00e1207d635c63339fd6204ac6ed4362796181a40d4415333eea4da9190 +size 2997 diff --git a/docs/public/assets/images/concepts/emojis/oculus/a_button.png b/docs/public/assets/images/concepts/emojis/oculus/a_button.png new file mode 100644 index 00000000..1294f706 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/oculus/a_button.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9371d6cb51518e36ff1ea128cdae7d89a281a6f009c110fa6930ee5be3c99fcb +size 2984 diff --git a/docs/public/assets/images/concepts/emojis/oculus/b_button.png b/docs/public/assets/images/concepts/emojis/oculus/b_button.png new file mode 100644 index 00000000..fcab5974 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/oculus/b_button.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86abeec0e0e1e60fbab9a4a2444f2d3e055b7038170ffa6e88207a3b5676c488 +size 3001 diff --git a/docs/public/assets/images/concepts/emojis/oculus/left_grip.png b/docs/public/assets/images/concepts/emojis/oculus/left_grip.png new file mode 100644 index 00000000..01412af4 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/oculus/left_grip.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8575e37780e8115c2662d4b6bd396d24a6e935956440b083840e35461a2e13c8 +size 3006 diff --git a/docs/public/assets/images/concepts/emojis/oculus/left_stick.png b/docs/public/assets/images/concepts/emojis/oculus/left_stick.png new file mode 100644 index 00000000..b548927d --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/oculus/left_stick.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebe941e85002a6515db07153f80c3271e6d5e4a61c0a627109c57b9d3389027c +size 3144 diff --git a/docs/public/assets/images/concepts/emojis/oculus/left_trigger.png b/docs/public/assets/images/concepts/emojis/oculus/left_trigger.png new file mode 100644 index 00000000..0ee3f055 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/oculus/left_trigger.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a98e77a3f45ebdf288c5e02ca809428975bf58821dc642261abe11fc2299d6da +size 3072 diff --git a/docs/public/assets/images/concepts/emojis/oculus/right_grip.png b/docs/public/assets/images/concepts/emojis/oculus/right_grip.png new file mode 100644 index 00000000..1e1bb185 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/oculus/right_grip.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8fb3f006019b8da05770131afdfb3278d7cfcce2bf6dfd4bb723307ab1d14116 +size 2999 diff --git a/docs/public/assets/images/concepts/emojis/oculus/right_stick.png b/docs/public/assets/images/concepts/emojis/oculus/right_stick.png new file mode 100644 index 00000000..cb0a668a --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/oculus/right_stick.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61b5d8e8a0dd676566df7ec53ad566f3118744bf4aef1610d01c9b0c2edabe12 +size 3153 diff --git a/docs/public/assets/images/concepts/emojis/oculus/right_trigger.png b/docs/public/assets/images/concepts/emojis/oculus/right_trigger.png new file mode 100644 index 00000000..7892b0b5 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/oculus/right_trigger.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20b4652da034429c7d041bf7f1ed3243dfd14ef4cf356f85bc9c8a5fc67d1e08 +size 3090 diff --git a/docs/public/assets/images/concepts/emojis/oculus/x_button.png b/docs/public/assets/images/concepts/emojis/oculus/x_button.png new file mode 100644 index 00000000..16cc4b92 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/oculus/x_button.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5082aea2c84dbdb952a209e89fdea1599e8aaa75205f56d63904359df3d184b6 +size 3000 diff --git a/docs/public/assets/images/concepts/emojis/oculus/y_button.png b/docs/public/assets/images/concepts/emojis/oculus/y_button.png new file mode 100644 index 00000000..694f2adb --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/oculus/y_button.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88636279ed642820e4b6472fd4b04fbb31b982c8247cd319ba0ddf7dd036b0d5 +size 2999 diff --git a/docs/public/assets/images/concepts/emojis/other/agent.png b/docs/public/assets/images/concepts/emojis/other/agent.png new file mode 100644 index 00000000..d1b5284b --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/other/agent.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6e62974d6d2f8316cf0f13b6cf10376f4d8e03d302bc72712f339c0d53c42bd +size 3016 diff --git a/docs/public/assets/images/concepts/emojis/other/crosshair.png b/docs/public/assets/images/concepts/emojis/other/crosshair.png new file mode 100644 index 00000000..13dbf3cf --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/other/crosshair.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11c0dcefd3e20ef9c7f7b5258a7934b85586770f408001afa1e72ce74631d0e7 +size 148 diff --git a/docs/public/assets/images/concepts/emojis/other/hollow_star.png b/docs/public/assets/images/concepts/emojis/other/hollow_star.png new file mode 100644 index 00000000..48ba4787 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/other/hollow_star.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffe7d3345588c104df0e124624b5b78fb54d72c0919aa7db64b9e88c1f657162 +size 207 diff --git a/docs/public/assets/images/concepts/emojis/other/immersive_reader.png b/docs/public/assets/images/concepts/emojis/other/immersive_reader.png new file mode 100644 index 00000000..7a579251 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/other/immersive_reader.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a120d1d61725c694bdd98df01fc22f70da4abedbc8ed14c84e3681b65014252 +size 2961 diff --git a/docs/public/assets/images/concepts/emojis/other/solid_star.png b/docs/public/assets/images/concepts/emojis/other/solid_star.png new file mode 100644 index 00000000..681c99ec --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/other/solid_star.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28a84b55b4eebcc8e408217672a45d505141c6dbcdbd87363ca5a68f2db970f0 +size 210 diff --git a/docs/public/assets/images/concepts/emojis/playstation/circle.png b/docs/public/assets/images/concepts/emojis/playstation/circle.png new file mode 100644 index 00000000..28588a53 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/playstation/circle.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b556d221d8027caa7460123577126368ac41d0c051fb44efb52075c6cd15984c +size 3026 diff --git a/docs/public/assets/images/concepts/emojis/playstation/cross.png b/docs/public/assets/images/concepts/emojis/playstation/cross.png new file mode 100644 index 00000000..440429a8 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/playstation/cross.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8bdb4f9c5d95c2a13597446eb37aa6f0bf6b3dcfbe2c4b53d155c1e950f656ca +size 3022 diff --git a/docs/public/assets/images/concepts/emojis/playstation/dpad_down.png b/docs/public/assets/images/concepts/emojis/playstation/dpad_down.png new file mode 100644 index 00000000..7bbed8de --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/playstation/dpad_down.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec34a26a4172201a08cdf0ff65a8de402a06cace71e7c6506ca2566411fc0d56 +size 2959 diff --git a/docs/public/assets/images/concepts/emojis/playstation/dpad_left.png b/docs/public/assets/images/concepts/emojis/playstation/dpad_left.png new file mode 100644 index 00000000..f83597f8 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/playstation/dpad_left.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e32d429e5e3fa3a6c416319ace5634f7b8aa35a1ac3dc4a346740d61e8255840 +size 2964 diff --git a/docs/public/assets/images/concepts/emojis/playstation/dpad_right.png b/docs/public/assets/images/concepts/emojis/playstation/dpad_right.png new file mode 100644 index 00000000..64cc49ed --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/playstation/dpad_right.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:193c97c4f792d5409b150915d8b926ddbf601af4ec59e686abae4dc2eb1f112a +size 2941 diff --git a/docs/public/assets/images/concepts/emojis/playstation/dpad_up.png b/docs/public/assets/images/concepts/emojis/playstation/dpad_up.png new file mode 100644 index 00000000..b22e332e --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/playstation/dpad_up.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5aaddb44cf0402343c58e0a0cf3d4bb2a85ee54ffdb6135f6625181759be8ede +size 2950 diff --git a/docs/public/assets/images/concepts/emojis/playstation/left_bumper.png b/docs/public/assets/images/concepts/emojis/playstation/left_bumper.png new file mode 100644 index 00000000..172bb3a4 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/playstation/left_bumper.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d3ec14f6963a1ddaf0b1d5f1b0381cd36b53df08bf2b9fee305d0e48a1d333c +size 2939 diff --git a/docs/public/assets/images/concepts/emojis/playstation/left_stick.png b/docs/public/assets/images/concepts/emojis/playstation/left_stick.png new file mode 100644 index 00000000..c8e210e0 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/playstation/left_stick.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96da6f63024dd27ee35e62fafcd7b6ae74b75eab9e2a2999a73101ac5eacdf16 +size 3056 diff --git a/docs/public/assets/images/concepts/emojis/playstation/left_trigger.png b/docs/public/assets/images/concepts/emojis/playstation/left_trigger.png new file mode 100644 index 00000000..9d96eb80 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/playstation/left_trigger.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a5f7c68fd1e97097bb40012d40a1b7e25ca0a86fbbdfcce10276c41d134e32d +size 2966 diff --git a/docs/public/assets/images/concepts/emojis/playstation/options_share.png b/docs/public/assets/images/concepts/emojis/playstation/options_share.png new file mode 100644 index 00000000..a296f7b6 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/playstation/options_share.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e121241c78ae49387e534ad2f753596d4811bb6522821fd9367a6abfac0d9bb6 +size 2961 diff --git a/docs/public/assets/images/concepts/emojis/playstation/right_bumper.png b/docs/public/assets/images/concepts/emojis/playstation/right_bumper.png new file mode 100644 index 00000000..480c8df7 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/playstation/right_bumper.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9f7d3c7d1a7c89341b05d56f43e553730b9d44cecad122d8aad91cffb073aa9 +size 2958 diff --git a/docs/public/assets/images/concepts/emojis/playstation/right_stick.png b/docs/public/assets/images/concepts/emojis/playstation/right_stick.png new file mode 100644 index 00000000..22ca0e15 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/playstation/right_stick.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01a199535b8890857e4970925d54683f5d066cf0f81f9a5886e90af5061a86d9 +size 3061 diff --git a/docs/public/assets/images/concepts/emojis/playstation/right_trigger.png b/docs/public/assets/images/concepts/emojis/playstation/right_trigger.png new file mode 100644 index 00000000..35a6ddd0 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/playstation/right_trigger.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e69783a9be336ea81bcb4e955ed409ddfdbbe2a40f76c297aa64d9df193ba8b1 +size 2987 diff --git a/docs/public/assets/images/concepts/emojis/playstation/square.png b/docs/public/assets/images/concepts/emojis/playstation/square.png new file mode 100644 index 00000000..603bfa5c --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/playstation/square.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71052a33e73295157e298354856f3b92c429ba646847eb9f1a0275177af878c0 +size 3015 diff --git a/docs/public/assets/images/concepts/emojis/playstation/touch_pad.png b/docs/public/assets/images/concepts/emojis/playstation/touch_pad.png new file mode 100644 index 00000000..908835d1 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/playstation/touch_pad.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01395278e43459bae06ceea0db42461837184a086166a1ad7881566b483534f8 +size 2933 diff --git a/docs/public/assets/images/concepts/emojis/playstation/triangle.png b/docs/public/assets/images/concepts/emojis/playstation/triangle.png new file mode 100644 index 00000000..362a82b7 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/playstation/triangle.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d65c55a047db6e15ac215c760879ed8b66247323dff128129b65b7d5bc02d460 +size 3026 diff --git a/docs/public/assets/images/concepts/emojis/switch/a_button.png b/docs/public/assets/images/concepts/emojis/switch/a_button.png new file mode 100644 index 00000000..e9697870 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/switch/a_button.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6df7395ba429233c648e4dae7c8bd72257955f6445af7711bb52491953f22218 +size 2984 diff --git a/docs/public/assets/images/concepts/emojis/switch/b_button.png b/docs/public/assets/images/concepts/emojis/switch/b_button.png new file mode 100644 index 00000000..4ddbd06a --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/switch/b_button.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55805ca57c0c7dae157865e0a42cad6c4d975c4d9dc45d3528bc99239a33b731 +size 3001 diff --git a/docs/public/assets/images/concepts/emojis/switch/dpad_down.png b/docs/public/assets/images/concepts/emojis/switch/dpad_down.png new file mode 100644 index 00000000..e40d188c --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/switch/dpad_down.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f3fc874ac0c0f89d920ba883f03504466a31aab304448d052e6ff9c8b80169d +size 3011 diff --git a/docs/public/assets/images/concepts/emojis/switch/dpad_left.png b/docs/public/assets/images/concepts/emojis/switch/dpad_left.png new file mode 100644 index 00000000..ffa520db --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/switch/dpad_left.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e93d6d9362ab373a4e7172c53cc6560db1b8385153cfedc061645220d5806c6 +size 3009 diff --git a/docs/public/assets/images/concepts/emojis/switch/dpad_right.png b/docs/public/assets/images/concepts/emojis/switch/dpad_right.png new file mode 100644 index 00000000..2131c57d --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/switch/dpad_right.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ee72441d8b3dbdedd3ce53382a2d26223a9a133e596f3e7d4f8635e140e4288 +size 3001 diff --git a/docs/public/assets/images/concepts/emojis/switch/dpad_up.png b/docs/public/assets/images/concepts/emojis/switch/dpad_up.png new file mode 100644 index 00000000..02ad3783 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/switch/dpad_up.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e06c641268ff1c2375ee58e0a964fd676c0aa6e64bf7755341b75da7c64ff378 +size 3011 diff --git a/docs/public/assets/images/concepts/emojis/switch/left_bumper.png b/docs/public/assets/images/concepts/emojis/switch/left_bumper.png new file mode 100644 index 00000000..54730818 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/switch/left_bumper.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15a062ce359b2de43b3d7dad29f751c264ddaad08fd3894d07cf603e4e7e6a70 +size 2941 diff --git a/docs/public/assets/images/concepts/emojis/switch/left_stick.png b/docs/public/assets/images/concepts/emojis/switch/left_stick.png new file mode 100644 index 00000000..91806542 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/switch/left_stick.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08698a9256fe4b80e20fb160957e211c8ced2e34926dbd1c5d63721cb92d6ffd +size 3025 diff --git a/docs/public/assets/images/concepts/emojis/switch/left_trigger.png b/docs/public/assets/images/concepts/emojis/switch/left_trigger.png new file mode 100644 index 00000000..0c88b123 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/switch/left_trigger.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53a707b59c16c7a61f606a4e08d4a0b05e8fdc307dcc3555db7c68584fb491d4 +size 2951 diff --git a/docs/public/assets/images/concepts/emojis/switch/minus.png b/docs/public/assets/images/concepts/emojis/switch/minus.png new file mode 100644 index 00000000..5e8a4213 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/switch/minus.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8115f9a06e1ee701e465aa9e3cd13d1cd85539b5e2fa58c430cf619d5eee588d +size 2995 diff --git a/docs/public/assets/images/concepts/emojis/switch/plus.png b/docs/public/assets/images/concepts/emojis/switch/plus.png new file mode 100644 index 00000000..26ec30f9 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/switch/plus.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:afa7bab48589ee08f5788dc2d636218e5e4b4b76ed6ffd330ac374d7b082641d +size 3004 diff --git a/docs/public/assets/images/concepts/emojis/switch/right_bumper.png b/docs/public/assets/images/concepts/emojis/switch/right_bumper.png new file mode 100644 index 00000000..4e526d56 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/switch/right_bumper.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:705cb6ab7d094e4d8865e7ab7dc51ed99ebe4df93db8e52b1e7b63ac96bca22e +size 2962 diff --git a/docs/public/assets/images/concepts/emojis/switch/right_stick.png b/docs/public/assets/images/concepts/emojis/switch/right_stick.png new file mode 100644 index 00000000..04a44481 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/switch/right_stick.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:004cd87d2a684bff9afee7207663b84f4cee7e047553d2df5bb94579abff9da2 +size 3038 diff --git a/docs/public/assets/images/concepts/emojis/switch/right_trigger.png b/docs/public/assets/images/concepts/emojis/switch/right_trigger.png new file mode 100644 index 00000000..2831edb3 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/switch/right_trigger.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:858565e93c9c53958ba15fab9bae39999b54d3fd3f65c35a3245016eae208494 +size 2986 diff --git a/docs/public/assets/images/concepts/emojis/switch/x_button.png b/docs/public/assets/images/concepts/emojis/switch/x_button.png new file mode 100644 index 00000000..9bf18826 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/switch/x_button.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3508814d6e44ffb148cb7fb708d2545aa2ed5263d0eae9f3ec40011197b0d00 +size 3006 diff --git a/docs/public/assets/images/concepts/emojis/switch/y_button.png b/docs/public/assets/images/concepts/emojis/switch/y_button.png new file mode 100644 index 00000000..dbd99e16 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/switch/y_button.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5aa0c10395ba5b174a858c2509787c325e17a0d5518e89e556cdd2b64ca90264 +size 3006 diff --git a/docs/public/assets/images/concepts/emojis/touch/crouch.png b/docs/public/assets/images/concepts/emojis/touch/crouch.png new file mode 100644 index 00000000..f98cd919 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/touch/crouch.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51ea795d792ee5de164717fce69ae6f49e2c15b13fc1a6abbace2d92b3c29ae5 +size 3111 diff --git a/docs/public/assets/images/concepts/emojis/touch/down_arrow.png b/docs/public/assets/images/concepts/emojis/touch/down_arrow.png new file mode 100644 index 00000000..78135bd3 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/touch/down_arrow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c141345544c6539961c84eecb5758707658d9f75a2582ee33ffac10c7e3ddac +size 3161 diff --git a/docs/public/assets/images/concepts/emojis/touch/fly_down.png b/docs/public/assets/images/concepts/emojis/touch/fly_down.png new file mode 100644 index 00000000..d690145d --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/touch/fly_down.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38b18932b57ad30831763094d31672d2ab0d34df702c8d39ac76444840e60b1d +size 3094 diff --git a/docs/public/assets/images/concepts/emojis/touch/fly_up.png b/docs/public/assets/images/concepts/emojis/touch/fly_up.png new file mode 100644 index 00000000..969489aa --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/touch/fly_up.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:038f30b2910c8d207c706a166658f90f38c80e01a663a399157f67d16335ba9e +size 3092 diff --git a/docs/public/assets/images/concepts/emojis/touch/jump.png b/docs/public/assets/images/concepts/emojis/touch/jump.png new file mode 100644 index 00000000..ffdb4c8f --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/touch/jump.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90bbf25d6f6c1830a2c3837724d7e942de872ce88ba592f7e20b9c568fc9a4b7 +size 3123 diff --git a/docs/public/assets/images/concepts/emojis/touch/left_arrow.png b/docs/public/assets/images/concepts/emojis/touch/left_arrow.png new file mode 100644 index 00000000..3eadeb60 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/touch/left_arrow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58c24b0773d78efadc7864c0ed53f4f7a6539e4cc56ae7c0948a502b47247afd +size 3120 diff --git a/docs/public/assets/images/concepts/emojis/touch/right_arrow.png b/docs/public/assets/images/concepts/emojis/touch/right_arrow.png new file mode 100644 index 00000000..39f6430d --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/touch/right_arrow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ecec8888924936c8b14307c9290d18b181f1e62915b9c6487b045c2c7e908da2 +size 3149 diff --git a/docs/public/assets/images/concepts/emojis/touch/smallcrouch.png b/docs/public/assets/images/concepts/emojis/touch/smallcrouch.png new file mode 100644 index 00000000..0a937ccf --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/touch/smallcrouch.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:188ee5211d5b1bd100878e2ba96878d523bdf320148f6102dad041fa00ae11ce +size 323 diff --git a/docs/public/assets/images/concepts/emojis/touch/smalldownarrow.png b/docs/public/assets/images/concepts/emojis/touch/smalldownarrow.png new file mode 100644 index 00000000..9d4e31d5 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/touch/smalldownarrow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1374380fae4d9605dfda77e646e4fc1a685be5413cb7828bfee5d3f4ca15398e +size 370 diff --git a/docs/public/assets/images/concepts/emojis/touch/smallflydown.png b/docs/public/assets/images/concepts/emojis/touch/smallflydown.png new file mode 100644 index 00000000..dcdc7dbb --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/touch/smallflydown.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb2509dedcd79f4310d81957237cd0d5014f7904a1668ad7b43801d7d2e0979e +size 319 diff --git a/docs/public/assets/images/concepts/emojis/touch/smallflyup.png b/docs/public/assets/images/concepts/emojis/touch/smallflyup.png new file mode 100644 index 00000000..bef44915 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/touch/smallflyup.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b1e6e9b5441109b3160373c59c5afa117aeb2ed7b5ae76ccf52a262e724f66d +size 320 diff --git a/docs/public/assets/images/concepts/emojis/touch/smallinventory.png b/docs/public/assets/images/concepts/emojis/touch/smallinventory.png new file mode 100644 index 00000000..af21d3fd --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/touch/smallinventory.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f13882926ce4e211fdb46e1fb89136d3bbd89b2638bb7093c76d83923c61f56 +size 270 diff --git a/docs/public/assets/images/concepts/emojis/touch/smalljump.png b/docs/public/assets/images/concepts/emojis/touch/smalljump.png new file mode 100644 index 00000000..b5df3251 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/touch/smalljump.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e81f2dd39faba5a7ef1ffe43181e8912ff26d5ed018a0984c48b67b1b642a88e +size 328 diff --git a/docs/public/assets/images/concepts/emojis/touch/smallleftarrow.png b/docs/public/assets/images/concepts/emojis/touch/smallleftarrow.png new file mode 100644 index 00000000..d0b38b3c --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/touch/smallleftarrow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb310db7855be679478130977ef9d9ab9b0ae5131730049643782716513e5534 +size 323 diff --git a/docs/public/assets/images/concepts/emojis/touch/smallrightarrow.png b/docs/public/assets/images/concepts/emojis/touch/smallrightarrow.png new file mode 100644 index 00000000..7ba8ffc0 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/touch/smallrightarrow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcf0aadb01499118977c14fa77dc490b1b20e99ce3431c3cceaae0cf505e07c2 +size 320 diff --git a/docs/public/assets/images/concepts/emojis/touch/smalluparrow.png b/docs/public/assets/images/concepts/emojis/touch/smalluparrow.png new file mode 100644 index 00000000..1aa20ce2 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/touch/smalluparrow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c42ac5622df60fd60555e74d7ecb0b58af2bd09a940e856d189bc33ab2c7f143 +size 356 diff --git a/docs/public/assets/images/concepts/emojis/touch/stop_flying.png b/docs/public/assets/images/concepts/emojis/touch/stop_flying.png new file mode 100644 index 00000000..9bea8937 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/touch/stop_flying.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8865f2480a1314f938d34fb548f9408af698c8c4e51ef7ea1cbc632171f7f431 +size 440 diff --git a/docs/public/assets/images/concepts/emojis/touch/up_arrow.png b/docs/public/assets/images/concepts/emojis/touch/up_arrow.png new file mode 100644 index 00000000..81c4f578 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/touch/up_arrow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d460e62069331a9cb2e57da512fb2fea64c4e0df0f850455bb6e6115626cda1 +size 3233 diff --git a/docs/public/assets/images/concepts/emojis/windowsMR/left_grab.png b/docs/public/assets/images/concepts/emojis/windowsMR/left_grab.png new file mode 100644 index 00000000..f96004b1 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/windowsMR/left_grab.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0e9bfa7ed313858123cbcc8c845b56f2541f3508e8e31f409276b3a57d8d69f +size 2998 diff --git a/docs/public/assets/images/concepts/emojis/windowsMR/left_stick.png b/docs/public/assets/images/concepts/emojis/windowsMR/left_stick.png new file mode 100644 index 00000000..ef705f53 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/windowsMR/left_stick.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:411abc132a5c5f1e3cbd3e8c4c3402a92aaa2d0ef801122a825ed252f8830980 +size 3055 diff --git a/docs/public/assets/images/concepts/emojis/windowsMR/left_touchpad.png b/docs/public/assets/images/concepts/emojis/windowsMR/left_touchpad.png new file mode 100644 index 00000000..a5f59488 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/windowsMR/left_touchpad.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:418b46a15843892d6eb1bc6b153b4a94dbe07045ba71f728db88267949126aba +size 3027 diff --git a/docs/public/assets/images/concepts/emojis/windowsMR/left_touchpad_horizontal.png b/docs/public/assets/images/concepts/emojis/windowsMR/left_touchpad_horizontal.png new file mode 100644 index 00000000..82b82965 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/windowsMR/left_touchpad_horizontal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf7ab72c8e759800b4cc53479ced2b33cd660046877b39cc0839c1001135be58 +size 3065 diff --git a/docs/public/assets/images/concepts/emojis/windowsMR/left_touchpad_vertical.png b/docs/public/assets/images/concepts/emojis/windowsMR/left_touchpad_vertical.png new file mode 100644 index 00000000..f81f2d07 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/windowsMR/left_touchpad_vertical.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a521d0d2ec6036d40ffa780c3fe9991183c3fae21ad1f5a46619d11cfe751e52 +size 3053 diff --git a/docs/public/assets/images/concepts/emojis/windowsMR/left_trigger.png b/docs/public/assets/images/concepts/emojis/windowsMR/left_trigger.png new file mode 100644 index 00000000..16d73567 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/windowsMR/left_trigger.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70d565eb57f7afa41cf4564c84a66ddd1f458c3c2d56e2717c6a4c2247b077a0 +size 2952 diff --git a/docs/public/assets/images/concepts/emojis/windowsMR/menu.png b/docs/public/assets/images/concepts/emojis/windowsMR/menu.png new file mode 100644 index 00000000..9a9a81e8 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/windowsMR/menu.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7160532d38cfa395d3dbffef2fdff48fe9e1788e5135fb62707dae9869966e3c +size 2990 diff --git a/docs/public/assets/images/concepts/emojis/windowsMR/right_grab.png b/docs/public/assets/images/concepts/emojis/windowsMR/right_grab.png new file mode 100644 index 00000000..bf8a1990 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/windowsMR/right_grab.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:422476b7f2b18a6e047dbe1e2ded5d05c2c3fca96d186f0d8d3087540d4f049f +size 2984 diff --git a/docs/public/assets/images/concepts/emojis/windowsMR/right_stick.png b/docs/public/assets/images/concepts/emojis/windowsMR/right_stick.png new file mode 100644 index 00000000..916cfb3b --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/windowsMR/right_stick.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d482decd14401b4d247ec4976453287375080adbbb677c4ae0c0299b2a6a9697 +size 3061 diff --git a/docs/public/assets/images/concepts/emojis/windowsMR/right_touchpad.png b/docs/public/assets/images/concepts/emojis/windowsMR/right_touchpad.png new file mode 100644 index 00000000..e9e80e2e --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/windowsMR/right_touchpad.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b3181b922854602f09b8a51b25390ba1759b394668df9240671667865c75e05 +size 3034 diff --git a/docs/public/assets/images/concepts/emojis/windowsMR/right_touchpad_horizontal.png b/docs/public/assets/images/concepts/emojis/windowsMR/right_touchpad_horizontal.png new file mode 100644 index 00000000..ab51fe55 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/windowsMR/right_touchpad_horizontal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec11aeefb45b65d8b874f59919662e60364ae5a90000e59bb222d1c91710908a +size 3075 diff --git a/docs/public/assets/images/concepts/emojis/windowsMR/right_touchpad_vertical.png b/docs/public/assets/images/concepts/emojis/windowsMR/right_touchpad_vertical.png new file mode 100644 index 00000000..7a098dbf --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/windowsMR/right_touchpad_vertical.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:101550ab5136007775e3d6f0f30f980704391e509b2ccceafda764d85534beaa +size 3057 diff --git a/docs/public/assets/images/concepts/emojis/windowsMR/right_trigger.png b/docs/public/assets/images/concepts/emojis/windowsMR/right_trigger.png new file mode 100644 index 00000000..d7fb2f4b --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/windowsMR/right_trigger.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b8584e2799388a0e320a27a4a9238311eae0661d91397908e7be1e0b23d1361 +size 2982 diff --git a/docs/public/assets/images/concepts/emojis/windowsMR/windows.png b/docs/public/assets/images/concepts/emojis/windowsMR/windows.png new file mode 100644 index 00000000..55a0b697 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/windowsMR/windows.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5139097be776de26b8b31ff885fe752fa0a8bd00d82399ae17173425e69ec05f +size 3004 diff --git a/docs/public/assets/images/concepts/emojis/xbox/a_button.png b/docs/public/assets/images/concepts/emojis/xbox/a_button.png new file mode 100644 index 00000000..aac504ec --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/xbox/a_button.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca0e4e7ca90a102641debe6417aad336e706ed72402d23233a28ae99bb05a0f2 +size 2999 diff --git a/docs/public/assets/images/concepts/emojis/xbox/b_button.png b/docs/public/assets/images/concepts/emojis/xbox/b_button.png new file mode 100644 index 00000000..e45ab2d4 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/xbox/b_button.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd6e901a16a008eb0023f7c508609163702405878c856c6f67201af4858642b6 +size 3015 diff --git a/docs/public/assets/images/concepts/emojis/xbox/back.png b/docs/public/assets/images/concepts/emojis/xbox/back.png new file mode 100644 index 00000000..03c5efcf --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/xbox/back.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3586bd4bcf7540726b50757036cd99da7175143518db26e8a08c9f9441729bd0 +size 3021 diff --git a/docs/public/assets/images/concepts/emojis/xbox/dpad_down.png b/docs/public/assets/images/concepts/emojis/xbox/dpad_down.png new file mode 100644 index 00000000..960b35fc --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/xbox/dpad_down.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:044ecccde46f8acef91bd41524640469f3c7ea7b80f99c1890fc467288104511 +size 3034 diff --git a/docs/public/assets/images/concepts/emojis/xbox/dpad_left.png b/docs/public/assets/images/concepts/emojis/xbox/dpad_left.png new file mode 100644 index 00000000..15c07e6b --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/xbox/dpad_left.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe2b7d1e3e57fadaa49b8f3aab93ba036dfb8c1bc591414a4123979caa67ed06 +size 3032 diff --git a/docs/public/assets/images/concepts/emojis/xbox/dpad_right.png b/docs/public/assets/images/concepts/emojis/xbox/dpad_right.png new file mode 100644 index 00000000..56067d17 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/xbox/dpad_right.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13ef3d0db3113a06195dee8a3af303d43304b15a169f9361c4d351bb5c53e300 +size 3031 diff --git a/docs/public/assets/images/concepts/emojis/xbox/dpad_up.png b/docs/public/assets/images/concepts/emojis/xbox/dpad_up.png new file mode 100644 index 00000000..9771f71e --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/xbox/dpad_up.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:911d557574fca0f161e4dbb7eef62e0912684ad6222d403671219b7febf483eb +size 3031 diff --git a/docs/public/assets/images/concepts/emojis/xbox/left_bumper.png b/docs/public/assets/images/concepts/emojis/xbox/left_bumper.png new file mode 100644 index 00000000..de182960 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/xbox/left_bumper.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3961b378eca6e591c345596c5aa88d04572fb7ad045e859fdd9f015333a35bf1 +size 2944 diff --git a/docs/public/assets/images/concepts/emojis/xbox/left_stick.png b/docs/public/assets/images/concepts/emojis/xbox/left_stick.png new file mode 100644 index 00000000..ef705f53 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/xbox/left_stick.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:411abc132a5c5f1e3cbd3e8c4c3402a92aaa2d0ef801122a825ed252f8830980 +size 3055 diff --git a/docs/public/assets/images/concepts/emojis/xbox/left_trigger.png b/docs/public/assets/images/concepts/emojis/xbox/left_trigger.png new file mode 100644 index 00000000..f783d5f4 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/xbox/left_trigger.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a8620dc8b1585e6598e832ac98cf85e1cca92293b3613f9e3c8bcb9533e2875 +size 2982 diff --git a/docs/public/assets/images/concepts/emojis/xbox/right_bumper.png b/docs/public/assets/images/concepts/emojis/xbox/right_bumper.png new file mode 100644 index 00000000..50661ed9 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/xbox/right_bumper.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca2f9851ebff8c82abdb5c7f8a12f86cbfdb6d305341e3ef4a8e1fdc985d5455 +size 2964 diff --git a/docs/public/assets/images/concepts/emojis/xbox/right_stick.png b/docs/public/assets/images/concepts/emojis/xbox/right_stick.png new file mode 100644 index 00000000..916cfb3b --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/xbox/right_stick.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d482decd14401b4d247ec4976453287375080adbbb677c4ae0c0299b2a6a9697 +size 3061 diff --git a/docs/public/assets/images/concepts/emojis/xbox/right_trigger.png b/docs/public/assets/images/concepts/emojis/xbox/right_trigger.png new file mode 100644 index 00000000..74581b1f --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/xbox/right_trigger.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00c97acd23bb05af5abfffb9a2cb32308b733a39807ebcaa8d077c4179e604bb +size 2989 diff --git a/docs/public/assets/images/concepts/emojis/xbox/start.png b/docs/public/assets/images/concepts/emojis/xbox/start.png new file mode 100644 index 00000000..7a441f5f --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/xbox/start.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1810ee809b9bb7ba2196edb7dcd0edf245f18e2efbe0eca3e208a54ffa03d2c +size 2982 diff --git a/docs/public/assets/images/concepts/emojis/xbox/x_button.png b/docs/public/assets/images/concepts/emojis/xbox/x_button.png new file mode 100644 index 00000000..fb40ab6b --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/xbox/x_button.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13028a5cbb20dcdbd49a37723ae5855910b735172ed6ed7be806ce6ba013423d +size 3029 diff --git a/docs/public/assets/images/concepts/emojis/xbox/y_button.png b/docs/public/assets/images/concepts/emojis/xbox/y_button.png new file mode 100644 index 00000000..0a0b7bb8 --- /dev/null +++ b/docs/public/assets/images/concepts/emojis/xbox/y_button.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b066c91c28a051e760983fd9dff7b0ffc127196247c9fc45880230f7b24fd2e +size 3037 diff --git a/docs/public/assets/images/concepts/sounds/sound_graph.png b/docs/public/assets/images/concepts/sounds/sound_graph.png new file mode 100644 index 00000000..bcc652f7 --- /dev/null +++ b/docs/public/assets/images/concepts/sounds/sound_graph.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d6518208c4434edbef9ea8165ea273f53080af69ef9c711716378a43c80d62a +size 24148 diff --git a/docs/public/assets/images/contribute/committing_changes/committing.png b/docs/public/assets/images/contribute/committing_changes/committing.png new file mode 100644 index 00000000..6bea9578 --- /dev/null +++ b/docs/public/assets/images/contribute/committing_changes/committing.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:297ace8f607120f7f8c1c98a334236c64dfc40226b5b1daeaa2476a4f6703fed +size 44127 diff --git a/docs/public/assets/images/contribute/committing_changes/committing_push.png b/docs/public/assets/images/contribute/committing_changes/committing_push.png new file mode 100644 index 00000000..e5c0d4f2 --- /dev/null +++ b/docs/public/assets/images/contribute/committing_changes/committing_push.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4fe62ad9ea9774f9131189bb4843860bfa31ecf1b583b0c36141315418674e08 +size 36971 diff --git a/docs/public/assets/images/contribute/creating_pr/pr.png b/docs/public/assets/images/contribute/creating_pr/pr.png new file mode 100644 index 00000000..114d638d --- /dev/null +++ b/docs/public/assets/images/contribute/creating_pr/pr.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c872be5ff89ae8b2364e4677b1fb5a4a03eb419bb0a6223c4608edff2d84f797 +size 39794 diff --git a/docs/public/assets/images/contribute/creating_pr/pr_2.png b/docs/public/assets/images/contribute/creating_pr/pr_2.png new file mode 100644 index 00000000..d3bcf27a --- /dev/null +++ b/docs/public/assets/images/contribute/creating_pr/pr_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d5fd10c6d6c1144a7973f6cd0b9fd456f1b2126a1e71af41fd973f8ecb30490 +size 64371 diff --git a/docs/public/assets/images/contribute/markdown/md_headings_1.png b/docs/public/assets/images/contribute/markdown/md_headings_1.png new file mode 100644 index 00000000..23a53dcd --- /dev/null +++ b/docs/public/assets/images/contribute/markdown/md_headings_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf75ff6de25bca165933acb4ac1b3a0fdb5c6b68ad28d7ab87d2910094100504 +size 11812 diff --git a/docs/public/assets/images/contribute/markdown/md_headings_2.png b/docs/public/assets/images/contribute/markdown/md_headings_2.png new file mode 100644 index 00000000..a7c61e20 --- /dev/null +++ b/docs/public/assets/images/contribute/markdown/md_headings_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e069f2a2a63b1e09ae36296cd1953189376ad500ab53f2cff81a3527b7f524e +size 10957 diff --git a/docs/public/assets/images/contribute/markdown/md_headings_3.png b/docs/public/assets/images/contribute/markdown/md_headings_3.png new file mode 100644 index 00000000..a31fcd41 --- /dev/null +++ b/docs/public/assets/images/contribute/markdown/md_headings_3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e5edb27b6df3388e865b40ccd7222d9855cad4e60ad83b2d131ae2a10475a0e +size 8529 diff --git a/docs/public/assets/images/contribute/markdown/md_headings_4.png b/docs/public/assets/images/contribute/markdown/md_headings_4.png new file mode 100644 index 00000000..b9d4aa10 --- /dev/null +++ b/docs/public/assets/images/contribute/markdown/md_headings_4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:acd63d3d0e6c78527f78583983b5d19b87a576df135f05712f9e1e0b29532cbb +size 8362 diff --git a/docs/public/assets/images/contribute/markdown/md_headings_5.png b/docs/public/assets/images/contribute/markdown/md_headings_5.png new file mode 100644 index 00000000..ae14e61f --- /dev/null +++ b/docs/public/assets/images/contribute/markdown/md_headings_5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:372a660daf05821a5e048a992109a7c21290fa6b1351917792a7ac3ca094e756 +size 8203 diff --git a/docs/public/assets/images/contribute/markdown/md_headings_6.png b/docs/public/assets/images/contribute/markdown/md_headings_6.png new file mode 100644 index 00000000..c0549149 --- /dev/null +++ b/docs/public/assets/images/contribute/markdown/md_headings_6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1cb93022db328e7430dc73e3b6f846f31b0d86e3b2c39a5141c2d0980bdc3f25 +size 7899 diff --git a/docs/public/assets/images/contribute/markdown/md_headings_all.png b/docs/public/assets/images/contribute/markdown/md_headings_all.png new file mode 100644 index 00000000..474d1313 --- /dev/null +++ b/docs/public/assets/images/contribute/markdown/md_headings_all.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c97037a1732f59197e699cf4723399a9b9176e62598347e6351890c875dbcff7 +size 12933 diff --git a/docs/public/assets/images/contribute/npm/npm_dev.png b/docs/public/assets/images/contribute/npm/npm_dev.png new file mode 100644 index 00000000..df973e16 --- /dev/null +++ b/docs/public/assets/images/contribute/npm/npm_dev.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e3bba1a96f0cf30ac6b00d16a4716aaba67421687bc10e4866f690696473c30 +size 4594 diff --git a/docs/public/assets/images/contribute/setting_up_local/setup_clone.png b/docs/public/assets/images/contribute/setting_up_local/setup_clone.png new file mode 100644 index 00000000..50fdba85 --- /dev/null +++ b/docs/public/assets/images/contribute/setting_up_local/setup_clone.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b1d98361ef5e7b4fea3e9a67b89ab7c12d556cc126c46882acdf8585beaac1c +size 18067 diff --git a/docs/public/assets/images/contribute/setting_up_local/setup_clone_2.png b/docs/public/assets/images/contribute/setting_up_local/setup_clone_2.png new file mode 100644 index 00000000..c5049054 --- /dev/null +++ b/docs/public/assets/images/contribute/setting_up_local/setup_clone_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5ea4f3918f92ec9843d57e2a10ce432f499073da006064b9f95b2919b352a46 +size 24758 diff --git a/docs/public/assets/images/contribute/setting_up_local/setup_fork.png b/docs/public/assets/images/contribute/setting_up_local/setup_fork.png new file mode 100644 index 00000000..28e9a9d5 --- /dev/null +++ b/docs/public/assets/images/contribute/setting_up_local/setup_fork.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:039e6fe0f278e666a32db86267d3bd368a89d3eba0d414a95364fe9eb084fe02 +size 16705 diff --git a/docs/public/assets/images/contribute/setting_up_local/setup_vsc.png b/docs/public/assets/images/contribute/setting_up_local/setup_vsc.png new file mode 100644 index 00000000..22815323 --- /dev/null +++ b/docs/public/assets/images/contribute/setting_up_local/setup_vsc.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02d4fb7ecfc351de1da2f78d3ec237d6ed23da58b548e4db6d9432359833a263 +size 58768 diff --git a/docs/public/assets/images/contribute/setting_up_software/ghdesktop/ghd_configure.png b/docs/public/assets/images/contribute/setting_up_software/ghdesktop/ghd_configure.png new file mode 100644 index 00000000..c160799d --- /dev/null +++ b/docs/public/assets/images/contribute/setting_up_software/ghdesktop/ghd_configure.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:387d1d162a14a75bd153e8ab7d291ad0347de124873900157558662d780124a3 +size 25193 diff --git a/docs/public/assets/images/contribute/setting_up_software/ghdesktop/ghd_download.png b/docs/public/assets/images/contribute/setting_up_software/ghdesktop/ghd_download.png new file mode 100644 index 00000000..380a8000 --- /dev/null +++ b/docs/public/assets/images/contribute/setting_up_software/ghdesktop/ghd_download.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d33b959c4cd376bbe9c86c9ec26226b55252edbab12afbec3906b80d03e7456c +size 42211 diff --git a/docs/public/assets/images/contribute/setting_up_software/ghdesktop/ghd_install.png b/docs/public/assets/images/contribute/setting_up_software/ghdesktop/ghd_install.png new file mode 100644 index 00000000..aec60bcb --- /dev/null +++ b/docs/public/assets/images/contribute/setting_up_software/ghdesktop/ghd_install.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:627be57eb9cf67e1060b12b45b3de9a0cff02e3a03c5059fef529f4109465c9b +size 19046 diff --git a/docs/public/assets/images/contribute/setting_up_software/ghdesktop/ghd_login.png b/docs/public/assets/images/contribute/setting_up_software/ghdesktop/ghd_login.png new file mode 100644 index 00000000..1c2703bd --- /dev/null +++ b/docs/public/assets/images/contribute/setting_up_software/ghdesktop/ghd_login.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:719573f15ac117882887466fa4453a01e8a109849be666528b9acd8d618b4279 +size 26723 diff --git a/docs/public/assets/images/contribute/setting_up_software/nodejs/njs_download.png b/docs/public/assets/images/contribute/setting_up_software/nodejs/njs_download.png new file mode 100644 index 00000000..059757a9 --- /dev/null +++ b/docs/public/assets/images/contribute/setting_up_software/nodejs/njs_download.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7b928bfe3b51a23ffa1f2783d6a57345ed492e4dae070e79724ba27b7993928 +size 19292 diff --git a/docs/public/assets/images/contribute/setting_up_software/vscode/vsc_download.png b/docs/public/assets/images/contribute/setting_up_software/vscode/vsc_download.png new file mode 100644 index 00000000..7163c7be --- /dev/null +++ b/docs/public/assets/images/contribute/setting_up_software/vscode/vsc_download.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:deabbfb0a9780b888358a286ea213687a7b4e86c6ac8bd5eac10104bfc5d00e7 +size 11186 diff --git a/docs/public/assets/images/contribute/setting_up_software/vscode/vsc_fundamentals.png b/docs/public/assets/images/contribute/setting_up_software/vscode/vsc_fundamentals.png new file mode 100644 index 00000000..dfcf13c6 --- /dev/null +++ b/docs/public/assets/images/contribute/setting_up_software/vscode/vsc_fundamentals.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0f25f2c7a40857041bb1b7d0957c8b213dd00ae7ae6aea323832b1ae21c2502 +size 24923 diff --git a/docs/public/assets/images/contribute/setting_up_software/vscode/vsc_look.png b/docs/public/assets/images/contribute/setting_up_software/vscode/vsc_look.png new file mode 100644 index 00000000..cdee1469 --- /dev/null +++ b/docs/public/assets/images/contribute/setting_up_software/vscode/vsc_look.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe3b208647df8acbdebcf768e590501d3b38ac9e4a046bdf46ed933a85792d0d +size 29228 diff --git a/docs/public/assets/images/contribute/setting_up_software/vscode/vsc_productivity.png b/docs/public/assets/images/contribute/setting_up_software/vscode/vsc_productivity.png new file mode 100644 index 00000000..86e27e64 --- /dev/null +++ b/docs/public/assets/images/contribute/setting_up_software/vscode/vsc_productivity.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a6170abe703b412bb5e44cb83a46433fc6b4c03bb9e2a4a331d2ae74629589c +size 20326 diff --git a/docs/public/assets/images/contribute/snippets/snippets.png b/docs/public/assets/images/contribute/snippets/snippets.png new file mode 100644 index 00000000..0044e904 --- /dev/null +++ b/docs/public/assets/images/contribute/snippets/snippets.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e81665de75fae5e0e0de8ba56b2e2965cc4f864d2ca759e01d70e8d50f2143b +size 50635 diff --git a/docs/public/assets/images/contribute/troubleshooting/merge/merge_accept.png b/docs/public/assets/images/contribute/troubleshooting/merge/merge_accept.png new file mode 100644 index 00000000..c1f9929f --- /dev/null +++ b/docs/public/assets/images/contribute/troubleshooting/merge/merge_accept.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a36ab9cb5c83a809b56e0a8bcf3e6a9faa841aff6e0bad667dda7a8a213c516 +size 56518 diff --git a/docs/public/assets/images/contribute/troubleshooting/merge/merge_branch.png b/docs/public/assets/images/contribute/troubleshooting/merge/merge_branch.png new file mode 100644 index 00000000..46c3f976 --- /dev/null +++ b/docs/public/assets/images/contribute/troubleshooting/merge/merge_branch.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9cee394fc8cf3da54a5fb61633f375a629f95dfb8fe85615da9151783a98a29d +size 4336 diff --git a/docs/public/assets/images/contribute/troubleshooting/merge/merge_choose_branch.png b/docs/public/assets/images/contribute/troubleshooting/merge/merge_choose_branch.png new file mode 100644 index 00000000..e7153e6e --- /dev/null +++ b/docs/public/assets/images/contribute/troubleshooting/merge/merge_choose_branch.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:663fd70002f517074e40fb8e4fdb1a3d414e0a20acf05884def567fa0092fed2 +size 22382 diff --git a/docs/public/assets/images/contribute/troubleshooting/merge/merge_commit.png b/docs/public/assets/images/contribute/troubleshooting/merge/merge_commit.png new file mode 100644 index 00000000..4be0b9b9 --- /dev/null +++ b/docs/public/assets/images/contribute/troubleshooting/merge/merge_commit.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:499eecf5d10af97a13021ca6ab4da4e26b69a3d9d71505c7bd61b0417c570287 +size 26414 diff --git a/docs/public/assets/images/contribute/troubleshooting/merge/merge_continue.png b/docs/public/assets/images/contribute/troubleshooting/merge/merge_continue.png new file mode 100644 index 00000000..23a302e6 --- /dev/null +++ b/docs/public/assets/images/contribute/troubleshooting/merge/merge_continue.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:532a6c8cf85f65e95200dc06284aeec59b9f006f6f1f7dfc59806eafe136447b +size 23243 diff --git a/docs/public/assets/images/contribute/troubleshooting/merge/merge_merge.png b/docs/public/assets/images/contribute/troubleshooting/merge/merge_merge.png new file mode 100644 index 00000000..8021ce91 --- /dev/null +++ b/docs/public/assets/images/contribute/troubleshooting/merge/merge_merge.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:388dc7ece60f64295340861a2b7547070955d8468f974948f4871152e34aaf1e +size 25033 diff --git a/docs/public/assets/images/contribute/troubleshooting/merge/merge_open.png b/docs/public/assets/images/contribute/troubleshooting/merge/merge_open.png new file mode 100644 index 00000000..75a7bd92 --- /dev/null +++ b/docs/public/assets/images/contribute/troubleshooting/merge/merge_open.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff5a0e2485ec0bc32181fd8d888cd563b9b99e5406e930eb3e2b4f8c8b03dce9 +size 14747 diff --git a/docs/public/assets/images/contribute/updating_local/updating.png b/docs/public/assets/images/contribute/updating_local/updating.png new file mode 100644 index 00000000..8edf10a9 --- /dev/null +++ b/docs/public/assets/images/contribute/updating_local/updating.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8bfa048557dbf3bfeb6c3b49576ebbc48a5cd6d97da028efbbdea20cf7b7bde5 +size 121935 diff --git a/docs/public/assets/images/contribute/updating_local/updating_pull.png b/docs/public/assets/images/contribute/updating_local/updating_pull.png new file mode 100644 index 00000000..19821ee6 --- /dev/null +++ b/docs/public/assets/images/contribute/updating_local/updating_pull.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0049e1fb29b12035c171510c693486a267d34bb2829e2eef29c426305617dc71 +size 30435 diff --git a/docs/public/assets/images/discord/bao.png b/docs/public/assets/images/discord/bao.png new file mode 100644 index 00000000..09a00553 --- /dev/null +++ b/docs/public/assets/images/discord/bao.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ff233fc9d2471d7de69d766270d86cdbfafc39932fca991d3eae6870e5cec32 +size 35100 diff --git a/docs/public/assets/images/discord/oss.png b/docs/public/assets/images/discord/oss.png new file mode 100644 index 00000000..c77831a2 --- /dev/null +++ b/docs/public/assets/images/discord/oss.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3aff7835dda5d77a545ea36496b9d6401a455aa178c4018dbe270357c9a93a22 +size 295083 diff --git a/docs/public/assets/images/documentation/tellrawshow.png b/docs/public/assets/images/documentation/tellrawshow.png new file mode 100644 index 00000000..c8842e89 --- /dev/null +++ b/docs/public/assets/images/documentation/tellrawshow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32515b2690620fc5b79e2f7f0c1363b092661a0dcbcaab4a0d9f0cbd237b685d +size 140831 diff --git a/docs/public/assets/images/favicons/android-chrome-192x192.png b/docs/public/assets/images/favicons/android-chrome-192x192.png new file mode 100644 index 00000000..526e965c --- /dev/null +++ b/docs/public/assets/images/favicons/android-chrome-192x192.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c24d333319ad2791d77f2007aea21595c82b92e429c45d6d9005b78f0b8dc354 +size 24838 diff --git a/docs/public/assets/images/favicons/android-chrome-256x256.png b/docs/public/assets/images/favicons/android-chrome-256x256.png new file mode 100644 index 00000000..adc827dd --- /dev/null +++ b/docs/public/assets/images/favicons/android-chrome-256x256.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a8dd5de2c8c946684cbbd264de12924bd918a354bd479e7d60857e0105fa041 +size 31529 diff --git a/docs/public/assets/images/favicons/apple-touch-icon.png b/docs/public/assets/images/favicons/apple-touch-icon.png new file mode 100644 index 00000000..02cc45ec --- /dev/null +++ b/docs/public/assets/images/favicons/apple-touch-icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:305b1bfe3649c42f7752ee4759dcd13cc954f626c0d024ce92d536caf13f3cab +size 15093 diff --git a/docs/public/assets/images/favicons/safari-pinned-tab.svg b/docs/public/assets/images/favicons/safari-pinned-tab.svg new file mode 100644 index 00000000..a1596f78 --- /dev/null +++ b/docs/public/assets/images/favicons/safari-pinned-tab.svg @@ -0,0 +1,20 @@ + + + + +Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + diff --git a/docs/public/assets/images/gametest/gametest-form/action-form.png b/docs/public/assets/images/gametest/gametest-form/action-form.png new file mode 100644 index 00000000..f6b8e724 --- /dev/null +++ b/docs/public/assets/images/gametest/gametest-form/action-form.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24f5680635dee2ace990e8c02cdab6fdeeaaaa3dd4036cff1e827cd05a8288c2 +size 116312 diff --git a/docs/public/assets/images/gametest/gametest-form/message-form.png b/docs/public/assets/images/gametest/gametest-form/message-form.png new file mode 100644 index 00000000..5c51ec57 --- /dev/null +++ b/docs/public/assets/images/gametest/gametest-form/message-form.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:625c295ed700e674e9e537b7c667db6e841bb7d96d3754655c39bacd252e846a +size 21463 diff --git a/docs/public/assets/images/gametest/gametest-form/modal-form.png b/docs/public/assets/images/gametest/gametest-form/modal-form.png new file mode 100644 index 00000000..42f06fdb --- /dev/null +++ b/docs/public/assets/images/gametest/gametest-form/modal-form.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5fda1891c9b5d435c3366c8c525c42f6942199570227b6ff1feb0aa73980aafc +size 39625 diff --git a/docs/public/assets/images/gametest/script-server/dynamic_properties.png b/docs/public/assets/images/gametest/script-server/dynamic_properties.png new file mode 100644 index 00000000..264d689e --- /dev/null +++ b/docs/public/assets/images/gametest/script-server/dynamic_properties.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37f895e01108a658d8f27fd84d472ac25df7d58623e1553bdd1e8f0348f5f222 +size 30635 diff --git a/docs/public/assets/images/guide/Guide_LOGO.ico b/docs/public/assets/images/guide/Guide_LOGO.ico new file mode 100644 index 00000000..0741c0b2 Binary files /dev/null and b/docs/public/assets/images/guide/Guide_LOGO.ico differ diff --git a/docs/public/assets/images/guide/Guide_LOGO.png b/docs/public/assets/images/guide/Guide_LOGO.png new file mode 100644 index 00000000..d2159264 --- /dev/null +++ b/docs/public/assets/images/guide/Guide_LOGO.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb76a4171cca205ca9ef5a3c2a9385b952c391440934d2a30ad6050114632594 +size 10740 diff --git a/docs/public/assets/images/guide/animation_controllers_1.png b/docs/public/assets/images/guide/animation_controllers_1.png new file mode 100644 index 00000000..375c4838 --- /dev/null +++ b/docs/public/assets/images/guide/animation_controllers_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04e83cb4432e815a019d862fb570eda8cd530c4dd680fcb20198a3d26e231616 +size 210757 diff --git a/docs/public/assets/images/guide/animation_controllers_2.png b/docs/public/assets/images/guide/animation_controllers_2.png new file mode 100644 index 00000000..7605aa96 --- /dev/null +++ b/docs/public/assets/images/guide/animation_controllers_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6dd6ab34755cd4c466ce4d11567a8215b2445c450a7a7af6dd4031e95148eace +size 140349 diff --git a/docs/public/assets/images/guide/block_flipbook_texture.png b/docs/public/assets/images/guide/block_flipbook_texture.png new file mode 100644 index 00000000..42a00ec5 --- /dev/null +++ b/docs/public/assets/images/guide/block_flipbook_texture.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f3e02741bca03dc1a026e1cc165fddf21b23699c9f898bf8923427d8f717c7e +size 4067 diff --git a/docs/public/assets/images/guide/content_log.png b/docs/public/assets/images/guide/content_log.png new file mode 100644 index 00000000..ecdd498c --- /dev/null +++ b/docs/public/assets/images/guide/content_log.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00b32f0676aa6ac326898ac9434cb1e3b0858c5a5b8b4edad691876c3adc5117 +size 113956 diff --git a/docs/public/assets/images/guide/create_entity_animation_1.png b/docs/public/assets/images/guide/create_entity_animation_1.png new file mode 100644 index 00000000..1a1a63d3 --- /dev/null +++ b/docs/public/assets/images/guide/create_entity_animation_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3efee73d9265b671214edb088f0d69057c3c9874f91b5736b9a12c6b8b0c3cf9 +size 122818 diff --git a/docs/public/assets/images/guide/create_entity_animation_2.png b/docs/public/assets/images/guide/create_entity_animation_2.png new file mode 100644 index 00000000..ee7f8288 --- /dev/null +++ b/docs/public/assets/images/guide/create_entity_animation_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50e4815d64391d96eb784fd60711dbc797ee87ac77f7bfa320394a378677494b +size 160775 diff --git a/docs/public/assets/images/guide/create_entity_animation_3.png b/docs/public/assets/images/guide/create_entity_animation_3.png new file mode 100644 index 00000000..ac89118f --- /dev/null +++ b/docs/public/assets/images/guide/create_entity_animation_3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b19876903e6b531ab66f0ce663319aaa1c4fe6b9d7662f6f1f4f2c8f8dad09e2 +size 164689 diff --git a/docs/public/assets/images/guide/create_entity_animation_4.png b/docs/public/assets/images/guide/create_entity_animation_4.png new file mode 100644 index 00000000..aee133fd --- /dev/null +++ b/docs/public/assets/images/guide/create_entity_animation_4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a26a9de18126a50f874d102b472724704eccd7f8432812a51368288a2f1e2713 +size 182930 diff --git a/docs/public/assets/images/guide/create_entity_project_menu.png b/docs/public/assets/images/guide/create_entity_project_menu.png new file mode 100644 index 00000000..0ed73a99 --- /dev/null +++ b/docs/public/assets/images/guide/create_entity_project_menu.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:193461d6650fb2b71c07050c75e24bcc01dcda560932b9db1bf08e8c0bea196e +size 97683 diff --git a/docs/public/assets/images/guide/create_entity_texture_1.png b/docs/public/assets/images/guide/create_entity_texture_1.png new file mode 100644 index 00000000..471a866d --- /dev/null +++ b/docs/public/assets/images/guide/create_entity_texture_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a576dec7f17d68cf47794eb5994d53de588f821be7c5a3d5717c540c32ce294e +size 52050 diff --git a/docs/public/assets/images/guide/create_entity_texture_2.png b/docs/public/assets/images/guide/create_entity_texture_2.png new file mode 100644 index 00000000..e5cf81f2 --- /dev/null +++ b/docs/public/assets/images/guide/create_entity_texture_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4332f6add341f677f33e391be1ffacd60697bf0116ed5718c556dfb5f5546718 +size 86227 diff --git a/docs/public/assets/images/guide/create_entity_workspace.png b/docs/public/assets/images/guide/create_entity_workspace.png new file mode 100644 index 00000000..ad8b5005 --- /dev/null +++ b/docs/public/assets/images/guide/create_entity_workspace.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:732de51084295fe929b0255e457f7b7201ad7a7f6aaa9f9aee14e71aef4e6724 +size 150194 diff --git a/docs/public/assets/images/guide/custom_entity/ghost_view.png b/docs/public/assets/images/guide/custom_entity/ghost_view.png new file mode 100644 index 00000000..e38c2856 --- /dev/null +++ b/docs/public/assets/images/guide/custom_entity/ghost_view.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26f9992ed47aba143be737ea053079419284a8602c52510501ee3864c6160337 +size 57710 diff --git a/docs/public/assets/images/guide/custom_entity_1.png b/docs/public/assets/images/guide/custom_entity_1.png new file mode 100644 index 00000000..e7a1b1e1 --- /dev/null +++ b/docs/public/assets/images/guide/custom_entity_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f62a688d13e775f3787815ed3876e1e11e25ec5e05eb8b0a4d8e0a8546983b9f +size 80147 diff --git a/docs/public/assets/images/guide/custom_entity_2.jpg b/docs/public/assets/images/guide/custom_entity_2.jpg new file mode 100644 index 00000000..b840ec8f --- /dev/null +++ b/docs/public/assets/images/guide/custom_entity_2.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:093808f00efccfe1a1b87bf1984f6f3861c827a41066ad29b8069d5516ace627 +size 378725 diff --git a/docs/public/assets/images/guide/custom_item/ectoplasm_view.png b/docs/public/assets/images/guide/custom_item/ectoplasm_view.png new file mode 100644 index 00000000..e1664b7a --- /dev/null +++ b/docs/public/assets/images/guide/custom_item/ectoplasm_view.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8def98b1952352739e8587296579101e25c70d15aaa1c7d7ee3720505fd83e4e +size 38617 diff --git a/docs/public/assets/images/guide/custom_particles_1.png b/docs/public/assets/images/guide/custom_particles_1.png new file mode 100644 index 00000000..d0986803 --- /dev/null +++ b/docs/public/assets/images/guide/custom_particles_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e745a8f296a313bdc8a093ae332a10237f4f6d80f70da451f934b6df586c052f +size 113105 diff --git a/docs/public/assets/images/guide/custom_particles_2.png b/docs/public/assets/images/guide/custom_particles_2.png new file mode 100644 index 00000000..9aab77ec --- /dev/null +++ b/docs/public/assets/images/guide/custom_particles_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36453695f7d03134a0408709104834013515f7342e40123f367a7829554c390d +size 174634 diff --git a/docs/public/assets/images/guide/custom_particles_3.png b/docs/public/assets/images/guide/custom_particles_3.png new file mode 100644 index 00000000..0199b44b --- /dev/null +++ b/docs/public/assets/images/guide/custom_particles_3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f876615b31eee027f2893bb625ca416f800c41f2e02c36a790893edce611da49 +size 177274 diff --git a/docs/public/assets/images/guide/custom_particles_4.jpg b/docs/public/assets/images/guide/custom_particles_4.jpg new file mode 100644 index 00000000..57f16253 --- /dev/null +++ b/docs/public/assets/images/guide/custom_particles_4.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c0e02a199b2fa981a3f3df42872f3272af2e34853b4c1a1e0e39f0c316887d3 +size 111740 diff --git a/docs/public/assets/images/guide/custom_particles_5.png b/docs/public/assets/images/guide/custom_particles_5.png new file mode 100644 index 00000000..d587d18e --- /dev/null +++ b/docs/public/assets/images/guide/custom_particles_5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9d9b37f7711d79018a6ff246246de022257b85491a88a86c2d969047c6737d2 +size 734 diff --git a/docs/public/assets/images/guide/custom_particles_6.jpg b/docs/public/assets/images/guide/custom_particles_6.jpg new file mode 100644 index 00000000..7410d1c2 --- /dev/null +++ b/docs/public/assets/images/guide/custom_particles_6.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c23c2e9a60bce3fc13a1c83db94771c6972ff9ef2753b35cdf114faac6869a2e +size 80238 diff --git a/docs/public/assets/images/guide/custom_particles_7.jpg b/docs/public/assets/images/guide/custom_particles_7.jpg new file mode 100644 index 00000000..9218d287 --- /dev/null +++ b/docs/public/assets/images/guide/custom_particles_7.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a68a010cc9dbcb6721639fd7af8d0be76cb2d1e29b91bd59803aa24c97891ab +size 106510 diff --git a/docs/public/assets/images/guide/custom_particles_8.png b/docs/public/assets/images/guide/custom_particles_8.png new file mode 100644 index 00000000..d27c9717 --- /dev/null +++ b/docs/public/assets/images/guide/custom_particles_8.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db278ed5ae43752e7726716fc22e34e5cbaf444a92011196a6b161dbc2749430 +size 22066 diff --git a/docs/public/assets/images/guide/function_code.png b/docs/public/assets/images/guide/function_code.png new file mode 100644 index 00000000..3cc4b455 --- /dev/null +++ b/docs/public/assets/images/guide/function_code.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4388d56c8f1a9361c0e122e29f2eb723578011b596958fc490d427972322ce39 +size 228088 diff --git a/docs/public/assets/images/guide/function_in_game.jpg b/docs/public/assets/images/guide/function_in_game.jpg new file mode 100644 index 00000000..35df7813 --- /dev/null +++ b/docs/public/assets/images/guide/function_in_game.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d622a1a9fa42811a95a51822069ef0267d4a16958704830a76fea14b566d0d8 +size 176846 diff --git a/docs/public/assets/images/guide/gen_coal_ore.png b/docs/public/assets/images/guide/gen_coal_ore.png new file mode 100644 index 00000000..21850c46 --- /dev/null +++ b/docs/public/assets/images/guide/gen_coal_ore.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78e397764162e8aed43a3a5cdd4bca13b7a8a011f495b5eb413d0220b6c82ea1 +size 127037 diff --git a/docs/public/assets/images/guide/non_smooth_noise_transition.jpg b/docs/public/assets/images/guide/non_smooth_noise_transition.jpg new file mode 100644 index 00000000..828ca81f --- /dev/null +++ b/docs/public/assets/images/guide/non_smooth_noise_transition.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9be3ff1d8609b30571f97c2c36b10d3fd9be3376e25142778da12f6c784aadac +size 160871 diff --git a/docs/public/assets/images/guide/ore_gen_sans_stone.jpg b/docs/public/assets/images/guide/ore_gen_sans_stone.jpg new file mode 100644 index 00000000..cabb38ca --- /dev/null +++ b/docs/public/assets/images/guide/ore_gen_sans_stone.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3647fde1fff61c64670db890be745a8363641d1d0545ff40c8c92e82edfc7262 +size 171305 diff --git a/docs/public/assets/images/guide/project-setup-android/zip-addon.png b/docs/public/assets/images/guide/project-setup-android/zip-addon.png new file mode 100644 index 00000000..f561e6b4 --- /dev/null +++ b/docs/public/assets/images/guide/project-setup-android/zip-addon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26d35de9b6416f0ffae22383d4ac20d9e11be3ee04ba16dea10285720e718178 +size 21917 diff --git a/docs/public/assets/images/guide/project-setup/active_pack.png b/docs/public/assets/images/guide/project-setup/active_pack.png new file mode 100644 index 00000000..be48e20f --- /dev/null +++ b/docs/public/assets/images/guide/project-setup/active_pack.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bca5d67855ae6d703ee258f87f99e74d5760e2d7745e1d2ff107d6a59e65a2ac +size 38616 diff --git a/docs/public/assets/images/guide/project-setup/pack_icon.png b/docs/public/assets/images/guide/project-setup/pack_icon.png new file mode 100644 index 00000000..9505e571 --- /dev/null +++ b/docs/public/assets/images/guide/project-setup/pack_icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2711aa14f6aa040fc46fc1ab740a882e041fd126b593194583d35b0506fe6208 +size 32810 diff --git a/docs/public/assets/images/guide/project-setup/settings_1.png b/docs/public/assets/images/guide/project-setup/settings_1.png new file mode 100644 index 00000000..631a5275 --- /dev/null +++ b/docs/public/assets/images/guide/project-setup/settings_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a91d7b5846d9ca0f7c48e84f98bdbeadf3f84a3bddfec4ec6bcbcd6ee88e8624 +size 2157 diff --git a/docs/public/assets/images/guide/project-setup/settings_2.png b/docs/public/assets/images/guide/project-setup/settings_2.png new file mode 100644 index 00000000..ceb3e5fc --- /dev/null +++ b/docs/public/assets/images/guide/project-setup/settings_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97ac9ff95a2b15a71000c0e91310dad171c2e93a373515ff3b7f5329724c477a +size 10670 diff --git a/docs/public/assets/images/guide/render_controllers_1.jpg b/docs/public/assets/images/guide/render_controllers_1.jpg new file mode 100644 index 00000000..a9800ae1 --- /dev/null +++ b/docs/public/assets/images/guide/render_controllers_1.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e3a2a80da742a99640145d7a5a0409bbe2b64409bda596d26906d256a716f51 +size 140551 diff --git a/docs/public/assets/images/guide/structure_block_example.jpg b/docs/public/assets/images/guide/structure_block_example.jpg new file mode 100644 index 00000000..fc663868 --- /dev/null +++ b/docs/public/assets/images/guide/structure_block_example.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11d6a99500a8096383f764d96968b7c46b21160350026792623c8fb815a7a784 +size 79157 diff --git a/docs/public/assets/images/guide/trade_table_tree_1.png b/docs/public/assets/images/guide/trade_table_tree_1.png new file mode 100644 index 00000000..03f45921 --- /dev/null +++ b/docs/public/assets/images/guide/trade_table_tree_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71059f778991d873b37543878ec84c0593285659c662606e869cb7ae27595448 +size 48708 diff --git a/docs/public/assets/images/guide/trade_table_tree_2.png b/docs/public/assets/images/guide/trade_table_tree_2.png new file mode 100644 index 00000000..6d639cd6 --- /dev/null +++ b/docs/public/assets/images/guide/trade_table_tree_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:975e84f9b07a81705f30e3ef33c3719a6677f16f8c82b53d88284c4931d406b8 +size 16403 diff --git a/docs/public/assets/images/guide/trade_table_tree_3.png b/docs/public/assets/images/guide/trade_table_tree_3.png new file mode 100644 index 00000000..efd049b1 --- /dev/null +++ b/docs/public/assets/images/guide/trade_table_tree_3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b87cb66b567693ddaa764ae2b1344b588d07cc7afd92b53fe87c3c45ce571c0a +size 8136 diff --git a/docs/public/assets/images/guide/trade_table_tree_4.png b/docs/public/assets/images/guide/trade_table_tree_4.png new file mode 100644 index 00000000..30c55767 --- /dev/null +++ b/docs/public/assets/images/guide/trade_table_tree_4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f77ff1d31a40f991602b65c386dc59cf63273d79b3ad9906af1586ef96539db2 +size 14495 diff --git a/docs/public/assets/images/guide/trade_table_tree_5.png b/docs/public/assets/images/guide/trade_table_tree_5.png new file mode 100644 index 00000000..2ca210c0 --- /dev/null +++ b/docs/public/assets/images/guide/trade_table_tree_5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4a841e08eb640dc3eb3ee8f5a6e19abbd8679c6c440c7cdaa39396ac35ccec5 +size 23771 diff --git a/docs/public/assets/images/guide/transpiled_mcpack.png b/docs/public/assets/images/guide/transpiled_mcpack.png new file mode 100644 index 00000000..adaebb61 --- /dev/null +++ b/docs/public/assets/images/guide/transpiled_mcpack.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f39a13c29b76b2ea0ef02cb89cef4f97434ba42ad2e6738857036883e4b3cee6 +size 5998 diff --git a/docs/public/assets/images/guide/vsc_workspace.png b/docs/public/assets/images/guide/vsc_workspace.png new file mode 100644 index 00000000..a495d224 --- /dev/null +++ b/docs/public/assets/images/guide/vsc_workspace.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79d4d0c2a62a94588e0c4d07d8baee2ec95ac1a8c27acd6e179e91de03a6d87b +size 246970 diff --git a/docs/public/assets/images/hacktoberfest/bedrockoss.png b/docs/public/assets/images/hacktoberfest/bedrockoss.png new file mode 100644 index 00000000..4b66b897 --- /dev/null +++ b/docs/public/assets/images/hacktoberfest/bedrockoss.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f24afdb7c01fc96f18b5217a8518d0326e92369ab58ef45dad03354cf29f503c +size 142539 diff --git a/docs/public/assets/images/hacktoberfest/blockception.png b/docs/public/assets/images/hacktoberfest/blockception.png new file mode 100644 index 00000000..c3a18e46 --- /dev/null +++ b/docs/public/assets/images/hacktoberfest/blockception.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a11e98e0e9eb903364edd8bc39ebd95f9381381c5841860aa90d53500a82df09 +size 36320 diff --git a/docs/public/assets/images/hacktoberfest/bridge.png b/docs/public/assets/images/hacktoberfest/bridge.png new file mode 100644 index 00000000..6795eb35 --- /dev/null +++ b/docs/public/assets/images/hacktoberfest/bridge.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:692462cc753c8364173251bdb6ceb68d1574e0f1cc6f90f26f97a57312e34228 +size 11484 diff --git a/docs/public/assets/images/hacktoberfest/hf10_horz_fcd_rgb.png b/docs/public/assets/images/hacktoberfest/hf10_horz_fcd_rgb.png new file mode 100644 index 00000000..3f58c6e6 --- /dev/null +++ b/docs/public/assets/images/hacktoberfest/hf10_horz_fcd_rgb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7245f79ab620269c993e5f0570660428403790330de22d92e85bcefea9b44904 +size 87206 diff --git a/docs/public/assets/images/hacktoberfest/hf10_horz_fcl_rgb.png b/docs/public/assets/images/hacktoberfest/hf10_horz_fcl_rgb.png new file mode 100644 index 00000000..f42329f7 --- /dev/null +++ b/docs/public/assets/images/hacktoberfest/hf10_horz_fcl_rgb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af128d492d488ec6c7658de3cd3b9a3e4023dfe40abe74851d3c6ff2525c418a +size 93807 diff --git a/docs/public/assets/images/hacktoberfest/mcdevkit.png b/docs/public/assets/images/hacktoberfest/mcdevkit.png new file mode 100644 index 00000000..15377157 --- /dev/null +++ b/docs/public/assets/images/hacktoberfest/mcdevkit.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18d71a9ac55fa1afc2a949add13e1bb75cbd4b9abe5cf5d2c9fcb12faca48076 +size 58624 diff --git a/docs/public/assets/images/hacktoberfest/sirlich.png b/docs/public/assets/images/hacktoberfest/sirlich.png new file mode 100644 index 00000000..ffef3bdf --- /dev/null +++ b/docs/public/assets/images/hacktoberfest/sirlich.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3dbbbc4b399f302561101da0ba4f9c3a7de958fa4c18a326c86d66e9358a5381 +size 33737 diff --git a/docs/public/assets/images/homepage/bookshelf_0.png b/docs/public/assets/images/homepage/bookshelf_0.png new file mode 100644 index 00000000..740d84f1 --- /dev/null +++ b/docs/public/assets/images/homepage/bookshelf_0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec2d6c77fcf3b5f759a20d16bd7026fd6736554a6c8c6c64c903ad70b127c17c +size 73649 diff --git a/docs/public/assets/images/homepage/buildplate.png b/docs/public/assets/images/homepage/buildplate.png new file mode 100644 index 00000000..3bb61bd3 --- /dev/null +++ b/docs/public/assets/images/homepage/buildplate.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54ff5f54b1291c750d886c2815adac94ecc0605d4bc1ea66c2341f0387dbc8e2 +size 48661 diff --git a/docs/public/assets/images/homepage/commands.png b/docs/public/assets/images/homepage/commands.png new file mode 100644 index 00000000..372264da --- /dev/null +++ b/docs/public/assets/images/homepage/commands.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc86ccc5787fdc292676f99b3e2a3232483d7fba29086e3a75c6b7438ebb2a2c +size 21578 diff --git a/docs/public/assets/images/homepage/crafting_table_0.png b/docs/public/assets/images/homepage/crafting_table_0.png new file mode 100644 index 00000000..4fc2e639 --- /dev/null +++ b/docs/public/assets/images/homepage/crafting_table_0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af9a1fd1c3e493b9e0777ff66108981d68fad4d68b226924c198fd2c20e40925 +size 68918 diff --git a/docs/public/assets/images/homepage/diamond_ore_0.png b/docs/public/assets/images/homepage/diamond_ore_0.png new file mode 100644 index 00000000..426c3d22 --- /dev/null +++ b/docs/public/assets/images/homepage/diamond_ore_0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d4847b1857591b5cdba1af9ea37f48698642da4a0e1a9cfa71340a02cb18949 +size 74424 diff --git a/docs/public/assets/images/homepage/discord.png b/docs/public/assets/images/homepage/discord.png new file mode 100644 index 00000000..0b0d3ef8 --- /dev/null +++ b/docs/public/assets/images/homepage/discord.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a87ff03910d82d56b8f9d783485f08d07b6a3886c56fe0a1fe4cfff1c27a95f +size 52451 diff --git a/docs/public/assets/images/homepage/hfest_dark.png b/docs/public/assets/images/homepage/hfest_dark.png new file mode 100644 index 00000000..617f897f --- /dev/null +++ b/docs/public/assets/images/homepage/hfest_dark.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d36729317cfd80f402a588423d85b4b12ec0ccd2f9c9ba17ed87fd84b5dc073 +size 34183 diff --git a/docs/public/assets/images/homepage/hfest_light.png b/docs/public/assets/images/homepage/hfest_light.png new file mode 100644 index 00000000..f46024d3 --- /dev/null +++ b/docs/public/assets/images/homepage/hfest_light.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9238478110771c7e2d341bb051b0b7e5279d4146ba4febb373db8604102ccde +size 49136 diff --git a/docs/public/assets/images/homepage/iron_pickaxe_0.png b/docs/public/assets/images/homepage/iron_pickaxe_0.png new file mode 100644 index 00000000..b05cc0c8 --- /dev/null +++ b/docs/public/assets/images/homepage/iron_pickaxe_0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca7544d9b1c9b154b729858a2fa57e147fc289983d2d8f7868e7fe109393f615 +size 24627 diff --git a/docs/public/assets/images/homepage/scripting.png b/docs/public/assets/images/homepage/scripting.png new file mode 100644 index 00000000..7cc55f9d --- /dev/null +++ b/docs/public/assets/images/homepage/scripting.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc5de5e3e6e522bc13e355c503c40d09aff19a68934a513c891a7b8a729197af +size 56965 diff --git a/docs/public/assets/images/homepage/spawn_egg_30.png b/docs/public/assets/images/homepage/spawn_egg_30.png new file mode 100644 index 00000000..55c3f0e3 --- /dev/null +++ b/docs/public/assets/images/homepage/spawn_egg_30.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4dcfd084a1af0e42b2e2a9e5afef33a4ab6be11075517e23ab60081f462af1d +size 33409 diff --git a/docs/public/assets/images/homepage/wikilogo.png b/docs/public/assets/images/homepage/wikilogo.png new file mode 100644 index 00000000..e02aafff --- /dev/null +++ b/docs/public/assets/images/homepage/wikilogo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa51f19d34028ec9e0fd53a96e7b394f3a6e571677c06feb813b337760024bab +size 42098 diff --git a/docs/public/assets/images/homepage/writable_book_0.png b/docs/public/assets/images/homepage/writable_book_0.png new file mode 100644 index 00000000..7bff6a82 --- /dev/null +++ b/docs/public/assets/images/homepage/writable_book_0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d418ce97827067e43ab01ea8f125c6f37682fa44f7f3028efbfb0e696faf6c14 +size 32927 diff --git a/docs/public/assets/images/icons/error.png b/docs/public/assets/images/icons/error.png new file mode 100644 index 00000000..391ba120 --- /dev/null +++ b/docs/public/assets/images/icons/error.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76414d6d68e25bff122280cf820a3492008af01f47f187d3383147353ed16327 +size 38984 diff --git a/docs/public/assets/images/icons/info.png b/docs/public/assets/images/icons/info.png new file mode 100644 index 00000000..112d1781 --- /dev/null +++ b/docs/public/assets/images/icons/info.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35cbab9ae93a4cb8417c005d46b58602bdeaf073bb92677b289cd11c4c97d6ef +size 26024 diff --git a/docs/public/assets/images/icons/notice.png b/docs/public/assets/images/icons/notice.png new file mode 100644 index 00000000..0aeeb839 --- /dev/null +++ b/docs/public/assets/images/icons/notice.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc74fc3f538694725b28dd9d9e79f1ac5c92e1b5bfa9711db4cc9643d8496cf4 +size 27976 diff --git a/docs/public/assets/images/icons/tick.png b/docs/public/assets/images/icons/tick.png new file mode 100644 index 00000000..3187e5bd --- /dev/null +++ b/docs/public/assets/images/icons/tick.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78cd8dafdedae6a3dc932fb833eca1ef00ec46dabafa77bec366f95993a93993 +size 1595 diff --git a/docs/public/assets/images/icons/warning.png b/docs/public/assets/images/icons/warning.png new file mode 100644 index 00000000..46977c7d --- /dev/null +++ b/docs/public/assets/images/icons/warning.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9604034d07924fa117af67d7be50adeda52a6927264c6ff12f875880e4930b01 +size 24064 diff --git a/docs/public/assets/images/items/spawning-items/structure-method.png b/docs/public/assets/images/items/spawning-items/structure-method.png new file mode 100644 index 00000000..3ef10321 --- /dev/null +++ b/docs/public/assets/images/items/spawning-items/structure-method.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3fb774cdf8708be5ae77ab93aecfe52c59bdbc4616c56fc5a8f1e8d5e9c931bb +size 12464 diff --git a/docs/public/assets/images/items/spears/spear_first_person.png b/docs/public/assets/images/items/spears/spear_first_person.png new file mode 100644 index 00000000..b0dac6a2 --- /dev/null +++ b/docs/public/assets/images/items/spears/spear_first_person.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3934f5ea2731edbc13747d184073aa269435464f0db60b87afbeb3272e369997 +size 893131 diff --git a/docs/public/assets/images/items/spears/spear_model.png b/docs/public/assets/images/items/spears/spear_model.png new file mode 100644 index 00000000..3f4cfafd --- /dev/null +++ b/docs/public/assets/images/items/spears/spear_model.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88fb761a101a3a126da6c3a5485fbcc5415b1254fc430b22f0c973347fcf51bb +size 147322 diff --git a/docs/public/assets/images/items/spears/spear_third_person.png b/docs/public/assets/images/items/spears/spear_third_person.png new file mode 100644 index 00000000..ccbf2cbe --- /dev/null +++ b/docs/public/assets/images/items/spears/spear_third_person.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db0ed03e91fcd28379e116e4d3d4c0d41b5e55e23aba85970a9467f60f48e21c +size 965771 diff --git a/docs/public/assets/images/json-ui/json-ui-documentation/anchor_ce_rm_tm_tl.png b/docs/public/assets/images/json-ui/json-ui-documentation/anchor_ce_rm_tm_tl.png new file mode 100644 index 00000000..7a2f1a62 --- /dev/null +++ b/docs/public/assets/images/json-ui/json-ui-documentation/anchor_ce_rm_tm_tl.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85a662d2056ea563d65199ce2ed728921fd304f583eaed2ba35af8b34979737f +size 545507 diff --git a/docs/public/assets/images/json-ui/json-ui-documentation/anchor_center_top_left.png b/docs/public/assets/images/json-ui/json-ui-documentation/anchor_center_top_left.png new file mode 100644 index 00000000..e540fea0 --- /dev/null +++ b/docs/public/assets/images/json-ui/json-ui-documentation/anchor_center_top_left.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33514f272eefb85452051c708d8a24bf4711341cea4b143fa564932eb474ac31 +size 547005 diff --git a/docs/public/assets/images/json-ui/json-ui-documentation/anchor_same_value.png b/docs/public/assets/images/json-ui/json-ui-documentation/anchor_same_value.png new file mode 100644 index 00000000..c2291ea0 --- /dev/null +++ b/docs/public/assets/images/json-ui/json-ui-documentation/anchor_same_value.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dae7ecceb97693868acb9ed426bff2b57becfa27174652bdf0b907faf38b32c9 +size 438549 diff --git a/docs/public/assets/images/knowledge/shaders/debugShader.gif b/docs/public/assets/images/knowledge/shaders/debugShader.gif new file mode 100644 index 00000000..5ab67531 --- /dev/null +++ b/docs/public/assets/images/knowledge/shaders/debugShader.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2685ff563dc73d5a47c50046a48ec64fbf58c8909459bdda2da1bdbbb70f517 +size 2378994 diff --git a/docs/public/assets/images/loot/recipes/brewing_container_recipe.png b/docs/public/assets/images/loot/recipes/brewing_container_recipe.png new file mode 100644 index 00000000..c9ae3ccb --- /dev/null +++ b/docs/public/assets/images/loot/recipes/brewing_container_recipe.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8dce380493f000d5de9ae2003a0c0cc9f608d70394baa87e01549ecc1fa99b23 +size 35621 diff --git a/docs/public/assets/images/loot/recipes/brewing_mix_recipe.png b/docs/public/assets/images/loot/recipes/brewing_mix_recipe.png new file mode 100644 index 00000000..e5aaf02d --- /dev/null +++ b/docs/public/assets/images/loot/recipes/brewing_mix_recipe.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95c84454eda1df000495563eb2e260a68a095d3646c0b5d99fc6fb372eb2a547 +size 17212 diff --git a/docs/public/assets/images/loot/recipes/furnace_recipe.png b/docs/public/assets/images/loot/recipes/furnace_recipe.png new file mode 100644 index 00000000..3785b097 --- /dev/null +++ b/docs/public/assets/images/loot/recipes/furnace_recipe.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9367f438f91050dab4ac1d64a5ab64a57edf3a6556e4213db41882d1215ad27d +size 14982 diff --git a/docs/public/assets/images/loot/recipes/recipe.png b/docs/public/assets/images/loot/recipes/recipe.png new file mode 100644 index 00000000..47a65d70 --- /dev/null +++ b/docs/public/assets/images/loot/recipes/recipe.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e9667e4e340b491063abd986404e481c2ea00e1bba630c50cd6be1bef56a7d2 +size 29771 diff --git a/docs/public/assets/images/loot/recipes/shaped_recipe.png b/docs/public/assets/images/loot/recipes/shaped_recipe.png new file mode 100644 index 00000000..c5827035 --- /dev/null +++ b/docs/public/assets/images/loot/recipes/shaped_recipe.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9ca0919c85de3149f43f5a0a1ca5d35e87c2bbb0effed825943b38bdbc4da0e +size 52635 diff --git a/docs/public/assets/images/loot/recipes/shapeless_recipe.png b/docs/public/assets/images/loot/recipes/shapeless_recipe.png new file mode 100644 index 00000000..da6a03a3 --- /dev/null +++ b/docs/public/assets/images/loot/recipes/shapeless_recipe.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83b3446112574b2ea33a1491f92d14b4956fe62827c589a8bc5c0e87b69ce0a3 +size 31373 diff --git a/docs/public/assets/images/loot/trade_tables/trading.png b/docs/public/assets/images/loot/trade_tables/trading.png new file mode 100644 index 00000000..96d08f49 --- /dev/null +++ b/docs/public/assets/images/loot/trade_tables/trading.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55d4c0826924e88f0544f17b86799a49bf941cfd879a816c04703e841fa41be0 +size 42942 diff --git a/docs/public/assets/images/misc/compass.png b/docs/public/assets/images/misc/compass.png new file mode 100644 index 00000000..fa81472c --- /dev/null +++ b/docs/public/assets/images/misc/compass.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85fa9a8d14d346bf9db29550c18200013b5e0ec174177e67c53c91c782ba2291 +size 21572 diff --git a/docs/public/assets/images/misc/dead_bush.png b/docs/public/assets/images/misc/dead_bush.png new file mode 100644 index 00000000..9ad8123f --- /dev/null +++ b/docs/public/assets/images/misc/dead_bush.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9fe9dc079e4caec38c0470be03f47a8b710f3ee3da90c0aaf42b7aa1f883d388 +size 1681 diff --git a/docs/public/assets/images/misc/github.png b/docs/public/assets/images/misc/github.png new file mode 100644 index 00000000..4e7f9e1d --- /dev/null +++ b/docs/public/assets/images/misc/github.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9392e3dc6665ce629ceb1af2d2ca9923ec7bb9c59cb98a9928735bb82768d27 +size 7979 diff --git a/docs/public/assets/images/misc/mined_bedrock.png b/docs/public/assets/images/misc/mined_bedrock.png new file mode 100644 index 00000000..dd58fdff --- /dev/null +++ b/docs/public/assets/images/misc/mined_bedrock.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5f6658e81f01d880f122ade94336759b00799094cc4d71349ee4e226d9152a4 +size 1041 diff --git a/docs/public/assets/images/misc/rickroll.gif b/docs/public/assets/images/misc/rickroll.gif new file mode 100644 index 00000000..354a19bd --- /dev/null +++ b/docs/public/assets/images/misc/rickroll.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d557a07b13c5a75e65fc84ca68d570013f2abd1f1f81b9af42626486a8fa5ba7 +size 236664 diff --git a/docs/public/assets/images/nbt/VS_Editor_images/step1.png b/docs/public/assets/images/nbt/VS_Editor_images/step1.png new file mode 100644 index 00000000..d11134f4 --- /dev/null +++ b/docs/public/assets/images/nbt/VS_Editor_images/step1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f19c2c8187cdbe6d088b6455d1cc919ee181bb34f221120ad25ebea09a43d99 +size 5740 diff --git a/docs/public/assets/images/nbt/VS_Editor_images/step10.png b/docs/public/assets/images/nbt/VS_Editor_images/step10.png new file mode 100644 index 00000000..39aad0bb --- /dev/null +++ b/docs/public/assets/images/nbt/VS_Editor_images/step10.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0abdc3bcdd397af854a4b2fb70670df2e2eb9e00d25705a736487878c86a253 +size 6047 diff --git a/docs/public/assets/images/nbt/VS_Editor_images/step11.png b/docs/public/assets/images/nbt/VS_Editor_images/step11.png new file mode 100644 index 00000000..8fc9869f --- /dev/null +++ b/docs/public/assets/images/nbt/VS_Editor_images/step11.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2acac1b3e5096e6f40b662a5aa9636e9048927a2c624a5355d24a87b567dd04c +size 5264 diff --git a/docs/public/assets/images/nbt/VS_Editor_images/step12.png b/docs/public/assets/images/nbt/VS_Editor_images/step12.png new file mode 100644 index 00000000..09063d3c --- /dev/null +++ b/docs/public/assets/images/nbt/VS_Editor_images/step12.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07fcffba8f79ed5974370c2926334cdc46a902853d1630c1f8c45c545eddb8d7 +size 5614 diff --git a/docs/public/assets/images/nbt/VS_Editor_images/step2.png b/docs/public/assets/images/nbt/VS_Editor_images/step2.png new file mode 100644 index 00000000..26f16eb7 --- /dev/null +++ b/docs/public/assets/images/nbt/VS_Editor_images/step2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34c647690fa9bc41e9050e3fdc9b511605b663ad60d756828d50644bbb59a977 +size 5425 diff --git a/docs/public/assets/images/nbt/VS_Editor_images/step3.png b/docs/public/assets/images/nbt/VS_Editor_images/step3.png new file mode 100644 index 00000000..b9089684 --- /dev/null +++ b/docs/public/assets/images/nbt/VS_Editor_images/step3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72193f9e166ddbbcfeb01121ec607b60d82a13c8d1b99241c09db569c6d7bf5b +size 5508 diff --git a/docs/public/assets/images/nbt/VS_Editor_images/step4.png b/docs/public/assets/images/nbt/VS_Editor_images/step4.png new file mode 100644 index 00000000..cf26cb45 --- /dev/null +++ b/docs/public/assets/images/nbt/VS_Editor_images/step4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db87f8243728d09bffdc6f528124db4a0126c1d4d1f6e7440c1609ed81fd451b +size 5803 diff --git a/docs/public/assets/images/nbt/VS_Editor_images/step5.png b/docs/public/assets/images/nbt/VS_Editor_images/step5.png new file mode 100644 index 00000000..9c835fa4 --- /dev/null +++ b/docs/public/assets/images/nbt/VS_Editor_images/step5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c697a731a2f74104a1a08114bdc99a0f59d0d19657f4ab5b1a9fa7b87f836933 +size 6079 diff --git a/docs/public/assets/images/nbt/VS_Editor_images/step6.png b/docs/public/assets/images/nbt/VS_Editor_images/step6.png new file mode 100644 index 00000000..8e82771d --- /dev/null +++ b/docs/public/assets/images/nbt/VS_Editor_images/step6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:178192608b35cb32a0d0d57669e2793ee405d92a25064a4c9c2794aed7873e55 +size 5733 diff --git a/docs/public/assets/images/nbt/VS_Editor_images/step7.png b/docs/public/assets/images/nbt/VS_Editor_images/step7.png new file mode 100644 index 00000000..7155a24f --- /dev/null +++ b/docs/public/assets/images/nbt/VS_Editor_images/step7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42731fbff926e95ca53d565a94d6a5f91e1a4ad88a4ae9236109764b8ab155e0 +size 6283 diff --git a/docs/public/assets/images/nbt/VS_Editor_images/step8.png b/docs/public/assets/images/nbt/VS_Editor_images/step8.png new file mode 100644 index 00000000..4812cb2f --- /dev/null +++ b/docs/public/assets/images/nbt/VS_Editor_images/step8.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:511cff0eb2f162ee10044136ab11421c82eabbafb4d1f3aa58d7853545e59b55 +size 5636 diff --git a/docs/public/assets/images/nbt/VS_Editor_images/step9.png b/docs/public/assets/images/nbt/VS_Editor_images/step9.png new file mode 100644 index 00000000..b050b002 --- /dev/null +++ b/docs/public/assets/images/nbt/VS_Editor_images/step9.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61f33b65acc9e6a622a573625b5a4e56c7f03c9bfe40b8ff3d026f73575cc1b6 +size 5688 diff --git a/docs/public/assets/images/nbt/byte.png b/docs/public/assets/images/nbt/byte.png new file mode 100644 index 00000000..174a38a3 --- /dev/null +++ b/docs/public/assets/images/nbt/byte.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9cd141cb7f4b778eef274cef8f7932c2b2c9e04fa9cc305168ec7ecaee5ce1c3 +size 144 diff --git a/docs/public/assets/images/nbt/compound.png b/docs/public/assets/images/nbt/compound.png new file mode 100644 index 00000000..94a28847 --- /dev/null +++ b/docs/public/assets/images/nbt/compound.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ccfc6f8e1f41a9b41f2f968a63d22f6553d075ecb800a1072f3a77ab0a9c85e0 +size 596 diff --git a/docs/public/assets/images/nbt/experiments-education-edition/byte-add.png b/docs/public/assets/images/nbt/experiments-education-edition/byte-add.png new file mode 100644 index 00000000..f2f883fb --- /dev/null +++ b/docs/public/assets/images/nbt/experiments-education-edition/byte-add.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9216122229c5ad2eb332efbd79b86ad70b40b58e78a7843c1d3bebf5413a7855 +size 12368 diff --git a/docs/public/assets/images/nbt/experiments-education-edition/experiments-file.png b/docs/public/assets/images/nbt/experiments-education-edition/experiments-file.png new file mode 100644 index 00000000..abca6883 --- /dev/null +++ b/docs/public/assets/images/nbt/experiments-education-edition/experiments-file.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92b9c2c1c9a579fda8c0f381a7a040e98b30d81d11b696a574c462b8464f5d63 +size 55129 diff --git a/docs/public/assets/images/nbt/int.png b/docs/public/assets/images/nbt/int.png new file mode 100644 index 00000000..f67af75b --- /dev/null +++ b/docs/public/assets/images/nbt/int.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16704a0b9c9615354866a712828cdd34752cd5cd0164bc122dabd7b435b8c205 +size 559 diff --git a/docs/public/assets/images/nbt/list.png b/docs/public/assets/images/nbt/list.png new file mode 100644 index 00000000..db3c2888 --- /dev/null +++ b/docs/public/assets/images/nbt/list.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82aeb16d84559fcab5b06511015cbbd38faffa3fdd5e254434d9d363078ae8b0 +size 606 diff --git a/docs/public/assets/images/nbt/string.png b/docs/public/assets/images/nbt/string.png new file mode 100644 index 00000000..5a2645d2 --- /dev/null +++ b/docs/public/assets/images/nbt/string.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a819e25cf4fdaac3b4a75e939c8b0c345b0108aa160ed7d007f6124620b735b5 +size 612 diff --git a/docs/public/assets/images/nbt/structure-limits/nbt-screenshot-1.png b/docs/public/assets/images/nbt/structure-limits/nbt-screenshot-1.png new file mode 100644 index 00000000..f816d34f --- /dev/null +++ b/docs/public/assets/images/nbt/structure-limits/nbt-screenshot-1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd6360aadb7321b4b7a79118834c7285e877d74a9417b05d8548b72402963701 +size 44696 diff --git a/docs/public/assets/images/nbt/structure-limits/result.png b/docs/public/assets/images/nbt/structure-limits/result.png new file mode 100644 index 00000000..78ed9a7d --- /dev/null +++ b/docs/public/assets/images/nbt/structure-limits/result.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6175b06c9cda499a5badccd4a9e50fd7d20157bc1655b24b7d4434dbc7e57a6 +size 484483 diff --git a/docs/public/assets/images/nbt/structure.png b/docs/public/assets/images/nbt/structure.png new file mode 100644 index 00000000..455480e7 --- /dev/null +++ b/docs/public/assets/images/nbt/structure.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b6d1ea91310ed7178eef15adec20428eee5a11f02984fc6b3b1c94f97f2c46c +size 186 diff --git a/docs/public/assets/images/scripting/hello-world-tutorial/activate-experimental-gameplay-popup.png b/docs/public/assets/images/scripting/hello-world-tutorial/activate-experimental-gameplay-popup.png new file mode 100644 index 00000000..acac0d22 --- /dev/null +++ b/docs/public/assets/images/scripting/hello-world-tutorial/activate-experimental-gameplay-popup.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:270f02d94109ccdd30a36709ac82910992ac014a2991508fed2a9ee446f44aa1 +size 37989 diff --git a/docs/public/assets/images/scripting/hello-world-tutorial/active-hello-world-addon.png b/docs/public/assets/images/scripting/hello-world-tutorial/active-hello-world-addon.png new file mode 100644 index 00000000..68196623 --- /dev/null +++ b/docs/public/assets/images/scripting/hello-world-tutorial/active-hello-world-addon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36663ba1e59fd255dae65b07b2a9ae5195d3bbb55879d88bd5c1c2b7af78be02 +size 563620 diff --git a/docs/public/assets/images/scripting/hello-world-tutorial/additional-modding-capabilities-toggle.png b/docs/public/assets/images/scripting/hello-world-tutorial/additional-modding-capabilities-toggle.png new file mode 100644 index 00000000..a272ab0b --- /dev/null +++ b/docs/public/assets/images/scripting/hello-world-tutorial/additional-modding-capabilities-toggle.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f54c2ef4c9a65597a52b63f6c263adb242853a412dadf2589a8cb569705e97ab +size 27086 diff --git a/docs/public/assets/images/scripting/hello-world-tutorial/addon-loaded-scripts-off.png b/docs/public/assets/images/scripting/hello-world-tutorial/addon-loaded-scripts-off.png new file mode 100644 index 00000000..f6eb9ba1 --- /dev/null +++ b/docs/public/assets/images/scripting/hello-world-tutorial/addon-loaded-scripts-off.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b78eb17883a5fcd3e3217eb53235cdf33c24139660d130279f264d317864c228 +size 4179500 diff --git a/docs/public/assets/images/scripting/hello-world-tutorial/addon-loaded-scripts-on-both.png b/docs/public/assets/images/scripting/hello-world-tutorial/addon-loaded-scripts-on-both.png new file mode 100644 index 00000000..ae7f2e7a --- /dev/null +++ b/docs/public/assets/images/scripting/hello-world-tutorial/addon-loaded-scripts-on-both.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7923433f00d2d29de70443f3542355413660e3d27e8f9312e817cb0ef471621 +size 3915199 diff --git a/docs/public/assets/images/scripting/hello-world-tutorial/addon-loaded-scripts-on-server-only.png b/docs/public/assets/images/scripting/hello-world-tutorial/addon-loaded-scripts-on-server-only.png new file mode 100644 index 00000000..4c5f2153 --- /dev/null +++ b/docs/public/assets/images/scripting/hello-world-tutorial/addon-loaded-scripts-on-server-only.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d06e8f4ee41bc89b322d1d70b893065ee553d759ac6e693ac5c282357c368ee6 +size 3878177 diff --git a/docs/public/assets/images/scripting/hello-world-tutorial/addons-menu.png b/docs/public/assets/images/scripting/hello-world-tutorial/addons-menu.png new file mode 100644 index 00000000..b03de94c --- /dev/null +++ b/docs/public/assets/images/scripting/hello-world-tutorial/addons-menu.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72d1eb1a48ce82a3e2c0aeffa750bcd19cfa7f963df5e94c644928098ae35567 +size 54129 diff --git a/docs/public/assets/images/scripting/hello-world-tutorial/enable-scripts-popup.png b/docs/public/assets/images/scripting/hello-world-tutorial/enable-scripts-popup.png new file mode 100644 index 00000000..d71235e0 --- /dev/null +++ b/docs/public/assets/images/scripting/hello-world-tutorial/enable-scripts-popup.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27769acd29c0911c90ee1d1b8569202cd0f2e29a377bf07ec87c8b70f0542336 +size 470353 diff --git a/docs/public/assets/images/scripting/hello-world-tutorial/load-pack-menu-activate.png b/docs/public/assets/images/scripting/hello-world-tutorial/load-pack-menu-activate.png new file mode 100644 index 00000000..db61b486 --- /dev/null +++ b/docs/public/assets/images/scripting/hello-world-tutorial/load-pack-menu-activate.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1da3a1ea38003d2ec6773f067a8f1e8033deffa5b6e996fc77a0a2a96a9e5ac +size 284192 diff --git a/docs/public/assets/images/scripting/hello-world-tutorial/pack_icon.png b/docs/public/assets/images/scripting/hello-world-tutorial/pack_icon.png new file mode 100644 index 00000000..b84b0d1e --- /dev/null +++ b/docs/public/assets/images/scripting/hello-world-tutorial/pack_icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b93aea9c1fdba2019d6437286624db1fa1f4d02ae516379f444ae2cde45ac2de +size 589 diff --git a/docs/public/assets/images/scripting/hello-world-tutorial/turn-off-achievements-popup.png b/docs/public/assets/images/scripting/hello-world-tutorial/turn-off-achievements-popup.png new file mode 100644 index 00000000..bc71be77 --- /dev/null +++ b/docs/public/assets/images/scripting/hello-world-tutorial/turn-off-achievements-popup.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b973864a2f9e361e3693cd3dea158b3b5b70bedfb2cf4266de66cc00f932633e +size 81816 diff --git a/docs/public/assets/images/scripting/hello-world-tutorial/world-cheats.png b/docs/public/assets/images/scripting/hello-world-tutorial/world-cheats.png new file mode 100644 index 00000000..8cdd95f8 --- /dev/null +++ b/docs/public/assets/images/scripting/hello-world-tutorial/world-cheats.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c92f9877c5d8bbe292b244bcc12d4ae67a2add1ed3774f7e9583ed6d4c5d414 +size 488377 diff --git a/docs/public/assets/images/scripting/hello-world-tutorial/world-options.png b/docs/public/assets/images/scripting/hello-world-tutorial/world-options.png new file mode 100644 index 00000000..f2ca88d8 --- /dev/null +++ b/docs/public/assets/images/scripting/hello-world-tutorial/world-options.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f60eba445b3986d28320b2078c205b8b43c9b1242598a8c78f9f6e26768329c +size 414940 diff --git a/docs/public/assets/images/scripting/typescript/project-create.gif b/docs/public/assets/images/scripting/typescript/project-create.gif new file mode 100644 index 00000000..0cc570fa --- /dev/null +++ b/docs/public/assets/images/scripting/typescript/project-create.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:337deb98761feffcd1ef834e328d295a5c4d251e9f6dd32e9909bd75e6025bc9 +size 3398591 diff --git a/docs/public/assets/images/tutorials/custom-armor/armor-item-image.jpg b/docs/public/assets/images/tutorials/custom-armor/armor-item-image.jpg new file mode 100644 index 00000000..65cad3ba --- /dev/null +++ b/docs/public/assets/images/tutorials/custom-armor/armor-item-image.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5948364672fdc620b42bdfc13b2f9709c51b43e65c67306df93ecbf3ba4f8b3d +size 13317 diff --git a/docs/public/assets/images/tutorials/custom-armor/armor-model-image.jpg b/docs/public/assets/images/tutorials/custom-armor/armor-model-image.jpg new file mode 100644 index 00000000..c1e7df4c --- /dev/null +++ b/docs/public/assets/images/tutorials/custom-armor/armor-model-image.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ab7ef8a57a3d727f256fe4fce265daac39dc5bd336661c3e7fbe2fbe204623e +size 27919 diff --git a/docs/public/assets/images/tutorials/custom-armor/custom-set-image.jpg b/docs/public/assets/images/tutorials/custom-armor/custom-set-image.jpg new file mode 100644 index 00000000..5f20880c --- /dev/null +++ b/docs/public/assets/images/tutorials/custom-armor/custom-set-image.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac0fd7ddea09b1ae1ffd2c1c9bd492a57f47c7307dfa779e7e56d6710ec5c65d +size 18672 diff --git a/docs/public/assets/images/tutorials/custom-armor/custom_boots.png b/docs/public/assets/images/tutorials/custom-armor/custom_boots.png new file mode 100644 index 00000000..ec9ca066 --- /dev/null +++ b/docs/public/assets/images/tutorials/custom-armor/custom_boots.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e19980f8d6f680a624944eab4102f3edbae3b970fdca0311998dcb9c5ee99dd +size 265 diff --git a/docs/public/assets/images/tutorials/custom-armor/custom_chestplate.png b/docs/public/assets/images/tutorials/custom-armor/custom_chestplate.png new file mode 100644 index 00000000..49ee05ea --- /dev/null +++ b/docs/public/assets/images/tutorials/custom-armor/custom_chestplate.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d214984bd2ad39065d398f33e446ce2ea45005e3db9b377c151df24ea5d89d5f +size 313 diff --git a/docs/public/assets/images/tutorials/custom-armor/custom_helmet.png b/docs/public/assets/images/tutorials/custom-armor/custom_helmet.png new file mode 100644 index 00000000..1b5e23bc --- /dev/null +++ b/docs/public/assets/images/tutorials/custom-armor/custom_helmet.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdbc0dcf876877eda6f7bd6da109635e97d920e47f0c5632cd4a4cbba6772d59 +size 250 diff --git a/docs/public/assets/images/tutorials/custom-armor/custom_leggings.png b/docs/public/assets/images/tutorials/custom-armor/custom_leggings.png new file mode 100644 index 00000000..769152f7 --- /dev/null +++ b/docs/public/assets/images/tutorials/custom-armor/custom_leggings.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52df63b392d5be99be304991570597899b2e649fb25099658f356176659c57ee +size 273 diff --git a/docs/public/assets/images/tutorials/custom-armor/custom_legs.png b/docs/public/assets/images/tutorials/custom-armor/custom_legs.png new file mode 100644 index 00000000..cadd1100 --- /dev/null +++ b/docs/public/assets/images/tutorials/custom-armor/custom_legs.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d437b6ed8f9930f65f20e5bf104041c4e02deb6da47849d7cb976aae10d73b43 +size 507 diff --git a/docs/public/assets/images/tutorials/custom-armor/custom_main.png b/docs/public/assets/images/tutorials/custom-armor/custom_main.png new file mode 100644 index 00000000..581180e5 --- /dev/null +++ b/docs/public/assets/images/tutorials/custom-armor/custom_main.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5fc4fd087a3e12f42af540ecc20cf80a1d12254c816fdc2c8f9524998c39dc32 +size 872 diff --git a/docs/public/assets/images/tutorials/custom-item-models/drill-bone-structure.png b/docs/public/assets/images/tutorials/custom-item-models/drill-bone-structure.png new file mode 100644 index 00000000..c0ae528f --- /dev/null +++ b/docs/public/assets/images/tutorials/custom-item-models/drill-bone-structure.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0065bf8e743cc1de5ca8317ed71dee35fb61817ec4ff48aa22a99c2737c607b4 +size 24248 diff --git a/docs/public/assets/images/tutorials/custom-item-models/drill-item-visible.png b/docs/public/assets/images/tutorials/custom-item-models/drill-item-visible.png new file mode 100644 index 00000000..a3e1c46d --- /dev/null +++ b/docs/public/assets/images/tutorials/custom-item-models/drill-item-visible.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0b6a3dadf09bba24ce80298e51fae0a0f737efd9fe3cbfe86d3ef3fd8c561a0 +size 1841984 diff --git a/docs/public/assets/images/tutorials/custom-item-models/drill-opacity.png b/docs/public/assets/images/tutorials/custom-item-models/drill-opacity.png new file mode 100644 index 00000000..3ac03675 --- /dev/null +++ b/docs/public/assets/images/tutorials/custom-item-models/drill-opacity.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd5537e011da95c91d232bd86db5f8abcde2c41fc644f084de18eec04d63e6a4 +size 22213 diff --git a/docs/public/assets/images/tutorials/custom-item-models/drill-sprite-inventory.png b/docs/public/assets/images/tutorials/custom-item-models/drill-sprite-inventory.png new file mode 100644 index 00000000..d0bced23 --- /dev/null +++ b/docs/public/assets/images/tutorials/custom-item-models/drill-sprite-inventory.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d72afbad684983d5bd2f9846b74e3cc8cedee6143ce5a469ecefc24a6ed69e15 +size 3474 diff --git a/docs/public/assets/images/tutorials/custom-item-models/hat_attachable.png b/docs/public/assets/images/tutorials/custom-item-models/hat_attachable.png new file mode 100644 index 00000000..1300f5b4 --- /dev/null +++ b/docs/public/assets/images/tutorials/custom-item-models/hat_attachable.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5cc4386f5a4f88823b85b6b751501b4fb059c47f0a952be0183eb0327a5d033 +size 2227470 diff --git a/docs/public/assets/images/tutorials/custom-weapons/custom_sword.jpg b/docs/public/assets/images/tutorials/custom-weapons/custom_sword.jpg new file mode 100644 index 00000000..a27b8937 --- /dev/null +++ b/docs/public/assets/images/tutorials/custom-weapons/custom_sword.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8aa0bc53747c2519037a20e7419073081e9b27ffb5c4999b8bdf05588cf9793e +size 21077 diff --git a/docs/public/assets/images/tutorials/custom-weapons/held_sword.jpg b/docs/public/assets/images/tutorials/custom-weapons/held_sword.jpg new file mode 100644 index 00000000..cbc45707 --- /dev/null +++ b/docs/public/assets/images/tutorials/custom-weapons/held_sword.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9a0f7e3d403bbee70cafba39a7851af2d17ce7a642c752a001c89e393796ec1 +size 38594 diff --git a/docs/public/assets/images/tutorials/custom-weapons/my_sword.png b/docs/public/assets/images/tutorials/custom-weapons/my_sword.png new file mode 100644 index 00000000..212054ad --- /dev/null +++ b/docs/public/assets/images/tutorials/custom-weapons/my_sword.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e7eaebb1692e2b38e472973e2465d0392b79f6c7346a5ebb53f70008f7b2881 +size 338 diff --git a/docs/public/assets/images/tutorials/custom-weapons/sword_recipe.jpg b/docs/public/assets/images/tutorials/custom-weapons/sword_recipe.jpg new file mode 100644 index 00000000..93b041ae --- /dev/null +++ b/docs/public/assets/images/tutorials/custom-weapons/sword_recipe.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b1dd182af0547b4934c99bd3f81a61d4333107f8f50ff5b81c2089812db79aa +size 15987 diff --git a/docs/public/assets/images/tutorials/entity-holds-item/blockbench.png b/docs/public/assets/images/tutorials/entity-holds-item/blockbench.png new file mode 100644 index 00000000..690b9261 --- /dev/null +++ b/docs/public/assets/images/tutorials/entity-holds-item/blockbench.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68eb0617f923b90a888333633d5379f05d8fafdf9b744362425ae54b0cd3b252 +size 88821 diff --git a/docs/public/assets/images/tutorials/entity-holds-item/finished_result.png b/docs/public/assets/images/tutorials/entity-holds-item/finished_result.png new file mode 100644 index 00000000..069f6095 --- /dev/null +++ b/docs/public/assets/images/tutorials/entity-holds-item/finished_result.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9775a56e40cf802e99df4f62b097603f447d0e9beebc2f8697c8bde36469fa8 +size 119185 diff --git a/docs/public/assets/images/tutorials/randomised-structure-loot/LootTable-step1.png b/docs/public/assets/images/tutorials/randomised-structure-loot/LootTable-step1.png new file mode 100644 index 00000000..66b7689b --- /dev/null +++ b/docs/public/assets/images/tutorials/randomised-structure-loot/LootTable-step1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26c8e52bf57deacea5d12e0eec0334b81fa28c00567dae880c55b96bd5bdf51f +size 26388 diff --git a/docs/public/assets/images/tutorials/randomised-structure-loot/LootTable-step2.png b/docs/public/assets/images/tutorials/randomised-structure-loot/LootTable-step2.png new file mode 100644 index 00000000..1266f978 --- /dev/null +++ b/docs/public/assets/images/tutorials/randomised-structure-loot/LootTable-step2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32fec12c1c2d0753a73f103536bc731ff82d0bca80a2a96ae3a51a984f615525 +size 35442 diff --git a/docs/public/assets/images/tutorials/randomised-structure-loot/LootTable-step3.png b/docs/public/assets/images/tutorials/randomised-structure-loot/LootTable-step3.png new file mode 100644 index 00000000..144d9e39 --- /dev/null +++ b/docs/public/assets/images/tutorials/randomised-structure-loot/LootTable-step3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b1aeb58ac64905151c892da72952f5b04553c89c9d00f282564699e85c8c926 +size 26351 diff --git a/docs/public/assets/images/tutorials/randomised-structure-loot/add_string_tag1.png b/docs/public/assets/images/tutorials/randomised-structure-loot/add_string_tag1.png new file mode 100644 index 00000000..1ac7d9c5 --- /dev/null +++ b/docs/public/assets/images/tutorials/randomised-structure-loot/add_string_tag1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5488c3b8c7537b935e65bf6f04746c27c602757da82ac8ea256ebfd9425f5a63 +size 101493 diff --git a/docs/public/assets/images/tutorials/randomised-structure-loot/add_string_tag2.png b/docs/public/assets/images/tutorials/randomised-structure-loot/add_string_tag2.png new file mode 100644 index 00000000..3ab88916 --- /dev/null +++ b/docs/public/assets/images/tutorials/randomised-structure-loot/add_string_tag2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2c0cc6bec563991fc1220544bcb1bbb60c1124c56cce159073770ad66dd67c1 +size 93933 diff --git a/docs/public/assets/images/tutorials/randomised-structure-loot/export_structure.png b/docs/public/assets/images/tutorials/randomised-structure-loot/export_structure.png new file mode 100644 index 00000000..99c040cc --- /dev/null +++ b/docs/public/assets/images/tutorials/randomised-structure-loot/export_structure.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36a9bbef11da3b478c7e2a34af585c0857c6a2260356a6697ea79f81054d3a24 +size 234756 diff --git a/docs/public/assets/images/tutorials/randomised-structure-loot/find_container.png b/docs/public/assets/images/tutorials/randomised-structure-loot/find_container.png new file mode 100644 index 00000000..cd099ba3 --- /dev/null +++ b/docs/public/assets/images/tutorials/randomised-structure-loot/find_container.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9cdf99f00cb77ff83d52cf327d0c063e9da705a369a9b683472aadd25ba53107 +size 90628 diff --git a/docs/public/assets/images/tutorials/randomised-structure-loot/open_file.png b/docs/public/assets/images/tutorials/randomised-structure-loot/open_file.png new file mode 100644 index 00000000..e5b1b31b --- /dev/null +++ b/docs/public/assets/images/tutorials/randomised-structure-loot/open_file.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05f9ae9413fc7a826bfb90887507be17dbefa7880a02c43c5341adf63bef697a +size 35490 diff --git a/docs/public/assets/images/tutorials/randomised-structure-loot/test.png b/docs/public/assets/images/tutorials/randomised-structure-loot/test.png new file mode 100644 index 00000000..91512e38 --- /dev/null +++ b/docs/public/assets/images/tutorials/randomised-structure-loot/test.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a478ec0056fc9f74de2fd9cdc4da4049711c170ba79c5b861f105b97ab3fea63 +size 308558 diff --git a/docs/public/assets/images/tutorials/sleeping-entities/result.png b/docs/public/assets/images/tutorials/sleeping-entities/result.png new file mode 100644 index 00000000..d49a3916 --- /dev/null +++ b/docs/public/assets/images/tutorials/sleeping-entities/result.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3068d20e44c3a0706568730db7bd454a68c08d9c658f725c7fe381dc7f55233a +size 575239 diff --git a/docs/public/assets/images/visuals/animated-entity-texture/cow.png b/docs/public/assets/images/visuals/animated-entity-texture/cow.png new file mode 100644 index 00000000..84b5eadb --- /dev/null +++ b/docs/public/assets/images/visuals/animated-entity-texture/cow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98884a9d2f3a534cb63eb25aa0ac25537e3b16eb959d8af5b248004e525b24b6 +size 1123 diff --git a/docs/public/assets/images/visuals/animated-entity-texture/result.gif b/docs/public/assets/images/visuals/animated-entity-texture/result.gif new file mode 100644 index 00000000..15c9ff8d --- /dev/null +++ b/docs/public/assets/images/visuals/animated-entity-texture/result.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:967447559f807114282d5523cbfa5e3551c9eb2a621332604b71b48d46fd3779 +size 1838349 diff --git a/docs/public/assets/images/visuals/animation-effects/add-effect.png b/docs/public/assets/images/visuals/animation-effects/add-effect.png new file mode 100644 index 00000000..c7c2f62e --- /dev/null +++ b/docs/public/assets/images/visuals/animation-effects/add-effect.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff3b2da0737b7c8cd8b4a566bc12bea34165d536589e62773a6e7a9b6e63dbb0 +size 31117 diff --git a/docs/public/assets/images/visuals/animation-effects/add-locator.png b/docs/public/assets/images/visuals/animation-effects/add-locator.png new file mode 100644 index 00000000..f965574d --- /dev/null +++ b/docs/public/assets/images/visuals/animation-effects/add-locator.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb6af4bda63db2196908925526bf4fadcdf7b8874ee505af489ff4d34704e5aa +size 64857 diff --git a/docs/public/assets/images/visuals/animation-effects/showcase.png b/docs/public/assets/images/visuals/animation-effects/showcase.png new file mode 100644 index 00000000..d3aa0aef --- /dev/null +++ b/docs/public/assets/images/visuals/animation-effects/showcase.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:965c32cf215ae6184e6f77bb3c5308ee386ccc3c8f81f7f97e5ceb22fb3949bc +size 300946 diff --git a/docs/public/assets/images/visuals/animation-effects/specify-data.png b/docs/public/assets/images/visuals/animation-effects/specify-data.png new file mode 100644 index 00000000..e9326405 --- /dev/null +++ b/docs/public/assets/images/visuals/animation-effects/specify-data.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1890946e9d6a805acde7ba319905cad84a215af3e9c3318e753d62e600e264ad +size 52594 diff --git a/docs/public/assets/images/visuals/bedrock-modeling/animations-1.png b/docs/public/assets/images/visuals/bedrock-modeling/animations-1.png new file mode 100644 index 00000000..3d0a8e8e --- /dev/null +++ b/docs/public/assets/images/visuals/bedrock-modeling/animations-1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33a829efc1b676dc93db9d8a0a5310b65eb6673e6fc151217593f0a90cc010b4 +size 7937 diff --git a/docs/public/assets/images/visuals/bedrock-modeling/animations-2.gif b/docs/public/assets/images/visuals/bedrock-modeling/animations-2.gif new file mode 100644 index 00000000..ed1e5e35 --- /dev/null +++ b/docs/public/assets/images/visuals/bedrock-modeling/animations-2.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8e1e21c53fca8f3568fc88ca2b787b798405b16e9efe12fc75ffda4d25d1a95 +size 152937 diff --git a/docs/public/assets/images/visuals/bedrock-modeling/setting-loop.png b/docs/public/assets/images/visuals/bedrock-modeling/setting-loop.png new file mode 100644 index 00000000..997bf62f --- /dev/null +++ b/docs/public/assets/images/visuals/bedrock-modeling/setting-loop.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5e5f4ddf8bf4d1fbad61c4c4c0fd17850be441f73458d120be933c50136113a +size 30306 diff --git a/docs/public/assets/images/visuals/bedrock-modeling/vertex_snap.gif b/docs/public/assets/images/visuals/bedrock-modeling/vertex_snap.gif new file mode 100644 index 00000000..9d31cfec --- /dev/null +++ b/docs/public/assets/images/visuals/bedrock-modeling/vertex_snap.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7f96b5fb52c06db5c603bf0bbdbce3e13c7a2e22ca1a4264796c91115565c85 +size 2458754 diff --git a/docs/public/assets/images/visuals/bedrock-modeling/z-fighting.png b/docs/public/assets/images/visuals/bedrock-modeling/z-fighting.png new file mode 100644 index 00000000..b25b10cc --- /dev/null +++ b/docs/public/assets/images/visuals/bedrock-modeling/z-fighting.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b86f7f34aaee71e78c36ac23ce81a300dfff24ded825a65797805dcea275ff3e +size 71544 diff --git a/docs/public/assets/images/visuals/deferred-qna/deferred-qna-media1.gif b/docs/public/assets/images/visuals/deferred-qna/deferred-qna-media1.gif new file mode 100644 index 00000000..68c9d043 --- /dev/null +++ b/docs/public/assets/images/visuals/deferred-qna/deferred-qna-media1.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a5584a8992c8ab0ff2145e457b8d38a019451c181ab52851055f84740b04d6f +size 43956556 diff --git a/docs/public/assets/images/visuals/deferred-qna/deferred-qna-media2.png b/docs/public/assets/images/visuals/deferred-qna/deferred-qna-media2.png new file mode 100644 index 00000000..2306ed19 --- /dev/null +++ b/docs/public/assets/images/visuals/deferred-qna/deferred-qna-media2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1cfab6555ef6e6f67834476fa0f4059f4bd2eaec97cfc0a64f08e61ce7437cf8 +size 1039297 diff --git a/docs/public/assets/images/visuals/deferred-qna/deferred-qna-media3.png b/docs/public/assets/images/visuals/deferred-qna/deferred-qna-media3.png new file mode 100644 index 00000000..f1a31da0 --- /dev/null +++ b/docs/public/assets/images/visuals/deferred-qna/deferred-qna-media3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a0b1d1737098f556fb6dca4f6b5648cd15b83666ac5d4b229cf055032da2320 +size 362860 diff --git a/docs/public/assets/images/visuals/glowing-texture/erase-pixels.png b/docs/public/assets/images/visuals/glowing-texture/erase-pixels.png new file mode 100644 index 00000000..0e9a7d9a --- /dev/null +++ b/docs/public/assets/images/visuals/glowing-texture/erase-pixels.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a19d634500e856dc18f6aa2380db8845c2d0320526f9fd0d8da332c5412e1278 +size 80123 diff --git a/docs/public/assets/images/visuals/glowing-texture/eraser.png b/docs/public/assets/images/visuals/glowing-texture/eraser.png new file mode 100644 index 00000000..da6a612c --- /dev/null +++ b/docs/public/assets/images/visuals/glowing-texture/eraser.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43a259d4131ef80ff04a7f98def0d0697e8670c9767120e6a5d713a405d080e7 +size 7301 diff --git a/docs/public/assets/images/visuals/glowing-texture/opacity.png b/docs/public/assets/images/visuals/glowing-texture/opacity.png new file mode 100644 index 00000000..e9f0aaca --- /dev/null +++ b/docs/public/assets/images/visuals/glowing-texture/opacity.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b89cecd1110a884ec0de23e31aaa2c10af0232614258d57939518c2dd24d045 +size 12269 diff --git a/docs/public/assets/images/visuals/glowing-texture/pig.png b/docs/public/assets/images/visuals/glowing-texture/pig.png new file mode 100644 index 00000000..102578cb --- /dev/null +++ b/docs/public/assets/images/visuals/glowing-texture/pig.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8c09f29b3d66b45f5d2cd29eb8f626598ab76b769cc607b9b8078b5e1d3b002 +size 1501 diff --git a/docs/public/assets/images/visuals/glowing-texture/result.png b/docs/public/assets/images/visuals/glowing-texture/result.png new file mode 100644 index 00000000..22f31974 --- /dev/null +++ b/docs/public/assets/images/visuals/glowing-texture/result.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b40a207fac1642d6d937ffa6055bd90249a8e977a6ca63f0bc6936540ec5d19a +size 216293 diff --git a/docs/public/assets/images/visuals/leash-position/locator-1.png b/docs/public/assets/images/visuals/leash-position/locator-1.png new file mode 100644 index 00000000..a5e0b680 --- /dev/null +++ b/docs/public/assets/images/visuals/leash-position/locator-1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a06185605bb25bd5df273a5017d6b1a3545b2eda4652d8deeed1d24dfd89c368 +size 84760 diff --git a/docs/public/assets/images/visuals/leash-position/model-1.png b/docs/public/assets/images/visuals/leash-position/model-1.png new file mode 100644 index 00000000..6f2d7b79 --- /dev/null +++ b/docs/public/assets/images/visuals/leash-position/model-1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebab903cec6dfe21b2262aa4995687f4afd9e48222d3384d0521fcddbbd58e7b +size 156473 diff --git a/docs/public/assets/images/visuals/leash-position/model-2.png b/docs/public/assets/images/visuals/leash-position/model-2.png new file mode 100644 index 00000000..01e78385 --- /dev/null +++ b/docs/public/assets/images/visuals/leash-position/model-2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9dff399facad50ec8bc480b53b85d8ee744beaba0cece355958f81c3fa0874e1 +size 151112 diff --git a/docs/public/assets/images/visuals/leash-position/model-3.png b/docs/public/assets/images/visuals/leash-position/model-3.png new file mode 100644 index 00000000..cd4a29bf --- /dev/null +++ b/docs/public/assets/images/visuals/leash-position/model-3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6332d54fb833c1fe50689e45ada02d1b0052fe8867dd1969dad64c74e3f22276 +size 160298 diff --git a/docs/public/assets/images/visuals/leash-position/result-0.png b/docs/public/assets/images/visuals/leash-position/result-0.png new file mode 100644 index 00000000..e8dc2887 --- /dev/null +++ b/docs/public/assets/images/visuals/leash-position/result-0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f0c92efcce405ca7be437b7c7e21e4ab13f7a64d1f1be4cf85d858c29690082 +size 593112 diff --git a/docs/public/assets/images/visuals/leash-position/result-1.png b/docs/public/assets/images/visuals/leash-position/result-1.png new file mode 100644 index 00000000..8e8676da --- /dev/null +++ b/docs/public/assets/images/visuals/leash-position/result-1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8495643757fe16da296ee89ca9be1b1270582a353553953075f708a0a475f81d +size 625313 diff --git a/docs/public/assets/images/visuals/math-based-animations/animation-1.gif b/docs/public/assets/images/visuals/math-based-animations/animation-1.gif new file mode 100644 index 00000000..647aab3f --- /dev/null +++ b/docs/public/assets/images/visuals/math-based-animations/animation-1.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f554beb2e790e295aa04bbf8297add8503373a12fcbeecc4cd7e5627102b5e2f +size 328323 diff --git a/docs/public/assets/images/visuals/skin-packs/troubleshooting-1.png b/docs/public/assets/images/visuals/skin-packs/troubleshooting-1.png new file mode 100644 index 00000000..f445ffba --- /dev/null +++ b/docs/public/assets/images/visuals/skin-packs/troubleshooting-1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee7bc8346729e4435c008b2371d3778466dc260955d357115f110bb8c2b0134b +size 199767 diff --git a/docs/public/assets/images/visuals/skin-packs/troubleshooting-2.png b/docs/public/assets/images/visuals/skin-packs/troubleshooting-2.png new file mode 100644 index 00000000..a3f4808b --- /dev/null +++ b/docs/public/assets/images/visuals/skin-packs/troubleshooting-2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fecf6469f8c9e65502948f77a30b522c2b7d7f315cefcaf0cafa1341629e12a9 +size 200335 diff --git a/docs/public/assets/images/visuals/structure-presentation/in-game.png b/docs/public/assets/images/visuals/structure-presentation/in-game.png new file mode 100644 index 00000000..841a00c2 --- /dev/null +++ b/docs/public/assets/images/visuals/structure-presentation/in-game.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1296a857001f30d671b022cde1e75e1bc43d876c207762e6e6edc258e2acdc4b +size 2016601 diff --git a/docs/public/assets/images/visuals/structure-presentation/model-render.png b/docs/public/assets/images/visuals/structure-presentation/model-render.png new file mode 100644 index 00000000..f459bc0b --- /dev/null +++ b/docs/public/assets/images/visuals/structure-presentation/model-render.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2243eb11265b3d46e8bb9800644be87f4edcbdb7036706841058a09eb467820 +size 415915 diff --git a/docs/public/assets/images/visuals/structure-presentation/structure-block-0.png b/docs/public/assets/images/visuals/structure-presentation/structure-block-0.png new file mode 100644 index 00000000..ab22e935 --- /dev/null +++ b/docs/public/assets/images/visuals/structure-presentation/structure-block-0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db86e24f5f7f0352e182d6d3e3abb308e374de432353a946c1338d09790c53d0 +size 237066 diff --git a/docs/public/assets/images/visuals/structure-presentation/structure-block-1.png b/docs/public/assets/images/visuals/structure-presentation/structure-block-1.png new file mode 100644 index 00000000..f4bff708 --- /dev/null +++ b/docs/public/assets/images/visuals/structure-presentation/structure-block-1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5a286f012ebfdb92ecb175689f172fae44dbfa850293279cee6b479d8352b99 +size 196244 diff --git a/docs/public/assets/images/vr/install/vr_desktop.png b/docs/public/assets/images/vr/install/vr_desktop.png new file mode 100644 index 00000000..0346e6a7 --- /dev/null +++ b/docs/public/assets/images/vr/install/vr_desktop.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2797fe1517057bcc54ae7ee8a53042215b89ed0e93db10743d618de2e44cbc59 +size 341955 diff --git a/docs/public/assets/images/vr/install/vr_headset.png b/docs/public/assets/images/vr/install/vr_headset.png new file mode 100644 index 00000000..08f288f3 --- /dev/null +++ b/docs/public/assets/images/vr/install/vr_headset.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b570ddcf7518a7505540210ebfda9ee49857548a88b59d8c9b0d3762c35c863c +size 55489 diff --git a/docs/public/assets/images/vr/install/vr_shortcut_icon.png b/docs/public/assets/images/vr/install/vr_shortcut_icon.png new file mode 100644 index 00000000..13891bb8 --- /dev/null +++ b/docs/public/assets/images/vr/install/vr_shortcut_icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c38987f5c027216f117cbf04e6403913b3439541fb3601796f48bfb0442a8191 +size 9964 diff --git a/docs/public/assets/images/vr/install/vr_shortcut_path.png b/docs/public/assets/images/vr/install/vr_shortcut_path.png new file mode 100644 index 00000000..2c3d4491 --- /dev/null +++ b/docs/public/assets/images/vr/install/vr_shortcut_path.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7fed7acdb649b14b7dad43b7b0b7ed1bf490a3229b1d4ce583bd83b69276643 +size 20818 diff --git a/docs/public/assets/images/vr/setup/vr-template-contents.png b/docs/public/assets/images/vr/setup/vr-template-contents.png new file mode 100644 index 00000000..198e546b --- /dev/null +++ b/docs/public/assets/images/vr/setup/vr-template-contents.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4a0e2e3b500c02c4422c84899a0016448735f0bc37d50610b3dfc2e757da90c +size 2865 diff --git a/docs/public/assets/images/vr/setup/vr-template-holograms.png b/docs/public/assets/images/vr/setup/vr-template-holograms.png new file mode 100644 index 00000000..677cfecd --- /dev/null +++ b/docs/public/assets/images/vr/setup/vr-template-holograms.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9209e7ef608a7ea35017ff2b630c275dfbe5d49f68da01026747f43e790b077 +size 26904 diff --git a/docs/public/assets/images/vr/setup/vr-template-textures.png b/docs/public/assets/images/vr/setup/vr-template-textures.png new file mode 100644 index 00000000..ce3943d8 --- /dev/null +++ b/docs/public/assets/images/vr/setup/vr-template-textures.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9e6490607e7f33c20958b2bbcb84619490c96c34bb94f8387c18f0cb38d255a +size 36211 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/edited-dimensions-1.png b/docs/public/assets/images/vr/tutorial-hand-right/edited-dimensions-1.png new file mode 100644 index 00000000..dc6f0318 --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/edited-dimensions-1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:783956ee3bafc1b77e9302554f7e303d9523482ffa748a628f3d5a72e5db849b +size 200220 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/edited-dimensions-2.png b/docs/public/assets/images/vr/tutorial-hand-right/edited-dimensions-2.png new file mode 100644 index 00000000..37c87547 --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/edited-dimensions-2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e8fc75190268cc8da44196ec1f3df40750a53fec92ccef03075413887366ff6 +size 255022 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/export-done.png b/docs/public/assets/images/vr/tutorial-hand-right/export-done.png new file mode 100644 index 00000000..aecb2f02 --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/export-done.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc994c133fb1ecf34ae90ccfcbd258ff47830fb0f3ec3fe0d7537eec342fa14a +size 968029 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/export-model-1.png b/docs/public/assets/images/vr/tutorial-hand-right/export-model-1.png new file mode 100644 index 00000000..68de6781 --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/export-model-1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24d2b5fdb84e63434de00f065c887bb9da02147361c2d5e61bb74382c7608c96 +size 149228 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/export-model-2.png b/docs/public/assets/images/vr/tutorial-hand-right/export-model-2.png new file mode 100644 index 00000000..fd0709fa --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/export-model-2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:187f57463cab740ac15470d856a3a89ad9061409e2a51765891b6228e23907ed +size 7231 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/export-texture.png b/docs/public/assets/images/vr/tutorial-hand-right/export-texture.png new file mode 100644 index 00000000..d7a2d804 --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/export-texture.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b0725b76072f7f41fcc3b93e3c1668f6c80859ed11f287d0e6649f05a1637e6 +size 36867 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/hologram-hands-steve.png b/docs/public/assets/images/vr/tutorial-hand-right/hologram-hands-steve.png new file mode 100644 index 00000000..895acbba --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/hologram-hands-steve.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:985481fc9c94898015c493cab56739c2a824136d84598aab5f85288953fc4750 +size 363 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/import-1.png b/docs/public/assets/images/vr/tutorial-hand-right/import-1.png new file mode 100644 index 00000000..1f257cef --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/import-1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e4918276b8719357e419afb70f1580c94121afa36dfadad4ba5bb27612bb474 +size 132325 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/import-2.png b/docs/public/assets/images/vr/tutorial-hand-right/import-2.png new file mode 100644 index 00000000..71f19c4a --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/import-2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e75c914012546074045de2e13cff7bb3c9533c71cade4a0a7dd001978b69020 +size 101954 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/import-3.png b/docs/public/assets/images/vr/tutorial-hand-right/import-3.png new file mode 100644 index 00000000..984741e9 --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/import-3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1225dc91788e928108ceebf4b77a22f1e28c59fa8b7aaae62b5cc280039c7e5c +size 608587 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/magnet-icon.png b/docs/public/assets/images/vr/tutorial-hand-right/magnet-icon.png new file mode 100644 index 00000000..96206836 --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/magnet-icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a24cab64fee0799844a2e23a9243c1195e071abd159292b03e9789d4d78cbb28 +size 13305 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/model-dimensions.png b/docs/public/assets/images/vr/tutorial-hand-right/model-dimensions.png new file mode 100644 index 00000000..dd03a5ac --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/model-dimensions.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af771777afaa9c92e01dbcb375267d24db60dd23b767fdcbcb7a58b3ba209f44 +size 332282 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/shading-add-texture-element.png b/docs/public/assets/images/vr/tutorial-hand-right/shading-add-texture-element.png new file mode 100644 index 00000000..694f8eac --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/shading-add-texture-element.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91853abe8fa7b51930176999f47c1ff6fabf39a094a13ae080d6162a237897e4 +size 158422 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/something b/docs/public/assets/images/vr/tutorial-hand-right/something new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/something @@ -0,0 +1 @@ + diff --git a/docs/public/assets/images/vr/tutorial-hand-right/steve-texture-stretched.png b/docs/public/assets/images/vr/tutorial-hand-right/steve-texture-stretched.png new file mode 100644 index 00000000..ed4bdaaa --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/steve-texture-stretched.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a11ad8ca6757e8e8af1b34cc2a05476411697169526c4b2be0e23686d97d3ac7 +size 153144 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/texture-base-connect.png b/docs/public/assets/images/vr/tutorial-hand-right/texture-base-connect.png new file mode 100644 index 00000000..2f26d5ee --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/texture-base-connect.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0beecab21c99c5c5706d835dbc43c5050f64481417bfd60c2660dc0c1efe6563 +size 69145 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/texture-element-complete.png b/docs/public/assets/images/vr/tutorial-hand-right/texture-element-complete.png new file mode 100644 index 00000000..2c6b0889 --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/texture-element-complete.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0a8ba5fd64c963b15bdfbc1eeed48293c54d4d52adec3bf0226b20b540a0446 +size 26478 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/texture-element.png b/docs/public/assets/images/vr/tutorial-hand-right/texture-element.png new file mode 100644 index 00000000..5a3a6c07 --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/texture-element.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f90c19b37cea4d233b005cc6d8b7adeeba16814a5ab989685197426aaa5b23a9 +size 23180 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/texture-on-model.png b/docs/public/assets/images/vr/tutorial-hand-right/texture-on-model.png new file mode 100644 index 00000000..e81a394c --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/texture-on-model.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d3c71b0c80993786247b726a2b5b2903dbf50fc10b1d0278ce9f7816dda76e3 +size 231991 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/uv-map-done.png b/docs/public/assets/images/vr/tutorial-hand-right/uv-map-done.png new file mode 100644 index 00000000..37323c9e --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/uv-map-done.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d1a3a6159b9b4a2bbb323f12c007c1776381bdc6b98eec5e4009d539bb9537b +size 151654 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/uv-map-pos.png b/docs/public/assets/images/vr/tutorial-hand-right/uv-map-pos.png new file mode 100644 index 00000000..76fffee7 --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/uv-map-pos.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1df5d25e521e184708916e5a44895121d6c84e16cf94e38ad9baa9c57e7ad8e6 +size 14610 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/uv-map-side-up.png b/docs/public/assets/images/vr/tutorial-hand-right/uv-map-side-up.png new file mode 100644 index 00000000..f12ae2c3 --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/uv-map-side-up.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7cd33cfb7170c9e3eafae4bbafc859aa496a4c5859f89044c97a7db4372af9eb +size 6009 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/uv-map-top-move-up.png b/docs/public/assets/images/vr/tutorial-hand-right/uv-map-top-move-up.png new file mode 100644 index 00000000..5c3f023b --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/uv-map-top-move-up.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffbe2100068deccea9b7ff9f994f2d0c87b2e80611132dfec195cc5632313a05 +size 20106 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/uv-map-top-selected.png b/docs/public/assets/images/vr/tutorial-hand-right/uv-map-top-selected.png new file mode 100644 index 00000000..78c7f39e --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/uv-map-top-selected.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6677f9ec29717fc97a4dc975156fae92226df079932c5e4bf83649b2a13631a9 +size 7759 diff --git a/docs/public/assets/images/vr/tutorial-hand-right/uv-map.png b/docs/public/assets/images/vr/tutorial-hand-right/uv-map.png new file mode 100644 index 00000000..b87fc25b --- /dev/null +++ b/docs/public/assets/images/vr/tutorial-hand-right/uv-map.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57f3e797f1995f6c6dcfcb785eded517f935849e30b4aa4ad79acc40d03513f6 +size 5586 diff --git a/docs/public/assets/images/world-generation/generating-custom-ores/deepslate_ore.png b/docs/public/assets/images/world-generation/generating-custom-ores/deepslate_ore.png new file mode 100644 index 00000000..8c131a81 --- /dev/null +++ b/docs/public/assets/images/world-generation/generating-custom-ores/deepslate_ore.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76a88ded0b6b2ca712690dd9463ea80e8afcef0b71b91f4a5d2e8a24422323ff +size 689257 diff --git a/docs/public/assets/images/world-generation/generating-custom-ores/stone_ore.png b/docs/public/assets/images/world-generation/generating-custom-ores/stone_ore.png new file mode 100644 index 00000000..5969f9b4 --- /dev/null +++ b/docs/public/assets/images/world-generation/generating-custom-ores/stone_ore.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71c0f6c70e4ca13e2e9bfb4dea698fa10ed9970446025b716b2814d685d647d0 +size 494056 diff --git a/docs/public/assets/images/world-generation/rock_feature.png b/docs/public/assets/images/world-generation/rock_feature.png new file mode 100644 index 00000000..48c7829c --- /dev/null +++ b/docs/public/assets/images/world-generation/rock_feature.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63f280b90a3aecce9ad85a24d05012e87d1d009333e764fbf077e79cadae6c85 +size 3651730 diff --git a/docs/public/assets/images/world-generation/structure-features/aqua_temple.png b/docs/public/assets/images/world-generation/structure-features/aqua_temple.png new file mode 100644 index 00000000..1e135744 --- /dev/null +++ b/docs/public/assets/images/world-generation/structure-features/aqua_temple.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:565034308d4de187231297246f6a7100520753299f9fb9d1cc10169428685e92 +size 944638 diff --git a/docs/public/assets/images/world-generation/structure-features/balloon.png b/docs/public/assets/images/world-generation/structure-features/balloon.png new file mode 100644 index 00000000..d52f517f --- /dev/null +++ b/docs/public/assets/images/world-generation/structure-features/balloon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7546c79253f59b30e2dd5129b6fafa59bb11fd279efa69c08371ec9508aed0d6 +size 412522 diff --git a/docs/public/assets/images/world-generation/structure-features/bunker.png b/docs/public/assets/images/world-generation/structure-features/bunker.png new file mode 100644 index 00000000..b3aebb41 --- /dev/null +++ b/docs/public/assets/images/world-generation/structure-features/bunker.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ab607d3cd66a571eb477e7a94fbd2667bf80c9c1e0470f8a64c1fc56f6c58c2 +size 445930 diff --git a/docs/public/assets/images/world-generation/structure-features/house.png b/docs/public/assets/images/world-generation/structure-features/house.png new file mode 100644 index 00000000..94a2a21e --- /dev/null +++ b/docs/public/assets/images/world-generation/structure-features/house.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2894dbc624607a13d8a827f8174502d736a7ad19e60cfc94c02ca9717f8fa0e9 +size 627202 diff --git a/docs/public/assets/images/world-generation/structure-features/raft.png b/docs/public/assets/images/world-generation/structure-features/raft.png new file mode 100644 index 00000000..5143d809 --- /dev/null +++ b/docs/public/assets/images/world-generation/structure-features/raft.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92236f9f3ccca477d684c2b5e352dad7dd27dcd59938501af7d821bbe39c8dd9 +size 1102794 diff --git a/docs/public/assets/nbt/nbt_example_file.nbt b/docs/public/assets/nbt/nbt_example_file.nbt new file mode 100644 index 00000000..d85571bd Binary files /dev/null and b/docs/public/assets/nbt/nbt_example_file.nbt differ diff --git a/docs/public/assets/packs/entities/aec/aec.mcstructure b/docs/public/assets/packs/entities/aec/aec.mcstructure new file mode 100644 index 00000000..330c30dc Binary files /dev/null and b/docs/public/assets/packs/entities/aec/aec.mcstructure differ diff --git a/docs/public/assets/packs/tutorials/attachables/method_one/attachable_guide.animation.json b/docs/public/assets/packs/tutorials/attachables/method_one/attachable_guide.animation.json new file mode 100644 index 00000000..46d75547 --- /dev/null +++ b/docs/public/assets/packs/tutorials/attachables/method_one/attachable_guide.animation.json @@ -0,0 +1,17 @@ +{ + "format_version": "1.8.0", + "animations": { + "animation.wiki.first_person_guide.right_arm.method_one": { + "loop": true, + "bones": { + "rightArm": { + "rotation": [95, -45, 115], + "position": [13.5, -10, 12] + }, + "rightItem": { + "position": [0, 0, -1] + } + } + } + } +} \ No newline at end of file diff --git a/docs/public/assets/packs/tutorials/attachables/method_one/steve_head.animation.json b/docs/public/assets/packs/tutorials/attachables/method_one/steve_head.animation.json new file mode 100644 index 00000000..ee11e0c0 --- /dev/null +++ b/docs/public/assets/packs/tutorials/attachables/method_one/steve_head.animation.json @@ -0,0 +1,24 @@ +{ + "format_version": "1.10.0", + "animations": { + "animation.steve_head.hold_first_person": { + "loop": true, + "bones": { + "steve_head": { + "rotation": [27, -39, -159], + "position": [-6, 5.5, 3.4] + } + } + }, + "animation.steve_head.hold_third_person": { + "loop": true, + "bones": { + "steve_head": { + "rotation": [-20, -32.5, 0], + "position": [-6, 10, -3], + "scale": 0.65 + } + } + } + } +} \ No newline at end of file diff --git a/docs/public/assets/packs/tutorials/attachables/method_one/steve_head.geo.json b/docs/public/assets/packs/tutorials/attachables/method_one/steve_head.geo.json new file mode 100644 index 00000000..725a778b --- /dev/null +++ b/docs/public/assets/packs/tutorials/attachables/method_one/steve_head.geo.json @@ -0,0 +1,99 @@ +{ + "format_version": "1.16.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.wiki.steve_head", + "texture_width": 64, + "texture_height": 64, + "visible_bounds_width": 13, + "visible_bounds_height": 4, + "visible_bounds_offset": [0, 1, 0] + }, + "bones": [ + // Steve head model + { + "name": "steve_head", + "parent": "rightItem", + "pivot": [0, 4, 0], + "cubes": [ + {"origin": [-4, 0, -4], "size": [8, 8, 8], "uv": [0, 0]} + ] + }, + + // Player skeleton + //! NOTE ! Remove the cubes from these bones before using this model in-game! + { + "name": "root", + "pivot": [0, 0, 0] + }, + { + "name": "waist", + "parent": "root", + "pivot": [0, 12, 0] + }, + { + "name": "body", + "parent": "waist", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 12, -2], "size": [8, 12, 4], "uv": [16, 16]} + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 24, -4], "size": [8, 8, 8], "uv": [0, 0]} + ] + }, + { + "name": "leftArm", + "parent": "body", + "pivot": [5, 22, 0], + "cubes": [ + {"origin": [4, 12, -2], "size": [4, 12, 4], "uv": [32, 48]} + ] + }, + { + "name": "leftItem", + "parent": "leftArm", + "pivot": [6, 15, 1] + }, + { + "name": "rightArm", + "parent": "body", + "pivot": [-5, 22, 0], + "cubes": [ + {"origin": [-8, 12, -2], "size": [4, 12, 4], "uv": [40, 16]} + ] + }, + { + "name": "rightItem", + "parent": "rightArm", + "pivot": [-6, 15, 1], + "locators": { + "lead_hold": [-6, 15, 1] + } + }, + { + "name": "leftLeg", + "parent": "root", + "pivot": [1.9, 12, 0], + "cubes": [ + {"origin": [-0.1, 0, -2], "size": [4, 12, 4], "uv": [16, 48]} + ] + }, + { + "name": "rightLeg", + "parent": "root", + "pivot": [-1.9, 12, 0], + "cubes": [ + {"origin": [-3.9, 0, -2], "size": [4, 12, 4], "uv": [0, 16]} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/public/assets/packs/tutorials/attachables/method_two/attachable_guide.animation.json b/docs/public/assets/packs/tutorials/attachables/method_two/attachable_guide.animation.json new file mode 100644 index 00000000..6344ffc9 --- /dev/null +++ b/docs/public/assets/packs/tutorials/attachables/method_two/attachable_guide.animation.json @@ -0,0 +1,28 @@ +{ + "format_version": "1.10.0", + "animations": { + "animation.wiki.third_person_guide": { + "loop": true, + "bones": { + "rightItem": { + "position": [-6, -9, -1] + }, + "leftItem": { + "position": [6, -9, -1] + } + } + }, + "animation.wiki.first_person_guide.right_hand": { + "loop": true, + "bones": { + "rightArm": { + "rotation": [95, -45, 115], + "position": [13.5, -10, 12] + }, + "rightItem": { + "position": [-6, -9, -1] + } + } + } + } +} \ No newline at end of file diff --git a/docs/public/assets/packs/tutorials/attachables/method_two/player_skeleton.geo.json b/docs/public/assets/packs/tutorials/attachables/method_two/player_skeleton.geo.json new file mode 100644 index 00000000..01f2013a --- /dev/null +++ b/docs/public/assets/packs/tutorials/attachables/method_two/player_skeleton.geo.json @@ -0,0 +1,113 @@ +{ + "format_version": "1.16.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.wiki.player_skeleton", + "texture_width": 64, + "texture_height": 64, + "visible_bounds_width": 13, + "visible_bounds_height": 4, + "visible_bounds_offset": [0, 1, 0] + }, + "bones": [ + + // Copy from here to line 106 + { + "name": "root", + "pivot": [0, 0, 0] + }, + { + "name": "waist", + "parent": "root", + "pivot": [0, 12, 0] + }, + { + "name": "body", + "parent": "waist", + "pivot": [0, 24, 0], + "cubes": [ + { + "origin": [-4, 12, -2], + "size": [8, 12, 4], + "uv": [16, 16] + } + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 24, 0], + "cubes": [ + { + "origin": [-4, 24, -4], + "size": [8, 8, 8], + "uv": [0, 0] + } + ] + }, + { + "name": "leftArm", + "parent": "body", + "pivot": [5, 22, 0], + "cubes": [ + { + "origin": [4, 12, -2], + "size": [4, 12, 4], + "uv": [32, 48] + } + ] + }, + { + "name": "leftItem", + "parent": "leftArm", + "pivot": [6, 15, 1] + }, + { + "name": "rightArm", + "parent": "body", + "pivot": [-5, 22, 0], + "cubes": [ + { + "origin": [-8, 12, -2], + "size": [4, 12, 4], + "uv": [40, 16] + } + ] + }, + { + "name": "rightItem", + "parent": "rightArm", + "pivot": [-6, 15, 1] + }, + { + "name": "leftLeg", + "parent": "root", + "pivot": [1.9, 12, 0], + "cubes": [ + { + "origin": [-0.1, 0, -2], + "size": [4, 12, 4], + "uv": [16, 48] + } + ] + }, + { + "name": "rightLeg", + "parent": "root", + "pivot": [-1.9, 12, 0], + "cubes": [ + { + "origin": [-3.9, 0, -2], + "size": [4, 12, 4], + "uv": [0, 16] + } + ] + } + + // End of selection + + ] + } + ] +} \ No newline at end of file diff --git a/docs/public/assets/packs/tutorials/attachables/method_two/skeleton_head.animation.json b/docs/public/assets/packs/tutorials/attachables/method_two/skeleton_head.animation.json new file mode 100644 index 00000000..b652470f --- /dev/null +++ b/docs/public/assets/packs/tutorials/attachables/method_two/skeleton_head.animation.json @@ -0,0 +1,24 @@ +{ + "format_version": "1.10.0", + "animations": { + "animation.skeleton_head.hold_first_person": { + "loop": true, + "bones": { + "skeleton_head": { + "rotation": [27, -39, -159], + "position": [0, 14.5, 2.4] + } + } + }, + "animation.skeleton_head.hold_third_person": { + "loop": true, + "bones": { + "skeleton_head": { + "rotation": [-20, -32.5, 0], + "position": [0, 19, -4], + "scale": 0.65 + } + } + } + } +} \ No newline at end of file diff --git a/docs/public/assets/packs/tutorials/attachables/method_two/skeleton_head.geo.json b/docs/public/assets/packs/tutorials/attachables/method_two/skeleton_head.geo.json new file mode 100644 index 00000000..2d59cc4d --- /dev/null +++ b/docs/public/assets/packs/tutorials/attachables/method_two/skeleton_head.geo.json @@ -0,0 +1,26 @@ +{ + "format_version": "1.16.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.wiki.skeleton_head", + "texture_width": 64, + "texture_height": 64, + "visible_bounds_width": 13, + "visible_bounds_height": 4, + "visible_bounds_offset": [0, 1, 0] + }, + "bones": [ + // Skeleton head model + { + "name": "skeleton_head", + "binding": "query.item_slot_to_bone_name(context.item_slot)", + "pivot": [0, 4, 0], + "cubes": [ + {"origin": [-4, 0, -4], "size": [8, 8, 8], "uv": [0, 0]} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/public/assets/packs/tutorials/blocks/ore-loot-tables/ore_xp_reward.mcstructure b/docs/public/assets/packs/tutorials/blocks/ore-loot-tables/ore_xp_reward.mcstructure new file mode 100644 index 00000000..b6dcc769 Binary files /dev/null and b/docs/public/assets/packs/tutorials/blocks/ore-loot-tables/ore_xp_reward.mcstructure differ diff --git a/docs/public/assets/packs/visuals/animated-entity-texture/entity.material b/docs/public/assets/packs/visuals/animated-entity-texture/entity.material new file mode 100644 index 00000000..bec6740c --- /dev/null +++ b/docs/public/assets/packs/visuals/animated-entity-texture/entity.material @@ -0,0 +1,1423 @@ +{ + "materials":{ + "version":"1.0.0", + "entity_static":{ + "vertexShader":"shaders/entity.vertex", + "vrGeometryShader":"shaders/entity.geometry", + "fragmentShader":"shaders/entity.fragment", + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ], + "variants":[ + { + "skinning":{ + "+defines":[ + "USE_SKINNING" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"BoneId0" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ] + } + }, + { + "skinning_color":{ + "+defines":[ + "USE_SKINNING", + "USE_OVERLAY" + ], + "+states":[ + "Blending" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"BoneId0" + }, + { + "field":"Color" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ] + } + } + ], + "msaaSupport":"Both", + "+samplerStates":[ + { + "samplerIndex":0, + "textureFilter":"Point" + } + ] + }, + "entity_flat_color_line":{ + "vertexShader":"shaders/position.vertex", + "vrGeometryShader":"shaders/position.geometry", + "fragmentShader":"shaders/current_color.fragment", + "msaaSupport":"Both", + "+defines":[ + "LINE_STRIP" + ], + "primitiveMode":"Line", + "vertexFields":[ + { + "field":"Position" + } + ] + }, + "entity_loyalty_rope:entity_glint":{ + "+states":[ + "DisableCulling" + ] + }, + "entity:entity_static":{ + "+defines":[ + "USE_OVERLAY" + ], + "msaaSupport":"Both" + }, + "opaque_block:entity_static":{ + "msaaSupport":"Both" + }, + "opaque_block_color:opaque_block":{ + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"Color" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ], + "variants":[ + { + "skinning":{ + "+defines":[ + "USE_SKINNING" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"BoneId0" + }, + { + "field":"Color" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ] + } + } + ] + }, + "opaque_block_color_uv2:opaque_block":{ + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"UV1" + }, + { + "field":"Color" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ], + "variants":[ + { + "skinning":{ + "+defines":[ + "USE_SKINNING" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"BoneId0" + }, + { + "field":"UV1" + }, + { + "field":"Color" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ] + } + } + ] + }, + "alpha_block:entity_static":{ + "msaaSupport":"Both" + }, + "alpha_block_color:alpha_block":{ + "+defines":[ + "ALPHA_TEST" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"Color" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ], + "variants":[ + { + "skinning":{ + "+defines":[ + "USE_SKINNING" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"BoneId0" + }, + { + "field":"Color" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ] + } + } + ] + }, + "entity_nocull:entity":{ + "+states":[ + "DisableCulling" + ] + }, + "entity_change_color:entity_nocull":{ + "+defines":[ + "USE_OVERLAY", + "USE_COLOR_MASK" + ] + }, + "entity_alphatest:entity_nocull":{ + "+defines":[ + "ALPHA_TEST" + ], + "+samplerStates":[ + { + "samplerIndex":1, + "textureWrap":"Repeat" + } + ], + "msaaSupport":"Both" + }, + "entity_alphatest_one_sided:entity":{ + "+defines":[ + "ALPHA_TEST" + ], + "+samplerStates":[ + { + "samplerIndex":1, + "textureWrap":"Repeat" + } + ], + "msaaSupport":"Both" + }, + "map:entity_alphatest":{ + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"Color" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ], + "variants":[ + { + "skinning":{ + "+defines":[ + "USE_SKINNING" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"BoneId0" + }, + { + "field":"Color" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ] + } + } + ] + }, + "on_screen_effect:entity_alphatest":{ + "+defines":[ + "COLOR_BASED" + ], + "+states":[ + "Blending" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"Normal" + }, + { + "field":"Color" + }, + { + "field":"UV0" + } + ] + }, + "item_in_hand_entity_alphatest:entity_alphatest":{ + "msaaSupport":"Both" + }, + "item_in_hand_entity_alphatest_color:item_in_hand_entity_alphatest":{ + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"Color" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ], + "variants":[ + { + "skinning":{ + "+defines":[ + "USE_SKINNING" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"BoneId0" + }, + { + "field":"Color" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ] + } + } + ] + }, + "entity_alphablend:entity":{ + "+states":[ + "Blending" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"Color" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ], + "variants":[ + { + "skinning":{ + "+defines":[ + "USE_SKINNING" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"BoneId0" + }, + { + "field":"Color" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ] + } + } + ], + "msaaSupport":"Both" + }, + "entity_alphablend_nocolor:entity_alphablend":{ + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ], + "variants":[ + { + "skinning":{ + "+defines":[ + "USE_SKINNING" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"BoneId0" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ] + } + } + ] + }, + "guardian_ghost:entity_alphablend_nocolor":{ + "+defines":[ + "USE_COLOR_MASK" + ] + }, + "entity_emissive:entity":{ + "+defines":[ + "USE_EMISSIVE" + ] + }, + "glow_squid:entity_emissive":{}, + "entity_emissive_alpha:entity_nocull":{ + "+defines":[ + "ALPHA_TEST", + "USE_EMISSIVE" + ] + }, + "entity_emissive_alpha_one_sided:entity":{ + "+defines":[ + "ALPHA_TEST", + "USE_EMISSIVE" + ] + }, + "entity_custom:entity":{ + "+states":[ + "Blending" + ], + "+defines":[ + "ALPHA_TEST", + "Blending", + "USE_OVERLAY", + "USE_MASK" + ] + }, + "item_in_hand:entity":{ + "+defines":[ + "COLOR_BASED", + "NO_TEXTURE", + "ITEM_IN_HAND" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"Normal" + }, + { + "field":"Color" + }, + { + "field":"UV0" + } + ], + "variants":[ + { + "skinning":{ + "+defines":[ + "USE_SKINNING" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"BoneId0" + }, + { + "field":"Normal" + }, + { + "field":"Color" + }, + { + "field":"UV0" + } + ] + } + } + ], + "msaaSupport":"Both" + }, + "item_in_hand_multicolor_tint:item_in_hand":{ + "+defines":[ + "COLOR_BASED", + "NO_TEXTURE", + "ITEM_IN_HAND", + "MULTI_COLOR_TINT" + ], + "-defines":[ + "USE_OVERLAY" + ] + }, + "map_decoration":{ + "+defines":[ + "ALPHA_TEST", + "TINTED" + ], + "vertexShader":"shaders/entity.vertex", + "vrGeometryShader":"shaders/entity.geometry", + "fragmentShader":"shaders/entity.fragment", + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ], + "variants":[ + { + "skinning":{ + "+defines":[ + "USE_SKINNING" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"BoneId0" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ] + } + } + ], + "msaaSupport":"Both", + "+samplerStates":[ + { + "samplerIndex":0, + "textureFilter":"Point" + } + ] + }, + "map_marker":{ + "+defines":[ + "ALPHA_TEST" + ], + "vertexShader":"shaders/color_uv.vertex", + "vrGeometryShader":"shaders/color_uv.geometry", + "fragmentShader":"shaders/color_texture.fragment", + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"Normal" + }, + { + "field":"Color" + }, + { + "field":"UV0" + } + ], + "variants":[ + { + "skinning":{ + "+defines":[ + "USE_SKINNING" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"BoneId0" + }, + { + "field":"Normal" + }, + { + "field":"Color" + }, + { + "field":"UV0" + } + ] + } + } + ], + "msaaSupport":"Both", + "+samplerStates":[ + { + "samplerIndex":0, + "textureFilter":"Point" + } + ] + }, + "charged_creeper:entity_static":{ + "+defines":[ + "USE_UV_ANIM", + "ALPHA_TEST" + ], + "+states":[ + "Blending", + "DisableCulling" + ], + "blendSrc":"One", + "blendDst":"One", + "+samplerStates":[ + { + "samplerIndex":0, + "textureWrap":"Repeat" + } + ] + }, + "item_in_hand_glint:item_in_hand":{ + "+defines":[ + "GLINT" + ], + "+samplerStates":[ + { + "samplerIndex":0, + "textureFilter":"Point" + }, + { + "samplerIndex":1, + "textureWrap":"Repeat" + } + ] + }, + "entity_glint:entity":{ + "+defines":[ + "GLINT" + ], + "+samplerStates":[ + { + "samplerIndex":1, + "textureWrap":"Repeat" + } + ] + }, + "entity_alphatest_glint:entity_alphatest":{ + "+defines":[ + "GLINT" + ], + "+samplerStates":[ + { + "samplerIndex":1, + "textureWrap":"Repeat" + } + ] + }, + "entity_alphatest_glint_item:entity_alphatest":{ + "+defines":[ + "GLINT" + ], + "+samplerStates":[ + { + "samplerIndex":1, + "textureWrap":"Repeat" + } + ] + }, + "entity_change_color_glint:entity_glint":{ + "+defines":[ + "USE_COLOR_MASK" + ] + }, + "entity_alphatest_change_color:entity_change_color":{ + "+states":[ + "DisableAlphaWrite" + ], + "+defines":[ + "ALPHA_TEST", + "USE_COLOR_MASK" + ], + "+samplerStates":[ + { + "samplerIndex":1, + "textureWrap":"Repeat" + } + ] + }, + "entity_alphatest_change_color_glint:entity_change_color":{ + "+defines":[ + "ALPHA_TEST", + "USE_COLOR_MASK", + "GLINT" + ], + "+samplerStates":[ + { + "samplerIndex":1, + "textureWrap":"Repeat" + } + ] + }, + "entity_alphatest_multicolor_tint:entity":{ + "+states":[ + "DisableAlphaWrite" + ], + "+defines":[ + "ALPHA_TEST", + "MULTI_COLOR_TINT" + ], + "+samplerStates":[ + { + "samplerIndex":1, + "textureWrap":"Repeat" + } + ] + }, + "beacon_beam:entity_nocull":{ + "+defines":[ + "COLOR_BASED", + "USE_COLOR_BLEND", + "USE_UV_ANIM" + ], + "+samplerStates":[ + { + "samplerIndex":0, + "textureWrap":"Repeat" + } + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"Color" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ], + "variants":[ + { + "skinning":{ + "+defines":[ + "USE_SKINNING" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"BoneId0" + }, + { + "field":"Color" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ] + } + } + ] + }, + "beacon_beam_transparent:entity":{ + "+states":[ + "Blending", + "DisableCulling", + "DisableDepthWrite", + "DisableAlphaWrite" + ], + "vertexShader":"shaders/color_uv.vertex", + "vrGeometryShader":"shaders/color_uv.geometry", + "fragmentShader":"shaders/color_texture.fragment", + "blendSrc":"SourceAlpha", + "blendDst":"OneMinusSrcAlpha", + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"Color" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ], + "variants":[ + { + "skinning":{ + "+defines":[ + "USE_SKINNING" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"BoneId0" + }, + { + "field":"Color" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ] + } + } + ] + }, + "conduit_wind:entity_alphatest":{ + "+defines":[ + "USE_UV_ANIM" + ] + }, + "entity_multitexture:entity":{ + "+defines":[ + "USE_MULTITEXTURE" + ], + "+samplerStates":[ + { + "samplerIndex":0, + "textureWrap":"Clamp" + }, + { + "samplerIndex":1, + "textureWrap":"Clamp" + }, + { + "samplerIndex":2, + "textureWrap":"Clamp" + } + ] + }, + "entity_multitexture_color_mask:entity_multitexture":{ + "+defines":[ + "COLOR_SECOND_TEXTURE" + ] + }, + "entity_multitexture_alpha_test:entity_multitexture":{ + "+states":[ + "DisableCulling" + ], + "+defines":[ + "ALPHA_TEST" + ] + }, + "entity_multitexture_multiplicative_blend:entity":{ + "+states":[ + "DisableCulling" + ], + "+samplerStates":[ + { + "samplerIndex":0, + "textureWrap":"Clamp" + }, + { + "samplerIndex":1, + "textureWrap":"Clamp" + } + ], + "+defines":[ + "ALPHA_TEST", + "USE_COLOR_MASK", + "MULTIPLICATIVE_TINT", + "MULTIPLICATIVE_TINT_COLOR", + "USE_OVERLAY" + ] + }, + "entity_multitexture_alpha_test_color_mask:entity_multitexture_color_mask":{ + "+states":[ + "DisableCulling" + ], + "+defines":[ + "ALPHA_TEST" + ] + }, + "entity_lead_base:entity":{ + "+states":[ + "Blending", + "DisableCulling" + ] + }, + "entity_multitexture_masked:entity_alphatest":{ + "+defines":[ + "MASKED_MULTITEXTURE" + ], + "+samplerStates":[ + { + "samplerIndex":0, + "textureWrap":"Clamp" + }, + { + "samplerIndex":1, + "textureWrap":"Clamp" + } + ] + }, + "moving_block":{ + "vertexShader":"shaders/renderchunk.vertex", + "vrGeometryShader":"shaders/renderchunk.geometry", + "fragmentShader":"shaders/renderchunk.fragment", + "+defines":[ + "LOW_PRECISION", + "TEXEL_AA", + "ATLAS_TEXTURE", + "AS_ENTITY_RENDERER" + ], + "+samplerStates":[ + { + "samplerIndex":0, + "textureFilter":"TexelAA" + }, + { + "samplerIndex":1, + "textureFilter":"Bilinear" + } + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"Color" + }, + { + "field":"UV1" + }, + { + "field":"UV0" + } + ], + "variants":[ + { + "skinning":{ + "+defines":[ + "USE_SKINNING" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"BoneId0" + }, + { + "field":"Color" + }, + { + "field":"UV1" + }, + { + "field":"UV0" + } + ] + } + } + ], + "msaaSupport":"Both" + }, + "moving_block_seasons:moving_block":{ + "+defines":[ + "SEASONS" + ], + "+samplerStates":[ + { + "samplerIndex":0, + "textureFilter":"TexelAA" + }, + { + "samplerIndex":1, + "textureFilter":"Bilinear" + }, + { + "samplerIndex":2, + "textureFilter":"Point" + } + ] + }, + "moving_block_alpha_seasons:moving_block_seasons":{ + "+defines":[ + "ALPHA_TEST" + ], + "+states":[ + "DisableCulling", + "EnableAlphaToCoverage" + ] + }, + "moving_block_alpha_single_side:moving_block":{ + "+defines":[ + "ALPHA_TEST" + ], + "+states":[ + "EnableAlphaToCoverage" + ] + }, + "moving_block_alpha:moving_block_alpha_single_side":{ + "+states":[ + "DisableCulling" + ], + // z-fighting fix + "depthBias":100.0, + "slopeScaledDepthBias":0.1, + "depthBiasOGL":0.5, + "slopeScaledDepthBiasOGL":0.5 + }, + "moving_block_double_side:moving_block":{ + "+states":[ + "DisableCulling" + ] + }, + "moving_block_blend:moving_block":{ + "+defines":[ + "BLEND" + ], + "+states":[ + "Blending" + ] + }, + "entity_beam:entity_nocull":{ + "+defines":[ + "USE_UV_ANIM", + "ALPHA_TEST", + "COLOR_BASED" + ], + "+samplerStates":[ + { + "samplerIndex":0, + "textureWrap":"Repeat" + } + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"Color" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ], + "variants":[ + { + "skinning":{ + "+defines":[ + "USE_SKINNING" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"BoneId0" + }, + { + "field":"Color" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ] + } + } + ] + }, + "entity_beam_additive:entity_alphablend":{ + "+defines":[ + "COLOR_BASED", + "NO_TEXTURE" + ], + "-defines":[ + "USE_OVERLAY" + ], + "+states":[ + "Blending", + "DisableDepthWrite" + ], + "blendSrc":"SourceAlpha", + "blendDst":"One" + }, + "entity_dissolve_layer0:entity":{ + "+defines":[ + "TINTED_ALPHA_TEST" + ], + "+states":[ + "DisableColorWrite" + ] + }, + "entity_dissolve_layer1:entity":{ + "depthFunc":"Equal", + "+defines":[ + "ALPHA_TEST" + ], + "-defines":[ + "USE_OVERLAY" + ] + }, + "banner":{ + "+defines":[ + "ENABLE_FOG", + "ENABLE_LIGHT" + ], + "vertexShader":"shaders/banner.vertex", + "vrGeometryShader":"shaders/banner.geometry", + "fragmentShader":"shaders/banner.fragment", + "depthFunc":"LessEqual", + "+states":[ + "Blending" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"Color" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ], + "variants":[ + { + "skinning":{ + "+defines":[ + "USE_SKINNING" + ], + "vertexFields":[ + { + "field":"Position" + }, + { + "field":"BoneId0" + }, + { + "field":"Color" + }, + { + "field":"Normal" + }, + { + "field":"UV0" + } + ] + } + } + ], + "msaaSupport":"Both", + "+samplerStates":[ + { + "samplerIndex":0, + "textureFilter":"Point" + } + ] + }, + "banner_pole:banner":{ + "+defines":[ + "ENABLE_FOG", + "ENABLE_LIGHT", + "DISABLE_TINTING" + ], + "+states":[] + }, + "agent:entity":{}, + "armor:entity_alphatest":{}, + "armor_leather:entity_alphatest_change_color":{}, + "armor_enchanted:entity_alphatest_glint":{}, + "armor_leather_enchanted:entity_alphatest_change_color_glint":{}, + "armor_stand:entity_alphatest":{}, + "arrow:entity_alphatest":{}, + "axolotl:entity_alphatest":{}, + "axolotl_limbs:entity_alphatest_one_sided":{}, + "bat:entity_alphatest":{}, + "bed:entity_alphatest":{}, + "bee:entity_alphatest":{}, + "bell:entity":{}, + "blaze_head:entity_emissive_alpha":{}, + "blaze_body:entity_emissive":{}, + "boat:entity":{}, + "chalkboard:entity":{}, + "chest:entity":{}, + "chicken:entity":{}, + "chicken_legs:entity_alphatest":{}, + "cow:entity":{}, + "creeper:entity":{}, + "dragon_head:entity_alphatest":{}, + "dragon_head_glint:entity_glint":{}, + "drowned:entity_emissive_alpha":{}, + "egg:entity_alphatest":{}, + "elytra:entity_alphatest":{}, + "elytra_glint:entity_alphatest_glint":{}, + "enchanting_table_book:entity":{}, + "ender_crystal:entity_alphatest":{}, + "ender_dragon:entity_emissive_alpha_one_sided":{}, + "enderman:entity_emissive_alpha":{}, + "enderman_invisible:entity_emissive_alpha":{ + "+defines":[ + "USE_ONLY_EMISSIVE" + ] + }, + "endermite:entity_alphatest":{}, + "eye_of_ender_signal:entity_alphatest":{}, + "ender_pearl:entity_alphatest":{}, + "evoker:entity_alphatest":{}, + "fang:entity_alphatest":{}, + "fireball:entity_alphatest":{}, + "fireworks_rocket:entity_alphatest":{}, + "fishing_hook:entity_alphatest":{}, + "fox:entity":{}, + "frog:entity_alphatest":{}, + "cat:entity_alphatest_change_color":{}, + "clownfish:entity_alphatest":{}, + "cod:entity_alphatest":{}, + "conduit:entity_alphatest":{}, + "pufferfish:entity_alphatest":{}, + "salmon:entity_alphatest":{}, + "tropicalfish:entity_multitexture_multiplicative_blend":{}, + "ghast:entity_emissive_alpha":{}, + "guardian:entity_alphatest":{}, + "horse:entity_alphatest":{}, + "horse_leather_armor:entity_multitexture_alpha_test_color_mask":{}, + "husk:entity_alphatest":{}, + "husk_clothes:entity_alphatest":{}, + "ravager:entity_alphatest":{}, + "iron_golem:entity_alphatest":{ + "depthFunc":"LessEqual" + }, + "magma_cube:entity_emissive_alpha":{}, + "leash_knot:entity":{}, + "lingering_potion_enchanted:entity_alphatest_glint":{}, + "llama:entity_multitexture":{}, + "llama_spit:entity":{}, + "minecart:entity_alphatest":{}, + "mob_head:entity_alphatest":{}, + "mob_head_glint:entity_glint":{}, + "mooshroom:entity":{}, + "mooshroom_mushrooms:entity_alphatest":{}, + "npc:entity_alphatest":{}, + "ocelot:entity_alphatest":{}, + "parrot:entity_alphatest":{}, + "pig:entity":{}, + "hoglin:entity_alphatest":{}, + "zoglin:entity_alphatest":{}, + "shield:entity":{}, + "shield_glint:entity_glint":{}, + "trident:entity":{}, + "trident_riptide:entity_alphatest":{}, + "trident_glint:entity_glint":{}, + "piston_arm:entity":{}, + "player:entity":{}, + "player_alphatest:entity_alphatest":{}, + "polar_bear:entity":{}, + "panda:entity":{}, + "rabbit:entity":{}, + "sheep:entity_change_color":{}, + "shulker:entity_alphatest":{}, + "shulker_box:entity_alphatest":{}, + "shulker_bullet:entity_alphatest":{}, + "sign:entity_static":{}, + "silverfish:entity":{}, + "silverfish_layers:entity_alphatest":{}, + "skeleton:entity_alphatest":{}, + "pillager:entity_alphatest":{}, + "piglin:entity_alphatest":{}, + "piglin_brute:entity_alphatest":{}, + "goat:entity_alphatest":{}, + "slime:entity_alphatest":{}, + "slime_outer:entity":{ + "+states":[ + "Blending" + ] + }, + "snowball:entity_alphatest":{}, + "snow_golem:entity":{}, + "snow_golem_pumpkin:entity":{}, + "spider:entity_emissive_alpha":{}, + "spider_invisible:entity_emissive_alpha":{ + "+defines":[ + "USE_ONLY_EMISSIVE" + ] + }, + "splash_potion_enchanted:entity_alphatest_glint":{}, + "squid:entity":{}, + "dolphin:entity":{}, + "phantom:entity_emissive_alpha":{}, + "phantom_invisible:entity_emissive_alpha":{ + "+defines":[ + "USE_ONLY_EMISSIVE" + ] + }, + "stray:entity_alphatest":{}, + "stray_clothes:entity_alphatest":{}, + "strider:entity_alphatest":{}, + "tadpole:entity_alphatest":{}, + "turtle:entity":{}, + "camera:entity":{}, + "vex:entity_alphatest":{}, + "villager:entity_alphatest":{}, + "villager_v2:entity_alphatest":{ + "depthFunc":"LessEqual" + }, + "villager_v2_masked:entity_multitexture_masked":{ + "depthFunc":"LessEqual" + }, + "vindicator:entity_alphatest":{}, + "wandering_trader:entity_alphatest":{}, + "witch:entity_alphatest":{}, + "wither_boss:entity_alphatest":{}, + "wither_boss_armor:charged_creeper":{}, + "wither_skull:mob_head":{}, + "wolf:entity_change_color":{}, + "xp_bottle:entity_alphatest_glint":{}, + "zombie:entity_alphatest":{}, + "zombie_villager:entity_alphatest":{}, + "zombie_villager_v2:entity_alphatest":{ + "depthFunc":"LessEqual" + }, + "zombie_villager_v2_masked:entity_multitexture_masked":{ + "depthFunc":"LessEqual" + }, + "player_animated:entity_alphatest":{ + "+defines":[ + "USE_UV_ANIM" + ] + }, + "experience_orb:entity":{ + "+defines":[ + "USE_UV_ANIM", + "ALPHA_TEST", + "Blending", + "USE_OVERLAY", + "USE_MASK" + ] + } + } +} \ No newline at end of file diff --git a/docs/public/assets/packs/visuals/skin-packs/equip_button_fix.mcpack b/docs/public/assets/packs/visuals/skin-packs/equip_button_fix.mcpack new file mode 100644 index 00000000..2a180d22 Binary files /dev/null and b/docs/public/assets/packs/visuals/skin-packs/equip_button_fix.mcpack differ diff --git a/docs/public/assets/packs/visuals/structure-presentation/3d-export-fix.mcpack b/docs/public/assets/packs/visuals/structure-presentation/3d-export-fix.mcpack new file mode 100644 index 00000000..b89b5e1d Binary files /dev/null and b/docs/public/assets/packs/visuals/structure-presentation/3d-export-fix.mcpack differ diff --git a/docs/public/robots.txt b/docs/public/robots.txt new file mode 100644 index 00000000..14267e90 --- /dev/null +++ b/docs/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Allow: / \ No newline at end of file diff --git a/docs/wiki/0-欢迎.md b/docs/wiki/0-欢迎.md index 7c5dda06..f80b97d1 100644 --- a/docs/wiki/0-欢迎.md +++ b/docs/wiki/0-欢迎.md @@ -5,13 +5,25 @@ next: false # 欢迎来到 Wiki -由于中国版官网的教程写的太差了,因此我们计划使用简洁清晰的风格,重新编写基础入门教程,方便大家查询和学习哦!同时也期待大家共同贡献和维护本Wiki~ +由于中国版官网的教程写的过于冗长,因此我们计划使用简洁清晰的风格,重新编写基础教程,方便大家查询和学习哦! + +除了原创内容,我们经过授权,从 [Bedrock Wiki](https://wiki.bedrock.dev) 镜像且翻译了一批教程,希望能够帮助到大家。 diff --git a/docs/wiki/2-方块/1-基础/block-components.md b/docs/wiki/2-方块/1-基础/block-components.md new file mode 100644 index 00000000..89922a56 --- /dev/null +++ b/docs/wiki/2-方块/1-基础/block-components.md @@ -0,0 +1,540 @@ +--- +title: 方块组件 +description: 方块组件用于改变方块在世界中的外观和功能。 +category: 常规 +nav_order: 2 +mentions: + - SirLich + - solvedDev + - yanasakana + - SmokeyStack + - MedicalJewel105 + - aexer0e + - Chikorita-Lover + - Luthorius + - TheDoctor15 + - XxPoggyisLitxX + - TheItsNameless + - ThomasOrs + - Kaioga5 + - QuazChick +--- + +# 方块组件 Components + + + +:::tip 格式版本 & 最低引擎版本 `1.20.30` +在创建自定义方块时使用最新格式版本可获取最新功能和改进。本wiki旨在提供关于自定义方块的最新信息,当前目标格式版本为`1.20.30`。 +::: +:::danger +每个组件在同一时间只能有一个实例生效。重复的组件将被最新的[permutation(条件置换)](/blocks/block-permutations)覆盖。 +::: + +需要事件触发组件?[点击此处查看!](/blocks/block-events#event-triggers) + +## 应用组件 + +方块组件用于改变方块在世界中的外观和功能。它们被应用在`minecraft:block`或其[permutation(条件置换)](/blocks/block-permutations)的`components`子项中。 + +::: code-group + +```json [BP/blocks/lamp.json] +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:lamp", + "menu_category": { + "category": "items" + } + }, + "components": { + "minecraft:light_dampening": 0, + "minecraft:light_emission": 15, + "minecraft:map_color": [210, 200, 190], + "minecraft:geometry": "geometry.lamp", + "minecraft:material_instances": { + "*": { + "texture": "lamp" + }, + "shade": { + "texture": "lamp_shade" + } + } + } + } +} +``` +::: + +## 碰撞箱 + +设置方块实体/粒子的碰撞箱,单位为像素 - 必须包含在基础方块单位内(16×16×16)。 + +- 原点从方块的水平中点和垂直底部开始计算,向东北方向延伸。 +- 尺寸从原点开始计算,向东北方向延伸。 + +**也可定义为布尔值:** + +- `false`时实体可穿过方块 +- `true`时设置单位大小的立方体作为碰撞箱 + +**默认值:** `true` + +_自实验性玩法`Holiday Creator Features`中发布,适用于格式版本1.19.50及以上。_ + +::: code-group +```json [minecraft:block > components] +"minecraft:collision_box": { + "origin": [-8, 0, -8], + "size": [16, 16, 16] +} +``` +::: + +::: code-group +```json [minecraft:block > components] +"minecraft:collision_box": false +``` +::: + +## 工作台 + +将方块变为工作台,交互时打开合成界面。 + +_自实验性玩法`Holiday Creator Features`中发布,适用于格式版本1.19.50及以上。_ + +::: code-group +```json [minecraft:block > components] +"minecraft:crafting_table": { + "table_name": "Wiki工作台", // 在合成菜单中显示的名称,可本地化 + "crafting_tags": ["crafting_table", "wiki_workbench"] // 用于配方文件的标签 +} +``` +::: + +## 可被爆炸破坏 + +设置方块对爆炸破坏的抗性。 + +**也可定义为布尔值:** + +- `false`时不可被爆炸破坏 +- `true`时爆炸抗性为`0` + +**默认值:** `true` + +::: code-group +```json [minecraft:block > components] +"minecraft:destructible_by_explosion": { + "explosion_resistance": 20 +} +``` +::: + +::: code-group +```json [minecraft:block > components] +"minecraft:destructible_by_explosion": false // 不可被爆炸破坏 +``` +::: + +## 可被挖掘破坏 + +设置挖掘破坏所需时间。 + +**也可定义为布尔值:** + +- `false`时不可被挖掘破坏 +- `true`时可被瞬间破坏 + +**默认值:** `true` + +::: code-group +```json [minecraft:block > components] +"minecraft:destructible_by_mining": { + "seconds_to_destroy": 0.5 +} +``` +::: + +::: code-group +```json [minecraft:block > components] +"minecraft:destructible_by_mining": false // 不可被挖掘破坏 +``` +::: + +## 显示名称 + +设置当鼠标悬停在物品栏和快捷栏中的方块时显示的文本对应的语言文件键名。 + +如果给定的字符串没有对应的翻译,将直接显示原始字符串。 + +**注意**:在某些情况下Minecraft可能会回退使用`tile.<标识符>.name`。 + +_自实验性玩法`Holiday Creator Features`中发布,适用于格式版本1.19.60及以上。_ + +::: code-group + +```json [minecraft:block > components] +"minecraft:display_name": "tile.example_block.red.name" +``` +::: + +::: code-group + +```c [RP/texts/zh_CN.lang] +tile.example_block.red.name=红色示例方块 +``` +::: + +## 可燃性 + +设置方块的可燃性参数。 + +**也可定义为布尔值:** + +- `false`时方块不会着火或被火焰破坏 +- `true`时将使用下方示例值 + +**默认值:** `false` + +::: code-group + +```json [minecraft:block > components] +"minecraft:flammable": { + "catch_chance_modifier": 5, // 影响方块在火源旁被点燃的几率 + "destroy_chance_modifier": 20 // 影响方块在燃烧时被火焰破坏的几率 +} +``` +::: + +::: code-group + +```json [minecraft:block > components] +"minecraft:flammable": false // 默认值 - 方块不会自然引燃,但可被直接点燃 +``` +::: + +## 摩擦力 + +设置方块表面摩擦力(0.0至0.9的小数)。数值越小表面越滑。 + +**原版示例值:** + +- 泥土:`0.4` +- 冰:`0.02` + +**默认值:** `0.4` + +::: code-group + +```json [minecraft:block > components] +"minecraft:friction": 0.4 +``` +::: + +## 几何模型 + +设置方块使用的模型。当与其他方块相交时,模型不会应用面剔除。 + +**自定义方块模型限制:** + +- 模型尺寸限制为30×30×30像素 +- 每个轴上至少要有1像素位于基础16×16×16方块内 +- 模型的位置绝对边界为原点各方向30像素。只要遵守第二条规则,模型可放置在这些边界内的任意位置 + +**启用时:** + +- 方块变为可呼吸 +- 方块不再传导红石信号 + +_自实验性玩法`Holiday Creator Features`中发布,适用于格式版本1.19.40及以上。_ + +::: code-group + +```json [minecraft:block > components] +"minecraft:geometry": "geometry.example_block" // 来自'RP/models/entity'或'RP/models/blocks'文件夹的几何模型标识符 +``` +::: + +--- + +### 骨骼可见性 + +隐藏模型中骨骼的直接子立方体。 + +**Molang表达式需遵守[条件置换限制](/blocks/block-permutations#permutation-conditions)。** + +_自格式版本1.20.10起支持`bone_visibility`中的Molang表达式。_ + +::: code-group + +```json [minecraft:block > components] +"minecraft:geometry": { + "identifier": "geometry.example_block", // 来自'RP/models/entity'或'RP/models/blocks'文件夹的几何模型标识符 + "bone_visibility": { + "wiki_bone": false, // 隐藏该骨骼中的立方体 + "conditional_bone": "q.block_state('wiki:example_state') == 3", // 使用Molang表达式条件设置可见性 + "another_bone": true // true为默认值,无实际效果 + } +} +``` +::: + +## 光照衰减 + +设置光线穿过方块时的衰减程度(0-15整数) - 数值越大透光越少。 + +**原版示例值:** + +- 泥土和染色玻璃:`15` +- 铁栏杆和玻璃板:`0` + +**默认值:** `15` + +::: code-group + +```json [minecraft:block > components] +"minecraft:light_dampening": 7 +``` +::: + +## 光照发射 + +设置方块发出的光照强度(0-15整数)。 + +**原版示例值:** + +- 蛙明灯:`15` +- 红石火把(点亮):`7` + +**默认值:** `0` + +::: code-group + +```json [minecraft:block > components] +"minecraft:light_emission": 10 +``` +::: + +## 战利品表 + +设置方块被破坏时掉落的战利品(无视`精准采集`附魔)。 + +**若省略则掉落方块本身。** + +::: code-group + +```json [minecraft:block > components] +"minecraft:loot": "loot_tables/blocks/custom_block.json" +``` +::: + +## 地图颜色 + +设置方块在地图上的显示颜色(十六进制字符串或[R, G, B]数组,0-255)。 + +**若省略则地图不显示该方块。** + +::: code-group + +```json [minecraft:block > components] +"minecraft:map_color": "#ffffff" +``` +::: + +::: code-group + +```json [minecraft:block > components] +"minecraft:map_color": [255, 255, 255] +``` +::: + +## 材质实例 + +配置方块的渲染参数,包括纹理和光照处理。 + +- 所有实例必须使用相同的渲染方法 +- 与其他方块相交时,方块面会无条件变暗 + +材质实例可与`RP/blocks.json`条目结合使用,创建具有类不透明属性的方块。这主要用于在[自定义玻璃方块](/blocks/custom-glass-blocks)上启用面剔除。 + +_自实验性玩法`Holiday Creator Features`中发布,适用于格式版本1.19.40及以上。_ + +### 渲染方法 + +渲染方法本质上控制方块在世界中的显示方式,类似于实体的材质。以下是各类型的关键属性: + +| 渲染方法 | _透明度_ | _半透明性_ | _背面剔除_ | 原版示例 | +| ---------------- | :------: | :--------: | :--------: | ------------------------ | +| opaque(默认) | ❌ | ❌ | ✔️ | 泥土、石头、混凝土 | +| double_sided | ❌ | ❌ | ❌ | 无 - 用于不透明2D平面 | +| alpha_test | ✔️ | ❌ | ❌ | 藤蔓、铁轨、树苗 | +| blend | ✔️ | ✔️ | ✔️ | 玻璃、信标、蜂蜜块 | + +- **_透明度_** - 完全透明区域 +- **_半透明性_** - 半透明区域 + - 半透明像素在UI渲染中显示为不透明 +- **_背面剔除_** - 从背面观察时面不可见 + - 没有背面剔除的渲染方法在远处会消失(基于迷雾/渲染距离) + - 在UI渲染中始终启用背面剔除 + +::: code-group + +```json [minecraft:block > components] +"minecraft:material_instances": { + // '*' 为必需实例 - 方块的默认实例(也用于破坏粒子) + // 通配符遵循渲染控制器语法 + // 内置实例名包括'up', 'down', 'north', 'east', 'south'和'west' + "*": { + "texture": "texture_name", // 在`RP/textures/terrain_textures.json`中定义的短名称 + "render_method": "blend", // 上表中的渲染方法之一 + "face_dimming": true, // 默认true;是否根据方向调暗该材质的表面? + "ambient_occlusion": true // 默认true;是否根据周围方块生成阴影? + } +} +``` +::: + +### 自定义实例名称 + +:::tip +可在Blockbench中通过右键立方体并打开`材质实例`来定义自定义材质实例名称。 +::: + +可在材质实例中定义自定义实例名称,可被内置实例名称引用,或在方块模型中引用。 + +::: code-group + +```json [minecraft:block > components] +"minecraft:material_instances": { + "*": { + "texture": "texture_name", + "render_method": "blend" // 必须与其他实例匹配 + }, + // 自定义实例名称 + "end": { + "texture": "texture_name_end", + "render_method": "blend" // 必须与其他实例匹配 + }, + "up": "end", + "down": "end", + // 模型中定义的实例名称: + "flower": { + "texture": "texture_name_flower", + "render_method": "blend" // 必须与其他实例匹配 + } +} +``` +::: + +## 放置过滤器 + +配置方块可存在的条件。当条件不满足时,方块将无法放置;若已放置则会弹出。 + +**`block_filter`最多可包含64个条目。** + +**若省略,方块可被放置并存在于任何表面。** + +_自实验性玩法`Holiday Creator Features`中发布,适用于格式版本1.19.60及以上。_ + +::: code-group + +```json [minecraft:block > components] +"minecraft:placement_filter": { + "conditions": [ + { + "allowed_faces": ["up"], // 可包含'up', 'down', 'north', 'east', 'south', 'west'和'side' + "block_filter": [ + // 测试标识符 + "minecraft:dirt", + // 测试标签 + { "tags": "!q.any_tag('stone', 'wiki_tag')" } + ] + } + ] +} +``` +::: + +查看[此页面](/blocks/block-tags)获取原版标签及相关方块列表。 + +## 选择箱 + +设置方块的可选区域(点击框),单位为像素 - 必须包含在基础方块单位内(16×16×16)。 + +- 原点从方块的水平中点和垂直底部开始计算,向东北方向延伸。 +- 尺寸从原点开始计算,向东北方向延伸。 + +**也可定义为布尔值:** + +- `false`时实体可穿过方块 +- `true`时设置单位大小的立方体作为碰撞箱 + +**默认值:** `true` + +_自实验性玩法`Holiday Creator Features`中发布,适用于格式版本1.19.60及以上。_ + +::: code-group + +```json [minecraft:block > components] +"minecraft:selection_box": { + "origin": [-8, 0, -8], + "size": [16, 16, 16] +} +``` +::: + +或: + +::: code-group + +```json [minecraft:block > components] +"minecraft:selection_box": false +``` +::: + +## 变换 + +允许对方块进行平移、缩放和旋转(包含视觉和功能变化)。 + +**变换后的模型不得超过[几何模型限制](#geometry)。** + +:::tip +学习如何应用[可旋转方块](/blocks/rotatable-blocks),就像熔炉和生物头颅一样根据放置方向旋转! +::: + +::: code-group + +```json [minecraft:block > components] +"minecraft:transformation": { + "translation": [-5, 8, 0], + "rotation": [90, 180, 0], + "scale": [0.5, 1, 0.5], +} +``` +::: + +## 单位立方体(实验性功能) {#unit-cube} + +:::warning 实验性功能 +此组件需要启用`Holiday Creator Features`实验性玩法,未来可能会被移除/修改。 +::: + +将方块变为16×16×16立方体,覆盖`minecraft:geometry`设置。 + +**启用时:** + +- 方块变为不可呼吸 +- 方块可传导红石信号 + +**如果方块的纹理/模型不需要根据条件置换改变,请在`RP/blocks.json`中定义纹理以避免使用此实验性组件。** + +::: code-group + +```json [minecraft:block > components] +"minecraft:unit_cube": {} +``` + +::: \ No newline at end of file diff --git a/docs/wiki/2-方块/1-基础/block-events.md b/docs/wiki/2-方块/1-基础/block-events.md new file mode 100644 index 00000000..60feb839 --- /dev/null +++ b/docs/wiki/2-方块/1-基础/block-events.md @@ -0,0 +1,623 @@ +--- +title: 方块事件与触发器 +description: 方块事件允许你在满足特定条件时操控游戏世界。 +category: 常规 +nav_order: 8 +tags: + - 实验性功能 +mentions: + - SirLich + - solvedDev + - yanasakana + - MedicalJewel105 + - aexer0e + - SmokeyStack + - TheDoctor15 + - XxPoggyisLitxX + - TheItsNameless + - ThomasOrs + - QuazChick + - VactricaKing + - BlazeDrake +--- + +# 方块事件与触发器 + + + +:::tip 格式与最低引擎版本 `1.20.30` +创建自定义方块时使用最新格式版本可获得新功能和改进。本wiki旨在分享关于自定义方块的最新信息,当前目标格式版本为`1.20.30`。 +::: +:::warning 实验性功能 +方块事件需要启用`假日创作者功能`实验性玩法。 +::: +:::danger 警告 +方块事件已被弃用,将在未来更新中移除。除非必要,否则不建议使用,因为在移除后你需要将所有功能迁移至脚本系统。 +::: + +## 定义事件 + +方块事件允许你在满足特定条件时操控游戏世界,事件定义在`minecraft:block`的`events`子项中。在事件内部,你可以通过配置[事件响应](#事件响应)来设定触发事件时执行的操作。 + +[事件触发器](#事件触发器)会在适当条件下运行事件,执行所有关联的事件响应。 + +::: code-group +```json [BP/blocks/loot_dropper.json] +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:loot_dropper" + }, + "components": { + "minecraft:on_step_on": { + "event": "wiki:drop_loot" + } + }, + "events": { + "wiki:drop_loot": { + "spawn_loot": { + "table": "loot_tables/blocks/my_loot_table.json" + } + } + } + } +} +``` +::: + +_此示例在实体踏上方块时生成战利品_ + +## 序列响应 + +序列允许你多次运行相同响应,或在满足条件时触发特定操作。 + +所有事件响应都应包含在序列中。 + +::: code-group +```json [minecraft:block > events] +"wiki:my_sequence": { + "sequence": [ + { + "set_block_state": { + "wiki:my_state": true + } + }, + { + "condition": "q.block_state('wiki:my_state')", // 可选 + "trigger": { + "event": "wiki:my_entity_event", + "target": "other" + } + } + ] +} +``` +::: + +## 随机响应 + +随机执行事件响应。 + +::: code-group +```json [minecraft:block > events] +"wiki:random_action": { + "randomize": [ + { + "weight": 1, // 1/4概率 + "set_block_state": { + "wiki:my_state": true + } + }, + { + "weight": 3, // 3/4概率 + "trigger": { + "event": "wiki:my_entity_event", + "target": "other" + } + } + ] +} +``` +::: + +## 事件响应 + +- [`add_mob_effect`](#添加生物效果) +- [`damage`](#造成伤害) +- [`decrement_stack`](#减少堆叠) +- [`die`](#摧毁) +- [`play_effect`](#播放特效) +- [`play_sound`](#播放音效) +- [`remove_mob_effect`](#移除生物效果) +- [`run_command`](#执行命令) +- [`set_block`](#设置方块) +- [`set_block_at_pos`](#在指定位置设置方块) +- [`set_block_state`](#设置方块状态) +- [`spawn_loot`](#生成战利品) +- [`swing`](#挥动) +- [`teleport`](#传送) +- [`transform_item`](#转换物品) +- [`trigger`](#触发事件) + +### 添加生物效果 + +为指定目标添加生物效果。 + +::: code-group + +```json [minecraft:block > events] +"wiki:effect_event": { + "add_mob_effect": { + "effect": "poison", + "target": "other", + "duration": 8, + "amplifier": 3 + } +} +``` +::: + +### 造成伤害 + +对目标造成指定类型和数值的伤害。 + +::: code-group + +```json [minecraft:block > events] +"wiki:damage_event": { + "damage": { + "type": "magic", + "target": "other", + "amount": 4 + } +} +``` +::: + +### 减少堆叠 + +移除玩家当前手持物品堆叠中的一个物品。 + +::: code-group + +```json [minecraft:block > events] +"wiki:remove_one": { + "decrement_stack": { + "ignore_game_mode": true // 可选 - 是否影响创造模式玩家(默认为false) + } +} +``` +::: + +### 摧毁 + +摧毁指定目标,若目标为`self`则方块直接消失且不生成战利品或效果。 + +::: code-group + +```json [minecraft:block > events] +"wiki:destroy": { + "die": { + "target": "self" + } +} +``` +::: + +### 播放特效 + +在目标位置播放粒子特效。 + +支持的`effect`值未知。可通过[`run_command`](#执行命令)配合`playsound`命令实现类似效果。 + +::: code-group + +```json [minecraft:block > events] +"wiki:particle_effect": { + "play_effect": { + "effect": "???", + "target": "self" + } +} +``` +::: + +### 播放音效 + +在目标位置播放音效。 + +支持`RP/sounds.json`中大多数原版独立音效事件ID,但自定义音效条目不可用。 + +::: code-group + +```json [minecraft:block > events] +"wiki:play_sound": { + "play_sound": { + "sound": "beacon.power", + "target": "self" + } +} +``` +::: + +### 移除生物效果 + +移除目标的指定生物效果。 + +::: code-group + +```json [minecraft:block > events] +"wiki:remove_effect_event": { + "remove_mob_effect": { + "effect": "poison", + "target": "other" + } +} +``` +::: + +### 执行命令 + +对目标执行命令。 + +使用数组可执行多个命令。 + +::: code-group + +```json [minecraft:block > events] +"wiki:execute_event": { + "run_command": { + "target": "self", // 可选 - 默认为'self'(目标为方块) + "command": "summon pig" + } +} +``` +::: + +或... + +::: code-group + +```json [minecraft:block > events] +"wiki:execute_event": { + "run_command": { + "target": "self", // 可选 - 默认为'self'(目标为方块) + "command": [ + "summon pig", + "say 大家欢迎小猪!" + ] + } +} +``` +::: + +### 设置方块 + +用指定方块替换当前方块。 + +::: code-group + +```json [minecraft:block > events] +"wiki:place_block": { + "set_block": { + "block_type": "minecraft:grass" + } +} +``` +::: + +或... + +::: code-group + +```json [minecraft:block > events] +"wiki:place_block": { + "set_block": { + "block_type": { + "name": "minecraft:trapdoor", + "states": { + "direction": 2, + "open_bit": true + } + } + } +} +``` +::: + +### 在指定位置设置方块 + +在方块相对位置生成指定方块。 + +::: code-group + +```json [minecraft:block > events] +"wiki:generate_stone_above": { + "set_block_at_pos": { + "block_type": "minecraft:stone", + "block_offset": [0, 1, 0] + } +} +``` +::: + +或... + +::: code-group + +```json [minecraft:block > events] +"wiki:generate_upper_door_above": { + "set_block_at_pos": { + "block_type": { + "name": "minecraft:wooden_door", + "states": { + "upper_block_bit": true + } + }, + "block_offset": [0, 1, 0] + } +} +``` +::: + +### 设置方块状态 + +设置方块状态值(可设置为Molang表达式字符串的返回值)。 + +:::warning +字符串值会被解析为Molang表达式。因此,要设置字符串状态时,必须用`'`包裹值(见示例)。 +::: + +::: code-group + +```json [minecraft:block > events] +"wiki:change_state": { + "set_block_state": { + "wiki:boolean_state_example": false, + "wiki:integer_state_example": "q.block_state('wiki:integer_state_example') + 1", + "wiki:string_state_example": "'red'" + } +} +``` +::: + +### 生成战利品 + +生成战利品表内容。 + +::: code-group + +```json [minecraft:block > events] +"wiki:drop_loot": { + "spawn_loot": { + "table": "loot_tables/blocks/my_loot_table.json" + } +} +``` +::: + +### 挥动 + +使关联实体执行挥动动作。 + +::: code-group + +```json [minecraft:block > events] +"wiki:swing_arm": { + "swing": {} +} +``` +::: + +### 传送 + +将目标随机传送至目标点周围。 + +::: code-group + +```json [minecraft:block > events] +"wiki:go_away": { + "teleport": { + "target": "other", // 被传送实体 + "avoid_water": true, // 避免传入水中 + "land_on_block": true, // 将目标放置在方块上 + "destination": [0, 0, 0], // 目标原点 + "max_range": [5, 6, 7] // 相对原点的最大偏移范围 + } +} +``` +::: + +### 转换物品 + +替换目标的当前手持物品。 + +::: code-group + +```json [minecraft:block > events] +"wiki:replace": { + "transform_item": { + "transform": "iron_sword" + } +} +``` +::: + +### 触发事件 + +触发指定目标的事件。 + +::: code-group + +```json [minecraft:block > events] +"wiki:trigger_crack": { + "trigger": { + "event": "wiki:crack", + "target": "self" + } +} +``` +::: + +## 事件触发器 + +事件触发器通过[组件](/blocks/block-components)定义,可通过[permutations](/blocks/block-permutations)动态添加、修改或移除。 + +- [`minecraft:on_fall_on`](#跌落触发) +- [`minecraft:on_interact`](#交互触发) +- [`minecraft:on_placed`](#放置触发) +- [`minecraft:on_player_destroyed`](#玩家破坏触发) +- [`minecraft:on_player_placing`](#玩家放置时触发) +- [`minecraft:on_step_off`](#离开触发) +- [`minecraft:on_step_on`](#踏入触发) +- [`minecraft:queued_ticking`](#队列计时) +- [`minecraft:random_ticking`](#随机计时) + +### 跌落触发 + +当实体跌落在方块上时触发事件。 + +**注意**:需要`minecraft:collision_box`组件的Y轴高度≥4。 + +::: code-group + +```json [minecraft:block > components] +"minecraft:on_fall_on": { + "event": "wiki:example_event", + "target": "self", // 可选 - 默认为'self'(目标为方块) + "condition": "q.block_state('wiki:boolean_state_example')", // 可选 + "min_fall_distance": 5 +} +``` +::: + +### 交互触发 + +当玩家与方块交互时触发事件。 + +::: code-group + +```json [minecraft:block > components] +"minecraft:on_interact": { + "event": "wiki:example_event", + "target": "self", // 可选 - 默认为'self'(目标为方块) + "condition": "q.block_state('wiki:boolean_state_example')" // 可选 +} +``` +::: + +### 放置触发 + +当方块被放置时触发事件。 + +::: code-group + +```json [minecraft:block > components] +"minecraft:on_placed": { + "event": "wiki:example_event", + "target": "self", // 可选 - 默认为'self'(目标为方块) + "condition": "q.block_state('wiki:boolean_state_example')" // 可选 +} +``` +::: + +### 玩家破坏触发 + +当玩家通过挖掘破坏方块时触发事件(创造模式不触发)。 + +::: code-group + +```json [minecraft:block > components] +"minecraft:on_player_destroyed": { + "event": "wiki:example_event", + "target": "self", // 可选 - 默认为'self'(目标为方块) + "condition": "q.block_state('wiki:boolean_state_example')" // 可选 +} +``` +::: + +### 玩家放置时触发 + +当玩家放置方块时触发事件。 + +::: code-group + +```json [minecraft:block > components] +"minecraft:on_player_placing": { + "event": "wiki:example_event", + "target": "self", // 可选 - 默认为'self'(目标为方块) + "condition": "q.block_state('wiki:boolean_state_example')" // 可选 +} +``` +::: + +### 离开触发 + +当实体离开方块时触发事件。 + +**注意**:需要`minecraft:collision_box`组件的Y轴高度≥4。 + +::: code-group + +```json [minecraft:block > components] +"minecraft:on_step_off": { + "event": "wiki:example_event", + "target": "self", // 可选 - 默认为'self'(目标为方块) + "condition": "q.block_state('wiki:boolean_state_example')" // 可选 +} +``` +::: + +### 踏入触发 + +当实体踏上方块时触发事件。 + +**注意**:需要`minecraft:collision_box`组件的Y轴高度≥4。 + +::: code-group + +```json [minecraft:block > components] +"minecraft:on_step_on": { + "event": "wiki:example_event", + "target": "self", // 可选 - 默认为'self'(目标为方块) + "condition": "q.block_state('wiki:boolean_state_example')" // 可选 +} +``` +::: + +### 队列计时 + +在`interval_range`范围内随机间隔触发事件。 + +::: code-group + +```json [minecraft:block > components] +"minecraft:queued_ticking": { + "looping": true, + "interval_range": [20, 20], // 两个游戏刻数值,随机决定延迟时间 + "on_tick": { + "event": "wiki:example_event", + "target": "self", // 可选 - 默认为'self'(目标为方块) + "condition": "q.block_state('wiki:boolean_state_example')" // 可选 + } +} +``` +::: + +### 随机Tick + +在每次随机刻触发事件(如作物随机生长机制)。 + +::: code-group + +```json [minecraft:block > components] +"minecraft:random_ticking": { + "on_tick": { + "event": "wiki:example_event", + "target": "self", // 可选 - 默认为'self'(目标为方块) + "condition": "q.block_state('wiki:boolean_state_example')" // 可选 + } +} +``` +::: \ No newline at end of file diff --git a/docs/wiki/2-方块/1-基础/block-permutations.md b/docs/wiki/2-方块/1-基础/block-permutations.md new file mode 100644 index 00000000..b63f5f21 --- /dev/null +++ b/docs/wiki/2-方块/1-基础/block-permutations.md @@ -0,0 +1,83 @@ +--- +title: 方块变换(转体) +description: 方块变换数组提供了一种基于当前置换条件性应用组件的方法。 +category: 常规 +nav_order: 7 +mentions: + - QuazChick +--- + +# 方块变换(转体) + + + +:::tip 格式要求 & 最低引擎版本 `1.20.30` +在学习方块变换前,您应当已熟练掌握[方块状态](/blocks/block-states)知识。 + +使用方块状态时,请确保资源包清单中的`min_engine_version`为`1.20.20`或更高版本。 +::: + +方块`permutations`数组提供了一种基于当前置换(状态值集合)条件性应用组件(包括事件触发器和标签)的方式。 + +`permutations`数组中的组件可以覆盖方块的基类组件以及其他组件列表中的组件。置换数组中最后出现的条目具有最高优先级。 + +## 定义置换 + +`permutations`数组是`minecraft:block`的直接子项,由包含组件的对象组成。当条件判断为真值(非false或0)时,相关组件将被应用。 + +**置换条件必须遵守其[Molang限制条件](#置换条件限制)。** + +_自实验性玩法`Holiday Creator Features`发布,支持格式版本1.19.70及更高。_ + +::: code-group + +```json [BP/blocks/custom_block.json] +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:custom_block", + "states": { + "wiki:integer_state_example": [2, 4, 6, 8], + "wiki:boolean_state_example": [false, true], + "wiki:string_state_example": ["red", "green", "blue"] + } + }, + "components": {}, + "permutations": [ + { + "condition": "q.block_state('wiki:integer_state_example') == 2", + "components": { + "minecraft:friction": 0.1 + } + }, + { + "condition": "q.block_state('wiki:boolean_state_example')", + "components": { + "minecraft:friction": 0.8 // 覆盖之前的置换 + } + }, + { + "condition": "q.block_state('wiki:string_state_example') == 'red' && !q.block_state('wiki:boolean_state_example')", + "components": { + "minecraft:geometry": "geometry.pig" + } + } + ] + } +} +``` +::: + +## 置换条件限制 + +当条件评估为真值(非false或0)时,关联的组件列表将被应用。 + +置换条件需以Molang表达式字符串形式编写,并具有严格限制: + +- 条件判断完全基于方块的置换状态,因此只能使用`q.block_state`查询函数 +- 这意味着条件判断不会产生副作用 + - 禁止使用以下数学函数:`math.die_roll`、`math.die_roll_integer`、`math.random`、`math.random_integer` + - 不可进行变量赋值操作 + +(注:保留英文术语如Component、Entity、Block等,根据中文技术文档惯例处理专有名词) \ No newline at end of file diff --git a/docs/wiki/2-方块/1-基础/block-states.md b/docs/wiki/2-方块/1-基础/block-states.md new file mode 100644 index 00000000..deaa1c1a --- /dev/null +++ b/docs/wiki/2-方块/1-基础/block-states.md @@ -0,0 +1,128 @@ +--- +title: 方块状态 +description: 方块状态允许你的方块拥有多种变体,每种变体通过使用置换具备独特的功能和外观。 +category: 常规 +nav_order: 4 +mentions: + - QuazChick +--- + +# 方块状态 + + + +:::tip 格式要求 & 最低引擎版本 `1.20.30` +使用方块状态时,请确保资源包清单中的 `min_engine_version` 设置为 `1.20.20` 或更高。 +::: + +方块状态允许你的方块拥有多种变体,每种变体通过使用[置换](/blocks/block-permutations)具备独特的功能和外观。 + +## 定义状态 + +有效状态值可以定义为布尔值、整数或字符串数组,也可以通过对象定义为整数范围。`values` 数组中的第一个元素将作为默认值使用。 + +### 置换数量限制 + +**每个状态最多可定义 16 个有效值。所有可能的状态值组合([置换](/blocks/block-permutations))总数不应超过 65,536。** + +计算方块置换总数时,需将所有状态的有效值数量相乘。例如下方示例的计算公式为 3 × 2 × 3 × 6,说明该方块具有 108 种可能的置换组合。 + +_该功能需启用 `Holiday Creator Features` 实验性玩法(格式版本 1.19.70 及以上)。_ + +::: code-group +```json [BP/blocks/custom_block.json] +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:custom_block", + "states": { + "wiki:string_state_example": ["red", "green", "blue"], + "wiki:boolean_state_example": [false, true], + "wiki:integer_state_example": [1, 2, 3], + "wiki:integer_range_state_example": { + "values": { "min": 0, "max": 5 } // 等同于 [0, 1, 2, 3, 4, 5] + } + } + }, + "components": { ... }, + "permutations": [ ... ] + } +} +``` +::: + +## 获取状态值 + +以下列出在不同上下文中获取方块状态当前值的方法。 + +### Molang 查询函数 + +可通过 `block_state` 查询函数获取状态值。 + +```c +q.block_state('wiki:string_state_example') == 'blue' +``` + +### 命令参数 + +在 `execute` 和 `testforblock` 等命令中使用[方块状态参数](/commands/block-states)来检查状态值。 + +```c +execute if block ~~~ wiki:custom_block["wiki:string_state_example"="blue", "wiki:integer_state_example"=4] run kill +``` + +### 脚本API + +:::warning 实验性功能 +使用 [`BlockPermutation.getState()`](https://learn.microsoft.com/minecraft/creator/scriptapi/minecraft/server/blockpermutation#getstate) 方法需启用 `Beta APIs` 实验性玩法。 +::: + +通过 [`BlockPermutation.getState()`](https://learn.microsoft.com/minecraft/creator/scriptapi/minecraft/server/blockpermutation#getstate) 方法可获取不同状态的当前值。 + +```js +customBlock.permutation.getState("wiki:integer_state_example") === 3 +``` + +## 设置状态值 + +### 命令参数 + +在 `setblock` 和 `fill` 等命令中使用[方块状态参数](/commands/block-states)来修改默认状态值。 + +```c +setblock ~~~ wiki:custom_block["wiki:string_state_example"="blue", "wiki:integer_state_example"=4] +``` + +### 脚本API + +:::warning 实验性功能 +使用 [`BlockPermutation.withState()`](https://learn.microsoft.com/minecraft/creator/scriptapi/minecraft/server/blockpermutation#withstate) 方法需启用 `Beta APIs` 实验性玩法。 +::: + +[`BlockPermutation.withState()`](https://learn.microsoft.com/minecraft/creator/scriptapi/minecraft/server/blockpermutation#withstate) 方法会返回修改了指定状态值的新置换对象。可通过 [`Block.setPermutation()`](https://learn.microsoft.com/minecraft/creator/scriptapi/minecraft/server/block#setpermutation) 方法应用此置换,如下所示: + +```js +customBlock.setPermutation( + customBlock.permutation.withState("wiki:boolean_state_example", false) +); +``` + +### 事件响应 + +:::warning 实验性功能 +方块事件需启用 `Holiday Creator Features` 实验性玩法。 +::: + +使用 [`set_block_state`](/blocks/block-events#set-block-state) 事件响应可以修改自定义方块状态的值。 + +::: code-group +```json [minecraft:block > events] +"wiki:change_state": { + "set_block_state": { + "wiki:boolean_state_example": false, + "wiki:string_state_example": "'red'" + } +} +``` +::: \ No newline at end of file diff --git a/docs/wiki/2-方块/1-基础/block-tags.md b/docs/wiki/2-方块/1-基础/block-tags.md new file mode 100644 index 00000000..f464431d --- /dev/null +++ b/docs/wiki/2-方块/1-基础/block-tags.md @@ -0,0 +1,145 @@ +--- +title: 方块标签 +category: 常规 +nav_order: 3 +mentions: + - SirLich + - yanasakana + - aexer0e + - SmokeyStack + - MedicalJewel105 + - Luthorius + - Chikorita-Lover + - victorsigma + - TheItsNameless + - QuazChick + - Kaioga5 +--- + +# 方块标签 + + + +方块标签可用于确保某个方块符合特定条件。 + +## 应用标签 + +方块标签的应用方式与物品标签相同 - 在方块的`components`组件中添加 - 如下所示: + +::: code-group +```json [BP/blocks/tree_stump.json] +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:tree_stump", + "menu_category": { + "category": "nature" + } + }, + "components": { + "tag:wood": {}, + "tag:my_lovely_tag": {}, + "tag:wiki:very_useless": {} + } + } +} +``` +::: + +## 测试标签 + +可通过以下Molang查询函数检测标签: + +- `q.all_tags` +- `q.any_tag` + +:::warning 实验性功能 +以下查询函数需要启用实验性Molang功能。 +::: + +- `q.block_has_all_tags` +- `q.block_has_any_tag` +- `q.block_neighbor_has_all_tags` +- `q.block_neighbor_has_any_tag` +- `q.relative_block_has_all_tags` +- `q.relative_block_has_any_tag` + +物品检测方块标签的示例: + +::: code-group +```json [BP/items/custom_pickaxe.json] +{ + "format_version": "1.20.30", + "minecraft:item": { + "description": { + "identifier": "wiki:custom_pickaxe", + "menu_category": { + "category": "equipment", + "group": "itemGroup.name.pickaxe" + } + }, + "components": { + "minecraft:digger": { + "use_efficiency": true, + "destroy_speeds": [ + { + "speed": 5, + "block": { + "tags": "q.any_tag('custom_ore', 'stone', 'metal')" + } + } + ] + } + } + } +} +``` +::: + +## 方块标签列表 + +### 原版标签 + +原版标签可应用于自定义方块,部分原版方块内部已标记。此类标签不会赋予方块原版特性,仅用于通过标签查询时与原版方块保持相同检测结果。 + +| 标签 | 原版用途 | +| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| wood | 金合欢木门、金合欢木栅栏、金合欢木栅栏门、金合欢木板、金合欢木压力板、金合欢木告示牌、木桶、蜂巢、蜂箱、白桦木门、白桦木栅栏、白桦木栅栏门、白桦原木、白桦木板、白桦木压力板、白桦木告示牌、白桦木台阶、白桦木楼梯、深色橡木门、深色橡木栅栏、深色橡木栅栏门、深色橡木原木、深色橡木板、深色橡木压力板、深色橡木告示牌、深色橡木台阶、深色橡木楼梯、制箭台、丛林木门、丛林木栅栏、丛林木栅栏门、丛林原木、丛林木板、丛林压力板、丛林告示牌、丛林木台阶、丛林木楼梯、梯子、橡木门、橡木栅栏、橡木栅栏门、橡木原木、橡木板、橡木压力板、橡木告示牌、橡木台阶、橡木楼梯、橡木活板门、锻造台、云杉木门、云杉木栅栏、云杉木栅栏门、云杉原木、云杉木板、云杉木压力板、云杉木告示牌、云杉木台阶、云杉木楼梯、云杉木活板门 | +| pumpkin | 雕刻过的南瓜、南瓜灯、南瓜 | +| plant | 金合欢树苗、白桦树苗、深色橡树苗、丛林树苗、大型蕨、丁香、橡树苗、牡丹、玫瑰丛、云杉树苗、向日葵、高草丛 | +| stone | 安山岩、安山岩墙、砖台阶、砖墙、砖块、圆石、圆石台阶、圆石楼梯、圆石墙、闪长岩、闪长岩墙、滴水石块、末地石砖墙、花岗岩、花岗岩墙、苔石、苔石墙、下界砖墙、磨制安山岩、磨制闪长岩、磨制花岗岩、海晶石墙、石英台阶、红色下界砖墙、红砂岩墙、砂岩台阶、砂岩墙、平滑石台阶、石头、石砖墙、石砖台阶 | +| metal | 金块、铁块、炼药锅、铁栏杆 | +| diamond_pick_diggable | 粗金块、粗铁块、煤矿石、深层煤矿石、深层绿宝石矿石、深层金矿石、深层铁矿石、深层红石矿石、钻石矿石、绿宝石矿石、金矿石、铁矿石、青金石矿石、黑曜石、红石矿石 | +| gold_pick_diggable | (无内容) | +| iron_pick_diggable | 粗金块、粗铁块、煤矿石、深层煤矿石、深层绿宝石矿石、深层金矿石、深层铁矿石、深层红石矿石、钻石矿石、绿宝石矿石、金矿石、铁矿石、青金石矿石、红石矿石 | +| stone_pick_diggable | (无内容) | +| wood_pick_diggable | (无内容) | +| dirt | 耕地 | +| sand | 红沙、沙子 | +| gravel | 沙砾 | +| grass | 砂土、泥土、草径、草方块 | +| snow | 雪 | +| rail | 激活铁轨、探测铁轨、动力铁轨、铁轨 | +| water | 水 | +| mob_spawner | 刷怪笼 | +| lush_plants_replaceable | (无内容) | +| azalea_log_replaceable | (无内容) | +| not_feature_replaceable | 基岩、箱子、末地传送门框架、刷怪笼 | +| text_sign | 所有种类的告示牌 | +| minecraft:crop | 甜菜根、胡萝卜、马铃薯、小麦 | +| fertilize_area | 所有花卉(除高茎花卉和凋灵玫瑰外);绯红菌岩、诡异菌岩、草、苔藓块 | + +### 原版方块标签 + +原版方块标签是专门为方块设计的标签,可以为标记的方块赋予某些原版特性。 + +| 标签 | 原版应用 | 描述 | +| -------- | ---------------- | ------------ | +| acacia | 金合欢原木 | | +| birch | 白桦原木 | | +| dark_oak | 深色橡木原木 | | +| jungle | 丛林原木 | | +| log | 所有原木类型 | 原木方块 | +| oak | 橡木原木 | | +| spruce | 云杉原木 | | \ No newline at end of file diff --git a/docs/wiki/2-方块/1-基础/block-traits.md b/docs/wiki/2-方块/1-基础/block-traits.md new file mode 100644 index 00000000..97e55ebf --- /dev/null +++ b/docs/wiki/2-方块/1-基础/block-traits.md @@ -0,0 +1,110 @@ +--- +title: 方块特性 +description: 方块特性可轻松为自定义方块应用原版方块状态(如朝向),无需借助事件和触发器。 +category: 常规 +nav_order: 5 +mentions: + - QuazChick +--- + +# 方块特性 + + + +:::tip 格式要求 & 最低引擎版本 `1.20.30` +在学习方块特性前,您应当已熟练掌握[方块状态](/blocks/block-states)知识。 + +使用方块状态时,请确保资源包清单中的`min_engine_version`为`1.20.20`或更高版本。 +::: + +## 应用特性 + +方块特性可轻松为自定义方块应用原版方块状态(如朝向),无需借助复杂的事件和触发器系统。 + +::: code-group +```json [BP/blocks/custom_slab.json] +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:custom_slab", + "menu_category": { + "category": "construction", + "group": "itemGroup.name.slab" + }, + "traits": { + "minecraft:placement_position": { + "enabled_states": ["minecraft:vertical_half"] + } + } + }, + "components": { ... }, + "permutations": [ ... ] + } +} +``` +::: + +_此示例将在放置时设置`minecraft:vertical_half`方块状态为`'top'`或`'bottom'`——具体取决于玩家视角位置。_ + +**仍需通过置换系统配合条件查询来实现功能差异:** + +```c +q.block_state('minecraft:vertical_half') // 查询垂直半区状态 +``` + +## 放置朝向 + +记录玩家放置方块时的旋转方向信息。 + +_自实验性玩法`Upcoming Creator Features`发布,支持格式版本1.20.30及更高。_ + +**可启用以下状态:** + +| 状态名称 | 可选值 | 描述 | +| ------------------------------ | -------------------------------------------------------------------------------- | ---------------------------------- | +| `minecraft:cardinal_direction` | `"south"`(默认)
`"north"`
`"west"`
`"east"` | 放置时玩家的主要朝向(东南西北) | +| `minecraft:facing_direction` | `"down"`(默认)
`"up"`
`"south"`
`"north"`
`"west"`
`"east"` | 放置时玩家的完整朝向(含上下方向) | + +
+ +**额外参数:** + +- `y_rotation_offset` - 此旋转偏移仅适用于水平方向状态值(北/南/西/东),必须指定轴对齐角度(如90、180、-90) + +::: code-group +```json [minecraft:block > description > traits] +"minecraft:placement_direction": { + "enabled_states": ["minecraft:cardinal_direction"], + "y_rotation_offset": 180 // Y轴旋转偏移量 +} +``` +::: + +## 放置位置 + +记录玩家放置方块时的具体位置信息。 + +_自实验性玩法`Upcoming Creator Features`发布,支持格式版本1.20.30及更高。_ + +**可启用以下状态:** + +| 状态名称 | 可选值 | 描述 | +| ------------------------- | -------------------------------------------------------------------------------- | ----------------------------- | +| `minecraft:block_face` | `"down"`(默认)
`"up"`
`"south"`
`"north"`
`"west"`
`"east"` | 方块被放置时所处的表面方位 | +| `minecraft:vertical_half` | `"top"`
`"bottom"`(默认) | 方块被放置时所处的垂直半区位置 | + +
+ +**_此特性无额外参数_** + +::: code-group +```json [minecraft:block > description > traits] +"minecraft:placement_position": { + "enabled_states": [ + "minecraft:block_face", // 方块表面方位 + "minecraft:vertical_half" // 垂直半区位置 + ] +} +``` +::: \ No newline at end of file diff --git a/docs/wiki/2-方块/1-基础/blocks-experimental.md b/docs/wiki/2-方块/1-基础/blocks-experimental.md new file mode 100644 index 00000000..334038d7 --- /dev/null +++ b/docs/wiki/2-方块/1-基础/blocks-experimental.md @@ -0,0 +1,62 @@ +--- +title: 实验性方块 +category: 通用 +tags: + - 信息 + - 实验性 +mentions: + - SmokeyStack + - MedicalJewel105 + - QuazChick +--- + +# 实验性方块 + + + +:::tip 格式版本 `1.20.30` +在创建自定义方块时使用最新格式版本,可获取最新功能和改进。本维基旨在分享自定义方块的最新信息,当前目标格式版本为 `1.20.30`。 +::: + +本文作为索引文档,概述自定义方块功能的实验性要求。 + +## 方块组件 + +| 组件 | 所需实验性功能 | +| ------------------------------------------------------------------------------------------- | --------------------------------- | +| [`minecraft:collision_box`](/blocks/block-components#collision-box) | 无(格式版本1.19.50及以上) | +| [`minecraft:crafting_table`](/blocks/block-components#crafting-table) | 无(格式版本1.19.50及以上) | +| [`minecraft:destructible_by_explosion`](/blocks/block-components#destructible-by-explosion) | 无 | +| [`minecraft:destructible_by_mining`](/blocks/block-components#destructible-by-mining) | 无 | +| [`minecraft:display_name`](/blocks/block-components#display-name) | 无(格式版本1.19.60及以上) | +| [`minecraft:flammable`](/blocks/block-components#flammable) | 无 | +| [`minecraft:friction`](/blocks/block-components#friction) | 无 | +| [`minecraft:geometry`](/blocks/block-components#geometry) | 无(格式版本1.19.40及以上) | +| [`minecraft:light_dampening`](/blocks/block-components#light-dampening) | 无 | +| [`minecraft:light_emission`](/blocks/block-components#light-emission) | 无 | +| [`minecraft:loot`](/blocks/block-components#loot) | 无 | +| [`minecraft:map_color`](/blocks/block-components#map-color) | 无 | +| [`minecraft:material_instances`](/blocks/block-components#material-instances) | 无(格式版本1.19.40及以上) | +| [`minecraft:placement_filter`](/blocks/block-components#placement-filter) | 无(格式版本1.19.60及以上) | +| [`minecraft:selection_box`](/blocks/block-components#selection-box) | 无(格式版本1.19.60及以上) | +| [`minecraft:transformation`](/blocks/block-components#transformation) | 无 | +| [`minecraft:unit_cube`](/blocks/block-components#unit-cube) | **`假日创作者功能(Holiday Creator Features)`** | + +## 方块状态 + +_从实验性功能 **`假日创作者功能`** 中释放,适用于格式版本1.19.70及以上。_ + +## 方块特性 + +| 特性 | 所需实验性功能 | +| ------------------------------------------------------------------------------- | --------------------------------- | +| [`minecraft:placement_direction`](/blocks/block-components#placement-direction) | 无(格式版本1.20.20及以上) | +| [`minecraft:placement_position`](/blocks/block-components#placement-position) | 无(格式版本1.20.20及以上) | + +## 方块置换 + +_从实验性功能 **`假日创作者功能`** 中释放,适用于格式版本1.19.70及以上。_ + +## 方块事件与触发器 + +**完整功能仍处于实验性阶段,需启用 `假日创作者功能`。** \ No newline at end of file diff --git a/docs/wiki/2-方块/1-基础/blocks-intro.md b/docs/wiki/2-方块/1-基础/blocks-intro.md new file mode 100644 index 00000000..4a3f37fe --- /dev/null +++ b/docs/wiki/2-方块/1-基础/blocks-intro.md @@ -0,0 +1,322 @@ +--- +title: 方块入门 +description: A "Hello world" guide in making blocks. Learn the block format and how to create basic custom blocks. +category: General +nav_order: 1 +--- + +# 方块入门 + + + +:::tip 格式版本 & 最低引擎版本 `1.20.30` +本页介绍基础方块特性。更多方块组件内容请访问[此处](/blocks/block-components)。 +::: + +:::danger +原版方块的逻辑是硬编码实现的,无法被修改或访问。 +::: + +Minecraft 基岩版允许我们添加具有多种类原版特性的自定义方块。自定义方块可以拥有多阶段生长(如植物)、方向朝向等实用功能。 + +本教程将指导如何在稳定版 Minecraft 中创建基础方块。 + +## 注册方块 + +方块定义的结构与实体类似:包含行为描述和定义方块特性的组件列表。 + +与实体不同,方块除`RP/blocks.json`外没有其他资源定义。 + +以下是将自定义方块加入创造模式物品栏所需的**最低限度**行为包代码: + +::: code-group + +```json [BP/blocks/custom_block.json] +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:custom_block", + "menu_category": { + "category": "construction", // 方块所在的创造模式物品栏或配方书标签 + "group": "itemGroup.name.concrete", // 方块所属的可展开分组(可选) + "is_hidden_in_commands": false // 是否在命令中隐藏该方块(可选) + } + }, + "components": {} // 必须保留,即使为空! + } +} +``` +::: + +### 方块描述 + +- 定义方块的`identifier` - 采用`命名空间:标识符`格式的唯一ID +- 配置方块的`menu_category`归属 + - 可选参数`group`和`is_hidden_in_commands` + +_方块描述还包含[状态](/blocks/block-states)和[特性](/blocks/block-traits),相关内容请参见对应页面。_ + +## 添加组件 + +目前我们的自定义方块使用的是默认组件值(可参考[此处](/blocks/block-components))。 + +现在开始自定义功能配置! + +::: code-group + +```json [BP/blocks/custom_block.json] +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:custom_block", + "menu_category": { + "category": "construction" + } + }, + "components": { + "minecraft:destructible_by_mining": { + "seconds_to_destroy": 3 + }, + "minecraft:destructible_by_explosion": { + "explosion_resistance": 3 + }, + "minecraft:friction": 0.4, + "minecraft:map_color": "#ffffff", + "minecraft:light_dampening": 0, + "minecraft:light_emission": 4, + "minecraft:loot": "loot_tables/blocks/custom_block.json" + } + } +} +``` +::: + +- [`minecraft:destructible_by_mining`](/blocks/block-components#destructible-by-mining) 定义玩家破坏方块所需时间(目前无法为不同工具设置不同破坏时间) +- [`minecraft:destructible_by_explosion`](/blocks/block-components#destructible-by-explosion) 定义抗爆性。值越高,被炸毁概率越低 +- [`minecraft:friction`](/blocks/block-components#friction) 定义方块摩擦系数。例如灵魂沙具有高摩擦值会减缓玩家,冰的低摩擦值则产生滑溜效果。经典方块(如木头/石头)的摩擦系数为`0.4` +- [`minecraft:map_color`](/blocks/block-components#map-color) 是地图上显示的代表色(十六进制)。`#ffffff`代表白色,可通过[在线取色器](https://www.google.com/search?q=hex+color+picker)获取其他颜色代码 +- [`minecraft:light_dampening`](/blocks/block-components#light-dampening) 定义光线阻挡程度 +- [`minecraft:light_emission`](/blocks/block-components#light-emission) 定义方块发光等级 +- [`minecraft:loot`](/blocks/block-components#loot) 定义战利品表路径。若移除,方块将默认掉落自身。更多战利品表信息请访问[此处](/loot/loot-tables) + +_更多组件配置请访问[方块组件手册](/blocks/block-components)!_ + +## 应用纹理 + +:::warning +`RP/blocks.json`会忽略命名空间。即使不写命名空间或随意填写也不会产生影响。若自定义方块与原版方块同名(仅命名空间不同)可能导致问题 +::: +:::tip +[方块音效](/blocks/block-sounds)也可在`RP/blocks.json`中定义 +::: + +对于基础的16×16×16像素方块,纹理应在`RP/blocks.json`中定义。 + +如需使用自定义模型,应使用[geometry(几何组件)](/blocks/block-components#geometry)和[material_instances(材质实例)](/blocks/block-components#material-instances)。 + +::: code-group + +```json [RP/blocks.json] +{ + "format_version": [1, 1, 0], + "wiki:custom_block": { + "textures": "custom_block", // 此纹理简称需在下方terrain_texture.json中定义 + "sound": "grass" + } +} +``` +::: + +现在需要在`RP/textures/terrain_texture.json`中关联纹理简称与图片路径: + +::: code-group + +```json [RP/textures/terrain_texture.json] +{ + "texture_name": "atlas.terrain", + "resource_pack_name": "wiki", // 资源包ID + "padding": 8, // 防止纹理视觉溢出 + "num_mip_levels": 4, // 远距离/倾斜视角下的纹理质量 + "texture_data": { + // 我们的纹理简称: + "custom_block": { + "textures": "textures/blocks/custom_block" // 指向图片文件名 + } + } +} +``` +::: + +### 分面纹理 + +纹理可按面分别设置。例如一个自定义"指南针方块"可使用以下✨惊艳✨纹理: + +`textures/blocks/compass_block_down.png` + + + +`textures/blocks/compass_block_up.png` + + + +`textures/blocks/compass_block_north.png` + + + +`textures/blocks/compass_block_east.png` + + + +`textures/blocks/compass_block_south.png` + + + +`textures/blocks/compass_block_west.png` + + + +
+
+ +对应的`blocks.json`配置如下: + +::: code-group + +```json [RP/blocks.json] +{ + "format_version": [1, 1, 0], + "wiki:compass_block": { + "textures": { + "down": "compass_block_down", + "up": "compass_block_up", + "north": "compass_block_north", + "east": "compass_block_east", + "south": "compass_block_south", + "west": "compass_block_west" + } + } +} +``` +::: + +
+ +若使用[材质实例](/blocks/block-components#material-instances),配置示例如下: + +::: code-group + +```json [minecraft:block > components] +"minecraft:material_instances": { + "*": { + "texture": "compass_block_down" // 此纹理用于破坏粒子效果 + }, + "up": { + "texture": "compass_block_up" + }, + "north": { + "texture": "compass_block_north" + }, + "east": { + "texture": "compass_block_east" + }, + "south": { + "texture": "compass_block_south" + }, + "west": { + "texture": "compass_block_west" + } +} +``` +::: + +对应的`terrain_texture.json`数据: + +::: code-group + +```json [RP/textures/terrain_texture.json] +{ + "texture_name": "atlas.terrain", + "resource_pack_name": "wiki", + "padding": 8, + "num_mip_levels": 4, + "texture_data": { + "compass_block_down": { + "textures": "textures/blocks/compass_block_down" + }, + "compass_block_up": { + "textures": "textures/blocks/compass_block_up" + }, + "compass_block_north": { + "textures": "textures/blocks/compass_block_north" + }, + "compass_block_east": { + "textures": "textures/blocks/compass_block_east" + }, + "compass_block_west": { + "textures": "textures/blocks/compass_block_west" + }, + "compass_block_south": { + "textures": "textures/blocks/compass_block_south" + } + } +} +``` +::: + +## 定义名称 + +最后定义方块的显示名称: + +::: code-group + +```c [RP/texts/en_US.lang] +tile.wiki:custom_block.name=自定义方块 +tile.wiki:compass_block.name=指南针方块 +``` +::: + +更多本地化内容请访问[文本与翻译指南](/concepts/text-and-translations)。 + +## 成果总结 + +通过本教程,您已掌握: + + + +- [x] 方块基础特性 +- [x] 如何应用统一纹理 +- [x] 如何设置分面纹理 + + + +...但这只是开始,更多精彩内容等待探索! + +## 下一步学习 + +
+ + 学习各类可用[方块组件](/blocks/block-components)打造独特玩法。 +

+ 使用[geometry(几何组件)](/blocks/block-components#geometry)为方块添加自定义模型!还可以通过[collision_box(碰撞箱)](/blocks/block-components#collision-box)和[selection_box(选择框)](/blocks/block-components#selection-box)配置物理交互区域。 +
+ + 利用[方块状态](/blocks/block-states)和[permutations(状态切换)](/blocks/block-permutations)实现条件触发的组件功能。 +

+ 例如为储液罐方块添加多级液面高度功能,并支持多种液体类型。 +
+ + 在原版复刻分类中查看多个完整实现案例。 +

+ 从简单的[自定义玻璃方块](/blocks/custom-glass-blocks)开始,体验[material_instances(材质实例)](/blocks/block-components#material-instances)的应用! +
+
\ No newline at end of file diff --git a/docs/wiki/2-方块/1-基础/troubleshooting-blocks.md b/docs/wiki/2-方块/1-基础/troubleshooting-blocks.md new file mode 100644 index 00000000..6f665e6c --- /dev/null +++ b/docs/wiki/2-方块/1-基础/troubleshooting-blocks.md @@ -0,0 +1,271 @@ +--- +title: 方块故障排除 +category: 常规 +tags: + - help +mentions: + - SmokeyStack + - SirLich + - aexer0e + - MedicalJewel105 + - Sprunkles137 + - QuazChick +--- + +# 方块故障排除 + + + +:::tip +本页包含关于_方块_的故障排除信息。在继续阅读前,建议先查阅我们的[全局故障排除指南](/guide/troubleshooting)。 +::: + +## 0.0 - 常见问题 + +> "我按照教程制作方块时遇到了问题!" + +无需惊慌!本页将帮助您排查常见问题。 + +## 1.0 - 纹理问题排查 + +修复与方块纹理相关的常见问题。 + +## 1.1 - 纹理显示为黑紫相间 + +我们将分析三种不同布局的方块类型: + +- 类似泥土的方块 ![](/assets/images/blocks/block_tr/tr_dirt.png) +- 类似原木的方块 ![](/assets/images/blocks/block_tr/tr_log.png) +- 类似草块的方块 ![](/assets/images/blocks/block_tr/tr_grass.png) + +请定位至 `RP/textures/terrain_texture.json` 文件,确保文件名正确。 + +::: code-group +```json [RP/textures/terrain_texture.json] +{ + "texture_name": "atlas.terrain", + "resource_pack_name": "wiki", + "padding": 8, + "num_mip_levels": 4, + "texture_data": { + "dirt_like": { + "textures": "textures/blocks/dirt_like" // 此处可替换为任意内容,但需记住此名称 + }, + "log_like_top": { + "textures": "textures/blocks/log_like_top" // 此处可替换为任意内容,但需记住此名称 + }, + "log_like_side": { + "textures": "textures/blocks/log_like_side" // 此处可替换为任意内容,但需记住此名称 + }, + "custom_grass_top": { + "textures": "textures/blocks/custom_grass_top" // 此处可替换为任意内容,但需记住此名称 + }, + "custom_grass_bottom": { + "textures": "textures/blocks/custom_grass_bottom" // 此处可替换为任意内容,但需记住此名称 + }, + "custom_grass_side": { + "textures": "textures/blocks/custom_grass_side" // 此处可替换为任意内容,但需记住此名称 + } + } +} +``` +::: + +接下来检查方块配置文件,确保包含 `material_instances` 组件。 + +类似泥土的方块配置示例: + +::: code-group +```json [BP/blocks/dirt_like.json] +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:dirt_like" + }, + "components": { + "minecraft:material_instances": { + "*": { + "texture": "dirt_like" + } + } + } + } +} +``` +::: + +类似原木的方块配置示例: + +::: code-group +```json [BP/blocks/log_like.json] +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:log_like" + }, + "components": { + "minecraft:material_instances": { + "*": { + "texture": "log_like_side" + }, + "end": { + "texture": "log_like_top" + }, + "up": "end", + "down": "end" + } + } + } +} +``` +::: + +类似草块的配置示例: + +::: code-group +```json [BP/blocks/custom_grass.json] +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:custom_grass" + }, + "components": { + "minecraft:material_instances": { + "*": { + "texture": "custom_grass_side" + }, + "up": { + "texture": "custom_grass_top" + }, + "down": { + "texture": "custom_grass_bottom" + } + } + } + } +} +``` +::: + +正确配置后,方块的纹理应正常显示。 + +## 1.2 - 纹理显示为带"Update"字样的泥土块 + +问题现象:自定义方块变成带有绿色文字的泥土方块。 + +![](/assets/images/blocks/block_tr/tr_update.png) + +这是_未知方块_的标识,通常由以下原因引起: +- 方块标识符被修改 +- 方块JSON文件格式错误 + +解决方案: +1. 使用JSON校验工具检查文件格式 +2. 确认方块标识符未更改 +3. 确保方块配置包含以下任意组件: + - `minecraft:unit_cube` + - `minecraft:geometry` + - `minecraft:material_instances` + - 或正确配置了 `RP/blocks.json` 中的纹理条目 + + +## 2.0 - 渲染问题排查 + +本节将描述常见的方块渲染问题及解决方案。 + +## 2.1 - 透明效果失效 + +问题现象:纹理中的透明像素在游戏中显示为不透明。 + +解决方案:在方块的 `material_instances` 组件中添加渲染方法: + +::: code-group +```json [BP/blocks/your_block.json] +{ + "format_version": "1.20.30", + "minecraft:block": { + ... + "components": { + "minecraft:material_instances": { + "*": { + "render_method": "alpha_test" + } + } + } + } +} +``` +::: + +## 2.2 - 方块产生阴影 + +问题现象:自定义几何体方块产生阴影。 + +解决方案:在方块组件中添加光照衰减配置: + +::: code-group +```json [minecraft:block > components] +"minecraft:light_dampening": 0 +``` +::: + +## 2.3 - 模型立方体在物品栏中重叠 + +问题现象:自定义几何体方块在物品栏中呈现异常堆叠: + +![](/assets/images/blocks/block_tr/inventory_render_cubes.png) + +解决方案:在Blockbench中调整立方体绘制顺序(从下到上): + +``` +cube_middle cube_bottom +cube_top -> cube_middle +cube_bottom cube_top +``` + +## 2.4 - 方块在物品栏中显示过小 + +问题现象:16³标准尺寸方块在物品栏中比原版方块小。 + +解决方案分析: +- 使用 `RP/blocks.json` 配置纹理可使方块正常显示,但无法使用自定义模型 +- 使用 `material_instances` 组件时需配合以下配置: + - 添加旋转组件需同时配置材质实例 + - 使用单位立方体或自定义几何体 + - 确保基础状态使用 `blocks.json` 配置 + +--- + +## 3.0 - 常见日志错误 + +本节将解析常见的日志报错信息。 + +## 3.1 - 碰撞/选择框错误 + +典型错误提示: + +> `[Blocks][error]-minecraft:collision_box: min 值不能低于 (-8, 0, -8),max 值不能超过 (8, 16, 8)` + +排查步骤: +- 检查 X/Z 轴数值是否在 -8 至 8 范围内 +- 检查 Y 轴数值是否在 0 至 16 范围内 +- 确保碰撞框不超过 16×16×16 单位区域 + +## 3.2 - 模型尺寸错误 + +典型错误提示: + +> `geometry.your_block 包含 X 个超出范围的立方体...` + +解决方案: +- 缩小几何体尺寸 +- 将大型模型拆分为多个方块 + +--- + +## 后续步骤 + +若问题仍未解决,欢迎加入Discord社区交流。如发现文档内容有误,请通过GitHub提交修正建议! \ No newline at end of file diff --git a/docs/wiki/2-方块/2-外观/block-models.md b/docs/wiki/2-方块/2-外观/block-models.md new file mode 100644 index 00000000..4941aec8 --- /dev/null +++ b/docs/wiki/2-方块/2-外观/block-models.md @@ -0,0 +1,190 @@ +--- +title: 创建方块模型 +category: 教程 +tags: + - 新手 + - 简单 +mentions: + - QuazChick +--- + +# 创建方块模型 + + + +尽管自定义方块无法使用原版的[方块形状](/blocks/block-shapes),但我们可以创建遵循类似实体模型格式的自定义模型。本教程将引导您使用[Blockbench](https://blockbench.net)为"纸袋"创建自定义方块模型。通过学习本教程,您将掌握专为自定义方块设计的Minecraft几何体核心功能。 + +**注意:** 自定义方块模型必须符合[模型尺寸限制](/blocks/block-components.html#geometry)。 + +## 模型设置 + +打开Blockbench并新建一个`Bedrock Block`项目。 + +![新建项目面板中选择Bedrock Block](/assets/images/blocks/block-models/new_project.png) + +现在可以为模型设置标识符!您可以在此处决定文件名,或稍后修改。 + +UV模式和纹理尺寸应保持不变。 + +:::danger 命名空间 +模型标识符**不使用命名空间且不能包含冒号**。冒号曾用于模型继承,在现代几何格式中已失效。 +::: + +![](/assets/images/blocks/block-models/project_settings.png) + +## 添加立方体 + +虽然不一定是完美立方体,但模型中的元素都称为**立方体**。所有立方体必须包含在作为分组的**骨骼**中。 + +首先通过大纲视图点击`Add Group`创建根骨骼。按`F2`可重命名骨骼。 + +![](/assets/images/blocks/block-models/root_bone.png) + +"纸袋"模型需要两个立方体:一个作为提手,一个作为主体。选择根骨骼后点击`Add Cube`添加。 + + + +通过顶部工具栏可移动、缩放和旋转立方体。以下是"paper_bag"模型使用的两个立方体: + + + +## 移除面 + +某些面可能无需可见。在示例中,移除纸袋顶部面以实现透视效果。 + +点击预览中的面,在UV面板删除其UV映射即可移除。 + + + +提手仅需保留南北面。在UV面板按住Ctrl可多选面名称进行操作。 + + + +## 预览纹理 + +:::tip +点击`Create Texture`选择`Blank`即可在Blockbench中创建纹理。 +::: + +"纸袋"模型包含以下预制纹理: + +- `textures/blocks/paper_bag.png` + + +
+
+ + +- `textures/blocks/paper_bag_bottom_fold.png` + + +
+
+ + +- `textures/blocks/paper_bag_side_gusset.png` + + + +将纹理导入Blockbench后拖拽至对应面,初始效果可能不够理想... + + + +## 调整UV布局 + +通过UV面板重新定位/缩放面的UV映射来修正纹理位置。选择目标面后操作UV面板即可。 + + +
+ + +## 修改材质实例 + +自定义材质实例名称可便捷定义面渲染方式。 + +右键立方体选择`Edit Material Instances`进行编辑。 + +![](/assets/images/blocks/block-models/select_edit_material_instances.png) + +在示例中,东西面需要独立纹理。通过分配材质实例实现。 + +![](/assets/images/blocks/block-models/edit_material_instances.png) + +## 应用几何体与纹理 + +通过`File > Export > Export Bedrock Geometry`导出至`RP/models/blocks`文件夹后,即可在方块JSON中引用模型。 + +通过`RP/textures/terrian_texture.json`短名称应用纹理。本例中纸袋不遮挡光线,故设置光照衰减为0。 + +::: code-group +```json [BP/blocks/paper_bag.json] +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:paper_bag", + "menu_category": { + "category": "items" + } + }, + "components": { + // 通过引用模型标识符应用模型 + "minecraft:geometry": "geometry.paper_bag", + // 应用纹理及其他渲染配置 + "minecraft:material_instances": { + "*": { + "texture": "paper_bag", + "render_method": "alpha_test" // 禁用背面剔除并启用透明 + }, + "down": { + "texture": "paper_bag_bottom_fold", + "render_method": "alpha_test" // 所有实例必须保持一致 + }, + // 模型中使用的自定义实例名称 + "side_gusset": { + "texture": "paper_bag_side_gusset", + "render_method": "alpha_test" // 所有实例必须保持一致 + } + }, + // 防止产生阴影 + "minecraft:light_dampening": 0 + } + } +} +``` +::: \ No newline at end of file diff --git a/docs/wiki/2-方块/3-巧思案例/applying-effects.md b/docs/wiki/2-方块/3-巧思案例/applying-effects.md new file mode 100644 index 00000000..5d929bac --- /dev/null +++ b/docs/wiki/2-方块/3-巧思案例/applying-effects.md @@ -0,0 +1,183 @@ +--- +title: 持续效果应用指南 +category: 教程 +tags: + - 实验性内容 + - 初级难度 +mentions: + - MysticChair + - SirLich + - MedicalJewel105 + - QuazChick +--- + +# 持续效果应用指南 + + + +::: tip 格式要求 & 最低引擎版本 `1.20.30` +本教程假设您已掌握[方块状态](/blocks/block-states)的基本概念。建议在开始前先阅读[方块基础指南](/blocks/blocks-intro)。 +::: + +::: warning 实验性功能 +需要启用 `假日创作者功能` 来触发事件。 +::: + +本教程将展示如何在实体持续站立于方块时为其附加状态效果。 + +## 设置步骤 + +我们需要在代码中添加以下组件,首先创建一个用于记录站立状态的布尔值: + +::: code-group +```json [minecraft:block > description] +"states": { + "wiki:stood_on": [false, true] +} +``` +::: + +接下来添加 `minecraft:queued_ticking` 组件,当检测到站立状态为 `true` 时触发效果事件: + +::: code-group +```json [minecraft:block > components] +"minecraft:queued_ticking": { + "looping": true, + "interval_range": [1, 1], + "on_tick": { + "event": "wiki:add_effect", + "target": "self", + "condition": "q.block_state('wiki:stood_on')" + } +} +``` +::: + +使用 `minecraft:on_step_on` 事件组件在实体踏上方块时更新状态: + +::: code-group +```json [minecraft:block > components] +"minecraft:on_step_on": { + "event": "wiki:step_on" +} +``` +::: + +通过 `minecraft:on_step_off` 事件组件在实体离开时重置状态: + +::: code-group +```json [minecraft:block > description] +"minecraft:on_step_off": { + "event": "wiki:step_off" +} +``` +::: + +配置事件处理逻辑。首先定义状态更新事件: + +::: code-group +```json [minecraft:block > components] +"events": { + "wiki:step_on": { + "set_block_state": { + "wiki:stood_on": true + } + }, + "wiki:step_off": { + "set_block_state": { + "wiki:stood_on": false + } + } +} +``` +::: + +最后添加效果触发事件: + +::: code-group +```json [minecraft:block > components] +"wiki:add_effect": { + "run_command": { + "command": "effect @e[r=1] wither 2 2" + } +} +``` +::: + +完成!上述代码将在实体持续站立时施加凋零效果。 + +## 示例JSON + + + +::: code-group +```json [BP/blocks/wither_block.json] +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:wither_block", + "menu_category": { + "category": "nature" + }, + "states": { + "wiki:stood_on": [false, true] + } + }, + "components": { + "minecraft:geometry": "geometry.wither_block", + "minecraft:material_instances": { + "*": { + "texture": "wither_block" + } + }, + "minecraft:loot": "loot_tables/empty.json", + "minecraft:on_step_on": { + "event": "wiki:step_on" + }, + "minecraft:on_step_off": { + "event": "wiki:step_off" + }, + "minecraft:queued_ticking": { + "looping": true, + "interval_range": [1, 1], + "on_tick": { + "event": "wiki:add_effect", + "condition": "q.block_state('wiki:stood_on')" + } + }, + "minecraft:map_color": "#181818" + }, + "events": { + "wiki:step_on": { + "set_block_state": { + "wiki:stood_on": true + } + }, + "wiki:step_off": { + "set_block_state": { + "wiki:stood_on": false + } + }, + "wiki:add_effect": { + "run_command": { + "command": "effect @e[r=1] wither 2 2" + } + } + } + } +} +``` +::: + + + +## 技术说明 + +关于代码实现的几点说明: + +- **问**:为何使用 `run_command` 事件响应来触发效果,而不是专用的 `add_mob_effect` 响应? + +- **答**:当通过 `minecraft:queued_ticking` 触发时,`add_mob_effect` 无法获取有效目标,因此必须改用 `/effect` 命令的目标选择器。 + +注意当效果时长设置小于2秒时可能出现异常。如果效果会造成持续伤害(如中毒),伤害会在效果施加时立即生效。这将导致实体受到的伤害频率高于原版机制(当实体快速移动时)。可通过将命令中的效果时长设为1秒进行对比测试。保持2秒时长可确保伤害间隔符合原版节奏。 \ No newline at end of file diff --git a/docs/wiki/2-方块/3-巧思案例/avoiding-state-limit.md b/docs/wiki/2-方块/3-巧思案例/avoiding-state-limit.md new file mode 100644 index 00000000..cdb687be --- /dev/null +++ b/docs/wiki/2-方块/3-巧思案例/avoiding-state-limit.md @@ -0,0 +1,74 @@ +--- +title: 规避状态值上限 +category: 教程 +tags: + - 专家 +mentions: + - Kaioga5 + - QuazChick +--- + +# 规避状态值上限 + + + +## 前言 + +方块每个状态最多只能拥有16个有效状态值。本指南将解释如何避免触及这个上限。 + +:::tip +本教程不会直接展示如何突破16个状态值的限制,但通过以下方法可以模拟实现类似效果! +::: + +## 实现原理 + +该方法通过组合两个或多个状态值进行复用,并在排列组合或条件判断中读取这些组合值。例如,一个需要表示26个英文字母的方块,可以通过数值组合的方式减少状态值数量。 + +## 逻辑推演 + +以下示例代码演示了如何通过组合实现字母映射: +``` +1 & 1 = A 1 & 5 = E 1 & 9 = I 1 & 13 = M +1 & 2 = B 1 & 6 = F 1 & 10 = J +1 & 3 = C 1 & 7 = G 1 & 11 = K +1 & 4 = D 1 & 8 = H 1 & 12 = L +``` +继续扩展: +``` +2 & 1 = N 2 & 5 = R 2 & 9 = V 2 & 13 = Z +2 & 2 = O 2 & 6 = S 2 & 10 = W +2 & 3 = P 2 & 7 = T 2 & 11 = X +2 & 4 = Q 2 & 8 = U 2 & 12 = Y +``` + +通过这种组合方式,仅需15个状态值即可实现26个字母的映射。可用组合值越多,状态上限的扩展空间就越大。 + +## 实际应用 + +参照上述示例,您的状态定义应如下所示: + +::: code-group +```json [minecraft:block > description] +"states": { + "wiki:value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], + "wiki:division": [1, 2] +} +``` +::: + +对应的条件判断语句应如下编写: + +```json +"condition": "q.block_state('wiki:division') == 1 && q.block_state('wiki:value') == 1" +``` +```json +"condition": "q.block_state('wiki:division') == 1 && q.block_state('wiki:value') == 2" +``` + +## 知识总结 + +您已掌握如何通过状态值组合突破64个状态值的限制,使用更少的资源实现更复杂的逻辑。 + +:::tip +通过增加组合维度(使用2个以上的状态值),您可以获得更多可能的组合结果。 +::: \ No newline at end of file diff --git a/docs/wiki/2-方块/3-巧思案例/block-texture-variation.md b/docs/wiki/2-方块/3-巧思案例/block-texture-variation.md new file mode 100644 index 00000000..99f7eece --- /dev/null +++ b/docs/wiki/2-方块/3-巧思案例/block-texture-variation.md @@ -0,0 +1,84 @@ +--- +title: 纹理变体 +category: 教程 +tags: + - 中级 +mentions: + - SirLich + - solvedDev + - Hatchibombotar + - SmokeyStack + - MedicalJewel105 + - QuazChick +--- + +# 纹理变体 + + + +方块纹理变体是指单个方块可以拥有多个纹理。这在需要表现细微差异的方块(如带有小石块的泥土或不同生长阶段的草方块)时非常实用。 + +要启用纹理变体功能,需在资源包的`textures`文件夹中创建`terrain_texture.json`文件。在方块定义中,纹理应设置为包含`variations`键的字典,该键对应一个由字典组成的数组。每个字典必须包含指向纹理文件的`path`键,并可添加`weight`参数控制纹理出现的概率。 + +## 应用纹理变体 + +以下是为泥土方块创建三种纹理变体的示例: + +- 在资源包中创建`textures/terrain_texture.json`文件 +- 在JSON文件中定义需要添加变体的方块,示例如下: + +::: code-group +```json [RP/textures/terrain_texture.json] +{ + "texture_name": "atlas.terrain", + "resource_pack_name": "wiki", // 资源包ID + "padding": 8, // 防止纹理视觉溢出 + "num_mip_levels": 4, // 远距离/倾斜视角下的纹理质量 + "texture_data": { + "dirt": { + "textures": { + "variations": [ + { "path": "textures/blocks/dirt0" }, + { "path": "textures/blocks/dirt1" }, + { "path": "textures/blocks/dirt2" } + ] + } + } + } +} +``` +::: + +- 创建或修改三个泥土纹理文件,分别命名为`dirt0.png`、`dirt1.png`和`dirt2.png` +- 将纹理文件放置于`path`参数指定的路径下(可添加子文件夹保持整洁) + +## 权重控制变体分布 + +完成基础配置后,可通过添加权重值调整纹理出现概率: + +::: code-group +```json [RP/textures/terrain_texture.json] +{ + "texture_name": "atlas.terrain", + "resource_pack_name": "wiki", // 资源包ID + "padding": 8, // 防止纹理视觉溢出 + "num_mip_levels": 4, // 远距离/倾斜视角下的纹理质量 + "texture_data": { + "dirt": { + "textures": { + "variations": [ + { "path": "textures/blocks/dirt0", "weight": 70 }, // 70%出现概率 + { "path": "textures/blocks/dirt1", "weight": 20 }, // 20%出现概率 + { "path": "textures/blocks/dirt2", "weight": 10 } // 10%出现概率 + ] + } + } + } +} +``` +::: + +注意事项: + +- 当前版本存在纹理集文件引用问题,可能导致无法正确识别MER文件或常规纹理文件 + -- [官方漏洞报告](https://bugs.mojang.com/browse/MCPE-126617) \ No newline at end of file diff --git a/docs/wiki/2-方块/3-巧思案例/fake-blocks.md b/docs/wiki/2-方块/3-巧思案例/fake-blocks.md new file mode 100644 index 00000000..6da8f63b --- /dev/null +++ b/docs/wiki/2-方块/3-巧思案例/fake-blocks.md @@ -0,0 +1,279 @@ +--- +title: 伪方块 +category: 教程 +tags: + - 中级 +mentions: + - SirLich + - solvedDev + - Joelant05 + - MedicalJewel105 + - aexer0e + - ThijsHankelMC + - QuazChick +--- + +# 伪方块 + + + +::: warning 实验性功能 +需要启用 `Holiday Creator Features` 来触发方块事件。 +::: + +当你的方块需要实现Minecraft原生不支持的功能时,可以通过创建具有方块特征的实体来模拟实现。 + +## 创建碰撞箱 + +[固体实体教程](/entities/solid-entities)中介绍了四种创建碰撞箱的方式,涉及 `runtime_identifiers`、方块和组件组合方案。 + +## 基础组件 + +以下组件是让实体模拟方块行为的关键配置。注意不要添加 `"minecraft:physics": {}` 组件,否则实体会受重力影响坠落或与水/岩浆等方块发生异常碰撞。 + +::: code-group +```json [BP/entities/your_entity.json#minecraft:entity/components] +{ + // 需要击退抗性来防止实体被击退 + "minecraft:knockback_resistance": { + "value": 1 + }, + // 控制实体是否可被推动 + "minecraft:pushable": { + "is_pushable": false, + "is_pushable_by_piston": true + }, + // 设置实体可被推动的穿透距离 + "minecraft:push_through": { + "value": 1 + }, + // 使实体无敌 + "minecraft:damage_sensor": { + "triggers": [ + { + "deals_damage": false, + "cause": "all" + } + ] + } +} +``` +::: + +## 实体旋转对齐 + +通过数学计算实现实体旋转对齐: + +::: code-group +```json [动画控制器] +"rotation": [ 0, "-q.body_y_rotation + (Math.round(q.body_y_rotation / 90) * 90)", 0 ] +``` +::: + +将此代码应用在模型动画的核心分组(包含其他所有分组的父级),确保X轴和Z轴旋转中心点为0以避免视觉错位。同时避免添加以下组件: + +- `"minecraft:behavior.look_at_entity": {}` +- `"minecraft:behavior.look_at_player": {}` +- `"minecraft:behavior.look_at_target": {}` + +这些组件会改变目标Y轴旋转角度,导致模型异常位移。同时也不要添加行走类组件。 + +## 实体位置对齐 + +位置对齐的实现较为复杂,需分步操作: + +1. 在 `minecraft:entity_spawned` 事件中生成临时方块 +2. 通过指令生成虚拟实体 +3. 将虚拟实体转换为目标实体 + +::: code-group +```json [BP/entities/your_entity.json#minecraft:entity/events] +// 原实体中的事件 +"minecraft:entity_spawned": { + "add": { + "components_groups": [ + "despawn" // 需要移除初始实体 + ] + }, + "run_command": { + "command": [ + "setblock ~~~ wiki:align" + ] + } +} +``` +::: + +::: code-group +```json [BP/entities/your_entity.json#minecraft:entity/component_groups] +// 原实体中的组件组 +"component_groups": { + "despawn": { + "minecraft:despawn": {} + } +} +``` +::: + +用于生成虚拟实体的对齐方块配置: + +::: code-group +```json [BP/blocks/your_dummy_block.json] +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:align" + }, + "components": { + "minecraft:light_dampening": 0, + "minecraft:collision_box": false, + "minecraft:selection_box": false, + "minecraft:loot": "loot_tables/empty.json", + "minecraft:geometry": "geometry.empty", + "minecraft:material_instances": { + "*": { + "texture": "empty" + } + }, + "minecraft:destructible_by_mining": { + "seconds_to_destroy": 2 + }, + "minecraft:on_placed": { + "event": "wiki:event" + } + }, + "events": { + "wiki:event": { + "run_command": { + "command": [ + "setblock ~~~ air", // 移除临时方块 + "summon wiki:dummy_align" // 生成虚拟实体 + ] + } + } + } + } +} +``` +::: + +虚拟实体的转换配置: + +::: code-group +```json [BP/entities/your_dummy_entity.json] +{ + "format_version": "1.13.0", + "minecraft:entity": { + "description": { + "identifier": "wiki:dummy_align", // 虚拟实体用于避免触发原实体的生成事件 + "is_spawnable": false, + "is_summonable": true, + "is_experimental": false + }, + "component_groups": { + "transform": { + "minecraft:transformation": { + "into": "wiki:your_entity", + "delay": 0 + } + } + }, + "components": { + "minecraft:physics": { + "has_gravity": false + }, + "minecraft:collision_box": { + "width": 0.1, + "height": 0.1 + }, + "minecraft:damage_sensor": { + "triggers": { + "cause": "all", + "deals_damage": false + } + } + }, + "events": { + "minecraft:entity_spawned": { + "add": { + "component_groups": ["transform"] + } + } + } + } +} +``` +::: + +## 裂纹纹理效果 + +为实体添加原生方块的破坏裂纹效果: + +1. 添加原版裂纹纹理(兼容材质包) +2. 创建专用几何体 +3. 配置渲染控制器 + +::: code-group +```json [RP/entity/your_entity.json#description] +"textures": { + "default": "textures/entity/your_texture", + "destroy_stage_0": "textures/environment/destroy_stage_0", + "destroy_stage_1": "textures/environment/destroy_stage_1", + "destroy_stage_2": "textures/environment/destroy_stage_2", + "destroy_stage_3": "textures/environment/destroy_stage_3", + "destroy_stage_4": "textures/environment/destroy_stage_4", + "destroy_stage_5": "textures/environment/destroy_stage_5", + "destroy_stage_6": "textures/environment/destroy_stage_6", + "destroy_stage_7": "textures/environment/destroy_stage_7", + "destroy_stage_8": "textures/environment/destroy_stage_8", + "destroy_stage_9": "textures/environment/destroy_stage_9" +} +``` +::: + +创建防Z轴冲突的几何体: + +::: code-group +```json [RP/entity/your_entity.json#description] +"geometry": { + "default": "geometry.your_geometry", + "broken": "geometry.broken" +} +``` +::: + +配置动态纹理渲染控制器: + +::: code-group +```json [RP/render_controllers/my_entity.json] +"controller.render.broken": { + "arrays": { + "textures": { + "array.broken": [ + "texture.destroy_stage_9", + "texture.destroy_stage_8", + "texture.destroy_stage_7", + "texture.destroy_stage_6", + "texture.destroy_stage_5", + "texture.destroy_stage_4", + "texture.destroy_stage_3", + "texture.destroy_stage_2", + "texture.destroy_stage_1", + "texture.destroy_stage_0", + "texture.normal" + ] + } + }, + "geometry": "Geometry.broken", + "materials": [ + { + "*": "Material.default" + } + ], + "textures": [ + "array.broken[q.health * 1]" // 根据实体生命值调整参数:10生命值保持1倍,20生命值改为0.5,40生命值改为0.25... + ] +} +``` +::: \ No newline at end of file diff --git a/docs/wiki/2-方块/3-巧思案例/flipbook-textures.md b/docs/wiki/2-方块/3-巧思案例/flipbook-textures.md new file mode 100644 index 00000000..2f2e874b --- /dev/null +++ b/docs/wiki/2-方块/3-巧思案例/flipbook-textures.md @@ -0,0 +1,172 @@ +--- +title: 纹理动画 +category: + - 教程 +tags: + - 中级 +mentions: + - MedicalJewel105 + - SquisSloim + - SmokeyStack + - QuazChick +--- + +# 纹理动画 + + + +通过本文你将了解: + +- 如何为方块应用翻页书贴图 +- `RP/textures/flipbook_textures.json` 中可用的参数及其作用 + +## 应用翻页书贴图 + +翻页书贴图即动态纹理。火焰、水、岩浆和岩浆块等方块都使用此类贴图。你也可以为自己创建的方块添加动态纹理! + +首先以原版岩浆的动效贴图为例。只需在材质实例组件中将 `texture` 值设为 `Vanilla RP/textures/terrain_texture.json` 中定义的纹理名称即可: + +```json +"magma": { + "textures": "textures/blocks/magma" +} +``` + +::: code-group +```json [BP/blocks/flipbook_block.json] +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:flipbook_block", + "menu_category": { + "category": "construction" + } + }, + "components": { + "minecraft:unit_cube": {}, + "minecraft:material_instances": { + "*": { + "texture": "magma" // 将纹理名称填在此处 + } + } + } + } +} +``` +::: + +![](/assets/images/blocks/flipbook-textures/animated_texture_1.gif) + +现在你的方块已经拥有动态纹理了! + +## 定义翻页书贴图 + +在为方块添加动态纹理后,我们需要了解其工作原理。 + +1. 游戏会根据 `terrain_texture.json` 中定义的纹理名称(如 magma)读取对应贴图路径 + +::: code-group +```json [RP/textures/terrain_texture.json] +{ + "texture_name": "atlas.terrain", + "resource_pack_name": "wiki", // 资源包ID + "padding": 8, // 防止贴图边缘像素溢出 + "num_mip_levels": 4, // 控制远视角和倾斜视角下的材质质量 + "texture_data": { + "magma": { + "textures": "textures/blocks/magma" + } + } +} +``` +::: + +2. 游戏会根据上述名称(magma)在 `flipbook_textures.json` 中查找对应的动画参数 + +::: code-group +```json [RP/textures/flipbook_textures.json] +[ + { + "atlas_tile": "magma", + "flipbook_texture": "textures/blocks/magma", + "ticks_per_frame": 10 + } +] +``` +::: + +`"atlas_tile"` 表示将动画参数绑定到 `terrain_texture.json` 中定义的 magma 纹理名称。 + +3. 所有使用 `magma` 作为纹理的方块都将应用此动态纹理 + +## 翻页书贴图参数配置 + +在查阅官方示例时,你可能会发现一些额外的配置参数: + +| 参数名 | 类型 | 描述 | +|--------------------|------------------|-------------------------------------------------------------------------------------------------| +| flipbook_texture | string | 纹理文件路径 | +| atlas_tile | string | 在terrain_textures.json中定义的短名称 | +| atlas_index | integer | 短名称对应的纹理数组中目标纹理的索引 | +| atlas_tile_variant | integer | 短名称对应的方块变体数组中纹理的变化索引 | +| ticks_per_frame | integer | 帧切换速度(单位:ticks,20 ticks = 1秒) | +| frames | array 或 integer | 帧索引数组;或表示总帧数的整数值 | +| replicate | integer | 像素倍数(仅允许2的幂次值),默认:1 | +| blend_frames | boolean | 是否启用帧过渡平滑效果,默认:true | + +### `atlas_index` + +用于指定需要添加动画效果的纹理在数组中的索引位置 + +::: code-group +```json [RP/textures/terrain_texture.json#texture_data] +"dirt": { + "textures": [ + "textures/blocks/dirt", + "textures/blocks/coarse_dirt" // 假设此纹理需要添加动效 + ] +} +``` +::: + +由于要设置第二个纹理(索引为1)的动效,需要在对应配置中设置 `"atlas_index": 1` + +### `atlas_tile_variant` + +用于指定需要添加动画效果的方块变体(需在 `variations` 数组中定义)索引 + +::: code-group +```json [RP/textures/terrain_texture.json#texture_data] +"dirt": { + "textures": [ + { + "variations": [ + { "path": "textures/blocks/dirt_va" }, // 假设此变体需要添加动效 + { "path": "textures/blocks/dirt0" }, + { "path": "textures/blocks/dirt1" } + ] + } + ] +} +``` +::: + +若需要设置索引1的变体动画,需在参数中添加 `"atlas_tile_variant": 1` + +### `replicate` + +控制贴图像素显示倍数。仅允许使用2的幂次数值,当原帧分辨率较小时可实现像素扩展效果 + +| 参数值 | 效果说明 | +|--------------------|----------------------------| +| < 0 | 动画失效 | +| 0 | 动画失效且贴图不显示 | +| 2 | 每像素扩展为4格(尺寸缩小1/2) | +| x | 每像素扩展为x²格(尺寸缩小1/x) | + +## 效果展示 + +![](/assets/images/blocks/flipbook-textures/animated_texture_2.gif) + +现在你可以开始修改原版动效贴图或创作属于你的动态纹理了! \ No newline at end of file diff --git a/docs/wiki/2-方块/3-巧思案例/ore-loot-tables.md b/docs/wiki/2-方块/3-巧思案例/ore-loot-tables.md new file mode 100644 index 00000000..98871c1a --- /dev/null +++ b/docs/wiki/2-方块/3-巧思案例/ore-loot-tables.md @@ -0,0 +1,215 @@ +--- +title: 矿石战利品表 +category: 教程 +tags: + - 简单 +mentions: + - SykoUSS + - ExDrill + - MedicalJewel105 + - SmokeyStack + - Chikorita-Lover + - SirLich + - TheItsNameless + - QuazChick + - Keyyard +--- + +# 矿石战利品表 + + + +::: tip 格式版本 `1.20.30` +本教程假设您已具备方块基础知识。 +开始前请先查阅[方块指南](/blocks/blocks-intro)。 +::: + +::: warning 实验性功能 +需要启用`假日创造者特性`来触发事件。 +::: + +本教程旨在展示一种通过战利品表创建自定义矿石方块的全新方法。使用`minecraft:loot`组件时将始终调用指定战利品表,而通过在战利品表中添加`match_tool`条件,可以逐池限定挖掘工具要求。 + +- 特性: + + - 可使用指定工具挖掘(本教程以铁镐为例) + - 可指定工具附魔等级 + - 经验值掉落支持 + +- 限制: + + - 所有工具需逐个单独指定 + - 非玩家破坏方式(爆炸/指令等)不会触发掉落 + +## 方块JSON + +以下方块行为文件可作为模板使用。记得通过`terrain_texture.json`设置方块纹理。 + +::: code-group +```json [BP/blocks/silver_ore.json] +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:silver_ore", + "menu_category": { + "category": "nature", + "group": "itemGroup.name.ore" + } + }, + "components": { + ... + // 触发加载带有经验奖励结构的事件 + "minecraft:on_player_destroyed": { + "event": "wiki:xp_reward" + }, + "minecraft:loot": "loot_tables/blocks/silver_ore.json" // 使用精准采集时不会掉落 + }, + "events": { + "wiki:xp_reward": { + "run_command": { + "command": [ + "structure load ore_xp_reward ~~~" // 需下载下方预存经验球的结构文件 + ] + } + } + } + } +} +``` + +## 战利品表 + +以下示例展示了必需组件 + +::: code-group +```json [BP/loot_tables/blocks/silver_ore.json] +{ + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "match_tool", + "item": "minecraft:iron_pickaxe", + "count": 1 + } + ], + "entries": [ + { + "type": "item", + "name": "wiki:raw_silver" + } + ] + } + ] +} +``` + +## 附魔等级限定 + +可通过添加`enchantments`区间限定附魔等级。注意每组工具及其等级需独立成池。 + +目前兼容检测1级和2级附魔。 + +::: code-group +```json [BP/loot_tables/blocks/silver_ore.json#pools] +"conditions": [ + { + "condition": "match_tool", + "item": "minecraft:iron_pickaxe", + "count": 1, + "enchantments": [ + { + "fortune": { + "level": 1 + } + } + ] + } +] +``` + +## 非实验性方案 + +若不想通过方块事件触发经验奖励,可选用以下替代方案。 + +请从[此处](#下载结构文件)下载内含经验球的`ore_xp_reward`结构文件。 + +### 方案一:虚拟物品与循环函数 + +**步骤1**:为需要掉落经验的方块创建战利品表。以"minecraft:redstone"为例: + +```json +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "item", + "name": "minecraft:redstone" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "item", + "name": "minecraft:barrier" // 虚拟物品 + } + ] + } + ] +} +``` + +此处添加已有物品"minecraft:barrier"作为触发经验掉落的虚拟物品,也可创建专用虚拟物品。 + +**步骤2**:创建循环函数处理掉落物品。需在`BP/functions/tick.json`中定义: + +```c +execute as @e[type=item, name="Barrier"] at @s run structure load ore_xp_reward ~~~ +execute as @e[type=item, name="Barrier"] run kill +``` + +该函数会捕捉名为"Barrier"的掉落物,加载经验奖励结构后销毁虚拟物品。 + +### 方案二:纯函数循环 + +**步骤1**:创建基础战利品表。以"wiki:raw_silver"为例: + +```json +{ + "pools": [ + { + "entries": [ + { + "type": "item", + "name": "wiki:raw_silver" + } + ] + } + ] +} +``` + +**步骤2**:创建标记处理函数。需在`BP/functions/tick.json`中定义: + +```c +execute as @e[type=item, name="Raw Silver", tag=!xp] at @s run structure load ore_xp_reward ~~~ +execute as @e[type=item, name="Raw Silver", tag=!xp] run tag @s add xp +``` + +该函数为所有未标记"xp"的银矿掉落物加载经验结构,并通过标签防止重复触发。 + +请根据实际情况调整物品ID、标签等参数。 + +## 下载结构文件 + + 下载MCSTRUCTURE + +## 实际效果 + +![](/assets/images/blocks/ore-loot/result.gif) \ No newline at end of file diff --git a/docs/wiki/2-方块/3-巧思案例/precise-rotation.md b/docs/wiki/2-方块/3-巧思案例/precise-rotation.md new file mode 100644 index 00000000..e13de9c2 --- /dev/null +++ b/docs/wiki/2-方块/3-巧思案例/precise-rotation.md @@ -0,0 +1,352 @@ +--- +title: 精确旋转 +category: 教程 +tags: + - experimental + - expert +mentions: + - QuazChick +--- + +# 精确旋转 + + + +::: tip 格式与最低引擎版本 `1.20.30` +本教程假定您已具备方块的进阶知识与Molang基础。 +开始前建议先阅读[方块指南](/blocks/blocks-intro)。 +::: + +::: warning 实验性功能 +需要启用 `Holiday Creator Features` 来触发事件。 +::: + +本教程将引导您实现可支持次级方位旋转的方块(如爬行者头颅与告示牌),通过一个包含此类旋转类型的"贝壳"方块作为实例进行讲解。 + +*查看常规旋转方式?请前往[此页面](/blocks/rotatable-blocks)!* + +![随机朝向的自定义贝壳方块](/assets/images/blocks/precise-rotation/showcase.png) + +特性概览: + +- 可附着于方块顶部,具备16种旋转角度 +- 可附着于方块的侧表面(北、东、南、西) +- 旋转行为与原版生物头颅一致,且无需依赖方块实体性能消耗! + +## 方块模型 + +要实现更精确的旋转机制,您的方块模型需额外添加若干骨骼节点。 + +实现地面精确旋转需要4个基础骨骼节点,每个对应不同的Y轴旋转角度: + +- `up_0` (Y旋转角度 = 0) +- `up_22_5` (Y旋转角度 = 22.5) +- `up_45` (Y旋转角度 = 45) +- `up_67_5` (Y旋转角度 = 67.5) + +**上述角度值采用顺时针方向递增** + +这些骨骼除旋转参数外,在结构上通常是互为复制的。 + +:::tip + +建议将所有骨骼的枢轴点设置于 `[0, 0, 0]` ,以确保其围绕方块中心旋转。 + +::: + +此外,还需一个 `side` 骨骼用于侧表面附着时的定位调整。 + +下方展示的"贝壳"模型结构可供参考: + +![](/assets/images/blocks/precise-rotation/model_bones.png) + + + +::: code-group +```json [RP/models/blocks/shell.geo.json] +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.shell", + "texture_width": 16, + "texture_height": 16, + "visible_bounds_width": 3, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "shell", + "pivot": [0, 0, 0] + }, + { + "name": "up_0", + "parent": "shell", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-3, 0, -3], + "size": [6, 3, 6], + "uv": { + "north": { "uv": [0, 6], "uv_size": [6, 3] }, + "east": { "uv": [0, 6], "uv_size": [6, 3] }, + "south": { "uv": [0, 6], "uv_size": [6, 3] }, + "west": { "uv": [0, 6], "uv_size": [6, 3] }, + "up": { "uv": [6, 6], "uv_size": [-6, -6] }, + "down": { "uv": [6, 6], "uv_size": [-6, -6] } + } + } + ] + }, + { + "name": "up_22_5", + "parent": "shell", + "pivot": [0, 0, 0], + "rotation": [0, 22.5, 0], + "cubes": [ + { + "origin": [-3, 0, -3], + "size": [6, 3, 6], + "uv": { + "north": { "uv": [0, 6], "uv_size": [6, 3] }, + "east": { "uv": [0, 6], "uv_size": [6, 3] }, + "south": { "uv": [0, 6], "uv_size": [6, 3] }, + "west": { "uv": [0, 6], "uv_size": [6, 3] }, + "up": { "uv": [6, 6], "uv_size": [-6, -6] }, + "down": { "uv": [6, 6], "uv_size": [-6, -6] } + } + } + ] + }, + { + "name": "up_45", + "parent": "shell", + "pivot": [0, 0, 0], + "rotation": [0, 45, 0], + "cubes": [ + { + "origin": [-3, 0, -3], + "size": [6, 3, 6], + "uv": { + "north": { "uv": [0, 6], "uv_size": [6, 3] }, + "east": { "uv": [0, 6], "uv_size": [6, 3] }, + "south": { "uv": [0, 6], "uv_size": [6, 3] }, + "west": { "uv": [0, 6], "uv_size": [6, 3] }, + "up": { "uv": [6, 6], "uv_size": [-6, -6] }, + "down": { "uv": [6, 6], "uv_size": [-6, -6] } + } + } + ] + }, + { + "name": "up_67_5", + "parent": "shell", + "pivot": [0, 0, 0], + "rotation": [0, 67.5, 0], + "cubes": [ + { + "origin": [-3, 0, -3], + "size": [6, 3, 6], + "uv": { + "north": { "uv": [0, 6], "uv_size": [6, 3] }, + "east": { "uv": [0, 6], "uv_size": [6, 3] }, + "south": { "uv": [0, 6], "uv_size": [6, 3] }, + "west": { "uv": [0, 6], "uv_size": [6, 3] }, + "up": { "uv": [6, 6], "uv_size": [-6, -6] }, + "down": { "uv": [6, 6], "uv_size": [-6, -6] } + } + } + ] + }, + { + "name": "side", + "parent": "shell", + "pivot": [0, 5, 8], + "rotation": [90, 0, 0], + "cubes": [ + { + "origin": [-3, 5, 8], + "size": [6, 3, 6], + "uv": { + "north": { "uv": [0, 6], "uv_size": [6, 3] }, + "east": { "uv": [0, 6], "uv_size": [6, 3] }, + "south": { "uv": [0, 6], "uv_size": [6, 3] }, + "west": { "uv": [0, 6], "uv_size": [6, 3] }, + "up": { "uv": [6, 6], "uv_size": [-6, -6] }, + "down": { "uv": [6, 6], "uv_size": [-6, -6] } + } + } + ] + } + ] + } + ] +} +``` +::: + + + +## 基础方块JSON + +下方是待添加高级旋转功能的"贝壳"方块基础定义。 + +::: code-group +```json [BP/blocks/shell.json] +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:shell", + "menu_category": { + "category": "nature" + } + }, + "components": { + // `up` 表面的碰撞/选择框 + "minecraft:collision_box": { + "origin": [-3, 0, -3], + "size": [6, 3, 6] + }, + "minecraft:selection_box": { + "origin": [-3, 0, -3], + "size": [6, 3, 6] + }, + "minecraft:material_instances": { + "*": { + "texture": "shell" // 在 `RP/textures/terrain_texture.json` 中定义的短名称 + } + }, + // 阻止方块附着于 `down` 表面 + "minecraft:placement_filter": { + "conditions": [ + { + "allowed_faces": ["up", "side"] + } + ] + } + } + } +} +``` +::: + +## 方块状态 + +为实现头颅式旋转机制,需为方块添加2种状态参数: + +::: code-group +```json [minecraft:block] +"description": { + ... + "traits": { + // 方块附着面 - 默认为 `north` + "minecraft:placement_position": { + "enabled_states": ["minecraft:block_face"] + } + }, + "states": { + // 当附着于 `up` 表面时的精确旋转参数 + "wiki:rotation": { + "values": { "min": 0, "max": 15 } // 使用更方便的定义整数范围的语法 + } + } +} +``` +::: + +## 旋转Molang表达式 + +相较于逐个定义每个 `wiki:rotation` 值的范围,运用[复合Molang表达式](https://learn.microsoft.com/en-us/minecraft/creator/reference/content/molangreference/examples/molangconcepts/molangintroduction#simple-vs-complex-expressions)配合除法运算可高效实现需求! + +```c +// 转换玩家头部Y旋转角度至正值 +t.positive_head_rot = q.head_y_rotation(0) + 360 * (q.head_y_rotation(0) != math.abs(q.head_y_rotation(0))); +// 计算头部旋转对应的十六分之一圆角(取整) +t.rotation = math.round(t.positive_head_rot / 22.5); + +// 0与16代表重复旋转(0度与360度),故当值为16时返回0 +return t.rotation != 16 ? t.rotation; +``` + +合并为单行表达式以便嵌入JSON: + +::: code-group +```json [minecraft:block > components > minecraft:on_player_placing > condition] +"condition": "t.positive_head_rot = q.head_y_rotation(0) + 360 * (q.head_y_rotation(0) != math.abs(q.head_y_rotation(0))); t.rotation = math.round(t.positive_head_rot / 22.5); return t.rotation != 16 ? t.rotation;" +``` +::: + +## 应用旋转 + +现在通过Molang表达式动态设定方块属性! + +通过事件在玩家放置方块时更新方块属性。此事件上下文可访问 `q.block_face` 与 `q.head_y_rotation`。 + +在方块JSON中添加以下组件与事件: + +::: code-group +```json [minecraft:block] +"components": { + ... + "minecraft:on_player_placing": { + "condition": "q.block_face == 1", // 精确旋转仅作用于 `up` 表面 + "event": "wiki:set_rotation" + } +}, +"events": { + "wiki:set_rotation": { + "set_block_property": { + // 应用之前的Molang表达式设置rotation属性 + "wiki:rotation": "q.block_face == 1 ? { t.positive_head_rot = q.head_y_rotation(0) + 360 * (q.head_y_rotation(0) != math.abs(q.head_y_rotation(0))); t.block_rotation = math.round(t.positive_head_rot / 22.5); return t.block_rotation != 16 ? t.block_rotation; };" + } + } +} +``` +::: + +
+ +接着,使用[置换](/blocks/block-permutations)定义基础朝向旋转,由模型中的精细骨骼进一步细化。 + +按顺序在方块JSON中添加以下置换条件: + +::: code-group +```json [minecraft:block] +"permutations": [ + { + "condition": "q.block_property('wiki:rotation') >= 4 || q.block_property('minecraft:block_face') == 'east'", + "components": { + "minecraft:transformation": { "rotation": [0, -90, 0] } + } + }, + { + "condition": "q.block_property('wiki:rotation') >= 8 || q.block_property('minecraft:block_face') == 'south'", + "components": { + "minecraft:transformation": { "rotation": [0, 180, 0] } + } + }, + { + "condition": "q.block_property('wiki:rotation') >= 12 || q.block_property('minecraft:block_face') == 'west'", + "components": { + "minecraft:transformation": { "rotation": [0, 90, 0] } + } + } +] +``` +::: + +## 骨骼可见性 + +并非所有骨骼节点始终可见,因此需利用 `minecraft:geometry` 的骨骼可见性属性精确控制渲染。多个骨骼存在的目的是因为 `minecraft:transformation` 仅支持90度的整数倍旋转,而精确旋转需要22.5度的增量。 + +在方块组件中加入以下内容: + +::: code-group +```json [minecraft:block > components] +"minecraft:geometry": { + "identifier": "geometry.shell", // 第一步创建的模型 + "bone_visibility": { + "up_0": "q.block_property('minecraft:block_face') == 'up' && !math \ No newline at end of file diff --git a/docs/wiki/2-方块/3-巧思案例/rotatable-blocks.md b/docs/wiki/2-方块/3-巧思案例/rotatable-blocks.md new file mode 100644 index 00000000..d867b475 --- /dev/null +++ b/docs/wiki/2-方块/3-巧思案例/rotatable-blocks.md @@ -0,0 +1,403 @@ +--- +title: 可旋转方块 +category: 教程 +mentions: + - Ultr4Anubis + - SmokeyStack + - ihategravel2 + - MedicalJewel105 + - MajestikButter + - QuazChick +--- + +# 可旋转方块 + + + +::: tip 格式与最低引擎版本 `1.20.30` +本教程假设您已掌握方块基础知识,包括[方块状态](/blocks/block-states)与[方块特性](/blocks/block-traits)。 +开始前请先阅读[方块指南](/blocks/blocks-intro)。 +::: + +## 旋转类型 + +- ### [基本方向旋转](#cardinal-direction-rotation) + + - 适用于雕刻南瓜和熔炉 + - 4个方向 - 'north'(北)、'south'(南)、'east'(东)、'west'(西) + +- ### [面向方向旋转](#facing-direction-rotation) + + - 适用于发射器和观测器 + - 6个方向 - 'down'(下)、'up'(上)、'north'(北)、'south'(南)、'east'(东)、'west'(西) + +- ### [方块面附着旋转](#block-face-rotation) + + - 适用于梯子和物品展示框 + - 6个附着方向 - 'down'(下)、'up'(上)、'north'(北)、'south'(南)、'east'(东)、'west'(西) + +- ### [原木/柱体旋转](#log-rotation) + + - 适用于原木和玄武岩 + - 3个轴对齐方向 + +- ### [精确旋转](/blocks/precise-rotation) + - 适用于头颅、告示牌和旗帜 + - 16个方向(以22.5度递增) + - 4个侧面附着方向 + +## 基本方向旋转 + +### 特性 + +使用`minecraft:placement_direction`方块特性并启用`minecraft:cardinal_direction`状态来设置方块方向。 + +::: code-group +```json [minecraft:block] +"description": { + "identifier": "wiki:cardinal_direction_example", + // 在此处定义方块特性 + "traits": { + "minecraft:placement_direction": { + "enabled_states": ["minecraft:cardinal_direction"], // 可在查询中使用,例如`q.block_state('minecraft:cardinal_direction') == 'north'` + "y_rotation_offset": 180 // 朝向玩家 + } + } +} +``` +::: + +### 置换 + +通过方块置换实现旋转。每个置换包含`minecraft:transformation`组件,检查`minecraft:cardinal_direction`状态并应用相应旋转。 + +**下方旋转值假设模型正面朝北** + +::: code-group +```json [minecraft:block] +"permutations": [ + // 面向北 + { + "condition": "q.block_state('minecraft:cardinal_direction') == 'north'", + "components": { + "minecraft:transformation": { "rotation": [0, 0, 0] } + } + }, + // 面向西 + { + "condition": "q.block_state('minecraft:cardinal_direction') == 'west'", + "components": { + "minecraft:transformation": { "rotation": [0, 90, 0] } + } + }, + // 面向南 + { + "condition": "q.block_state('minecraft:cardinal_direction') == 'south'", + "components": { + "minecraft:transformation": { "rotation": [0, 180, 0] } + } + }, + // 面向东 + { + "condition": "q.block_state('minecraft:cardinal_direction') == 'east'", + "components": { + "minecraft:transformation": { "rotation": [0, -90, 0] } + } + } +] +``` +::: + +## 面向方向旋转 + +### 特性 + +使用`minecraft:placement_direction`方块特性并启用`minecraft:facing_direction`状态来设置方块方向。 + +::: code-group +```json [minecraft:block] +"description": { + "identifier": "wiki:facing_direction_example", + // 在此处定义方块特性 + "traits": { + "minecraft:placement_direction": { + "enabled_states": ["minecraft:facing_direction"], // 可在查询中使用,例如`q.block_state('minecraft:facing_direction') == 'north'` + } + } +} +``` +::: + +### 置换 + +通过方块置换实现旋转。每个置换包含`minecraft:transformation`组件,检查`minecraft:facing_direction`状态并应用相应旋转。 + +**下方旋转值假设模型正面朝北** + +::: code-group +```json [minecraft:block] +"permutations": [ + // 朝下 + { + "condition": "q.block_state('minecraft:facing_direction') == 'down'", + "components": { + "minecraft:transformation": { "rotation": [-90, 0, 0] } + } + }, + // 朝上 + { + "condition": "q.block_state('minecraft:facing_direction') == 'up'", + "components": { + "minecraft:transformation": { "rotation": [90, 0, 0] } + } + }, + // 朝北 + { + "condition": "q.block_state('minecraft:facing_direction') == 'north'", + "components": { + "minecraft:transformation": { "rotation": [0, 0, 0] } + } + }, + // 朝西 + { + "condition": "q.block_state('minecraft:facing_direction') == 'west'", + "components": { + "minecraft:transformation": { "rotation": [0, 90, 0] } + } + }, + // 朝南 + { + "condition": "q.block_state('minecraft:facing_direction') == 'south'", + "components": { + "minecraft:transformation": { "rotation": [0, 180, 0] } + } + }, + // 朝东 + { + "condition": "q.block_state('minecraft:facing_direction') == 'east'", + "components": { + "minecraft:transformation": { "rotation": [0, -90, 0] } + } + } +] +``` +::: + +## 方块面附着旋转 + +### 特性 + +使用`minecraft:placement_position`方块特性并启用`minecraft:block_face`状态来设置方块附着面。 + +::: code-group +```json [minecraft:block] +"description": { + "identifier": "wiki:facing_direction_example", + // 在此处定义方块特性 + "traits": { + "minecraft:placement_position": { + "enabled_states": ["minecraft:block_face"], // 可在查询中使用,例如`q.block_state('minecraft:block_face') == 'north'` + } + } +} +``` +::: + +### 置换 + +通过方块置换实现旋转。每个置换包含`minecraft:transformation`组件,检查`minecraft:block_face`状态并应用相应旋转。 + +**下方旋转值假设模型正面朝北** + +::: code-group +```json [minecraft:block] +"permutations": [ + // 朝下 + { + "condition": "q.block_state('minecraft:block_face') == 'down'", + "components": { + "minecraft:transformation": { "rotation": [-90, 0, 0] } + } + }, + // 朝上 + { + "condition": "q.block_state('minecraft:block_face') == 'up'", + "components": { + "minecraft:transformation": { "rotation": [90, 0, 0] } + } + }, + // 朝北 + { + "condition": "q.block_state('minecraft:block_face') == 'north'", + "components": { + "minecraft:transformation": { "rotation": [0, 0, 0] } + } + }, + // 朝西 + { + "condition": "q.block_state('minecraft:block_face') == 'west'", + "components": { + "minecraft:transformation": { "rotation": [0, 90, 0] } + } + }, + // 朝南 + { + "condition": "q.block_state('minecraft:block_face') == 'south'", + "components": { + "minecraft:transformation": { "rotation": [0, 180, 0] } + } + }, + // 朝东 + { + "condition": "q.block_state('minecraft:block_face') == 'east'", + "components": { + "minecraft:transformation": { "rotation": [0, -90, 0] } + } + } +] +``` +::: + +## 原木旋转 + +实现与原版原木相同的旋转方式 + +::: warning 实验性功能 +需要启用`假日创作者功能`来触发事件 +::: + +### 方块状态 + +::: code-group +```json [minecraft:block > description] +"states": { + "wiki:axis": [0, 1, 2] +} +``` +::: + +### 方块事件与触发 + +使用Molang表达式通过查询方块附着面来确定坐标轴方向(转换为0、1或2) + +::: code-group +```json [minecraft:block > events] +"wiki:set_axis": { + "set_block_state": { + "wiki:axis": "数学运算.floor(q.block_face / 2)" + } +} +``` +::: + +使用`minecraft:on_player_placing`触发器组件调用事件 + +::: code-group +```json [minecraft:block > components] +"minecraft:on_player_placing": { + "event": "wiki:set_axis" +} +``` +::: + +### 置换 + +::: code-group +```json [minecraft:block] +"permutations": [ + { + "condition": "q.block_state('wiki:axis') == 0", + "components": { + "minecraft:transformation": { "rotation": [0, 0, 0] } + } + }, + { + "condition": "q.block_state('wiki:axis') == 1", + "components": { + "minecraft:transformation": { "rotation": [90, 0, 0] } + } + }, + { + "condition": "q.block_state('wiki:axis') == 2", + "components": { + "minecraft:transformation": { "rotation": [0, 0, 90] } + } + } +] +``` +::: + +### 原木旋转示例 + +::: warning 实验性功能 +本示例需要启用`假日创作者功能`以使用`minecraft:unit_cube` +::: + + + +::: code-group +```json [BP/blocks/custom_log.json] +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:custom_log", + "states": { + "wiki:axis": [0, 1, 2] + } + }, + "components": { + "minecraft:destructible_by_mining": { + "seconds_to_destroy": 1.5 + }, + "minecraft:destructible_by_explosion": { + "explosion_resistance": 15 + }, + "minecraft:material_instances": { + "*": { + "texture": "log_side" + }, + "end": { + "texture": "log_top" + }, + "up": "end", + "down": "end" + }, + "minecraft:unit_cube": {}, + "minecraft:on_player_placing": { + "event": "wiki:set_axis" + } + }, + "events": { + "wiki:set_axis": { + "set_block_state": { + "wiki:axis": "Math.floor(q.block_face / 2)" + } + } + }, + "permutations": [ + { + "condition": "q.block_state('wiki:axis') == 0", + "components": { + "minecraft:transformation": { "rotation": [0, 0, 0] } + } + }, + { + "condition": "q.block_state('wiki:axis') == 1", + "components": { + "minecraft:transformation": { "rotation": [90, 0, 0] } + } + }, + { + "condition": "q.block_state('wiki:axis') == 2", + "components": { + "minecraft:transformation": { "rotation": [0, 0, 90] } + } + } + ] + } +} +``` +::: + + \ No newline at end of file diff --git a/docs/wiki/2-方块/4-原版再创作/custom-crops.md b/docs/wiki/2-方块/4-原版再创作/custom-crops.md new file mode 100644 index 00000000..de8b1dea --- /dev/null +++ b/docs/wiki/2-方块/4-原版再创作/custom-crops.md @@ -0,0 +1,878 @@ +--- +title: Custom Crops +category: Vanilla Re-Creations +tags: + - experimental + - easy +mentions: + - Ivyman1992 + - Provedule + - ThomasOrs + - QuazChick +--- + +:::tip FORMAT & MIN ENGINE VERSION `1.20.30` +This tutorial assumes a good understanding of blocks. +Check out the [blocks guide](/blocks/blocks-intro), [block states](/blocks/block-states) and [block permutations](/blocks/block-permutations) before starting. +::: + +:::warning EXPERIMENTAL +Requires `Holiday Creator Features` to trigger block events and for use of block tag Molang queries and the `minecraft:unit_cube` block component. +::: + +Designing custom crops may appear daunting at first, but it's a straightforward process once you understand the initial steps. Our tutorial/template will guide you through the process of creating a unique crop block as well as other blocks like farmland and dirt. + +## Custom Dirt + +Below is an example of a custom dirt block. This custom dirt can be transformed into `wiki:custom_farmland` by using a hoe or a Dirt Path by using a shovel. + +:::tip +Add the `minecraft:is_hoe` or `minecraft:is_shovel` item tags to any custom tools to make them work with our custom dirt! +::: + + + +BP/blocks/custom_dirt.json + +```json +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:custom_dirt", + "menu_category": { + "category": "nature" + } + }, + "components": { + "tag:dirt": {}, + "tag:fertilize_area": {}, + "minecraft:unit_cube": {}, + "minecraft:map_color": "#6C5746", + "minecraft:destructible_by_mining": { + "seconds_to_destroy": 0.6 + }, + "minecraft:material_instances": { + "*": { + "texture": "custom_dirt" + } + }, + // Convert to farmland or dirt path when interacted with + "minecraft:on_interact": { + "event": "wiki:transform", + "condition": "q.block_face && q.equipped_item_any_tag('slot.weapon.mainhand', 'minecraft:is_hoe', 'minecraft:is_shovel')" + } + }, + "events": { + "wiki:transform": { + "sequence": [ + { + "damage": { + "type": "durability", + "amount": 1, + "target": "item" + } + }, + // Transform into farmland (hoe is used) + { + "condition": "q.equipped_item_any_tag('slot.weapon.mainhand', 'minecraft:is_hoe')", + // Play use sound + "run_command": { + "command": "playsound use.gravel @a ~~~ 1 0.8" + }, + // Replace this block with "wiki:custom_farmland" + "set_block": { + "block_type": "wiki:custom_farmland" + } + }, + // Tranform into path (shovel is used) + { + "condition": "q.equipped_item_any_tag('slot.weapon.mainhand', 'minecraft:is_shovel')", + // Play use sound + "run_command": { + "command": "playsound use.grass @a ~~~ 1 0.8" + }, + // Replace this block with Dirt Path + "set_block": { + "block_type": "minecraft:grass_path" + } + } + ] + } + } + } +} +``` + + + +## Custom Farmland + +Farmland is a tricky block… it reacts to water (changing it's texture when water is nearby), dries out and turns back into our dirt block randomly if water does not reach it in time, and supports crops to be placed on top. + +Nevertheless, it's just special dirt. Let's walk through how it works: + +- The first thing that you will want to do is make a basic block, just like our dirt. +- Create a "farmland" texture for the top of the block (both wet and dry) and then assign it a dirt texture to the sides. You will also need to make a custom block geometry that is 16×15×16 pixels in height, one row smaller then a normal block. +- After that we can add our moisture logic to our block to emulate vanilla functionality. + +Download Custom Farmland Geometry + +### Farmland Moisture + +Vanilla farmland has 8 moisture stages: + +- `0` - Shows a dry top texture and decays into dirt on random tick if not near water. +- `1-7` - Shows a wet top texture and will gradually count down to `0` after each random tick if not near water. +- If the farmland is near water, the moisture value is set to `7` on random tick. + +Add a moisture state to your block to get started with our custom logic. + +minecraft:block > description + +```json +"states": { + "wiki:moisture": { + "values": { "min": 0, "max": 7 } + } +} +``` + +The following permutation sets top texture to be wet when the `wiki:moisture` value is not `0`. + +minecraft:block + +```json +"permutations": [ + { + "condition": "q.block_state('wiki:moisture')", + "components": { + "minecraft:material_instances": { + "*": { + "texture": "custom_dirt", + "render_method": "alpha_test" + }, + "up": { + "texture": "custom_farmland_wet", + "render_method": "alpha_test" + } + } + } + } +] +``` + +### Hydration + +Each random tick, our farmland should trigger an event to determine the block's current moisture state. + +minecraft:block + +```json +"components": { + ... + "minecraft:random_ticking": { + "on_tick": { + "event": "wiki:set_moisture" + } + } +}, +"events": { + "wiki:set_moisture": { + // If near water, sets `wiki:moisture` to `7`, else takes 1 away from current value to count down to `0` (dry). + "set_block_state": { + "wiki:moisture": "q.block_neighbor_has_any_tag(4,0,0,'water') || q.block_neighbor_has_any_tag(3,0,0,'water') || q.block_neighbor_has_any_tag(2,0,0,'water') || q.block_neighbor_has_any_tag(1,0,0,'water') || q.block_neighbor_has_any_tag(-1,0,0,'water') || q.block_neighbor_has_any_tag(-2,0,0,'water') || q.block_neighbor_has_any_tag(-3,0,0,'water') || q.block_neighbor_has_any_tag(-4,0,0,'water') || q.block_neighbor_has_any_tag(4,0,-4,'water') || q.block_neighbor_has_any_tag(3,0,-4,'water') || q.block_neighbor_has_any_tag(2,0,-4,'water') || q.block_neighbor_has_any_tag(1,0,-4,'water') || q.block_neighbor_has_any_tag(0,0,-4,'water') || q.block_neighbor_has_any_tag(-1,0,-4,'water') || q.block_neighbor_has_any_tag(-2,0,-4,'water') || q.block_neighbor_has_any_tag(-3,0,-4,'water') || q.block_neighbor_has_any_tag(-4,0,-4,'water') || q.block_neighbor_has_any_tag(4,0,-3,'water') || q.block_neighbor_has_any_tag(3,0,-3,'water') || q.block_neighbor_has_any_tag(2,0,-3,'water') || q.block_neighbor_has_any_tag(1,0,-3,'water') || q.block_neighbor_has_any_tag(0,0,-3,'water') || q.block_neighbor_has_any_tag(-1,0,-3,'water') || q.block_neighbor_has_any_tag(-2,0,-3,'water') || q.block_neighbor_has_any_tag(-3,0,-3,'water') || q.block_neighbor_has_any_tag(-4,0,-3,'water') || q.block_neighbor_has_any_tag(4,0,-2,'water') || q.block_neighbor_has_any_tag(3,0,-2,'water') || q.block_neighbor_has_any_tag(2,0,-2,'water') || q.block_neighbor_has_any_tag(1,0,-2,'water') || q.block_neighbor_has_any_tag(0,0,-2,'water') || q.block_neighbor_has_any_tag(-1,0,-2,'water') || q.block_neighbor_has_any_tag(-2,0,-2,'water') || q.block_neighbor_has_any_tag(-3,0,-2,'water') || q.block_neighbor_has_any_tag(-4,0,-2,'water') || q.block_neighbor_has_any_tag(4,0,-1,'water') || q.block_neighbor_has_any_tag(3,0,-1,'water') || q.block_neighbor_has_any_tag(2,0,-1,'water') || q.block_neighbor_has_any_tag(1,0,-1,'water') || q.block_neighbor_has_any_tag(0,0,-1,'water') || q.block_neighbor_has_any_tag(-1,0,-1,'water') || q.block_neighbor_has_any_tag(-2,0,-1,'water') || q.block_neighbor_has_any_tag(-3,0,-1,'water') || q.block_neighbor_has_any_tag(-4,0,-1,'water') || q.block_neighbor_has_any_tag(4,0,1,'water') || q.block_neighbor_has_any_tag(3,0,1,'water') || q.block_neighbor_has_any_tag(2,0,1,'water') || q.block_neighbor_has_any_tag(1,0,1,'water') || q.block_neighbor_has_any_tag(0,0,1,'water') || q.block_neighbor_has_any_tag(-1,0,1,'water') || q.block_neighbor_has_any_tag(-2,0,1,'water') || q.block_neighbor_has_any_tag(-3,0,1,'water') || q.block_neighbor_has_any_tag(-4,0,1,'water') || q.block_neighbor_has_any_tag(4,0,2,'water') || q.block_neighbor_has_any_tag(3,0,2,'water') || q.block_neighbor_has_any_tag(2,0,2,'water') || q.block_neighbor_has_any_tag(1,0,2,'water') || q.block_neighbor_has_any_tag(0,0,2,'water') || q.block_neighbor_has_any_tag(-1,0,2,'water') || q.block_neighbor_has_any_tag(-2,0,2,'water') || q.block_neighbor_has_any_tag(-3,0,2,'water') || q.block_neighbor_has_any_tag(-4,0,2,'water') || q.block_neighbor_has_any_tag(4,0,3,'water') || q.block_neighbor_has_any_tag(3,0,3,'water') || q.block_neighbor_has_any_tag(2,0,3,'water') || q.block_neighbor_has_any_tag(1,0,3,'water') || q.block_neighbor_has_any_tag(0,0,3,'water') || q.block_neighbor_has_any_tag(-1,0,3,'water') || q.block_neighbor_has_any_tag(-2,0,3,'water') || q.block_neighbor_has_any_tag(-3,0,3,'water') || q.block_neighbor_has_any_tag(-4,0,3,'water') || q.block_neighbor_has_any_tag(4,0,4,'water') || q.block_neighbor_has_any_tag(3,0,4,'water') || q.block_neighbor_has_any_tag(2,0,4,'water') || q.block_neighbor_has_any_tag(1,0,4,'water') || q.block_neighbor_has_any_tag(0,0,4,'water') || q.block_neighbor_has_any_tag(-1,0,4,'water') || q.block_neighbor_has_any_tag(-2,0,4,'water') || q.block_neighbor_has_any_tag(-3,0,4,'water') || q.block_neighbor_has_any_tag(-4,0,4,'water') || q.block_neighbor_has_any_tag(4,1,0,'water') || q.block_neighbor_has_any_tag(3,1,0,'water') || q.block_neighbor_has_any_tag(2,1,0,'water') || q.block_neighbor_has_any_tag(1,1,0,'water') || q.block_neighbor_has_any_tag(-1,1,0,'water') || q.block_neighbor_has_any_tag(-2,1,0,'water') || q.block_neighbor_has_any_tag(-3,1,0,'water') || q.block_neighbor_has_any_tag(-4,1,0,'water') || q.block_neighbor_has_any_tag(4,1,-4,'water') || q.block_neighbor_has_any_tag(3,1,-4,'water') || q.block_neighbor_has_any_tag(2,1,-4,'water') || q.block_neighbor_has_any_tag(1,1,-4,'water') || q.block_neighbor_has_any_tag(0,1,-4,'water') || q.block_neighbor_has_any_tag(-1,1,-4,'water') || q.block_neighbor_has_any_tag(-2,1,-4,'water') || q.block_neighbor_has_any_tag(-3,1,-4,'water') || q.block_neighbor_has_any_tag(-4,1,-4,'water') || q.block_neighbor_has_any_tag(4,1,-3,'water') || q.block_neighbor_has_any_tag(3,1,-3,'water') || q.block_neighbor_has_any_tag(2,1,-3,'water') || q.block_neighbor_has_any_tag(1,1,-3,'water') || q.block_neighbor_has_any_tag(0,1,-3,'water') || q.block_neighbor_has_any_tag(-1,1,-3,'water') || q.block_neighbor_has_any_tag(-2,1,-3,'water') || q.block_neighbor_has_any_tag(-3,1,-3,'water') || q.block_neighbor_has_any_tag(-4,1,-3,'water') || q.block_neighbor_has_any_tag(4,1,-2,'water') || q.block_neighbor_has_any_tag(3,1,-2,'water') || q.block_neighbor_has_any_tag(2,1,-2,'water') || q.block_neighbor_has_any_tag(1,1,-2,'water') || q.block_neighbor_has_any_tag(0,1,-2,'water') || q.block_neighbor_has_any_tag(-1,1,-2,'water') || q.block_neighbor_has_any_tag(-2,1,-2,'water') || q.block_neighbor_has_any_tag(-3,1,-2,'water') || q.block_neighbor_has_any_tag(-4,1,-2,'water') || q.block_neighbor_has_any_tag(4,1,-1,'water') || q.block_neighbor_has_any_tag(3,1,-1,'water') || q.block_neighbor_has_any_tag(2,1,-1,'water') || q.block_neighbor_has_any_tag(1,1,-1,'water') || q.block_neighbor_has_any_tag(0,1,-1,'water') || q.block_neighbor_has_any_tag(-1,1,-1,'water') || q.block_neighbor_has_any_tag(-2,1,-1,'water') || q.block_neighbor_has_any_tag(-3,1,-1,'water') || q.block_neighbor_has_any_tag(-4,1,-1,'water') || q.block_neighbor_has_any_tag(4,1,1,'water') || q.block_neighbor_has_any_tag(3,1,1,'water') || q.block_neighbor_has_any_tag(2,1,1,'water') || q.block_neighbor_has_any_tag(1,1,1,'water') || q.block_neighbor_has_any_tag(0,1,1,'water') || q.block_neighbor_has_any_tag(-1,1,1,'water') || q.block_neighbor_has_any_tag(-2,1,1,'water') || q.block_neighbor_has_any_tag(-3,1,1,'water') || q.block_neighbor_has_any_tag(-4,1,1,'water') || q.block_neighbor_has_any_tag(4,1,2,'water') || q.block_neighbor_has_any_tag(3,1,2,'water') || q.block_neighbor_has_any_tag(2,1,2,'water') || q.block_neighbor_has_any_tag(1,1,2,'water') || q.block_neighbor_has_any_tag(0,1,2,'water') || q.block_neighbor_has_any_tag(-1,1,2,'water') || q.block_neighbor_has_any_tag(-2,1,2,'water') || q.block_neighbor_has_any_tag(-3,1,2,'water') || q.block_neighbor_has_any_tag(-4,1,2,'water') || q.block_neighbor_has_any_tag(4,1,3,'water') || q.block_neighbor_has_any_tag(3,1,3,'water') || q.block_neighbor_has_any_tag(2,1,3,'water') || q.block_neighbor_has_any_tag(1,1,3,'water') || q.block_neighbor_has_any_tag(0,1,3,'water') || q.block_neighbor_has_any_tag(-1,1,3,'water') || q.block_neighbor_has_any_tag(-2,1,3,'water') || q.block_neighbor_has_any_tag(-3,1,3,'water') || q.block_neighbor_has_any_tag(-4,1,3,'water') || q.block_neighbor_has_any_tag(4,1,4,'water') || q.block_neighbor_has_any_tag(3,1,4,'water') || q.block_neighbor_has_any_tag(2,1,4,'water') || q.block_neighbor_has_any_tag(1,1,4,'water') || q.block_neighbor_has_any_tag(0,1,4,'water') || q.block_neighbor_has_any_tag(-1,1,4,'water') || q.block_neighbor_has_any_tag(-2,1,4,'water') || q.block_neighbor_has_any_tag(-3,1,4,'water') || q.block_neighbor_has_any_tag(-4,1,4,'water') ? 7 : q.block_state('wiki:moisture') ? q.block_state('wiki:moisture') - 1" + }, + // Triggers the event which decays farmland into dirt if dry. + "trigger": "wiki:try_decay" + }, + "wiki:try_decay": { + "sequence": [ + { + "condition": "!q.block_state('wiki:moisture')", + "trigger": "wiki:decay" + } + ] + }, + // Tranform block into `wiki:custom_dirt` when dry or trampled. + "wiki:decay": { + "set_block": { + "block_type": "wiki:custom_dirt" + } + } +} +``` + +This is the tricky part of our farmland block, water detection. In vanilla Minecraft, water can wet farmland in a giant 9x9 square if it's smack dab in the middle of all the blocks. We are replicating that behavior here for each coordinate relative to our farmland on the same Y level, or 1 above. For example, `q.block_neighbor_has_any_tag(-3,0,4,'water')` is saying that if our farmland block has a block with the `water` tag 3 blocks east and 4 blocks south, then the `wiki:moisture` state will be `7`. The `||` stands for 'or', which means that we can have a water block at any of these relative coordinates. + +### Trampling + +If our custom farmland is fallen onto, it should have a chance to decay. + +minecraft:block + +```json +"components": { + ... + "minecraft:on_fall_on": { + "min_fall_distance": 1, + "event": "wiki:trample" + } +}, +"events": { + ... + // 50% chance for farmland to decay if trampled. + "wiki:trample": { + "randomize": [ + { + "weight": 1 + }, + { + "weight": 1, + "trigger": "wiki:decay" + } + ] + } +} +``` + +Here is the full `wiki:custom_farmland` json for reference. + + + +BP/blocks/custom_farmland.json + +```json +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:custom_farmland", + "menu_category": { + "category": "nature" + }, + "states": { + "wiki:moisture": { + "values": { "min": 0, "max": 7 } + } + } + }, + "components": { + "minecraft:map_color": "#0A5E20", + "minecraft:geometry": "geometry.farmland", + "minecraft:light_dampening": 0, + "minecraft:destructible_by_mining": { + "seconds_to_destroy": 0.6 + }, + "minecraft:selection_box": { + "origin": [-8, 0, -8], + "size": [16, 15, 16] + }, + "minecraft:collision_box": { + "origin": [-8, 0, -8], + "size": [16, 15, 16] + }, + "minecraft:material_instances": { + "*": { + "texture": "custom_dirt", + "render_method": "alpha_test" + }, + "up": { + "texture": "custom_farmland", + "render_method": "alpha_test" + } + }, + "minecraft:random_ticking": { + "on_tick": { + "event": "wiki:set_moisture" + } + }, + "minecraft:on_fall_on": { + "min_fall_distance": 1, + "event": "wiki:trample" + } + }, + "events": { + "wiki:set_moisture": { + "set_block_state": { + "wiki:moisture": "q.block_neighbor_has_any_tag(4,0,0,'water') || q.block_neighbor_has_any_tag(3,0,0,'water') || q.block_neighbor_has_any_tag(2,0,0,'water') || q.block_neighbor_has_any_tag(1,0,0,'water') || q.block_neighbor_has_any_tag(-1,0,0,'water') || q.block_neighbor_has_any_tag(-2,0,0,'water') || q.block_neighbor_has_any_tag(-3,0,0,'water') || q.block_neighbor_has_any_tag(-4,0,0,'water') || q.block_neighbor_has_any_tag(4,0,-4,'water') || q.block_neighbor_has_any_tag(3,0,-4,'water') || q.block_neighbor_has_any_tag(2,0,-4,'water') || q.block_neighbor_has_any_tag(1,0,-4,'water') || q.block_neighbor_has_any_tag(0,0,-4,'water') || q.block_neighbor_has_any_tag(-1,0,-4,'water') || q.block_neighbor_has_any_tag(-2,0,-4,'water') || q.block_neighbor_has_any_tag(-3,0,-4,'water') || q.block_neighbor_has_any_tag(-4,0,-4,'water') || q.block_neighbor_has_any_tag(4,0,-3,'water') || q.block_neighbor_has_any_tag(3,0,-3,'water') || q.block_neighbor_has_any_tag(2,0,-3,'water') || q.block_neighbor_has_any_tag(1,0,-3,'water') || q.block_neighbor_has_any_tag(0,0,-3,'water') || q.block_neighbor_has_any_tag(-1,0,-3,'water') || q.block_neighbor_has_any_tag(-2,0,-3,'water') || q.block_neighbor_has_any_tag(-3,0,-3,'water') || q.block_neighbor_has_any_tag(-4,0,-3,'water') || q.block_neighbor_has_any_tag(4,0,-2,'water') || q.block_neighbor_has_any_tag(3,0,-2,'water') || q.block_neighbor_has_any_tag(2,0,-2,'water') || q.block_neighbor_has_any_tag(1,0,-2,'water') || q.block_neighbor_has_any_tag(0,0,-2,'water') || q.block_neighbor_has_any_tag(-1,0,-2,'water') || q.block_neighbor_has_any_tag(-2,0,-2,'water') || q.block_neighbor_has_any_tag(-3,0,-2,'water') || q.block_neighbor_has_any_tag(-4,0,-2,'water') || q.block_neighbor_has_any_tag(4,0,-1,'water') || q.block_neighbor_has_any_tag(3,0,-1,'water') || q.block_neighbor_has_any_tag(2,0,-1,'water') || q.block_neighbor_has_any_tag(1,0,-1,'water') || q.block_neighbor_has_any_tag(0,0,-1,'water') || q.block_neighbor_has_any_tag(-1,0,-1,'water') || q.block_neighbor_has_any_tag(-2,0,-1,'water') || q.block_neighbor_has_any_tag(-3,0,-1,'water') || q.block_neighbor_has_any_tag(-4,0,-1,'water') || q.block_neighbor_has_any_tag(4,0,1,'water') || q.block_neighbor_has_any_tag(3,0,1,'water') || q.block_neighbor_has_any_tag(2,0,1,'water') || q.block_neighbor_has_any_tag(1,0,1,'water') || q.block_neighbor_has_any_tag(0,0,1,'water') || q.block_neighbor_has_any_tag(-1,0,1,'water') || q.block_neighbor_has_any_tag(-2,0,1,'water') || q.block_neighbor_has_any_tag(-3,0,1,'water') || q.block_neighbor_has_any_tag(-4,0,1,'water') || q.block_neighbor_has_any_tag(4,0,2,'water') || q.block_neighbor_has_any_tag(3,0,2,'water') || q.block_neighbor_has_any_tag(2,0,2,'water') || q.block_neighbor_has_any_tag(1,0,2,'water') || q.block_neighbor_has_any_tag(0,0,2,'water') || q.block_neighbor_has_any_tag(-1,0,2,'water') || q.block_neighbor_has_any_tag(-2,0,2,'water') || q.block_neighbor_has_any_tag(-3,0,2,'water') || q.block_neighbor_has_any_tag(-4,0,2,'water') || q.block_neighbor_has_any_tag(4,0,3,'water') || q.block_neighbor_has_any_tag(3,0,3,'water') || q.block_neighbor_has_any_tag(2,0,3,'water') || q.block_neighbor_has_any_tag(1,0,3,'water') || q.block_neighbor_has_any_tag(0,0,3,'water') || q.block_neighbor_has_any_tag(-1,0,3,'water') || q.block_neighbor_has_any_tag(-2,0,3,'water') || q.block_neighbor_has_any_tag(-3,0,3,'water') || q.block_neighbor_has_any_tag(-4,0,3,'water') || q.block_neighbor_has_any_tag(4,0,4,'water') || q.block_neighbor_has_any_tag(3,0,4,'water') || q.block_neighbor_has_any_tag(2,0,4,'water') || q.block_neighbor_has_any_tag(1,0,4,'water') || q.block_neighbor_has_any_tag(0,0,4,'water') || q.block_neighbor_has_any_tag(-1,0,4,'water') || q.block_neighbor_has_any_tag(-2,0,4,'water') || q.block_neighbor_has_any_tag(-3,0,4,'water') || q.block_neighbor_has_any_tag(-4,0,4,'water') || q.block_neighbor_has_any_tag(4,1,0,'water') || q.block_neighbor_has_any_tag(3,1,0,'water') || q.block_neighbor_has_any_tag(2,1,0,'water') || q.block_neighbor_has_any_tag(1,1,0,'water') || q.block_neighbor_has_any_tag(-1,1,0,'water') || q.block_neighbor_has_any_tag(-2,1,0,'water') || q.block_neighbor_has_any_tag(-3,1,0,'water') || q.block_neighbor_has_any_tag(-4,1,0,'water') || q.block_neighbor_has_any_tag(4,1,-4,'water') || q.block_neighbor_has_any_tag(3,1,-4,'water') || q.block_neighbor_has_any_tag(2,1,-4,'water') || q.block_neighbor_has_any_tag(1,1,-4,'water') || q.block_neighbor_has_any_tag(0,1,-4,'water') || q.block_neighbor_has_any_tag(-1,1,-4,'water') || q.block_neighbor_has_any_tag(-2,1,-4,'water') || q.block_neighbor_has_any_tag(-3,1,-4,'water') || q.block_neighbor_has_any_tag(-4,1,-4,'water') || q.block_neighbor_has_any_tag(4,1,-3,'water') || q.block_neighbor_has_any_tag(3,1,-3,'water') || q.block_neighbor_has_any_tag(2,1,-3,'water') || q.block_neighbor_has_any_tag(1,1,-3,'water') || q.block_neighbor_has_any_tag(0,1,-3,'water') || q.block_neighbor_has_any_tag(-1,1,-3,'water') || q.block_neighbor_has_any_tag(-2,1,-3,'water') || q.block_neighbor_has_any_tag(-3,1,-3,'water') || q.block_neighbor_has_any_tag(-4,1,-3,'water') || q.block_neighbor_has_any_tag(4,1,-2,'water') || q.block_neighbor_has_any_tag(3,1,-2,'water') || q.block_neighbor_has_any_tag(2,1,-2,'water') || q.block_neighbor_has_any_tag(1,1,-2,'water') || q.block_neighbor_has_any_tag(0,1,-2,'water') || q.block_neighbor_has_any_tag(-1,1,-2,'water') || q.block_neighbor_has_any_tag(-2,1,-2,'water') || q.block_neighbor_has_any_tag(-3,1,-2,'water') || q.block_neighbor_has_any_tag(-4,1,-2,'water') || q.block_neighbor_has_any_tag(4,1,-1,'water') || q.block_neighbor_has_any_tag(3,1,-1,'water') || q.block_neighbor_has_any_tag(2,1,-1,'water') || q.block_neighbor_has_any_tag(1,1,-1,'water') || q.block_neighbor_has_any_tag(0,1,-1,'water') || q.block_neighbor_has_any_tag(-1,1,-1,'water') || q.block_neighbor_has_any_tag(-2,1,-1,'water') || q.block_neighbor_has_any_tag(-3,1,-1,'water') || q.block_neighbor_has_any_tag(-4,1,-1,'water') || q.block_neighbor_has_any_tag(4,1,1,'water') || q.block_neighbor_has_any_tag(3,1,1,'water') || q.block_neighbor_has_any_tag(2,1,1,'water') || q.block_neighbor_has_any_tag(1,1,1,'water') || q.block_neighbor_has_any_tag(0,1,1,'water') || q.block_neighbor_has_any_tag(-1,1,1,'water') || q.block_neighbor_has_any_tag(-2,1,1,'water') || q.block_neighbor_has_any_tag(-3,1,1,'water') || q.block_neighbor_has_any_tag(-4,1,1,'water') || q.block_neighbor_has_any_tag(4,1,2,'water') || q.block_neighbor_has_any_tag(3,1,2,'water') || q.block_neighbor_has_any_tag(2,1,2,'water') || q.block_neighbor_has_any_tag(1,1,2,'water') || q.block_neighbor_has_any_tag(0,1,2,'water') || q.block_neighbor_has_any_tag(-1,1,2,'water') || q.block_neighbor_has_any_tag(-2,1,2,'water') || q.block_neighbor_has_any_tag(-3,1,2,'water') || q.block_neighbor_has_any_tag(-4,1,2,'water') || q.block_neighbor_has_any_tag(4,1,3,'water') || q.block_neighbor_has_any_tag(3,1,3,'water') || q.block_neighbor_has_any_tag(2,1,3,'water') || q.block_neighbor_has_any_tag(1,1,3,'water') || q.block_neighbor_has_any_tag(0,1,3,'water') || q.block_neighbor_has_any_tag(-1,1,3,'water') || q.block_neighbor_has_any_tag(-2,1,3,'water') || q.block_neighbor_has_any_tag(-3,1,3,'water') || q.block_neighbor_has_any_tag(-4,1,3,'water') || q.block_neighbor_has_any_tag(4,1,4,'water') || q.block_neighbor_has_any_tag(3,1,4,'water') || q.block_neighbor_has_any_tag(2,1,4,'water') || q.block_neighbor_has_any_tag(1,1,4,'water') || q.block_neighbor_has_any_tag(0,1,4,'water') || q.block_neighbor_has_any_tag(-1,1,4,'water') || q.block_neighbor_has_any_tag(-2,1,4,'water') || q.block_neighbor_has_any_tag(-3,1,4,'water') || q.block_neighbor_has_any_tag(-4,1,4,'water') ? 7 : q.block_state('wiki:moisture') ? q.block_state('wiki:moisture') - 1" + }, + "trigger": "wiki:try_decay" + }, + "wiki:trample": { + "randomize": [ + { + "weight": 1 + }, + { + "weight": 1, + "trigger": "wiki:decay" + } + ] + }, + "wiki:try_decay": { + "sequence": [ + { + "condition": "!q.block_state('wiki:moisture')", + "trigger": "wiki:decay" + } + ] + }, + "wiki:decay": { + "set_block": { + "block_type": "wiki:custom_dirt" + } + } + }, + "permutations": [ + { + "condition": "q.block_state('wiki:moisture')", + "components": { + "minecraft:material_instances": { + "*": { + "texture": "custom_dirt", + "render_method": "alpha_test" + }, + "up": { + "texture": "custom_farmland_wet", + "render_method": "alpha_test" + } + } + } + } + ] + } +} +``` + + + +## Custom Crop + +If you aren't a fan of carrots - that's fine. You can make your own (far superior) crop! + +Making crops is not as difficult as you may think, it just takes a little practice and forethought in coding a specific series of events. + +To start with, we want our crops to have 4 stages of growth, so the crop should include a state with four values. + +BP/blocks/custom_crop.json + +```json +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:custom_crop", + "menu_category": { + "category": "none" // Hide from creative inventory - seeds should be used to place + }, + "states": { + "wiki:growth_stage": [0, 1, 2, 3] + } + } + } +} +``` + +### Model + +If you look at crops like carrots and potatoes in-game, you will see that they are made up of four planes and are situated 4 pixels from each edge as shown in the screenshot below. + +It is noteworthy to mention that each plane sits 1 pixel down, unlike traditional blocks. If you forgot to lower the planes down by one, then the crops will appear to grow one pixel higher then the top of our farmland which was lowered in our previous tutorial. + +By lowering the position down a pixel, it will sit above our custom farmland perfectly making everything right in our blocky world. Here is a template model for the crop. + +![](/assets/images/blocks/custom-crops/model.png) + +Download Custom Crop Geometry + +### Components + +Below are the components our custom crop will use. + +**NOTE:** This is not a perfect replica of vanilla crops as lava will not destroy the crops and water destruction behaves differently. + +minecraft:block + +```json +"components": { + "minecraft:flammable": true, + "minecraft:collision_box": false, + "minecraft:geometry": "geometry.crop", + "minecraft:light_dampening": 0, + // Break if not placed on farmland + "minecraft:placement_filter": { + "conditions": [ + { + "allowed_faces": ["up"], + "block_filter": ["wiki:custom_farmland"] + } + ] + }, + // Loot table for when the crop is not fully grown. Vanilla crops only drop seeds when young. + "minecraft:loot": "loot_tables/blocks/custom_crop_young.json", + // Trigger growth every random tick + "minecraft:random_ticking": { + "on_tick": { + "event": "wiki:grow", + "condition": "q.block_state('wiki:growth_stage') < 3" + } + }, + // Break crop when in contact with water + "minecraft:queued_ticking": { + // Check every 10 ticks + "interval_range": [10, 10], + "looping": true, + "on_tick": { + "event": "wiki:destroy", + "condition": "q.block_neighbor_has_any_tag(1,0,0,'water') || q.block_neighbor_has_any_tag(-1,0,0,'water') || q.block_neighbor_has_any_tag(0,0,1,'water') || q.block_neighbor_has_any_tag(0,0,-1,'water') || q.block_neighbor_has_any_tag(0,1,0,'water')" + } + }, + // Trigger growth with bone meal + "minecraft:on_interact": { + "event": "wiki:fertilize", + "condition": "q.is_item_name_any('slot.weapon.mainhand', 'minecraft:bone_meal') && q.block_state('wiki:growth_stage') < 3" + } +} +``` + +### Events + +The events below do three important functions to make your crop work: + +- The first event is used to destroy the block if it's in contact with water. +- The second event adds a stage to the crop growth when activated. It adds one to `wiki:growth_stage` if less than 3. +- The final event is for bonemeal support, adding a random value to `wiki:growth_stage`. + +minecraft:block + +```json +"events": { + "wiki:destroy": { + "run_command": { + "command": "setblock ~~~ air destroy" + } + }, + // Adds to "wiki:growth_stage" (grows crop) + "wiki:grow": { + "set_block_state": { + "wiki:growth_stage": "q.block_state('wiki:growth_stage') + 1" + } + }, + // Bonemeal the crop (grow crop a random amount) + "wiki:fertilize": { + // Take bonemeal + "decrement_stack": {}, + // Trigger random growth + "set_block_state": { + "wiki:growth_stage": "q.block_state('wiki:growth_stage') + Math.random(1, 3 - q.block_state('wiki:growth_stage'))" + }, + // Trigger effects + "run_command": { + "command": ["particle minecraft:crop_growth_emitter ~~~", "playsound item.bone_meal.use @a ~~~"] + } + } +} +``` + +So we know how to set our block states, what happens when our block is on a particular state value? + +The permutations below set a certain `"minecraft:selection_box"` and texture to the block based on the `q.block_state('wiki:growth_stage')` or `"wiki:growth_stage"` value. For example, if `"wiki:growth_stage"` is 3, the permutation sets the texture to `"custom_crop_3"`. + +### Permutations + +minecraft:block + +```json +"permutations": [ + { + "condition": "q.block_state('wiki:growth_stage') == 0", + "components": { + "minecraft:material_instances": { + "*": { + "texture": "custom_crop_0", + "render_method": "alpha_test", + "face_dimming": false, + "ambient_occlusion": false + } + }, + "minecraft:selection_box": { + "origin": [-8, 0, -8], + "size": [16, 2, 16] + } + } + }, + { + "condition": "q.block_state('wiki:growth_stage') == 1", + "components": { + "minecraft:material_instances": { + "*": { + "texture": "custom_crop_1", + "render_method": "alpha_test", + "face_dimming": false, + "ambient_occlusion": false + } + }, + "minecraft:selection_box": { + "origin": [-8, 0, -8], + "size": [16, 5, 16] + } + } + }, + { + "condition": "q.block_state('wiki:growth_stage') == 2", + "components": { + "minecraft:material_instances": { + "*": { + "texture": "custom_crop_2", + "render_method": "alpha_test", + "face_dimming": false, + "ambient_occlusion": false + } + }, + "minecraft:selection_box": { + "origin": [-8, 0, -8], + "size": [16, 9, 16] + } + } + }, + { + "condition": "q.block_state('wiki:growth_stage') == 3", + "components": { + "minecraft:material_instances": { + "*": { + "texture": "custom_crop_3", + "render_method": "alpha_test", + "face_dimming": false, + "ambient_occlusion": false + } + }, + "minecraft:selection_box": { + "origin": [-8, 0, -8], + "size": [16, 13, 16] + }, + // Drop different loot when fully grown + "minecraft:loot": "loot_tables/blocks/custom_crop_mature.json" + } + } +] +``` + +You can add more permutations depending on how many stages you want your crop to have. But don't forget to also change the events and states limit. + +Here is the entire `wiki:custom_crop` file for reference. + + + +BP/blocks/custom_crop.json + +```json +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:custom_crop", + "menu_category": { + "category": "none" // Hide from creative inventory - seeds should be used to place + }, + "states": { + "wiki:growth_stage": [0, 1, 2, 3] + } + }, + "components": { + "minecraft:flammable": true, + "minecraft:collision_box": false, + "minecraft:geometry": "geometry.crop", + "minecraft:light_dampening": 0, + // Break if not placed on farmland + "minecraft:placement_filter": { + "conditions": [ + { + "allowed_faces": ["up"], + "block_filter": ["wiki:custom_farmland"] + } + ] + }, + // Loot table for when the crop is not fully grown. Vanilla crops only drop seeds when young. + "minecraft:loot": "loot_tables/blocks/custom_crop_young.json", + // Trigger growth every random tick + "minecraft:random_ticking": { + "on_tick": { + "event": "wiki:grow", + "condition": "q.block_state('wiki:growth_stage') < 3" + } + }, + // Break crop when in contact with water + "minecraft:queued_ticking": { + // Check every 10 ticks + "interval_range": [10, 10], + "looping": true, + "on_tick": { + "event": "wiki:destroy", + "condition": "q.block_neighbor_has_any_tag(1,0,0,'water') || q.block_neighbor_has_any_tag(-1,0,0,'water') || q.block_neighbor_has_any_tag(0,0,1,'water') || q.block_neighbor_has_any_tag(0,0,-1,'water') || q.block_neighbor_has_any_tag(0,1,0,'water')" + } + }, + // Trigger growth with bone meal + "minecraft:on_interact": { + "event": "wiki:fertilize", + "condition": "q.is_item_name_any('slot.weapon.mainhand', 'minecraft:bone_meal') && q.block_state('wiki:growth_stage') < 3" + } + }, + "events": { + "wiki:destroy": { + "run_command": { + "command": "setblock ~~~ air destroy" + } + }, + // Adds to "wiki:growth_stage" (grows crop) + "wiki:grow": { + "set_block_state": { + "wiki:growth_stage": "q.block_state('wiki:growth_stage') + 1" + } + }, + // Bonemeal the crop (grow crop a random amount) + "wiki:fertilize": { + // Take bonemeal + "decrement_stack": {}, + // Trigger random growth + "set_block_state": { + "wiki:growth_stage": "q.block_state('wiki:growth_stage') + Math.random(1, 3 - q.block_state('wiki:growth_stage'))" + }, + // Trigger effects + "run_command": { + "command": ["particle minecraft:crop_growth_emitter ~~~", "playsound item.bone_meal.use @a ~~~"] + } + } + }, + "permutations": [ + { + "condition": "q.block_state('wiki:growth_stage') == 0", + "components": { + "minecraft:material_instances": { + "*": { + "texture": "custom_crop_0", + "render_method": "alpha_test", + "face_dimming": false, + "ambient_occlusion": false + } + }, + "minecraft:selection_box": { + "origin": [-8, 0, -8], + "size": [16, 2, 16] + } + } + }, + { + "condition": "q.block_state('wiki:growth_stage') == 1", + "components": { + "minecraft:material_instances": { + "*": { + "texture": "custom_crop_1", + "render_method": "alpha_test", + "face_dimming": false, + "ambient_occlusion": false + } + }, + "minecraft:selection_box": { + "origin": [-8, 0, -8], + "size": [16, 5, 16] + } + } + }, + { + "condition": "q.block_state('wiki:growth_stage') == 2", + "components": { + "minecraft:material_instances": { + "*": { + "texture": "custom_crop_2", + "render_method": "alpha_test", + "face_dimming": false, + "ambient_occlusion": false + } + }, + "minecraft:selection_box": { + "origin": [-8, 0, -8], + "size": [16, 9, 16] + } + } + }, + { + "condition": "q.block_state('wiki:growth_stage') == 3", + "components": { + "minecraft:material_instances": { + "*": { + "texture": "custom_crop_3", + "render_method": "alpha_test", + "face_dimming": false, + "ambient_occlusion": false + } + }, + "minecraft:selection_box": { + "origin": [-8, 0, -8], + "size": [16, 13, 16] + }, + // Drop different loot when fully grown + "minecraft:loot": "loot_tables/blocks/custom_crop_mature.json" + } + } + ] + } +} +``` + + + +## Crop Loot + +Below are some example loot tables that your custom crop could use: + +BP/loot_tables/blocks/custom_crop_young.json + +```json +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "item", + "name": "wiki:custom_seeds" + } + ] + } + ] +} +``` + +BP/loot_tables/blocks/custom_crop_mature.json + +```json +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "item", + "name": "wiki:custom_food", + "functions": [ + { + "function": "set_count", + "count": { "min": 2, "max": 5 } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "item", + "name": "wiki:custom_seeds", + "functions": [ + { + "function": "set_count", + "count": { "min": 0, "max": 3 } + } + ] + } + ] + } + ] +} +``` + +## Custom Seeds + +Holding a crop block in your hand wouldn't look right, so we place the crop with seeds! Below is the JSON for a custom item that places your crop. + +BP/items/custom_seeds.json + +```json +{ + "format_version": "1.20.30", + "minecraft:item": { + "description": { + "identifier": "wiki:custom_seeds", // Make sure this is different from your crop's ID + "menu_category": { + "category": "nature", + "group": "itemGroup.name.seed" + } + }, + "components": { + "minecraft:icon": { + "texture": "custom_seeds" + }, + "minecraft:block_placer": { + "block": "wiki:custom_crop" // The block this item is placing + } + } + } +} +``` + +## Custom Food + +Your crop can't only drop seeds! Create a custom food using the template below. + +BP/items/custom_food.json + +```json +{ + "format_version": "1.20.30", + "minecraft:item": { + "description": { + "identifier": "wiki:custom_food", // Make sure this is different from your crop and food's ID + "menu_category": { + "category": "nature", + "group": "itemGroup.name.crop" + } + }, + "components": { + "minecraft:icon": { + "texture": "custom_food" + }, + "minecraft:food": { + "nutrition": 4, + "saturation_modifier": 0.6 + }, + "minecraft:use_animation": "eat", + "minecraft:use_duration": 1.6 + } + } +} +``` + +## Result + +Your pack should now contain the following files: + + + +In conclusion, with the help of this tutorial/template, you now have the knowledge and skills to create your own custom crop, as well as other farming-related blocks such as farmland and dirt. + +## Download Example Pack + +If you require further assistance or would like to access the complete template files, please use the download button provided below. Happy designing! + +Download MCADDON diff --git a/docs/wiki/2-方块/4-原版再创作/custom-fluids.md b/docs/wiki/2-方块/4-原版再创作/custom-fluids.md new file mode 100644 index 00000000..ff5cb4eb --- /dev/null +++ b/docs/wiki/2-方块/4-原版再创作/custom-fluids.md @@ -0,0 +1,364 @@ +--- +title: Custom Fluids +category: Vanilla Re-Creations +tags: + - experimental + - intermediate + - scripting +mentions: + - Provedule + - JaylyDev + - QuazChick +--- + +::: tip FORMAT & MIN ENGINE VERSION `1.20.30` +This tutorial assumes an advanced understanding of blocks and the execute command. +Check out the [blocks guide](/blocks/blocks-intro) before starting. +::: + +::: warning EXPERIMENTAL +Requires `Holiday Creator Features` for use of block tag Molang queries and to trigger block events. + +Requires `Beta APIs` to use [@minecraft/server](https://learn.microsoft.com/minecraft/creator/scriptapi/minecraft/server/minecraft-server) module version `1.6.0-beta`. +::: + +Creating fluids that are identical to vanilla fluids is not currently possible, but you can make something similar! This template/tutorial is designed to assist you in creating a custom "semi-fluid". + +## Flow Logic + +- The fluid block has states defining whether it is a source and its depth. +- If there is air beneath fluid blocks, it will be converted into falling fluid. +- Fluids with a depth above `1` will spread horizontally with decreasing depths. + - This will not occur if there is falling fluid below. +- Flowing fluid block must have another fluid block adjacent to survive. +- Source blocks do not need to have other fluid blocks surrounding themselves. + +**This implementation does not include face culling due to its current complexity.** + + + +## Source Fluid Block + +Below is the code for a custom fluid. Copy and quick replace `custom_fluid` with your fluid's name. When the source block detects air in its surroundings, it replaces it with the outer fluid blocks. If the source block detects air beneath it, it will also place a falling fluid block underneath. + +Download Custom Fluid Geometry + + + +BP/blocks/custom_fluid.json + +```json +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:custom_fluid", + "menu_category": { + "category": "none" + }, + "states": { + "wiki:source": [true, false], + // Depth of fluid - default to 4 + "wiki:depth": [4, 5, 3, 2, 1] + } + }, + "components": { + "minecraft:light_dampening": 0, + "minecraft:collision_box": false, + "minecraft:selection_box": false, + "minecraft:destructible_by_explosion": false, + // Trigger fluid spread + "minecraft:queued_ticking": { + "looping": true, + "interval_range": [20, 20], // Fluid speed in ticks + "on_tick": { + "event": "wiki:flow" + } + }, + "minecraft:material_instances": { + "*": { + "texture": "custom_fluid", // Shortname defined in `RP/textures/terrain_texture.json` + "render_method": "blend", + "ambient_occlusion": false, + "face_dimming": false + } + }, + "minecraft:loot": "loot_tables/empty.json", + "tag:custom_fluid": {} + }, + "events": { + "wiki:flow": { + "sequence": [ + // Dry out + { + "condition": "!q.block_state('wiki:source') && ((q.block_state('wiki:depth') == 5 && !q.block_neighbor_has_any_tag(0, 1, 0, 'custom_fluid')) || (q.block_state('wiki:depth') == 1 && !(q.block_neighbor_has_any_tag(1, 0, 0, 'custom_fluid_2') || q.block_neighbor_has_any_tag(-1, 0, 0, 'custom_fluid_2') || q.block_neighbor_has_any_tag(0, 0, 1, 'custom_fluid_2') || q.block_neighbor_has_any_tag(0, 0, -1, 'custom_fluid_2')) || q.block_state('wiki:depth') == 2 && !(q.block_neighbor_has_any_tag(1, 0, 0, 'custom_fluid_3') || q.block_neighbor_has_any_tag(-1, 0, 0, 'custom_fluid_3') || q.block_neighbor_has_any_tag(0, 0, 1, 'custom_fluid_3') || q.block_neighbor_has_any_tag(0, 0, -1, 'custom_fluid_3'))) || (q.block_state('wiki:depth') == 3 && !(q.block_neighbor_has_any_tag(1, 0, 0, 'custom_fluid_4', 'custom_fluid_5') || q.block_neighbor_has_any_tag(-1, 0, 0, 'custom_fluid_4', 'custom_fluid_5') || q.block_neighbor_has_any_tag(0, 0, 1, 'custom_fluid_4', 'custom_fluid_5') || q.block_neighbor_has_any_tag(0, 0, -1, 'custom_fluid_4', 'custom_fluid_5'))))", + "die": {} + }, + // Spread + { + "condition": "q.block_state('wiki:depth') == 4", + "run_command": { + "command": [ + "execute if block ~~~1 air run setblock ~~~1 wiki:custom_fluid [\"wiki:source\"=false,\"wiki:depth\"=3]", + "execute if block ~~~-1 air run setblock ~~~-1 wiki:custom_fluid [\"wiki:source\"=false,\"wiki:depth\"=3]", + "execute if block ~1~~ air run setblock ~1~~ wiki:custom_fluid [\"wiki:source\"=false,\"wiki:depth\"=3]", + "execute if block ~-1~~ air run setblock ~-1~~ wiki:custom_fluid [\"wiki:source\"=false,\"wiki:depth\"=3]" + ] + } + }, + { + "condition": "q.block_state('wiki:source') && q.block_neighbor_has_any_tag(0, 1, 0, 'custom_fluid')", + "set_block_state": { + "wiki:depth": 5 + } + }, + { + "condition": "q.block_state('wiki:source') && !q.block_neighbor_has_any_tag(0, 1, 0, 'custom_fluid')", + "set_block_state": { + "wiki:depth": 4 + } + }, + { + "condition": "q.block_state('wiki:depth') == 3", + "run_command": { + "command": [ + "execute if block ~~~1 air unless block ~~-1~ air unless block ~~-1~ wiki:custom_fluid run setblock ~~~1 wiki:custom_fluid [\"wiki:source\"=false,\"wiki:depth\"=2]", + "execute if block ~~~-1 air unless block ~~-1~ air unless block ~~-1~ wiki:custom_fluid run setblock ~~~-1 wiki:custom_fluid [\"wiki:source\"=false,\"wiki:depth\"=2]", + "execute if block ~1~~ air unless block ~~-1~ air unless block ~~-1~ wiki:custom_fluid run setblock ~1~~ wiki:custom_fluid [\"wiki:source\"=false,\"wiki:depth\"=2]", + "execute if block ~-1~~ air unless block ~~-1~ air unless block ~~-1~ wiki:custom_fluid run setblock ~-1~~ wiki:custom_fluid [\"wiki:source\"=false,\"wiki:depth\"=2]" + ] + } + }, + { + "condition": "q.block_state('wiki:depth') == 2", + "run_command": { + "command": [ + "execute if block ~~~1 air unless block ~~-1~ air unless block ~~-1~ wiki:custom_fluid run setblock ~~~1 wiki:custom_fluid [\"wiki:source\"=false,\"wiki:depth\"=1]", + "execute if block ~~~-1 air unless block ~~-1~ air unless block ~~-1~ wiki:custom_fluid run setblock ~~~-1 wiki:custom_fluid [\"wiki:source\"=false,\"wiki:depth\"=1]", + "execute if block ~1~~ air unless block ~~-1~ air unless block ~~-1~ wiki:custom_fluid run setblock ~1~~ wiki:custom_fluid [\"wiki:source\"=false,\"wiki:depth\"=1]", + "execute if block ~-1~~ air unless block ~~-1~ air unless block ~~-1~ wiki:custom_fluid run setblock ~-1~~ wiki:custom_fluid [\"wiki:source\"=false,\"wiki:depth\"=1]" + ] + } + }, + { + "condition": "q.block_state('wiki:depth') == 5 && q.block_neighbor_has_any_tag(0, 1, 0, 'custom_fluid')", + "run_command": { + "command": [ + "execute if block ~~-1~ wiki:custom_fluid [\"wiki:depth\"=3] run setblock ~~-1~ wiki:custom_fluid [\"wiki:source\"=false,\"wiki:depth\"=5]", + "execute if block ~~-1~ wiki:custom_fluid [\"wiki:depth\"=2] run setblock ~~-1~ wiki:custom_fluid [\"wiki:source\"=false,\"wiki:depth\"=5]", + "execute if block ~~-1~ wiki:custom_fluid [\"wiki:depth\"=1] run setblock ~~-1~ wiki:custom_fluid [\"wiki:source\"=false,\"wiki:depth\"=5]", + "execute unless block ~~-1~ air unless block ~~-1~ wiki:custom_fluid if block ~1~~ air run setblock ~1~~ wiki:custom_fluid [\"wiki:source\"=false,\"wiki:depth\"=3]", + "execute unless block ~~-1~ air unless block ~~-1~ wiki:custom_fluid if block ~~~1 air run setblock ~~~1 wiki:custom_fluid [\"wiki:source\"=false,\"wiki:depth\"=3]", + "execute unless block ~~-1~ air unless block ~~-1~ wiki:custom_fluid if block ~-1~~ air run setblock ~-1~~ wiki:custom_fluid [\"wiki:source\"=false,\"wiki:depth\"=3]", + "execute unless block ~~-1~ air unless block ~~-1~ wiki:custom_fluid if block ~~~-1 air run setblock ~~~-1 wiki:custom_fluid [\"wiki:source\"=false,\"wiki:depth\"=3]" + ] + } + }, + // Fall + { + "run_command": { + "command": "execute if block ~~-1~ air run setblock ~~-1~ wiki:custom_fluid [\"wiki:source\"=false,\"wiki:depth\"=5]" + } + }, + { + "condition": "q.block_neighbor_has_any_tag(0, -1, 0, 'flowing_custom_fluid')", + "run_command": { + "command": "setblock ~~-1~ wiki:custom_fluid [\"wiki:source\"=false,\"wiki:depth\"=5]" + } + } + ] + }, + "wiki:pick_up": { + "die": {}, + "decrement_stack": {}, + "run_command": { + "command": "give @s lava_bucket", + "target": "other" + } + } + }, + "permutations": [ + { + "condition": "q.block_state('wiki:source')", + "components": { + // Enables the block to be picked up by an item of choice + "minecraft:selection_box": { + "origin": [-7.5, 0.5, -7.5], + "size": [15, 13, 15] + }, + "tag:custom_fluid_source": {} + } + }, + { + "condition": "!q.block_state('wiki:source')", + "components": { + "tag:flowing_custom_fluid": {} + } + }, + { + "condition": "q.block_state('wiki:depth') == 5", + "components": { + "minecraft:geometry": "geometry.fluid.5", + "tag:custom_fluid_5": {} + } + }, + { + "condition": "q.block_state('wiki:depth') == 4", + "components": { + "minecraft:geometry": "geometry.fluid.4", + "tag:custom_fluid_4": {} + } + }, + { + "condition": "q.block_state('wiki:depth') == 3", + "components": { + "minecraft:geometry": "geometry.fluid.3", + "tag:custom_fluid_3": {} + } + }, + { + "condition": "q.block_state('wiki:depth') == 2", + "components": { + "minecraft:geometry": "geometry.fluid.2", + "tag:custom_fluid_2": {} + } + }, + { + "condition": "q.block_state('wiki:depth') == 1", + "components": { + "minecraft:geometry": "geometry.fluid.1", + "tag:custom_fluid_1": {} + } + } + ] + } +} +``` + + + +## Fluid Bucket + +To place your custom fluid you need a custom bucket item. Below is the JSON for the custom bucket. Replace any instance of `custom_fluid` with your fluid's name. + + + +BP/items/custom_fluid_bucket.json + +```json +{ + "format_version": "1.20.30", + "minecraft:item": { + "description": { + "identifier": "wiki:custom_fluid_bucket", + "menu_category": { + "category": "items" + } + }, + "components": { + "minecraft:max_stack_size": 1, + "minecraft:icon": { + "texture": "custom_fluid_bucket" // Shortname defined in `RP/textures/item_texture.json` + }, + "minecraft:block_placer": { + "block": "wiki:custom_fluid" + } + } + } +} +``` + + + +## Scripts + +The fluids use a script to add the ability for the player to float/sink in the fluid. The script also adds fog. To add your fluid to the script, put the ID of your new fluids in the `fluids` string array. + +BP/manifest.json + +```json +{ + "modules": [ + ... + { + "type": "script", + "language": "javascript", + "entry": "fluids.js", + "uuid": ..., + "version": [1, 0, 0] + } + ], + "dependencies": [ + { + "module_name": "@minecraft/server", + "version": "1.6.0-beta" + } + ] +} +``` + + + +BP/scripts/fluids.js + +```javascript +import { system, world } from "@minecraft/server"; + +const fluids = ["wiki:custom_fluid"]; + +system.runInterval(() => { + const players = world.getPlayers(); + + for (const player of players) { + // Fluid effects + if ( + fluids.includes(world.getDimension(player.dimension.id).getBlock({ ...player.location, y: player.location.y + 1 }).typeId) || + fluids.includes(world.getDimension(player.dimension.id).getBlock(player.location).typeId) + ) { + player.addEffect("slowness", 3, { amplifier: 2, showParticles: false }); + player.addEffect("slow_falling", 4, { showParticles: false }); + if (player.isJumping) { + player.addEffect("levitation", 3, { amplifier: 2, showParticles: false }); + } + } + // Fluid fog + if (fluids.includes(world.getDimension(player.dimension.id).getBlock({ ...player.location, y: player.location.y + 1.63 }).typeId)) { + player.runCommand("fog @s push wiki:custom_fluid_fog fluid_fog"); + } else { + player.runCommand("fog @s remove fluid_fog"); + } + } +}); +``` + + + +## Result + +By the end your BP folder should look like this: + + + +## Download Example Pack + +If anything goes wrong, or if you require all of the template files, they are available for download here. The pack includes everything necessary for a functional fluid. + +Download MCADDON \ No newline at end of file diff --git a/docs/wiki/2-方块/4-原版再创作/custom-glass-blocks.md b/docs/wiki/2-方块/4-原版再创作/custom-glass-blocks.md new file mode 100644 index 00000000..68f793b8 --- /dev/null +++ b/docs/wiki/2-方块/4-原版再创作/custom-glass-blocks.md @@ -0,0 +1,661 @@ +--- +title: Custom Glass +category: Vanilla Re-Creations +tags: + - experimental + - expert +mentions: + - Eko-byte + - QuazChick +--- + +Making glass blocks may seem like a simple task, however it comes with many drawbacks as you will find, this tutorial aims to help you achieve a vanilla like glass block. + +By the end you should be able to create something like this! + +![Glass Results](/assets/images/blocks/glass-block/glass_showcase.png) + +## Basic Glass + +::: tip FORMAT VERSION `1.20.30` +This example requires basic knowledge of blocks to understand. +Check out the [blocks guide](/blocks/blocks-intro) before starting. +::: + +This will create a custom glass block which appears the same as vanilla glass blocks! + +BP/blocks/custom_glass.json + +```json +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:custom_glass", + "menu_category": { + "category": "construction", + "group": "itemGroup.name.glass" + } + }, + "components": { + "minecraft:light_dampening": 0, + "minecraft:material_instances": { + "*": { + "render_method": "blend" // Allows translucency + } + } + } + } +} +``` + +RP/blocks.json + +```json +{ + "wiki:custom_glass": { + "textures": "custom_glass", // Shortname defined in `RP/textures/terrain_texture.json` + "sound": "glass" + } +} +``` + +## Vertically-Connecting Glass + +::: tip FORMAT & MIN ENGINE VERSION `1.20.30` +This example requires advanced knowledge of blocks and Molang to understand. +Check out the [blocks guide](/blocks/blocks-intro), [block states](/blocks/block-states) and [Molang](/concepts/molang) before starting. +::: + +::: warning EXPERIMENTAL +Requires `Holiday Creator Features` for use of `minecraft:unit_cube` and to trigger events. +::: + + + +BP/blocks/custom_vertical_connecting_glass.json + +```json +// Add a "nothing" texture in terrain_texture, and make it have a transparent file +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:custom_vertical_connecting_glass", + "menu_category": { + "category": "construction", + "group": "itemGroup.name.glass" + }, + "states": { + // States needed for connected textures, also controls up and down culling + "wiki:connection": [0, 1, 2, 3], + // States to cull faces depending on surrounding blocks + "wiki:cull_north": [false, true], + "wiki:cull_south": [false, true], + "wiki:cull_east": [false, true], + "wiki:cull_west": [false, true] + } + }, + "components": { + // Basic glass components + "minecraft:destructible_by_mining": { + "seconds_to_destroy": 1 + }, + "minecraft:queued_ticking": { + "looping": true, + "interval_range": [0, 0], + "on_tick": { + "event": "wiki:update" + } + }, + "minecraft:unit_cube": {}, + "minecraft:light_dampening": 0, + // Tags used to give connected textures, and remove culling + "tag:custom_vertical_connecting_glass": {}, + "tag:glass": {} + }, + "permutations": [ + // These permutations control what textures are displayed at different situations + // They also use tags to determine what state they are in, (top texture then top tag) + { + "condition": "q.block_state('wiki:connection') == 0 && !q.block_state('wiki:cull_north') && !q.block_state('wiki:cull_south') && !q.block_state('wiki:cull_east') && !q.block_state('wiki:cull_west')", + "components": { + "tag:default": {}, + "minecraft:material_instances": { + "*": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass" + }, + "up": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_up" + }, + "down": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_up" + } + } + } + }, + { + "condition": "q.block_state('wiki:connection') == 1 && !q.block_state('wiki:cull_north') && !q.block_state('wiki:cull_south') && !q.block_state('wiki:cull_east') && !q.block_state('wiki:cull_west')", + "components": { + "tag:top": {}, + "minecraft:material_instances": { + "*": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_top" + }, + "up": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_up" + }, + "down": { + "render_method": "blend", + "texture": "nothing" + } + } + } + }, + { + "condition": "q.block_state('wiki:connection') == 2 && !q.block_state('wiki:cull_north') && !q.block_state('wiki:cull_south') && !q.block_state('wiki:cull_east') && !q.block_state('wiki:cull_west')", + "components": { + "tag:bottom": {}, + "minecraft:material_instances": { + "*": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_bottom" + }, + "up": { + "render_method": "blend", + "texture": "nothing" + }, + "down": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_up" + } + } + } + }, + { + "condition": "q.block_state('wiki:connection') == 3 && !q.block_state('wiki:cull_north') && !q.block_state('wiki:cull_south') && !q.block_state('wiki:cull_east') && !q.block_state('wiki:cull_west')", + "components": { + "tag:middle": {}, + "minecraft:material_instances": { + "*": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_middle" + }, + "up": { + "render_method": "blend", + "texture": "nothing" + }, + "down": { + "render_method": "blend", + "texture": "nothing" + } + } + } + }, + { + "condition": "q.block_state('wiki:cull_north') && q.block_state('wiki:connection') == 0", + "components": { + "tag:default": {}, + "minecraft:material_instances": { + "*": { + "texture": "custom_vertical_connecting_glass", + "render_method": "blend" + }, + "north": { + "texture": "nothing", + "render_method": "blend" + }, + "up": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_up" + }, + "down": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_up" + } + } + } + }, + { + "condition": "q.block_state('wiki:cull_south') && q.block_state('wiki:connection') == 0", + "components": { + "tag:default": {}, + "minecraft:material_instances": { + "*": { + "texture": "custom_vertical_connecting_glass", + "render_method": "blend" + }, + "south": { + "texture": "nothing", + "render_method": "blend" + }, + "up": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_up" + }, + "down": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_up" + } + } + } + }, + { + "condition": "q.block_state('wiki:cull_east') && q.block_state('wiki:connection') == 0", + "components": { + "tag:default": {}, + "minecraft:material_instances": { + "*": { + "texture": "custom_vertical_connecting_glass", + "render_method": "blend" + }, + "east": { + "texture": "nothing", + "render_method": "blend" + }, + "up": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_up" + }, + "down": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_up" + } + } + } + }, + { + "condition": "q.block_state('wiki:cull_west') && q.block_state('wiki:connection') == 0", + "components": { + "tag:default": {}, + "minecraft:material_instances": { + "*": { + "texture": "custom_vertical_connecting_glass", + "render_method": "blend" + }, + "west": { + "texture": "nothing", + "render_method": "blend" + }, + "up": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_up" + }, + "down": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_up" + } + } + } + }, + { + "condition": "q.block_state('wiki:cull_north') && q.block_state('wiki:connection') == 1", + "components": { + "tag:top": {}, + "minecraft:material_instances": { + "*": { + "texture": "custom_vertical_connecting_glass_top", + "render_method": "blend" + }, + "north": { + "texture": "nothing", + "render_method": "blend" + }, + "up": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_up" + }, + "down": { + "render_method": "blend", + "texture": "nothing" + } + } + } + }, + { + "condition": "q.block_state('wiki:cull_south') && q.block_state('wiki:connection') == 1", + "components": { + "tag:top": {}, + "minecraft:material_instances": { + "*": { + "texture": "custom_vertical_connecting_glass_top", + "render_method": "blend" + }, + "south": { + "texture": "nothing", + "render_method": "blend" + }, + "up": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_up" + }, + "down": { + "render_method": "blend", + "texture": "nothing" + } + } + } + }, + { + "condition": "q.block_state('wiki:cull_east') && q.block_state('wiki:connection') == 1", + "components": { + "tag:top": {}, + "minecraft:material_instances": { + "*": { + "texture": "custom_vertical_connecting_glass_top", + "render_method": "blend" + }, + "east": { + "texture": "nothing", + "render_method": "blend" + }, + "up": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_up" + }, + "down": { + "render_method": "blend", + "texture": "nothing" + } + } + } + }, + //in this situation if there is a block to the west and it is the upper connected texture then it shall have the west side invisible and the sides be the upper connected part + { + "condition": "q.block_state('wiki:cull_west') && q.block_state('wiki:connection') == 1", + "components": { + "tag:top": {}, + "minecraft:material_instances": { + "*": { + "texture": "custom_vertical_connecting_glass_top", + "render_method": "blend" + }, + "west": { + "texture": "nothing", + "render_method": "blend" + }, + "up": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_up" + }, + "down": { + "render_method": "blend", + "texture": "nothing" + } + } + } + }, + { + "condition": "q.block_state('wiki:cull_north') && q.block_state('wiki:connection') == 2", + "components": { + "tag:bottom": {}, + "minecraft:material_instances": { + "*": { + "texture": "custom_vertical_connecting_glass_bottom", + "render_method": "blend" + }, + "north": { + "texture": "nothing", + "render_method": "blend" + }, + "down": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_up" + }, + "up": { + "render_method": "blend", + "texture": "nothing" + } + } + } + }, + { + "condition": "q.block_state('wiki:cull_south') && q.block_state('wiki:connection') == 2", + "components": { + "tag:bottom": {}, + "minecraft:material_instances": { + "*": { + "texture": "custom_vertical_connecting_glass_bottom", + "render_method": "blend" + }, + "south": { + "texture": "nothing", + "render_method": "blend" + }, + "down": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_up" + }, + "up": { + "render_method": "blend", + "texture": "nothing" + } + } + } + }, + { + "condition": "q.block_state('wiki:cull_east') && q.block_state('wiki:connection') == 2", + "components": { + "tag:bottom": {}, + "minecraft:material_instances": { + "*": { + "texture": "custom_vertical_connecting_glass_bottom", + "render_method": "blend" + }, + "east": { + "texture": "nothing", + "render_method": "blend" + }, + "down": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_up" + }, + "up": { + "render_method": "blend", + "texture": "nothing" + } + } + } + }, + { + "condition": "q.block_state('wiki:cull_west') && q.block_state('wiki:connection') == 2", + "components": { + "tag:bottom": {}, + "minecraft:material_instances": { + "*": { + "texture": "custom_vertical_connecting_glass_bottom", + "render_method": "blend" + }, + "west": { + "texture": "nothing", + "render_method": "blend" + }, + "down": { + "render_method": "blend", + "texture": "custom_vertical_connecting_glass_up" + }, + "up": { + "render_method": "blend", + "texture": "nothing" + } + } + } + }, + { + "condition": "q.block_state('wiki:cull_north') && q.block_state('wiki:connection') == 3", + "components": { + "tag:middle": {}, + "minecraft:material_instances": { + "*": { + "texture": "custom_vertical_connecting_glass_middle", + "render_method": "blend" + }, + "north": { + "texture": "nothing", + "render_method": "blend" + }, + "down": { + "render_method": "blend", + "texture": "nothing" + }, + "up": { + "render_method": "blend", + "texture": "nothing" + } + } + } + }, + { + "condition": "q.block_state('wiki:cull_south') && q.block_state('wiki:connection') == 3", + "components": { + "tag:middle": {}, + "minecraft:material_instances": { + "*": { + "texture": "custom_vertical_connecting_glass_middle", + "render_method": "blend" + }, + "south": { + "texture": "nothing", + "render_method": "blend" + }, + "down": { + "render_method": "blend", + "texture": "nothing" + }, + "up": { + "render_method": "blend", + "texture": "nothing" + } + } + } + }, + { + "condition": "q.block_state('wiki:cull_east') && q.block_state('wiki:connection') == 3", + "components": { + "tag:middle": {}, + "minecraft:material_instances": { + "*": { + "texture": "custom_vertical_connecting_glass_middle", + "render_method": "blend" + }, + "east": { + "texture": "nothing", + "render_method": "blend" + }, + "down": { + "render_method": "blend", + "texture": "nothing" + }, + "up": { + "render_method": "blend", + "texture": "nothing" + } + } + } + }, + { + "condition": "q.block_state('wiki:cull_west') && q.block_state('wiki:connection') == 3", + "components": { + "tag:middle": {}, + "minecraft:material_instances": { + "*": { + "texture": "custom_vertical_connecting_glass_middle", + "render_method": "blend" + }, + "west": { + "texture": "nothing", + "render_method": "blend" + }, + "down": { + "render_method": "blend", + "texture": "nothing" + }, + "up": { + "render_method": "blend", + "texture": "nothing" + } + } + } + } + ], + "events": { + "wiki:update": { + "sequence": [ + // Set the block to have no culling + { + "condition": "q.block_neighbor_has_any_tag(0,0,-1,'custom_vertical_connecting_glass')", + "set_block_state": { + "wiki:cull_north": "q.block_neighbor_has_any_tag(0,0,-1,'custom_vertical_connecting_glass')", + "wiki:cull_south": "q.block_neighbor_has_any_tag(0,0,1,'custom_vertical_connecting_glass')", + "wiki:cull_west": "q.block_neighbor_has_any_tag(-1,0,0,'custom_vertical_connecting_glass')", + "wiki:cull_east": "q.block_neighbor_has_any_tag(1,0,0,'custom_vertical_connecting_glass')" + } + }, + // Control the custom texture state + { + "condition": "q.block_neighbor_has_any_tag(0,-1,0,'default')", + "set_block_state": { + "wiki:connection": 1 + } + }, + { + "condition": "q.block_neighbor_has_any_tag(0,1,0,'top') && !q.block_neighbor_has_any_tag(0,-1,0,'middle')", + "set_block_state": { + "wiki:connection": 2 + } + }, + { + "condition": "q.block_neighbor_has_any_tag(0,1,0,'top') && q.block_neighbor_has_any_tag(0,-1,0,'middle')", + "set_block_state": { + "wiki:connection": 3 + } + }, + { + "condition": "q.block_neighbor_has_any_tag(0,-1,0,'top')", + "set_block_state": { + "wiki:connection": 1 + } + }, + { + "condition": "q.block_neighbor_has_any_tag(0,-1,0,'bottom') && (q.block_neighbor_has_any_tag(0,1,0,'top') || q.block_neighbor_has_any_tag(0,1,0,'middle'))", + "set_block_state": { + "wiki:connection": 3 + } + }, + { + "condition": "!q.block_neighbor_has_any_tag(0,1,0,'top', 'default', 'middle', 'bottom') && q.block_neighbor_has_any_tag(0,-1,0,'middle', 'bottom')", + "set_block_state": { + "wiki:connection": 1 + } + }, + { + "condition": "!q.block_neighbor_has_any_tag(0,1,0,'top', 'default', 'middle', 'bottom') && !q.block_neighbor_has_any_tag(0,-1,0,'middle', 'bottom', 'top', 'default')", + "set_block_state": { + "wiki:connection": 0 + } + }, + { + "condition": "q.block_neighbor_has_any_tag(0,1,0,'top', 'middle', 'bottom') && !q.block_neighbor_has_any_tag(0,-1,0,'middle', 'bottom', 'top', 'default')", + "set_block_state": { + "wiki:connection": 2 + } + }, + { + "condition": "q.block_neighbor_has_any_tag(0,1,0,'default') && q.block_neighbor_has_any_tag(0,-1,0,'default')", + "set_block_state": { + "wiki:connection": 3 + } + } + ] + } + } + } +} +``` + + diff --git a/docs/wiki/2-方块/4-原版再创作/custom-glazed-terracotta.md b/docs/wiki/2-方块/4-原版再创作/custom-glazed-terracotta.md new file mode 100644 index 00000000..32c197ca --- /dev/null +++ b/docs/wiki/2-方块/4-原版再创作/custom-glazed-terracotta.md @@ -0,0 +1,289 @@ +--- +title: Custom Glazed Terracotta +category: Vanilla Re-Creations +tags: + - easy +mentions: + - Kaioga5 +--- + +::: tip FORMAT & MIN ENGINE VERSION `1.20.40` +This tutorial assumes a basic understanding of blocks. +Check out the [blocks guide](/blocks/blocks-intro) before starting. +::: + + +## Introduction +Glazed Terracotta has its own rotation mechanism, enabling players to craft aesthetically pleasing patterns for walls, floors, and ceilings. This guide will instruct you on creating your own blocks resembling glazed terracotta. + +## Custom Glazed Terracotta +This will create a vanilla-like custom glazed terracotta. + +BP/blocks/custom_glazed_terracotta.json + +```json +{ + "format_version": "1.20.40", + "minecraft:block": { + "description": { + "identifier": "wiki:glazed_terracotta_template", + "menu_category": { + "category": "construction", + "group": "itemGroup.name.glazedTerracotta" + }, + "traits": { + "minecraft:placement_direction": { + "enabled_states": [ + "minecraft:cardinal_direction" + ] + } + } + }, + "permutations": [ + { + "condition": "q.block_state('minecraft:cardinal_direction') == 'north'", + "components": { + "minecraft:transformation": { "rotation": [0, 0, 0] }, + "minecraft:geometry": { + "identifier": "geometry.glazed_terracotta", + "bone_visibility": { + "bottom_1": false, + "bottom_2": false, + "bottom_3": false, + "bottom_4": true + } + } + } + }, + { + "condition": "q.block_state('minecraft:cardinal_direction') == 'west'", + "components": { + "minecraft:transformation": { "rotation": [0, 90, 0] }, + "minecraft:geometry": { + "identifier": "geometry.glazed_terracotta", + "bone_visibility": { + "bottom_1": false, + "bottom_2": false, + "bottom_3": true, + "bottom_4": false + } + } + } + }, + { + "condition": "q.block_state('minecraft:cardinal_direction') == 'south'", + "components": { + "minecraft:transformation": { "rotation": [0, 180, 0] }, + "minecraft:geometry": { + "identifier": "geometry.glazed_terracotta", + "bone_visibility": { + "bottom_1": false, + "bottom_2": true, + "bottom_3": false, + "bottom_4": false + } + } + } + }, + { + "condition": "q.block_state('minecraft:cardinal_direction') == 'east'", + "components": { + "minecraft:transformation": { "rotation": [0, -90, 0] }, + "minecraft:geometry": { + "identifier": "geometry.glazed_terracotta", + "bone_visibility": { + "bottom_1": true, + "bottom_2": false, + "bottom_3": false, + "bottom_4": false + } + } + } + } + ], + "components": { + "minecraft:geometry": { + "identifier": "geometry.glazed_terracotta" + }, + "minecraft:material_instances": { + "*": { + "texture": "purple_glazed_terracotta", + "render_method": "opaque" + } + } + } + } +} +``` + +## Geometry +Vanilla glazed terracotta rotates certain faces of the block with some specific values, which is what gives the block it's magic. Use the following geometry to replicate that behavior. + + + +RP/models/blocks/glazed_terracotta.geo.json + +```json +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.glazed_terracotta", + "texture_width": 16, + "texture_height": 16, + "visible_bounds_width": 4, + "visible_bounds_height": 3.5, + "visible_bounds_offset": [0, 1.25, 0] + }, + "bones": [ + { + "name": "glazed_terracotta", + "pivot": [0, 0, 0] + }, + { + "name": "top", + "parent": "glazed_terracotta", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, 0, -8], + "size": [16, 16, 16], + "uv": { + "up": {"uv": [16, 16], "uv_size": [-16, -16]} + } + } + ] + }, + { + "name": "north", + "parent": "glazed_terracotta", + "pivot": [0, 8, 0], + "cubes": [ + { + "origin": [-8, 0, -8], + "size": [16, 16, 0], + "pivot": [0, 8, 0], + "rotation": [180, 0, 90], + "uv": { + "north": {"uv": [16, 16], "uv_size": [-16, -16]} + } + } + ] + }, + { + "name": "south", + "parent": "glazed_terracotta", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [0, -8, 8], + "size": [16, 16, 0], + "pivot": [0, 0, 0], + "rotation": [180, 0, 270], + "uv": { + "south": {"uv": [0, 0], "uv_size": [16, 16]} + } + } + ] + }, + { + "name": "east", + "parent": "glazed_terracotta", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, -16, -8], + "size": [0, 16, 16], + "pivot": [0, 0, 0], + "rotation": [0, 0, -180], + "uv": { + "east": {"uv": [16, 16], "uv_size": [-16, -16]} + } + } + ] + }, + { + "name": "west", + "parent": "glazed_terracotta", + "pivot": [-16, 0, 0], + "cubes": [ + { + "origin": [-24, 0, -8], + "size": [0, 16, 16], + "pivot": [-16, 0, 0], + "rotation": [0, 180, 0], + "uv": { + "west": {"uv": [16, 16], "uv_size": [-16, -16]} + } + } + ] + }, + { + "name": "bottom", + "parent": "glazed_terracotta", + "pivot": [0, 0, 0] + }, + { + "name": "bottom_1", + "parent": "bottom", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, 0, -8], + "size": [16, 0, 16], + "uv": { + "down": {"uv": [0, 0], "uv_size": [16, 16]} + } + } + ] + }, + { + "name": "bottom_2", + "parent": "bottom", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, 0, -8], + "size": [16, 0, 16], + "uv": { + "down": {"uv": [16, 16], "uv_size": [-16, -16]} + } + } + ] + }, + { + "name": "bottom_3", + "parent": "bottom", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, 0, -8], + "size": [16, 0, 16], + "uv": { + "down": {"uv": [0, 0], "uv_size": [16, 16]} + } + } + ] + }, + { + "name": "bottom_4", + "parent": "bottom", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, 0, -8], + "size": [16, 0, 16], + "uv": { + "down": {"uv": [16, 16], "uv_size": [-16, -16]} + } + } + ] + } + ] + } + ] +} +``` + + diff --git a/docs/wiki/2-方块/4-原版再创作/custom-slabs.md b/docs/wiki/2-方块/4-原版再创作/custom-slabs.md new file mode 100644 index 00000000..fb550ba4 --- /dev/null +++ b/docs/wiki/2-方块/4-原版再创作/custom-slabs.md @@ -0,0 +1,201 @@ +--- +title: Custom Slabs +category: Vanilla Re-Creations +tags: + - experimental + - easy +mentions: + - Kaioga5 + - QuazChick +--- + +::: tip FORMAT & MIN ENGINE VERSION `1.20.30` +This tutorial assumes a basic understanding of blocks. +Check out the [blocks guide](/blocks/blocks-intro) before starting. +::: + +::: warning EXPERIMENTAL +Requires `Holiday Creator Features` to trigger block events and for use of the `minecraft:unit_cube` component. +::: + +## Introduction +Making custom slabs is a simple task, but if you find any drawbacks during recreating slabs, this tutorial will help you with it, and you'll be provided with a template for you to use. + +Issues: +- Your custom slab will appear vertically centred when carried. +- Your custom slab may appear full-sized in item form (on the ground, in item frames, in hand) + +## Custom Slab +This will create a vanilla-like custom slab. + +BP/blocks/custom_slab.json + +```json +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:custom_slab", + "menu_category": { + "category": "construction", + "group": "itemGroup.name.slab" + }, + "traits": { + "minecraft:placement_position": { + "enabled_states": ["minecraft:vertical_half"] + } + }, + "states": { + "wiki:double": [false, true] + } + }, + "permutations": [ + // Bottom Slab + { + "condition": "q.block_state('minecraft:vertical_half') == 'bottom' && !q.block_state('wiki:double')", + "components": { + "minecraft:collision_box": { + "origin": [-8, 0, -8], + "size": [16, 8, 16] + }, + "minecraft:selection_box": { + "origin": [-8, 0, -8], + "size": [16, 8, 16] + }, + "minecraft:on_interact": { + "event": "wiki:form_double", + "condition": "q.block_face == 1.0 && q.is_item_name_any('slot.weapon.mainhand', 'wiki:custom_slab')" + } + } + }, + // Top Slab + { + "condition": "q.block_state('minecraft:vertical_half') == 'top' && !q.block_state('wiki:double')", + "components": { + "minecraft:collision_box": { + "origin": [-8, 8, -8], + "size": [16, 8, 16] + }, + "minecraft:selection_box": { + "origin": [-8, 8, -8], + "size": [16, 8, 16] + }, + "minecraft:on_interact": { + "event": "wiki:form_double", + "condition": "q.block_face == 0.0 && q.is_item_name_any('slot.weapon.mainhand', 'wiki:custom_slab')" + } + } + }, + // Double Slab + { + "condition": "q.block_state('wiki:double')", + "components": { + "minecraft:unit_cube": {}, + "minecraft:on_player_destroyed": { + "event": "wiki:destroy_double" + } + } + } + ], + "components": { + "minecraft:destructible_by_mining": { + "seconds_to_destroy": 7 + }, + "minecraft:destructible_by_explosion": { + "explosion_resistance": 6 + }, + "minecraft:geometry": { + "identifier": "geometry.slab", + "bone_visibility": { + "bottom_slab": "q.block_state('minecraft:vertical_half') == 'bottom'", + "top_slab": "q.block_state('minecraft:vertical_half') == 'top'" + } + }, + "minecraft:material_instances": { + "*": { + "texture": "stone" + } + } + }, + "events": { + "wiki:form_double": { + "set_block_state": { + "wiki:double": true + }, + "run_command": { + "command": "playsound use.stone @a ~~~ 1 0.8" + }, + "decrement_stack": {} + }, + "wiki:destroy_double": { + "spawn_loot": {} // Spawns the block's default loot + } + } + } +} +``` + +## Geometry +This will be the geometry used for your custom slabs. + + + +RP/models/blocks/slab.geo.json + +```json +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.slab", + "texture_width": 16, + "texture_height": 16, + "visible_bounds_width": 2, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "top_slab", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, 8, -8], + "size": [16, 8, 16], + "uv": { + "north": {"uv": [0, 0], "uv_size": [16, 8]}, + "east": {"uv": [0, 0], "uv_size": [16, 8]}, + "south": {"uv": [0, 0], "uv_size": [16, 8]}, + "west": {"uv": [0, 0], "uv_size": [16, 8]}, + "up": {"uv": [16, 16], "uv_size": [-16, -16]}, + "down": {"uv": [16, 16], "uv_size": [-16, -16]} + } + } + ] + }, + { + "name": "bottom_slab", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, 0, -8], + "size": [16, 8, 16], + "uv": { + "north": {"uv": [0, 8], "uv_size": [16, 8]}, + "east": {"uv": [0, 8], "uv_size": [16, 8]}, + "south": {"uv": [0, 8], "uv_size": [16, 8]}, + "west": {"uv": [0, 8], "uv_size": [16, 8]}, + "up": {"uv": [16, 16], "uv_size": [-16, -16]}, + "down": {"uv": [16, 16], "uv_size": [-16, -16]} + } + } + ] + } + ] + } + ] +} +``` + + diff --git a/docs/wiki/2-方块/4-原版再创作/custom-trapdoors.md b/docs/wiki/2-方块/4-原版再创作/custom-trapdoors.md new file mode 100644 index 00000000..210ced90 --- /dev/null +++ b/docs/wiki/2-方块/4-原版再创作/custom-trapdoors.md @@ -0,0 +1,254 @@ +--- +title: Custom Trapdoors +category: Vanilla Re-Creations +tags: + - experimental + - intermediate +mentions: + - Kaioga5 + - QuazChick +--- + +::: tip FORMAT & MIN ENGINE VERSION `1.20.30` +This tutorial assumes a good understanding of blocks. +Check out the [blocks guide](/blocks/blocks-intro) before starting. +::: + +::: warning EXPERIMENTAL +Requires `Holiday Creator Features` to trigger block events. +::: + +## Introduction + +Making custom trapdoors is an often difficult task to do, but after reading this tutorial you'll understand how they work in case you find any drawbacks during recreating them, and you'll be provided with a template for you to use. + +## Custom Trapdoor + +This will create a vanilla-like custom trapdoor. + +BP/blocks/custom_trapdoor.json + +```json +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:custom_trapdoor", + "menu_category": { + "category": "construction", + "group": "itemGroup.name.trapdoor" + }, + "traits": { + "minecraft:placement_position": { + "enabled_states": ["minecraft:vertical_half"] + }, + "minecraft:placement_direction": { + "enabled_states": ["minecraft:cardinal_direction"] + } + }, + "states": { + "wiki:open": [false, true] + } + }, + "permutations": [ + // Top Closed + { + "condition": "q.block_state('minecraft:vertical_half') == 'top' && q.block_state('minecraft:cardinal_direction') == 'north' && !q.block_state('wiki:open')", + "components": { + "minecraft:transformation": { "rotation": [0, 0, 180] } + } + }, + { + "condition": "q.block_state('minecraft:vertical_half') == 'top' && q.block_state('minecraft:cardinal_direction') == 'south' && !q.block_state('wiki:open')", + "components": { + "minecraft:transformation": { "rotation": [180, 0, 0] } + } + }, + { + "condition": "q.block_state('minecraft:vertical_half') == 'top' && q.block_state('minecraft:cardinal_direction') == 'east' && !q.block_state('wiki:open')", + "components": { + "minecraft:transformation": { "rotation": [180, -270, 0] } + } + }, + { + "condition": "q.block_state('minecraft:vertical_half') == 'top' && q.block_state('minecraft:cardinal_direction') == 'west' && !q.block_state('wiki:open')", + "components": { + "minecraft:transformation": { "rotation": [180, 270, 0] } + } + }, + // Top Open + { + "condition": "q.block_state('minecraft:vertical_half') == 'top' && q.block_state('minecraft:cardinal_direction') == 'north' && q.block_state('wiki:open')", + "components": { + "minecraft:transformation": { "rotation": [-270, 0, 0] } + } + }, + { + "condition": "q.block_state('minecraft:vertical_half') == 'top' && q.block_state('minecraft:cardinal_direction') == 'south' && q.block_state('wiki:open')", + "components": { + "minecraft:transformation": { "rotation": [270, 0, -180] } + } + }, + { + "condition": "q.block_state('minecraft:vertical_half') == 'top' && q.block_state('minecraft:cardinal_direction') == 'east' && q.block_state('wiki:open')", + "components": { + "minecraft:transformation": { "rotation": [0, 270, 90] } + } + }, + { + "condition": "q.block_state('minecraft:vertical_half') == 'top' && q.block_state('minecraft:cardinal_direction') == 'west' && q.block_state('wiki:open')", + "components": { + "minecraft:transformation": { + "rotation": [180, -270, -270] + } + } + }, + // Bottom Closed + { + "condition": "q.block_state('minecraft:vertical_half') == 'bottom' && q.block_state('minecraft:cardinal_direction') == 'north' && !q.block_state('wiki:open')", + "components": { + "minecraft:transformation": { "rotation": [0, 0, 0] } + } + }, + { + "condition": "q.block_state('minecraft:vertical_half') == 'bottom' && q.block_state('minecraft:cardinal_direction') == 'south' && !q.block_state('wiki:open')", + "components": { + "minecraft:transformation": { "rotation": [0, 180, 0] } + } + }, + { + "condition": "q.block_state('minecraft:vertical_half') == 'bottom' && q.block_state('minecraft:cardinal_direction') == 'east' && !q.block_state('wiki:open')", + "components": { + "minecraft:transformation": { "rotation": [0, 270, 0] } + } + }, + { + "condition": "q.block_state('minecraft:vertical_half') == 'bottom' && q.block_state('minecraft:cardinal_direction') == 'west' && !q.block_state('wiki:open')", + "components": { + "minecraft:transformation": { "rotation": [0, -270, 0] } + } + }, + // Bottom Open + { + "condition": "q.block_state('minecraft:vertical_half') == 'bottom' && q.block_state('minecraft:cardinal_direction') == 'north' && q.block_state('wiki:open')", + "components": { + "minecraft:transformation": { "rotation": [90, 0, 180] } + } + }, + { + "condition": "q.block_state('minecraft:vertical_half') == 'bottom' && q.block_state('minecraft:cardinal_direction') == 'south' && q.block_state('wiki:open')", + "components": { + "minecraft:transformation": { "rotation": [270, 0, 0] } + } + }, + { + "condition": "q.block_state('minecraft:vertical_half') == 'bottom' && q.block_state('minecraft:cardinal_direction') == 'east' && q.block_state('wiki:open')", + "components": { + "minecraft:transformation": { "rotation": [0, -270, 90] } + } + }, + { + "condition": "q.block_state('minecraft:vertical_half') == 'bottom' && q.block_state('minecraft:cardinal_direction') == 'west' && q.block_state('wiki:open')", + "components": { + "minecraft:transformation": { "rotation": [180, 270, -270] } + } + } + ], + "components": { + "minecraft:collision_box": { + "origin": [-8, 0, -8], + "size": [16, 3, 16] + }, + "minecraft:selection_box": { + "origin": [-8, 0, -8], + "size": [16, 3, 16] + }, + "minecraft:geometry": "geometry.trapdoor", + "minecraft:material_instances": { + "*": { + "texture": "spruce_trapdoor", + "render_method": "alpha_test" + } + }, + "minecraft:on_interact": { + "event": "wiki:toggle" + } + }, + "events": { + "wiki:toggle": { + "sequence": [ + { + "set_block_state": { + "wiki:open": "!q.block_state('wiki:open')" + } + }, + { + "condition": "q.block_state('wiki:open')", + "run_command": { + "command": "playsound close.wooden_trapdoor @a ~~~ 0.9 0.9" + } + }, + { + "condition": "!q.block_state('wiki:open')", + "run_command": { + "command": "playsound open.wooden_trapdoor @a ~~~ 0.9 0.9" + } + } + ] + } + } + } +} +``` + +## Geometry + +This will be the geometry used for your custom trapdoors. + + + +RP/models/blocks/trapdoor.geo.json + +```json +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.trapdoor", + "texture_width": 16, + "texture_height": 16, + "visible_bounds_width": 2, + "visible_bounds_height": 1.5, + "visible_bounds_offset": [0, 0.25, 0] + }, + "bones": [ + { + "name": "trapdoor", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, 0, -8], + "size": [16, 3, 16], + "uv": { + "north": {"uv": [16, 3], "uv_size": [-16, -3]}, + "east": {"uv": [16, 3], "uv_size": [-16, -3]}, + "south": {"uv": [16, 3], "uv_size": [-16, -3]}, + "west": {"uv": [16, 3], "uv_size": [-16, -3]}, + "up": {"uv": [16, 16], "uv_size": [-16, -16]}, + "down": {"uv": [0, 0], "uv_size": [16, 16]} + } + } + ] + } + ] + } + ] +} +``` + + + +:::tip +Vanilla trapdoors have a few issues in the direction of the texture in certain faces and having a height of 2.95 when it should be 3. This block template and geometry fixes both of those issues. +::: diff --git a/docs/wiki/2-方块/4-原版再创作/custom-trees.md b/docs/wiki/2-方块/4-原版再创作/custom-trees.md new file mode 100644 index 00000000..9d6183ab --- /dev/null +++ b/docs/wiki/2-方块/4-原版再创作/custom-trees.md @@ -0,0 +1,994 @@ +--- +title: Custom Trees +category: Vanilla Re-Creations +tags: + - experimental +mentions: + - MedicalJewel105 + - TheItsNameless + - QuazChick +--- + +::: tip FORMAT & MIN ENGINE VERSION `1.20.30` +This tutorial assumes an advanced understanding of blocks. +Check out the [blocks guide](/blocks/blocks-intro) before starting. +::: + +::: warning EXPERIMENTAL +Requires `Holiday Creator Features` for use of block tag Molang queries and to trigger block events. +::: + +Creating your own tree with decaying leaves is complex, but possible! Follow this tutorial and you'll have your own in no time. + +- Features: + + - Decaying leaves + - Tree Feature compatable + - If leaves were broken using shears, they will drop the block + - Leaves don't decay if placed by player + - Logs are strippable and rotatable + - Stripping logs is compatible with tools from other add-ons (if they have the `minecraft:is_axe` tag) + - Saplings can be bonemealed and grow the tree (with structures) + +- Issues: + - If you make a structure with these blocks, it will crash the game when generated using features. + +## Decaying Leaves + +You will notice straight away that our custom leaves have a long list to search for a vanilla log/custom log by its block tag, although the code example uses the custom logs for this tutorial. The value is 4 and this method is used to search for the nearest log in a circular radius. + + + +Our custom leaves disables ticking when placed by the player which doesn't make the leaves decay and this removes the requirements for another duplicate leave block. + + + +BP/blocks/custom_leaves.json + +```json +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:custom_leaves", + "states": { + "wiki:decay_tier": [4, 3, 2, 1, 0], // Distance in blocks to find the log + "wiki:should_decay": [true, false], // Used when placed by the player or with features + "wiki:opaque": [false, true] // Optional; makes the leaves opaque when surrounded + } + }, + "components": { + "tag:custom_leaves": {}, + "minecraft:loot": "loot_tables/empty.json", + "minecraft:unit_cube": {}, + "minecraft:on_player_placing": { + "event": "wiki:stop_decay" + }, + // Triggers event that spawns different loot + "minecraft:on_player_destroyed": { + "event": "wiki:on_destroyed" + }, + // We need both of these to work with world generation + "minecraft:queued_ticking": { + "looping": true, + "interval_range": [0, 0], + "on_tick": { + "event": "wiki:check" + } + }, + "minecraft:random_ticking": { + "on_tick": { + "event": "wiki:check" + } + }, + "minecraft:destructible_by_explosion": { + "explosion_resistance": 1 + }, + "minecraft:destructible_by_mining": { + "seconds_to_destroy": 0.3 + }, + "minecraft:map_color": "#DDDDDD", + "minecraft:light_dampening": 0, + "minecraft:material_instances": { + "*": { + "texture": "custom_leaves", + "render_method": "blend" + } + } + }, + "events": { + // Defines the loot for the tool + "wiki:on_destroyed": { + "sequence": [ + { + "condition": "q.is_item_name_any('slot.weapon.mainhand','minecraft:shears')", + "spawn_loot": { + "table": "loot_tables/blocks/custom_leaves_shears.json" + } + }, + { + "condition": "!q.is_item_name_any('slot.weapon.mainhand','minecraft:shears')", + "spawn_loot": { + "table": "loot_tables/blocks/custom_leaves.json" + } + } + ] + }, + // Checks for the log + "wiki:check": { + "sequence": [ + { + "condition": "q.block_state('wiki:should_decay')", + "set_block_state": { + "wiki:decay_tier": "(q.block_neighbor_has_any_tag(0,0,-1,'log') || q.block_neighbor_has_any_tag(0,0,1,'log') || q.block_neighbor_has_any_tag(-1,0,0,'log') || q.block_neighbor_has_any_tag(1,0,0,'log') || q.block_neighbor_has_any_tag(0,-1,0,'log') || q.block_neighbor_has_any_tag(0,1,0,'log')) ? 4 : ((q.block_neighbor_has_any_tag(0,0,-1,'decay_tier_4') || q.block_neighbor_has_any_tag(0,0,1,'decay_tier_4') || q.block_neighbor_has_any_tag(-1,0,0,'decay_tier_4') || q.block_neighbor_has_any_tag(1,0,0,'decay_tier_4') || q.block_neighbor_has_any_tag(0,-1,0,'decay_tier_4') || q.block_neighbor_has_any_tag(0,1,0,'decay_tier_4')) ? 3 : ( (q.block_neighbor_has_any_tag(0,0,-1,'decay_tier_3') || q.block_neighbor_has_any_tag(0,0,1,'decay_tier_3 ') || q.block_neighbor_has_any_tag(-1,0,0,'decay_tier_3') || q.block_neighbor_has_any_tag(1,0,0,'decay_tier_3') || q.block_neighbor_has_any_tag(0,-1,0,'decay_tier_3') || q.block_neighbor_has_any_tag(0,1,0,'decay_tier_3')) ? 2 : ( (q.block_neighbor_has_any_tag(0,0,-1,'decay_tier_2') || q.block_neighbor_has_any_tag(0,0,1,'decay_tier_2') || q.block_neighbor_has_any_tag(-1,0,0,'decay_tier_2') || q.block_neighbor_has_any_tag(1,0,0,'decay_tier_2') || q.block_neighbor_has_any_tag(0,-1,0,'decay_tier_2') || q.block_neighbor_has_any_tag(0,1,0,'decay_tier_2')) ? 1 : 0 ) ) )" + } + }, + { + "set_block_state": { + "wiki:opaque": "q.block_neighbor_has_any_tag(0,0,-1,'log','stone','custom_leaves') && q.block_neighbor_has_any_tag(0,0,1,'log','stone','custom_leaves') && q.block_neighbor_has_any_tag(0,1,0,'log','stone','custom_leaves') && q.block_neighbor_has_any_tag(0,-1,0,'log','stone','custom_leaves') && q.block_neighbor_has_any_tag(-1,0,0,'log','stone','custom_leaves') && q.block_neighbor_has_any_tag(1,0,0,'log','stone','custom_leaves')" + } + } + ] + }, + // When placed + "wiki:stop_decay": { + "set_block_state": { + "wiki:should_decay": false + } + }, + // When decayed + "wiki:decay": { + "die": {}, + "spawn_loot": { + "table": "loot_tables/blocks/custom_leaves.json" + } + } + }, + "permutations": [ + { + "condition": "q.block_state('wiki:decay_tier') == 0", + "components": { + "minecraft:random_ticking": { + "on_tick": { + "event": "wiki:decay" + } + }, + "tag:decay_tier_0": {} + } + }, + { + "condition": "q.block_state('wiki:decay_tier') == 1", + "components": { + "tag:decay_tier_1": {} + } + }, + { + "condition": "q.block_state('wiki:decay_tier') == 2", + "components": { + "tag:decay_tier_2": {} + } + }, + { + "condition": "q.block_state('wiki:decay_tier') == 3", + "components": { + "tag:decay_tier_3": {} + } + }, + { + "condition": "q.block_state('wiki:decay_tier') == 4", + "components": { + "tag:decay_tier_4": {} + } + }, + { + "condition": "q.block_state('wiki:opaque')", + "components": { + "minecraft:material_instances": { + "*": { + "texture": "custom_leaves", + "render_method": "opaque" + } + } + } + } + ] + } +} +``` + + + +## Custom Log + + + +BP/blocks/custom_log.json + +```json +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:custom_log", + "menu_category": { + "category": "nature", + "group": "itemGroup.name.log" + }, + "states": { + // Log direction state + "wiki:axis": [0, 1, 2] + } + }, + "components": { + "tag:log": {}, + "minecraft:unit_cube": {}, + // Sets different textures for sides and top/bottom of log + "minecraft:material_instances": { + "*": { + "texture": "custom_log" + }, + "ends": { + "texture": "custom_log_top" + }, + "up": "ends", + "down": "ends" + }, + "minecraft:destructible_by_mining": { + "seconds_to_destroy": 1 + }, + // Sets log rotation on player placing + "minecraft:on_player_placing": { + "event": "wiki:set_axis" + }, + // Make log strippable + "minecraft:on_interact": { + "condition": "q.equipped_item_any_tag('slot.weapon.mainhand', 'minecraft:is_axe')", + "event": "wiki:strip" + } + }, + "events": { + "wiki:set_axis": { + "set_block_state": { + "wiki:axis": "Math.floor(q.block_face / 2)" + } + }, + "wiki:strip": { + "sequence": [ + { + "run_command": { + "command": "playsound hit.wood @a ~~~" + }, + // Damages axe of player who stripped the log + "damage": { + "type": "durability", + "amount": 1, + "target": "item" + } + }, + { + "condition": "q.block_state('wiki:axis') == 0", + "run_command": { + "command": "setblock ~~~ wiki:custom_stripped_log [\"wiki:axis\"=0]" + } + }, + { + "condition": "q.block_state('wiki:axis') == 1", + "run_command": { + "command": "setblock ~~~ wiki:custom_stripped_log [\"wiki:axis\"=1]" + } + }, + { + "condition": "q.block_state('wiki:axis') == 2", + "run_command": { + "command": "setblock ~~~ wiki:custom_stripped_log [\"wiki:axis\"=2]" + } + } + ] + } + }, + "permutations": [ + { + "condition": "q.block_state('wiki:axis') == 0", + "components": { + "minecraft:transformation": { "rotation": [0, 0, 0] } + } + }, + { + "condition": "q.block_state('wiki:axis') == 1", + "components": { + "minecraft:transformation": { "rotation": [90, 0, 0] } + } + }, + { + "condition": "q.block_state('wiki:axis') == 2", + "components": { + "minecraft:transformation": { "rotation": [0, 0, 90] } + } + } + ] + } +} +``` + + + +## Stripped Log + +Here all components are the same + + + +BP/blocks/custom_stripped_log.json + +```json +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:custom_stripped_log", + "menu_category": { + "category": "nature", + "group": "itemGroup.name.log" + }, + "states": { + // Log direction state + "wiki:axis": [0, 1, 2] + } + }, + "components": { + "tag:log": {}, + "minecraft:unit_cube": {}, + // Sets different textures for sides and top/bottom of log + "minecraft:material_instances": { + "*": { + "texture": "custom_stripped_log" + }, + "ends": { + "texture": "custom_stripped_log_top" + }, + "up": "ends", + "down": "ends" + }, + "minecraft:destructible_by_mining": { + "seconds_to_destroy": 1 + }, + // Sets log rotation on player placing + "minecraft:on_player_placing": { + "event": "wiki:set_axis" + } + }, + "events": { + "wiki:set_axis": { + "set_block_state": { + "wiki:axis": "Math.floor(q.block_face / 2)" + } + } + }, + "permutations": [ + { + "condition": "q.block_state('wiki:axis') == 0", + "components": { + "minecraft:transformation": { "rotation": [0, 0, 0] } + } + }, + { + "condition": "q.block_state('wiki:axis') == 1", + "components": { + "minecraft:transformation": { "rotation": [90, 0, 0] } + } + }, + { + "condition": "q.block_state('wiki:axis') == 2", + "components": { + "minecraft:transformation": { "rotation": [0, 0, 90] } + } + } + ] + } +} +``` + + + +## Custom Sapling + +For the sapling we will need structures of our tree to make the sapling semi-realistic as features cannot currently be placed with commands on Minecraft Bedrock. + + + +BP/blocks/custom_sapling.json + +```json +{ + "format_version": "1.20.30", + "minecraft:block": { + "description": { + "identifier": "wiki:custom_sapling", + "states": { + // Sapling's growth stage + "wiki:growth_stage": [0, 1, 2] + } + }, + "components": { + "minecraft:collision_box": false, + "minecraft:selection_box": { + "origin": [-6, 0, -6], + "size": [12, 13, 12] + }, + "minecraft:light_dampening": 0, + "minecraft:geometry": "geometry.custom_sapling", + "minecraft:material_instances": { + "*": { + "texture": "custom_sapling", + "render_method": "alpha_test", + "face_dimming": false, + "ambient_occlusion": false + } + }, + // Add loot component so it will drop sapling placer item + "minecraft:loot": "loot_tables/blocks/custom_sapling.json", + // Allows to place block only on these blocks + "minecraft:placement_filter": { + "conditions": [ + { + "allowed_faces": ["up"], + "block_filter": ["minecraft:dirt", "minecraft:grass", "minecraft:podzol"] + } + ] + }, + // Trigger growth on each random tick + "minecraft:random_ticking": { + "on_tick": { + "event": "wiki:grow" + } + }, + // Trigger growth when bone meal is used + "minecraft:on_interact": { + "condition": "q.is_item_name_any('slot.weapon.mainhand', 'minecraft:bone_meal')", + "event": "wiki:fertilize" + } + }, + "events": { + "wiki:grow": { + "sequence": [ + { + "condition": "q.block_state('wiki:growth_stage') < 2", + "set_block_state": { + "wiki:growth_stage": "q.block_state('wiki:growth_stage') + 1" + } + }, + { + "condition": "q.block_state('wiki:growth_stage') == 2", + "run_command": { + "command": "structure load custom_tree ~-2~~-2" + } + } + ] + }, + "wiki:fertilize": { + // Removes item that was used to interact + "decrement_stack": {}, + // Trigger growth + "trigger": { + "event": "wiki:grow" + }, + // Trigger effects + "run_command": { + "command": ["particle minecraft:crop_growth_emitter ~~~", "playsound item.bone_meal.use @a ~~~"] + } + } + } + } +} +``` + + + +## Sapling Placer + + + +BP/items/custom_sapling_placer.json + +```json +{ + "format_version": "1.20.30", + "minecraft:item": { + "description": { + "identifier": "wiki:custom_sapling_placer", + "menu_category": { + "category": "nature", + "group": "itemGroup.name.sapling" + } + }, + "components": { + "minecraft:max_stack_size": 64, + "minecraft:block_placer": { + "block": "wiki:custom_sapling" + }, + "minecraft:icon": { + "texture": "custom_sapling_placer" + } + } + } +} +``` + + + +## Loot Tables + + + +This loot will spawn leaves block (when you break it using shears) + +BP/loot_tables/blocks/custom_leaves_shears.json + +```json +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "item", + "name": "wiki:custom_leaves" + } + ] + } + ] +} +``` + +Leaves default loot + +BP/loot_tables/blocks/custom_leaves.json + +```json +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "item", + "name": "minecraft:apple", + "weight": 1 + }, + { + "type": "item", + "name": "wiki:custom_sapling_placer", + "weight": 5 + }, + { + // Nothing will drop + "type": "empty", + "weight": 10 + } + ] + } + ] +} +``` + +This will spawn `wiki:custom_sapling` + +BP/loot_tables/blocks/custom_sapling.json + +```json +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "item", + "name": "wiki:custom_sapling_placer" + } + ] + } + ] +} +``` + + + +## Exporting Structures + +Build a tree for your sapling to grow into! + +![](/assets/images/blocks/custom-trees/export_tree.png) + +## Tree Features + +:::tip +Tree Features are a really great way to get actual custom trees. You need some understanding on how they work but for this tutorial you can uses these templates. +::: + + + +BP/feature/custom_tree_feature.json + +```json +{ + "format_version": "1.13.0", + "minecraft:tree_feature": { + "description": { + "identifier": "wiki:custom_tree_feature" + }, + "trunk": { + "trunk_block": "wiki:custom_log", + "trunk_height": { + "range_min": 4, + "range_max": 7 + } + }, + "canopy": { + "leaf_block": "wiki:custom_leaves", + "canopy_offset": { + "min": -3, + "max": 0 + }, + "variation_chance": [ + { + "numerator": 1, + "denominator": 2 + }, + { + "numerator": 1, + "denominator": 2 + }, + { + "numerator": 1, + "denominator": 2 + }, + { + "numerator": 1, + "denominator": 1 + } + ] + }, + "base_block": [ + "minecraft:dirt", + { + "name": "minecraft:dirt", + "states": { + "dirt_type": "coarse" + } + } + ], + "may_grow_on": [ + "minecraft:dirt", + "minecraft:grass", + "minecraft:podzol", + { + "name": "minecraft:dirt", + "states": { + "dirt_type": "coarse" + } + }, + { + "name": "minecraft:farmland", + "states": { + "moisturized_amount": 0 + } + }, + { + "name": "minecraft:farmland", + "states": { + "moisturized_amount": 1 + } + }, + { + "name": "minecraft:farmland", + "states": { + "moisturized_amount": 2 + } + }, + { + "name": "minecraft:farmland", + "states": { + "moisturized_amount": 3 + } + }, + { + "name": "minecraft:farmland", + "states": { + "moisturized_amount": 4 + } + }, + { + "name": "minecraft:farmland", + "states": { + "moisturized_amount": 5 + } + }, + { + "name": "minecraft:farmland", + "states": { + "moisturized_amount": 6 + } + }, + { + "name": "minecraft:farmland", + "states": { + "moisturized_amount": 7 + } + } + ], + "may_replace": [ + "minecraft:air", + { + "name": "minecraft:leaves", + "states": { + "old_leaf_type": "oak" + } + }, + { + "name": "minecraft:leaves", + "states": { + "old_leaf_type": "spruce" + } + }, + { + "name": "minecraft:leaves", + "states": { + "old_leaf_type": "birch" + } + }, + { + "name": "minecraft:leaves", + "states": { + "old_leaf_type": "jungle" + } + }, + { + "name": "minecraft:leaves2", + "states": { + "new_leaf_type": "acacia" + } + }, + { + "name": "minecraft:leaves2", + "states": { + "new_leaf_type": "dark_oak" + } + } + ], + "may_grow_through": [ + "minecraft:dirt", + "minecraft:grass", + { + "name": "minecraft:dirt", + "states": { + "dirt_type": "coarse" + } + } + ] + } +} +``` + + + + + +BP/feature_rules/custom_tree_feature_rule.json + +```json +{ + "format_version": "1.13.0", + "minecraft:feature_rules": { + "description": { + "identifier": "wiki:custom_tree_feature_rule", + "places_feature": "wiki:custom_tree_feature" + }, + "conditions": { + "placement_pass": "surface_pass", + "minecraft:biome_filter": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "plains" + } + ] + }, + "distribution": { + "iterations": 1, + "x": { + "distribution": "uniform", + "extent": [0, 16] + }, + "y": "q.heightmap(v.worldx, v.worldz)", + "z": { + "distribution": "uniform", + "extent": [0, 16] + } + } + } +} +``` + + + +## Resource Pack (optional guide) + +Now it is time to make a resource pack! + +Make translations for blocks: + +RP/texts/en_US.lang + +``` +tile.wiki:custom_log.name=Custom Log +tile.wiki:custom_leaves.name=Custom Leaves +tile.wiki:custom_stripped_log.name=Custom Stripped Log +tile.wiki:custom_sapling.name=Custom Sapling +item.wiki:custom_sapling_placer=Custom Sapling +``` + +Make terrain_texture.json and textures. + +RP/textures/terrain_texture.json + +```json +{ + "resource_pack_name": "custom-trees", + "texture_name": "atlas.terrain", + "num_mip_levels": 4, + "padding": 8, + "texture_data": { + "custom_leaves": { + "textures": "textures/blocks/leaves_oak" + }, + "custom_log": { + "textures": "textures/blocks/log_oak" + }, + "custom_log_top": { + "textures": "textures/blocks/log_oak_top" + }, + "custom_stripped_log": { + "textures": "textures/blocks/stripped_oak_log" + }, + "custom_stripped_log_top": { + "textures": "textures/blocks/stripped_oak_log_top" + }, + "custom_sapling": { + "textures": "textures/blocks/sapling_oak" + } + } +} +``` + +Make geometry for sapling: + +RP/models/blocks/custom_sapling.geo.json + +```json +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.custom_sapling", + "texture_width": 16, + "texture_height": 16, + "visible_bounds_width": 2, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "sapling", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, 0, 0], + "size": [16, 16, 0], + "pivot": [0, 0, 0], + "rotation": [0, 45, 0], + "uv": { + "north": {"uv": [0, 0], "uv_size": [16, 16]} + } + }, + { + "origin": [-8, 0, 0], + "size": [16, 16, 0], + "pivot": [0, 0, 0], + "rotation": [0, -45, 0], + "uv": { + "north": {"uv": [0, 0], "uv_size": [16, 16]} + } + } + ] + } + ] + } + ] +} +``` + +Make item_texture file + +RP/textures/item_texture.json + +```json +{ + "resource_pack_name": "custom-trees", + "texture_name": "atlas.items", + "texture_data": { + "custom_sapling_placer": { + "textures": "textures/blocks/sapling_oak" + } + } +} +``` + +Add sounds to blocks + +RP/blocks.json + +```json +{ + "format_version": [1, 1, 0], + "wiki:custom_leaves": { + "sound": "grass" + }, + "wiki:custom_log": { + "sound": "wood" + }, + "wiki:custom_stripped_log": { + "sound": "wood" + }, + "wiki:custom_sapling": { + "sound": "grass" + } +} +``` + +## Result + +What you have created: + + + +- [x] Custom Trees with Decaying Leaves +- [x] Working Sapling +- [x] Rotatable and Stripable Logs + + + + + +![](/assets/images/blocks/custom-trees/result.png) + +## Download Example Pack + +Template Pack to use in-game to get the idea. + +Download MCADDON \ No newline at end of file diff --git a/docs/wiki/2-方块/5-文档/block-shapes.md b/docs/wiki/2-方块/5-文档/block-shapes.md new file mode 100644 index 00000000..0fed78c0 --- /dev/null +++ b/docs/wiki/2-方块/5-文档/block-shapes.md @@ -0,0 +1,131 @@ +--- +title: 方块形状 +category: 文档 +mentions: + - SirLich + - yanasakana + - MedicalJewel105 + - aexer0e + - Luthorius + - Fabrimat + - TheItsNameless + - QuazChick +--- + +# 方块形状 + + + +:::warning 已弃用 +方块形状功能已不再受官方支持,且无法应用于自定义方块,但仍可作用于原版方块。 +::: + +方块形状本质上是硬编码于原版游戏中的几何模型,这意味着它们的存在不依赖于可见建模文件。 + +## 应用方式 + +在资源包的`blocks.json`文件中,通过方块对象的`"blockshape"`子项进行定义。具体示例如下: + +::: code-group +```json [RP/blocks.json] +"wiki:invisible_aluminium_ore": { + "blockshape": "invisible", + "sound": "stone", + "textures": "invisible_aluminium_ore" +} +``` +::: + +## 已知方块形状列表 + +| 标识符 | 方块形状名称 | +| --- | ------------------------- | +| -1 | invisible(不可见) | +| 0 | block(普通方块) | +| 1 | cross_texture(交叉纹理) | +| 2 | torch(火把) | +| 3 | fire(火焰) | +| 4 | water(水体) | +| 5 | red_dust(红石粉) | +| 6 | rows(行排列) | +| 7 | door(门) | +| 8 | ladder(梯子) | +| 9 | rail(轨道) | +| 10 | stairs(阶梯) | +| 11 | fence(栅栏) | +| 12 | lever(拉杆) | +| 13 | cactus(仙人掌) | +| 14 | bed(床) | +| 15 | diode(二极管) | +| 18 | iron_fence(铁栏杆) | +| 19 | stem(茎干) | +| 20 | vine(藤蔓) | +| 21 | fence_gate(栅栏门) | +| 22 | chest(箱子) | +| 23 | lilypad(睡莲) | +| 25 | brewing_stand(炼药台) | +| 26 | portal_frame(传送门框架) | +| 28 | cocoa(可可豆) | +| 31 | tree(树木) | +| 32 | cobblestone_wall(圆石墙) | +| 40 | double_plant(双层植物) | +| 42 | flower_pot(花盆) | +| 43 | anvil(铁砧) | +| 44 | dragon_egg(龙蛋) | +| 48 | structure_void(结构空位) | +| 67 | block_half(半砖) | +| 68 | top_snow(顶层雪) | +| 69 | tripwire(绊线) | +| 70 | tripwire_hook(绊线钩) | +| 71 | cauldron(炼药锅) | +| 72 | repeater(中继器) | +| 73 | comparator(比较器) | +| 74 | hopper(漏斗) | +| 75 | slime_block(粘液块) | +| 76 | piston(活塞) | +| 77 | beacon(信标) | +| 78 | chorus_plant(紫颂植物) | +| 79 | chorus_flower(紫颂花) | +| 80 | end_portal(末地传送门) | +| 81 | end_rod(末地烛) | +| 83 | skull(头颅) | +| 84 | facing_block(朝向方块) | +| 85 | command_block(命令方块) | +| 86 | terracotta(陶瓦) | +| 87 | double_side_fence(双面栅栏) | +| 88 | frame(物品展示框) | +| 89 | shulker_box(潜影盒) | +| 90 | doublesided_cross_texture(双面交叉纹理) | +| 91 | doublesided_double_plant(双面双层植物) | +| 92 | doublesided_rows(双面行排列) | +| 93 | element_block(元素方块) | +| 94 | chemistry_table(化学工作台)| +| 96 | coral_fan(珊瑚扇) | +| 97 | seagrass(海草) | +| 98 | kelp(海带) | +| 99 | trapdoor(活板门) | +| 100 | sea_pickle(海泡菜) | +| 101 | conduit(潮涌核心) | +| 102 | turtle_egg(海龟蛋) | +| 105 | bubble_column(气泡柱) | +| 106 | barrier(屏障) | +| 107 | sign(告示牌) | +| 108 | bamboo(竹子) | +| 109 | bamboo_sapling(竹笋) | +| 110 | scaffolding(脚手架) | +| 111 | grindstone(砂轮) | +| 112 | bell(钟) | +| 113 | lantern(灯笼) | +| 114 | campfire(营火) | +| 115 | lectern(讲台) | +| 116 | sweet_berry_bush(甜浆果丛)| +| 117 | cartography_table(制图台) | +| 119 | stonecutter_block(切石机) | +| 123 | chain(锁链) | +| 126 | sculk_sensor(侦测器) | +| 133 | azalea(杜鹃花丛) | +| 133 | flowering_azalea(盛开的杜鹃花丛) | +| 134 | glow_frame(荧光物品展示框)| +| 135 | glow_lichen(发光地衣) | + +[原作者致谢](https://gist.github.com/toka7290/3bef704d2f57c775bb9ac84443a6df1c) \ No newline at end of file diff --git a/docs/wiki/2-方块/5-文档/block-sounds.md b/docs/wiki/2-方块/5-文档/block-sounds.md new file mode 100644 index 00000000..3b1f1b20 --- /dev/null +++ b/docs/wiki/2-方块/5-文档/block-sounds.md @@ -0,0 +1,122 @@ +--- +title: 方块声音 +category: 文档 +mentions: + - MedicalJewel105 + - TheItsNameless + - QuazChick +--- + +# 方块声音 + + + +方块声音指的是`blocks.json`中方块条目内的音效属性。 +该属性用于设置方块的基本音效,包含挖掘音效、踩踏音效、破坏音效和放置音效等。您可以通过以下方式为方块添加音效: + +::: code-group +```json [RP/blocks.json] +{ + "format_version": [1, 1, 0], + "wiki:custom_log": { + "sound": "wood" // 在此定义音效 + } +} +``` +::: + +以下为`sound`属性的有效值: + + +| *最后更新于1.20.10版本* | +| -------------------------- | +| amethyst_block | +| amethyst_cluster | +| ancient_debris | +| anvil | +| azalea | +| azalea_leaves | +| bamboo | +| bamboo_sapling | +| bamboo_wood | +| bamboo_wood_hanging_sign | +| basalt | +| big_dripleaf | +| bone_block | +| calcite | +| candle | +| cave_vines | +| chain | +| cherry_leaves | +| cherry_wood | +| cherry_wood_hanging_sign | +| chiseled_bookshelf | +| cloth | +| comparator | +| copper | +| coral | +| decorated_pot | +| deepslate | +| deepslate_bricks | +| dirt_with_roots | +| dripstone_block | +| frog_spawn | +| froglight | +| fungus | +| glass | +| grass | +| gravel | +| hanging_roots | +| hanging_sign | +| honey_block | +| itemframe | +| ladder | +| lantern | +| large_amethyst_bud | +| lever | +| lodestone | +| mangrove_roots | +| medium_amethyst_bud | +| metal | +| moss_block | +| moss_carpet | +| mud | +| mud_bricks | +| muddy_mangrove_roots | +| nether_brick | +| nether_gold_ore | +| nether_sprouts | +| nether_wart | +| nether_wood | +| nether_wood_hanging_sign | +| netherite | +| netherrack | +| nylium | +| packed_mud | +| pink_petals | +| pointed_dripstone | +| powder_snow | +| roots | +| sand | +| scaffolding | +| sculk | +| sculk_catalyst | +| sculk_sensor | +| sculk_shrieker | +| sculk_vein | +| shroomlight | +| slime | +| small_amethyst_bud | +| snow | +| soul_sand | +| soul_soil | +| spore_blossom | +| stem | +| stone | +| suspicious_gravel | +| suspicious_sand | +| sweet_berry_bush | +| tuff | +| vines | +| wood | + \ No newline at end of file diff --git a/docs/wiki/3-实体/1-基础/entity-events.md b/docs/wiki/3-实体/1-基础/entity-events.md new file mode 100644 index 00000000..f1e34da2 --- /dev/null +++ b/docs/wiki/3-实体/1-基础/entity-events.md @@ -0,0 +1,273 @@ +--- +title: 实体事件 +category: 综合 +mentions: + - ChibiMango + - SirLich + - Joelant05 + - MedicalJewel105 + - aexer0e + - SmokeyStack + - ThomasOrs +tags: + - 新手 +--- + +# 实体事件 + + + +实体事件是行为系统中与组件(Component)和组件组(Component Group)并列的基础构建模块之一。它们作为组件组的控制中枢,可以通过组件、动画(Animation)、动画控制器(Animation Controller)及其他事件进行调用。本文旨在详解实体内部及跨实体事件调用的方法,以及事件的基本格式结构。 + +## 事件结构 + +事件允许我们在特定条件满足时,通过添加或移除组件组来改变实体的行为模式。我们称之为"事件(Event)",因为它们可以被战斗倒计时结束、玩家交互、环境变化等情景所触发。当事件激活时,会根据预定义指令处理组件组的增删操作。 + +每个事件可包含七个核心指令键,分别用于执行组件组增删、条件判断、事件触发及属性设置: +- add(添加) +- remove(移除) +- randomize(随机化) +- sequence(序列) +- filters(过滤器) +- trigger(触发器) +- set_property(属性设置) + +### 添加/移除 + +事件最基础的功能是通过add/remove键直接增删组件组。如下示例中的`wiki:ranged_attacker`事件: + +::: code-group +```json [示例] +"wiki:ranged_attacker":{ + "add":{ + "component_groups":[ + "attacker", + "ranged" + ] + }, + "remove":{ + "component_groups":[ + "standby", + "melee" + ] + } +} +``` +::: + +:::tip 组件覆盖规则 +当添加组件组时,若现有活跃组件组中已包含同名组件,后添加的组件组会覆盖原有组件。 +::: + +### 随机化 + +randomize参数允许根据权重概率随机执行组件组操作。原版牛的生成事件即使用该机制,实现95%概率生成成年牛,5%概率生成幼崽: + +::: code-group +```json [牛生成逻辑] +"minecraft:entity_spawned":{ + "randomize":[ + { + "weight":95, + "add":{ + "component_groups":[ + "minecraft:cow_adult" + ] + } + }, + { + "weight":5, + "add":{ + "component_groups":[ + "minecraft:cow_baby" + ] + } + } + ] +} +``` +::: + +:::warning 注意 +随机化配置中对每组权重进行归一化处理,最终不同选项的选择概率与其权重值占总权重的比例相关。 +::: + +### 序列/过滤器 + +通过sequence参数可实现条件分支逻辑。原版僵尸的溺水转换事件根据是否是幼体执行不同操作: + +::: code-group +```json [僵尸溺水转换] +"minecraft:convert_to_drowned":{ + "sequence":[ + { + "filters":{ + "test":"has_component", + "operator":"!=", + "value":"minecraft:is_baby" + }, + "add":["minecraft:convert_to_drowned"], + "remove":["minecraft:start_drowned_transformation"] + }, + { + "filters":{ + "test":"has_component", + "value":"minecraft:is_baby" + }, + "add":["minecraft:convert_to_baby_drowned"], + "remove":["minecraft:start_drowned_transformation"] + } + ] +} +``` +::: + +:::tip 序列执行机制 +序列中的每个分支会依次检查执行,通过过滤器的分支都会被执行而无互斥性。若无过滤器则默认执行,但不影响后续分支的判断。 +::: + +下面这个整合多条件的攻击序列示例展示了复杂逻辑的实现: + +::: spoiler title="复杂攻击序列示例" + +::: code-group +```json [攻击逻辑] +"wiki:on_hit":{ + "randomize":[ + { + "weight":60 //60%概率无操作 + }, + { + "weight":40, + "sequence":[ + {"trigger":"attack_event"}, + { + "filters":["!minecraft:is_sheared"], + "sequence":[...] + }, + { + "filters":["minecraft:is_sheared"], + "sequence":[...] + } + ] + } + ] +} +``` +::: +::: + +### 事件触发 + +通过trigger参数可以在事件中调用其他事件,结合target参数可实现跨实体交互。以玩家与猪互动事件为例: + +::: code-group +```json [互动事件] +"wiki:on_interact": { + "trigger": { + "filters":{ + "test":"is_family", + "subject":"self", + "value":"pig" + }, + "event":"wiki:interacted", + "target":"other" + } +} +``` +::: + +:::tip 目标上下文 +事件的执行需要明确的实体上下文。例如互动事件中,"other"指代互动发起者。若无对应上下文时,"target"指令将失效。 +::: + +## 事件调用方式 + +事件可通过以下五种途径触发: +1. 组件系统调用(如环境传感器) +2. 动画时间轴调用 +3. 动画控制器状态切换 +4. 其他事件链式调用 +5. 控制台命令 `/event` + +以下示例展示不同调用方式: + +### 组件系统调用 + +僵尸的水下转换事件通过环境传感器触发: + +::: code-group +```json [僵尸转换] +"minecraft:environment_sensor": { + "triggers": { + "filters":["is_underwater"], + "event":"minecraft:start_transforming" + } +} +``` +::: + +### 动画调用 + +在动画时间轴中按时间节点触发扑击事件: + +::: code-group +```json [动画事件] +"animation.entity.pounce_timer": { + "timeline": { + "10.0": "@s wiki:start_pouncing" + }, + "animation_length":10.1 +} +``` +::: + +### 跨实体事件调用 + +唤魔者的特殊技能通过发送事件到特定实体: + +::: code-group +```json [唤魔者技能] +"minecraft:behavior.send_event":{ + "event_choices":[{ + "filters":["is_family:sheep"], + "sequence":[{ + "event":"wololo", + "target":"other" + }] + }] +} +``` +::: + +### 内置事件 + +系统级自动触发事件需特别注意: + +| 事件名称 | 触发条件 | +|------------------------------|--------------------------| +| minecraft:entity_spawned | 实体生成时 | +| minecraft:entity_born | 繁殖产生新实体时 | +| minecraft:entity_transformed | 实体形态转换完成时 | +| minecraft:on_prime | 爆炸物引信燃尽准备爆炸时 | + +::: code-group +```json [牛实体配置示例] +"events": { + "minecraft:entity_spawned": { + "randomize":[ + {"weight":95, "add":["minecraft:cow_adult"]}, + {"weight":5, "add":["minecraft:cow_baby"]} + ] + }, + "minecraft:entity_born":{ + "add":["minecraft:cow_baby"] + }, + "minecraft:entity_transformed":{ + "add":["minecraft:cow_adult"] + } +} +``` +::: + +通过合理组合这些功能模块,开发者可以创建出丰富复杂的实体行为逻辑。建议配合动画控制器文档以构建更高级的行为系统。 \ No newline at end of file diff --git a/docs/wiki/3-实体/1-基础/entity-intro-bp.md b/docs/wiki/3-实体/1-基础/entity-intro-bp.md new file mode 100644 index 00000000..5178f2f4 --- /dev/null +++ b/docs/wiki/3-实体/1-基础/entity-intro-bp.md @@ -0,0 +1,178 @@ +--- +title: 实体行为包入门指南 +category: 基础知识 +nav_order: 1 +tags: + - 指南 + - 新手入门 +mentions: + - SirLich + - solvedDev + - stirante + - Joelant05 + - destruc7ion + - MedicalJewel105 + - ChibiMango + - SmokeyStack + - ThomasOrs +--- + +# 实体行为包入门指南 + + + +构成行为包实体文件基础的三个主要结构如下:本文将解释它们的含义及使用方法。 + +组件组(component group)与组件(components)的混淆是常见的错误来源,请特别注意区分两者的区别。 + +## 组件(Components) + +组件是构成Minecraft实体的逻辑构建模块。所有组件均由Mojang开发并提供给开发者使用。组件可实现多种功能,例如设置实体尺寸或赋予游泳能力等。完整组件列表可参考[官方文档](https://bedrock.dev/docs/stable/Entities)。 + +_无法_创建自定义组件。所有组件列表由微软硬编码实现并对外提供。 + +需要为实体添加行为时,可通过在`minecraft:entity`对象的`components`属性中插入组件。例如要给实体添加攀爬能力,可插入组件:`"minecraft:can_climb": {}`。 + +组件统一采用`"minecraft:<组件名称>": { <参数设置> }`格式。不同类型组件需要设置不同参数。 + +以下是实体内的组件应用范例: + +::: code-group +```json [BP/entities/example.json#minecraft:entity] +"components": { + "minecraft:type_family": { + "family": [ + "player" + ] + }, + "minecraft:collision_box": { + "width": 0.6, + "height": 1.8 + }, + "minecraft:can_climb": {}, +} +``` +::: + +(注意`components`列表_仅_包含组件) + +## 组件组(Component Groups) + +组件组用于整理归类多个组件。通过`事件(events)`可动态添加或移除组件组,从而实现定制化游戏玩法。 + +应用示例: + +::: code-group +```json [BP/entities/example.json#minecraft:entity] +"component_groups": { + + //组件组名称 + "minecraft:cat_persian": { + + //合法的组件列表(可添加多项) + "minecraft:variant": { + "value": 6 + }, + "minecraft:physics": {} + }, + + //第二个组件组名称 + "wiki:example_group": { + "minecraft:type_family": { + "family": [ + "wiki_is_awesome!" + ] + } + } +} +``` +::: + +所有组件组均为自定义创建,不可直接引用其他实体的组件组。 + +在原版Minecraft实体中,组件组使用`minecraft:`前缀命名(如示例中的`minecraft:cat_persian`)。但需特别注意这些_并非_组件。开发者可自由使用任意命名规则,例如上文中的`wiki:example_group`。更多命名空间信息请参阅[此文档](/concepts/namespaces)。 + +放在组件组中的组件不会自动生效,必须通过事件激活才能影响实体行为。多个组件组可同时生效。 + +## 事件(Events) + +事件是一种特殊语法,用于在满足条件时通过组件触发添加/移除组件组的操作,从而实现实体的动态行为。 + +示例结构: + +::: code-group +```json [BP/entities/example.json#minecraft:entity#events] +"minecraft:ageable_grow_up": { //事件名称 + "remove": { //需要移除的组件组列表 + "component_groups": [ + "minecraft:cat_baby" + ] + }, + "add": { + "component_groups": [ + "minecraft:cat_adult" //需要添加的组件组列表 + ] + } +}, +``` +::: + +事件与组件组相同,均为完全自定义内容。不可直接照搬其他实体的事件名称(例如`"minecraft:ageable_grow_up"`)。若需类似功能,应自主设计组件组和事件。 + +_仅能对组件组进行添加/移除操作_,无法直接操作单个组件。 + +当满足某些条件时,特定组件会触发事件。下方示例演示交互功能实现: + +::: code-group +```json [BP/entities/example.json#minecraft:entity] +"components": { + "minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": [ //触发条件筛选器 + { + "test":"is_family", + "subject": "other", + "value": "player" //被交互对象属于玩家 + } + ], + "target": "self", //作用目标为实体自身 + "event": "wiki:on_interact" //触发指定事件 + } + } + ] + } +}, +"component_groups": { + "wiki:interacted": { + "minecraft:scale": { //缩放组件 + "value": 2 + } + } +}, +"events":{ + "wiki:on_interact":{ //事件定义 + "add": { + "component_groups": [ "wiki:interacted" ] //添加组件组 + } + } +} +``` +::: + +当玩家与该实体交互时,将触发`"wiki:on_interact"`事件,添加`"wiki:interacted"`组件组,从而激活缩放效果。 + +想深入了解事件的更多用法,请参阅[实体事件](/entities/entity-events)页面。 + +实体事件详解 + +## 原版应用案例 + +组件组与事件是原版实体实现自定义行为的核心工具。以下列举部分原版特性应用: + +- 僵尸在水下停留过久后会通过事件转变为溺尸(drowned) + +- 狐狸根据生成环境的不同,采用`minecraft:fox_red`与`minecraft:fox_active`组件组实现毛色变化 + +- 末影人使用事件机制实现被注视时进行攻击 \ No newline at end of file diff --git a/docs/wiki/3-实体/1-基础/entity-intro-rp.md b/docs/wiki/3-实体/1-基础/entity-intro-rp.md new file mode 100644 index 00000000..395ef62e --- /dev/null +++ b/docs/wiki/3-实体/1-基础/entity-intro-rp.md @@ -0,0 +1,273 @@ +--- +title: 实体资源包入门指南 +category: 基础指南 +nav_order: 2 +tags: + - 新手教程 + - 入门指南 +mentions: + - SirLich + - MedicalJewel105 + - Overload1252 + - ChibiMango + - Luthorius + - TheItsNameless + - SmokeyStack + - ThomasOrs +--- + +# 实体资源包入门指南 + + + +资源包中的实体文件定义了构成实体视觉效果的各种资源引用,同时包含了如何渲染这些视觉元素的详细逻辑。 + +本文将分解实体文件的每个组成部分并进行详细说明。如需创建自定义实体的完整指引,请参考我们的[新手教程](/guide/custom-entity)。 + +## 文件大纲 + +::: code-group +```json [RP/entity/example.json] +{ + "format_version": "1.10.0", + "minecraft:client_entity": { + "description": { + "identifier": "wiki:example", + "materials": {...}, + "textures": {...}, + "geometry": {...}, + "render_controllers": [...], + + "animations": {...}, + "scripts": {...}, + + "sound_effects": {...}, + "particle_effects": {...}, + + "spawn_egg": {...}, + "enable_attachables": false, + "hide_armor": false + } + } +} +``` +::: + +尽管看起来复杂,文件中大部分内容都采用**简称定义**模式。简称定义允许我们将资源路径(如材质纹理)或几何体ID等元素映射为简短名称以便后续引用。这种设计既方便后续资源路径变更时集中修改,也使代码保持简洁。 + +## 材质系统 +材质(Materials)决定了纹理的渲染方式。例如骷髅使用透明材质,而末影人的眼睛材质具有自发光特性。大部分情况下可以直接使用预设材质而无需自定义。 + +::: code-group +```json [RP/entity/spider.entity.json#minecraft:client_entity/description] +"materials": { + "default": "spider", + "invisible": "spider_invisible" +} +``` +::: + +这里的`default`和`invisible`是简称,分别指向`spider`和`spider_invisible`材质。需要注意的是单纯的简称定义并不会告知实体何时使用不同材质。 + +[预置材质列表](/documentation/materials)可供参考。[自定义材质教程](/visuals/materials)适合进阶开发者。 + +## 纹理配置 +纹理(Textures)是映射到模型表面的图像文件。此部分同样使用简称定义系统: + +::: code-group +```json [RP/entity/bee.entity.json#minecraft:client_entity/description] +"textures": { + "default": "textures/entity/bee/bee", + "angry": "textures/entity/bee/bee_angry", + "nectar": "textures/entity/bee/bee_nectar", + "angry_nectar": "textures/entity/bee/bee_angry_nectar" +} +``` +::: + +支持定义多状态纹理(如蜜蜂的不同状态),也可叠加纹理层(参考村民的生物群系基底+职业层组合)。详细应用技巧参见[渲染控制器章节](/entities/render-controllers)。 + +## 几何体格式 +几何体(Geometry)由Blockbench等建模工具生成的骨骼模型文件构成: + +::: code-group +```json [RP/entity/creeper.entity.json#minecraft:client_entity/description] +"geometry": { + "default": "geometry.creeper", + "charged": "geometry.creeper.charged" +} +``` +::: + +这里的简称指向几何体文件的唯一标识符(JSON文件中的`identifier`字段)。以苦力怕为例,充电与普通状态使用不同模型: + +::: tip +模型显示异常时,首要检查简称定义是否存在拼写错误。 +::: + +## 渲染控制器 +渲染控制器(Render Controllers)是控制实体渲染方式的核心组件,负责协调材质、纹理和模型的搭配使用: + +::: code-group +```json [RP/render_controllers/example.rc.json] +{ + "format_version": "1.10.0", + "render_controllers": { + "controller.render.example": { + "geometry": "geometry.default", + "materials": [{ "*": "material.default" }], + "textures": ["texture.default"] + } + } +} +``` +::: + +该示例始终使用"default"标识的各类资源。进阶用法可支持动态切换纹理与隐藏模型部件,详情参阅[渲染控制器指南](/entities/render-controllers)。 + +在实体文件中通过标识符指定渲染控制器: + +::: code-group +```json [RP/entity/example.json#minecraft:client_entity/description] +"render_controllers": ["controller.render.example"] +``` +::: + +最低限度的实体文件须包含材质、纹理、几何体、渲染控制器四个基础模块。 + +## 动画系统 +动画(Animations)定义模型骨骼的运动逻辑,涵盖行走、攻击、视线追踪等交互行为: + +::: code-group +```json [RP/animations/example.a.json] +{ + "format_version": "1.8.0", + "animations": { + "animation.example.walk": {...}, + "animation.example.attack": {...} + } +} +``` +::: + +实体文件中需配置动画简称以便调用: + +::: code-group +```json [RP/entity/example.json#minecraft:client_entity/description] +"animations": { + "walk": "animation.example.walk", + "attack": "animation.example.attack", + "attack_controller": "controller.animation.example" +} +``` +::: + +::: warning 重要提示 +单单定义动画简称并不能启动动画,需通过脚本系统主动调用。 +::: + +## 脚本逻辑 +脚本(Scripts)通过Molang表达式协调动画播放、变量设置、模型缩放等动态行为: + +::: code-group +```json [RP/entity/example.json#minecraft:client_entity/description] +"scripts": { + "initialize": [...], + "pre_animation": [...], + "animate": [...], + "scale": "1" +} +``` +::: + +### 初始化脚本 +实体生成或加载时执行,适合设置初始变量。 + +### 预动画脚本 +每帧渲染前运行,用于计算动画参数。 + +### 动画脚本 +每帧执行动画控制器和播放逻辑: + +::: code-group +```json [RP/entity/example.json#minecraft:client_entity/description] +"animate": [ + "attack_controller", + { "walk": "q.modified_move_speed" } +] +``` +::: + +`q.modified_move_speed`将行走速度映射为动画播放速率。数值`2`表示双倍播放,动态公式使动画与实体速度保持同步。 + +### 模型缩放 +`scale`参数支持通过Molang表达式调整模型尺寸: + +::: code-group +```json [RP/entity/example.json#minecraft:client_entity/description] +"scripts": { + "scale": "q.variant", + "scaleX": 2, + "scaleY": 0.5 +} +``` +::: + +该示例: +- Y轴方向缩放0.5倍 +- X轴放大2倍 +- 整体尺寸由变体值决定(`minecraft:variant`组件) + +::: tip 随机尺寸案例 +`math.random_integer(1,5)`可在初始化时生成1-5的随机缩放系数。 +::: + +## 音效配置 +音效简称便于在动画事件中调用: + +::: code-group +```json [RP/entity/example.json#minecraft:client_entity/description] +"sound_effects": { + "attack_1": "mob.entity.attack_1", + "attack_2": "mob.entity.attack_2", + "attack_3": "mob.entity.attack_3" +} +``` +::: + +## 粒子系统 +粒子简称用于动画事件触发: + +::: code-group +```json [RP/entity/example.json#minecraft:client_entity/description] +"particle_effects": { + "smoke": "wiki:smoke_particle" +} +``` +::: + +[自定义粒子教程](/particles/particles) | [动画效果应用](/visuals/animation-effects) + +## 生成蛋设置 +生成蛋(Spawn Egg)支持纯色或自定义纹理两种风格: + +::: code-group 纯色风格 +```json [RP/entity/example.json#minecraft:client_entity/description] +"spawn_egg": { + "base_color": "#db7500", + "overlay_color": "#242222" +} +``` +::: + +::: code-group 定制纹理 +```json [RP/entity/example.json#minecraft:client_entity/description] +"spawn_egg": { + "texture": "wiki.example" +} +``` +::: + +## 特殊参数 +- `enable_attachables`(启用配件):控制实体能否持握工具 +- `hide_armor`(隐藏护甲):允许穿装备但不显示外观 \ No newline at end of file diff --git a/docs/wiki/3-实体/1-基础/entity-properties.md b/docs/wiki/3-实体/1-基础/entity-properties.md new file mode 100644 index 00000000..556546a7 --- /dev/null +++ b/docs/wiki/3-实体/1-基础/entity-properties.md @@ -0,0 +1,236 @@ +--- +title: 实体属性 +category: 常规 +tags: + - 实验性 +mentions: + - SirLich + - sermah + - MedicalJewel105 + - Luthorius + - stirante + - TheItsNameless +--- + +# 实体属性 + + + +:::warning +本文档包含过时信息及实验性内容。如需最新稳定版信息,请查阅[微软官方文档](https://learn.microsoft.com/en-us/minecraft/creator/documents/introductiontoentityproperties)。 +::: + +本文档介绍在Minecraft基岩版1.16.230.52测试版中加入的新实体属性系统(又称Actor Properties)。实体属性的实现目的是在实体服务端(行为包)高效保存数据或存储数值,无需使用组件或属性(例如"minecraft:variant"),其运作原理类似方块属性。 + +## 实体属性定义 + +### 定义实体属性 + +实体属性定义示例: + +::: code-group +```json [实体定义] +{ + "minecraft:entity":{ + "description":{ + "identifier":"entity:properties_example", + "properties":{ + "property:number_range_example":{ + "values":{ + "min":0, + "max":100 + } + }, + "property:number_enum_example":{ + "values":[ + 1, + 2 + ] + }, + "property:string_enum_example":{ + "values":[ + "first", + "second", + "third" + ] + }, + "property:boolean_enum_example":{ + "values":[ + true, + false + ] + } + } + } + } +} +``` +::: + +### 实体属性字段说明 + +#### `values` + +:::warning +`values`字段为必填项,缺失此字段可能导致属性注册失败。 +::: + +`values`字段可接受枚举值数组或数值区间(注意当前版本中整数、浮点和布尔枚举最多支持两个值): + +::: code-group +```json [数值范围模式] +"property:range_example": { + "values": { + "min": 0, + "max": 5 + } +} +``` + +```json [枚举模式] +"property:enum_example":{ + "values":[ + 1, + 2 + ] +} +``` +::: + +#### `default` + +可通过属性对象内的`default`字段设置属性默认值(默认使用枚举数组的第一个元素): + +::: code-group +```json [默认值设置] +"property:default_value_example":{ + "values":[ + true, + false + ], + "default":false +} +``` +::: + +如示例所示,当实体生成时该属性会默认为`false`而非`true`。 + +#### `client_sync` + +通过设置`client_sync`字段为`true`,可将属性同步到客户端资源包(Resource Pack)使用。默认值为`false`。 + +::: code-group +```json [客户端同步示例] +"property:client_sync_example": { + "values": { + "min": 0, + "max": 20 + }, + "client_sync": true +} +``` +::: + +### 操作与访问实体属性 + +可通过以下Molang查询访问实体属性: + - `q.actor_property` + - `q.has_actor_property` + +:::warning +这些Molang查询属于实验性功能 +::: + +可通过`set_actor_property`事件响应设置实体属性值: + +::: code-group +```json [事件响应示例] +"events":{ + "event:set_entity_property":{ + "set_actor_property":{ + "property:number_enum_example":2, + "property:string_enum_example":"'second'", + "property:boolean_enum_example":"!q.actor_property('property:boolean_enum_example')" + } + } +} +``` +::: + +## 实体别名系统 + +可通过定义实体别名(aliases),在`summon`指令中调用自定义标识符生成带预置属性的实体: + +::: code-group +```json [别名定义] +{ + "format_version": "1.16.0", + "minecraft:entity": { + "description": { + "identifier": "entity:properties_example", + "is_spawnable": true, + "is_summonable": true, + "is_experimental": false, + "properties": { + "property:property_index": { + "client_sync": true, + "values": { + "min": 0, + "max": 2 + }, + "default": 0 + } + }, + "aliases": { + "entity:default_alias": {}, + "entity:first_alias": { + "property:property_index": 1 + }, + "entity:second_alias": { + "property:property_index": 2 + } + } + } + } +} +``` +::: + +现在通过`/summon entity:first_alias`指令可生成带有`property:property_index=1`属性的实体。 + +## 实体动态组件 + +实体动态组件(Entity Permutations)可根据属性条件在每个Tick动态应用组件集合。需在`minecraft:entity`对象内与`components`同级添加`permutations`数组: + +::: code-group +```json [动态组件示例] +"permutations":[ + { + "condition":"q.actor_property('property:string_enum_example') == 'first'", + "components":{ + "minecraft:scale":{ + "value":1.0 + } + } + }, + { + "condition":"q.actor_property('property:string_enum_example') == 'second'", + "components":{ + "minecraft:scale":{ + "value":2.0 + } + } + }, + { + "condition":"q.actor_property('property:string_enum_example') == 'third'", + "components":{ + "minecraft:scale":{ + "value":3.0 + } + } + } +] +``` +::: + +当`property:string_enum_example`属性为"first"时,实体会应用1倍缩放,为"second"时应用2倍缩放,为"third"时则应用3倍缩放。 \ No newline at end of file diff --git a/docs/wiki/3-实体/1-基础/npc-dialogs.md b/docs/wiki/3-实体/1-基础/npc-dialogs.md new file mode 100644 index 00000000..2feafb32 --- /dev/null +++ b/docs/wiki/3-实体/1-基础/npc-dialogs.md @@ -0,0 +1,337 @@ +--- +title: NPC 对话框 +category: 通用 +tags: + - 中级 +参与贡献: + - kyleplo + - StuartDA + - MedicalJewel105 + - SirLich + - solvedDev + - omuhu + - Sprunkles137 + - ThomasOrs +--- + +# NPC 对话框 + + + +非玩家角色(NPC)是类似村民的实体,可通过对话框显示消息并提供多个交互按钮。最初设计用于冒险地图,随着 `/dialogue` 命令的引入,现在也能在常规附加包中使用。 + +## 对话框文件 + +NPC 对话数据存储于行为包根目录下 `dialogue` 文件夹内的 `.diag.json` 文件中。基础模板示例如下: + +::: code-group +```json [dialogue/example.diag.json] +{ + "format_version": "1.17", + "minecraft:npc_dialogue": { + "scenes": [ + { + "scene_tag": "example", + "npc_name": "Steve", + "text": "你好" + } + ] + } +} +``` +::: + +每个场景包含以下可配置参数: + +#### scene_tag + +场景唯一标识符,用于指定具体场景。 + +#### npc_name + +NPC 显示名称。若省略,则使用 NPC 实体名称(默认为`§eNPC`)。 + +#### text + +显示在对话框中的文本(可选)。 + +#### on_open_commands + +打开对话框时执行的命令列表(可选)。 + +::: code-group +```json +"on_open_commands": [ + "/say 你好" +] +``` +::: + +#### on_close_commands + +关闭对话框时执行的命令列表(可选)。 + +::: code-group +```json +"on_close_commands": [ + "/say 再见" +] +``` +::: + +#### buttons + +对话框中显示的按钮配置(可选)。 + +::: code-group +```json +"buttons": [ + { + "name": "按钮一", + "commands": [ + "/say 按钮一被点击了!" + ] + }, + { + "name": "按钮二", + "commands": [ + "/say 按钮二被点击了!", + "/say 第二段命令示例" + ] + } +] +``` +::: + +## 玩家选择器 + +在 `on_open_commands`、`on_close_commands` 和各按钮的 `commands` 中可使用本地选择器 `@p`,但会以 NPC 实体为中心选择。特殊选择器 `@initiator` 可始终指向触发对话框的玩家。 + +::: code-group +```json +"buttons": [ + { + "name": "获得漂浮效果", + "commands": [ + "/effect @initiator levitation" + ] + } +] +``` +::: + +注意:`@initiator` 专用于 NPC 对话框,不可在其他场景使用。 + +## 文本本地化 + +可通过翻译键实现多语言支持: + +::: code-group +```json +"npc_name": { + "rawtext": [ + { + "translate": "entity.endermite.name" + } + ] +} +``` +::: +需在资源包语言文件中定义对应翻译键,例如 `entity.endermite.name` 对应中文为"末影螨"。 + +## 打开对话框 + +使用 `/dialogue` 命令开启对话框: +``` +/dialogue open [场景名称:string] +``` +- ``:需携带 `minecraft:npc` 组件的实体(如原版 NPC) +- ``:目标玩家 +- `[场景名称:string]`:指定 `scene_tag`(若省略则显示上一个场景) + +示例命令: +``` +/dialogue open @e[type=npc,c=1] @p example +``` + +## 切换对话框 + +使用以下语法变更 NPC 默认对话框: +``` +/dialogue change <场景名称:string> [player: 目标] +``` +- `<场景名称:string>`:指定新场景的 `scene_tag` +- `[player: 目标]`:指定生效玩家(若省略则影响所有人) + +示例命令: +``` +/dialogue change @e[type=npc,c=1] example @r +``` + +## 完整范例 + +本节演示创建具有传送功能的道具和对话系统(完整源码可参见[GitHub](https://github.com/Llama-Studios/dialog-demo))。 + +### 创建 NPC 实体 + +即使隐藏 NPC,也需要通过常加载区域保持存在: + +::: code-group +```mcfunction [functions/setup.mcfunction] +tickingarea add 0 1 0 0 2 0 +summon npc "§r" 0 1 0 +``` +::: + +:::tip +可通过玩家实体触发对话框: +1. 为玩家添加 `minecraft:npc` 组件 +2. 映射行为包对话框场景 +3. 执行以下命令: +``` +/dialogue open @s @s +``` +#### 优劣分析 +`+` 无需维护隐藏 NPC
+`+` 无需管理常加载区域
+`-` 非正常使用可能导致稳定性问题
+`-` 其他玩家点击该玩家时会显示对话框
+ +可通过添加交互组件避免问题: +::: code-group +```json +"minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + } + ] + } + } + } + ] +} +``` +::: +::: + +### 对话文件配置 + +::: code-group +```json [dialogue/example.diag.json] +{ + "format_version":"1.17", + "minecraft:npc_dialogue":{ + "scenes":[ + { + "scene_tag":"main_teleport_menu", + "npc_name":"传送菜单", + "text":"选择传送目的地", + "buttons":[ + { + "name":"区域传送", + "commands":[ + "/dialogue open @e[type=npc,c=1] @initiator districts_teleport_menu" + ] + }, + { + "name":"个人基地", + "commands":[ + "/tp @initiator -20 4 -20" + ] + }, + { + "name":"世界出生点", + "commands":[ + "/tp @initiator 0 4 0" + ] + } + ] + }, + { + "scene_tag":"districts_teleport_menu", + "npc_name":"区域传送", + "text":"请选择目标区域", + "buttons":[ + { + "name":"< 返回", + "commands":[ + "/dialogue open @e[type=npc,c=1] @initiator main_teleport_menu" + ] + }, + { + "name":"商业区", + "commands":[ + "/tp @initiator 20 4 20" + ] + }, + { + "name":"娱乐区", + "commands":[ + "/tp @initiator 20 4 -20" + ] + } + ] + } + ] + } +} +``` +::: + +### 创建传送物品 + +::: code-group +```json [items/teleport_menu.json] +{ + "format_version": "1.16.100", + "minecraft:item": { + "description": { + "identifier": "dialog:teleport_menu", + "category": "物品" + }, + "components": { + "minecraft:on_use": { + "on_use": { + "event": "open_menu", + "target": "self" + } + }, + "minecraft:foil": true, + "minecraft:icon": { + "texture": "ender_pearl" + }, + "minecraft:display_name": { + "value": "传送菜单" + } + }, + "events": { + "open_menu": { + "run_command": { + "command": [ + "dialogue open @e[type=npc,c=1] @s main_teleport_menu" + ], + "target": "player" + } + } + } + } +} +``` +::: + +### 测试步骤 +1. 在超平坦世界启用实验性玩法 +2. 执行 `/function setup` 创建 NPC +3. 获取道具:`/give @s dialog:teleport_menu` +4. 切换生存模式使用道具 + +## 版权声明 + +本教程改编自 [Minecraft 创作者文档](https://docs.microsoft.com/en-us/minecraft/creator/documents/npcdialogue)。 \ No newline at end of file diff --git a/docs/wiki/3-实体/1-基础/render-controllers.md b/docs/wiki/3-实体/1-基础/render-controllers.md new file mode 100644 index 00000000..a2b8f84b --- /dev/null +++ b/docs/wiki/3-实体/1-基础/render-controllers.md @@ -0,0 +1,310 @@ +--- +title: 渲染控制器 +category: 常规 +tags: + - beginner +mentions: + - SirLich + - MedicalJewel105 + - Overload252 + - ChibiMango +--- + +# 渲染控制器 + + + +渲染控制器是资源包中常被误解的部分。但您无需畏惧!您可以将渲染控制器视为逻辑包,它们接收来自资源包实体文件中的短名称定义,并决定这些资源在游戏中如何组合/分层/渲染。 + +## 定义短名称 + +渲染控制器基于资源包实体文件中的短名称定义运作。短名称是我们在资源包实体文件中定义的本地标识符,可供渲染控制器(及其他地方)调用。我们可以在实体中定义`geometry`(几何体)、`materials`(材质)和`textures`(纹理)等变量。 + +让我们看看蜘蛛资源包实体文件的简化版本: + +::: code-group +```json [RP/entity/spider.json] +{ + "format_version": "1.8.0", + "minecraft:client_entity": { + "description": { + "identifier": "minecraft:cave_spider", + "materials": { + "default": "spider", + "invisible": "spider_invisible" + }, + "textures": { + "default": "textures/entity/spider/cave_spider" + }, + "geometry": { + "default": "geometry.spider.v1.8" + }, + "render_controllers": ["controller.render.spider"] + } + } +} +``` +::: + +此示例中创建了四个短名称定义: +- `default`(材质数组) +- `invisible`(材质数组) +- `default`(纹理数组) +- `default`(几何体数组) + +您可以在每个数组中定义多个短名称(如上方的材质示例)。将短名称定义视为_导入_所需资源的操作。在此阶段,您在定义实体要使用的纹理、几何体和材质。在渲染控制器阶段不会导入新内容,而是使用已导入的资源来构建最终渲染的实体。 + +## 简单渲染控制器 + +一个基础渲染控制器示例如下: + +::: code-group +```json [RP/render_controllers/cow.render.json] +{ + "format_version": "1.8.0", + "render_controllers": { + "controller.render.cow": { + "geometry": "Geometry.default", + "materials": [ + { + "*": "Material.default" + } + ], + "textures": ["Texture.default"] + } + } +} +``` +::: + +该控制器从实体文件获取短名称定义并进行_渲染_。例如`"textures": [ "Texture.default"]`表达:"采用default纹理并应用于实体"。渲染控制器本身并不知晓default纹理的具体内容,只是执行应用指令。 + +## 复用渲染控制器 + +由于渲染控制器基于短名称工作,您可以在所有实体中复用同一个渲染控制器。对于只含单一材质、单一纹理和单一几何体的简单实体,无需创建自定义渲染控制器。 + +例如上方示例的控制器用于`minecraft:cow`实体。若要在自定义包中使用此控制器,只需在实体文件中声明:`"render_controllers": [ "controller.render.cow" ]`。 + +:::warning 注意! +渲染控制器基于短名称工作。若使用牛的渲染控制器,必须提供其所需的短名称: +- `default`几何体 +- `default`纹理 +- `default`材质 +::: + +## 创建自定义渲染控制器 + +当我们需要更精细控制实体渲染时(如分层纹理、多重几何体、不同骨骼应用不同材质),可通过复制原版渲染控制器到`render_controllers`文件夹进行定制化修改。 + +## 纹理分层 + +通过纹理分层技术可为自定实体创建叠加纹理。基础思路是通过多个纹理的透明像素区域实现叠加显示。 + +假设一个**画框**实体:框架固定但画面可变。虽然可以复制10个框架纹理并制作10幅画作,但修改框架时需要改动所有文件。采用分层纹理方案时,首先放置框架纹理,再叠加画作纹理,即可实现框架的集中管理。 + +### 通过渲染控制器实现 + +若对渲染控制器不熟悉,建议参考原版案例。例如含有多个纹理的`horse`实体具有典型参考价值。 + +#### 渲染控制器 + +::: code-group +```json [RP/render_controllers/controller.render.texture_layering.json] +{ + "format_version": "1.10.0", + "render_controllers": { + "controller.render.texture_layering": { + "geometry": "Geometry.default", + "materials": [ + { + "*": "Material.default" + } + ], + "textures": [ + // 你可以添加任意数量的图层,按从上到下的顺序叠加 + "Texture.bottom_layer", + "Texture.top_layer" + ] + } + } +} +``` +::: + +#### 实体配置 + +需要定义所有纹理并使用`villager_v2_masked`材质: + +::: code-group +```json [RP/entity/my_entity.json] +"materials": { + "default": "villager_v2_masked" +}, +"textures": { + "top_layer": "textures/top", + "bottom_layer": "textures/bottom" + // 在此添加更多纹理短名称定义 +} +``` +::: + +### 动态变体分层 + +通过动态索引实现纹理切换能创造更灵活的效果: + +#### 实体配置 + +定义多个顶部纹理以供索引: + +::: code-group +```json [RP/entity/my_entity.json#description] +"textures": { + "top_1": "textures/top_1", + "top_2": "textures/top_2", + "top_3": "textures/top_3", + "bottom_layer": "textures/bottom" +} +``` +::: + +#### 渲染控制器 + +::: code-group +```json [RP/render_controllers/controller.render.wool_only] +{ + "format_version": "1.10.0", + "render_controllers": { + "controller.render.wool_only": { + "arrays": { + "textures": { + "Array.top": [ + "Texture.top_1", + "Texture.top_2", + "Texture.top_3" + ] + } + }, + "geometry": "Geometry.default", + "materials": [ + { + "*": "Material.default" + } + ], + "textures": [ + "Texture.bottom", // 静态底层纹理 + "Array.top[q.variant]" // 根据实体变体选择顶部纹理 + ] + } + } +} +``` +::: + +通过数组和`q.variant`查询,可根据实体variant值动态选择顶部纹理。 + +#### 设置变体值 + +要使分层显示生效,需在实体中设置variant组件: + +::: code-group +```json [BP/entities/my_entity.json#components] +"minecraft:variant": { + "value": 0 +} +``` +::: + +注意组件参数采用零索引制,`0`对应第一个纹理,`1`和`2`对应后续纹理。 + +#### 动态更换纹理 + +如需在游戏中动态更换纹理,只需修改`variant`值。可通过组件组和事件系统实现此功能。 + +#### 动态分层进阶 + +通过添加更多纹理数组和使用虚拟组件(dummy components)作为索引,可实现更复杂的动态分层效果。关于虚拟组件的详细信息请参阅[此文档](/entities/dummy-components)。 + +### 动态几何体切换 + +动态切换几何体的原理与纹理类似: + +以下示例展示如何根据variant值切换不同几何体。注意几何体不可分层叠加,因此不需要基础层定义,但仍需使用`villager_v2_masked`材质。 + +::: code-group +```json [RP/render_controllers/controller.render.player.third_person.json] +{ + "format_version": "1.8.0", + "render_controllers": { + "controller.render.player.third_person": { + "materials": [ + { + "*": "Material.default" + } + ], + "textures": [ + "Texture.bottom", + "Array.top[q.variant]" + ], + "arrays": { + "geometries": { + "Array.geo": [ + "Geometry.default", + "Geometry.custom_1", + "Geometry.custom_2" + ] + }, + "textures": { + "Array.top": [ + "Texture.bottom", + "Texture.top_1", + "Texture.top_2" + ] + } + }, + "geometry": "Array.geo[q.variant]" + } + } +} +``` +::: + +#### 实体配置 + +确保在实体文件中包含对应几何体变体: + +::: code-group +```json +"geometry": { + "default": "geometry.entity.default", + "custom_1": "geometry.entity.custom_1", + "custom_2": "geometry.entity.custom_2" +} +``` +::: + +## 常见错误 + +在渲染控制器中: +- 可引用多个纹理但只能引用一个几何体(数组形式亦适用) + +::: code-group +```json +"arrays": { + "textures": { + "array.skin": [], + "array.dress": [] + }, + "geometries": { + "array.geo": [] + } +} +``` + +```json +"textures": [ + "array.skin[q.variant]", + "array.dress[q.skin_id]" +], +"geometry": "array.geo[q.mark_variant]" +``` +::: \ No newline at end of file diff --git a/docs/wiki/3-实体/1-基础/spawn-rules.md b/docs/wiki/3-实体/1-基础/spawn-rules.md new file mode 100644 index 00000000..e2f7f312 --- /dev/null +++ b/docs/wiki/3-实体/1-基础/spawn-rules.md @@ -0,0 +1,159 @@ +--- +title: 实体生成规则 +category: 常规 +mentions: + - SirLich + - solvedDev + - MedicalJewel105 + - aexer0e + - Ciosciaa + - FrankyRay + - Luthorius + - TheItsNameless + - SmokeyStack +--- + +# 实体生成规则 + + + +生成规则定义了实体如何自然生成到世界中。当您希望自定义实体像原版实体一样自然生成时,应该使用生成规则。通过不同的组件可以定义实体生成的时间、地点和方式。 + +通常情况下,可以让您的自定义实体采用与原版实体类似的生成方式。例如:像牛一样群生成、像原版僵尸一样仅在夜间生成,或是像鱼类只在水下生成。 + +## 生成规则示例 + +以下是一个包含字段说明的生成规则示例: + +::: code-group +```json [BP/spawn_rules/zombie.json] +{ + "format_version": "1.8.0", + "minecraft:spawn_rules": { + "description": { + "identifier": "minecraft:zombie", + "population_control": "monster" + }, + "conditions": [ + { + "minecraft:spawns_on_surface": {}, + "minecraft:spawns_underground": {}, + "minecraft:brightness_filter": { + "min": 0, + "max": 7, + "adjust_for_weather": true + }, + "minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" + }, + "minecraft:weight": { + "default": 100 + }, + "minecraft:herd": { + "min_size": 2, + "max_size": 4 + }, + "minecraft:permute_type": [ + { + "weight": 95 + }, + { + "weight": 5, + "entity_type": "minecraft:zombie_villager" + } + ], + "minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "monster" + } + } + ] + } +} +``` +::: + +- `description`→`identifier`: 要生成的实体 +- `population_control`: 控制生成与消失的数量。可选值:`animal`(动物)、`underwater_animal`(水生动物)、`monster`(怪物)、`ambient`(环境生物) +- `conditions`: 必须满足的条件列表,生成尝试才会成功 +- `minecraft:spawns_on_surface`(地表生成)、`minecraft:spawns_underground`(地下生成)和`minecraft:spawns_underwater`(水下生成)控制实体生成的高度范围 +- `minecraft:brightness_filter`(亮度过滤)取值范围 0-15,控制生成所需光照条件。`adjust_for_weather`选项用于雨天/雷暴天气下是否自动降低有效光照值 +- `minecraft:difficulty_filter`(难度过滤)设置启用生成的游戏难度范围 +- `minecraft:herd`(群体生成)设置基于同个生成规则一起生成的实体数量 +- `minecraft:permute_type`(类型置换)通过`weight`权重和`entity_type`实体类型设置生成实体变异的概率 +- `minecraft:biome_filter`(生物群系过滤)测试特定生物群系标签。具体过滤器语法和生物群系标签列表请参考官方文档,或查看原版示例资源包 + +## 全部已知组件 + +以下是所有已知组件列表(随着我们对使用方法的理解加深,将持续补充说明文档): + +``` +minecraft:weight +minecraft:density_limit +minecraft:spawns_on_block_filter +minecraft:spawns_on_block_prevented_filter +minecraft:spawns_above_block_filter +minecraft:herd +minecraft:permute_type +minecraft:brightness_filter +minecraft:height_filter +minecraft:spawns_on_surface +minecraft:spawns_underground +minecraft:spawns_underwater +minecraft:disallow_spawns_in_bubble +minecraft:spawns_lava +minecraft:biome_filter +minecraft:difficulty_filter +minecraft:distance_filter +minecraft:is_experimental +minecraft:world_age_filter +minecraft:delay_filter +minecraft:mob_event_filter +minecraft:is_persistent +minecraft:player_in_village_filter +``` + +## 组件文档 + +### minecraft:herd + +::: code-group +```json +"minecraft:herd": { + "min_size": 1, + "max_size": 2, + "event":"minecraft:entity_born", + "event_skip_count": 1 + }, +``` +::: + +- `minecraft:herd`可通过此配置使第二个生成的实体(在此场景中)携带`minecraft:entity_born`事件(表现为幼体)。`event_skip_count`: 2`表示前两个生成的实体不会触发事件,之后生成的都会携带该事件。该功能适用于任意事件类型 + +### minecraft:spawns_above_block_filter + +::: code-group +```json + "minecraft:spawns_above_block_filter": { + "blocks": "minecraft:stone", + "distance": 10 + } +``` +::: + +- `minecraft:spawns_above_block_filter`(上方方块过滤)会检测垂直方向设定距离内的方块,当条件满足时允许实体生成 + +### minecraft:spawns_on_block_prevented_filter + +::: code-group +```json + "minecraft:spawns_on_block_prevented_filter": [ + "minecraft:nether_wart_block", + "minecraft:shroomlight" + ] +``` +::: + +- `minecraft:spawns_on_block_prevented_filter`(禁止生成方块过滤)与上方组件功能相反。该数组包含实体永远无法生成于其上的方块标识符 \ No newline at end of file diff --git a/docs/wiki/3-实体/1-基础/troubleshooting-entities.md b/docs/wiki/3-实体/1-基础/troubleshooting-entities.md new file mode 100644 index 00000000..5c274fa0 --- /dev/null +++ b/docs/wiki/3-实体/1-基础/troubleshooting-entities.md @@ -0,0 +1,158 @@ +--- +title: 实体问题排查指南 +category: 常规 +nav_order: 3 +tags: + - help +mentions: + - SirLich + - BlueFrog130 + - SmokeyStack + - MedicalJewel105 + - aexer0e + - ChibiMango + - RonarsCorruption +--- + +# 实体问题排查指南 + + + +:::tip +本页面包含关于_实体_的疑难解答信息。在继续阅读前,请务必先查阅[全局问题排查指南](/guide/troubleshooting)。 +::: + +:::warning +请始终记得检查内容日志! +::: + +## 0.0.0 - 确认问题存在 + +承认吧,某个地方肯定出错了。_任何_水平的开发者在_任何_阶段都可能出现这些疏漏,所以不要觉得被冒犯而想着"我当然会注意这些!",然后跳过必要的检查步骤! + +继续 + + +## 1.0.0 - 确保两个包都已启用 + +确认资源包和行为包在世界中都已激活(一个绝佳的防错方法是在两个包的manifest.json文件中互相设置依赖,这样添加或移除其中一个包时会自动同步处理) + +继续 + +## 2.0.0 - 确定问题出现在资源包还是行为包 + +通过观察实体生成蛋在创造模式物品栏中的显示状态,可以有效定位问题范围。即使您不打算为实体添加生成蛋,请暂时按照以下步骤添加以便定位问题: + +### 在资源包中 + +确保.entity文件包含自定义spawn_egg配置: + +::: code-group +```json [RP] +"spawn_egg":{ + "base_color": "#FF0000", + "overlay_color": "#FFFF00" +} +``` +::: + +(建议选择除"#000000"以外的配色以方便排查) + +### 在行为包中 + +确保description对象中开启`is_spawnable`和`is_summonable`,并将`is_experimental`设为false: + +::: code-group +```json [BP] +"description":{ + "identifier": "wiki:example_entity", + "is_spawnable": true, + "is_summonable": true, + "is_experimental": false +} +``` +::: + +### 现象分析 + +完全看不到生成蛋:前往排查 + +能看到生成蛋但颜色全黑且无法生成实体:前往排查 + +生成蛋显示正常颜色但仍旧无法生成实体:前往排查 + +## 3.0.0 - 定位具体问题 + +## 3.1.0 - 行为包问题 + +_即使已在行为文件中设置"is_spawnable": true,在创造模式物品栏中依然无法找到生成蛋_ + +这通常表示游戏未能正确识别实体行为文件。常见原因包括: + +- Json语法错误 +- 文件夹命名错误 + +### 3.1.1 - 语法错误 + +单个语法错误会导致整个json文件失效。建议使用[JSON验证工具](https://jsonlint.com/)检查文件的语法完整性(注:虽然该网站会将//注释视为错误,但在Minecraft中实际允许使用注释) + +### 3.1.2 - 文件夹误命名 + +请确认行为包中的实体文件夹命名为"entities"(资源包对应的是"entity",这个不一致设定确实容易引起困惑) + +## 步骤3.2.0 - 资源包.entity文件问题 + +_能在创造模式物品栏中看到生成蛋,但显示为黑色且实体名异常(如"item.spawn_egg.entity.wiki:your_mob.name"),且无法正常生成实体_ + +此现象说明行为文件已生效,但资源包未能正确关联对应.entity文件。常见原因包括: + +- .entity文件语法错误 +- 实体identifier不匹配 +- 资源引用路径错误 +- 资源包文件夹应命名为"entity",行为包文件夹应命名为"entities" + +### 步骤3.2.1 - 语法错误 + +再次推荐使用[JSON验证工具](https://jsonlint.com/)进行深度校验(注意注释标识的兼容性问题) + +### 步骤3.2.2 - 标识符不匹配 + +需确保资源包.entity文件与行为包的identifier字段完全一致,包括命名空间(冒号前的部分,例如`minecraft:bat`中的`minecraft`)。特别注意: + +- 除了冒号外不要使用特殊字符 +- 命名空间和ID避免以数字或大写字母开头(虽然现行版本允许,但历史版本曾存在兼容性问题) +- 非官方实体切勿使用`minecraft`作为命名空间 + +### 步骤3.2.3 - 无效资源引用 + +检查.entity文件中各项资源引用路径是否正确指向有效文件 + +## 步骤3.3.0 - 资源包资源排查(进行中) + +_生成蛋显示正常颜色但在生成/召唤时实体不可见或仅显示阴影_ + +这说明基本功能文件已正常加载,但存在次级资源配置问题。根据现象选择排查方向: + +- 完全隐形无阴影 → 资源引用错误:前往 +- 隐形但显示阴影 → 几何体问题:前往 +- 可见但贴图异常 → 材质问题:前往 +- 可见但渲染异常 → 材质类型错误:前往 + +### 3.3.1 - 完全隐形无阴影 + +确认实体未设置立即消失逻辑(如instant_despawn),优先检查实体基础配置。 + +### 3.3.2 - 隐形但显示阴影 + +此类问题通常涉及模型或材质配置,排查重点: + +1. 几何体文件:检查命名正确性、文件完整性和几何偏移量设置 +2. 材质匹配:例如透明材质与普通材质的兼容性 +3. 渲染控制器:验证控制器逻辑与参数设置 + +### 3.3.3 - 可见但贴图异常 + +(内容开发中) + +### 3.3.4 - 可见但渲染异常 +(内容开发中) \ No newline at end of file diff --git a/docs/wiki/3-实体/2-巧思案例/boat-entities.md b/docs/wiki/3-实体/2-巧思案例/boat-entities.md new file mode 100644 index 00000000..5950599c --- /dev/null +++ b/docs/wiki/3-实体/2-巧思案例/boat-entities.md @@ -0,0 +1,165 @@ +--- +title: Creating Boats +category: Tutorials +tags: + - recipe + - intermediate +mentions: + - SirLich + - Joelant05 + - MedicalJewel105 + - StealthyExpertX + - TheItsNameless +--- +:::warning Requires Format Version 1.16.100 or Lower + +The behavior format version now requires 1.16.100 or lower for the `minecraft:behavior.rise_to_liquid_level` and `minecraft:buoyant` methods to work. +If you find a new method that works in the newer format versions, you should consider helping to contribute by updating the wiki. +::: + +## Using Runtime Identifiers + +You can read more about runtime identifiers [here](/entities/runtime-identifier). Using runtime identifiers, you can implement most of the boat's hard-coded behaviors. However, your boat won't rotate with you, and it will always face North. + +## Using Components + +Currently, the best way to create a boat entity is by using components. 1.16 introduced new components that we can use to our advantage: `minecraft:behavior.rise_to_liquid_level` and `minecraft:buoyant`. Striders use the first one in vanilla to make them float on lava, but we can repurpose it for water as well. + +## 1st method: minecraft:behavior.rise_to_liquid_level + +BP/entities/bar + +```json +{ + "minecraft:entity": { + "format_version": "1.14.0", + "description": { + "identifier": "foo:bar", + "is_summonable": true, + "is_spawnable": true, + "is_experimental": false + }, + "components": { + //This is the component that does the magic + "minecraft:behavior.rise_to_liquid_level": { + "priority": 0, + //This property can adjust how high your boat is above the water + "liquid_y_offset": 0.5, + //Positive vertical displacement, in other words, how much the boat will move up + "rise_delta": 0.05, + //Negative vertical displacement, in other words, how much the boat will move down + "sink_delta": 0.05 + //Use rise_delta and sink_delta to simulate waves/bouncing effect + }, + + //Sets the boat speed in water + "minecraft:underwater_movement": { + "value": 5 + }, + //This component is important, without it the boat will sink + "minecraft:navigation.walk": { + "can_sink": false + }, + "minecraft:rideable": { + "seat_count": 1, + "family_types": ["player"], + "interact_text": "action.interact.enter_boat", + "seats": { + "position": [0, 0, 0] + } + }, + //Add this component if you want your boat to be controlled with WASD + "minecraft:input_ground_controlled": {}, + "minecraft:health": { + "value": 10, + "max": 10 + }, + //Sets the boat speed on the ground (set this to zero if you don't want your boats to move on the ground) + "minecraft:movement": { + "value": 3 + }, + //This is to prevent the boat from not stopping whenever a player exits, said the boat + "minecraft:movement.basic": {}, + "minecraft:collision_box": { + "width": 1, + "height": 1 + }, + "minecraft:physics": {} + } + } +} +``` + +## 2nd method: minecraft:buoyant + + + +```json +{ + "minecraft:entity": { + "format_version": "1.14.0", + "description": { + "identifier": "foo:bar", + "is_summonable": true, + "is_spawnable": true, + "is_experimental": false + }, + "components": { + "minecraft:buoyant": { + //Determines whether gravity should be taken into account (useful with waterfalls) + "apply_gravity": true, + //Range: 0-1. This controls how high the boat is above the water + "base_buoyancy": 1.0, + //A "wave" makes the entity bounce up and down. A big wave simply amplifies this effect. Note: setting simulate_waves to false won't make the effect go away completely. + "simulate_waves": true, + //How likely a "big" wave will hit this boat + "big_wave_probability": 0.03, + //How strong the "big" wave will be + "big_wave_speed": 10.0, + //How strong will the boat be dragged down in case this component is removed + "drag_down_on_buoyancy_removed": 0, + //Blocks this entity can be buoyant in. Only actual liquids are allowed: lava and water + "liquid_blocks": ["water"] + }, + + //Sets the boat speed in water + "minecraft:underwater_movement": { + "value": 5 + }, + //This component is important, without it the boat will sink + "minecraft:navigation.walk": { + "can_sink": false + }, + "minecraft:rideable": { + "seat_count": 1, + "family_types": ["player"], + "interact_text": "action.interact.enter_boat", + "seats": { + "position": [0, 0, 0] + } + }, + //Add this component if you want your boat to be controlled with WASD + "minecraft:input_ground_controlled": {}, + "minecraft:health": { + "value": 10, + "max": 10 + }, + //Sets the boat speed on the ground (set this to zero if you don't want your boats to move on the ground) + "minecraft:movement": { + "value": 3 + }, + //This is to prevent the boat from not stopping whenever a player exits the boat + "minecraft:movement.basic": {}, + "minecraft:collision_box": { + "width": 1, + "height": 1 + }, + "minecraft:physics": {} + } + } +} +``` + +## What method to use? + +Both methods are suitable but have their pros and cons. If you want to disable the bouncing effect, use the first method. If you want more control over it, use the second method. I use the second method for static objects, such as buoys, and the first method for movable entities, such as boats, emulating the vanilla behavior. diff --git a/docs/wiki/3-实体/2-巧思案例/detecting-other-entities.md b/docs/wiki/3-实体/2-巧思案例/detecting-other-entities.md new file mode 100644 index 00000000..b48fa61b --- /dev/null +++ b/docs/wiki/3-实体/2-巧思案例/detecting-other-entities.md @@ -0,0 +1,221 @@ +--- +title: Detecting Other Entities +category: Tutorials +tags: + - intermediate +mentions: + - ANightDazingZoroark + - SmokeyStack + - MedicalJewel105 + - SirLich + - Luthorius + - TheItsNameless +--- + +You might have thought about making your entities fire an event when other entities are nearby. This article details the various known ways to do so. + +## minecraft:entity_sensor + +This is probably the most basic way to detect other entities. The main issues is it only accepts one entry and testing if the entity is out of range can be very tricky. Because it's an entity component, you can just place into your entity behavior file and edit the Minecraft filters. Here's a demonstration: + +BP/entities/my_entity.json#components + +```json +"minecraft:entity_sensor": { + "sensor_range": 2.5, //this is for the radius in blocks it will detect other entities in + "relative_range": false, //if true, the sensor range is additive on top of the entity's hitbox size + "require_all": true, //if true, all nearby entities must pass the filter conditions for the event to send + "minimum_count": 1, //minimum amount of entities required for the event to fire. by default, it's 1 + "maximum_count": 4, //maximum amount of entities required for the event to fire. by default it's -1, which means infinity + "event_filters": { //you can put any filter you want here, the one that's being used in this example just detects players + "test": "is_family", + "subject": "other", + "value": "player" + }, + "event": "event:on_player_detected" //the event that fires when all the conditions in event_filters are met +} +``` + +## `/execute` + +Using the new `/execute` command that has been introduced since 1.19.50, you can execute commands as long as another entity is nearby. + +This example you'll be following will make pigs say "oink oink" upon detecting players, though you can replace those with whatever you want. First of all, copy-paste these BP animations. + +BP/animations/detection_animation.json + +```json +{ + "format_version": "1.10.0", + "animations": { + "animation.pig.find_player": { + "animation_length": 0.05, + "loop": true, + "timeline": { + "0": [ + "/execute as @s if entity @e[type=player, r=4] run event entity @s wiki:player_detected" + ] + } + }, + "animation.pig.find_no_player": { + "animation_length": 0.05, + "loop": true, + "timeline": { + "0": [ + "/execute as @s unless entity @e[type=player, r=4] run event entity @s wiki:no_player_detected" + ] + } + } + } +} +``` + +The first one is for detecting if the entity is present, and the other for detecting if the entity is not present. The events used in the `/event` part of the `/execute` commands can be used for adding a [dummy component](/entities/dummy-components) or updating an [actor property](https://learn.microsoft.com/en-us/minecraft/creator/documents/introductiontoentityproperties). + +Next of all, copy paste this BP animation controller. This assumes that you set up the `/event` parts of the `/execute` commands to add or remove `minecraft:is_sheared`. + +BP/animation_controllers/pig_animation_controllers.json + +```json +{ + "format_version": "1.10.0", + "animation_controllers": { + "controller.animation.pig_find_player": { + "initial_state": "default", + "states": { + "default": { + "animations": ["find_player"], + "transitions": [ + { + "detected": "q.is_sheared" + } + ] + }, + "detected": { + "animations": ["find_no_player"], + "transitions": [ + { + "default": "!q.is_sheared" + } + ], + "on_entry": ["/say oink oink"] + } + } + } + } +} +``` +Finally, copy-paste this snippet into the behavior file for the pig-like so. Make sure to insert this in `description`. + +BP/entities/my_entity.json#description + +```json +"animations": { + "manage_find_player": "controller.animation.pig_find_player", + "find_player": "animation.pig.find_player", + "find_no_player": "animation.pig.find_no_player" +}, +"scripts": { + "animate": [ + "manage_find_player" + ] +} +``` + +## Molang, BP Animations & Animation Controllers + +The `for_each` function and `q.get_nearby_entities` or `q.get_nearby_entities_except_self` can also be used for detecting other entities. They are more effective than using `minecraft:entity_sensor` because they are better at detecting if the entity you want to detect goes away than with `minecraft:entity_sensor`. The only downside is that they're experimental. + +Just like in the previous method we will make pigs say "oink oink" upon detecting players, though you can replace those with whatever you want. First of all, copy-paste this BP animation: + +BP/animations/detection_animation.json + +```json +{ + "format_version": "1.10.0", + "animations": { + "animation.pig.find_player": { + "animation_length": 0.05, + "loop": true, + "timeline": { + "0": [ + "v.x = 0.0; for_each(t.player, q.get_nearby_entities_except_self(16, 'minecraft:player'), { v.x = v.x + 1; }); return v.x > 0.0;" + ] + } + } + } +} +``` + +The first parameter that `q.get_nearby_entities_except_self` needs to work is the radius in blocks it will detect other entities in. The other is the identifier of the mob you want to make it detect. + +Now that's good and all, but on the off chance, you want to make the pig detect players with some attribute that can be detected with Molang, use this. + +BP/animations/detection_animation.json + +```json +{ + "format_version": "1.10.0", + "animations": { + "animation.pig.find_player": { + "animation_length": 0.05, + "loop": true, + "timeline": { + "0": [ + "v.x = 0.0; for_each(t.player, q.get_nearby_entities_except_self(2, 'minecraft:player'), { v.x = v.x + (t.player -> q.is_sheared); }); return v.x > 0.0;" + ] + } + } + } +} +``` + +Next of all, copy paste this BP animation controller: + +BP/animation_controllers/pig_animation_controllers.json + +```json +{ + "format_version": "1.10.0", + "animation_controllers": { + "controller.animation.pig_find_player": { + "initial_state": "default", + "states": { + "default": { + "animations": ["find_player"], + "transitions": [ + { + "detected": "v.x > 0" + } + ] + }, + "detected": { + "animations": ["find_player"], + "transitions": [ + { + "default": "v.x <= 0" + } + ], + "on_entry": ["/say oink oink"] + } + } + } + } +} +``` + +Finally, copy-paste this snippet into the behavior file for the pig-like so. Make sure to insert this in `description`. + +BP/entities/my_entity.json#description + +```json +"animations": { + "manage_find_player": "controller.animation.pig_find_player", + "find_player": "animation.pig.find_player" +}, +"scripts": { + "animate": [ + "manage_find_player" + ] +} +``` diff --git a/docs/wiki/3-实体/2-巧思案例/disabling-team-damage.md b/docs/wiki/3-实体/2-巧思案例/disabling-team-damage.md new file mode 100644 index 00000000..55769d8d --- /dev/null +++ b/docs/wiki/3-实体/2-巧思案例/disabling-team-damage.md @@ -0,0 +1,184 @@ +--- +title: Disabling Team-damage +category: Tutorials +tags: + - intermediate +mentions: + - SirLich + - solvedDev + - Joelant05 + - MedicalJewel105 + - Luthorius + - TCLynx +--- + +If you wish to disable team damage (so one cannot hurt their teammates), assign a tag with the team name to every teammate (I'm going to use `team1`, `team2`, `team3` and `team4` for this example). +WARNING: This will NOT work on realms, the reason for this is that on realms there is a bug where modified player.json files in the behavior packs do not work, and the gmae just ignores them (This may be fixed in the future but as of 1.20.15 it is not fixed. (This also applies to older version of minecraft as well.)) +Now add this damage sensor component into your `player.json`s `"components": {}`. See comments for explanation. + +BP/entities/player.json#components + +```json +"minecraft:damage_sensor":{ + "triggers":[ + { //if you already have a damage sensor, simply copy this object into the "triggers" array + "on_damage":{ + "filters":{ + "any_of":[ + { + "all_of":[ + { "test":"has_tag", "value":"team1" }, //Does the player have this tag? + { "test":"has_tag", "subject":"other", "value":"team1" } //If so, does the entity they're trying to hurt have this tag? + ] + }, + { + "all_of":[ + { "test":"has_tag", "value":"team2" }, //repeats for every team + { "test":"has_tag", "subject":"other", "value":"team2" } + ] + }, + { + "all_of":[ + { "test":"has_tag", "value":"team3" }, + { "test":"has_tag", "subject":"other", "value":"team3" } + ] + }, + { + "all_of":[ + { "test":"has_tag", "value":"team4" }, + { "test":"has_tag", "subject":"other", "value":"team4" } + ] + }, + { + "all_of":[ + { "test":"has_tag", "value":"team5" }, + { "test":"has_tag", "subject":"other", "value":"team5" } + ] + } + ] + } + }, + "deals_damage":false //if any of these filters evaluate to true in the current attack interaction, the target will not be hurt. + } + ] +} + +``` + +### Projectiles + +Due to the primitive filters used by projectile entities, you have to use a completely different method to achieve this. + +The process uses: +- Tags +- Ticking +- Hurt on Condition +- Functions + +BP/entities/player.json#components + +```json + +//"components" +"minecraft:timer": { //This is for applying teams to a projectile to nearby + "time": [ //untagged projectiles, through an event. + 0.0, + 0.1 + ], + "looping": true, + "time_down_event": { + "event": "wiki:projectile_team", + "target": "self" + } +}, +"minecraft:hurt_on_condition": { //The projectile will be unable to directly deal + "damage_conditions": [ //damage, so instead we'll apply tags to the + { //player, which will trigger this . . . + "filters": { + "test": "has_tag", + "value": "damage" + }, + "cause": "projectile", + "damage_per_tick": 4 + } + ] +}, +"minecraft:damage_sensor": { //. . . which in turn, will trigger an event + "triggers": { //to remove this tag, so the damage only + "cause": "projectile", //happens once. + "deals_damage": true, + "on_damage": { + "filters": { + "test": "has_tag", + "value": "damage" + }, + "event": "wiki:stop_damage" + } + } +} + +//"events" +"wiki:projectile_team": { //The function here will apply tags depending on + "run_command": { //which team tags the player has. + "command": [ + "function wiki-apply_team" + ] + } +}, +"wiki:stop_damage": { //The event that simply removes the damage tag. + "run_command": { + "command": [ + "tag @s remove damage" + ] + } +} +``` + +BP/functions/wiki-apply_team.mcfunction + +``` +execute @s[tag=team1] ~ ~ ~ tag @e[rm=0,r=1,c=1,type=arrow,tag=] add team1 +execute @s[tag=team2] ~ ~ ~ tag @e[rm=0,r=1,c=1,type=arrow,tag=] add team2 +execute @s[tag=team3] ~ ~ ~ tag @e[rm=0,r=1,c=1,type=arrow,tag=] add team3 +execute @s[tag=team4] ~ ~ ~ tag @e[rm=0,r=1,c=1,type=arrow,tag=] add team4 + +``` + +BP/entities/arrow.json + +```json + +//"components" +"on_hit": { //On_hit, trigger an event . . . + "definition_event": { + "affect_projectile": true, + "event_trigger": { + "event": "wiki:hit", + "target": "self" + } + }, + "remove_on_hit": {} +} + +//"events" +"wiki:hit": { //. . . which executes a function, applying + "run_command": { //the damage tag to any players of a different team! + "command": [ + "function wiki-apply_damage" + ] + } +} +``` + +BP/functions/wiki-apply_damage.mcfunction + +``` +execute @s[tag=team1] ~ ~ ~ tag @p[rm=0,r=1,tag=!team1] add damage +execute @s[tag=team2] ~ ~ ~ tag @p[rm=0,r=1,tag=!team2] add damage +execute @s[tag=team3] ~ ~ ~ tag @p[rm=0,r=1,tag=!team3] add damage +execute @s[tag=team4] ~ ~ ~ tag @p[rm=0,r=1,tag=!team4] add damage + +``` + +If you modify `arrow.json`, take into consideration the component groups. + diff --git a/docs/wiki/3-实体/2-巧思案例/dummy-entities.md b/docs/wiki/3-实体/2-巧思案例/dummy-entities.md new file mode 100644 index 00000000..ff7db8dc --- /dev/null +++ b/docs/wiki/3-实体/2-巧思案例/dummy-entities.md @@ -0,0 +1,146 @@ +--- +title: Dummy Entities +category: Tutorials +tags: + - beginner +mentions: + - SirLich + - Joelant05 + - MedicalJewel105 + - aexer0e +--- + +Dummy entities are invisible entities which are used behind the scenes for game-play purposes. Dummy entities are a very useful tool, and this document will cover some of the ways they are utilized, as well as showing how to set up the resource side of things. + +## Using Dummies + +This is a non-exhaustive list of how dummies can be used: + +- **For data storage**: by adding tags to the entity, we can use it as a "game manager", much like Armor Stands used to be used. +- **As a named entity:** by name-tagging a dummy, and then using `execute` to select for it, you can make command-blocks `/say` with a pretty display name. +- **As a location marker:** you can run `execute` commands located at a dummy to get relative coordinates at a location. +- **As a waypoint:** by making entities which are aggressive to your dummy, you can pathfind entities to any location by placing a dummy there. + +## Creating Dummies + +### Behavior Entity + +You can use whatever behaviors you like, but here is a good template. The important aspects are: no damage, and can't be pushed. + +BP/entities/dummy.json + +```json +{ + "format_version": "1.16.0", + "minecraft:entity": { + "description": { + "identifier": "wiki:dummy", + "is_summonable": true, + "is_spawnable": false, + "is_experimental": false + }, + "components": { + "minecraft:breathable": { //Optional, allows the entity to breath underwater + "breathes_water": true + }, + "minecraft:physics": { + "has_gravity": false, //Optional, allows the entity to not be affected by gravity or water + "has_collision": false + }, + "minecraft:custom_hit_test": { + "hitboxes": [ + { + "pivot": [0, 100, 0], + "width": 0, + "height": 0 + } + ] + }, + "minecraft:damage_sensor": { + "triggers": { + "deals_damage": false + } + }, + "minecraft:pushable": { + "is_pushable": false, + "is_pushable_by_piston": false + }, + "minecraft:collision_box": { + "width": 0.0001, + "height": 0.0001 + } + } + } +} +``` + +If you want to disable collision at all (so you can place a block at it's position), you can use arrow runtime identifier, however, there can be some side effects. + +### Resource Entity + +RP/entity/dummy.json + +```json +{ + "format_version": "1.10.0", + "minecraft:client_entity": { + "description": { + "identifier": "wiki:dummy", + "materials": { + "default": "entity_alphatest" + }, + "geometry": { + "default": "geometry.dummy" + }, + "render_controllers": ["controller.render.dummy"], + "textures": { + "default": "textures/entity/dummy" + } + } + } +} +``` + +### Geometry + +RP/models/entity/dummy.json + +```json +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.dummy", + "texture_width": 16, + "texture_height": 16 + } + } + ] +} +``` + +### Render Controller (Optional) + +RP/render_controllers/dummy.json + +```json +{ + "format_version": "1.10.0", + "render_controllers": { + "controller.render.dummy": { + "geometry": "Geometry.default", + "textures": ["Texture.default"], + "materials": [ + { + "*": "Material.default" + } + ] + } + } +} +``` + +### Texture (Optional) + +You can either leave the texture location blank, or open the model in blockbench and create a blank texture. diff --git a/docs/wiki/3-实体/2-巧思案例/entity-attack.md b/docs/wiki/3-实体/2-巧思案例/entity-attack.md new file mode 100644 index 00000000..41c6e34d --- /dev/null +++ b/docs/wiki/3-实体/2-巧思案例/entity-attack.md @@ -0,0 +1,570 @@ +--- +title: Entity Attacks +category: Tutorials +mentions: + - Luthorius + - TheDoctor15 + - SirLich + - MedicalJewel105 + - epxzzy + - ThomasOrs +tags: + - intermediate +--- + +Entity attacks are a complex subject that require many different things to work correctly: + +- Navigation and movement abilities to move towards its target +- Targeting abilities to pick which entity to attack +- Attack type, such as melee or ranged +- Attack damage and effects + +## Selecting Targets + +### Movement + +Before a mob can attack, it will need various [movement components](/entities/entity-movement). + +Before starting to create your entity attacks, you should ensure that your entity can walk around, and navigate its surroundings. + +:::warning +Even if you are making an unmoving entity (like turret), you still need to add navigation component, so your entity can find the entity to shoot. +::: + +### Triggering Hostility + +There are many ways to trigger hostility. The most common type `nearest_attackable_target`, is shown here. It generally allows you to define which entities this entity is interested in attacking: + + + +```json +"minecraft:behavior.nearest_attackable_target": { + "must_see": true, //If true, potential target must be in mob's line of sight + "reselect_targets": true, //Allows mob to select new target, if one is closer than current + "within_radius": 25.0, //Radius that potential target must be withing + "must_see_forget_duration": 17.0, //If "must_see" = true, time before forgetting target + "entity_types": [ + { + "filters": { //Entities to attack + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 48.0 + } + ] +} +``` + +For more fine control, you may also consider using one of the following components: + +| Component | Note | +| -------------------------------------------------------- | ------------------------------------------------------------ | +| minecraft:behavior.nearest_attackable_target | Targets entity meeting the given requirements | +| minecraft:behavior.nearest_prioritized_attackable_target | Allows for "priority": [integer] to be set after each filter | +| minecraft:behavior.defend_trusted_target | Targets entity that hurts any entities specified in filters | + +But there is also one more - `minecraft:lookat` + +This last component is slightly different to the other three, as it is for detecting and targeting entities that attempt eye contact. It is structured like so: + +BP/entities/enderman.json + +```json +"minecraft:lookat": { + "search_radius": 64.0, + "set_target": true, //Becomes a valid target if true + "look_cooldown": 5.0, + "filters": { + "all_of": [ + { + "subject": "other", + "test": "is_family", + "value": "player" + }, + { + "test": "has_equipment", + "domain": "head", + "subject": "other", + "operator": "not", + "value": "carved_pumpkin" //All players not with carved_pumpkin equipped on head + } + ] + } +} +``` + +### Target selecting + +:::tip +This section shows you how to configure the "Targeting" components, explained above. +::: + +Mobs find targets by using [filters](https://bedrock.dev/docs/stable/Entities#Filters) can be used to determine which entities are a valid target, through `test`, `subject`, `operator`, and `value`. + + + +```json +"entity_types":[ + { + "filters":{ + "any_of":[ + { + "test":"is_family", + "subject":"other", + "operator":"==", + "value":"snow_golem" + }, + { + "test":"is_family", + "subject":"other", + "operator":"==", + "value":"iron_golem" + } + //anything that is equal to either" snow_golem" or "iron_golem" + ] + }, + "max_dist":24 + }, + { + "filters":{ + "all_of":[ + { + "test":"is_family", + "subject":"other", + "operator":"==", + "value":"player" + }, + { + "test":"has_equipment", + "subject":"other", + "domain":"head", + "operator":"=!", + "value":"turtle_helmet" + } + //anything equal to player AND not wearing "turtle_helmet" on head + ] + }, + "max_dist":24 + } +] +``` + +This would only target `snow_golem`s, `iron_golem`s, and `player`s that are **not** wearing `turtle_helmet`s. + +## Types of Attack + +Here are the available attacks: + +| Component | Note | +| ---------------------------------------------------- | -------------------------------------------------------- | +| [minecraft:behavior.melee_attack](#melee) | Deals damage to a single target | +| [minecraft:behavior.ranged_attack](#ranged) | Fires a projectile towards a target | +| [minecraft:area_attack](#area) | Effectively melee attacks on anything withing range | +| [minecraft:behavior.knockback_roar](#knockback-roar) | Similar to minecraft:area_attack, but much more flexible | + +### Melee + +Melee attacks are the most common type of attack, they cause knockback, and have a 100% success rate at accuracy. + + + +```json +"wiki:melee_attack": { + "minecraft:attack": { + "damage": 3, + "effect_name": "slowness", + "effect_duration": 20 + }, + "minecraft:behavior.melee_attack": { + "priority": 3, + "melee_fov": 90.0, //The allowable FOV the actor will use to determine if it can make a valid melee attack + "speed_multiplier": 1, + "track_target": false, + "require_complete_path": true + } +} +``` + +Set the damage, choose a mob effect, and change some additional properties. + +The value defined in components stating integers of damage can simply be a constant, or a string containing 2 numbers, for a range of possible values. + +`"damage": 3` would result in 3 each time + +`"damage": [ 2, 6 ]` would result in any integer between 2 and 6 + +Both the mob effect and duration timer are optional, but when they are used, the available effects are as following: + +| Effect Name | +| --------------- | +| speed | +| slowness | +| haste | +| mining_fatigue | +| strength | +| instant_health | +| instant_damage | +| jump_boost | +| nausea | +| regeneration | +| resistance | +| fire_resistance | +| water_breathing | +| invisibility | +| blindness | +| night_vision | +| hunger | +| weakness | +| poison | +| wither | +| health_boost | +| absorption | +| saturation | +| levitation | +| fatal_poison | +| slow_falling | +| conduit_power | +| bad_omen | +| village_hero | +| darkness | + +### Ranged + +Fires specified [projectiles](/documentation/projectiles) towards target at set intervals. + + + +```json +"wiki:ranged_attack": { + "minecraft:behavior.ranged_attack": { + "priority": 2, + "ranged_fov": 90.0, //The allowable FOV the actor will use to determine if it can make a valid ranged attack + "attack_interval_min": 1.0, + "attack_interval_max": 3.0, + "attack_radius": 15.0 + }, + "minecraft:shooter": { + "def": "wiki:projectile" + } +} +``` + +List of vanilla projectiles: + +| Vanilla Projectiles | +| -------------------------------- | +| minecraft:arrow | +| minecraft:dragon_fireball | +| minecraft:egg | +| minecraft:ender_pearl | +| minecraft:fireball | +| minecraft:fishing_hook | +| minecraft:lingering_potion | +| minecraft:llama_spit | +| minecraft:skulker_bullet | +| minecraft:small_fireball | +| minecraft:snowball | +| minecraft:splash_potion | +| minecraft:thrown_trident | +| minecraft:wither_skull | +| minecraft:wither_skull_dangerous | +| minecraft:xp_bottle | + +Only one item has an effect on an entity's ranged attacks. Crossbows. If one is equipped, it is first required for it to be "charged" before the entity can fire anything. Regardless of the projectile stated in `minecraft:shooter`, the item to charge the crossbow with should always be `minecraft:arrow`. + + + +```json +"minecraft:behavior.charge_held_item": { + "priority": 2, + "items": [ + "minecraft:arrow" + ] +} +``` + +Once `minecraft:behavior.charge_held_item` has been achieved, the entity will be able to execute the process of `minecraft:behavior.ranged_attack`, and will then need to charge again. + +### Area + +These attacks damage all entities within a set radius. It is different to both ranged and melee in that this component doesn’t actually require a target. Regardless of the entities behaviour, _all_ entities will be affected by this. It appears to be similar to melee attacks, as it deals knockback in a similar manner, though dealing damage at a constant rate. + + + +```json +"minecraft:area_attack" : { + "damage_range": 1, //distance in blocks + "damage_per_tick": 2, + "cause": "contact", + "entity_filter": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "monster" + } + ] + } +} +``` + +[Entity damage sources](https://bedrock.dev/docs/stable/Addons#Entity%20Damage%20Source). It is important to take these into consideration, as certain items in vanilla can protect from some, like armour enchantments, and you can also make mobs immune to specific sources using `minecraft:damage_sensor`. + +### Knockback Roar + +Many similarities between this and `minecraft:area_attack`, this component though having much more flexibility. + + + +```json +"wiki:roar_attack": { + "minecraft:behavior.knockback_roar":{ + "priority":2, + "duration":0.7, + "attack_time":0.2, + "knockback_damage":1, + "knockback_horizontal_strength":1, + "knockback_vertical_strength":1, + "knockback_range":5, + "knockback_filters":{ + "test":"is_family", + "subject":"other", + "operator":"==", + "value":"player" + }, + "damage_filters":{ + "test":"is_family", + "subject":"other", + "operator":"==", + "value":"player" + }, + "on_roar_end":{ + "event":"wiki:other_event" + }, + "cooldown_time":10 + } +} +``` + +This is more like a shockwave of damage. Extremely versatile in uses. Produces a particle effect, which can be disabled by adding a modified version of `knockback_roar.json` to a resource pack's particles folder. + +## More on Attacks + +Entity Attacks don't have to be as simple as Mob being hostile towards X target, doing X attack, dealing X damage. + +### Difficulty Dependant Attacks + +Express components and values to use for each difficulty. + +BP/entities/bee.json + +```json +"easy_attack": { + "minecraft:attack": { + "damage": 2 + } +}, +"normal_attack": { + "minecraft:attack": { + "damage": 2, + "effect_name": "poison", + "effect_duration": 10 + } +}, +"hard_attack": { + "minecraft:attack": { + "damage": 2, + "effect_name": "poison", + "effect_duration": 18 + } +} +``` + +### Switching Modes + +You can use events to make your mob only attack under specific circumstances, or swap between the different types of attack. This can be achieved through simple usage of [events](/entities/entity-events) and component groups. Two prime examples being `minecraft:environment_sensor` and `minecraft:target_nearby_sensor`. The two are pretty similar in regards of structure, difference being that one is for sensing environments and the other for testing for target distance. + +#### Attacks + +Component groups are required to define the different modes of attack, such as: + + + +```json +"wiki:ranged_components": { + "minecraft:shooter": { + "def": "wiki:projectile" + }, + "minecraft:behavior.ranged_attack": { + "priority": 3, + "ranged_fov": 90.0, + "attack_interval_min": 1.0, + "attack_interval_max": 3.0, + "attack_radius": 15.0 + } +} +``` + + + +```json +"wiki:melee_components": { + "minecraft:attack": { + "damage": 6 + }, + "minecraft:behavior.melee_attack": { + "priority": 3 + } +} +``` + +Those are examples of your attack modes, but they are not the only ones you can use. `wiki:ranged_components` and `wiki:melee_components` are generic names for the components within them, they can have any name, but it's what's nested inside them that counts. + +#### Events + +These component groups won't actually do anything by themselves. Another component group is required, and some events to add/remove the attack modes. + + + +```json +"wiki:melee_swap": { //When triggered, adds component group for ranged and removes melee component group + "remove": { + "component_groups": [ + "wiki:ranged_components" + ] + }, + "add": { + "component_groups": [ + "wiki:melee_components" + ] + } +} +``` + + + +```json +"wiki:ranged_swap": { //When triggered, adds component group for melee and removes ranged component group + "remove": { + "component_groups": [ + "wiki:melee_components" + ] + }, + "add": { + "component_groups": [ + "wiki:ranged_components" + ] + } +} +``` + +The events are effectively for just turning attack modes on and off, by adding and removing different component groups. + +#### Sensors + +To trigger the events, another component group is used. Sensors are components that can trigger events when certain conditions are fulfilled. Here are 2 examples of different sensors: + +- For sensing the distance between the mob and target + + + +```json +"wiki:switcher_range": { + "minecraft:target_nearby_sensor": { + "inside_range": 4.0, + "outside_range": 5.0, + "must_see": true, + "on_inside_range": { //When target is within 4 blocks range, trigger "wiki:melee_swap" event + "event": "wiki:melee_swap", + "target": "self" + }, + "on_outside_range": { //When target is beyond 5 blocks range, trigger "wiki:ranged_swap" event + "event": "wiki:ranged_swap", + "target": "self" + } + } +} +``` + +- For sensing certain features of the environment of which the mob is exposed to + + + +```json +"wiki:switcher_environment": { + "minecraft:environment_sensor": { + "triggers": [ + { + "filters": { //When underwater, trigger "wiki:melee_swap" event + "test": "is_underwater", + "subject": "self", + "operator": "==", + "value": true + }, + "event": "wiki:melee_swap" + }, + { + "filters": { //When not underwater, trigger "wiki:ranged_swap" event + "test": "is_underwater", + "subject": "self", + "operator": "==", + "value": false + }, + "event": "wiki:ranged_swap" + } + ] + } +} +``` + +This uses `Filters`, similar to how the [target is initially selected](#target-selecting). + +:::tip +You aren't limited to just 2 attack types, you can have as many as you want! Just make sure to have the event's and sensors to compensate for them. +::: + +## Visual Animations + +Attacks and animations go hand in hand. Within resource packs, the following 3 directories are required: + +- animations (entityname.animation.json) +- animation_controllers (entityname.animation_controller.json) +- entity (entityname.json) + +Or as long as you know the names of vanilla animations and animation controllers, you can define them in the latter directory and folder. + +### Animations + +Animations are self explanatory. The files themselves contain all specific animations for the given entity. The recommended way to make animations is by using [blockbench](/guide/blockbench). + +Though it is possible to create them in a simple text editor. + +| Vanilla Attack Animations | +| -------------------------------------------- | +| "animation.zombie.attack_bare_hand" | +| "animation.skeleton.attack.v1.0" | +| "animation.humanoid.bow_and_arrow.v1.0" | +| "animation.humanoid.damage_nearby_mobs.v1.0" | + +A few examples of Animations. Locate /vanilla_resource_pack/animations for all of them. + +### Animation Controllers + +List of states that trigger animations. + +| Vanilla Attack Animation Controllers | +| ---------------------------------------------- | +| "controller.animation.zombie.attack_bare_hand" | +| "controller.animation.skeleton.attack" | +| "controller.animation.humanoid.bow_and_arrow" | +| "controller.animation.humanoid.attack" | + +A few examples of Animation Controllers. Locate /vanilla_resource_pack/animation_controllers for all of them + +More information on animations can be found [here](https://bedrock.dev/docs/stable/Animations). diff --git a/docs/wiki/3-实体/2-巧思案例/entity-holds-item.md b/docs/wiki/3-实体/2-巧思案例/entity-holds-item.md new file mode 100644 index 00000000..bf114f75 --- /dev/null +++ b/docs/wiki/3-实体/2-巧思案例/entity-holds-item.md @@ -0,0 +1,76 @@ +--- +title: Entity Holds Item +category: Tutorials +tags: + - intermediate +mentions: + - pieterdefour + - SirLich + - solvedDev + - stirante + - Joelant05 + - destruc7ion + - Dreamedc2015 + - sermah + - 7dev7urandom +--- + +::: tip +This tutorial assumes you have a basic understanding of entities, loot tables, and Blockbench. +::: + +In this tutorial, you will learn to have an entity spawn with an item in its hand. I'll be using a custom `mandalorian_armorer` entity and a custom `hammer` item for the examples. + +## Model + +First of all, you'll need to have a model in Blockbench that has a map called `rightArm`. Within this map, there needs to be a submap called 'rightItem'. +Now set the position of the pivot point of this submap, so it sits in the place you want the entity to hold the item at. + +![](/assets/images/tutorials/entity-holds-item/blockbench.png) + +## Behavior Pack-side + +Now you'll need to add a `minecraft:equipment` component in the component list for your entity and add a loot table with the desired item. + +In our example it will look like this: + +BP/entity/mandolorian.json#components + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/gear/mandolorian.json" +} +``` + +## Loot Table + +Finally, add the loot table for your entity. It needs to be in `loot_tables/entities/.json` in the behavior pack. In our case, it's called `mandolorian.json`. + +:::warning +This isn't the same loot table as what it drops on death. So make sure it has a different name. +::: + +To have the entity always spawn with the same item, add the following loot table: + +BP/loot_tables/entities/gear/mandolorian.json + +```json +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "item", + "name": "dd:hammer", + "weight": 1 + } + ] + } + ] +} +``` + +If everything went well, you'd have something looking like this: + +![](/assets/images/tutorials/entity-holds-item/finished_result.png) diff --git a/docs/wiki/3-实体/2-巧思案例/entity-movement.md b/docs/wiki/3-实体/2-巧思案例/entity-movement.md new file mode 100644 index 00000000..0902a676 --- /dev/null +++ b/docs/wiki/3-实体/2-巧思案例/entity-movement.md @@ -0,0 +1,202 @@ +--- +title: Entity Movement +category: Tutorials +mentions: + - SirLich + - sermah + - MedicalJewel105 + - TheDoctor15 +--- + +In Minecraft, entities have the ability to move through the world, either by walking, swimming or flying. To get these behaviors, your entity will generally need quite a few behaviors, broken out into various types. + +As you read this tutorial, keep in mind that your entity will need at least: + +- [A component that sets the entities movement speed.](#movement-speed) +- [A component to set how the entity will move (walking, flying, etc)](#movement-type) +- [A component to set the entities navigation abilities, so it can generate paths.](#navigation-abilities) +- [A component that sets where/when the entity should move (AI Goals).](#ai) + +:::tip +The best way to create a moving entity is by picking a similar entity from the vanilla behavior pack, and copying the components into your entity. + +For example entities like Phantom, or Ghast, or Parrot are all flying entities, but have very different in-game behavior! Use the closest-matching entity as a template. +::: + +## Movement Speed + +The first thing your entity needs is a speed component. This sets how quickly your entity will move through the world. + +| Component | Note | +| ---------------------------------------------------------------------------------------------------------------- | -------------------------------- | +| [minecraft:movement](/entities/vanilla-usage-components#movement) | Set movement speed (required) | +| [minecraft:underwater_movement](/entities/vanilla-usage-components#underwater-movement) | Set movement speed in the water. | +| [minecraft:flying_speed](/entities/vanilla-usage-components#flying-speed) | Set the speed in the air. | + +You should always include `minecraft:movement`. Add the other two as needed. + +All vanilla "swimming" entities like Dolphin include `underwater_movement`. Only some flying entities have `flying_speed`. It is not known why this is the case. + +## Movement Type + +Your entity will also need a movement type. Movement types set hard-coded behavior for _how_ your entity will move through the world. + +You may only include one movement type in your entity. Select the component that most closely matches your needs. Generally `basic`, `amphibious` and `fly` are good ones to use. + +| Component | Note | +| --------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| [minecraft:movement.amphibious](https://bedrock.dev/docs/stable/Entities#minecraft%3Amovement.amphibious) | This move control allows the mob to swim in the water and walk on land. | +| [minecraft:movement.basic](https://bedrock.dev/docs/stable/Entities#minecraft%3Amovement.basic) | This component accents the movement of an entity. | +| [minecraft:movement.fly](https://bedrock.dev/docs/stable/Entities#minecraft%3Amovement.fly) | This move control causes the mob to fly. | +| [minecraft:movement.generic](https://bedrock.dev/docs/stable/Entities#minecraft%3Amovement.generic) | This move control allows a mob to fly, swim, climb, etc. | +| [minecraft:movement.hover](https://bedrock.dev/docs/stable/Entities#minecraft%3Amovement.hover) | This move control causes the mob to hover. | +| [minecraft:movement.jump](https://bedrock.dev/docs/stable/Entities#minecraft%3Amovement.jump) | Move control causes the mob to jump as it moves with a specified delay between jumps. | +| [minecraft:movement.skip](https://bedrock.dev/docs/stable/Entities#minecraft%3Amovement.skip) | This move control causes the mob to hop as it moves. | +| [minecraft:movement.sway](https://bedrock.dev/docs/stable/Entities#minecraft%3Amovement.sway) | This move control causes the mob to sway side to side, giving the impression it is swimming. | + +## Movement Modifiers + +Movement modifiers provide additional information about how your entity will move through the world. These components are not required for normal entities, but you should be aware of them. + +| Component | Note | +| ----------------------------------------------------------------------------------------------------- | -------------------------------------------------- | +| [minecraft:water_movement](https://bedrock.dev/docs/stable/Entities#minecraft%3Awater_movement) | Sets the friction the entity experiences in water. | +| [minecraft:rail_movement](https://bedrock.dev/docs/stable/Entities#minecraft%3Arail_movement) | Sets that the entity can move on rails (only). | +| [minecraft:friction_modifier](https://bedrock.dev/docs/stable/Entities#minecraft%3Afriction_modifier) | Sets the friction the entity experiences on land. | + +## Navigation + +The next thing your entity needs is a navigation component. Navigation components have quite a few fields, like whether the entity can open doors or avoid sunlight. How you set these fields is generally more important than the navigation component you pick! + +The reason there are so many navigation components is that each one gives a slightly different hard-coded behavior. Pick the navigation component whose name/description best matches the kind of navigation your entity will be doing. + +You can only have one navigation component at any given time. + +:::tip +This component is very important. You should check vanilla examples for inspiration on what fields and values to use. +::: + +| Component | Note | +| ------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| [minecraft:navigation.climb](https://bedrock.dev/docs/stable/Entities#minecraft%3Anavigation.climb) | Allows this entity to generate paths that include vertical walls like the vanilla Spiders do. | +| [minecraft:navigation.float](https://bedrock.dev/docs/stable/Entities#minecraft%3Anavigation.float) | Allows this entity to generate paths by flying around the air like the regular Ghast. | +| [minecraft:navigation.generic](https://bedrock.dev/docs/stable/Entities#minecraft%3Anavigation.generic) | Allows this entity to generate paths by walking, swimming, flying and climbing around, and jumping up and down a block. | +| [minecraft:navigation.fly](https://bedrock.dev/docs/stable/Entities#minecraft%3Anavigation.fly) | Allows this entity to generate paths in the air as the vanilla Parrots do. | +| [minecraft:navigation.swim](https://bedrock.dev/docs/stable/Entities#minecraft%3Anavigation.swim) | Allows this entity to generate paths that include water. | +| [minecraft:navigation.walk](https://bedrock.dev/docs/stable/Entities#minecraft%3Anavigation.walk) | Allows this entity to generate paths by walking around and jumping up and down a block like regular mobs. | + +## Navigation Abilities + +On top of the movement and the navigation component, there exist many additional components to augment the abilities of your entity as they move through the world. + +| Component | Note | +| ------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| [minecraft:annotation.break_door](https://bedrock.dev/docs/stable/Entities#minecraft%3Aannotation.break_door) | Allows entity to break doors. It must also be turned on in the navigation component. | +| [minecraft:annotation.open_door](https://bedrock.dev/docs/stable/Entities#minecraft%3Aannotation.open_door) | Allows entity to open doors. It must also be turned on in the navigation component. | +| [minecraft:buoyant](https://bedrock.dev/docs/stable/Entities#minecraft%3Abuoyant) | Specifies which liquids the entity can float in. | +| [minecraft:can_climb](https://bedrock.dev/docs/stable/Entities#minecraft%3Acan_climb) | Allows this entity to climb up ladders. | +| [minecraft:can_fly](https://bedrock.dev/docs/stable/Entities#minecraft%3Acan_fly) | Marks the entity as being able to fly. The pathfinder won't be restricted to paths where a solid block is required underneath it. | +| [minecraft:can_power_jump](https://bedrock.dev/docs/stable/Entities#minecraft%3Acan_power_jump) | Allows the entity to power jump like the horse does in vanilla. | +| [minecraft:floats_in_liquid](https://bedrock.dev/docs/stable/Entities#minecraft%3Afloats_in_liquid) | Sets that this entity can float in liquid blocks. | +| [minecraft:jump.dynamic](https://bedrock.dev/docs/stable/Entities#minecraft%3Ajump.dynamic) | Defines a dynamic type jump control that will change jump properties based on the speed modifier of the mob. | +| [minecraft:jump.static](https://bedrock.dev/docs/stable/Entities#minecraft%3Ajump.static) | Gives the entity the ability to jump. | + +There are also components like `minecraft:preferred_path`, which will modify navigation based on block-based path-cost. + +## AI Goals + +The navigation component tells the entity _how_ to generate paths, but it doesn't say _when_ or _where_ to generate paths. This is what the AI components are for. + +AI Goals are prefixed with `behavior` and follow a priority system to pick which behavior to run. The lower priorities will be picked first. + +In general, you should usually add quite a few AI components, with different priorities. Layered together, these will create realistic movement and behavior for your entity. As always, vanilla entities provide a good template for which components to add, and with what properties/priorities. + +There are too many AI components that generate paths to list in this document. A few will be provided as examples: + +| Component | +| --------------------------------------------------------------------------------------------------------------------------------- | +| [minecraft:behavior.random_stroll](https://bedrock.dev/docs/stable/Entities#minecraft%3Abehavior.random_stroll) | +| [minecraft:behavior.follow_owner](https://bedrock.dev/docs/stable/Entities#minecraft%3Abehavior.follow_owner) | +| [minecraft:behavior.move_to_water](https://bedrock.dev/docs/stable/Entities#minecraft%3Abehavior.move_to_water) | +| [minecraft:behavior.stroll_towards_village](https://bedrock.dev/docs/stable/Entities#minecraft%3Abehavior.stroll_towards_village) | + +For a full list, visit [bedrock.dev](https://bedrock.dev/docs/stable/Entities#AI%20Goals). + +### Pathfinding + +Making entities go to specific places is one of the most common requests for Marketplace content. +The best way to do pathfinding uses a second entity, which the first entity will be attracted to. I am going to call this secondary entity the **marker**. If you are confused on how to create a marker, visit the [Dummy Entities](/entities/dummy-entities) page. + +#### Idea + +The way we are going to do pathfinding is actually fairly simple: Make our entity aggressive towards our marker, and then simply place our marker where we want our entity to path to. The hard part is knowing what components to add so we get really long-range pathing. + +#### Components + +These components can be edited as needed to create good pathing. Make sure to update the `nearest_attackable_target` to point to your marker entity. This takes a `family_type`, so you should set one of those on your marker. + +Don't forget to add some basic movement and navigation components so your entity is able to move. + + + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 0, + "reselect_targets": true, + "target_search_height": 1000, + "within_radius": 1000, + "must_see": false, + "entity_types": [ + { + "filters": [ + { + "test": "is_family", + "subject": "other", + "value": "waypoint_1" + } + ], + "max_dist": 1000 + } + ] +}, +"minecraft:attack": { + "damage": 0 +}, +"minecraft:behavior.melee_attack": { + "priority": 0, + "require_complete_path": true, + "track_target": true +}, +"minecraft:follow_range": { + "value": 1000, + "max": 1000 +} +``` + +#### Detecting a reached waypoint + +You can use `minecraft:target_nearby_sensor` to detect when you have reached the marker entity: + + + +```json +"minecraft:target_nearby_sensor": { + "inside_range": 2.0, + "outside_range": 4.0, + "must_see": true, + "on_inside_range": { + "event": "reached_waypoint" + }, + "on_outside_range": { + "event": "not_reached_waypoint" + } +} +``` + +## Other + +:::tip +You can trigger entity walking animation via command. +`/execute as @e[type=...] at @s run tp @s ^^^0.1` +This way you can control where entity goes and make it look natural. +::: diff --git a/docs/wiki/3-实体/2-巧思案例/flying-entities.md b/docs/wiki/3-实体/2-巧思案例/flying-entities.md new file mode 100644 index 00000000..a5770421 --- /dev/null +++ b/docs/wiki/3-实体/2-巧思案例/flying-entities.md @@ -0,0 +1,359 @@ +--- +title: Flying Entities +category: Tutorials +tags: + - recipe + - intermediate +mentions: + - SirLich + - Joelant05 + - Dreamedc2015 + - MedicalJewel105 + - aexer0e + - imsolucid + - nebulacrab + - Luthorius + - TheItsNameless +--- + +Whether making a plane or a dragon, adding controllability to flying entities will probably challenge most devs who haven't dabbled around this concept. Since there is no "right" way of adding a piloting mechanic to flying entities, I'll showcase 3 main workaround ways you can use to achieve this. + +## Great Jump, Slow Fall + +While not exactly "flying", setting the entity's jumping power high and giving it slow falling & speed effects as it falls is probably the most straightforward method. + +To achieve this, we will need to add the `"minecraft:horse.jump_strength"` component to our entity. Adding this will allow you to control its jumping power and disable dismounting when the player presses the jump button. + + + +```json +"minecraft:horse.jump_strength": { + "value": 7 +} +``` + +We can also use `"value"` as an object to utilize the **range bar** players will see when holding down the jump button. + + + +```json +"minecraft:horse.jump_strength": { + "value": { "range_min": 0.6, "range_max": 1.2 } +} +``` + +Now we will give it slow falling and speed as it's falling so that it doesn't instantly fall. To do this, we will make an animation controller and give it those effects when it's not on the ground as so: + +(You can read a tutorial on how to use animation controllers to execute commands [here](/animation-controllers/entity-commands).) + + + +```json +"controller.animation.dragon.flying":{ + "states":{ + "default":{ + "transitions":[ + { + "jumping":"!q.is_on_ground" + } + ] + }, + "jumping":{ + "transitions":[ + { + "default":"q.is_on_ground" + } + ], + "on_entry":[ + "/effect @s slow_falling 20000 0 true", + "/effect @s speed 20000 10 true" + ], + "on_exit":[ + "/effect @s clear" + ] + } + } +} +``` + +We'll also need to hook it up to our entity as so: + + + +```json +"description":{ + "identifier":"wiki:dragon", + "is_spawnable":true, + "is_summonable":true, + "is_experimental":false, + "scripts":{ + "animate":[ + "flying" + ] + }, + "animations":{ + "flying":"controller.animation.dragon.flying" + } +} +``` + +Now, we should have a mechanic at least resemblant of flying. You can change the values like jump_strength and speed, but the entity will always fall using this method. + +## Controlling Through Looking + +This is probably the most popular method of piloting flying entities, and unlike the first method, this one gives players control over the vertical movement of the entity so that you don't always have to fall every time you jump, with the downside being you can't look around freely without changing the entity's vertical trajectory. + +This method detects the riding player's vertical rotation and applies levitation/slow_falling effects to the entity accordingly. + +There are multiple ways of achieving that, but in this tutorial, we'll be using the target selectors `rym` (minimum y-rotation) and `ry` (maximum y-rotation) in a chain of repeating command-blocks to detect the player's pitch, and depending on the range, giving our entity levitation or slowly falling. + + + +``` +execute @a[rxm=-90,rx=-25] ~~~ effect @e[type=wiki:dragon,r=1] levitation 1 6 true +execute @a[rxm=-25,rx=-15] ~~~ effect @e[type=wiki:dragon,r=1] levitation 1 3 true +execute @a[rxm=-15,rx=-5] ~~~ effect @e[type=wiki:dragon,r=1] levitation 1 2 true +execute @a[rxm=-5,rx=20] ~~~ effect @e[type=wiki:dragon,r=1] levitation 1 1 true +execute @a[rxm=20,rx=35] ~~~ effect @e[type=wiki:dragon,r=1] slow_falling 1 1 true +execute @a[rxm=35,rx=90] ~~~ effect @e[type=wiki:dragon,r=1] clear +``` + +**Depending on how big your entity is and how far away the player's seat is from its pivot, you might need to change the radius `r` to a more significant value.** + +After you run those commands in a repeating command block, you should control its vertical movement by looking up and down. +or you may use a simple animation controller and link it to the entity, so it always plays the function. + +It's recommended that you link this animation controller to the player. + + + +```json +{ + "format_version": "1.10.0", + "animation_controllers": { + "controller.animation.base": { + "initial_state": "default", + "states": { + "default": { + "transitions": [ + { + "base": "(1.0)" + } + ], + "on_entry": [ + "/function dragon_control" + ] + }, + "base": { + "transitions": [ + { + "default": "(1.0)" + } + ], + "on_entry": [ + "/function dragon_control" + ] + } + } + } + } +} +``` + +The entity will probably still be too slow when flying, so we'll borrow our animation controller from the first method with some changes to give the entity speed when it's flying. + + + +```json +"controller.animation.dragon.flying":{ + "states":{ + "default":{ + "transitions":[ + { + "jumping_1":"!q.is_on_ground" + } + ] + }, + "jumping_1":{ + "transitions":[ + { + "transition_to_default":"q.is_on_ground" + }, + { + "jumping_2":"true" + } + ], + "on_entry":[ + "/effect @s speed 15 10 true" + ] + }, + "jumping_2":{ + "transitions":[ + { + "transition_to_default":"q.is_on_ground" + }, + { + "jumping_1":"true" + } + ], + "on_entry":[ + "/effect @s speed 15 10 true" + ] + }, + "transition_to_default":{ + "transitions":[ + { + "transition_to_default":"true" + } + ], + "on_entry":[ + "/effect @s clear" + ] + } + } +} +``` + +_Since the entity's effects might be cleared when it's being flown, we changed the animation controller to give the entity speed every tick it's not on the ground._ + +You might also notice that the entity levitates when you go near it. We can fix this by giving the entity a tag when it's being ridden (removing it when it isn't being ridden) and only applying those effects when the entity has the tag by making and animating another animation controller and updating our commands. + + + +```json +"controller.animation.dragon.test_rider":{ + "states":{ + "default":{ + "transitions":[ + { + "has_rider":"q.has_rider" + } + ] + }, + "has_rider":{ + "transitions":[ + { + "default":"!q.has_rider" + } + ], + "on_entry":[ + "/tag @s add has_rider" + ], + "on_exit":[ + "/tag @s remove has_rider" + ] + } + } +} +``` + + + +``` +execute @a[rxm=-90,rx=-25] ~~~ effect @e[type=wiki:dragon,r=1,tag=has_rider] levitation 1 6 true +execute @a[rxm=-25,rx=-15] ~~~ effect @e[type=wiki:dragon,r=1,tag=has_rider] levitation 1 3 true +execute @a[rxm=-15,rx=-5] ~~~ effect @e[type=wiki:dragon,r=1,tag=has_rider] levitation 1 2 true +execute @a[rxm=-5,rx=20] ~~~ effect @e[type=wiki:dragon,r=1,tag=has_rider] levitation 1 1 true +execute @a[rxm=20,rx=35] ~~~ effect @e[type=wiki:dragon,r=1,tag=has_rider] slow_falling 1 1 true +execute @a[rxm=35,rx=90] ~~~ effect @e[type=wiki:dragon,r=1,tag=has_rider] clear +``` + +## Controlling Through Jumping + +A third method of controlling flying entities uses the player's jump button. The entity rises when the player is holding the jump button and falls when they release their jump button. + +To do this, we need an animation controller attached to the player rather than the entity itself to detect when the player uses their jump button. We also need to disable dismounting when the player presses the jump button. + +First, on the entity, disable dismounting and jumping: + + + +```json +"minecraft:horse.jump_strength": { + "value": 0 +}, +"minecraft:can_power_jump": {} +``` + +Next, we need an animation controller that causes the entity to levitate when the player uses their jump button and resets the levitation when they release their jump button. + + + +```json +"controller.animation.fly_dragon":{ + "initial_state":"falling", + "states":{ + "falling":{ + "on_entry":[ + "/effect @e[type=wiki:dragon,r=1,c=1] levitation 0" + ], + "transitions":[ + { + "rising":"q.is_jumping" + } + ] + }, + "rising":{ + "on_entry":[ + "/effect @e[type=wiki:dragon,r=1,c=1] levitation 100000 6 true" + ], + "transitions":[ + { + "falling":"!q.is_jumping" + } + ] + } + } +} +``` + +Now, we need a copy of the player's behavior file, which we will modify slightly. You can find the player's behavior file in the vanilla behavior pack provided by Mojang (found [here](https://aka.ms/behaviorpacktemplate)). Once you have copied the player's behavior file to your own behavior pack, find their `"description"` object and add the animation controller. We also want to ensure that the entity will only respond to the player's jump input when the player is riding it, so we can use a Molang query in the player's behavior to only activate the animation controller when the player is riding. + + + +```json +"description":{ + "identifier":"minecraft:player", + "is_spawnable":false, + "is_summonable":false, + "animations":{ + "fly_dragon":"controller.animation.fly_dragon" + }, + "scripts":{ + "animate":[ + { + "fly_dragon":"q.is_riding" + } + ] + } +} +``` + +The entity can now be controlled with the jump key, but there's a bug. If the player dismounts the entity while holding the jump key, it will continue rising. We can fix this with an animation controller on the entity itself that resets the levitation whenever a player dismounts it. + + + +```json +"controller.animation.reset_levitation":{ + "initial_state":"no_rider", + "states":{ + "no_rider":{ + "transitions":[ + { + "has_rider":"q.has_rider" + } + ] + }, + "has_rider":{ + "on_exit":[ + "/effect @s levitation 0" + ], + "transitions":[ + { + "no_rider":"!q.has_rider" + } + ] + } + } +} +``` diff --git a/docs/wiki/3-实体/2-巧思案例/introduction-to-aec.md b/docs/wiki/3-实体/2-巧思案例/introduction-to-aec.md new file mode 100644 index 00000000..c3041df6 --- /dev/null +++ b/docs/wiki/3-实体/2-巧思案例/introduction-to-aec.md @@ -0,0 +1,78 @@ +--- +title: Introduction to AOE Clouds +category: Tutorials +tags: + - intermediate +mentions: + - Sprunkles137 + - MedicalJewel105 +--- + +**Area-of-effect clouds**, also known as AOE clouds and `minecraft:area_effect_cloud` internally, are special entities that have many unique properties. Normally these entities are created through throwing lingering potions, but with structures and some NBT editing magic we can manipulate them in very powerful ways for map-making. + +## Overview + +Area-of-effect clouds have several special features we can take advantage of: + +- As [dummy entities](/entities/dummy-entities), they are highly performant and barely affect framerate, and they are also completely static and have no collision with the world. This makes them perfect for situations around players or where precise positioning is important. +- It does not send the client updates. Once it spawns in, it will visually appear to be frozen in place until it despawns. However, it can still be moved around through commands just fine. +- It can apply any potion effect in highly configurable ways. The duration can be set down to the tick, as well as whether or not the effect is ambient, or displays on the screen, if it emits particles, etc. +- Entities with a runtime identifier of `minecraft:area_effect_cloud` inherit these same properties. + +## Method 1: Projectile Component + +The projectile component supports spawning in area-of-effect clouds on hit. Minecraft uses this to spawn in AOE clouds from lingering potions. + +[Projectiles Documentation](/documentation/projectiles#spawn-aoe-cloud) + +## Method 2: NBT Editing + +Another way to spawn in these area-of-effect clouds is through structure files. This grants us finer control over the potion effects the cloud can have. So, our first order of business is getting a means to edit these structures. + +### NBT Editors + +One of the following NBT editors are recommended: + +- [NBT Studio](https://github.com/tryashtar/nbt-studio) (a standalone program by tryashtar) +- [NBT Viewer](https://marketplace.visualstudio.com/items?itemName=Misodee.vscode-nbt) (a Visual Studio Code extension by Misode) + +### Structure file + +For convenience, this article contains a premade structure file you can download and use. Inside is an AOE cloud that exists for the maximum possible time. + +Download MCSTRUCTURE + +Refer to this article for editing structure files: [.mcstructure](/nbt/mcstructure) + +### NBT Format + +| Tag | Type | Description | +| --------------------- | ------- | ----------------- | +| Duration | Integer | How long the cloud exists for before expiring, in ticks. | +| DurationOnUse | Integer | How much the duration should change when effects are applied. | +| InitialRadius | Float | The size of this cloud's radius when created. | +| ParticleColor | Integer | The color of the particle effect, in decimal. | +| ParticleId | Integer | The particle effect this cloud emits. 0 emits no particles. | +| PotionId | Short | This cloud's potion effect ID when created. Has no effect. | +| RadiusChangeOnPickup | Float | Unknown. | +| RadiusOnUse | Float | How much the radius should change when effects are applied. | +| RadiusPerTick | Float | How much the radius changes every tick. | +| ReapplicationDelay | Integer | The interval at which effects can be applied, in ticks. | +| mobEffects | List | Describes what potion effects should be applied. | + +Below are the parameters for the `mobEffects` tag. + +| Tag | Type | Description | +| ------------------------------- | ------- | --------------- | +| Ambient | Byte | Defines whether this effect's particles should be translucent or not. | +| Amplifier | Byte | The strength of this potion effect. | +| DisplayOnScreenTextureAnimation | Byte | Unknown. | +| Duration | Integer | The amount of time this effect is applied for, in ticks. | +| DurationEasy | Integer | Unknown, seemingly unused. | +| DurationNormal | Integer | Unknown, seemingly unused. | +| DurationHard | Integer | Unknown, seemingly unused. | +| Id | Byte | The potion effect ID for this effect. | +| ShowParticles | Byte | Defines whether this effect's particles should appear or not. | diff --git a/docs/wiki/3-实体/2-巧思案例/invulnerable-entities.md b/docs/wiki/3-实体/2-巧思案例/invulnerable-entities.md new file mode 100644 index 00000000..dddee5eb --- /dev/null +++ b/docs/wiki/3-实体/2-巧思案例/invulnerable-entities.md @@ -0,0 +1,67 @@ +--- +title: Invulnerable Entities +category: Tutorials +tags: + - beginner +mentions: + - SirLich + - Joelant05 + - solvedDev + - MedicalJewel105 +--- + +## Using Damage Sensor + +The best and most flexible way of disabling damage for entities is using the `minecraft:damage_sensor` component. The component allows us to use `filters` to determine which damage sources can damage our entity. + +The best way to learn about this component is by using the vanilla examples for damage sensor or reading [documentation](https://bedrock.dev/docs/stable/Entities#minecraft:damage_sensor) + +### Completely Invulnerable Entity + +BP/entities/entity.json#minecraft:entity/components + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "all", + "deals_damage": false + } +} +``` + +### Disable Damage from Player + +BP/entities/entity.json#minecraft:entity/components + +```json +"minecraft:damage_sensor": { + "triggers": { + "on_damage": { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + } + }, + "deals_damage": false + } +} +``` + +## Min Health + +The `min` property in the `minecraft:health` component allows us to make invincible entities that cannot die. This includes when using `/kill @e`. This is not considered a good solution because entities like this are hard to get rid of. + +If you choose to use this component, please make sure you have another method for killing the entity. Triggering `minecraft:instant_despawn` from something like an environment sensor, a timer, or an interact is a good solution. You also can call it using `/event`. + +BP/entities/entity.json#minecraft:entity/components + +```json +"minecraft:health": { + "value": 1, + "max": 1, + "min": 1 +} +``` + +Note that setting it to 0 breaks some death and spawn animations/effects. diff --git a/docs/wiki/3-实体/2-巧思案例/look-at-entity.md b/docs/wiki/3-实体/2-巧思案例/look-at-entity.md new file mode 100644 index 00000000..0213cef7 --- /dev/null +++ b/docs/wiki/3-实体/2-巧思案例/look-at-entity.md @@ -0,0 +1,44 @@ +--- +title: Look at Entity +category: Tutorials +tags: + - intermediate +mentions: + - shanewolf38 + - MedicalJewel105 + - TheItsNameless + - SmokeyStack +--- + +The following tutorial provides a resource pack method to detect when the player is looking at an entity. The code below must be placed inside the entity that will be looked at by the player, and will provide a variable `v.look_at_entity` which returns true when the entity is being looked at. + +## variable + +RP/entity/mob.entity.json + +```json +"pre_animation": [ + "v.look_at_entity = Math.abs(Math.abs(q.rotation_to_camera(1) - q.camera_rotation(1)) - 180) < (20 / q.distance_from_camera) && Math.abs(q.rotation_to_camera(0) + q.camera_rotation(0)) < (10 / q.distance_from_camera);" +], +``` + +:::tip +Because the query `q.rotation_to_camera` is based at the origin of the entity (their feet), the vertical detection range will be based around the bottom of the entity. The code below creates a modified variable for the vertical angle which takes a positional offset into account to allow the vertical detection range to be based around the center of the entity. +::: + +RP/entity/mob.entity.json + +```json +"pre_animation": [ + "v.rotation_to_camera_0 = -Math.atan2(-q.distance_from_camera * Math.sin(q.rotation_to_camera(0)) - 1, q.distance_from_camera * Math.cos(q.rotation_to_camera(0)));", + "v.look_at_entity = Math.abs(Math.abs(q.rotation_to_camera(1) - q.camera_rotation(1)) - 180) < (20 / q.distance_from_camera) && Math.abs(v.rotation_to_camera_0 + q.camera_rotation(0)) < (60 / q.distance_from_camera);" +], +``` + +## Modifying + +The provided code is very accurate for the standard Minecraft mob size of 1 block wide and 2 blocks tall, but for entities of different sizes the parameters should be changed. The `- 1` controls the positional offset of the center of the mob (- is upward, + is downward), the `20` controls the horizontal angle sensitivity, and the `60` controls the vertical angle sensitivity. + +## Explanation + +The variable detects when the player is looking at the entity by checking if the rotation angle required for the entity to look at the player is opposite the rotation angle required for the player to look at the entity. The horizontal and vertical angle sensitivity are modified by the distance of the entity from the camera to maintain accuracy. diff --git a/docs/wiki/3-实体/2-巧思案例/sleeping-entities.md b/docs/wiki/3-实体/2-巧思案例/sleeping-entities.md new file mode 100644 index 00000000..888ca6ef --- /dev/null +++ b/docs/wiki/3-实体/2-巧思案例/sleeping-entities.md @@ -0,0 +1,396 @@ +--- +title: Sleeping Entities +category: Tutorials +tags: + - intermediate +mentions: + - MedicalJewel105 + - SirLich +--- + +This tutorial will explain how to make entity sleep. + +## Sleeping in beds + +This behavior is inspired from villagers. + +### Features + +- Entity sleeps during the night and wakes up at day time. +- Interaction with entity will wake it up and after a while it goes sleeping again. +- If entity is hurt, it wakes up. + +### Behavior Pack + +In this section behavior pack components will be discussed. + +#### Components + +Let's start with some basic components that you need to add to your entity. + +BP/entities/sleeping_entity.json#components + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "inhabitant", + "can_find_poi": true +} +``` + +Undocumented, needed for entity to be able to sleep. + +BP/entities/sleeping_entity.json#components + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "test": "is_daytime", + "value": false + }, + "event": "sleep" + } + ] +} +``` + +This component is required for entity understand when to sleep. +It runs event if it isn't day time. + +:::warning +You need some basic navigation components for your entity be able to move to bed. +::: + +#### Component Groups + +Now you need some component groups for your entity with some components. + +BP/entities/sleeping_entity.json#component_groups + +```json +"sleeping": { + "minecraft:behavior.sleep": { + "priority": 0, + "goal_radius": 1.5, + "speed_multiplier": 1.25, + "sleep_collider_height": 0.3, + "sleep_collider_width": 1, + "sleep_y_offset": 0.6, + "timeout_cooldown": 10 + }, + "minecraft:damage_sensor": { + "triggers": { + "on_damage": { + "event": "wake_up" + } + } + }, + "minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "test": "is_daytime", + "value": true + }, + "event": "wake_up" + } + ] + }, + "minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + } + ] + }, + "event": "woken_up" + } + } + ] + } +} +``` + +- `minecraft:behavior.sleep` + +Determines sleep details, priority needs to be at `0` (the biggest weight). + +- `minecraft:damage_sensor`` + +Add it if you want your entity wake up if it is being attacked. + +- `minecraft:environment_sensor` + +Runs `wake_up` event when it is day time. + +- `minecraft:interact` + +This makes player to be able wake up entity without hurting it. + +BP/entities/sleeping_entity.json#component_groups + +```json +"sleep_timer": { + "minecraft:timer": { + "time": 15, + "time_down_event": { + "event": "sleep_again" + } + } +} +``` + +This component group is required for entity to fall asleep again (with some delay) after it was woken up. + +#### Events + +Here you will find all events that you need. +I don't really think it needs explanation. + +BP/entities/sleeping_entity.json#events + +```json +"sleep": { + "add": { + "component_groups": [ + "sleeping" + ] + } +}, +"wake_up": { + "remove": { + "component_groups": [ + "sleeping" + ] + } +}, +"woken_up": { + "remove": { + "component_groups": [ + "sleeping" + ] + }, + "add": { + "component_groups": [ + "sleep_timer" + ] + } +}, +"sleep_again": { + "add": { + "component_groups": [ + "sleeping" + ] + }, + "remove": { + "component_groups": [ + "sleep_timer" + ] + } +} +``` + +### Resource Pack + +Don't forget that you need to add sleeping animation and controller for it to your entity! + +#### Animation + +Just copy/paste it. + +RP/animations/sleeping_entity.animation.json + +```json +{ + "format_version": "1.8.0", + "animations": { + "animation.sleeping_entity.sleep": { + "loop": "hold_on_last_frame", + "animation_length": 0.5, + "bones": { + "body": { + "rotation": { + "0.0": [0, 0, 0], + "0.5": [-90, 0, 0] + }, + "position": [0, 2, -15] + } + } + } + } +} +``` + +#### Animation Controller + +Again just copy/paste it if you need. + +RP/animations_controllers/ac.sleeping_entity.sleep.json + +```json +{ + "format_version": "1.10.0", + "animation_controllers": { + "controller.animation.sleeping_entity.sleep": { + "initial_state": "default", + "states": { + "default": { + "transitions": [ + { + "sleep": "q.is_sleeping" + } + ] + }, + "sleep": { + "animations": ["sleeping"], + "transitions": [ + { + "default": "!q.is_sleeping" + } + ] + } + } + } + } +} +``` + +Note that you will need to define animation in client entity like this: + +`"sleeping": "animation.sleeping_entity.sleep"` + +### Result + +![](/assets/images/tutorials/sleeping-entities/result.png) + +## Taking naps + +This behavior is inspired from foxes. + +### Features + +- Entity sleeps when feels safe, far from mobs or when the weather is not a thunderstorm. +- Approaching the entity will make it wake up unless it's a trusted or sneaking player, or it's another entity with the family group `sleeping_entity`. +- If entity is hurt, it wakes up. + +### Behavior Pack + +In this section behavior pack components will be discussed. + +#### Components + +For this behavior you will need only one component: + +BP/entities/sleeping_entity.json#components + +```json +"minecraft:behavior.nap": { + "priority": 8, + "cooldown_min": 2.0, + "cooldown_max": 7.0, + "mob_detect_dist": 12.0, + "mob_detect_height": 6.0, + "can_nap_filters": { + "all_of": [ + { + "test": "in_water", + "subject": "self", + "operator": "==", + "value": false + }, + { + "test": "on_ground", + "subject": "self", + "operator": "==", + "value": true + }, + { + "test": "is_underground", + "subject": "self", + "operator": "==", + "value": true + }, + { + "test": "weather_at_position", + "subject": "self", + "operator": "!=", + "value": "thunderstorm" + } + ] + }, + "wake_mob_exceptions": { + "any_of": [ + { + "test": "trusts", + "subject": "other", + "operator": "==", + "value": true + }, + { + "test": "is_family", + "subject": "other", + "operator": "==", + "value": "sleeping_entity" + }, + { + "test": "is_sneaking", + "subject": "other", + "operator": "==", + "value": true + } + ] + } +} +``` + +If you want to also use the trusting mechanic, add: + +BP/entities/sleeping_entity.json#components + +```json +"minecraft:trust": {} +``` + +### Resource Pack + +In our resource pack you can run an animation when entity starts to sleep. + +RP/animations_controllers/ac.sleeping_entity.sleep.json + +```json +{ + "format_version": "1.10.0", + "animation_controllers": { + "controller.animation.sleeping_entity.sleep": { + "initial_state": "default", + "states": { + "default": { + "transitions": [ + { + "sleep": "q.is_sleeping" + } + ] + }, + "sleep": { + "animations": ["sleeping"], + "transitions": [ + { + "default": "!q.is_sleeping" + } + ] + } + } + } + } +} +``` + +The last thing, you will have to create and register a sleeping animation for you entity. If you don't know how to do it check out the [BlockBench page](/guide/blockbench.html#animating). \ No newline at end of file diff --git a/docs/wiki/3-实体/2-巧思案例/solid-entities.md b/docs/wiki/3-实体/2-巧思案例/solid-entities.md new file mode 100644 index 00000000..8c900006 --- /dev/null +++ b/docs/wiki/3-实体/2-巧思案例/solid-entities.md @@ -0,0 +1,90 @@ +--- +title: Solid Entities +category: Tutorials +tags: + - recipe + - intermediate +mentions: + - SirLich + - Joelant05 + - Chikorita-Lover + - Luthorius + - MedicalJewel105 + - ThomasOrs +--- + +Solid entities are entities that the player can bump into, step on, or otherwise physically interact with without passing through. Entities like this have many uses, such as emulating blocks. + +This page will discuss some of the ways that solid entities can be created. + +Not all techniques are ideal for all scenarios. Experiment, and figure out what works best for you. + +## Runtime Identifiers + +[Runtime identifiers](/entities/runtime-identifier) can be used to achieve solid entities, but currently only 2, each with a specific shape, and their own side effects. Neither collision shapes are possible to change or scale. + +### Boat + +BP/entities/entity_name.json + +```json +{ + "format_version": "1.16.0", + "minecraft:entity": { + "description": { + "identifier": "wiki:solid_entity", + "runtime_identifier": "minecraft:boat" + . . . + } + } +} +``` + +- Boat-shaped solid collision +- Certain other boat-like effects + +### Shulker + +BP/entities/entity_name.json + +```json +{ + "format_version": "1.16.0", + "minecraft:entity": { + "description": { + "identifier": "wiki:solid_entity", + "runtime_identifier": "minecraft:shulker" + . . . + } + } +} +``` + +- 1x1 block sized solid collision. +- Sticks to block grid. +- Teleports randomly when supporting block removed. + +## minecraft:is_stackable + +Add `minecraft:is_stackable` to your entity you want to be treated as being solid. +**Note:** This requires editing `player.json` if you wish the entity to be solid for the player. + +`"minecraft:is_stackable": {}` + +You will also need to add `minecraft:push_through` and set its `value` parameter to 1. + +`"minecraft:push_through": 1` + +(they should both go in `components`) + +## Faking it with blocks + +In some scenarios, it's probably better to `/setblock` or `/fill` to place barrier blocks, either statically or dynamically. There needs to be both a way of placing the barriers, and removing them. + +`/fill ~ ~ ~ ~ ~1 ~ barrier 0 replace air` +Places barriers in a 1x1x2 area. + +`/fill ~1 ~1 ~1 ~-1 ~-1 ~-1 air 0 replace barrier` +Removes barriers within a 3x3x3 area. + +These [commands](/animation-controllers/entity-commands) will have to be triggering at a constant rate, for consistency. They can either be triggered through entity components, or animation controllers. diff --git a/docs/wiki/3-实体/2-巧思案例/timers.md b/docs/wiki/3-实体/2-巧思案例/timers.md new file mode 100644 index 00000000..3f679e41 --- /dev/null +++ b/docs/wiki/3-实体/2-巧思案例/timers.md @@ -0,0 +1,320 @@ +--- +title: Entity Timers +category: Tutorials +tags: + - intermediate +mentions: + - SirLich + - Joelant05 + - MedicalJewel105 + - aexer0e + - Justash01 + - TheItsNameless + - zheaEvyline +--- + +Time-based interactions are extremely useful tools for map making. This article hopes to provide an extensive list which details the many ways which timers can be made. For convenience, this page will be split up into two main sections: component-based timers and animation-based timers. Each has their own advantages and disadvantages, which will be outlined in their respective sections. +You might also find useful [Scoreboard Timers](/commands/scoreboard-timers). + +## Component-based timers + +Component-based timers are done inside the entity.json file of the behavior pack. They have the distinct advantage of persisting upon the entity being reloaded, but are limited by the number of timing components (duplicate components replace each other, which means defining multiple timers using the `minecraft:timer` component isn't possible). + +### minecraft:timer + +This is the simplest but most effective component for triggering events after an elapsed amount of time. The component [minecraft:timer](https://bedrock.dev/docs/1.14.0.0/1.14.30.2/Entities#minecraft:timer) provides three main ways in which the amount of time before the event can be defined: + +- Exact timing: an exact amount of time after which the event will fire is defined (e.g. 3.4 seconds) +- Random interval: an interval is defined in which the event will fire at a random time inside that interval (e.g. between 3 to 5 seconds) +- Weighted random choice: a number of times are defined and assigned weights, one of which will be chosen for the event to fire (e.g. a 20% chance for the event to fire at 5 seconds, and an 80% chance to fire at 20 seconds) + +In the vanilla Behavior Pack, this component is used in all kinds of circumstances. For example: + +- The dolphin can only spend 20 seconds on land before it dries out +- Bees will perish between 10 and 60 seconds after stinging +- The wandering trader will only stay for either 2400 or 3600 seconds + +A simple example which triggers an event after 5.6 seconds: + + + +```json +"minecraft:timer": { + "time": 5.6, + "time_down_event": { + "event": "wiki:my_event" + } +} +``` + +A more complex example which triggers an event after a randomized amount of delay using weighted values: + + + +```json +"minecraft:timer": { + "looping": false, //true will fires event after every execution, false will fire event only once. + "random_time_choices": [ + { + "weight": 25, + "value": 0.5 //Half a second of delay + }, + { + "weight": 25, + "value": 10 //Ten seconds of delay + }, + { + "weight": 25, + "value": 30 //Thirty seconds of delay + }, + { + "weight": 25, + "value": 120 //2 minutes of delay + } + ], + "time_down_event": { + "event": "wiki:event", + "target": "self" + } +} +``` + +A particularly useful way to handle time events is using a single, looping `minecraft:timer` component and processing the events on each tick (or however often you decide to fire the timer). This is done by using the `randomize` parameter in events, where a weight may be used determine how often other events will be run. This can get you a lot of extra mileage out of a single timer component. + + + +```json +"wiki:do_event": { + "randomize": [ + { + "weight": 1, + "add": { + "component_groups": [ + "wiki:my_event" + ] + } + }, + { + "weight": 5, + "add": { + "component_groups": [ + "wiki:my_more_frequent_event" + ] + } + }, + { + "weight": 50 //Fires nothing + } + ] +} +``` + +### minecraft:environment_sensor + +Another component ([minecraft:environment_sensor](https://bedrock.dev/docs/stable/Entities#minecraft:environment_sensor)) which can be very useful for time-based events is `minecraft:environment_sensor`. Pairing this sensor with the `hourly_clock_time` or `clock_time` filters can be used to trigger events based off in-game time. + +Here is an example which is used to fire an event 800 ticks after the start of the day (valid range is 0 to 24000): + + + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "test": "hourly_clock_time", + "operator": "=", + "value": 800 + }, + "event": "wiki:my_daily_event" + } + ] +} +``` + +### minecraft:ageable + +If this component ([minecraft:ageable](https://bedrock.dev/docs/stable/Entities#minecraft:ageable)) is not being used in the entity's behavior for a different purpose, it can be useful as an additional timer. It's important to note that it requires the `minecraft:is_baby` component to be defined in order to function. + +Here is an example which fires an event after four seconds: + + + +```json +"minecraft:is_baby": {}, +"minecraft:ageable": { + "duration": 4, + "grow_up": { + "event": "wiki:my_other_event", + "target": "self" + } +} +``` + +### Other dummy-timers: + +Taking a peak at the docs suggest there are other components which can also can be used for timing. Essentially, you are looking for any component with a "time down event" or a "duration". + +Non-exhaustive list of promising examples: + +- `minecraft:angry` (requires the entity to have a target, time must be an integer) +- `minecraft.behavior.hide` +- `minecraft:behavior.celebrate` + +## Animation-based timers + +Behavior pack animations are an extremely powerful tool for triggering time-based events. They have the distinct advantage of providing an "infinite" amount of timers, but are restarted upon an entity being reloaded (leaving and rejoining the world or the chunk containing the entity unloading will cause the timer to restart when the entity reloads). + +Animations function differently in behavior packs than in resource packs. If you are unfamiliar with how they operate, it is recommended to learn more about them by checking out the official documentation or the other pages on this wiki. + +### Simple timers + +By triggering animations from an animation controller or directly from the scripts section, you can execute specific events, commands, or molang expressions in a timed-sequence, called a timeline. + +You can set up timelines like this: + + + +```json +{ + "format_version": "1.8.0", + "animations": { + "animation.command.example_timeline": { + "timeline": { + "0.0": "/say this will trigger instantly", + "3.0": "/say this will trigger after 3 seconds" + }, + "animation_length": 3.1 + }, + "animation.command.example_timeline_2": { + "timeline": { + "100": "/say this will trigger after 100 seconds", + "0.0": [ + "/say you can trigger multiple events at once", + "/say by using timelines." + ], + "55.55": "/say this will trigger after 55.55 seconds." + }, + "animation_length": 100.1 + } + } +} +``` + +### Random interval + +A very useful feature of the timer component is its ability to define a random interval in which the event will be triggered. This functionality can be replicated using animations and a controller. Below is an example of an animation triggered by adding the `minecraft:is_sheared` component to an entity which randomly fires an event between 2 to 7 seconds after activation. Animation and controller version 1.10.0. + + + +```json +"controller.animation.shanewolf.random_interval": { + "initial_state": "inactive", + "states": { + "inactive": { + "transitions": [ + { + "active": "q.is_sheared" + } + ] + }, + "active": { + "on_entry": [ + "v.random_interval = math.random(2, 7);", + "/say random interval started" + ], + "animations": [ + "wiki:animate_interval" + ], + "transitions": [ + { + "inactive": "q.anim_time >= v.random_interval" + } + ], + "on_exit": [ + "@s wiki:stop_random_interval", + "/say random interval finished" + ] + } + } +} +``` + + + +```json +"animation.shanewolf.random_interval": { + "animation_length": 100 +} +``` + +Explanation: Upon entry into the state beginning the animation, a variable is given a random value between 2 and 7. The animation finishes when the current animation time is greater than or equal to the value of this v. + +**Notes**: +- The animation length can be set to any value greater than the maximum end of the time range (100 is used as a general template) +- math.random(a, b) is used to trigger an event in the range [a, b] +- math.floor(math.random(a, b.99)) may be used to end the timer at integer values (0.99 must be added to b) +- Any events or commands to run when the animation is finished are put inside on_exit + +### Weighted random choice + +Another useful feature of the timer component is its ability to trigger events at a time determined by a weighted list of values. This functionality can also be replicated using animations and a controller. Below is an example of an animation triggered by adding the `minecraft:is_charged` component to an entity which randomly fires an event at either 2, 5, or 9 seconds with weights of 30, 60, and 10, respectively. Animation and controller version 1.10.0. + + + +```json +"controller.animation.shanewolf.random_choices": { + "initial_state": "inactive", + "states": { + "inactive": { + "transitions": [ + { + "active": "q.is_powered" + } + ] + }, + "active": { + "on_entry": [ + "v.random_choices = math.random(0, 100);", + "/say random interval started" + ], + "animations": [ + "wiki:animate_choices" + ], + "transitions": [ + { + "inactive": "q.anim_time >= 2.0 && v.random_choices < 30" + }, + { + "inactive": "q.anim_time >= 5.0 && v.random_choices < 90" + }, + { + "inactive": "q.anim_time >= 9.0 && v.random_choices <= 100" + } + ], + "on_exit": [ + "@s wiki:stop_random_choices", + "/say random choices finished" + ] + } + } +} +``` + + + +```json +"animation.shanewolf.random_choices": { + "animation_length": 100 +} +``` + +Explanation: Upon entry into the state beginning the animation, a variable is given a random value between 0 and 100 (sum of the weights). The transitions are laid out with the list of values ordered from the smallest time to the largest time. This is done so multiple && operators are not required in the latter transitions to define the variable's range (the query for the smallest times return true first and have their weights checked before the others--flipping 2 and 5 would result in 2 mistakenly having a weight of 90 instead of 30). The animation finishes when the current animation time is greater than or equal to a time in the list and the value of the random variable falls within that time's defined weight range. + +**Notes**: +- The animation length can be set to any value greater than the maximum end of the time range (100 is used as a general template) +- For this particular format to work, order the list of valid times from smallest to largest +- To assign a weight to a time in the list, add the weight to the value the randomized variable must be less than in the list's previous entry (e.g. 5 seconds has a weight of 90 - 30 = 60) +- Any events or commands to run when the animation is finished are put inside on_exit + +Hopefully this spread some light on the subject of handling time in Minecraft Bedrock! As shown above, there are many possible ways it can be done, each with their own pros and cons. If you have any other useful methods for creating time-based events, please [contribute to the wiki](/contribute)! diff --git a/docs/wiki/3-实体/2-巧思案例/village-mechanic.md b/docs/wiki/3-实体/2-巧思案例/village-mechanic.md new file mode 100644 index 00000000..527268c2 --- /dev/null +++ b/docs/wiki/3-实体/2-巧思案例/village-mechanic.md @@ -0,0 +1,357 @@ +--- +title: Village Mechanic +category: Tutorials +mentions: + - AeroForta + - MedicalJewel105 + - stirante + - SmokeyStack + - SirLich + - Ciosciaa + - ThomasOrs +--- + +This article is for anyone who wants to try imitate the village mechanic for their entities + +## Navigation Behavior + +First let's start with some basic navigation behavior. + +BP/entities/custom_villager.json#components + +```json +"minecraft:preferred_path":{ + "max_fall_blocks":1, + "jump_cost":5, + "default_block_cost":1.5, + "preferred_path_blocks":[ + { + "cost":0, + "blocks":[ + "grass_path" + ] + }, + { + "cost":1, + "blocks":[ + "cobblestone", + "stone" + ] + }, + { + "cost":50, + "blocks":[ + "bed", + "lectern" + ] + } + ] +} +``` + +Allows entity to do random walk. + +BP/entities/custom_villager.json#components + +```json +"minecraft:behavior.random_stroll":{ + "priority":9, + "speed_multiplier":0.55, + "xz_dist":10, + "y_dist":5 +} +``` + +Make entity return to inside dwelling bound, in this case inside a village border. Requiring minecraft:dweller component that will be explained below. + +BP/entities/custom_villager.json#components + +```json +"minecraft:behavior.move_towards_dwelling_restriction": { + "priority": 4, + "speed_multiplier": 1.0 +} +``` + +Makes entity navigate around a village by creating a path to patrol. Used by Iron Golem. + +BP/entities/custom_villager.json#components + +```json +"minecraft:behavior.move_through_village": { + "priority": 3, + "speed_multiplier": 0.6, + "only_at_night": true +} +``` + +Allows entity to enter a building and also take shelter when raining. Needs open door capabilities. + +BP/entities/custom_villager.json#components + +```json +"minecraft:behavior.move_indoors":{ + "priority":5 +} +``` + +Makes entity stay indoors while sun is down. + +BP/entities/custom_villager.json#components + +```json +"minecraft:behavior.restrict_open_door":{ + "priority": 5 +} +``` + +Use in pair with: + +BP/entities/custom_villager.json#components + +```json +"minecraft:annotation.open_door":{ + "priority": 5 +} +``` + +BP/entities/custom_villager.json#components + +```json +"minecraft:navigation.walk":{ + "can_pass_doors":true, + "can_open_doors":true +} +``` + +BP/entities/custom_villager.json#components + +```json + "minecraft:behavior.open_door":{ + "priority":6, + "close_door_after":true +} +``` + +## Main Behavior + +BP/entities/custom_villager.json#components + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "inhabitant", + "preferred_profession": "farmer", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": true, + "can_migrate": true, + "first_founding_reward": 5 +} +``` + +- `dweller_role: inhabitant` +Allows entity claim a bed and bell. +`minecraft:behavior.sleep` needed. +- `preferred_profession: farmer` +Optional for `minecraft:behavior.work` +- `can_find_poi` +Add it so entity is able to find point of interest. +Known POI types: + +``` +bed +jobsite +meeting_area +``` + +- `can_migrate` +Defines if entity can migrate from one village to another or not. + +### Sleep + +You can find out how to make your entity sleep [here](/entities/sleeping-entities). + +### Work + +Requires "dweller_role" set to be "inhabitant" also if "preferred_profession" doesn't exist the entity will try to move to the closest any job site. + + + +```json +"minecraft:behavior.work": { + "priority": 4, + "active_time": 250, + "speed_multiplier": 0.5, + "goal_cooldown": 200, + "sound_delay_min": 100, + "sound_delay_max": 200, + "can_work_in_rain": false, + "work_in_rain_tolerance": 1000, + "on_arrival": { + "event": "minecraft:resupply_trades", + "target": "self" + } +} +``` + + +### Gathering + +Allows the entity to gather. +Requires "dweller_role" set to be "inhabitant". + +```json +"minecraft:behavior.mingle": { + "priority": 4, + "speed_multiplier": 0.5, + "duration": 30, + "cooldown_time": 10, + "mingle_partner_type": "my:custom_entity", + "mingle_distance": 2.0 +} +``` + + +### Scheduler + +Now you know everything about needed mechanic, let's try to put all of this together in "minecraft:scheduler" +First let's do something simple. +Put work behavior in component group work like this: + + + +```json +"component_groups":{ + "work_schedule":{ + "minecraft:behavior.work":{ + "priority":4, + "active_time":250, + "speed_multiplier":0.5, + "goal_cooldown":200, + "sound_delay_min":100, + "sound_delay_max":200, + "can_work_in_rain":true, + "work_in_rain_tolerance":1000, + "on_arrival":{ + "event":"minecraft:resupply_trades", + "target":"self" + } + } + }, + "gather_schedule":{ + "minecraft:behavior.mingle":{ + "priority": 5, + "speed_multiplier": 0.8, + "cooldown_time":10.0, + "duration": 30.0, + "mingle_dist": 1.5, + "mingle_partner_type": "my:custom_entity" + } + } +} +``` + +Next, make your entity work. + + + +```json +"minecraft:scheduler":{ + "min_delay_secs":0, + "max_delay_secs":10, + "scheduled_events":[ + { + "filters":{ + "all_of":[ + { + "test":"hourly_clock_time", + "operator":">=", + "value":0 //Morning + }, + { + "test":"hourly_clock_time", + "operator":"<", + "value":12000 //Evening + } + ] + }, + "event":"work" + }, + { + "filters":{ + "all_of":[ + { + "test":"hourly_clock_time", + "operator":">=", + "value":21000 + }, + { + "test":"hourly_clock_time", + "operator":"<", + "value":24000 + } + ] + }, + "event":"gather" + } + ] +} +``` + +The events section looks something like this: + + + +```json +"events":{ + "work":{ + "remove":{ + "component_groups":[ + "gather_schedule" + ] + }, + "add":{ + "component_groups":[ + "work_schedule" + ] + } + }, + "gather":{ + "remove":{ + "component_groups":[ + "work_schedule" + ] + }, + "add":{ + "component_groups":[ + "gather_schedule" + ] + } + } +} +``` + +Open your world, spawn entity then put a bed and you should see green particle. + +## Other Behavior + +All of this is usable by custom entities: +- `minecraft:behavior.move_to_village` +Used by Pillager this may keep the entity to stay in the village. +- `minecraft:behavior.stroll_towards_village` +Used by fox to search a village and go there. +- `minecraft:behavior.inspect_bookshelf` +Used by librarian villager allows an entity to look at and inspect a bookshelf. +- `minecraft:behavior.explore_outskirts` +Allows entity to explore beyond the bounds of village (use schedule and component group to keep the entity return to the village). +- `minecraft:behavior.defend_village_target` +Use this on melee attack. Ranged attack can accidentally shoot any entity with inhabitant dwelling role. + +All of this can be used by custom entities and have relation to villager or village: +| Behavior | Uses | Note | +| ------------------------------------------ | -------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | +| `minecraft:behavior.defend_village_target` | Allows entity to attack other entity that hurt the entity who had "dweller_role": "inhabitant". | Recommended to use only on entities with melee attack. | +| `minecraft:behavior.hide` | Used by villager to hide and stay at defined POI. | Currently, there is no documentation for the POI type that's why I recommend not to change `"poi_type": "bed"`. | +| `minecraft:behavior.move_to_village` | Used by Illager and also witch. Allows entity to travel to a random x,y,z coordinate in a village. | - | +| `"minecraft:behavior.nap"` | Used by Fox to take a nap. | Similar with sleep but offers more flexibility also has built-in wake up system by detecting specific entity. | diff --git a/docs/wiki/3-实体/3-文档/dummy-components.md b/docs/wiki/3-实体/3-文档/dummy-components.md new file mode 100644 index 00000000..d5ea54fa --- /dev/null +++ b/docs/wiki/3-实体/3-文档/dummy-components.md @@ -0,0 +1,80 @@ +--- +title: 虚拟组件 +category: 文档 +mentions: + - SirLich + - jigarbov + - MedicalJewel105 + - StealthyExpertX + - TheItsNameless +--- + +# 虚拟组件 + + + +:::warning 弃用警告 + +'虚拟组件'是一个旧版概念,现已被[实体属性](https://learn.microsoft.com/en-us/minecraft/creator/documents/introductiontoentityproperties)取代。建议尽可能使用实体属性代替。 +::: + +虚拟组件是仅用于数据存储的"无功能"组件。它们本身**不会**产生任何实际效果,需要配合其他机制才能发挥作用。这类组件的主要价值在于可将数据存储在实体上,并通过Molang查询来驱动图形/游戏机制。 + +典型案例包括 `variant`(变种)和 `mark_variant`(标记变种)。这些组件接受整数值设置,在原版资源包中用于定义猫和马匹的贴图选择。另一个典型案例是 `is_tamed`(驯服状态),用于控制马匹能否被骑乘。 + +虚拟组件的优势在于能够将数据与实体绑定,并通过Molang查询调用这些信息。 + +## 整型虚拟组件 + +整型组件存储整数值(例如1、10、1423),可使用Molang查询进行读取,是最常用的虚拟组件类型。 + +## 布尔型虚拟组件 + +布尔型组件存储单一状态信息,包括 `True`(真)和 `False`(假)。以 `is_tamed` 为例,组件存在表示为 `True`(已驯服),不存在则为 `False`(未驯服)。 + +## 组件列表 + +| 类型 | 查询语句 | 组件名称 | 备注 | +| --------- | ------------------------------------------------------------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **整型** | q.variant | minecraft:variant | | +| **整型** | q.mark_variant | minecraft:mark_variant | | +| **整型** | q.skin_id | minecraft:skin_id | | +| **整型\*** | 使用类似 `"test": "is_color"` 的过滤器,下方提供颜色列表 | minecraft:color | 同时在材质系统中设置颜色 | +| **整型\*** | 无对应过滤器语法,可使用 `"has_component"` | minecraft:color2 | 同时在材质系统中设置颜色 | +| 布尔型 | q.is_illager_captain | minecraft:is_illager_captain | | +| 布尔型 | q.is_baby | minecraft:is_baby | 禁用`minecraft:breedable`组件功能 | +| 布尔型 | q.is_sheared | minecraft:is_sheared | | +| 布尔型 | q.is_saddled | minecraft:is_saddled | | +| 布尔型 | q.is_tamed | minecraft:is_tamed | | +| 布尔型 | q.is_chested | minecraft:is_chested | 死亡时会掉落储存箱 | +| 布尔型 | q.is_powered | minecraft:is_charged | | +| 布尔型 | q.is_stunned | minecraft:is_stunned | | +| 布尔型 | q.can_climb | minecraft:can_climb | 允许实体攀爬梯子 | +| 布尔型 | q.can_fly | minecraft:can_fly | 标记实体具有飞行能力,路径查找器将不限于下方有固体方块的位置 | +| 布尔型 | q.can_power_jump | minecraft:can_power_jump | 允许实体执行强力跳跃(如原版马匹动作) | +| 布尔型 | q.is_ignited | minecraft:is_ignited | | +| 布尔型 | q.out_of_control | minecraft:out_of_control | 新版功能,用于处理船体硬编码运动/粒子效果,Molang q查询可安全 | +| 布尔型 | q.has_any_family('monster') | minecraft:type_family | 可检测指定Family类型(如'monster')返回布尔值 + +### color与color2组件颜色对照表 + +::: code-group +```json [颜色代码] +- black +- blue +- brown +- cyan +- gray +- green +- light_blue +- light_green +- magenta +- orange +- pink +- purple +- red +- silver +- white +- yellow +``` +::: \ No newline at end of file diff --git a/docs/wiki/3-实体/3-文档/non-mob-runtime-identifiers.md b/docs/wiki/3-实体/3-文档/non-mob-runtime-identifiers.md new file mode 100644 index 00000000..155b25ff --- /dev/null +++ b/docs/wiki/3-实体/3-文档/non-mob-runtime-identifiers.md @@ -0,0 +1,140 @@ +--- +title: 非生物运行时标识符 +category: 文档 +mentions: + - Ciosciaa + - SmokeyStack + - ThomasOrs +--- + +# 非生物运行时标识符 + + + +_最后更新于1.19.10 版本_ + +非生物实体是用于游戏机制或实用功能的不常规实体。典型示例包括抛射物、运输类实体以及模拟方块的实体。这些运行时标识符的属性与普通生物实体有根本性不同,其特殊属性在某些场景下可能具有实用价值。 + +## 总览 +### 服务端属性 +| 属性 | 已注册 | 可配置行为 | 可配置碰撞箱 | 可配置方块碰撞 | 可配置重力 | 可配置实体推动性 | 可配置活塞推动性 | 支持传送门 | 生命值类型 | 可受伤害 | 可燃性 | 可击退 | 受效果影响 | 可选择 | 可挂钩 | 可锁定 | 可作为抛射体 | 可沿轨道移动 | 自动骑乘 | 可配置战利品 | 生成行为 | +|------------------------------------------------------------|--------|------------|--------------|----------------|------------|------------------|------------------|------------|-------------------|----------|--------|--------|------------|--------|--------|--------|--------------|--------------|----------|--------------|----------------| +| `minecraft:arrow` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 | +| `minecraft:thrown_trident` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 | +| `minecraft:snowball` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 抛射物 | +| `minecraft:egg` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 抛射物 | +| `minecraft:splash_potion` & `minecraft:lingering_potion` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 抛射物 | +| `minecraft:ice_bomb` | ⚠️ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 抛射物 | +| `minecraft:llama_spit` | ✅ | ❌ | ⚠️ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ⚠️ | ⚠️ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 | +| `minecraft:fireball` | ✅ | ❌ | ⚠️ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ⚠️ | ⚠️ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 | +| `minecraft:small_fireball` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 | +| `minecraft:shulker_bullet` | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ❌ | ❌ | ❌ | ⚠️ | ⚠️ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 | +| `minecraft:dragon_fireball` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 | +| `minecraft:wither_skull` & `minecraft:wither_skull_dangerous` | ✅ | ❌ | ⚠️ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ❌ | ❌ | ❌ | ⚠️ | ⚠️ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 | +| `minecraft:ender_pearl` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 抛射物 | +| `minecraft:fishing_hook` | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | 🐛 | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 | +| `minecraft:xp_bottle` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 抛射物 | +| `minecraft:boat` & `minecraft:chest_boat` | ✅ | ❌ | ✅ | ✅ | ⚠️ | ✅ | ❌ | ✅ | 结构完整性 | ✅ | ✅ | ❌ | ❌ | ✅ | ⚠️ | ❌ | ✅ | ⚠️ | ❌ | ⚠️ | 目标表面 | +| `minecraft:minecart` & 变种 | ✅ | ❌ | ✅ | ❌ | ⚠️ | ❌ | ✅ | ✅ | 结构完整性 | ✅ | ✅ | ❌ | ❌ | ✅ | ⚠️ | ❌ | ⚠️ | ✅ | ❌ | ⚠️ | 轨道 | +| `minecraft:balloon` | ⚠️ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 | +| `minecraft:tnt` | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ⚠️ | ❌ | ✅ | 目标表面 | +| `minecraft:armor_stand` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 结构完整性 | ⚠️ | ✅ | ❌ | ✅ | ✅ | ✅ | ⚠️ | ✅ | ⚠️ | ✅ | ⚠️ | 目标表面 | +| `minecraft:painting` | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ⚠️ | 无 | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | 目标表面 | +| `minecraft:falling_block` | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | 无 | ⚠️ | ✅ | ❌ | ❌ | ⚠️ | ⚠️ | ❌ | 🐛 | ❌ | ❌ | ✅ | 目标表面 | +| `minecraft:ender_crystal` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ⚠️ | ⚠️ | ❌ | ⚠️ | ❌ | ❌ | ✅ | 目标表面 | +| `minecraft:leash_knot` | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ⚠️ | 无 | ✅ | ❌ | ❌ | ❌ | ⚠️ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | 轨道 | +| `minecraft:chalkboard` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 生命值 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️ | ✅ | ✅ | 目标表面 | +| `minecraft:tripod_camera` | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 生命值 | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ⚠️ | ✅ | ✅ | 目标表面 | +| `minecraft:area_effect_cloud` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❓ | ❌ | ❌ | ✅ | 目标表面 | +| `minecraft:lightning_bolt` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ❌ | ❌ | ✅ | 目标表面 | +| `minecraft:evocation_fang` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ❌ | ❌ | ✅ | 目标表面 | +| `minecraft:item` | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | 物品 | ❌ | ⚠️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❓ | ⚠️ | ❌ | ✅ | 目标表面 | +| `minecraft:xp_orb` | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ❌ | ❌ | ✅ | 目标表面 | +| `minecraft:fireworks_rocket` | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ⚠️ | ❌ | ✅ | 目标表面 | +| `minecraft:eye_of_ender_signal` | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 | +| `minecraft:elder_guardian_ghost` | ✅ | ⚠️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 生命值 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 目标表面 | +| `minecraft:npc` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 生命值 | ❌ | ✅ | ⚠️ | ❌ | ✅ | ❌ | ✅ | ✅ | ⚠️ | ❌ | ❌ | 目标表面 | +| `minecraft:agent` | ❌ | ❌ | ⚠️ | ❌ | ❌ | ❌ | ✅ | ✅ | 生命值 | ✅ | ✅ | ❌ | ❌ | ⚠️ | ⚠️ | ✅ | ❌ | ✅ | ❌ | ⚠️ | 目标表面 | +| `minecraft:shield` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 生命值 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️ | ✅ | ✅ | 目标表面 | + +### 客户端属性 +| 属性 | 客户端实体 | 位置更新 | 插值移动 | 面向方向 | 阴影 | 死亡效果 | 踏步音效 | +|------------------------------------------------------------|------------|----------|----------|----------|------|----------|----------| +| `minecraft:arrow` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | +| `minecraft:thrown_trident` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | +| `minecraft:snowball` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | +| `minecraft:egg` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | +| `minecraft:splash_potion` & `minecraft:lingering_potion` | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | +| `minecraft:ice_bomb` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | +| `minecraft:llama_spit` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | +| `minecraft:fireball` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | +| `minecraft:small_fireball` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | +| `minecraft:shulker_bullet` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | +| `minecraft:dragon_fireball` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | +| `minecraft:wither_skull` & `minecraft:wither_skull_dangerous` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | +| `minecraft:ender_pearl` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | +| `minecraft:fishing_hook` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | +| `minecraft:xp_bottle` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | +| `minecraft:boat` & `minecraft:chest_boat` | ✅ | ✅ | ❌ | ❌ | ⚠️ | ❌ | ❌ | +| `minecraft:minecart` & 变种 | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | +| `minecraft:balloon` | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | +| `minecraft:tnt` | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| `minecraft:armor_stand` | ✅ | ✅ | ✅ | ✅ | ❌ | ⚠️ | ✅ | +| `minecraft:painting` | ❌ | ✅ | ❓ | ❌ | ❌ | ❌ | ❌ | +| `minecraft:falling_block` | ⚠️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| `minecraft:ender_crystal` | ✅ | ❌ | ❌ | ❌ | ⚠️ | ❌ | ❌ | +| `minecraft:leash_knot` | ✅ | ✅ | ❓ | ❌ | ❌ | ❌ | ❌ | +| `minecraft:chalkboard` | ✅ | ✅ | ✅ | ⚠️ | ✅ | ✅ | ✅ | +| `minecraft:tripod_camera` | ✅ | ✅ | ✅ | ✅ | ⚠️ | ✅ | ✅ | +| `minecraft:area_effect_cloud` | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| `minecraft:lightning_bolt` | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| `minecraft:evocation_fang` | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| `minecraft:item` | ❌ | ✅ | ✅ | ❌ | ⚠️ | ❌ | ❌ | +| `minecraft:xp_orb` | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| `minecraft:fireworks_rocket` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | +| `minecraft:eye_of_ender_signal` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | +| `minecraft:elder_guardian_ghost` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| `minecraft:npc` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| `minecraft:agent` | ⚠️ | ✅ | ❓ | ⚠️ | ⚠️ | ✅ | ✅ | +| `minecraft:shield` | ✅ | ✅ | ✅ | ⚠️ | ✅ | ✅ | ✅ | + +## 属性定义与章节说明 +本文档中使用的属性定义用于描述特定运行时标识符实体的行为特征。每个属性配有一个值及可能的附加说明,用以强调关联定义的异常情况。 + +大多数属性使用表情符号简短表达: +| 值 | 说明 | +|:---:|-------------------------------------------------------------------------| +| ✅ | **激活/可用**
该属性在当前运行时标识符实体上通常处于活跃或可用状态。附加说明为特殊情况提供说明。 | +| ⚠️ | **需警告**
该属性在特定条件下可用。标有此符号的属性可能需要特别处理。附加说明会细化具体例外情况。 | +| ❌ | **未激活/不可用**
该属性在当前运行时标识符实体上不可用。附加说明会阐述实体如何处理该属性。 | +| ❓ | **未知**
该属性的具体行为在当前上下文中尚未明确。 | +| 🐛 | **存在漏洞**
该属性激活时会导致崩溃或其他错误。附加说明会具体描述漏洞触发条件。 | + +### NBT扩展字段 +此部分列出该运行时标识符实体专用的NBT字段(其他实体不使用),字段用途通常在本体注释中说明。 + +### 特殊查询 +若Molang查询在当前运行时标识符上有特殊行为,则会在此说明。所有查询在服务端和客户端均可使用。 + +### 硬编码变量 +本节列出该运行时标识符绑定的硬编码Molang变量(若无声明则为未定义)。所有这些变量服务端和客户端均可使用。 + +### 特效 +本节描述与实体绑定的硬编码粒子或音效。除`minecraft:fireworks_rocket`外,其他效果可通过修改粒子/音效定义进行配置。 + +### 服务端属性 +服务端属性描述实体核心行为机制,包含位置、状态和交互等正规信息。 + +**已注册** +当实体可通过`/summon`生成且`type`选择器能选中时视为已注册。只要`is_spawnable`为`true`,生成蛋始终可用。 + +**可配置行为** +若为是,则该实体可使用通用行为组件(如`minecraft:behavior.panic`)。 + +**可配置碰撞箱** +此属性激活时,`minecraft:collision_box`生效。某些运行时标识符会强制应用固定碰撞箱或修改碰撞箱计算方式。 + +**可配置方块碰撞** +当激活时,`minecraft:physics`的`has_collision`生效。若实体声明了`minecraft:projectile`组件,此属性仍标记为活跃。 + +(由于长度限制,完整翻译内容超过单次响应限制,将分次响应。) \ No newline at end of file diff --git a/docs/wiki/3-实体/3-文档/runtime-identifier.md b/docs/wiki/3-实体/3-文档/runtime-identifier.md new file mode 100644 index 00000000..4421df3a --- /dev/null +++ b/docs/wiki/3-实体/3-文档/runtime-identifier.md @@ -0,0 +1,422 @@ +--- +title: 运行时标识符 +category: 文档 +mentions: + - MedicalJewel105 + - aexer0e + - Luthorius + - SirLich + - TheDoctor15 + - ChibiMango + - stirante + - epxzzy + - IlkinQafarov + - TheItsNameless + - SmokeyStack + - ThomasOrs + - Goatfu +--- + +# 运行时标识符 + + + +`runtime_identifier` 是位于实体行为文件描述部分的可选参数,用于模拟原版实体的硬编码特性。 +它接受原版 Minecraft 标识符,例如 `minecraft:shulker`。 + +::: code-group +```json [行为实体描述] +"description": { + "identifier": "wiki:my_box", + "runtime_identifier": "minecraft:shulker", // 此运行时标识符会将潜影贝的硬编码行为附加到当前实体 + "is_spawnable": true, + "is_summonable": true, + "is_experimental": false +} +``` + +:::tip 注意 +需要注意 `runtime_identifier` **仅解析实体的硬编码特性**。这意味着使用100%数据驱动的生物作为运行时标识符不会给实体添加新特性。此外,某些实体运行时可能会覆盖组件部分定义的属性,例如潜影贝实体的碰撞箱尺寸。 +::: + +:::warning 警告 +此处未列出所有运行时标识符效果。建议通过实验自行探索新效果,也欢迎在此补充发现。 +::: + +## 已知的运行时标识符效果: + +- 所有运行时ID都会将实体名称更改为对应原版实体的名称 + +### minecraft:area_effect_cloud + +- 导致实体崩溃 + +--- + +### minecraft:armor_stand + +- 禁用实体阴影 +- 击打时立即消失 +- 允许装备穿戴/卸除 +- 死亡时掉落盔甲架物品 + +--- + +### minecraft:arrow + +- 为抛射物添加朝向玩家的动画 +- 禁用死亡动画/声音/粒子 +- 缩小实体阴影(但不会消失) +- 不可交互 +- 通过生成蛋或/summon生成时,玩家接触后获得箭矢同时实体消失 +- 飞行物理特性和击退效果与箭矢一致 + +--- + +### minecraft:axolotl +- 不影响游泳/移动/重力行为 +- 类似热带鱼,不同变种值影响水桶名称(如"亮蓝色美西螈桶"或"幼年黄色美西螈桶") +年龄变种: 成年/幼年 +颜色变种: 亮色/野生/黄色/青色/蓝色 + +--- + +### minecraft:bee + +- 添加蜜蜂音效 + +--- + +### minecraft:blaze + +- 添加烈焰人燃烧音效和粒子 +- 实体将具有烈焰人飞行特性(即使未添加飞行行为) + +--- + +### minecraft:boat + +- 骑乘时显示船型UI界面 +- 禁止实体旋转 +- 具有船形固体碰撞箱 + +--- + +### minecraft:chest_minecart + +- 导致实体崩溃 +- 击打后立即消失 +- 生成状态异常 +- 掉落箱子和矿车 + +--- + +### minecraft:chicken + +- 部分动画失效 +- 更新移动速度 +- 实体下落减缓但仍受掉落伤害 +- 生成时不携带装备(若原有) + +--- + +### minecraft:cod + +- 脱离水体时扑腾 +- 使用水桶交互获得鳕鱼桶(放置时生成当前实体而非鳕鱼) +- 赋予特殊游泳和重力特性 + +--- + +### minecraft:command_block_minecart + +- 导致实体崩溃 +- 击打后立即消失 +- 生成状态异常 +- 掉落矿车 + +--- + +### minecraft:cow + +- 部分动画失效 +- 更新移动速度 +- 生成时不携带装备(若原有) + +--- + +### minecraft:dolphin + +- 添加 `minecraft:movement.dolphin` 组件 + +--- + +### minecraft:donkey + +- 将纹理/模型/动画更换为驴子 + +--- + +### minecraft:dragon_fireball + +- 完全破坏实体 +- 生成龙息火球尾迹粒子 + +--- + +### minecraft:egg + +- 为抛射物添加朝向玩家的动画 +- 导致实体崩溃 +- 使用生成蛋生成时会出现在玩家位置而非指定位置,且面朝天空 + +--- + +### minecraft:elder_guardian + +- 将纹理/模型/动画更换为远古守卫者 +- 改变部分行为特性 + +--- + +### minecraft:ender_crystal + +- 实体将固定在生成方块的中央 +- 除传送外始终保持位置不变 +- 可放置于任何表面 +- 其他实体可穿透 +- 无法配置承受伤害 +- 无法改变朝向 +- 可复活末影龙 +- 生成时带火焰效果 + +--- + +### minecraft:ender_dragon + +- 添加末影龙死亡特效 +- 继承末影龙碰撞箱 +- 破坏碰撞箱内所有方块(包括底部方块),建议在下方放置不可破坏方块/移除重力/禁用`mobGriefing`规则 +- 对碰撞箱2格范围内的玩家造成伤害 +- 增加渲染距离 +- 只能通过/kill指令消除 + +--- + +### minecraft:ender_pearl + +- 破坏实体行为 +- 受伤时生成粒子 + +--- + +### minecraft:endermite + +- 受伤时生成粒子 +- 导致旋转异常 +- 部分动画失效 + +--- + +### minecraft:evocation_fang + +- 对接触实体造成伤害 +- 完全禁用碰撞 + +--- + +### minecraft:falling_block + +- 导致实体崩溃并下落 +- 接触地面后无动画消失,掉落金合欢按钮 +- 移除效果附着能力 + +### minecraft:horse + +- 将纹理/模型/动画更换为马匹 + +--- + +### minecraft:iron_golem + +- 允许发动攻击(击退效果垂直增强) +- 加速四肢动画(可手动修复为约1/4速度) +- 可能与村庄/村民逻辑冲突 + +--- + +### minecraft:llama_spit + +- 添加羊驼唾沫粒子 + +--- + +### minecraft:minecart + +- 禁用实体阴影 +- 死亡时掉落矿车 +- 禁止实体旋转 + +--- + +### minecraft:panda + +- 使`q.is_grazing`和`q.sit_mount`能与`minecraft:behavior.random_sitting`组件协同工作 + +--- + +### minecraft:parrot + +- 启用翅膀扇动动画 +- 缓慢降落 +- 跟随音乐唱片跳舞 + +--- + +### minecraft:piglin + +- 启用`minecraft:celebrate_hunt`功能(激活 q.is_celebrating) + +--- + +### minecraft:player + +- 激活`q.movement_direction` + +--- + +### minecraft:pufferfish + +- 脱离水体时扑腾 +- 使用水桶交互获得河豚桶(放置时生成当前实体而非河豚) +- 赋予特殊游泳和重力特性 + +--- + +### minecraft:salmon + +- 脱离水体时扑腾 +- 使用水桶交互获得鲑鱼桶(放置时生成当前实体而非鲑鱼) +- 赋予特殊游泳和重力特性 + +--- + +### minecraft:sheep + +- 使`q.is_grazing`能与`behavior.eat_block`组件协同工作 + +--- + +### minecraft:shulker + +冒险模式玩家的方块拟态神器 + +- 1x1x1固体碰撞箱 +- 固定于生成方块的中央 +- 附着方块被破坏后传送至附近可用位置 +- 在非完整方块(床/台阶等)上生成时自动传送 +- 无法修改碰撞箱尺寸 + +--- + +### minecraft:shulker_bullet + +- 生成潜影贝导弹尾迹粒子 + +--- + +### minecraft:slime + +- 下落时生成黏液粒子 +- 根据变体值分裂(1-5为史莱姆常规尺寸,5以上视为中型) +- 允许攻击同时保持史莱姆跳跃机制(无此标识符时攻击状态无法转向) + +--- + +### minecraft:snowball + +- 移除碰撞箱 +- 不可交互 +- 生成于玩家头部位置 +- 无视重力 +- 移除实体阴影 +- 恒定面朝南方 +- 无法发出踏步音效 + +--- + +### minecraft:spider + +- 蛛网减速失效 + +--- + +### minecraft:skeleton + +- 治疗效果造成伤害/瞬间伤害效果恢复生命 +- 亡灵杀手附魔增伤 +- 变体≥1时近战与远程攻击附加凋零效果 + +--- + +### minecraft:stray + +- 治疗效果造成伤害/瞬间伤害效果恢复生命 +- 亡灵杀手附魔增伤 +- 免疫冰冻伤害 + +--- + +### minecraft:squid + +- 支持特殊行为组件(参考squid.json) +- 受伤时生成墨汁粒子 + +--- + +### minecraft:thrown_trident + +- 为抛射物添加朝向玩家的动画 +- 禁用死亡动画/声音/粒子 +- 缩小实体阴影(但不会消失) +- 不可交互 +- 飞行物理特性和击退效果与三叉戟一致 + +--- + +### minecraft:tropicalfish + +- 脱离水体时扑腾 +- 赋予特殊游泳和重力特性 +- 使用水桶获得热带鱼桶(若无variant/mark_variant/color定义则为白色考伯鱼规格,含相关组件时桶名与实体规格对应) + +--- + +### minecraft:wither_skull_dangerous + +- 死亡时掉落凋零玫瑰 +- 被击杀实体会在原地生成凋零玫瑰(僵尸类异常掉落) +- 持续生成基础烟雾粒子 +- 无视重力(使projectile组件实体直线运动) +- 免疫所有伤害 +- 仅对无AI目标的实体生效(适用于假人实体和弹射物) + +--- + +### minecraft:xp_orb + +- 完全禁用碰撞 +- 接触玩家增加经验值 + +### minecraft:zombie + +- 治疗效果造成伤害/瞬间伤害效果恢复生命 +- 亡灵杀手附魔增伤 + +--- + +### minecraft:wither + +- 死亡时爆炸 + +--- \ No newline at end of file diff --git a/docs/wiki/3-实体/3-文档/spawning-tamed-entities.md b/docs/wiki/3-实体/3-文档/spawning-tamed-entities.md new file mode 100644 index 00000000..016957ba --- /dev/null +++ b/docs/wiki/3-实体/3-文档/spawning-tamed-entities.md @@ -0,0 +1,194 @@ +--- +title: 生成已驯服的实体 +category: 教程 +tags: + - 中级 +mentions: + - Axelpvz2030 + - aexer0e + - SirLich + - MedicalJewel105 + - SmokeyStack + - ThomasOrs +--- + +# 生成已驯服的实体 + + + +在本教程中,您将学习如何通过向特定玩家触发事件来生成预驯服的实体,以及如何投掷在撞击时变形为已驯服实体的物品。 + +## 概述 + +传统方式中,若要让玩家驯服实体,必须通过 `minecraft:tameable` 强制玩家与实体互动。但我们也可以利用原版弹射物会记录生成者*\*的特性来实现预驯服实体的生成。 + +具体实现步骤: +1. 通过 `minecraft:spawn_entity` 生成一个中间态弹射物实体 +2. 该实体将立即转换为预驯服的目标实体(本教程以原版狼为例) +3. 在 `minecraft:transformation` 组件中将 `keep_owner` 设置为 `true` + +\*: 需要区分 _Spawn(生成)_ 和 _Summon(召唤)_ 的区别。只有通过生成蛋或 `minecraft:spawn_entity` 组件生成的弹射物才会记录玩家信息,使用 `/summon` 命令生成的则不会。 + +## player.json + +我们需要对玩家行为文件进行微调,添加一个事件来激活组件组用于生成中间态实体。 + +您可以在 Mojang 提供的[原版行为包模板](https://aka.ms/behaviorpacktemplate)中找到玩家实体的行为文件。 + +::: code-group +```json [BP/entities/player.json] +{ + "format_version":"1.16.0", + "minecraft:entity":{ + "description":{ + "identifier":"minecraft:player", + "is_spawnable":false, + "is_summonable":false, + "is_experimental":false + }, + "component_groups":{ // 组件组定义 + "wiki:spawn_tamed_wolf":{ + "minecraft:spawn_entity":{ + "entities":{ + "min_wait_time":0, + "max_wait_time":0, + "spawn_entity":"wiki:pretamed_wolf", + "single_use":true, + "num_to_spawn":1 + } + } + } + }, + ... + "events":{ // 事件定义 + "wiki:spawn_tamed_wolf":{ + "add":{ + "component_groups":[ + "wiki:spawn_tamed_wolf" + ] + } + } + } + } +} +``` +::: + +## pretamed_wolf.json + +创建一个使用 `minecraft:arrow` 作为运行时标识符(也可选用其他弹射物标识符)的自定义实体,包含空白弹射物组件和用于转换为驯服狼的变形组件。 + +::: code-group +```json [BP/entities/pretamed_wolf.json] +{ + "format_version": "1.16.0", + "minecraft:entity": { + "description": { + "identifier": "wiki:pretamed_wolf", + "runtime_identifier": "minecraft:arrow", + "is_spawnable": false, + "is_summonable": true, + "is_experimental": false + }, + "components": { // 组件配置 + "minecraft:projectile": {}, // 弹射物组件 + "minecraft:transformation": { // 变形组件 + "into": "minecraft:wolf", + "keep_owner": true // 保持归属关系 + } + } + } +} +``` +::: + +现在即可通过命令 `/event entity @p wiki:spawn_tamed_wolf` 在玩家身边生成驯服的狼。若将 `is_spawnable` 设为 `true` 还可通过生成蛋调用! + +:::warning 重要提示 +如需生成自定义实体而非原版狼: +1. 必须为实体添加 `minecraft:is_tamed` 组件 +2. 未被驯服的实体可能出现预期外的行为 +::: + +## 集成物品抛射物(替代方法) + +利用 [1.16 实验性物品特性](/items/item-components) 中的 `shoot` 事件属性,可制作碰撞时转换为已驯服实体的弹射物。 + +::: code-group +```json [BP/items/throwable_pretamed_wolf.json] +{ + "format_version":"1.16.100", + "minecraft:item":{ + "description":{ + "identifier":"wiki:throwable_pretamed_wolf" + }, + "components":{ // 物品组件 + "minecraft:on_use":{ + "on_use":{ + "event":"wiki:on_use" // 使用事件触发 + } + } + }, + "events":{ // 事件配置 + "wiki:on_use":{ + "shoot":{ + "projectile":"wiki:pretamed_wolf" // 发射自定义弹射物 + } + } + } + } +} +``` +::: + +同时需修改弹射物实体的转化逻辑以避免即时变形: + +::: code-group +```json [BP/entities/pretamed_wolf.json] +{ + "minecraft:entity":{ + "description":{ + "identifier":"wiki:pretamed_wolf", + "runtime_identifier":"minecraft:arrow", + "is_spawnable":false, + "is_summonable":true, + "is_experimental":false + }, + "component_groups":{ // 组件组定义 + "wiki:transform_to_entity":{ + "minecraft:transformation":{ + "into":"minecraft:wolf", + "keep_owner":true + } + } + }, + "components":{ // 组件配置 + "minecraft:projectile":{ + "on_hit":{ // 碰撞触发配置 + "impact_damage":{ + "damage":0 // 禁用伤害 + }, + "stick_in_ground":{}, // 插入地面 + "definition_event":{ + "event_trigger":{ + "event":"wiki:on_hit" // 碰撞事件触发 + } + } + } + } + }, + "events":{ // 事件响应 + "wiki:on_hit":{ + "add":{ + "component_groups":[ + "wiki:transform_to_entity" // 添加变形组件组 + ] + } + } + } + } +} +``` +::: + +特别感谢 [Zarkmend ZAN](https://twitter.com/Zarkmend_ZAN) 发现这一方法 :) \ No newline at end of file diff --git a/docs/wiki/3-实体/3-文档/vanilla-usage-components.md b/docs/wiki/3-实体/3-文档/vanilla-usage-components.md new file mode 100644 index 00000000..b91888b9 --- /dev/null +++ b/docs/wiki/3-实体/3-文档/vanilla-usage-components.md @@ -0,0 +1,20969 @@ +--- +title: Vanilla 可用 Components +category: Documentation +mentions: + - MedicalJewel105 +--- + +# Vanilla 可用 Components + + + +本页面由 [Wiki Content Generator](https://github.com/Bedrock-OSS/bedrock-wiki-content-generator) 创建。 如果有问题,请在 [Bedrock OSS](https://www.google.com/search?q=https://discord.gg/XjV87YN) Discord 服务器上联系我们。 +包含所有示例。 命名空间 `minecraft` 和一些格式已被删除,以加快页面加载速度。 *上次更新于 1.20.10* + +## addrider + + + +cave_spider + +#component_groups/minecraft:spider_jockey + +```json +"minecraft:addrider": { + "entity_type": "minecraft:skeleton" +} +``` + +#component_groups/minecraft:spider_stray_jockey + +```json +"minecraft:addrider": { + "entity_type": "minecraft:skeleton.stray" +} +``` + +#component_groups/minecraft:spider_wither_jockey + +```json +"minecraft:addrider": { + "entity_type": "minecraft:skeleton.wither" +} +``` + +ravager + +#component_groups/minecraft:pillager_rider + +```json +"minecraft:addrider": { + "entity_type": "minecraft:pillager" +} +``` + +#component_groups/minecraft:pillager_rider_for_raid + +```json +"minecraft:addrider": { + "entity_type": "minecraft:pillager", + "spawn_event": "minecraft:spawn_for_raid" +} +``` + +#component_groups/minecraft:evoker_rider_for_raid + +```json +"minecraft:addrider": { + "entity_type": "minecraft:evocation_illager", + "spawn_event": "minecraft:spawn_for_raid" +} +``` + +spider + +#component_groups/minecraft:spider_jockey + +```json +"minecraft:addrider": { + "entity_type": "minecraft:skeleton" +} +``` + +#component_groups/minecraft:spider_stray_jockey + +```json +"minecraft:addrider": { + "entity_type": "minecraft:skeleton.stray" +} +``` + + + +## admire_item + + + +piglin + + + +```json +"minecraft:admire_item": { + "duration": 8, + "cooldown_after_being_attacked": 20 +} +``` + + + +## ageable + + + +axolotl + +#component_groups/axolotl_baby + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": "tropical_fish_bucket", + "transform_to_item": "water_bucket:0", + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +bee + +#component_groups/bee_baby + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + "minecraft:red_flower", + "minecraft:yellow_flower", + "minecraft:wither_rose", + "minecraft:double_plant:0", + "minecraft:double_plant:1", + "minecraft:double_plant:4", + "minecraft:double_plant:5", + "minecraft:flowering_azalea", + "minecraft:azalea_leaves_flowered", + "minecraft:mangrove_propagule", + "minecraft:pitcher_plant", + "minecraft:torchflower", + "minecraft:cherry_leaves", + "minecraft:pink_petals" + ], + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +camel + +#component_groups/minecraft:camel_baby + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": "cactus", + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +cat + +#component_groups/minecraft:cat_baby + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + "fish", + "salmon" + ], + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +chicken + +#component_groups/minecraft:chicken_baby + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + "wheat_seeds", + "beetroot_seeds", + "melon_seeds", + "pumpkin_seeds", + "pitcher_pod", + "torchflower_seeds" + ], + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +cow + +#component_groups/minecraft:cow_baby + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": "wheat", + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +dolphin + +#component_groups/dolphin_baby + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + "fish", + "salmon" + ], + "grow_up": { + "event": "ageable_grow_up", + "target": "self" + } +} +``` + +donkey + +#component_groups/minecraft:donkey_baby + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + { + "item": "wheat", + "growth": 0.016667 + }, + { + "item": "sugar", + "growth": 0.025 + }, + { + "item": "hay_block", + "growth": 0.15 + }, + { + "item": "apple", + "growth": 0.05 + }, + { + "item": "golden_carrot", + "growth": 0.05 + }, + { + "item": "golden_apple", + "growth": 0.2 + }, + { + "item": "appleEnchanted", + "growth": 0.2 + } + ], + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + + + +## ambient_sound_interval + + + +allay + + + +```json +"minecraft:ambient_sound_interval": { + "value": 5.0, + "range": 5.0, + "event_name": "ambient", + "event_names": [ + { + "event_name": "ambient.tame", + "condition": "q.is_using_item" + }, + { + "event_name": "ambient", + "condition": "!q.is_using_item" + } + ] +} +``` + +bee + +#component_groups/look_for_food + +```json +"minecraft:ambient_sound_interval": { + "event_name": "ambient.pollinate", + "range": 3.0, + "value": 2.0 +} +``` + +#component_groups/default_sound + +```json +"minecraft:ambient_sound_interval": { + "event_name": "ambient", + "range": 0.0, + "value": 0.0 +} +``` + +evocation_illager + +#component_groups/minecraft:raid_configuration + +```json +"minecraft:ambient_sound_interval": { + "value": 2.0, + "range": 4.0, + "event_name": "ambient.in.raid" +} +``` + +fox + +#component_groups/minecraft:fox_ambient_normal + +```json +"minecraft:ambient_sound_interval": { + "event_name": "ambient" +} +``` + +#component_groups/minecraft:fox_ambient_sleep + +```json +"minecraft:ambient_sound_interval": { + "event_name": "sleep" +} +``` + +#component_groups/minecraft:fox_ambient_night + +```json +"minecraft:ambient_sound_interval": { + "event_name": "screech", + "value": 80, + "range": 160 +} +``` + +pillager + +#component_groups/minecraft:raid_configuration + +```json +"minecraft:ambient_sound_interval": { + "value": 2.0, + "range": 4.0, + "event_name": "ambient.in.raid" +} +``` + + + +## anger_level + + + +warden + + + +```json +"minecraft:anger_level": { + "max_anger": 150, + "angry_threshold": 80, + "remove_targets_below_angry_threshold": true, + "angry_boost": 20, + "anger_decrement_interval": 1.0, + "default_annoyingness": 35, + "default_projectile_annoyingness": 10, + "on_increase_sounds": [ + { + "sound": "listening_angry", + "condition": "q.anger_level(this) >= 40" + }, + { + "sound": "listening", + "condition": "q.anger_level(this) >= 0" + } + ], + "nuisance_filter": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "operator": "not", + "value": "warden" + }, + { + "test": "is_family", + "subject": "other", + "operator": "not", + "value": "inanimate" + } + ] + } +} +``` + + + +## angry + + + +bee + +#component_groups/angry_bee + +```json +"minecraft:angry": { + "duration": 25, + "broadcastAnger": true, + "broadcastRange": 20, + "broadcast_filters": { + "test": "is_family", + "operator": "!=", + "value": "pacified" + }, + "calm_event": { + "event": "calmed_down", + "target": "self" + } +} +``` + +cave_spider + +#component_groups/minecraft:spider_angry + +```json +"minecraft:angry": { + "duration": 10, + "duration_delta": 3, + "calm_event": { + "event": "minecraft:on_calm", + "target": "self" + } +} +``` + +dolphin + +#component_groups/dolphin_angry + +```json +"minecraft:angry": { + "duration": 25, + "broadcast_anger": true, + "broadcast_range": 16, + "calm_event": { + "event": "on_calm", + "target": "self" + } +} +``` + +enderman + +#component_groups/minecraft:enderman_angry + +```json +"minecraft:angry": { + "duration": 25, + "calm_event": { + "event": "minecraft:on_calm", + "target": "self" + } +} +``` + +hoglin + +#component_groups/angry_hoglin + +```json +"minecraft:angry": { + "duration": 10, + "broadcast_anger": true, + "broadcast_range": 16, + "calm_event": { + "event": "become_calm_event", + "target": "self" + }, + "angry_sound": "angry", + "sound_interval": { + "range_min": 2.0, + "range_max": 5.0 + } +} +``` + +llama + +#component_groups/minecraft:llama_angry + +```json +"minecraft:angry": { + "duration": 4, + "broadcast_anger": false, + "calm_event": { + "event": "minecraft:on_calm", + "target": "self" + } +} +``` + +#component_groups/minecraft:llama_angry_wolf + +```json +"minecraft:angry": { + "duration": -1, + "broadcast_anger": false, + "calm_event": { + "event": "minecraft:on_calm", + "target": "self" + } +} +``` + +panda + +#component_groups/minecraft:panda_angry + +```json +"minecraft:angry": { + "duration": 500, + "broadcast_anger": true, + "broadcast_range": 41, + "broadcast_filters": { + "test": "is_family", + "operator": "==", + "value": "panda_aggressive" + }, + "calm_event": { + "event": "minecraft:on_calm", + "target": "self" + } +} +``` + + + +## annotation.break_door + + + +drowned + +#component_groups/minecraft:can_break_doors + +```json +"minecraft:annotation.break_door": {} +``` + +husk + +#component_groups/minecraft:can_break_doors + +```json +"minecraft:annotation.break_door": {} +``` + +vindicator + +#component_groups/minecraft:raid_configuration + +```json +"minecraft:annotation.break_door": { + "break_time": 30, + "min_difficulty": "normal" +} +``` + +zombie + +#component_groups/minecraft:can_break_doors + +```json +"minecraft:annotation.break_door": {} +``` + +zombie_villager + +#component_groups/can_break_doors + +```json +"minecraft:annotation.break_door": {} +``` + +zombie_villager_v2 + +#component_groups/can_break_doors + +```json +"minecraft:annotation.break_door": {} +``` + + + +## annotation.open_door + + + +piglin + + + +```json +"minecraft:annotation.open_door": {} +``` + +piglin_brute + + + +```json +"minecraft:annotation.open_door": {} +``` + +villager + + + +```json +"minecraft:annotation.open_door": {} +``` + +villager_v2 + + + +```json +"minecraft:annotation.open_door": {} +``` + + + +## area_attack + + + +magma_cube + +#component_groups/minecraft:slime_large + +```json +"minecraft:area_attack": { + "damage_range": 0.15, + "damage_per_tick": 6, + "damage_cooldown": 0.5, + "cause": "entity_attack", + "entity_filter": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + } + ] + } +} +``` + +#component_groups/minecraft:slime_medium + +```json +"minecraft:area_attack": { + "damage_range": 0.15, + "damage_per_tick": 4, + "damage_cooldown": 0.5, + "cause": "entity_attack", + "entity_filter": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + } + ] + } +} +``` + +#component_groups/minecraft:slime_small + +```json +"minecraft:area_attack": { + "damage_range": 0.15, + "damage_per_tick": 3, + "damage_cooldown": 0.5, + "cause": "entity_attack", + "entity_filter": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + } + ] + } +} +``` + +pufferfish + +#component_groups/minecraft:full_puff + +```json +"minecraft:area_attack": { + "damage_range": 0.2, + "damage_per_tick": 2, + "damage_cooldown": 0.5, + "cause": "contact", + "entity_filter": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "monster" + } + ] + } +} +``` + +slime + +#component_groups/minecraft:slime_large + +```json +"minecraft:area_attack": { + "damage_range": 0.15, + "damage_per_tick": 4, + "damage_cooldown": 0.5, + "cause": "entity_attack", + "entity_filter": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "snowgolem" + } + ] + } +} +``` + +#component_groups/minecraft:slime_medium + +```json +"minecraft:area_attack": { + "damage_range": 0.15, + "damage_per_tick": 2, + "damage_cooldown": 0.5, + "cause": "entity_attack", + "entity_filter": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "snowgolem" + } + ] + } +} +``` + + + +## attack + + + +axolotl + + + +```json +"minecraft:attack": { + "damage": 2 +} +``` + +bee + +#component_groups/easy_attack + +```json +"minecraft:attack": { + "damage": 2 +} +``` + +#component_groups/normal_attack + +```json +"minecraft:attack": { + "damage": 2, + "effect_name": "poison", + "effect_duration": 10 +} +``` + +#component_groups/hard_attack + +```json +"minecraft:attack": { + "damage": 2, + "effect_name": "poison", + "effect_duration": 18 +} +``` + +blaze + +#component_groups/melee_mode + +```json +"minecraft:attack": { + "damage": 6 +} +``` + +cave_spider + +#component_groups/minecraft:spider_poison_easy + +```json +"minecraft:attack": { + "damage": 2, + "effect_name": "poison", + "effect_duration": 0 +} +``` + +#component_groups/minecraft:spider_poison_normal + +```json +"minecraft:attack": { + "damage": 2, + "effect_name": "poison", + "effect_duration": 7 +} +``` + +#component_groups/minecraft:spider_poison_hard + +```json +"minecraft:attack": { + "damage": 2, + "effect_name": "poison", + "effect_duration": 15 +} +``` + + + +## attack_cooldown + + + +axolotl + +#component_groups/attack_cooldown + +```json +"minecraft:attack_cooldown": { + "attack_cooldown_time": 120.0, + "attack_cooldown_complete_event": { + "event": "attack_cooldown_complete_event", + "target": "self" + } +} +``` + +goat + +#component_groups/attack_cooldown + +```json +"minecraft:attack_cooldown": { + "attack_cooldown_time": [ + 30, + 40 + ], + "attack_cooldown_complete_event": { + "event": "attack_cooldown_complete_event", + "target": "self" + } +} +``` + +hoglin + +#component_groups/attack_cooldown + +```json +"minecraft:attack_cooldown": { + "attack_cooldown_time": [ + 10.0, + 15.0 + ], + "attack_cooldown_complete_event": { + "event": "attack_cooldown_complete_event", + "target": "self" + } +} +``` + +piglin + +#component_groups/attack_cooldown + +```json +"minecraft:attack_cooldown": { + "attack_cooldown_time": [ + 30.0, + 120.0 + ], + "attack_cooldown_complete_event": { + "event": "attack_cooldown_complete_event", + "target": "self" + } +} +``` + + + +## attack_damage + + + +cat + + + +```json +"minecraft:attack_damage": { + "value": 4 +} +``` + +ocelot + + + +```json +"minecraft:attack_damage": { + "value": 3 +} +``` + + + +## balloonable + + + +allay + + + +```json +"minecraft:balloonable": { + "mass": 0.5 +} +``` + +bee + + + +```json +"minecraft:balloonable": { + "mass": 0.5 +} +``` + +boat + + + +```json +"minecraft:balloonable": {} +``` + +cat + + + +```json +"minecraft:balloonable": { + "mass": 0.6 +} +``` + +chest_boat + + + +```json +"minecraft:balloonable": {} +``` + +chicken + + + +```json +"minecraft:balloonable": { + "mass": 0.5 +} +``` + +cow + + + +```json +"minecraft:balloonable": {} +``` + +dolphin + + + +```json +"minecraft:balloonable": {} +``` + + + +## barter + + + +piglin + +#component_groups/piglin_adult + +```json +"minecraft:barter": { + "barter_table": "loot_tables/entities/piglin_barter.json", + "cooldown_after_being_attacked": 20 +} +``` + + + +## behavior.admire_item + + + +piglin + + + +```json +"minecraft:behavior.admire_item": { + "priority": 2, + "admire_item_sound": "admire", + "sound_interval": { + "range_min": 2.0, + "range_max": 5.0 + }, + "on_admire_item_start": { + "event": "admire_item_started_event", + "target": "self" + }, + "on_admire_item_stop": { + "event": "admire_item_stopped_event", + "target": "self" + } +} +``` + + + +## behavior.avoid_block + + + +hoglin + + + +```json +"minecraft:behavior.avoid_block": { + "priority": 1, + "tick_interval": 5, + "search_range": 8, + "search_height": 4, + "walk_speed_modifier": 1, + "sprint_speed_modifier": 1, + "avoid_block_sound": "retreat", + "sound_interval": { + "range_min": 2.0, + "range_max": 5.0 + }, + "target_selection_method": "nearest", + "target_blocks": [ + "minecraft:warped_fungus", + "minecraft:portal", + "minecraft:respawn_anchor" + ], + "on_escape": [ + { + "event": "escaped_event", + "target": "self" + } + ] +} +``` + +piglin + + + +```json +"minecraft:behavior.avoid_block": { + "priority": 9, + "tick_interval": 5, + "search_range": 8, + "search_height": 4, + "sprint_speed_modifier": 1.1, + "target_selection_method": "nearest", + "target_blocks": [ + "minecraft:soul_fire", + "minecraft:soul_lantern", + "minecraft:soul_torch", + "minecraft:item.soul_campfire" + ], + "avoid_block_sound": "retreat", + "sound_interval": { + "range_min": 2.0, + "range_max": 5.0 + } +} +``` + + + +## behavior.avoid_mob_type + + + +cat + +#component_groups/minecraft:cat_wild + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 6, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 10, + "walk_speed_multiplier": 0.8, + "sprint_speed_multiplier": 1.33 + } + ] +} +``` + +creeper + + + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 3, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "ocelot" + }, + { + "test": "is_family", + "subject": "other", + "value": "cat" + } + ] + }, + "max_dist": 6, + "sprint_speed_multiplier": 1.2 + } + ] +} +``` + +dolphin + + + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 2, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "guardian_elder" + }, + { + "test": "is_family", + "subject": "other", + "value": "guardian" + } + ] + }, + "max_dist": 8, + "walk_speed_multiplier": 1.0, + "sprint_speed_multiplier": 1.0 + } + ], + "probability_per_strength": 0.14 +} +``` + +evocation_illager + + + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 5, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 8, + "walk_speed_multiplier": 0.6, + "sprint_speed_multiplier": 1.0 + } + ] +} +``` + +cod + + + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 1, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "axolotl" + } + ] + }, + "max_dist": 6, + "walk_speed_multiplier": 1.5, + "sprint_speed_multiplier": 2.0 + } + ] +} +``` + +fox + + + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 5, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "trusts", + "subject": "other", + "operator": "!=", + "value": true + }, + { + "test": "is_sneaking", + "subject": "other", + "operator": "!=", + "value": true + } + ] + }, + { + "test": "is_family", + "subject": "other", + "value": "polarbear" + }, + { + "test": "is_family", + "subject": "other", + "value": "wolf" + } + ] + }, + "max_dist": 10, + "walk_speed_multiplier": 1.0, + "sprint_speed_multiplier": 1.5 + } + ] +} +``` + +guardian + +#component_groups/minecraft:guardian_passive + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 1, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 8, + "walk_speed_multiplier": 1, + "sprint_speed_multiplier": 1 + } + ] +} +``` + +hoglin + + + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 0, + "remove_target": true, + "entity_types": [ + { + "filters": { + "all_of": [ + { + "test": "has_target", + "subject": "other", + "value": true + }, + { + "test": "is_family", + "subject": "other", + "value": "piglin" + } + ] + }, + "check_if_outnumbered": true, + "max_dist": 10, + "sprint_speed_multiplier": 1.2 + } + ], + "avoid_mob_sound": "retreat", + "sound_interval": { + "range_min": 2.0, + "range_max": 5.0 + } +} +``` + + + +## behavior.barter + + + +piglin + + + +```json +"minecraft:behavior.barter": { + "priority": 3 +} +``` + + + +## behavior.beg + + + +wolf + + + +```json +"minecraft:behavior.beg": { + "priority": 9, + "look_distance": 8, + "look_time": [ + 2, + 4 + ], + "items": [ + "bone", + "porkchop", + "cooked_porkchop", + "chicken", + "cooked_chicken", + "beef", + "cooked_beef", + "rotten_flesh", + "muttonraw", + "muttoncooked", + "rabbit", + "cooked_rabbit" + ] +} +``` + + + +## behavior.breed + + + +axolotl + +#component_groups/axolotl_adult + +```json +"minecraft:behavior.breed": { + "priority": 1, + "speed_multiplier": 1.0 +} +``` + +bee + +#component_groups/bee_adult + +```json +"minecraft:behavior.breed": { + "priority": 4, + "speed_multiplier": 1.0 +} +``` + +camel + +#component_groups/minecraft:camel_adult + +```json +"minecraft:behavior.breed": { + "priority": 2, + "speed_multiplier": 1.0 +} +``` + +cat + +#component_groups/minecraft:cat_adult + +```json +"minecraft:behavior.breed": { + "priority": 3, + "speed_multiplier": 1.0 +} +``` + +chicken + +#component_groups/minecraft:chicken_adult + +```json +"minecraft:behavior.breed": { + "priority": 3, + "speed_multiplier": 1.0 +} +``` + +cow + + + +```json +"minecraft:behavior.breed": { + "priority": 3, + "speed_multiplier": 1.0 +} +``` + +#component_groups/minecraft:cow_adult + +```json +"minecraft:behavior.breed": { + "priority": 3, + "speed_multiplier": 1.0 +} +``` + +donkey + +#component_groups/minecraft:donkey_adult + +```json +"minecraft:behavior.breed": { + "priority": 2, + "speed_multiplier": 1.0 +} +``` + + + +## behavior.celebrate + + + +evocation_illager + +#component_groups/minecraft:celebrate + +```json +"minecraft:behavior.celebrate": { + "priority": 5, + "celebration_sound": "celebrate", + "sound_interval": { + "range_min": 2.0, + "range_max": 7.0 + }, + "jump_interval": { + "range_min": 1.0, + "range_max": 3.5 + }, + "duration": 30.0, + "on_celebration_end_event": { + "event": "minecraft:stop_celebrating", + "target": "self" + } +} +``` + +pillager + +#component_groups/minecraft:celebrate + +```json +"minecraft:behavior.celebrate": { + "priority": 5, + "celebration_sound": "celebrate", + "sound_interval": { + "range_min": 2.0, + "range_max": 7.0 + }, + "jump_interval": { + "range_min": 1.0, + "range_max": 3.5 + }, + "duration": 30.0, + "on_celebration_end_event": { + "event": "minecraft:stop_celebrating", + "target": "self" + } +} +``` + +ravager + +#component_groups/minecraft:celebrate + +```json +"minecraft:behavior.celebrate": { + "priority": 5, + "celebration_sound": "celebrate", + "sound_interval": { + "range_min": 2.0, + "range_max": 7.0 + }, + "jump_interval": { + "range_min": 1.0, + "range_max": 3.5 + }, + "duration": 30.0, + "on_celebration_end_event": { + "event": "minecraft:stop_celebrating", + "target": "self" + } +} +``` + +vindicator + +#component_groups/minecraft:celebrate + +```json +"minecraft:behavior.celebrate": { + "priority": 5, + "celebration_sound": "celebrate", + "sound_interval": { + "range_min": 2.0, + "range_max": 7.0 + }, + "jump_interval": { + "range_min": 1.0, + "range_max": 3.5 + }, + "duration": 30.0, + "on_celebration_end_event": { + "event": "minecraft:stop_celebrating", + "target": "self" + } +} +``` + +witch + +#component_groups/minecraft:celebrate + +```json +"minecraft:behavior.celebrate": { + "priority": 5, + "celebration_sound": "celebrate", + "sound_interval": { + "range_min": 2.0, + "range_max": 7.0 + }, + "jump_interval": { + "range_min": 1.0, + "range_max": 3.5 + }, + "duration": 30.0, + "on_celebration_end_event": { + "event": "minecraft:stop_celebrating", + "target": "self" + } +} +``` + + + +## behavior.celebrate_survive + + + +villager + +#component_groups/minecraft:celebrate + +```json +"minecraft:behavior.celebrate_survive": { + "priority": 5, + "fireworks_interval": { + "range_min": 2.0, + "range_max": 7.0 + }, + "duration": 30.0, + "on_celebration_end_event": { + "event": "minecraft:stop_celebrating", + "target": "self" + } +} +``` + +villager_v2 + +#component_groups/minecraft:celebrate + +```json +"minecraft:behavior.celebrate_survive": { + "priority": 5, + "fireworks_interval": { + "range_min": 2.0, + "range_max": 7.0 + }, + "duration": 30.0, + "on_celebration_end_event": { + "event": "minecraft:stop_celebrating", + "target": "self" + } +} +``` + + + +## behavior.charge_attack + + + +vex + + + +```json +"minecraft:behavior.charge_attack": { + "priority": 4 +} +``` + + + +## behavior.charge_held_item + + + +piglin + +#component_groups/ranged_unit + +```json +"minecraft:behavior.charge_held_item": { + "priority": 3, + "items": [ + "minecraft:arrow" + ] +} +``` + +pillager + + + +```json +"minecraft:behavior.charge_held_item": { + "priority": 3, + "items": [ + "minecraft:arrow" + ] +} +``` + + + +## behavior.circle_around_anchor + + + +phantom + + + +```json +"minecraft:behavior.circle_around_anchor": { + "priority": 3, + "radius_change": 1.0, + "radius_adjustment_chance": 0.004, + "height_adjustment_chance": 0.002857, + "goal_radius": 1.0, + "angle_change": 15.0, + "radius_range": [ + 5.0, + 15.0 + ], + "height_offset_range": [ + -4.0, + 5.0 + ], + "height_above_target_range": [ + 20.0, + 40.0 + ] +} +``` + + + +## behavior.controlled_by_player + + + +pig + +#component_groups/minecraft:pig_saddled + +```json +"minecraft:behavior.controlled_by_player": { + "priority": 0 +} +``` + +strider + +#component_groups/minecraft:strider_saddled + +```json +"minecraft:behavior.controlled_by_player": { + "priority": 0, + "mount_speed_multiplier": 1.45 +} +``` + + + +## behavior.croak + + + +frog + + + +```json +"minecraft:behavior.croak": { + "priority": 9, + "interval": [ + 10, + 20 + ], + "duration": 4.5, + "filters": { + "all_of": [ + { + "test": "in_water", + "value": false + }, + { + "test": "in_lava", + "value": false + } + ] + } +} +``` + + + +## behavior.defend_trusted_target + + + +fox + +#component_groups/minecraft:trusting_fox + +```json +"minecraft:behavior.defend_trusted_target": { + "priority": 0, + "within_radius": 25, + "must_see": false, + "aggro_sound": "mad", + "sound_chance": 0.05, + "on_defend_start": { + "event": "minecraft:fox_configure_defending", + "target": "self" + } +} +``` + + + +## behavior.defend_village_target + + + +iron_golem + +#component_groups/minecraft:village_created + +```json +"minecraft:behavior.defend_village_target": { + "priority": 1, + "must_reach": true, + "attack_chance": 0.05, + "entity_types": { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "mob" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + } + ] + } + } +} +``` + + + +## behavior.delayed_attack + + + +ravager + +#component_groups/minecraft:hostile + +```json +"minecraft:behavior.delayed_attack": { + "priority": 4, + "attack_once": false, + "track_target": true, + "require_complete_path": false, + "random_stop_interval": 0, + "reach_multiplier": 1.5, + "speed_multiplier": 1.0, + "attack_duration": 0.75, + "hit_delay_pct": 0.5 +} +``` + + + +## behavior.dig + + + +warden + + + +```json +"minecraft:behavior.dig": { + "priority": 1, + "duration": 5.5, + "idle_time": 60.0, + "vibration_is_disturbance": true, + "suspicion_is_disturbance": true, + "digs_in_daylight": false, + "on_start": { + "event": "on_digging_event", + "target": "self" + } +} +``` + + + +## behavior.dragonchargeplayer + + + +ender_dragon + +#component_groups/dragon_flying + +```json +"minecraft:behavior.dragonchargeplayer": { + "priority": 1 +} +``` + + + +## behavior.dragondeath + + + +ender_dragon + +#component_groups/dragon_death + +```json +"minecraft:behavior.dragondeath": { + "priority": 0 +} +``` + + + +## behavior.dragonflaming + + + +ender_dragon + +#component_groups/dragon_sitting + +```json +"minecraft:behavior.dragonflaming": { + "priority": 1 +} +``` + + + +## behavior.dragonholdingpattern + + + +ender_dragon + +#component_groups/dragon_flying + +```json +"minecraft:behavior.dragonholdingpattern": { + "priority": 3 +} +``` + + + +## behavior.dragonlanding + + + +ender_dragon + +#component_groups/dragon_sitting + +```json +"minecraft:behavior.dragonlanding": { + "priority": 0 +} +``` + + + +## behavior.dragonscanning + + + +ender_dragon + +#component_groups/dragon_sitting + +```json +"minecraft:behavior.dragonscanning": { + "priority": 2 +} +``` + + + +## behavior.dragonstrafeplayer + + + +ender_dragon + +#component_groups/dragon_flying + +```json +"minecraft:behavior.dragonstrafeplayer": { + "priority": 2 +} +``` + + + +## behavior.dragontakeoff + + + +ender_dragon + +#component_groups/dragon_flying + +```json +"minecraft:behavior.dragontakeoff": { + "priority": 0 +} +``` + + + +## behavior.drink_milk + + + +wandering_trader + + + +```json +"minecraft:behavior.drink_milk": { + "priority": 5, + "filters": { + "all_of": [ + { + "test": "is_daytime", + "value": true + }, + { + "test": "is_visible", + "subject": "self", + "value": false + }, + { + "test": "is_avoiding_mobs", + "subject": "self", + "value": false + } + ] + } +} +``` + + + +## behavior.drink_potion + + + +wandering_trader + + + +```json +"minecraft:behavior.drink_potion": { + "priority": 1, + "speed_modifier": -0.2, + "potions": [ + { + "id": 7, + "chance": 1.0, + "filters": { + "all_of": [ + { + "any_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 18000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 12000 + } + ] + }, + { + "test": "is_visible", + "subject": "self", + "value": true + }, + { + "any_of": [ + { + "test": "is_avoiding_mobs", + "subject": "self", + "value": true + }, + { + "all_of": [ + { + "test": "has_component", + "subject": "self", + "value": "minecraft:angry" + }, + { + "test": "is_family", + "subject": "target", + "operator": "!=", + "value": "player" + } + ] + } + ] + } + ] + } + }, + { + "id": 8, + "chance": 1.0, + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 12000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 18000 + }, + { + "test": "is_visible", + "subject": "self", + "value": true + }, + { + "any_of": [ + { + "test": "is_avoiding_mobs", + "subject": "self", + "value": true + }, + { + "test": "has_component", + "subject": "self", + "value": "minecraft:angry" + } + ] + } + ] + } + } + ] +} +``` + +witch + + + +```json +"minecraft:behavior.drink_potion": { + "priority": 1, + "speed_modifier": -0.25, + "potions": [ + { + "id": 19, + "chance": 0.15, + "filters": { + "all_of": [ + { + "test": "is_underwater", + "subject": "self", + "value": true + }, + { + "none_of": [ + { + "test": "has_mob_effect", + "subject": "self", + "value": "water_breathing" + } + ] + } + ] + } + }, + { + "id": 12, + "chance": 0.15, + "filters": { + "all_of": [ + { + "any_of": [ + { + "test": "on_fire", + "subject": "self", + "value": true + }, + { + "test": "on_hot_block", + "subject": "self", + "value": true + }, + { + "test": "taking_fire_damage", + "subject": "self", + "value": true + } + ] + }, + { + "none_of": [ + { + "test": "has_mob_effect", + "subject": "self", + "value": "fire_resistance" + } + ] + } + ] + } + }, + { + "id": 21, + "chance": 0.05, + "filters": { + "all_of": [ + { + "test": "is_missing_health", + "subject": "self", + "value": true + } + ] + } + }, + { + "id": 14, + "chance": 0.25, + "filters": { + "all_of": [ + { + "test": "has_target", + "subject": "self", + "value": true + }, + { + "none_of": [ + { + "test": "has_mob_effect", + "subject": "self", + "value": "speed" + } + ] + }, + { + "test": "target_distance", + "subject": "self", + "value": 11.0, + "operator": ">=" + } + ] + } + } + ] +} +``` + + + +## behavior.drop_item_for + + + +cat + +#component_groups/minecraft:cat_gift_for_owner + +```json +"minecraft:behavior.drop_item_for": { + "priority": 1, + "seconds_before_pickup": 0.0, + "cooldown": 0.25, + "drop_item_chance": 0.7, + "offering_distance": 5.0, + "minimum_teleport_distance": 2.0, + "max_head_look_at_height": 10.0, + "target_range": [ + 5.0, + 5.0, + 5.0 + ], + "teleport_offset": [ + 0.0, + 1.0, + 0.0 + ], + "time_of_day_range": [ + 0.74999, + 0.8 + ], + "speed_multiplier": 1.0, + "search_range": 5, + "search_height": 2, + "search_count": 0, + "goal_radius": 1.0, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 6 + } + ], + "loot_table": "loot_tables/entities/cat_gift.json", + "on_drop_attempt": { + "event": "minecraft:cat_gifted_owner", + "target": "self" + } +} +``` + + + +## behavior.eat_block + + + +sheep + + + +```json +"minecraft:behavior.eat_block": { + "priority": 6, + "success_chance": "q.is_baby ? 0.02 : 0.001", + "time_until_eat": 1.8, + "eat_and_replace_block_pairs": [ + { + "eat_block": "grass", + "replace_block": "dirt" + }, + { + "eat_block": "tallgrass", + "replace_block": "air" + } + ], + "on_eat": { + "event": "minecraft:on_eat_block", + "target": "self" + } +} +``` + + + +## behavior.eat_carried_item + + + +fox + + + +```json +"minecraft:behavior.eat_carried_item": { + "priority": 12, + "delay_before_eating": 28 +} +``` + + + +## behavior.eat_mob + + + +frog + + + +```json +"minecraft:behavior.eat_mob": { + "priority": 7, + "run_speed": 2.0, + "eat_animation_time": 0.3, + "pull_in_force": 0.75, + "reach_mob_distance": 1.75, + "eat_mob_sound": "tongue", + "loot_table": "loot_tables/entities/frog.json" +} +``` + + + +## behavior.emerge + + + +warden + +#component_groups/emerging + +```json +"minecraft:behavior.emerge": { + "duration": 7.0, + "on_done": { + "event": "minecraft:emerged", + "target": "self" + } +} +``` + + + +## behavior.enderman_leave_block + + + +enderman + + + +```json +"minecraft:behavior.enderman_leave_block": { + "priority": 10 +} +``` + + + +## behavior.enderman_take_block + + + +enderman + + + +```json +"minecraft:behavior.enderman_take_block": { + "priority": 11 +} +``` + + + +## behavior.equip_item + + + +drowned + + + +```json +"minecraft:behavior.equip_item": { + "priority": 3 +} +``` + +fox + + + +```json +"minecraft:behavior.equip_item": { + "priority": 2 +} +``` + +husk + + + +```json +"minecraft:behavior.equip_item": { + "priority": 2 +} +``` + +piglin + + + +```json +"minecraft:behavior.equip_item": { + "priority": 5 +} +``` + +pillager + + + +```json +"minecraft:behavior.equip_item": { + "priority": 3 +} +``` + +skeleton + + + +```json +"minecraft:behavior.equip_item": { + "priority": 3 +} +``` + +stray + + + +```json +"minecraft:behavior.equip_item": { + "priority": 3 +} +``` + +wither_skeleton + + + +```json +"minecraft:behavior.equip_item": { + "priority": 3 +} +``` + + + +## behavior.explore_outskirts + + + +villager_v2 + +#component_groups/job_specific_goals + +```json +"minecraft:behavior.explore_outskirts": {} +``` + +#component_groups/wander_schedule_villager + +```json +"minecraft:behavior.explore_outskirts": { + "priority": 9, + "next_xz": 5, + "next_y": 3, + "min_wait_time": 3.0, + "max_wait_time": 10.0, + "max_travel_time": 60.0, + "speed_multiplier": 0.6, + "explore_dist": 6.0, + "min_perimeter": 1.0, + "min_dist_from_target": 2.5, + "timer_ratio": 2.0, + "dist_from_boundary": [ + 5.0, + 0.0, + 5.0 + ] +} +``` + + + +## behavior.feeling_happy + + + +sniffer + +#component_groups/feeling_happy + +```json +"minecraft:behavior.feeling_happy": { + "priority": 5, + "cooldown_range": 0.0, + "duration_range": [ + 2.0, + 5.0 + ], + "on_end": { + "event": "on_feeling_happy_end", + "target": "self" + } +} +``` + + + +## behavior.fertilize_farm_block + + + +villager_v2 + +#component_groups/work_schedule_farmer + +```json +"minecraft:behavior.fertilize_farm_block": { + "priority": 8 +} +``` + + + +## behavior.find_cover + + + +fox + +#component_groups/minecraft:fox_thunderstorm + +```json +"minecraft:behavior.find_cover": { + "priority": 0, + "speed_multiplier": 1, + "cooldown_time": 0.0 +} +``` + +#component_groups/minecraft:fox_day + +```json +"minecraft:behavior.find_cover": { + "priority": 9, + "speed_multiplier": 1, + "cooldown_time": 5.0 +} +``` + + + +## behavior.find_mount + + + +husk + +#component_groups/minecraft:zombie_husk_jockey + +```json +"minecraft:behavior.find_mount": { + "priority": 1, + "within_radius": 16 +} +``` + +parrot + +#component_groups/minecraft:parrot_tame + +```json +"minecraft:behavior.find_mount": { + "priority": 3, + "within_radius": 16, + "avoid_water": true, + "start_delay": 100, + "target_needed": false, + "mount_distance": 2.0 +} +``` + +piglin + +#component_groups/piglin_jockey + +```json +"minecraft:behavior.find_mount": { + "priority": 1, + "within_radius": 16, + "start_delay": 15, + "max_failed_attempts": 20 +} +``` + +zombie + +#component_groups/minecraft:zombie_jockey + +```json +"minecraft:behavior.find_mount": { + "priority": 1, + "within_radius": 16, + "start_delay": 15, + "max_failed_attempts": 20 +} +``` + +zombie_villager + +#component_groups/jockey + +```json +"minecraft:behavior.find_mount": { + "priority": 1, + "within_radius": 16 +} +``` + +zombie_villager_v2 + +#component_groups/jockey + +```json +"minecraft:behavior.find_mount": { + "priority": 1, + "within_radius": 16 +} +``` + + + +## behavior.find_underwater_treasure + + + +dolphin + + + +```json +"minecraft:behavior.find_underwater_treasure": { + "priority": 2, + "speed_multiplier": 2.0, + "search_range": 30, + "stop_distance": 50 +} +``` + + + +## behavior.flee_sun + + + +drowned + + + +```json +"minecraft:behavior.flee_sun": { + "priority": 2, + "speed_multiplier": 1 +} +``` + +skeleton + + + +```json +"minecraft:behavior.flee_sun": { + "priority": 2, + "speed_multiplier": 1 +} +``` + +stray + + + +```json +"minecraft:behavior.flee_sun": { + "priority": 2, + "speed_multiplier": 1 +} +``` + +zombie_villager + +#component_groups/from_abandoned_village + +```json +"minecraft:behavior.flee_sun": { + "priority": 4, + "speed_multiplier": 1 +} +``` + +zombie_villager_v2 + +#component_groups/from_abandoned_village + +```json +"minecraft:behavior.flee_sun": { + "priority": 4, + "speed_multiplier": 1 +} +``` + + + +## behavior.float + + + +allay + + + +```json +"minecraft:behavior.float": { + "priority": 7 +} +``` + +bat + + + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +bee + + + +```json +"minecraft:behavior.float": { + "priority": 19 +} +``` + +blaze + + + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +camel + + + +```json +"minecraft:behavior.float": { + "priority": 0, + "sink_with_passengers": true +} +``` + +cat + + + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +cave_spider + + + +```json +"minecraft:behavior.float": { + "priority": 1 +} +``` + +chicken + + + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + + + +## behavior.float_wander + + + +bat + + + +```json +"minecraft:behavior.float_wander": { + "xz_dist": 10, + "y_dist": 7, + "y_offset": -2.0, + "random_reselect": true, + "float_duration": [ + 0.1, + 0.35 + ] +} +``` + +ghast + + + +```json +"minecraft:behavior.float_wander": { + "priority": 2, + "must_reach": true +} +``` + + + +## behavior.follow_caravan + + + +llama + + + +```json +"minecraft:behavior.follow_caravan": { + "priority": 3, + "speed_multiplier": 2.1, + "entity_count": 10, + "entity_types": { + "filters": { + "test": "is_family", + "subject": "other", + "value": "llama" + } + } +} +``` + +trader_llama + + + +```json +"minecraft:behavior.follow_caravan": { + "priority": 3, + "speed_multiplier": 2.1, + "entity_count": 10, + "entity_types": { + "filters": { + "test": "is_family", + "subject": "other", + "value": "llama" + } + } +} +``` + + + +## behavior.follow_mob + + + +parrot + +#component_groups/minecraft:parrot_wild + +```json +"minecraft:behavior.follow_mob": { + "priority": 3, + "speed_multiplier": 1.0, + "stop_distance": 3, + "search_range": 20 +} +``` + + + +## behavior.follow_owner + + + +allay + + + +```json +"minecraft:behavior.follow_owner": { + "priority": 6, + "speed_multiplier": 8, + "start_distance": 16, + "stop_distance": 4, + "can_teleport": false, + "ignore_vibration": false +} +``` + +cat + +#component_groups/minecraft:cat_tame + +```json +"minecraft:behavior.follow_owner": { + "priority": 4, + "speed_multiplier": 1.0, + "start_distance": 10, + "stop_distance": 2 +} +``` + +ocelot + +#component_groups/minecraft:ocelot_tame + +```json +"minecraft:behavior.follow_owner": { + "priority": 4, + "speed_multiplier": 1.0, + "start_distance": 10, + "stop_distance": 2 +} +``` + +parrot + +#component_groups/minecraft:parrot_tame + +```json +"minecraft:behavior.follow_owner": { + "priority": 2, + "speed_multiplier": 1.0, + "start_distance": 5, + "stop_distance": 1 +} +``` + +wolf + +#component_groups/minecraft:wolf_tame + +```json +"minecraft:behavior.follow_owner": { + "priority": 6, + "speed_multiplier": 1.0, + "start_distance": 10, + "stop_distance": 2 +} +``` + + + +## behavior.follow_parent + + + +axolotl + +#component_groups/axolotl_baby + +```json +"minecraft:behavior.follow_parent": { + "priority": 5, + "speed_multiplier": 1.1 +} +``` + +bee + +#component_groups/bee_baby + +```json +"minecraft:behavior.follow_parent": { + "priority": 11, + "speed_multiplier": 1.1 +} +``` + +camel + +#component_groups/minecraft:camel_baby + +```json +"minecraft:behavior.follow_parent": { + "priority": 5, + "speed_multiplier": 2.5 +} +``` + +chicken + +#component_groups/minecraft:chicken_baby + +```json +"minecraft:behavior.follow_parent": { + "priority": 5, + "speed_multiplier": 1.1 +} +``` + +cow + + + +```json +"minecraft:behavior.follow_parent": { + "priority": 5, + "speed_multiplier": 1.1 +} +``` + +#component_groups/minecraft:cow_baby + +```json +"minecraft:behavior.follow_parent": { + "priority": 6, + "speed_multiplier": 1.1 +} +``` + +dolphin + +#component_groups/dolphin_baby + +```json +"minecraft:behavior.follow_parent": { + "priority": 4, + "speed_multiplier": 1.1 +} +``` + +donkey + +#component_groups/minecraft:donkey_baby + +```json +"minecraft:behavior.follow_parent": { + "priority": 4, + "speed_multiplier": 1.0 +} +``` + + + +## behavior.follow_target_captain + + + +pillager + +#component_groups/minecraft:patrol_follower + +```json +"minecraft:behavior.follow_target_captain": { + "priority": 5, + "speed_multiplier": 0.8, + "within_radius": 64, + "follow_distance": 5 +} +``` + +vindicator + +#component_groups/minecraft:patrol_follower + +```json +"minecraft:behavior.follow_target_captain": { + "priority": 5, + "speed_multiplier": 0.8, + "within_radius": 64, + "follow_distance": 5 +} +``` + + + +## behavior.go_and_give_items_to_noteblock + + + +allay + + + +```json +"minecraft:behavior.go_and_give_items_to_noteblock": { + "priority": 3, + "run_speed": 8, + "throw_sound": "item_thrown", + "on_item_throw": [ + { + "event": "pickup_item_delay", + "target": "self" + } + ] +} +``` + + + +## behavior.go_and_give_items_to_owner + + + +allay + + + +```json +"minecraft:behavior.go_and_give_items_to_owner": { + "priority": 4, + "run_speed": 8, + "throw_sound": "item_thrown", + "on_item_throw": [ + { + "event": "pickup_item_delay", + "target": "self" + } + ] +} +``` + + + +## behavior.go_home + + + +bee + +#component_groups/return_to_home + +```json +"minecraft:behavior.go_home": { + "priority": 4, + "speed_multiplier": 1.0, + "interval": 1, + "goal_radius": 1.2, + "on_home": [ + { + "filters": { + "any_of": [ + { + "test": "is_block", + "subject": "block", + "value": "minecraft:bee_nest" + }, + { + "test": "is_block", + "subject": "block", + "value": "minecraft:beehive" + } + ] + }, + "event": "minecraft:bee_returned_to_hive", + "target": "block" + }, + { + "filters": { + "all_of": [ + { + "test": "is_block", + "subject": "block", + "operator": "!=", + "value": "minecraft:bee_nest" + }, + { + "test": "is_block", + "subject": "block", + "operator": "!=", + "value": "minecraft:beehive" + } + ] + }, + "event": "find_hive_event", + "target": "self" + } + ], + "on_failed": [ + { + "event": "find_hive_event", + "target": "self" + } + ] +} +``` + +piglin_brute + +#component_groups/go_back_to_spawn + +```json +"minecraft:behavior.go_home": { + "priority": 6, + "interval": 200, + "speed_multiplier": 0.6, + "goal_radius": 4.0, + "on_failed": [ + { + "event": "go_back_to_spawn_failed", + "target": "self" + } + ] +} +``` + +turtle + +#component_groups/minecraft:pregnant + +```json +"minecraft:behavior.go_home": { + "priority": 1, + "speed_multiplier": 1.0, + "interval": 700, + "goal_radius": 4.0, + "on_home": [ + { + "event": "minecraft:go_lay_egg", + "target": "self" + } + ] +} +``` + + + +## behavior.guardian_attack + + + +elder_guardian + + + +```json +"minecraft:behavior.guardian_attack": { + "priority": 4 +} +``` + +guardian + + + +```json +"minecraft:behavior.guardian_attack": { + "priority": 4 +} +``` + +#component_groups/minecraft:guardian_aggressive + +```json +"minecraft:behavior.guardian_attack": { + "priority": 4 +} +``` + + + +## behavior.harvest_farm_block + + + +villager + +#component_groups/behavior_peasant + +```json +"minecraft:behavior.harvest_farm_block": { + "priority": 9, + "speed_multiplier": 0.5 +} +``` + +villager_v2 + +#component_groups/job_specific_goals + +```json +"minecraft:behavior.harvest_farm_block": {} +``` + +#component_groups/work_schedule_farmer + +```json +"minecraft:behavior.harvest_farm_block": { + "priority": 7 +} +``` + + + +## behavior.hide + + + +villager_v2 + + + +```json +"minecraft:behavior.hide": { + "priority": 0, + "speed_multiplier": 0.8, + "poi_type": "bed", + "duration": 30.0 +} +``` + + + +## behavior.hold_ground + + + +pillager + +#component_groups/minecraft:patrol_captain + +```json +"minecraft:behavior.hold_ground": { + "priority": 5, + "min_radius": 10, + "broadcast": true, + "broadcast_range": 8, + "within_radius_event": { + "event": "minecraft:ranged_mode", + "target": "self" + } +} +``` + +#component_groups/minecraft:patrol_follower + +```json +"minecraft:behavior.hold_ground": { + "priority": 6, + "min_radius": 10, + "broadcast": true, + "broadcast_range": 8, + "within_radius_event": { + "event": "minecraft:ranged_mode", + "target": "self" + } +} +``` + + + +## behavior.hurt_by_target + + + +bee + +#component_groups/track_attacker + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +blaze + + + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +cave_spider + + + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +creeper + + + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 2 +} +``` + +dolphin + + + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +drowned + + + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +enderman + + + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 3 +} +``` + +evocation_illager + + + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + + + +## behavior.inspect_bookshelf + + + +villager_v2 + +#component_groups/job_specific_goals + +```json +"minecraft:behavior.inspect_bookshelf": {} +``` + +#component_groups/work_schedule_librarian + +```json +"minecraft:behavior.inspect_bookshelf": { + "priority": 8, + "speed_multiplier": 0.6, + "search_range": 4, + "search_height": 3, + "goal_radius": 0.8, + "search_count": 0 +} +``` + + + +## behavior.investigate_suspicious_location + + + +warden + + + +```json +"minecraft:behavior.investigate_suspicious_location": { + "priority": 5, + "speed_multiplier": 0.7 +} +``` + + + +## behavior.jump_to_block + + + +frog + + + +```json +"minecraft:behavior.jump_to_block": { + "priority": 10, + "search_width": 8, + "search_height": 4, + "minimum_path_length": 2, + "minimum_distance": 1, + "scale_factor": 0.6, + "max_velocity": 1, + "cooldown_range": [ + 5, + 7 + ], + "preferred_blocks": [ + "minecraft:waterlily", + "minecraft:big_dripleaf" + ], + "preferred_blocks_chance": 0.5, + "forbidden_blocks": [ + "minecraft:water" + ] +} +``` + +goat + + + +```json +"minecraft:behavior.jump_to_block": { + "priority": 8, + "search_width": 10, + "search_height": 10, + "minimum_path_length": 8, + "minimum_distance": 1, + "scale_factor": 0.6, + "cooldown_range": [ + 30, + 60 + ] +} +``` + + + +## behavior.knockback_roar + + + +ravager + +#component_groups/roaring + +```json +"minecraft:behavior.knockback_roar": { + "priority": 1, + "duration": 1, + "attack_time": 0.5, + "knockback_damage": 6, + "knockback_horizontal_strength": 3, + "knockback_vertical_strength": 3, + "knockback_range": 4, + "knockback_filters": { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "ravager" + }, + "damage_filters": { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "illager" + }, + "on_roar_end": { + "event": "minecraft:end_roar" + }, + "cooldown_time": 0.1 +} +``` + + + +## behavior.lay_down + + + +panda + +#component_groups/minecraft:panda_lazy + +```json +"minecraft:behavior.lay_down": { + "priority": 5, + "interval": 400, + "random_stop_interval": 2000 +} +``` + + + +## behavior.lay_egg + + + +frog + +#component_groups/pregnant + +```json +"minecraft:behavior.lay_egg": { + "priority": 2, + "speed_multiplier": 1.0, + "search_range": 10, + "search_height": 3, + "goal_radius": 1.7, + "target_blocks": [ + "minecraft:water" + ], + "target_materials_above_block": [ + "Air" + ], + "allow_laying_from_below": true, + "use_default_animation": false, + "lay_seconds": 2, + "egg_type": "minecraft:frog_spawn", + "lay_egg_sound": "lay_spawn", + "on_lay": { + "event": "laid_egg", + "target": "self" + } +} +``` + +turtle + +#component_groups/minecraft:wants_to_lay_egg + +```json +"minecraft:behavior.lay_egg": { + "priority": 1, + "speed_multiplier": 1.0, + "search_range": 16, + "search_height": 4, + "goal_radius": 1.5, + "on_lay": { + "event": "minecraft:laid_egg", + "target": "self" + } +} +``` + + + +## behavior.leap_at_target + + + +cat + + + +```json +"minecraft:behavior.leap_at_target": { + "priority": 3, + "target_dist": 0.3 +} +``` + +cave_spider + +#component_groups/minecraft:spider_hostile + +```json +"minecraft:behavior.leap_at_target": { + "priority": 4, + "yd": 0.4, + "must_be_on_ground": false +} +``` + +#component_groups/minecraft:spider_angry + +```json +"minecraft:behavior.leap_at_target": { + "priority": 4, + "yd": 0.4, + "must_be_on_ground": false +} +``` + +ocelot + + + +```json +"minecraft:behavior.leap_at_target": { + "priority": 3, + "target_dist": 0.3 +} +``` + +spider + +#component_groups/minecraft:spider_angry + +```json +"minecraft:behavior.leap_at_target": { + "priority": 4, + "yd": 0.4, + "must_be_on_ground": false +} +``` + +wolf + + + +```json +"minecraft:behavior.leap_at_target": { + "priority": 4, + "target_dist": 0.4 +} +``` + + + +## behavior.look_at_entity + + + +evocation_illager + + + +```json +"minecraft:behavior.look_at_entity": { + "priority": 10, + "look_distance": 8.0, + "filters": { + "test": "is_family", + "subject": "other", + "value": "mob" + } +} +``` + +ravager + +#component_groups/minecraft:hostile + +```json +"minecraft:behavior.look_at_entity": { + "priority": 10, + "look_distance": 8, + "angle_of_view_horizontal": 45, + "filters": { + "test": "is_family", + "subject": "other", + "value": "mob" + } +} +``` + +vex + + + +```json +"minecraft:behavior.look_at_entity": { + "priority": 9, + "look_distance": 6.0, + "probability": 0.02, + "filters": { + "test": "is_family", + "subject": "other", + "value": "mob" + } +} +``` + + + +## behavior.look_at_player + + + +allay + + + +```json +"minecraft:behavior.look_at_player": { + "priority": 8, + "target_distance": 6.0, + "probability": 0.02 +} +``` + +axolotl + + + +```json +"minecraft:behavior.look_at_player": { + "priority": 10, + "target_distance": 6.0, + "probability": 0.02 +} +``` + +camel + + + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "target_distance": 6.0, + "probability": 0.02 +} +``` + +cat + + + +```json +"minecraft:behavior.look_at_player": { + "priority": 9 +} +``` + +cave_spider + + + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +chicken + + + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +cow + + + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +creeper + + + +```json +"minecraft:behavior.look_at_player": { + "priority": 6, + "look_distance": 8 +} +``` + + + +## behavior.look_at_target + + + +wither + + + +```json +"minecraft:behavior.look_at_target": { + "priority": 5 +} +``` + + + +## behavior.look_at_trading_player + + + +villager + + + +```json +"minecraft:behavior.look_at_trading_player": { + "priority": 2 +} +``` + +villager_v2 + + + +```json +"minecraft:behavior.look_at_trading_player": { + "priority": 7 +} +``` + +wandering_trader + + + +```json +"minecraft:behavior.look_at_trading_player": { + "priority": 4 +} +``` + + + +## behavior.make_love + + + +villager + +#component_groups/adult + +```json +"minecraft:behavior.make_love": { + "priority": 6 +} +``` + +villager_v2 + +#component_groups/make_and_receive_love + +```json +"minecraft:behavior.make_love": { + "priority": 5 +} +``` + + + +## behavior.melee_attack + + + +axolotl + + + +```json +"minecraft:behavior.melee_attack": { + "priority": 4, + "on_kill": { + "event": "killed_enemy_event", + "target": "self" + } +} +``` + +bee + +#component_groups/angry_bee + +```json +"minecraft:behavior.melee_attack": { + "priority": 2, + "attack_once": true, + "speed_multiplier": 1.4, + "on_attack": { + "event": "countdown_to_perish_event", + "target": "self" + } +} +``` + +blaze + +#component_groups/melee_mode + +```json +"minecraft:behavior.melee_attack": { + "priority": 3 +} +``` + +cave_spider + +#component_groups/minecraft:spider_hostile + +```json +"minecraft:behavior.melee_attack": { + "priority": 3, + "track_target": true, + "random_stop_interval": 100, + "reach_multiplier": 0.8 +} +``` + +#component_groups/minecraft:spider_angry + +```json +"minecraft:behavior.melee_attack": { + "priority": 3, + "track_target": true, + "reach_multiplier": 1.4 +} +``` + +creeper + + + +```json +"minecraft:behavior.melee_attack": { + "priority": 4, + "speed_multiplier": 1.25, + "track_target": false, + "reach_multiplier": 0.0 +} +``` + +dolphin + +#component_groups/dolphin_adult + +```json +"minecraft:behavior.melee_attack": { + "priority": 2, + "track_target": true +} +``` + +drowned + +#component_groups/minecraft:melee_mode + +```json +"minecraft:behavior.melee_attack": { + "priority": 3, + "speed_multiplier": 1, + "track_target": false, + "require_complete_path": true +} +``` + + + +## behavior.mingle + + + +villager_v2 + +#component_groups/job_specific_goals + +```json +"minecraft:behavior.mingle": {} +``` + +#component_groups/gather_schedule_villager + +```json +"minecraft:behavior.mingle": { + "priority": 7, + "speed_multiplier": 0.5, + "duration": 30, + "cooldown_time": 10, + "mingle_partner_type": "minecraft:villager_v2", + "mingle_distance": 2.0 +} +``` + + + +## behavior.mount_pathing + + + +cat + + + +```json +"minecraft:behavior.mount_pathing": { + "priority": 1, + "speed_multiplier": 1.25, + "target_dist": 0, + "track_target": true +} +``` + +cave_spider + + + +```json +"minecraft:behavior.mount_pathing": { + "priority": 5, + "speed_multiplier": 1.25, + "target_dist": 0.0, + "track_target": true +} +``` + +chicken + + + +```json +"minecraft:behavior.mount_pathing": { + "priority": 2, + "speed_multiplier": 1.5, + "target_dist": 0.0, + "track_target": true +} +``` + +cow + + + +```json +"minecraft:behavior.mount_pathing": { + "priority": 2, + "speed_multiplier": 1.5, + "target_dist": 0.0, + "track_target": true +} +``` + +donkey + +#component_groups/minecraft:donkey_wild + +```json +"minecraft:behavior.mount_pathing": { + "priority": 2, + "speed_multiplier": 1.5, + "target_dist": 0.0, + "track_target": true +} +``` + +horse + +#component_groups/minecraft:horse_wild + +```json +"minecraft:behavior.mount_pathing": { + "priority": 2, + "speed_multiplier": 1.5, + "target_dist": 0.0, + "track_target": true +} +``` + +husk + +#component_groups/minecraft:zombie_husk_adult + +```json +"minecraft:behavior.mount_pathing": { + "priority": 2, + "speed_multiplier": 1.25, + "target_dist": 0.0, + "track_target": true +} +``` + +llama + + + +```json +"minecraft:behavior.mount_pathing": { + "priority": 1, + "speed_multiplier": 1.25, + "target_dist": 0.0, + "track_target": true +} +``` + + + +## behavior.move_indoors + + + +villager + + + +```json +"minecraft:behavior.move_indoors": { + "priority": 4, + "speed_multiplier": 0.8 +} +``` + +villager_v2 + + + +```json +"minecraft:behavior.move_indoors": { + "priority": 6, + "speed_multiplier": 0.8, + "timeout_cooldown": 8.0 +} +``` + + + +## behavior.move_outdoors + + + +villager + +#component_groups/minecraft:celebrate + +```json +"minecraft:behavior.move_outdoors": { + "priority": 2, + "speed_multiplier": 0.8, + "timeout_cooldown": 8.0 +} +``` + +villager_v2 + +#component_groups/minecraft:celebrate + +```json +"minecraft:behavior.move_outdoors": { + "priority": 2, + "speed_multiplier": 0.8, + "timeout_cooldown": 8.0 +} +``` + + + +## behavior.move_through_village + + + +iron_golem + + + +```json +"minecraft:behavior.move_through_village": { + "priority": 3, + "speed_multiplier": 0.6, + "only_at_night": true +} +``` + + + +## behavior.move_to_block + + + +bee + +#component_groups/look_for_food + +```json +"minecraft:behavior.move_to_block": { + "priority": 10, + "tick_interval": 1, + "start_chance": 0.5, + "search_range": 6, + "search_height": 4, + "goal_radius": 1.0, + "stay_duration": 20.0, + "target_selection_method": "random", + "target_offset": [ + 0, + 0.25, + 0 + ], + "target_block_filters": { + "test": "is_waterlogged", + "subject": "block", + "operator": "==", + "value": false + }, + "target_blocks": [ + "minecraft:red_flower", + "minecraft:yellow_flower", + "minecraft:wither_rose", + "minecraft:double_plant:8", + "minecraft:double_plant:9", + "minecraft:double_plant:12", + "minecraft:double_plant:13", + "minecraft:flowering_azalea", + "minecraft:azalea_leaves_flowered", + "minecraft:mangrove_propagule", + "minecraft:pitcher_plant", + "minecraft:torchflower", + "minecraft:cherry_leaves", + "minecraft:pink_petals" + ], + "on_stay_completed": [ + { + "event": "collected_nectar", + "target": "self" + } + ] +} +``` + +#component_groups/find_hive + +```json +"minecraft:behavior.move_to_block": { + "priority": 10, + "search_range": 16, + "search_height": 10, + "tick_interval": 1, + "goal_radius": 0.633, + "target_blocks": [ + "bee_nest", + "beehive" + ], + "on_reach": [ + { + "event": "minecraft:bee_returned_to_hive", + "target": "block" + } + ] +} +``` + + + +## behavior.move_to_land + + + +frog + + + +```json +"minecraft:behavior.move_to_land": { + "priority": 6, + "search_range": 30, + "search_height": 8, + "search_count": 80, + "goal_radius": 2 +} +``` + +turtle + +#component_groups/minecraft:adult + +```json +"minecraft:behavior.move_to_land": { + "priority": 6, + "search_range": 16, + "search_height": 5, + "goal_radius": 0.5 +} +``` + + + +## behavior.move_to_liquid + + + +strider + +#component_groups/minecraft:strider_pathing_behaviors + +```json +"minecraft:behavior.move_to_liquid": { + "priority": 7, + "search_range": 16, + "search_height": 10, + "goal_radius": 0.9, + "material_type": "Lava", + "search_count": 30 +} +``` + + + +## behavior.move_to_random_block + + + +pillager + +#component_groups/minecraft:patrol_captain + +```json +"minecraft:behavior.move_to_random_block": { + "priority": 6, + "speed_multiplier": 0.55, + "within_radius": 8, + "block_distance": 512 +} +``` + +vindicator + +#component_groups/minecraft:patrol_captain + +```json +"minecraft:behavior.move_to_random_block": { + "priority": 5, + "speed_multiplier": 0.55, + "within_radius": 8, + "block_distance": 512 +} +``` + + + +## behavior.move_to_village + + + +evocation_illager + +#component_groups/minecraft:raid_configuration + +```json +"minecraft:behavior.move_to_village": { + "priority": 6, + "speed_multiplier": 0.7 +} +``` + +pillager + +#component_groups/minecraft:raid_configuration + +```json +"minecraft:behavior.move_to_village": { + "priority": 5, + "speed_multiplier": 1.0, + "goal_radius": 2.0 +} +``` + +ravager + +#component_groups/minecraft:raid_configuration + +```json +"minecraft:behavior.move_to_village": { + "priority": 5, + "speed_multiplier": 1.0, + "goal_radius": 2.0 +} +``` + +vindicator + +#component_groups/minecraft:raid_configuration + +```json +"minecraft:behavior.move_to_village": { + "priority": 4, + "speed_multiplier": 1.0, + "goal_radius": 2.0 +} +``` + +witch + +#component_groups/minecraft:raid_configuration + +```json +"minecraft:behavior.move_to_village": { + "priority": 3, + "speed_multiplier": 1.2, + "goal_radius": 2.0 +} +``` + + + +## behavior.move_to_water + + + +axolotl + + + +```json +"minecraft:behavior.move_to_water": { + "priority": 6, + "search_range": 16, + "search_height": 5, + "search_count": 1, + "goal_radius": 0.1 +} +``` + +dolphin + + + +```json +"minecraft:behavior.move_to_water": { + "priority": 1, + "search_range": 15, + "search_height": 5 +} +``` + +frog + +#component_groups/pregnant + +```json +"minecraft:behavior.move_to_water": { + "priority": 3, + "search_range": 20, + "search_height": 5, + "goal_radius": 1.5 +} +``` + +turtle + + + +```json +"minecraft:behavior.move_to_water": { + "priority": 4, + "search_range": 16, + "search_height": 5, + "goal_radius": 1.5 +} +``` + +#component_groups/minecraft:baby + +```json +"minecraft:behavior.move_to_water": { + "priority": 1, + "search_range": 15, + "search_height": 5, + "goal_radius": 0.1 +} +``` + + + +## behavior.move_towards_dwelling_restriction + + + +cat + +#component_groups/minecraft:cat_wild + +```json +"minecraft:behavior.move_towards_dwelling_restriction": { + "priority": 7 +} +``` + +iron_golem + + + +```json +"minecraft:behavior.move_towards_dwelling_restriction": { + "priority": 4, + "speed_multiplier": 1 +} +``` + +villager_v2 + + + +```json +"minecraft:behavior.move_towards_dwelling_restriction": { + "priority": 11, + "speed_multiplier": 0.6 +} +``` + + + +## behavior.move_towards_home_restriction + + + +bee + + + +```json +"minecraft:behavior.move_towards_home_restriction": { + "priority": 9 +} +``` + +elder_guardian + + + +```json +"minecraft:behavior.move_towards_home_restriction": { + "priority": 5, + "speed_multiplier": 1.0 +} +``` + +guardian + + + +```json +"minecraft:behavior.move_towards_home_restriction": { + "priority": 5, + "speed_multiplier": 1.0 +} +``` + +wandering_trader + + + +```json +"minecraft:behavior.move_towards_home_restriction": { + "priority": 6, + "speed_multiplier": 0.6 +} +``` + + + +## behavior.move_towards_target + + + +iron_golem + + + +```json +"minecraft:behavior.move_towards_target": { + "priority": 2, + "speed_multiplier": 0.9, + "within_radius": 32 +} +``` + + + +## behavior.nap + + + +fox + +#component_groups/minecraft:fox_day + +```json +"minecraft:behavior.nap": { + "priority": 8, + "cooldown_min": 2.0, + "cooldown_max": 7.0, + "mob_detect_dist": 12.0, + "mob_detect_height": 6.0, + "can_nap_filters": { + "all_of": [ + { + "test": "in_water", + "subject": "self", + "operator": "==", + "value": false + }, + { + "test": "on_ground", + "subject": "self", + "operator": "==", + "value": true + }, + { + "test": "is_underground", + "subject": "self", + "operator": "==", + "value": true + }, + { + "test": "weather_at_position", + "subject": "self", + "operator": "!=", + "value": "thunderstorm" + } + ] + }, + "wake_mob_exceptions": { + "any_of": [ + { + "test": "trusts", + "subject": "other", + "operator": "==", + "value": true + }, + { + "test": "is_family", + "subject": "other", + "operator": "==", + "value": "fox" + }, + { + "test": "is_sneaking", + "subject": "other", + "operator": "==", + "value": true + } + ] + } +} +``` + + + +## behavior.nearest_attackable_target + + + +axolotl + + + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 3, + "must_see": true, + "reselect_targets": true, + "within_radius": 20.0, + "must_see_forget_duration": 17.0, + "entity_types": [ + { + "filters": { + "all_of": [ + { + "test": "in_water", + "subject": "other", + "value": true + }, + { + "test": "has_component", + "subject": "self", + "operator": "!=", + "value": "minecraft:attack_cooldown" + }, + { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "squid" + }, + { + "test": "is_family", + "subject": "other", + "value": "fish" + }, + { + "test": "is_family", + "subject": "other", + "value": "tadpole" + } + ] + } + ] + }, + "max_dist": 8 + }, + { + "filters": { + "all_of": [ + { + "test": "in_water", + "subject": "other", + "value": true + }, + { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "drowned" + }, + { + "test": "is_family", + "subject": "other", + "value": "guardian" + }, + { + "test": "is_family", + "subject": "other", + "value": "guardian_elder" + } + ] + } + ] + }, + "max_dist": 8 + } + ] +} +``` + +bee + +#component_groups/take_nearest_target + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 10 + } + ] +} +``` + +blaze + + + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "must_see": true, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 48.0 + } + ] +} +``` + +cat + +#component_groups/minecraft:cat_wild + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 1, + "reselect_targets": true, + "within_radius": 16.0, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "rabbit" + }, + "max_dist": 8 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "baby_turtle" + }, + { + "test": "in_water", + "subject": "other", + "operator": "!=", + "value": true + } + ] + }, + "max_dist": 8 + } + ] +} +``` + +cave_spider + +#component_groups/minecraft:spider_hostile + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "must_see": true, + "attack_interval": 5, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "snowgolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + } + ] + }, + "max_dist": 16 + } + ] +} +``` + +#component_groups/minecraft:spider_angry + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "must_see": true, + "attack_interval": 10, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "snowgolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + } + ] + }, + "max_dist": 16 + } + ] +} +``` + +creeper + + + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 1, + "must_see": true, + "must_see_forget_duration": 3.0, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 16 + } + ] +} +``` + +drowned + + + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "reselect_targets": true, + "must_see": true, + "within_radius": 12.0, + "must_see_forget_duration": 17.0, + "persist_time": 0.5, + "entity_types": [ + { + "filters": { + "all_of": [ + { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "snowgolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "axolotl" + } + ] + }, + { + "any_of": [ + { + "test": "in_water", + "subject": "other", + "value": true + }, + { + "test": "is_daytime", + "value": false + } + ] + } + ] + }, + "max_dist": 20 + }, + { + "filters": { + "all_of": [ + { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "villager" + }, + { + "test": "is_family", + "subject": "other", + "value": "wandering_trader" + } + ] + }, + { + "any_of": [ + { + "test": "in_water", + "subject": "other", + "value": true + }, + { + "test": "is_daytime", + "value": false + } + ] + } + ] + }, + "max_dist": 20, + "must_see": false + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "baby_turtle" + }, + { + "test": "in_water", + "subject": "other", + "operator": "!=", + "value": true + } + ] + }, + "max_dist": 20 + } + ] +} +``` + + + +## behavior.nearest_prioritized_attackable_target + + + +fox + +#component_groups/minecraft:fox_red + +```json +"minecraft:behavior.nearest_prioritized_attackable_target": { + "priority": 6, + "attack_interval": 2, + "reselect_targets": true, + "target_search_height": 5, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "rabbit" + }, + "max_dist": 12, + "priority": 0 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "chicken" + }, + "max_dist": 12, + "priority": 0 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "cod" + }, + "max_dist": 12, + "priority": 1 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "salmon" + }, + "max_dist": 12, + "priority": 1 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "tropicalfish" + }, + "max_dist": 12, + "priority": 1 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "baby_turtle" + }, + { + "test": "in_water", + "subject": "other", + "operator": "!=", + "value": true + } + ] + }, + "max_dist": 12, + "priority": 0 + } + ] +} +``` + +#component_groups/minecraft:fox_arctic + +```json +"minecraft:behavior.nearest_prioritized_attackable_target": { + "priority": 6, + "attack_interval": 2, + "reselect_targets": true, + "target_search_height": 5, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "rabbit" + }, + "max_dist": 12, + "priority": 1 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "chicken" + }, + "max_dist": 12, + "priority": 1 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "cod" + }, + "max_dist": 12, + "priority": 0 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "salmon" + }, + "max_dist": 12, + "priority": 0 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "tropicalfish" + }, + "max_dist": 12, + "priority": 0 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "baby_turtle" + }, + { + "test": "in_water", + "subject": "other", + "operator": "!=", + "value": true + } + ] + }, + "max_dist": 12, + "priority": 1 + } + ] +} +``` + +piglin_brute + +#component_groups/alert_for_attack_targets + +```json +"minecraft:behavior.nearest_prioritized_attackable_target": { + "priority": 3, + "within_radius": 12.0, + "persist_time": 2.0, + "must_see": true, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 12, + "priority": 0 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "wither" + }, + "max_dist": 12, + "priority": 1 + } + ] +} +``` + + + +## behavior.ocelot_sit_on_block + + + +cat + +#component_groups/minecraft:cat_tame + +```json +"minecraft:behavior.ocelot_sit_on_block": { + "priority": 7, + "speed_multiplier": 1.0 +} +``` + +ocelot + +#component_groups/minecraft:ocelot_tame + +```json +"minecraft:behavior.ocelot_sit_on_block": { + "priority": 6, + "speed_multiplier": 1.0 +} +``` + + + +## behavior.ocelotattack + + + +cat + + + +```json +"minecraft:behavior.ocelotattack": { + "priority": 4, + "cooldown_time": 1.0, + "x_max_rotation": 30.0, + "y_max_head_rotation": 30.0, + "max_distance": 15.0, + "max_sneak_range": 15.0, + "max_sprint_range": 4.0, + "reach_multiplier": 2.0, + "sneak_speed_multiplier": 0.6, + "sprint_speed_multiplier": 1.33, + "walk_speed_multiplier": 0.8 +} +``` + +ocelot + + + +```json +"minecraft:behavior.ocelotattack": { + "priority": 4, + "cooldown_time": 1.0, + "x_max_rotation": 30.0, + "y_max_head_rotation": 30.0, + "max_distance": 15.0, + "max_sneak_range": 15.0, + "max_sprint_range": 4.0, + "reach_multiplier": 2.0, + "sneak_speed_multiplier": 0.6, + "sprint_speed_multiplier": 1.33, + "walk_speed_multiplier": 0.8 +} +``` + + + +## behavior.offer_flower + + + +iron_golem + + + +```json +"minecraft:behavior.offer_flower": { + "priority": 5, + "filters": { + "all_of": [ + { + "test": "is_daytime", + "value": true + } + ] + } +} +``` + + + +## behavior.open_door + + + +villager + + + +```json +"minecraft:behavior.open_door": { + "priority": 6, + "close_door_after": true +} +``` + + + +## behavior.owner_hurt_by_target + + + +wolf + +#component_groups/minecraft:wolf_tame + +```json +"minecraft:behavior.owner_hurt_by_target": { + "priority": 1 +} +``` + + + +## behavior.owner_hurt_target + + + +wolf + +#component_groups/minecraft:wolf_tame + +```json +"minecraft:behavior.owner_hurt_target": { + "priority": 2 +} +``` + + + +## behavior.panic + + + +allay + + + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 2.0 +} +``` + +bee + +#component_groups/escape_fire + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.25, + "force": true +} +``` + +#component_groups/countdown_to_perish + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.25, + "force": true +} +``` + +camel + + + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 4 +} +``` + +cat + + + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.25 +} +``` + +chicken + + + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.5 +} +``` + +cow + + + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.25 +} +``` + +dolphin + +#component_groups/dolphin_baby + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.25 +} +``` + + + +## behavior.pet_sleep_with_owner + + + +cat + +#component_groups/minecraft:cat_tame + +```json +"minecraft:behavior.pet_sleep_with_owner": { + "priority": 2, + "speed_multiplier": 1.2, + "search_radius": 10, + "search_height": 10, + "goal_radius": 1.0 +} +``` + + + +## behavior.pickup_items + + + +allay + +#component_groups/pickup_item + +```json +"minecraft:behavior.pickup_items": { + "priority": 2, + "max_dist": 32, + "search_height": 32, + "goal_radius": 2.2, + "speed_multiplier": 6, + "pickup_based_on_chance": false, + "can_pickup_any_item": false, + "can_pickup_to_hand_or_equipment": false, + "pickup_same_items_as_in_hand": true +} +``` + +drowned + + + +```json +"minecraft:behavior.pickup_items": { + "priority": 6, + "max_dist": 3, + "goal_radius": 2, + "speed_multiplier": 1.0, + "pickup_based_on_chance": true, + "can_pickup_any_item": true, + "excluded_items": [ + "minecraft:glow_ink_sac" + ] +} +``` + +fox + + + +```json +"minecraft:behavior.pickup_items": { + "priority": 11, + "max_dist": 3, + "goal_radius": 2, + "speed_multiplier": 0.5 +} +``` + +husk + + + +```json +"minecraft:behavior.pickup_items": { + "priority": 6, + "max_dist": 3, + "goal_radius": 2, + "speed_multiplier": 1.0, + "pickup_based_on_chance": true, + "can_pickup_any_item": true, + "excluded_items": [ + "minecraft:glow_ink_sac" + ] +} +``` + +piglin + + + +```json +"minecraft:behavior.pickup_items": { + "priority": 6, + "max_dist": 10, + "goal_radius": 2, + "speed_multiplier": 0.8, + "pickup_based_on_chance": false, + "can_pickup_any_item": false, + "cooldown_after_being_attacked": 20.0 +} +``` + +pillager + + + +```json +"minecraft:behavior.pickup_items": { + "priority": 7, + "max_dist": 3, + "goal_radius": 2, + "speed_multiplier": 1.0 +} +``` + +skeleton + + + +```json +"minecraft:behavior.pickup_items": { + "priority": 5, + "max_dist": 3, + "goal_radius": 2, + "speed_multiplier": 1.0, + "pickup_based_on_chance": true, + "can_pickup_any_item": true +} +``` + +stray + + + +```json +"minecraft:behavior.pickup_items": { + "priority": 5, + "max_dist": 3, + "goal_radius": 2, + "speed_multiplier": 1.0, + "pickup_based_on_chance": true, + "can_pickup_any_item": true +} +``` + + + +## behavior.play + + + +villager + +#component_groups/baby + +```json +"minecraft:behavior.play": { + "priority": 8, + "speed_multiplier": 0.32 +} +``` + +villager_v2 + +#component_groups/play_schedule_villager + +```json +"minecraft:behavior.play": { + "priority": 8, + "speed_multiplier": 0.6, + "friend_types": [ + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "villager" + }, + { + "test": "is_baby", + "subject": "other", + "operator": "==", + "value": true + } + ] + } + } + ] +} +``` + + + +## behavior.play_dead + + + +axolotl + + + +```json +"minecraft:behavior.play_dead": { + "priority": 0, + "duration": 10, + "force_below_health": 8, + "random_start_chance": 0.33, + "random_damage_range": [ + 0, + 2 + ], + "damage_sources": [ + "contact", + "entity_attack", + "entity_explosion", + "magic", + "projectile", + "thorns", + "wither" + ], + "apply_regeneration": true, + "filters": { + "test": "in_water", + "operator": "==", + "value": true + } +} +``` + + + +## behavior.player_ride_tamed + + + +camel + +#component_groups/minecraft:camel_saddled + +```json +"minecraft:behavior.player_ride_tamed": {} +``` + +donkey + +#component_groups/minecraft:donkey_tamed + +```json +"minecraft:behavior.player_ride_tamed": {} +``` + +horse + +#component_groups/minecraft:horse_saddled + +```json +"minecraft:behavior.player_ride_tamed": {} +``` + +mule + +#component_groups/minecraft:mule_saddled + +```json +"minecraft:behavior.player_ride_tamed": {} +``` + +skeleton_horse + + + +```json +"minecraft:behavior.player_ride_tamed": {} +``` + +zombie_horse + +#component_groups/minecraft:horse_adult + +```json +"minecraft:behavior.player_ride_tamed": {} +``` + + + +## behavior.raid_garden + + + +fox + + + +```json +"minecraft:behavior.raid_garden": { + "priority": 12, + "blocks": [ + "minecraft:sweet_berry_bush", + "minecraft:cave_vines_head_with_berries", + "minecraft:cave_vines_body_with_berries" + ], + "speed_multiplier": 1.2, + "search_range": 12, + "search_height": 2, + "goal_radius": 0.8, + "max_to_eat": 0, + "initial_eat_delay": 2 +} +``` + +rabbit + + + +```json +"minecraft:behavior.raid_garden": { + "priority": 5, + "blocks": [ + "minecraft:carrots" + ], + "search_range": 16, + "goal_radius": 0.8 +} +``` + + + +## behavior.ram_attack + + + +goat + +#component_groups/ram_default + +```json +"minecraft:behavior.ram_attack": { + "priority": 5, + "run_speed": 0.7, + "ram_speed": 1.8, + "min_ram_distance": 4, + "ram_distance": 7, + "knockback_force": 2.5, + "knockback_height": 0.04, + "pre_ram_sound": "pre_ram", + "ram_impact_sound": "ram_impact", + "cooldown_range": [ + 30, + 300 + ], + "on_start": [ + { + "event": "start_event", + "target": "self" + } + ] +} +``` + +#component_groups/ram_screamer + +```json +"minecraft:behavior.ram_attack": { + "priority": 5, + "run_speed": 0.7, + "ram_speed": 1.8, + "min_ram_distance": 4, + "ram_distance": 7, + "knockback_force": 2.5, + "knockback_height": 0.04, + "pre_ram_sound": "pre_ram.screamer", + "ram_impact_sound": "ram_impact.screamer", + "cooldown_range": [ + 5, + 15 + ], + "on_start": [ + { + "event": "start_event", + "target": "self" + } + ] +} +``` + + + +## behavior.random_breach + + + +dolphin + + + +```json +"minecraft:behavior.random_breach": { + "priority": 6, + "interval": 50, + "xz_dist": 6, + "cooldown_time": 2.0 +} +``` + + + +## behavior.random_fly + + + +parrot + +#component_groups/minecraft:parrot_wild + +```json +"minecraft:behavior.random_fly": { + "priority": 2, + "xz_dist": 15, + "y_dist": 1, + "y_offset": 0, + "speed_multiplier": 1.0, + "can_land_on_trees": true, + "avoid_damage_blocks": true +} +``` + + + +## behavior.random_hover + + + +allay + + + +```json +"minecraft:behavior.random_hover": { + "priority": 9, + "xz_dist": 8, + "y_dist": 8, + "y_offset": -1, + "interval": 1, + "hover_height": [ + 1, + 4 + ] +} +``` + +bee + + + +```json +"minecraft:behavior.random_hover": { + "priority": 12, + "xz_dist": 8, + "y_dist": 8, + "y_offset": -1, + "interval": 1, + "hover_height": [ + 1, + 4 + ] +} +``` + + + +## behavior.random_look_around + + + +allay + + + +```json +"minecraft:behavior.random_look_around": { + "priority": 8 +} +``` + +blaze + + + +```json +"minecraft:behavior.random_look_around": { + "priority": 5 +} +``` + +camel + + + +```json +"minecraft:behavior.random_look_around": { + "priority": 8 +} +``` + +cave_spider + + + +```json +"minecraft:behavior.random_look_around": { + "priority": 7 +} +``` + +chicken + + + +```json +"minecraft:behavior.random_look_around": { + "priority": 8 +} +``` + +cow + + + +```json +"minecraft:behavior.random_look_around": { + "priority": 9 +} +``` + +creeper + + + +```json +"minecraft:behavior.random_look_around": { + "priority": 6 +} +``` + +dolphin + + + +```json +"minecraft:behavior.random_look_around": { + "priority": 7 +} +``` + + + +## behavior.random_look_around_and_sit + + + +camel + + + +```json +"minecraft:behavior.random_look_around_and_sit": { + "priority": 4, + "continue_if_leashed": true, + "min_look_count": 2, + "max_look_count": 5, + "min_look_time": 80, + "max_look_time": 100, + "min_angle_of_view_horizontal": -30, + "max_angle_of_view_horizontal": 30, + "random_look_around_cooldown": 5, + "probability": 0.001 +} +``` + +fox + + + +```json +"minecraft:behavior.random_look_around_and_sit": { + "priority": 12, + "min_look_count": 2, + "max_look_count": 5, + "min_look_time": 80, + "max_look_time": 100, + "probability": 0.001 +} +``` + + + +## behavior.random_search_and_dig + + + +sniffer + +#component_groups/sniffer_search_and_dig + +```json +"minecraft:behavior.random_search_and_dig": { + "priority": 5, + "speed_multiplier": 1.25, + "find_valid_position_retries": 5, + "goal_radius": 2.0, + "search_range_xz": 20.0, + "search_range_y": 3, + "cooldown_range": 0.0, + "digging_duration_range": [ + 8.0, + 10.0 + ], + "items": [ + { + "item": "torchflower_seeds", + "weight": 1 + }, + { + "item": "pitcher_pod", + "weight": 1 + } + ], + "spawn_item_after_seconds": 6.0, + "spawn_item_pos_offset": 2.25, + "on_searching_start": { + "event": "on_searching_start", + "target": "self" + }, + "on_fail_during_searching": { + "event": "on_fail_during_searching", + "target": "self" + }, + "on_digging_start": { + "event": "on_digging_start", + "target": "self" + }, + "on_item_found": { + "event": "on_item_found", + "target": "self" + }, + "on_fail_during_digging": { + "event": "on_fail_during_digging", + "target": "self" + }, + "on_success": { + "event": "on_search_and_digging_success", + "target": "self" + } +} +``` + + + +## behavior.random_sitting + + + +panda + + + +```json +"minecraft:behavior.random_sitting": { + "priority": 5, + "start_chance": 0.01, + "stop_chance": 0.3, + "cooldown": 30, + "min_sit_time": 10 +} +``` + +#component_groups/minecraft:panda_lazy + +```json +"minecraft:behavior.random_sitting": { + "priority": 6, + "start_chance": 0.02, + "stop_chance": 0.2, + "cooldown": 25, + "min_sit_time": 15 +} +``` + + + +## behavior.random_stroll + + + +axolotl + + + +```json +"minecraft:behavior.random_stroll": { + "priority": 9, + "interval": 100 +} +``` + +blaze + + + +```json +"minecraft:behavior.random_stroll": { + "priority": 4, + "speed_multiplier": 1.0 +} +``` + +camel + + + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 2 +} +``` + +cat + + + +```json +"minecraft:behavior.random_stroll": { + "priority": 8, + "speed_multiplier": 0.8 +} +``` + +cave_spider + + + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 0.8 +} +``` + +chicken + + + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 1.0 +} +``` + +cow + + + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 0.8 +} +``` + +creeper + + + +```json +"minecraft:behavior.random_stroll": { + "priority": 5, + "speed_multiplier": 1 +} +``` + + + +## behavior.random_swim + + + +axolotl + + + +```json +"minecraft:behavior.random_swim": { + "priority": 8, + "interval": 0, + "xz_dist": 30, + "y_dist": 15 +} +``` + +dolphin + + + +```json +"minecraft:behavior.random_swim": { + "priority": 5, + "interval": 0, + "xz_dist": 20 +} +``` + +elder_guardian + + + +```json +"minecraft:behavior.random_swim": { + "priority": 7, + "speed_multiplier": 0.5, + "avoid_surface": false +} +``` + +cod + + + +```json +"minecraft:behavior.random_swim": { + "priority": 3, + "speed_multiplier": 1.0, + "xz_dist": 16, + "y_dist": 4, + "interval": 0 +} +``` + +guardian + + + +```json +"minecraft:behavior.random_swim": { + "priority": 7, + "speed_multiplier": 1.0, + "interval": 80, + "avoid_surface": false +} +``` + +pufferfish + + + +```json +"minecraft:behavior.random_swim": { + "priority": 3, + "speed_multiplier": 1.0, + "xz_dist": 16, + "y_dist": 4, + "interval": 0 +} +``` + +salmon + + + +```json +"minecraft:behavior.random_swim": { + "speed_multiplier": 1.0, + "priority": 3, + "xz_dist": 16, + "y_dist": 4, + "interval": 0 +} +``` + +tadpole + + + +```json +"minecraft:behavior.random_swim": { + "priority": 2, + "interval": 100 +} +``` + + + +## behavior.ranged_attack + + + +blaze + +#component_groups/ranged_mode + +```json +"minecraft:behavior.ranged_attack": { + "priority": 3, + "burst_shots": 3, + "burst_interval": 0.3, + "charge_charged_trigger": 0.0, + "charge_shoot_trigger": 4.0, + "attack_interval_min": 3.0, + "attack_interval_max": 5.0, + "attack_radius": 16.0 +} +``` + +drowned + +#component_groups/minecraft:ranged_mode + +```json +"minecraft:behavior.ranged_attack": { + "priority": 3, + "attack_interval_min": 1.0, + "attack_interval_max": 3.0, + "attack_radius": 10.0, + "swing": true +} +``` + +ghast + + + +```json +"minecraft:behavior.ranged_attack": { + "priority": 1, + "attack_radius": 64, + "charge_shoot_trigger": 2, + "charge_charged_trigger": 1 +} +``` + +llama + +#component_groups/minecraft:llama_angry + +```json +"minecraft:behavior.ranged_attack": { + "priority": 2, + "attack_radius": 64, + "charge_shoot_trigger": 2, + "charge_charged_trigger": 1 +} +``` + +#component_groups/minecraft:llama_angry_wolf + +```json +"minecraft:behavior.ranged_attack": { + "priority": 2, + "attack_radius": 64, + "charge_shoot_trigger": 2, + "charge_charged_trigger": 1 +} +``` + +piglin + +#component_groups/ranged_unit + +```json +"minecraft:behavior.ranged_attack": { + "priority": 8, + "attack_interval_min": 1, + "attack_interval_max": 1, + "attack_radius": 8, + "attack_radius_min": 4, + "speed_multiplier": 1.0, + "target_in_sight_time": 0.1 +} +``` + +pillager + +#component_groups/minecraft:ranged_attack + +```json +"minecraft:behavior.ranged_attack": { + "priority": 4, + "attack_interval_min": 1.0, + "attack_interval_max": 1.0, + "attack_radius": 8.0 +} +``` + +shulker + + + +```json +"minecraft:behavior.ranged_attack": { + "attack_interval_min": 1, + "attack_interval_max": 3, + "attack_radius": 15 +} +``` + + + +## behavior.receive_love + + + +villager + +#component_groups/adult + +```json +"minecraft:behavior.receive_love": { + "priority": 7 +} +``` + +villager_v2 + +#component_groups/make_and_receive_love + +```json +"minecraft:behavior.receive_love": { + "priority": 6 +} +``` + + + +## behavior.restrict_open_door + + + +villager + + + +```json +"minecraft:behavior.restrict_open_door": { + "priority": 5 +} +``` + + + +## behavior.rise_to_liquid_level + + + +strider + +#component_groups/minecraft:strider_pathing_behaviors + +```json +"minecraft:behavior.rise_to_liquid_level": { + "priority": 0, + "liquid_y_offset": 0.25, + "rise_delta": 0.01, + "sink_delta": 0.01 +} +``` + + + +## behavior.rising + + + +sniffer + +#component_groups/stand_up + +```json +"minecraft:behavior.rising": { + "priority": 2, + "cooldown_range": 0.0, + "duration_range": [ + 2.0, + 5.0 + ], + "on_end": { + "event": "on_rising_end", + "target": "self" + } +} +``` + + + +## behavior.roar + + + +warden + + + +```json +"minecraft:behavior.roar": { + "priority": 2, + "duration": 4.2 +} +``` + + + +## behavior.roll + + + +panda + +#component_groups/minecraft:panda_baby + +```json +"minecraft:behavior.roll": { + "priority": 12, + "probability": 0.0016 +} +``` + +#component_groups/minecraft:panda_playful + +```json +"minecraft:behavior.roll": { + "priority": 12, + "probability": 0.013 +} +``` + + + +## behavior.run_around_like_crazy + + + +donkey + +#component_groups/minecraft:donkey_adult + +```json +"minecraft:behavior.run_around_like_crazy": { + "priority": 1, + "speed_multiplier": 1.2 +} +``` + +horse + +#component_groups/minecraft:horse_adult + +```json +"minecraft:behavior.run_around_like_crazy": { + "priority": 1, + "speed_multiplier": 1.2 +} +``` + +llama + + + +```json +"minecraft:behavior.run_around_like_crazy": { + "priority": 1, + "speed_multiplier": 1.2 +} +``` + +mule + +#component_groups/minecraft:mule_adult + +```json +"minecraft:behavior.run_around_like_crazy": { + "priority": 1, + "speed_multiplier": 1.2 +} +``` + +trader_llama + + + +```json +"minecraft:behavior.run_around_like_crazy": { + "priority": 1, + "speed_multiplier": 1.2 +} +``` + + + +## behavior.scared + + + +panda + +#component_groups/minecraft:panda_worried + +```json +"minecraft:behavior.scared": { + "priority": 1, + "sound_interval": 20 +} +``` + + + +## behavior.scenting + + + +sniffer + + + +```json +"minecraft:behavior.scenting": { + "priority": 6, + "cooldown_range": [ + 400.0, + 500.0 + ], + "duration_range": 2.0, + "on_end": { + "event": "on_scenting_success", + "target": "self" + } +} +``` + + + +## behavior.send_event + + + +evocation_illager + + + +```json +"minecraft:behavior.send_event": { + "priority": 3, + "event_choices": [ + { + "min_activation_range": 0.0, + "max_activation_range": 16.0, + "cooldown_time": 5.0, + "cast_duration": 3.0, + "particle_color": "#FFB38033", + "weight": 3, + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "sheep" + }, + { + "test": "is_color", + "subject": "other", + "value": "blue" + } + ] + }, + "start_sound_event": "cast.spell", + "sequence": [ + { + "base_delay": 2.0, + "event": "wololo", + "sound_event": "prepare.wololo" + } + ] + } + ] +} +``` + + + +## behavior.share_items + + + +villager + + + +```json +"minecraft:behavior.share_items": { + "priority": 8, + "max_dist": 3, + "goal_radius": 2.0, + "speed_multiplier": 0.5, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "villager" + } + } + ] +} +``` + +villager_v2 + + + +```json +"minecraft:behavior.share_items": { + "priority": 10, + "max_dist": 3, + "goal_radius": 2.0, + "speed_multiplier": 0.5, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "villager" + } + } + ] +} +``` + + + +## behavior.silverfish_merge_with_stone + + + +silverfish + + + +```json +"minecraft:behavior.silverfish_merge_with_stone": { + "priority": 5 +} +``` + + + +## behavior.silverfish_wake_up_friends + + + +silverfish + +#component_groups/minecraft:silverfish_angry + +```json +"minecraft:behavior.silverfish_wake_up_friends": { + "priority": 1 +} +``` + + + +## behavior.skeleton_horse_trap + + + +skeleton_horse + +#component_groups/minecraft:skeleton_trap + +```json +"minecraft:behavior.skeleton_horse_trap": { + "within_radius": 10.0, + "duration": 900.0, + "priority": 2 +} +``` + + + +## behavior.sleep + + + +villager_v2 + +#component_groups/job_specific_goals + +```json +"minecraft:behavior.sleep": {} +``` + +#component_groups/bed_schedule_villager + +```json +"minecraft:behavior.sleep": { + "priority": 3, + "goal_radius": 1.5, + "speed_multiplier": 0.6, + "sleep_collider_height": 0.3, + "sleep_collider_width": 1.0, + "sleep_y_offset": 0.6, + "timeout_cooldown": 10.0 +} +``` + + + +## behavior.slime_attack + + + +magma_cube + + + +```json +"minecraft:behavior.slime_attack": { + "priority": 3 +} +``` + +slime + + + +```json +"minecraft:behavior.slime_attack": { + "priority": 3 +} +``` + + + +## behavior.slime_float + + + +magma_cube + + + +```json +"minecraft:behavior.slime_float": { + "priority": 1, + "jump_chance_percentage": 0.8, + "speed_multiplier": 1.2 +} +``` + +slime + + + +```json +"minecraft:behavior.slime_float": { + "priority": 1, + "jump_chance_percentage": 0.8, + "speed_multiplier": 1.2 +} +``` + + + +## behavior.slime_keep_on_jumping + + + +magma_cube + + + +```json +"minecraft:behavior.slime_keep_on_jumping": { + "priority": 5, + "speed_multiplier": 1.0 +} +``` + +slime + + + +```json +"minecraft:behavior.slime_keep_on_jumping": { + "priority": 5, + "speed_multiplier": 1.0 +} +``` + + + +## behavior.slime_random_direction + + + +magma_cube + + + +```json +"minecraft:behavior.slime_random_direction": { + "priority": 4, + "add_random_time_range": 3, + "turn_range": 360, + "min_change_direction_time": 2.0 +} +``` + +slime + + + +```json +"minecraft:behavior.slime_random_direction": { + "priority": 4, + "add_random_time_range": 3, + "turn_range": 360, + "min_change_direction_time": 2.0 +} +``` + + + +## behavior.snacking + + + +panda + + + +```json +"minecraft:behavior.snacking": { + "priority": 2, + "snacking_cooldown": 22.5, + "snacking_cooldown_min": 20, + "snacking_stop_chance": 0.001334, + "items": [ + "bamboo", + "cake" + ] +} +``` + +#component_groups/minecraft:panda_lazy + +```json +"minecraft:behavior.snacking": { + "priority": 3, + "snacking_cooldown": 17.5, + "snacking_cooldown_min": 10, + "snacking_stop_chance": 0.0011, + "items": [ + "bamboo", + "cake" + ] +} +``` + + + +## behavior.sneeze + + + +panda + +#component_groups/minecraft:panda_baby + +```json +"minecraft:behavior.sneeze": { + "priority": 7, + "probability": 0.0001666, + "cooldown_time": 1.0, + "within_radius": 10.0, + "entity_types": [ + { + "filters": { + "all_of": [ + { + "test": "has_component", + "subject": "other", + "operator": "!=", + "value": "minecraft:is_baby" + }, + { + "test": "is_family", + "subject": "other", + "value": "panda" + }, + { + "test": "in_water", + "subject": "other", + "operator": "!=", + "value": true + }, + { + "test": "on_ground", + "operator": "==", + "value": true + } + ] + }, + "max_dist": 10 + } + ], + "drop_item_chance": 0.001, + "loot_table": "loot_tables/entities/panda_sneeze.json", + "prepare_sound": "presneeze", + "prepare_time": 1.0, + "sound": "sneeze" +} +``` + +#component_groups/minecraft:panda_sneezing + +```json +"minecraft:behavior.sneeze": { + "priority": 7, + "probability": 0.002, + "cooldown_time": 1.0, + "within_radius": 10.0, + "entity_types": [ + { + "filters": { + "all_of": [ + { + "test": "has_component", + "subject": "other", + "operator": "!=", + "value": "minecraft:is_baby" + }, + { + "test": "is_family", + "subject": "other", + "value": "panda" + }, + { + "test": "in_water", + "subject": "other", + "operator": "!=", + "value": true + }, + { + "test": "on_ground", + "operator": "==", + "value": true + } + ] + }, + "max_dist": 10 + } + ], + "drop_item_chance": 0.001, + "loot_table": "loot_tables/entities/panda_sneeze.json", + "prepare_sound": "presneeze", + "prepare_time": 1.0, + "sound": "sneeze" +} +``` + + + +## behavior.sniff + + + +warden + + + +```json +"minecraft:behavior.sniff": { + "priority": 6, + "duration": 4.16, + "sniffing_radius": 24.0, + "suspicion_radius_horizontal": 6.0, + "suspicion_radius_vertical": 20.0, + "cooldown_range": [ + 5.0, + 10.0 + ] +} +``` + + + +## behavior.sonic_boom + + + +warden + + + +```json +"minecraft:behavior.sonic_boom": { + "priority": 3, + "duration": 3.0, + "speed_multiplier": 1.2, + "attack_damage": 10, + "attack_range_horizontal": 15, + "attack_range_vertical": 20, + "attack_cooldown": 2, + "knockback_vertical_strength": 0.5, + "knockback_horizontal_strength": 2.5, + "knockback_height_cap": 0.5, + "duration_until_attack_sound": 1.7, + "charge_sound": "sonic_charge", + "attack_sound": "sonic_boom" +} +``` + + + +## behavior.squid_dive + + + +glow_squid + + + +```json +"minecraft:behavior.squid_dive": { + "priority": 2 +} +``` + +squid + + + +```json +"minecraft:behavior.squid_dive": { + "priority": 2 +} +``` + + + +## behavior.squid_flee + + + +glow_squid + + + +```json +"minecraft:behavior.squid_flee": { + "priority": 2 +} +``` + +squid + + + +```json +"minecraft:behavior.squid_flee": { + "priority": 2 +} +``` + + + +## behavior.squid_idle + + + +glow_squid + + + +```json +"minecraft:behavior.squid_idle": { + "priority": 2 +} +``` + +squid + + + +```json +"minecraft:behavior.squid_idle": { + "priority": 2 +} +``` + + + +## behavior.squid_move_away_from_ground + + + +glow_squid + + + +```json +"minecraft:behavior.squid_move_away_from_ground": { + "priority": 1 +} +``` + +squid + + + +```json +"minecraft:behavior.squid_move_away_from_ground": { + "priority": 1 +} +``` + + + +## behavior.squid_out_of_water + + + +glow_squid + + + +```json +"minecraft:behavior.squid_out_of_water": { + "priority": 2 +} +``` + +squid + + + +```json +"minecraft:behavior.squid_out_of_water": { + "priority": 2 +} +``` + + + +## behavior.stalk_and_pounce_on_target + + + +fox + + + +```json +"minecraft:behavior.stalk_and_pounce_on_target": { + "priority": 7, + "stalk_speed": 1.2, + "max_stalk_dist": 12.0, + "leap_height": 0.9, + "leap_dist": 0.8, + "pounce_max_dist": 5.0, + "interest_time": 2.0, + "stuck_time": 2.0, + "strike_dist": 2.0, + "stuck_blocks": { + "test": "is_block", + "subject": "block", + "operator": "==", + "value": "snow_layer" + } +} +``` + + + +## behavior.stay_near_noteblock + + + +allay + + + +```json +"minecraft:behavior.stay_near_noteblock": { + "priority": 5, + "speed": 8, + "start_distance": 16, + "stop_distance": 4 +} +``` + + + +## behavior.stay_while_sitting + + + +cat + +#component_groups/minecraft:cat_tame + +```json +"minecraft:behavior.stay_while_sitting": { + "priority": 3 +} +``` + +ocelot + +#component_groups/minecraft:ocelot_tame + +```json +"minecraft:behavior.stay_while_sitting": { + "priority": 3 +} +``` + +parrot + +#component_groups/minecraft:parrot_tame + +```json +"minecraft:behavior.stay_while_sitting": { + "priority": 1 +} +``` + +wolf + + + +```json +"minecraft:behavior.stay_while_sitting": { + "priority": 3 +} +``` + + + +## behavior.stomp_attack + + + +polar_bear + +#component_groups/minecraft:adult_hostile + +```json +"minecraft:behavior.stomp_attack": { + "priority": 1, + "track_target": true, + "require_complete_path": true, + "stomp_range_multiplier": 2.0, + "no_damage_range_multiplier": 2.0 +} +``` + + + +## behavior.stomp_turtle_egg + + + +drowned + + + +```json +"minecraft:behavior.stomp_turtle_egg": { + "priority": 4, + "speed_multiplier": 1, + "search_range": 10, + "search_height": 2, + "goal_radius": 1.14, + "interval": 20 +} +``` + +husk + + + +```json +"minecraft:behavior.stomp_turtle_egg": { + "priority": 4, + "speed_multiplier": 1, + "search_range": 10, + "search_height": 2, + "goal_radius": 1.14, + "interval": 20 +} +``` + +zombie + + + +```json +"minecraft:behavior.stomp_turtle_egg": { + "priority": 4, + "speed_multiplier": 1, + "search_range": 10, + "search_height": 2, + "goal_radius": 1.14, + "interval": 20 +} +``` + +zombie_pigman + + + +```json +"minecraft:behavior.stomp_turtle_egg": { + "priority": 5, + "speed_multiplier": 1, + "search_range": 10, + "search_height": 2, + "goal_radius": 1.14, + "interval": 20 +} +``` + +zombie_villager + + + +```json +"minecraft:behavior.stomp_turtle_egg": { + "priority": 4, + "speed_multiplier": 1, + "search_range": 10, + "search_height": 2, + "goal_radius": 1.14, + "interval": 20 +} +``` + +zombie_villager_v2 + + + +```json +"minecraft:behavior.stomp_turtle_egg": { + "priority": 4, + "speed_multiplier": 1, + "search_range": 10, + "search_height": 2, + "goal_radius": 1.14, + "interval": 20 +} +``` + + + +## behavior.stroll_towards_village + + + +fox + +#component_groups/minecraft:fox_night + +```json +"minecraft:behavior.stroll_towards_village": { + "priority": 11, + "speed_multiplier": 1.0, + "goal_radius": 3.0, + "cooldown_time": 10.0, + "search_range": 32, + "start_chance": 0.005 +} +``` + + + +## behavior.summon_entity + + + +evocation_illager + + + +```json +"minecraft:behavior.summon_entity": { + "priority": 2, + "summon_choices": [ + { + "min_activation_range": 0.0, + "max_activation_range": 3.0, + "cooldown_time": 5.0, + "weight": 3, + "cast_duration": 2.0, + "particle_color": "#FF664D59", + "start_sound_event": "cast.spell", + "sequence": [ + { + "shape": "circle", + "target": "self", + "base_delay": 1.0, + "delay_per_summon": 0.0, + "num_entities_spawned": 5, + "entity_type": "minecraft:evocation_fang", + "size": 1.5, + "entity_lifespan": 1.1, + "sound_event": "prepare.attack" + }, + { + "shape": "circle", + "target": "self", + "base_delay": 0.15, + "delay_per_summon": 0.0, + "num_entities_spawned": 8, + "entity_type": "minecraft:evocation_fang", + "size": 2.5, + "entity_lifespan": 1.1 + } + ] + }, + { + "min_activation_range": 3.0, + "weight": 3, + "cooldown_time": 5.0, + "cast_duration": 2.0, + "particle_color": "#FF664D59", + "start_sound_event": "cast.spell", + "sequence": [ + { + "shape": "line", + "target": "self", + "base_delay": 1.0, + "delay_per_summon": 0.05, + "num_entities_spawned": 16, + "entity_type": "minecraft:evocation_fang", + "size": 20, + "entity_lifespan": 1.1 + } + ] + }, + { + "weight": 1, + "cooldown_time": 17.0, + "cast_duration": 5.0, + "particle_color": "#FFB3B3CC", + "sequence": [ + { + "shape": "circle", + "target": "self", + "base_delay": 5.0, + "num_entities_spawned": 3, + "entity_type": "minecraft:vex", + "summon_cap": 8, + "summon_cap_radius": 16.0, + "size": 1.0, + "sound_event": "prepare.summon" + } + ] + } + ] +} +``` + + + +## behavior.swell + + + +creeper + + + +```json +"minecraft:behavior.swell": { + "start_distance": 2.5, + "stop_distance": 6.0, + "priority": 2 +} +``` + + + +## behavior.swim_idle + + + +axolotl + + + +```json +"minecraft:behavior.swim_idle": { + "priority": 7, + "idle_time": 5.0, + "success_rate": 0.05 +} +``` + +cod + + + +```json +"minecraft:behavior.swim_idle": { + "priority": 5, + "idle_time": 5.0, + "success_rate": 0.1 +} +``` + +salmon + + + +```json +"minecraft:behavior.swim_idle": { + "priority": 5, + "idle_time": 5.0, + "success_rate": 0.1 +} +``` + +tropicalfish + + + +```json +"minecraft:behavior.swim_idle": { + "priority": 5, + "idle_time": 5.0, + "success_rate": 0.1 +} +``` + + + +## behavior.swim_wander + + + +cod + + + +```json +"minecraft:behavior.swim_wander": { + "priority": 4, + "interval": 0.1, + "look_ahead": 2.0, + "speed_multiplier": 1.0, + "wander_time": 5.0 +} +``` + +pufferfish + + + +```json +"minecraft:behavior.swim_wander": { + "priority": 5, + "interval": 1.0, + "look_ahead": 2.0, + "speed_multiplier": 1.0, + "wander_time": 5.0 +} +``` + +salmon + + + +```json +"minecraft:behavior.swim_wander": { + "priority": 4, + "interval": 0.0166, + "look_ahead": 5.0, + "speed_multiplier": 0.014, + "wander_time": 5.0 +} +``` + +tropicalfish + + + +```json +"minecraft:behavior.swim_wander": { + "priority": 4, + "interval": 0.1, + "look_ahead": 2.0, + "speed_multiplier": 1.0, + "wander_time": 5.0 +} +``` + + + +## behavior.swim_with_entity + + + +dolphin + + + +```json +"minecraft:behavior.swim_with_entity": { + "priority": 4, + "success_rate": 0.1, + "chance_to_stop": 0.0333, + "state_check_interval": 0.5, + "catch_up_threshold": 12.0, + "match_direction_threshold": 2.0, + "catch_up_multiplier": 2.5, + "speed_multiplier": 1.5, + "search_range": 20.0, + "stop_distance": 5.0, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + } + } + ] +} +``` + + + +## behavior.swoop_attack + + + +phantom + + + +```json +"minecraft:behavior.swoop_attack": { + "priority": 2, + "damage_reach": 0.2, + "speed_multiplier": 1.0, + "delay_range": [ + 10.0, + 20.0 + ] +} +``` + + + +## behavior.take_flower + + + +villager + +#component_groups/baby + +```json +"minecraft:behavior.take_flower": { + "priority": 7, + "filters": { + "all_of": [ + { + "test": "is_daytime", + "value": true + } + ] + } +} +``` + +villager_v2 + +#component_groups/baby + +```json +"minecraft:behavior.take_flower": { + "priority": 9, + "filters": { + "all_of": [ + { + "test": "is_daytime", + "value": true + } + ] + } +} +``` + + + +## behavior.target_when_pushed + + + +iron_golem + + + +```json +"minecraft:behavior.target_when_pushed": { + "priority": 1, + "percent_chance": 5.0, + "entity_types": [ + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "monster" + }, + { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "creeper" + } + ] + } + } + ] +} +``` + + + +## behavior.tempt + + + +axolotl + + + +```json +"minecraft:behavior.tempt": { + "priority": 2, + "speed_multiplier": 1.1, + "can_tempt_vertically": true, + "items": [ + "tropical_fish_bucket" + ] +} +``` + +bee + + + +```json +"minecraft:behavior.tempt": { + "priority": 5, + "speed_multiplier": 1.25, + "within_radius": 8, + "can_tempt_vertically": true, + "items": [ + "minecraft:red_flower", + "minecraft:yellow_flower", + "minecraft:wither_rose", + "minecraft:double_plant:0", + "minecraft:double_plant:1", + "minecraft:double_plant:4", + "minecraft:double_plant:5", + "minecraft:flowering_azalea", + "minecraft:azalea_leaves_flowered", + "minecraft:mangrove_propagule", + "minecraft:pitcher_plant", + "minecraft:torchflower", + "minecraft:cherry_leaves", + "minecraft:pink_petals" + ] +} +``` + +camel + + + +```json +"minecraft:behavior.tempt": { + "priority": 3, + "speed_multiplier": 2.5, + "can_tempt_vertically": true, + "items": [ + "cactus" + ] +} +``` + +cat + +#component_groups/minecraft:cat_wild + +```json +"minecraft:behavior.tempt": { + "priority": 5, + "speed_multiplier": 0.5, + "within_radius": 16, + "can_get_scared": true, + "items": [ + "fish", + "salmon" + ] +} +``` + +#component_groups/minecraft:cat_tame + +```json +"minecraft:behavior.tempt": { + "priority": 5, + "speed_multiplier": 0.5, + "within_radius": 16, + "items": [ + "fish", + "salmon" + ] +} +``` + +chicken + + + +```json +"minecraft:behavior.tempt": { + "priority": 4, + "speed_multiplier": 1.0, + "items": [ + "wheat_seeds", + "beetroot_seeds", + "melon_seeds", + "pumpkin_seeds", + "pitcher_pod", + "torchflower_seeds" + ] +} +``` + +cow + + + +```json +"minecraft:behavior.tempt": { + "priority": 4, + "speed_multiplier": 1.25, + "items": [ + "wheat" + ] +} +``` + +donkey + +#component_groups/minecraft:donkey_tamed + +```json +"minecraft:behavior.tempt": { + "priority": 5, + "speed_multiplier": 1.2, + "items": [ + "apple", + "carrot", + "golden_apple", + "appleEnchanted", + "golden_carrot", + "carrotOnAStick", + "hay_block", + "sugar", + "bread", + "wheat" + ] +} +``` + + + +## behavior.trade_interest + + + +villager_v2 + +#component_groups/trade_components + +```json +"minecraft:behavior.trade_interest": {} +``` + +#component_groups/farmer + +```json +"minecraft:behavior.trade_interest": { + "priority": 5, + "within_radius": 6.0, + "interest_time": 45.0, + "remove_item_time": 1.0, + "carried_item_switch_time": 2.0, + "cooldown": 2.0 +} +``` + +#component_groups/fisherman + +```json +"minecraft:behavior.trade_interest": { + "priority": 5, + "within_radius": 6.0, + "interest_time": 45.0, + "remove_item_time": 1.0, + "carried_item_switch_time": 2.0, + "cooldown": 2.0 +} +``` + +wandering_trader + + + +```json +"minecraft:behavior.trade_interest": { + "priority": 3, + "within_radius": 6.0, + "interest_time": 45.0, + "remove_item_time": 1.0, + "carried_item_switch_time": 2.0, + "cooldown": 2.0 +} +``` + + + +## behavior.trade_with_player + + + +villager + + + +```json +"minecraft:behavior.trade_with_player": { + "priority": 1, + "filters": { + "all_of": [ + { + "all_of": [ + { + "test": "in_water", + "value": false + } + ] + }, + { + "any_of": [ + { + "test": "on_ground", + "value": true + }, + { + "test": "is_sleeping", + "value": true + } + ] + } + ] + } +} +``` + +villager_v2 + + + +```json +"minecraft:behavior.trade_with_player": { + "priority": 2, + "filters": { + "all_of": [ + { + "all_of": [ + { + "test": "in_water", + "value": false + } + ] + }, + { + "any_of": [ + { + "test": "on_ground", + "value": true + }, + { + "test": "is_sleeping", + "value": true + } + ] + } + ] + } +} +``` + +wandering_trader + + + +```json +"minecraft:behavior.trade_with_player": { + "priority": 1, + "filters": { + "all_of": [ + { + "all_of": [ + { + "test": "in_water", + "value": false + } + ] + }, + { + "any_of": [ + { + "test": "on_ground", + "value": true + }, + { + "test": "is_sleeping", + "value": true + } + ] + } + ] + } +} +``` + + + +## behavior.wither_random_attack_pos_goal + + + +wither + + + +```json +"minecraft:behavior.wither_random_attack_pos_goal": { + "priority": 3 +} +``` + + + +## behavior.wither_target_highest_damage + + + +wither + + + +```json +"minecraft:behavior.wither_target_highest_damage": { + "priority": 1 +} +``` + + + +## behavior.work + + + +villager_v2 + +#component_groups/job_specific_goals + +```json +"minecraft:behavior.work": {} +``` + +#component_groups/work_schedule_villager + +```json +"minecraft:behavior.work": { + "priority": 7, + "active_time": 250, + "speed_multiplier": 0.5, + "goal_cooldown": 200, + "sound_delay_min": 100, + "sound_delay_max": 200, + "can_work_in_rain": false, + "work_in_rain_tolerance": 100, + "on_arrival": { + "event": "minecraft:resupply_trades", + "target": "self" + } +} +``` + +#component_groups/work_schedule_fisher + +```json +"minecraft:behavior.work": { + "priority": 7, + "active_time": 250, + "speed_multiplier": 0.5, + "goal_cooldown": 200, + "sound_delay_min": 100, + "sound_delay_max": 200, + "can_work_in_rain": false, + "work_in_rain_tolerance": 100, + "on_arrival": { + "event": "minecraft:resupply_trades", + "target": "self" + } +} +``` + + + +## behavior.work_composter + + + +villager_v2 + +#component_groups/job_specific_goals + +```json +"minecraft:behavior.work_composter": {} +``` + +#component_groups/work_schedule_farmer + +```json +"minecraft:behavior.work_composter": { + "priority": 9, + "active_time": 250, + "speed_multiplier": 0.5, + "goal_cooldown": 200, + "can_work_in_rain": false, + "work_in_rain_tolerance": 100, + "on_arrival": { + "event": "minecraft:resupply_trades", + "target": "self" + } +} +``` + + + +## block_climber + + + +endermite + + + +```json +"minecraft:block_climber": {} +``` + +fox + + + +```json +"minecraft:block_climber": {} +``` + +player + + + +```json +"minecraft:block_climber": {} +``` + +rabbit + + + +```json +"minecraft:block_climber": {} +``` + +silverfish + + + +```json +"minecraft:block_climber": {} +``` + + + +## block_sensor + + + +bee + + + +```json +"minecraft:block_sensor": { + "sensor_radius": 16, + "sources": [ + { + "test": "has_silk_touch", + "subject": "other", + "value": false + } + ], + "on_break": [ + { + "block_list": [ + "minecraft:beehive", + "minecraft:bee_nest" + ], + "on_block_broken": "hive_destroyed" + } + ] +} +``` + +piglin + +#component_groups/piglin_adult + +```json +"minecraft:block_sensor": { + "sensor_radius": 16, + "on_break": [ + { + "block_list": [ + "minecraft:gold_block", + "minecraft:gilded_blackstone", + "minecraft:nether_gold_ore", + "minecraft:deepslate_gold_ore", + "minecraft:raw_gold_block", + "minecraft:gold_ore", + "minecraft:chest", + "minecraft:trapped_chest", + "minecraft:ender_chest", + "minecraft:barrel", + "minecraft:shulker_box", + "minecraft:undyed_shulker_box" + ], + "on_block_broken": "important_block_destroyed_event" + } + ] +} +``` + + + +## boostable + + + +pig + +#component_groups/minecraft:pig_saddled + +```json +"minecraft:boostable": { + "speed_multiplier": 1.35, + "duration": 3.0, + "boost_items": [ + { + "item": "carrotOnAStick", + "damage": 2, + "replace_item": "fishing_rod" + } + ] +} +``` + +strider + +#component_groups/minecraft:strider_saddled + +```json +"minecraft:boostable": { + "speed_multiplier": 1.35, + "duration": 16.0, + "boost_items": [ + { + "item": "warped_fungus_on_a_stick", + "damage": 1, + "replace_item": "fishing_rod" + } + ] +} +``` + + + +## boss + + + +ender_dragon + + + +```json +"minecraft:boss": { + "should_darken_sky": false, + "hud_range": 125 +} +``` + +wither + + + +```json +"minecraft:boss": { + "should_darken_sky": true, + "hud_range": 55 +} +``` + + + +## break_blocks + + + +ravager + + + +```json +"minecraft:break_blocks": { + "breakable_blocks": [ + "bamboo", + "bamboo_sapling", + "beetroot", + "brown_mushroom", + "carrots", + "carved_pumpkin", + "chorus_flower", + "chorus_plant", + "deadbush", + "double_plant", + "leaves", + "leaves2", + "lit_pumpkin", + "melon_block", + "melon_stem", + "potatoes", + "pumpkin", + "pumpkin_stem", + "red_flower", + "red_mushroom", + "crimson_fungus", + "warped_fungus", + "reeds", + "sapling", + "snow_layer", + "sweet_berry_bush", + "tallgrass", + "turtle_egg", + "vine", + "waterlily", + "wheat", + "yellow_flower", + "azalea", + "flowering_azalea", + "azalea_leaves", + "azalea_leaves_flowered", + "cave_vines", + "cave_vines_body_with_berries", + "cave_vines_head_with_berries", + "small_dripleaf_block", + "big_dripleaf", + "spore_blossom", + "hanging_roots", + "mangrove_leaves" + ] +} +``` + + + +## breathable + + + +allay + + + +```json +"minecraft:breathable": { + "totalSupply": 15, + "suffocateTime": 0 +} +``` + +axolotl + + + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_water": true, + "breathes_air": true, + "generates_bubbles": false +} +``` + +bat + + + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +bee + + + +```json +"minecraft:breathable": { + "totalSupply": 15, + "suffocateTime": 0 +} +``` + +camel + + + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +cat + + + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +cave_spider + + + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +chicken + + + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + + + +## breedable + + + +axolotl + +#component_groups/axolotl_adult + +```json +"minecraft:breedable": { + "require_tame": false, + "breed_items": "tropical_fish_bucket", + "transform_to_item": "water_bucket:0", + "breeds_with": { + "mate_type": "minecraft:axolotl", + "baby_type": "minecraft:axolotl", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + }, + "mutation_factor": { + "variant": 0.00083 + } +} +``` + +bee + +#component_groups/bee_adult + +```json +"minecraft:breedable": { + "require_tame": false, + "breeds_with": { + "mate_type": "minecraft:bee", + "baby_type": "minecraft:bee", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + }, + "breed_items": [ + "minecraft:red_flower", + "minecraft:yellow_flower", + "minecraft:wither_rose", + "minecraft:double_plant:0", + "minecraft:double_plant:1", + "minecraft:double_plant:4", + "minecraft:double_plant:5", + "minecraft:flowering_azalea", + "minecraft:azalea_leaves_flowered", + "minecraft:mangrove_propagule", + "minecraft:pitcher_plant", + "minecraft:torchflower", + "minecraft:cherry_leaves", + "minecraft:pink_petals" + ] +} +``` + +camel + +#component_groups/minecraft:camel_adult + +```json +"minecraft:breedable": { + "require_tame": false, + "breeds_with": [ + { + "mate_type": "minecraft:camel", + "baby_type": "minecraft:camel", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + } + ], + "breed_items": [ + "cactus" + ] +} +``` + +cat + +#component_groups/minecraft:cat_adult + +```json +"minecraft:breedable": { + "require_tame": true, + "require_full_health": true, + "allow_sitting": true, + "breeds_with": { + "mate_type": "minecraft:cat", + "baby_type": "minecraft:cat", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + }, + "breed_items": [ + "fish", + "salmon" + ] +} +``` + +chicken + +#component_groups/minecraft:chicken_adult + +```json +"minecraft:breedable": { + "require_tame": false, + "breeds_with": { + "mate_type": "minecraft:chicken", + "baby_type": "minecraft:chicken", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + }, + "breed_items": [ + "wheat_seeds", + "beetroot_seeds", + "melon_seeds", + "pumpkin_seeds", + "pitcher_pod", + "torchflower_seeds" + ] +} +``` + +cow + +#component_groups/minecraft:cow_adult + +```json +"minecraft:breedable": { + "require_tame": false, + "breed_items": "wheat", + "breeds_with": { + "mate_type": "minecraft:cow", + "baby_type": "minecraft:cow", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + } +} +``` + +donkey + +#component_groups/minecraft:donkey_tamed + +```json +"minecraft:breedable": { + "parent_centric_attribute_blending": [ + "minecraft:health" + ], + "require_tame": true, + "inherit_tamed": false, + "breeds_with": [ + { + "mate_type": "minecraft:donkey", + "baby_type": "minecraft:donkey", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + }, + { + "mate_type": "minecraft:horse", + "baby_type": "minecraft:mule", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + } + ], + "breed_items": [ + "golden_carrot", + "golden_apple", + "appleEnchanted" + ] +} +``` + +fox + +#component_groups/minecraft:fox_adult + +```json +"minecraft:breedable": { + "require_tame": false, + "breed_items": [ + "sweet_berries", + "glow_berries" + ], + "breeds_with": { + "mate_type": "minecraft:fox", + "baby_type": "minecraft:fox", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + } +} +``` + + + +## bribeable + + + +dolphin + +#component_groups/dolphin_adult + +```json +"minecraft:bribeable": { + "bribe_items": [ + "fish", + "salmon" + ] +} +``` + + + +## buoyant + + + +boat + + + +```json +"minecraft:buoyant": { + "base_buoyancy": 1.0, + "apply_gravity": true, + "simulate_waves": true, + "big_wave_probability": 0.03, + "big_wave_speed": 10.0, + "liquid_blocks": [ + "minecraft:water", + "minecraft:flowing_water" + ] +} +``` + +#component_groups/minecraft:floating + +```json +"minecraft:buoyant": { + "base_buoyancy": 1.0, + "apply_gravity": true, + "simulate_waves": true, + "big_wave_probability": 0.03, + "big_wave_speed": 10.0, + "liquid_blocks": [ + "minecraft:water", + "minecraft:flowing_water" + ] +} +``` + +#component_groups/minecraft:above_bubble_column_down + +```json +"minecraft:buoyant": { + "base_buoyancy": 1.0, + "apply_gravity": true, + "simulate_waves": false, + "liquid_blocks": [ + "minecraft:water", + "minecraft:flowing_water" + ], + "drag_down_on_buoyancy_removed": 0.7 +} +``` + +chest_boat + + + +```json +"minecraft:buoyant": { + "base_buoyancy": 1.0, + "apply_gravity": true, + "simulate_waves": true, + "big_wave_probability": 0.03, + "big_wave_speed": 10.0, + "liquid_blocks": [ + "minecraft:water", + "minecraft:flowing_water" + ] +} +``` + +#component_groups/minecraft:floating + +```json +"minecraft:buoyant": { + "base_buoyancy": 1.0, + "apply_gravity": true, + "simulate_waves": true, + "big_wave_probability": 0.03, + "big_wave_speed": 10.0, + "liquid_blocks": [ + "minecraft:water", + "minecraft:flowing_water" + ] +} +``` + +#component_groups/minecraft:above_bubble_column_down + +```json +"minecraft:buoyant": { + "base_buoyancy": 1.0, + "apply_gravity": true, + "simulate_waves": false, + "liquid_blocks": [ + "minecraft:water", + "minecraft:flowing_water" + ], + "drag_down_on_buoyancy_removed": 0.7 +} +``` + +xp_orb + + + +```json +"minecraft:buoyant": { + "apply_gravity": false, + "liquid_blocks": [ + "minecraft:flowing_water", + "minecraft:water" + ] +} +``` + + + +## burns_in_daylight + + + +drowned + + + +```json +"minecraft:burns_in_daylight": {} +``` + +magma_cube + + + +```json +"minecraft:burns_in_daylight": false +``` + +phantom + + + +```json +"minecraft:burns_in_daylight": {} +``` + +skeleton + + + +```json +"minecraft:burns_in_daylight": {} +``` + +stray + + + +```json +"minecraft:burns_in_daylight": {} +``` + +zombie + + + +```json +"minecraft:burns_in_daylight": {} +``` + +zombie_villager + + + +```json +"minecraft:burns_in_daylight": {} +``` + +zombie_villager_v2 + + + +```json +"minecraft:burns_in_daylight": {} +``` + + + +## can_climb + + + +blaze + + + +```json +"minecraft:can_climb": {} +``` + +camel + + + +```json +"minecraft:can_climb": {} +``` + +cat + + + +```json +"minecraft:can_climb": {} +``` + +cave_spider + + + +```json +"minecraft:can_climb": {} +``` + +chicken + + + +```json +"minecraft:can_climb": {} +``` + +cow + + + +```json +"minecraft:can_climb": {} +``` + +creeper + + + +```json +"minecraft:can_climb": {} +``` + +dolphin + + + +```json +"minecraft:can_climb": {} +``` + + + +## can_fly + + + +allay + + + +```json +"minecraft:can_fly": {} +``` + +bat + + + +```json +"minecraft:can_fly": {} +``` + +bee + + + +```json +"minecraft:can_fly": {} +``` + +ghast + + + +```json +"minecraft:can_fly": {} +``` + +parrot + + + +```json +"minecraft:can_fly": {} +``` + +wither + + + +```json +"minecraft:can_fly": {} +``` + + + +## can_power_jump + + + +donkey + +#component_groups/minecraft:donkey_saddled + +```json +"minecraft:can_power_jump": {} +``` + +horse + +#component_groups/minecraft:horse_saddled + +```json +"minecraft:can_power_jump": {} +``` + +mule + +#component_groups/minecraft:mule_saddled + +```json +"minecraft:can_power_jump": {} +``` + +skeleton_horse + + + +```json +"minecraft:can_power_jump": {} +``` + + + +## celebrate_hunt + + + +piglin + +#component_groups/piglin_adult + +```json +"minecraft:celebrate_hunt": { + "celebration_targets": { + "all_of": [ + { + "test": "is_family", + "value": "hoglin" + } + ] + }, + "broadcast": true, + "duration": 10, + "celebrate_sound": "celebrate", + "sound_interval": { + "range_min": 2.0, + "range_max": 5.0 + }, + "radius": 16 +} +``` + + + +## collision_box + + + +allay + + + +```json +"minecraft:collision_box": { + "width": 0.35, + "height": 0.6 +} +``` + +armor_stand + + + +```json +"minecraft:collision_box": { + "width": 0.5, + "height": 1.975 +} +``` + +arrow + + + +```json +"minecraft:collision_box": { + "width": 0.25, + "height": 0.25 +} +``` + +axolotl + + + +```json +"minecraft:collision_box": { + "width": 0.75, + "height": 0.42 +} +``` + +bat + + + +```json +"minecraft:collision_box": { + "width": 0.5, + "height": 0.9 +} +``` + +bee + + + +```json +"minecraft:collision_box": { + "width": 0.55, + "height": 0.5 +} +``` + +blaze + + + +```json +"minecraft:collision_box": { + "width": 0.5, + "height": 1.8 +} +``` + +boat + + + +```json +"minecraft:collision_box": { + "width": 1.4, + "height": 0.455 +} +``` + + + +## color + + + +cat + +#component_groups/minecraft:cat_tame + +```json +"minecraft:color": { + "value": 14 +} +``` + +sheep + +#component_groups/minecraft:sheep_white + +```json +"minecraft:color": { + "value": 0 +} +``` + +#component_groups/minecraft:sheep_brown + +```json +"minecraft:color": { + "value": 12 +} +``` + +#component_groups/minecraft:sheep_black + +```json +"minecraft:color": { + "value": 15 +} +``` + +tropicalfish + +#component_groups/minecraft:tropicalfish_base_white + +```json +"minecraft:color": { + "value": 0 +} +``` + +#component_groups/minecraft:tropicalfish_base_orange + +```json +"minecraft:color": { + "value": 1 +} +``` + +#component_groups/minecraft:tropicalfish_base_magenta + +```json +"minecraft:color": { + "value": 2 +} +``` + +wolf + +#component_groups/minecraft:wolf_tame + +```json +"minecraft:color": { + "value": 14 +} +``` + + + +## color2 + + + +tropicalfish + +#component_groups/minecraft:tropicalfish_pattern_white + +```json +"minecraft:color2": { + "value": 0 +} +``` + +#component_groups/minecraft:tropicalfish_pattern_orange + +```json +"minecraft:color2": { + "value": 1 +} +``` + +#component_groups/minecraft:tropicalfish_pattern_magenta + +```json +"minecraft:color2": { + "value": 2 +} +``` + + + +## combat_regeneration + + + +axolotl + + + +```json +"minecraft:combat_regeneration": {} +``` + + + +## conditional_bandwidth_optimization + + + +allay + + + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +area_effect_cloud + + + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +armor_stand + + + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +arrow + + + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 7, + "use_motion_prediction_hints": true + } +} +``` + +bat + + + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +bee + + + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +blaze + + + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +boat + + + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 60.0, + "max_dropped_ticks": 20, + "use_motion_prediction_hints": true + }, + "conditional_values": [ + { + "max_optimized_distance": 0.0, + "max_dropped_ticks": 0, + "use_motion_prediction_hints": true, + "conditional_values": [ + { + "test": "is_moving", + "subject": "self", + "operator": "==", + "value": true + } + ] + } + ] +} +``` + + + +## custom_hit_test + + + +hoglin + +#component_groups/minecraft:hoglin_baby + +```json +"minecraft:custom_hit_test": { + "hitboxes": [ + { + "width": 1.0, + "height": 0.85, + "pivot": [ + 0, + 0.5, + 0 + ] + } + ] +} +``` + +#component_groups/minecraft:hoglin_adult + +```json +"minecraft:custom_hit_test": { + "hitboxes": [ + { + "width": 2.0, + "height": 1.75, + "pivot": [ + 0, + 1, + 0 + ] + } + ] +} +``` + +zoglin + +#component_groups/zoglin_baby + +```json +"minecraft:custom_hit_test": { + "hitboxes": [ + { + "width": 1.0, + "height": 0.85, + "pivot": [ + 0, + 0.5, + 0 + ] + } + ] +} +``` + +#component_groups/zoglin_adult + +```json +"minecraft:custom_hit_test": { + "hitboxes": [ + { + "width": 2.0, + "height": 1.75, + "pivot": [ + 0, + 1, + 0 + ] + } + ] +} +``` + + + +## damage_over_time + + + +axolotl + +#component_groups/axolotl_dried + +```json +"minecraft:damage_over_time": { + "damage_per_hurt": 1, + "time_between_hurt": 0 +} +``` + +dolphin + +#component_groups/dolphin_dried + +```json +"minecraft:damage_over_time": { + "damage_per_hurt": 1, + "time_between_hurt": 0 +} +``` + + + +## damage_sensor + + + +allay + + + +```json +"minecraft:damage_sensor": { + "triggers": [ + { + "on_damage": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_owner", + "subject": "other", + "value": true + } + ] + } + }, + "deals_damage": false + } + ] +} +``` + +axolotl + + + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "lightning", + "deals_damage": true, + "damage_multiplier": 2000.0 + } +} +``` + +bat + + + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "fall", + "deals_damage": false + } +} +``` + +bee + + + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "fall", + "deals_damage": false + } +} +``` + +blaze + + + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "fall", + "deals_damage": false + } +} +``` + +cat + + + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "fall", + "deals_damage": false + } +} +``` + +chicken + + + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "fall", + "deals_damage": false + } +} +``` + +creeper + + + +```json +"minecraft:damage_sensor": { + "triggers": { + "on_damage": { + "filters": { + "test": "is_family", + "subject": "other", + "value": "lightning" + }, + "event": "minecraft:become_charged" + }, + "deals_damage": false + } +} +``` + + + +## dash + + + +camel + +#component_groups/minecraft:camel_saddled + +```json +"minecraft:dash": { + "cooldown_time": 2.75, + "horizontal_momentum": 20.0, + "vertical_momentum": 0.6 +} +``` + + + +## despawn + + + +axolotl + + + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +bat + + + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +blaze + + + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +camel + + + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +cat + + + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +cave_spider + + + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +chicken + + + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +cow + + + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + + + +## drying_out_timer + + + +axolotl + +#component_groups/axolotl_on_land + +```json +"minecraft:drying_out_timer": { + "total_time": 300, + "water_bottle_refill_time": 90, + "dried_out_event": { + "event": "dried_out" + }, + "stopped_drying_out_event": { + "event": "stop_drying_out" + }, + "recover_after_dried_out_event": { + "event": "recover_after_dried_out" + } +} +``` + +dolphin + +#component_groups/dolphin_on_land + +```json +"minecraft:drying_out_timer": { + "total_time": 120, + "water_bottle_refill_time": 0, + "dried_out_event": { + "event": "dried_out" + }, + "stopped_drying_out_event": { + "event": "stop_dryingout" + }, + "recover_after_dried_out_event": { + "event": "recover_after_dried_out" + } +} +``` + + + +## dweller + + + +cat + + + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "passive", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": false, + "can_migrate": true, + "first_founding_reward": 0 +} +``` + +evocation_illager + +#component_groups/minecraft:raid_configuration + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "hostile", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": false, + "can_migrate": true, + "first_founding_reward": 0 +} +``` + +iron_golem + +#component_groups/minecraft:village_created + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "defender", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": false, + "can_migrate": true, + "first_founding_reward": 0 +} +``` + +pillager + +#component_groups/minecraft:raid_configuration + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "hostile", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": false, + "can_migrate": true, + "first_founding_reward": 0 +} +``` + +ravager + +#component_groups/minecraft:raid_configuration + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "hostile", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": false, + "can_migrate": true, + "first_founding_reward": 0 +} +``` + +villager_v2 + + + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "inhabitant", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": true, + "can_migrate": true, + "first_founding_reward": 5 +} +``` + +#component_groups/farmer + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "inhabitant", + "preferred_profession": "farmer", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": true, + "can_migrate": true, + "first_founding_reward": 5 +} +``` + +#component_groups/fisherman + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "inhabitant", + "preferred_profession": "fisherman", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": true, + "can_migrate": true, + "first_founding_reward": 5 +} +``` + + + +## economy_trade_table + + + +villager_v2 + +#component_groups/trade_components + +```json +"minecraft:economy_trade_table": {} +``` + +#component_groups/farmer + +```json +"minecraft:economy_trade_table": { + "display_name": "entity.villager.farmer", + "table": "trading/economy_trades/farmer_trades.json", + "new_screen": true, + "persist_trades": true, + "cured_discount": [ + -100, + -100 + ], + "max_cured_discount": [ + -500, + -500 + ] +} +``` + +#component_groups/fisherman + +```json +"minecraft:economy_trade_table": { + "display_name": "entity.villager.fisherman", + "table": "trading/economy_trades/fisherman_trades.json", + "new_screen": true, + "persist_trades": true, + "cured_discount": [ + -100, + -100 + ], + "max_cured_discount": [ + -500, + -500 + ] +} +``` + +wandering_trader + + + +```json +"minecraft:economy_trade_table": { + "display_name": "entity.wandering_trader.name", + "table": "trading/economy_trades/wandering_trader_trades.json", + "new_screen": true +} +``` + + + +## entity_sensor + + + +parrot + +#component_groups/minecraft:parrot_not_riding_player + +```json +"minecraft:entity_sensor": { + "sensor_range": 2.0, + "relative_range": false, + "event_filters": { + "all_of": [ + { + "test": "is_riding", + "subject": "self", + "operator": "equals", + "value": true + }, + { + "test": "has_component", + "subject": "self", + "operator": "equals", + "value": "minecraft:behavior.look_at_player" + } + ] + }, + "event": "minecraft:on_riding_player" +} +``` + +#component_groups/minecraft:parrot_riding_player + +```json +"minecraft:entity_sensor": { + "sensor_range": 2.0, + "relative_range": false, + "event_filters": { + "all_of": [ + { + "test": "is_riding", + "subject": "self", + "operator": "equals", + "value": false + }, + { + "test": "has_component", + "subject": "self", + "operator": "not", + "value": "minecraft:behavior.look_at_player" + } + ] + }, + "event": "minecraft:on_not_riding_player" +} +``` + +pufferfish + +#component_groups/minecraft:normal_puff + +```json +"minecraft:entity_sensor": { + "sensor_range": 2.5, + "relative_range": false, + "minimum_count": 1, + "event_filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "mob" + }, + { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "none_of": { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + } + ] + } + ] + }, + "event": "minecraft:start_half_puff" +} +``` + +#component_groups/minecraft:half_puff_secondary + +```json +"minecraft:entity_sensor": { + "sensor_range": 2.5, + "relative_range": false, + "minimum_count": 1, + "event_filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "mob" + }, + { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "none_of": { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + } + ] + } + ] + }, + "event": "minecraft:start_full_puff" +} +``` + +#component_groups/minecraft:deflate_sensor + +```json +"minecraft:entity_sensor": { + "sensor_range": 2.9, + "relative_range": false, + "require_all": true, + "event_filters": { + "none_of": [ + { + "test": "is_family", + "subject": "other", + "value": "mob" + }, + { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "none_of": { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + } + ] + } + ], + "test": "distance_to_nearest_player", + "operator": ">", + "value": 2.9 + }, + "event": "minecraft:from_full_puff" +} +``` + + + +## environment_sensor + + + +axolotl + +#component_groups/axolotl_in_water + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "test": "in_water", + "operator": "!=", + "value": true + }, + "event": "start_drying_out" + } + ] +} +``` + +#component_groups/axolotl_on_land_in_rain + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "test": "in_water_or_rain", + "operator": "!=", + "value": true + }, + "event": "start_drying_out" + }, + { + "filters": { + "test": "in_water", + "operator": "==", + "value": true + }, + "event": "enter_water" + } + ] +} +``` + +bee + +#component_groups/shelter_detection + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "event": "seek_shelter", + "filters": { + "all_of": [ + { + "any_of": [ + { + "test": "is_daytime", + "value": false + }, + { + "test": "weather", + "operator": "==", + "value": "precipitation" + } + ] + }, + { + "test": "bool_property", + "domain": "minecraft:has_nectar", + "operator": "!=" + }, + { + "test": "has_biome_tag", + "value": "overworld" + } + ] + } + } + ] +} +``` + +#component_groups/abort_shelter_detection + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "event": "abort_sheltering", + "filters": { + "all_of": [ + { + "test": "weather", + "operator": "==", + "value": "clear" + }, + { + "test": "is_daytime", + "value": true + } + ] + } + } + ] +} +``` + +cave_spider + +#component_groups/minecraft:spider_neutral + +```json +"minecraft:environment_sensor": { + "triggers": { + "filters": { + "test": "is_brightness", + "operator": "<", + "value": 0.49 + }, + "event": "minecraft:become_hostile" + } +} +``` + +#component_groups/minecraft:spider_hostile + +```json +"minecraft:environment_sensor": { + "triggers": { + "filters": { + "test": "is_brightness", + "operator": ">", + "value": 0.49 + }, + "event": "minecraft:become_neutral" + } +} +``` + +dolphin + +#component_groups/dolphin_swimming_navigation + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "all_of": [ + { + "test": "on_ground", + "operator": "==", + "value": true + }, + { + "test": "in_water", + "operator": "!=", + "value": true + } + ] + }, + "event": "navigation_on_land" + } + ] +} +``` + +#component_groups/dolphin_on_land_in_rain + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "test": "in_water", + "operator": "==", + "value": true + }, + "event": "navigation_off_land" + }, + { + "filters": { + "test": "in_water_or_rain", + "operator": "!=", + "value": true + }, + "event": "start_dryingout" + } + ] +} +``` + + + +## equip_item + + + +drowned + + + +```json +"minecraft:equip_item": {} +``` + +fox + + + +```json +"minecraft:equip_item": {} +``` + +husk + + + +```json +"minecraft:equip_item": {} +``` + +piglin + + + +```json +"minecraft:equip_item": {} +``` + +pillager + + + +```json +"minecraft:equip_item": {} +``` + +skeleton + + + +```json +"minecraft:equip_item": {} +``` + +stray + + + +```json +"minecraft:equip_item": {} +``` + +wither_skeleton + + + +```json +"minecraft:equip_item": {} +``` + + + +## equipment + + + +drowned + +#component_groups/minecraft:ranged_equipment + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/drowned_ranged_equipment.json", + "slot_drop_chance": [ + { + "slot": "slot.weapon.offhand", + "drop_chance": 1.0 + } + ] +} +``` + +#component_groups/minecraft:melee_equipment + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/drowned_equipment.json", + "slot_drop_chance": [ + { + "slot": "slot.weapon.offhand", + "drop_chance": 1.0 + } + ] +} +``` + +fox + +#component_groups/minecraft:fox_with_item + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/fox_equipment.json", + "slot_drop_chance": [ + { + "slot": "slot.weapon.mainhand", + "drop_chance": 1.0 + } + ] +} +``` + +husk + + + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/zombie_equipment.json" +} +``` + +piglin + +#component_groups/ranged_unit + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/piglin_gear_ranged.json" +} +``` + +#component_groups/melee_unit + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/piglin_gear_melee.json" +} +``` + +piglin_brute + +#component_groups/melee_unit + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/piglin_brute_gear.json" +} +``` + +pillager + + + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/pillager_gear.json" +} +``` + + + +## equippable + + + +camel + +#component_groups/minecraft:camel_adult + +```json +"minecraft:equippable": { + "slots": [ + { + "slot": 0, + "item": "saddle", + "accepted_items": [ + "saddle" + ], + "on_equip": { + "event": "minecraft:camel_saddled" + }, + "on_unequip": { + "event": "minecraft:camel_unsaddled" + } + } + ] +} +``` + +donkey + +#component_groups/minecraft:donkey_tamed + +```json +"minecraft:equippable": { + "slots": [ + { + "slot": 0, + "item": "saddle", + "accepted_items": [ + "saddle" + ], + "on_equip": { + "event": "minecraft:donkey_saddled" + }, + "on_unequip": { + "event": "minecraft:donkey_unsaddled" + } + } + ] +} +``` + +horse + + + +```json +"minecraft:equippable": { + "slots": [ + { + "slot": 0, + "item": "saddle", + "accepted_items": [ + "saddle" + ], + "on_equip": { + "event": "minecraft:horse_saddled" + }, + "on_unequip": { + "event": "minecraft:horse_unsaddled" + } + }, + { + "slot": 1, + "item": "horsearmoriron", + "accepted_items": [ + "horsearmorleather", + "horsearmoriron", + "horsearmorgold", + "horsearmordiamond" + ] + } + ] +} +``` + +llama + +#component_groups/minecraft:llama_tamed + +```json +"minecraft:equippable": { + "slots": [ + { + "slot": 1, + "item": "carpet", + "accepted_items": [ + "carpet" + ] + } + ] +} +``` + +mule + +#component_groups/minecraft:mule_tamed + +```json +"minecraft:equippable": { + "slots": [ + { + "slot": 0, + "item": "saddle", + "accepted_items": [ + "saddle" + ], + "on_equip": { + "event": "minecraft:mule_saddled" + }, + "on_unequip": { + "event": "minecraft:mule_unsaddled" + } + } + ] +} +``` + +trader_llama + +#component_groups/minecraft:llama_tamed + +```json +"minecraft:equippable": { + "slots": [ + { + "slot": 1, + "item": "carpet", + "accepted_items": [ + "carpet" + ] + } + ] +} +``` + + + +## exhaustion_values + + + +player + + + +```json +"minecraft:exhaustion_values": { + "heal": 6, + "jump": 0.05, + "sprint_jump": 0.2, + "mine": 0.005, + "attack": 0.1, + "damage": 0.1, + "walk": 0.0, + "sprint": 0.1, + "swim": 0.01 +} +``` + + + +## experience_reward + + + +axolotl + +#component_groups/axolotl_adult + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "q.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +bee + +#component_groups/bee_adult + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "q.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +blaze + + + +```json +"minecraft:experience_reward": { + "on_death": "q.last_hit_by_player ? 10 : 0" +} +``` + +camel + +#component_groups/minecraft:camel_adult + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "q.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +cat + +#component_groups/minecraft:cat_adult + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "q.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +cave_spider + + + +```json +"minecraft:experience_reward": { + "on_death": "q.last_hit_by_player ? 5 : 0" +} +``` + +chicken + +#component_groups/minecraft:chicken_adult + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "q.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +cow + +#component_groups/minecraft:cow_adult + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "q.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + + + +## explode + + + +creeper + +#component_groups/minecraft:exploding + +```json +"minecraft:explode": { + "fuse_length": 1.5, + "fuse_lit": true, + "power": 3, + "causes_fire": false, + "destroy_affected_by_griefing": true +} +``` + +#component_groups/minecraft:charged_exploding + +```json +"minecraft:explode": { + "fuse_length": 1.5, + "fuse_lit": true, + "power": 6, + "causes_fire": false, + "destroy_affected_by_griefing": true +} +``` + +#component_groups/minecraft:forced_exploding + +```json +"minecraft:explode": { + "fuse_length": 1.5, + "fuse_lit": true, + "power": 3, + "causes_fire": false, + "destroy_affected_by_griefing": true +} +``` + +ender_crystal + +#component_groups/crystal_exploding + +```json +"minecraft:explode": { + "fuse_length": 0, + "fuse_lit": true, + "power": 6, + "causes_fire": false, + "destroy_affected_by_griefing": true +} +``` + +fireball + +#component_groups/minecraft:exploding + +```json +"minecraft:explode": { + "fuse_length": 0, + "fuse_lit": true, + "power": 1, + "causes_fire": true, + "fire_affected_by_griefing": true, + "destroy_affected_by_griefing": true +} +``` + +tnt + + + +```json +"minecraft:explode": { + "fuse_length": 4, + "fuse_lit": true, + "power": 4, + "causes_fire": false +} +``` + +#component_groups/from_explosion + +```json +"minecraft:explode": { + "fuse_length": { + "range_min": 0.5, + "range_max": 2.0 + }, + "fuse_lit": true, + "power": 4, + "causes_fire": false +} +``` + +tnt_minecart + +#component_groups/minecraft:primed_tnt + +```json +"minecraft:explode": { + "fuse_length": 4, + "fuse_lit": true, + "power": 3, + "causes_fire": false +} +``` + + + +## fire_immune + + + +blaze + + + +```json +"minecraft:fire_immune": {} +``` + +ender_crystal + + + +```json +"minecraft:fire_immune": true +``` + +ender_dragon + + + +```json +"minecraft:fire_immune": true +``` + +ghast + + + +```json +"minecraft:fire_immune": {} +``` + +magma_cube + + + +```json +"minecraft:fire_immune": {} +``` + +npc + + + +```json +"minecraft:fire_immune": true +``` + +shulker + + + +```json +"minecraft:fire_immune": true +``` + +strider + + + +```json +"minecraft:fire_immune": {} +``` + + + +## flocking + + + +dolphin + + + +```json +"minecraft:flocking": { + "in_water": false, + "match_variants": false, + "use_center_of_mass": false, + "low_flock_limit": 4, + "high_flock_limit": 8, + "goal_weight": 2.0, + "loner_chance": 0.1, + "influence_radius": 6.0, + "breach_influence": 0.0, + "separation_weight": 1.75, + "separation_threshold": 3.0, + "cohesion_weight": 1.85, + "cohesion_threshold": 6.5, + "innner_cohesion_threshold": 3.5, + "min_height": 4.0, + "max_height": 4.0, + "block_distance": 1.0, + "block_weight": 0.0 +} +``` + +cod + + + +```json +"minecraft:flocking": { + "in_water": true, + "match_variants": false, + "use_center_of_mass": true, + "low_flock_limit": 4, + "high_flock_limit": 8, + "goal_weight": 2.0, + "loner_chance": 0.1, + "influence_radius": 3.0, + "breach_influence": 7.0, + "separation_weight": 1.75, + "separation_threshold": 0.95, + "cohesion_weight": 2.0, + "cohesion_threshold": 1.95, + "innner_cohesion_threshold": 1.25, + "min_height": 1.5, + "max_height": 6.0, + "block_distance": 2.0, + "block_weight": 0.85 +} +``` + +pufferfish + + + +```json +"minecraft:flocking": { + "in_water": true, + "match_variants": false, + "use_center_of_mass": true, + "low_flock_limit": 4, + "high_flock_limit": 8, + "goal_weight": 2.0, + "loner_chance": 0.1, + "influence_radius": 3.0, + "breach_influence": 7.0, + "separation_weight": 1.75, + "separation_threshold": 0.95, + "cohesion_weight": 2.0, + "cohesion_threshold": 1.95, + "innner_cohesion_threshold": 1.25, + "min_height": 1.5, + "max_height": 6.0, + "block_distance": 2.0, + "block_weight": 0.85 +} +``` + +salmon + + + +```json +"minecraft:flocking": { + "in_water": true, + "match_variants": false, + "use_center_of_mass": false, + "low_flock_limit": 4, + "high_flock_limit": 8, + "goal_weight": 2.0, + "loner_chance": 0.1, + "influence_radius": 3.0, + "breach_influence": 7.0, + "separation_weight": 0.65, + "separation_threshold": 0.15, + "cohesion_weight": 2.25, + "cohesion_threshold": 1.5, + "innner_cohesion_threshold": 1.5, + "min_height": 4.0, + "max_height": 4.0, + "block_distance": 1.0, + "block_weight": 0.75 +} +``` + +tropicalfish + + + +```json +"minecraft:flocking": { + "in_water": true, + "match_variants": true, + "use_center_of_mass": false, + "low_flock_limit": 4, + "high_flock_limit": 8, + "goal_weight": 2.0, + "loner_chance": 0.1, + "influence_radius": 3.0, + "breach_influence": 7.0, + "separation_weight": 0.65, + "separation_threshold": 0.15, + "cohesion_weight": 2.75, + "cohesion_threshold": 1.5, + "innner_cohesion_threshold": 1.5, + "min_height": 1.5, + "max_height": 6.0, + "block_distance": 2.0, + "block_weight": 0.85 +} +``` + + + +## flying_speed + + + +allay + + + +```json +"minecraft:flying_speed": { + "value": 0.1 +} +``` + +bee + + + +```json +"minecraft:flying_speed": { + "value": 0.15 +} +``` + +ender_dragon + + + +```json +"minecraft:flying_speed": { + "value": 0.6 +} +``` + + + +## follow_range + + + +allay + + + +```json +"minecraft:follow_range": { + "value": 1024 +} +``` + +bee + + + +```json +"minecraft:follow_range": { + "value": 1024 +} +``` + +blaze + + + +```json +"minecraft:follow_range": { + "value": 48, + "max": 48 +} +``` + +dolphin + + + +```json +"minecraft:follow_range": { + "value": 48, + "max": 48 +} +``` + +elder_guardian + + + +```json +"minecraft:follow_range": { + "value": 16, + "max": 16 +} +``` + +enderman + + + +```json +"minecraft:follow_range": { + "value": 64, + "max": 64 +} +``` + +evocation_illager + + + +```json +"minecraft:follow_range": { + "value": 64 +} +``` + +ghast + + + +```json +"minecraft:follow_range": { + "value": 64, + "max": 64 +} +``` + + + +## game_event_movement_tracking + + + +allay + + + +```json +"minecraft:game_event_movement_tracking": { + "emit_flap": true +} +``` + +bat + + + +```json +"minecraft:game_event_movement_tracking": { + "emit_flap": true +} +``` + +bee + + + +```json +"minecraft:game_event_movement_tracking": { + "emit_flap": true +} +``` + +chicken + + + +```json +"minecraft:game_event_movement_tracking": { + "emit_flap": true +} +``` + +ender_dragon + + + +```json +"minecraft:game_event_movement_tracking": { + "emit_flap": true +} +``` + +parrot + + + +```json +"minecraft:game_event_movement_tracking": { + "emit_flap": true +} +``` + +phantom + + + +```json +"minecraft:game_event_movement_tracking": { + "emit_flap": true +} +``` + +vex + + + +```json +"minecraft:game_event_movement_tracking": { + "emit_move": false, + "emit_swim": false +} +``` + + + +## genetics + + + +goat + + + +```json +"minecraft:genetics": { + "mutation_rate": 0.02, + "genes": [ + { + "name": "goat_variant", + "use_simplified_breeding": true, + "allele_range": { + "range_min": 1, + "range_max": 100 + }, + "genetic_variants": [ + { + "main_allele": { + "range_min": 1, + "range_max": 2 + }, + "birth_event": { + "event": "minecraft:born_screamer", + "target": "self" + } + }, + { + "main_allele": { + "range_min": 3, + "range_max": 100 + }, + "birth_event": { + "event": "minecraft:born_default", + "target": "self" + } + } + ] + } + ] +} +``` + +panda + + + +```json +"minecraft:genetics": { + "mutation_rate": 0.03125, + "genes": [ + { + "name": "panda_variant", + "allele_range": { + "range_min": 0, + "range_max": 15 + }, + "genetic_variants": [ + { + "main_allele": 0, + "birth_event": { + "event": "minecraft:panda_lazy", + "target": "self" + } + }, + { + "main_allele": 1, + "birth_event": { + "event": "minecraft:panda_worried", + "target": "self" + } + }, + { + "main_allele": 2, + "birth_event": { + "event": "minecraft:panda_playful", + "target": "self" + } + }, + { + "main_allele": 3, + "birth_event": { + "event": "minecraft:panda_aggressive", + "target": "self" + } + }, + { + "both_allele": { + "range_min": 4, + "range_max": 7 + }, + "birth_event": { + "event": "minecraft:panda_weak", + "target": "self" + } + }, + { + "both_allele": { + "range_min": 8, + "range_max": 9 + }, + "birth_event": { + "event": "minecraft:panda_brown", + "target": "self" + } + } + ] + } + ] +} +``` + + + +## giveable + + + +panda + + + +```json +"minecraft:giveable": { + "triggers": { + "cooldown": 3.0, + "items": [ + "bamboo", + "cake" + ], + "on_give": { + "event": "minecraft:on_calm", + "target": "self" + } + } +} +``` + + + +## group_size + + + +hoglin + +#component_groups/minecraft:hoglin_adult + +```json +"minecraft:group_size": { + "radius": 32, + "filters": { + "all_of": [ + { + "test": "has_component", + "operator": "!=", + "value": "minecraft:is_baby" + }, + { + "test": "is_family", + "value": "hoglin" + } + ] + } +} +``` + +piglin + +#component_groups/piglin_adult + +```json +"minecraft:group_size": { + "radius": 32, + "filters": { + "all_of": [ + { + "test": "has_component", + "operator": "!=", + "value": "minecraft:is_baby" + }, + { + "test": "is_family", + "value": "piglin" + } + ] + } +} +``` + + + +## grows_crop + + + +bee + +#component_groups/has_nectar + +```json +"minecraft:grows_crop": { + "charges": 10, + "chance": 0.03 +} +``` + + + +## healable + + + +camel + + + +```json +"minecraft:healable": { + "items": [ + { + "item": "cactus", + "heal_amount": 2 + } + ] +} +``` + +cat + + + +```json +"minecraft:healable": { + "items": [ + { + "item": "fish", + "heal_amount": 2 + }, + { + "item": "salmon", + "heal_amount": 2 + } + ] +} +``` + +donkey + + + +```json +"minecraft:healable": { + "items": [ + { + "item": "wheat", + "heal_amount": 2 + }, + { + "item": "sugar", + "heal_amount": 1 + }, + { + "item": "hay_block", + "heal_amount": 20 + }, + { + "item": "apple", + "heal_amount": 3 + }, + { + "item": "golden_carrot", + "heal_amount": 4 + }, + { + "item": "golden_apple", + "heal_amount": 10 + }, + { + "item": "appleEnchanted", + "heal_amount": 10 + } + ] +} +``` + +horse + + + +```json +"minecraft:healable": { + "items": [ + { + "item": "wheat", + "heal_amount": 2 + }, + { + "item": "sugar", + "heal_amount": 1 + }, + { + "item": "hay_block", + "heal_amount": 20 + }, + { + "item": "apple", + "heal_amount": 3 + }, + { + "item": "golden_carrot", + "heal_amount": 4 + }, + { + "item": "golden_apple", + "heal_amount": 10 + }, + { + "item": "appleEnchanted", + "heal_amount": 10 + } + ] +} +``` + +llama + + + +```json +"minecraft:healable": { + "items": [ + { + "item": "wheat", + "heal_amount": 2 + }, + { + "item": "hay_block", + "heal_amount": 10 + } + ] +} +``` + +mule + + + +```json +"minecraft:healable": { + "items": [ + { + "item": "wheat", + "heal_amount": 2 + }, + { + "item": "sugar", + "heal_amount": 1 + }, + { + "item": "hay_block", + "heal_amount": 20 + }, + { + "item": "apple", + "heal_amount": 3 + }, + { + "item": "golden_carrot", + "heal_amount": 4 + }, + { + "item": "golden_apple", + "heal_amount": 10 + }, + { + "item": "appleEnchanted", + "heal_amount": 10 + } + ] +} +``` + +parrot + + + +```json +"minecraft:healable": { + "force_use": true, + "filters": { + "test": "is_riding", + "operator": "!=", + "value": true + }, + "items": [ + { + "item": "cookie", + "heal_amount": 0, + "effects": [ + { + "name": "fatal_poison", + "chance": 1.0, + "duration": 1000, + "amplifier": 0 + } + ] + } + ] +} +``` + +sniffer + + + +```json +"minecraft:healable": { + "items": [ + { + "item": "torchflower_seeds", + "heal_amount": 2 + } + ] +} +``` + + + +## health + + + +allay + + + +```json +"minecraft:health": { + "value": 20 +} +``` + +armor_stand + + + +```json +"minecraft:health": { + "value": 6, + "max": 6 +} +``` + +axolotl + + + +```json +"minecraft:health": { + "value": 14 +} +``` + +bat + + + +```json +"minecraft:health": { + "value": 6, + "max": 6 +} +``` + +bee + + + +```json +"minecraft:health": { + "value": 10, + "max": 10 +} +``` + +blaze + + + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +camel + + + +```json +"minecraft:health": { + "value": 32 +} +``` + +cat + +#component_groups/minecraft:cat_wild + +```json +"minecraft:health": { + "value": 10, + "max": 10 +} +``` + + + +## heartbeat + + + +warden + + + +```json +"minecraft:heartbeat": { + "interval": "2.0 - math.clamp(q.anger_level / 80 * 1.5, 0, 1.5)" +} +``` + + + +## hide + + + +villager_v2 + + + +```json +"minecraft:hide": {} +``` + + + +## home + + + +bee + + + +```json +"minecraft:home": { + "restriction_radius": 22, + "home_block_list": [ + "minecraft:bee_nest", + "minecraft:beehive" + ] +} +``` + +elder_guardian + + + +```json +"minecraft:home": { + "restriction_radius": 16 +} +``` + +guardian + + + +```json +"minecraft:home": { + "restriction_radius": 16 +} +``` + +piglin_brute + + + +```json +"minecraft:home": {} +``` + +turtle + + + +```json +"minecraft:home": {} +``` + +wandering_trader + + + +```json +"minecraft:home": { + "restriction_radius": 16 +} +``` + + + +## horse.jump_strength + + + +donkey + + + +```json +"minecraft:horse.jump_strength": { + "value": 0.5 +} +``` + +horse + + + +```json +"minecraft:horse.jump_strength": { + "value": { + "range_min": 0.4, + "range_max": 1.0 + } +} +``` + +mule + + + +```json +"minecraft:horse.jump_strength": { + "value": 0.5 +} +``` + +skeleton_horse + + + +```json +"minecraft:horse.jump_strength": { + "value": { + "range_min": 0.4, + "range_max": 1.0 + } +} +``` + +zombie_horse + + + +```json +"minecraft:horse.jump_strength": { + "value": { + "range_min": 0.4, + "range_max": 1.0 + } +} +``` + + + +## hurt_on_condition + + + +allay + + + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +armor_stand + + + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +arrow + + + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +axolotl + + + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +bat + + + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +bee + + + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +#component_groups/perish + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "cause": "none", + "damage_per_tick": 999 + } + ] +} +``` + +blaze + + + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_contact_with_water", + "operator": "==", + "value": true + }, + "cause": "drowning", + "damage_per_tick": 1 + } + ] +} +``` + + + +## input_ground_controlled + + + +camel + +#component_groups/minecraft:camel_saddled + +```json +"minecraft:input_ground_controlled": {} +``` + +donkey + +#component_groups/minecraft:donkey_saddled + +```json +"minecraft:input_ground_controlled": {} +``` + +horse + +#component_groups/minecraft:horse_saddled + +```json +"minecraft:input_ground_controlled": {} +``` + +mule + +#component_groups/minecraft:mule_saddled + +```json +"minecraft:input_ground_controlled": {} +``` + +skeleton_horse + + + +```json +"minecraft:input_ground_controlled": {} +``` + + + +## inside_block_notifier + + + +boat + + + +```json +"minecraft:inside_block_notifier": { + "block_list": [ + { + "block": { + "name": "minecraft:bubble_column", + "states": { + "drag_down": true + } + }, + "entered_block_event": { + "event": "minecraft:entered_bubble_column_down", + "target": "self" + }, + "exited_block_event": { + "event": "minecraft:exited_bubble_column", + "target": "self" + } + }, + { + "block": { + "name": "minecraft:bubble_column", + "states": { + "drag_down": false + } + }, + "entered_block_event": { + "event": "minecraft:entered_bubble_column_up", + "target": "self" + }, + "exited_block_event": { + "event": "minecraft:exited_bubble_column", + "target": "self" + } + } + ] +} +``` + +chest_boat + + + +```json +"minecraft:inside_block_notifier": { + "block_list": [ + { + "block": { + "name": "minecraft:bubble_column", + "states": { + "drag_down": true + } + }, + "entered_block_event": { + "event": "minecraft:entered_bubble_column_down", + "target": "self" + }, + "exited_block_event": { + "event": "minecraft:exited_bubble_column", + "target": "self" + } + }, + { + "block": { + "name": "minecraft:bubble_column", + "states": { + "drag_down": false + } + }, + "entered_block_event": { + "event": "minecraft:entered_bubble_column_up", + "target": "self" + }, + "exited_block_event": { + "event": "minecraft:exited_bubble_column", + "target": "self" + } + } + ] +} +``` + + + +## insomnia + + + +player + + + +```json +"minecraft:insomnia": { + "days_until_insomnia": 3 +} +``` + + + +## interact + + + +allay + + + +```json +"minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_sneak_held", + "subject": "other", + "value": false + } + ] + } + }, + "give_item": true, + "take_item": true, + "interact_text": "action.interact.allay" + } + ] +} +``` + +camel + +#component_groups/minecraft:camel_adult + +```json +"minecraft:interact": { + "interactions": [ + { + "play_sounds": "saddle", + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "self", + "domain": "inventory", + "operator": "not", + "value": "saddle" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "saddle" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_sneak_held", + "subject": "other", + "value": false + } + ] + }, + "target": "self" + }, + "equip_item_slot": 0, + "interact_text": "action.interact.saddle" + } + ] +} +``` + +cow + +#component_groups/minecraft:cow_adult + +```json +"minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_equipment", + "domain": "hand", + "subject": "other", + "value": "bucket:0" + } + ] + } + }, + "use_item": true, + "transform_to_item": "bucket:1", + "play_sounds": "milk", + "interact_text": "action.interact.milk" + } + ] +} +``` + +creeper + + + +```json +"minecraft:interact": { + "interactions": { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_equipment", + "domain": "hand", + "subject": "other", + "value": "flint_and_steel" + }, + { + "test": "has_component", + "operator": "!=", + "value": "minecraft:explode" + } + ] + }, + "event": "minecraft:start_exploding_forced", + "target": "self" + }, + "hurt_item": 1, + "swing": true, + "play_sounds": "ignite", + "interact_text": "action.interact.creeper" + } +} +``` + +donkey + +#component_groups/minecraft:donkey_tamed + +```json +"minecraft:interact": { + "interactions": [ + { + "play_sounds": "armor.equip_generic", + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "self", + "domain": "inventory", + "operator": "not", + "value": "saddle" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "saddle" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_sneaking", + "subject": "other", + "value": false + } + ] + }, + "target": "self" + }, + "equip_item_slot": 0, + "interact_text": "action.interact.equip" + } + ] +} +``` + +#component_groups/minecraft:donkey_unchested + +```json +"minecraft:interact": { + "interactions": [ + { + "play_sounds": "armor.equip_generic", + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "self", + "domain": "inventory", + "operator": "not", + "value": "saddle" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "saddle" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_sneaking", + "subject": "other", + "value": false + } + ] + }, + "target": "self" + }, + "equip_item_slot": 0, + "interact_text": "action.interact.saddle" + }, + { + "play_sounds": "armor.equip_generic", + "on_interact": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_sneaking", + "subject": "other", + "value": false + }, + { + "test": "has_equipment", + "domain": "hand", + "subject": "other", + "value": "chest" + } + ] + }, + "event": "minecraft:on_chest", + "target": "self" + }, + "use_item": true, + "interact_text": "action.interact.attachchest" + } + ] +} +``` + +#component_groups/minecraft:donkey_chested + +```json +"minecraft:interact": { + "interactions": [ + { + "play_sounds": "armor.equip_generic", + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "self", + "domain": "inventory", + "operator": "not", + "value": "saddle" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "saddle" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_sneaking", + "subject": "other", + "value": false + } + ] + }, + "target": "self" + }, + "equip_item_slot": 0, + "interact_text": "action.interact.saddle" + } + ] +} +``` + +goat + +#component_groups/interact_default + +```json +"minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_component", + "subject": "self", + "operator": "!=", + "value": "minecraft:is_baby" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_equipment", + "domain": "hand", + "subject": "other", + "value": "bucket:0" + } + ] + } + }, + "use_item": true, + "transform_to_item": "bucket:1", + "play_sounds": "milk_suspiciously", + "interact_text": "action.interact.milk" + } + ] +} +``` + + + +## inventory + + + +allay + + + +```json +"minecraft:inventory": { + "inventory_size": 1 +} +``` + +camel + +#component_groups/minecraft:camel_adult + +```json +"minecraft:inventory": { + "container_type": "horse" +} +``` + +chest_boat + + + +```json +"minecraft:inventory": { + "container_type": "chest_boat", + "inventory_size": 27, + "can_be_siphoned_from": true +} +``` + +chest_minecart + + + +```json +"minecraft:inventory": { + "container_type": "minecart_chest", + "inventory_size": 27, + "can_be_siphoned_from": true +} +``` + +command_block_minecart + + + +```json +"minecraft:inventory": {} +``` + +donkey + +#component_groups/minecraft:donkey_tamed + +```json +"minecraft:inventory": { + "inventory_size": 16, + "container_type": "horse" +} +``` + +hopper_minecart + + + +```json +"minecraft:inventory": { + "container_type": "minecart_hopper", + "inventory_size": 5, + "can_be_siphoned_from": true +} +``` + +horse + +#component_groups/minecraft:horse_tamed + +```json +"minecraft:inventory": { + "inventory_size": 2, + "container_type": "horse" +} +``` + + + +## is_baby + + + +axolotl + +#component_groups/axolotl_baby + +```json +"minecraft:is_baby": {} +``` + +bee + +#component_groups/bee_baby + +```json +"minecraft:is_baby": {} +``` + +camel + +#component_groups/minecraft:camel_baby + +```json +"minecraft:is_baby": {} +``` + +cat + +#component_groups/minecraft:cat_baby + +```json +"minecraft:is_baby": {} +``` + +chicken + +#component_groups/minecraft:chicken_baby + +```json +"minecraft:is_baby": {} +``` + +cow + +#component_groups/minecraft:cow_baby + +```json +"minecraft:is_baby": {} +``` + +dolphin + +#component_groups/dolphin_baby + +```json +"minecraft:is_baby": {} +``` + +donkey + +#component_groups/minecraft:donkey_baby + +```json +"minecraft:is_baby": {} +``` + + + +## is_charged + + + +creeper + +#component_groups/minecraft:charged_creeper + +```json +"minecraft:is_charged": {} +``` + + + +## is_chested + + + +donkey + +#component_groups/minecraft:donkey_chested + +```json +"minecraft:is_chested": {} +``` + +llama + +#component_groups/minecraft:llama_chested + +```json +"minecraft:is_chested": {} +``` + +mule + +#component_groups/minecraft:mule_chested + +```json +"minecraft:is_chested": {} +``` + +trader_llama + +#component_groups/minecraft:llama_chested + +```json +"minecraft:is_chested": {} +``` + + + +## is_dyeable + + + +cat + +#component_groups/minecraft:cat_tame + +```json +"minecraft:is_dyeable": { + "interact_text": "action.interact.dye" +} +``` + +sheep + +#component_groups/minecraft:sheep_dyeable + +```json +"minecraft:is_dyeable": { + "interact_text": "action.interact.dye" +} +``` + +wolf + +#component_groups/minecraft:wolf_tame + +```json +"minecraft:is_dyeable": { + "interact_text": "action.interact.dye" +} +``` + + + +## is_hidden_when_invisible + + + +allay + + + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +axolotl + + + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +bat + + + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +bee + + + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +blaze + + + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +camel + + + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +cat + + + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +cave_spider + + + +```json +"minecraft:is_hidden_when_invisible": {} +``` + + + +## is_ignited + + + +tnt_minecart + +#component_groups/minecraft:primed_tnt + +```json +"minecraft:is_ignited": {} +``` + +#component_groups/minecraft:instant_explode_tnt + +```json +"minecraft:is_ignited": {} +``` + + + +## is_illager_captain + + + +pillager + +#component_groups/minecraft:illager_squad_captain + +```json +"minecraft:is_illager_captain": {} +``` + +#component_groups/minecraft:patrol_captain + +```json +"minecraft:is_illager_captain": {} +``` + +vindicator + +#component_groups/minecraft:illager_squad_captain + +```json +"minecraft:is_illager_captain": {} +``` + +#component_groups/minecraft:patrol_captain + +```json +"minecraft:is_illager_captain": {} +``` + + + +## is_pregnant + + + +sniffer + +#component_groups/sniffer_pregnant + +```json +"minecraft:is_pregnant": {} +``` + + + +## is_saddled + + + +camel + +#component_groups/minecraft:camel_saddled + +```json +"minecraft:is_saddled": {} +``` + +donkey + +#component_groups/minecraft:donkey_saddled + +```json +"minecraft:is_saddled": {} +``` + +horse + +#component_groups/minecraft:horse_saddled + +```json +"minecraft:is_saddled": {} +``` + +mule + +#component_groups/minecraft:mule_saddled + +```json +"minecraft:is_saddled": {} +``` + +pig + +#component_groups/minecraft:pig_saddled + +```json +"minecraft:is_saddled": {} +``` + +strider + +#component_groups/minecraft:strider_saddled + +```json +"minecraft:is_saddled": {} +``` + + + +## is_shaking + + + +hoglin + +#component_groups/start_zombification + +```json +"minecraft:is_shaking": {} +``` + +husk + +#component_groups/minecraft:convert_to_zombie + +```json +"minecraft:is_shaking": {} +``` + +#component_groups/minecraft:convert_to_baby_zombie + +```json +"minecraft:is_shaking": {} +``` + +piglin + +#component_groups/start_zombification + +```json +"minecraft:is_shaking": {} +``` + +piglin_brute + +#component_groups/start_zombification + +```json +"minecraft:is_shaking": {} +``` + +skeleton + +#component_groups/in_powder_snow + +```json +"minecraft:is_shaking": {} +``` + +strider + +#component_groups/minecraft:start_suffocating + +```json +"minecraft:is_shaking": {} +``` + +zombie + +#component_groups/minecraft:convert_to_drowned + +```json +"minecraft:is_shaking": {} +``` + + + +## is_sheared + + + +sheep + +#component_groups/minecraft:sheep_sheared + +```json +"minecraft:is_sheared": {} +``` + +snow_golem + +#component_groups/minecraft:snowman_sheared + +```json +"minecraft:is_sheared": {} +``` + + + +## is_stackable + + + +boat + + + +```json +"minecraft:is_stackable": {} +``` + +chest_boat + + + +```json +"minecraft:is_stackable": {} +``` + +chest_minecart + + + +```json +"minecraft:is_stackable": { + "value": true +} +``` + +hopper_minecart + + + +```json +"minecraft:is_stackable": {} +``` + +minecart + + + +```json +"minecraft:is_stackable": {} +``` + +tnt_minecart + + + +```json +"minecraft:is_stackable": {} +``` + + + +## is_stunned + + + +ravager + +#component_groups/stunned + +```json +"minecraft:is_stunned": {} +``` + + + +## is_tamed + + + +camel + + + +```json +"minecraft:is_tamed": {} +``` + +cat + +#component_groups/minecraft:cat_tame + +```json +"minecraft:is_tamed": {} +``` + +donkey + +#component_groups/minecraft:donkey_tamed + +```json +"minecraft:is_tamed": {} +``` + +horse + +#component_groups/minecraft:horse_tamed + +```json +"minecraft:is_tamed": {} +``` + +llama + +#component_groups/minecraft:llama_tamed + +```json +"minecraft:is_tamed": {} +``` + +mule + +#component_groups/minecraft:mule_tamed + +```json +"minecraft:is_tamed": {} +``` + +ocelot + +#component_groups/minecraft:ocelot_tame + +```json +"minecraft:is_tamed": {} +``` + +parrot + +#component_groups/minecraft:parrot_tame + +```json +"minecraft:is_tamed": {} +``` + + + +## item_controllable + + + +pig + +#component_groups/minecraft:pig_saddled + +```json +"minecraft:item_controllable": { + "control_items": "carrotOnAStick" +} +``` + +strider + +#component_groups/minecraft:strider_saddled + +```json +"minecraft:item_controllable": { + "control_items": "warped_fungus_on_a_stick" +} +``` + + + +## item_hopper + + + +hopper_minecart + +#component_groups/minecraft:hopper_active + +```json +"minecraft:item_hopper": {} +``` + + + +## jump.dynamic + + + +rabbit + + + +```json +"minecraft:jump.dynamic": {} +``` + + + +## jump.static + + + +allay + + + +```json +"minecraft:jump.static": {} +``` + +axolotl + + + +```json +"minecraft:jump.static": {} +``` + +bat + + + +```json +"minecraft:jump.static": {} +``` + +bee + + + +```json +"minecraft:jump.static": {} +``` + +blaze + + + +```json +"minecraft:jump.static": {} +``` + +camel + + + +```json +"minecraft:jump.static": {} +``` + +cat + + + +```json +"minecraft:jump.static": {} +``` + +cave_spider + + + +```json +"minecraft:jump.static": {} +``` + + + +## knockback_resistance + + + +armor_stand + + + +```json +"minecraft:knockback_resistance": { + "value": 1.0 +} +``` + +ender_dragon + + + +```json +"minecraft:knockback_resistance": { + "value": 100, + "max": 100 +} +``` + +hoglin + + + +```json +"minecraft:knockback_resistance": { + "value": 0.6 +} +``` + +iron_golem + + + +```json +"minecraft:knockback_resistance": { + "value": 1.0 +} +``` + +ravager + + + +```json +"minecraft:knockback_resistance": { + "value": 0.75 +} +``` + +warden + + + +```json +"minecraft:knockback_resistance": { + "value": 1.0 +} +``` + +zoglin + + + +```json +"minecraft:knockback_resistance": { + "value": 0.6 +} +``` + + + +## lava_movement + + + +strider + + + +```json +"minecraft:lava_movement": { + "value": 0.32 +} +``` + + + +## leashable + + + +allay + + + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +axolotl + + + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +bee + + + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +boat + + + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +camel + + + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +cat + + + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +chest_boat + + + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +chicken + + + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + + + +## lookat + + + +enderman + + + +```json +"minecraft:lookat": { + "search_radius": 64.0, + "set_target": true, + "look_cooldown": 5.0, + "filters": { + "all_of": [ + { + "subject": "other", + "test": "is_family", + "value": "player" + }, + { + "test": "has_equipment", + "domain": "head", + "subject": "other", + "operator": "not", + "value": "carved_pumpkin" + } + ] + } +} +``` + + + +## loot + + + +armor_stand + + + +```json +"minecraft:loot": { + "table": "loot_tables/entities/armor_stand.json" +} +``` + +blaze + + + +```json +"minecraft:loot": { + "table": "loot_tables/entities/blaze.json" +} +``` + +boat + + + +```json +"minecraft:loot": { + "table": "loot_tables/entities/boat.json" +} +``` + +cat + +#component_groups/minecraft:cat_adult + +```json +"minecraft:loot": { + "table": "loot_tables/entities/cat.json" +} +``` + +cave_spider + + + +```json +"minecraft:loot": { + "table": "loot_tables/entities/spider.json" +} +``` + +chicken + +#component_groups/minecraft:chicken_adult + +```json +"minecraft:loot": { + "table": "loot_tables/entities/chicken.json" +} +``` + +cow + +#component_groups/minecraft:cow_adult + +```json +"minecraft:loot": { + "table": "loot_tables/entities/cow.json" +} +``` + +creeper + + + +```json +"minecraft:loot": { + "table": "loot_tables/entities/creeper.json" +} +``` + + + +## managed_wandering_trader + + + +wandering_trader + +#component_groups/managed + +```json +"minecraft:managed_wandering_trader": {} +``` + + + +## mark_variant + + + +bee + +#component_groups/countdown_to_perish + +```json +"minecraft:mark_variant": { + "value": 1 +} +``` + +horse + +#component_groups/minecraft:markings_none + +```json +"minecraft:mark_variant": { + "value": 0 +} +``` + +#component_groups/minecraft:markings_white_details + +```json +"minecraft:mark_variant": { + "value": 1 +} +``` + +#component_groups/minecraft:markings_white_fields + +```json +"minecraft:mark_variant": { + "value": 2 +} +``` + +llama + + + +```json +"minecraft:mark_variant": { + "value": 0 +} +``` + +mooshroom + + + +```json +"minecraft:mark_variant": { + "value": -1 +} +``` + +#component_groups/minecraft:mooshroom_fed_nothing + +```json +"minecraft:mark_variant": { + "value": -1 +} +``` + +#component_groups/minecraft:mooshroom_brown_fed_poppy + +```json +"minecraft:mark_variant": { + "value": 0 +} +``` + + + +## mob_effect + + + +pufferfish + +#component_groups/minecraft:full_puff + +```json +"minecraft:mob_effect": { + "effect_range": 0.2, + "mob_effect": "poison", + "effect_time": 10, + "entity_filter": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "monster" + } + ] + } +} +``` + +warden + + + +```json +"minecraft:mob_effect": { + "effect_range": 20, + "effect_time": 13, + "mob_effect": "darkness", + "cooldown_time": 6, + "entity_filter": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "operator": "not", + "test": "has_ability", + "subject": "other", + "value": "invulnerable" + } + ] + } +} +``` + + + +## movement + + + +allay + + + +```json +"minecraft:movement": { + "value": 0.1 +} +``` + +axolotl + + + +```json +"minecraft:movement": { + "value": 0.1 +} +``` + +bat + + + +```json +"minecraft:movement": { + "value": 0.1 +} +``` + +bee + + + +```json +"minecraft:movement": { + "value": 0.3 +} +``` + +blaze + + + +```json +"minecraft:movement": { + "value": 0.23 +} +``` + +camel + + + +```json +"minecraft:movement": { + "value": 0.09 +} +``` + +cat + + + +```json +"minecraft:movement": { + "value": 0.3 +} +``` + +cave_spider + + + +```json +"minecraft:movement": { + "value": 0.3 +} +``` + + + +## movement.amphibious + + + +axolotl + + + +```json +"minecraft:movement.amphibious": { + "max_turn": 15.0 +} +``` + +frog + + + +```json +"minecraft:movement.amphibious": {} +``` + +turtle + + + +```json +"minecraft:movement.amphibious": { + "max_turn": 5.0 +} +``` + + + +## movement.basic + + + +bat + + + +```json +"minecraft:movement.basic": {} +``` + +blaze + + + +```json +"minecraft:movement.basic": {} +``` + +camel + + + +```json +"minecraft:movement.basic": {} +``` + +cat + + + +```json +"minecraft:movement.basic": {} +``` + +cave_spider + + + +```json +"minecraft:movement.basic": {} +``` + +chicken + + + +```json +"minecraft:movement.basic": {} +``` + +cow + + + +```json +"minecraft:movement.basic": {} +``` + +creeper + + + +```json +"minecraft:movement.basic": {} +``` + + + +## movement.fly + + + +parrot + + + +```json +"minecraft:movement.fly": {} +``` + + + +## movement.generic + + + +drowned + + + +```json +"minecraft:movement.generic": {} +``` + + + +## movement.glide + + + +phantom + + + +```json +"minecraft:movement.glide": { + "start_speed": 0.1, + "speed_when_turning": 0.2 +} +``` + + + +## movement.hover + + + +allay + + + +```json +"minecraft:movement.hover": {} +``` + +bee + + + +```json +"minecraft:movement.hover": {} +``` + + + +## movement.jump + + + +magma_cube + + + +```json +"minecraft:movement.jump": { + "jump_delay": [ + 2.0, + 6.0 + ] +} +``` + +#component_groups/minecraft:slime_calm + +```json +"minecraft:movement.jump": { + "jump_delay": [ + 2.0, + 6.0 + ] +} +``` + +#component_groups/minecraft:slime_aggressive + +```json +"minecraft:movement.jump": { + "jump_delay": [ + 0.667, + 2.0 + ] +} +``` + +slime + + + +```json +"minecraft:movement.jump": { + "jump_delay": [ + 0.5, + 1.5 + ] +} +``` + +#component_groups/minecraft:slime_calm + +```json +"minecraft:movement.jump": { + "jump_delay": [ + 0.5, + 1.5 + ] +} +``` + +#component_groups/minecraft:slime_aggressive + +```json +"minecraft:movement.jump": { + "jump_delay": [ + 0.16, + 0.5 + ] +} +``` + + + +## movement.skip + + + +rabbit + + + +```json +"minecraft:movement.skip": {} +``` + + + +## movement.sway + + + +elder_guardian + + + +```json +"minecraft:movement.sway": {} +``` + +cod + + + +```json +"minecraft:movement.sway": { + "sway_amplitude": 0.0 +} +``` + +guardian + + + +```json +"minecraft:movement.sway": {} +``` + +pufferfish + + + +```json +"minecraft:movement.sway": { + "sway_amplitude": 0.0 +} +``` + +salmon + + + +```json +"minecraft:movement.sway": { + "sway_amplitude": 0.0 +} +``` + +tadpole + + + +```json +"minecraft:movement.sway": { + "sway_amplitude": 0.0 +} +``` + +tropicalfish + + + +```json +"minecraft:movement.sway": { + "sway_amplitude": 0.0 +} +``` + + + +## movement_sound_distance_offset + + + +warden + + + +```json +"minecraft:movement_sound_distance_offset": { + "value": 0.55 +} +``` + + + +## nameable + + + +allay + + + +```json +"minecraft:nameable": {} +``` + +armor_stand + + + +```json +"minecraft:nameable": {} +``` + +axolotl + + + +```json +"minecraft:nameable": {} +``` + +bat + + + +```json +"minecraft:nameable": {} +``` + +bee + + + +```json +"minecraft:nameable": {} +``` + +blaze + + + +```json +"minecraft:nameable": {} +``` + +camel + + + +```json +"minecraft:nameable": {} +``` + +cat + + + +```json +"minecraft:nameable": {} +``` + + + +## navigation.climb + + + +cave_spider + + + +```json +"minecraft:navigation.climb": { + "can_path_over_water": true +} +``` + +spider + + + +```json +"minecraft:navigation.climb": { + "can_path_over_water": true +} +``` + + + +## navigation.float + + + +bat + + + +```json +"minecraft:navigation.float": { + "can_path_over_water": true +} +``` + +ghast + + + +```json +"minecraft:navigation.float": { + "can_path_over_water": true +} +``` + + + +## navigation.fly + + + +parrot + + + +```json +"minecraft:navigation.fly": { + "can_path_over_water": true, + "can_path_from_air": true +} +``` + + + +## navigation.generic + + + +axolotl + + + +```json +"minecraft:navigation.generic": { + "is_amphibious": true, + "can_path_over_water": true, + "can_swim": true, + "can_walk": true, + "can_sink": false, + "avoid_damage_blocks": true +} +``` + +dolphin + + + +```json +"minecraft:navigation.generic": { + "is_amphibious": true, + "can_path_over_water": true, + "can_swim": true, + "can_walk": false, + "can_breach": true, + "can_sink": false +} +``` + +#component_groups/dolphin_swimming_navigation + +```json +"minecraft:navigation.generic": { + "is_amphibious": true, + "can_path_over_water": false, + "can_swim": true, + "can_walk": false, + "can_breach": true, + "can_sink": false +} +``` + +#component_groups/dolphin_on_land + +```json +"minecraft:navigation.generic": { + "is_amphibious": true, + "can_path_over_water": true, + "can_swim": true, + "can_walk": true, + "can_breach": false, + "can_jump": false +} +``` + +drowned + + + +```json +"minecraft:navigation.generic": { + "is_amphibious": true, + "can_path_over_water": false, + "can_break_doors": true, + "can_swim": false, + "can_walk": true, + "avoid_sun": true +} +``` + +#component_groups/minecraft:hunter_mode + +```json +"minecraft:navigation.generic": { + "is_amphibious": true, + "can_path_over_water": false, + "can_break_doors": true, + "can_swim": true, + "can_walk": true, + "avoid_sun": true +} +``` + +#component_groups/minecraft:wander_mode + +```json +"minecraft:navigation.generic": { + "is_amphibious": true, + "can_path_over_water": false, + "can_break_doors": true, + "can_swim": false, + "can_walk": true, + "avoid_sun": true +} +``` + +elder_guardian + + + +```json +"minecraft:navigation.generic": { + "is_amphibious": true, + "can_path_over_water": false, + "can_swim": true, + "can_walk": false, + "can_breach": true +} +``` + + + +## navigation.hover + + + +allay + + + +```json +"minecraft:navigation.hover": { + "can_path_over_water": true, + "can_sink": false, + "can_pass_doors": false, + "can_path_from_air": true, + "avoid_water": true, + "avoid_damage_blocks": true, + "avoid_sun": false +} +``` + +bee + + + +```json +"minecraft:navigation.hover": { + "can_path_over_water": true, + "can_sink": false, + "can_pass_doors": false, + "can_path_from_air": true, + "avoid_water": true, + "avoid_damage_blocks": true, + "avoid_sun": false +} +``` + + + +## navigation.walk + + + +blaze + + + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_water": true, + "avoid_damage_blocks": true +} +``` + +camel + + + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_damage_blocks": true +} +``` + +cat + + + +```json +"minecraft:navigation.walk": { + "can_float": true, + "avoid_water": true, + "avoid_damage_blocks": true +} +``` + +chicken + + + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_damage_blocks": true +} +``` + +cow + + + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_water": true, + "avoid_damage_blocks": true +} +``` + +creeper + + + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true +} +``` + +donkey + + + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_water": true, + "avoid_damage_blocks": true +} +``` + +enderman + + + +```json +"minecraft:navigation.walk": { + "can_path_over_water": false, + "avoid_water": true +} +``` + + + +## npc + + + +npc + + + +```json +"minecraft:npc": { + "npc_data": { + "portrait_offsets": { + "translate": [ + -7, + 50, + 0 + ], + "scale": [ + 1.75, + 1.75, + 1.75 + ] + }, + "picker_offsets": { + "translate": [ + 0, + 20, + 0 + ], + "scale": [ + 1.7, + 1.7, + 1.7 + ] + }, + "skin_list": [ + { + "variant": 0 + }, + { + "variant": 1 + }, + { + "variant": 2 + }, + { + "variant": 3 + }, + { + "variant": 4 + }, + { + "variant": 5 + }, + { + "variant": 6 + }, + { + "variant": 7 + }, + { + "variant": 8 + }, + { + "variant": 9 + }, + { + "variant": 10 + }, + { + "variant": 11 + }, + { + "variant": 12 + }, + { + "variant": 13 + }, + { + "variant": 14 + }, + { + "variant": 15 + }, + { + "variant": 16 + }, + { + "variant": 17 + }, + { + "variant": 18 + }, + { + "variant": 19 + }, + { + "variant": 25 + }, + { + "variant": 26 + }, + { + "variant": 27 + }, + { + "variant": 28 + }, + { + "variant": 29 + }, + { + "variant": 30 + }, + { + "variant": 31 + }, + { + "variant": 32 + }, + { + "variant": 33 + }, + { + "variant": 34 + }, + { + "variant": 20 + }, + { + "variant": 21 + }, + { + "variant": 22 + }, + { + "variant": 23 + }, + { + "variant": 24 + }, + { + "variant": 35 + }, + { + "variant": 36 + }, + { + "variant": 37 + }, + { + "variant": 38 + }, + { + "variant": 39 + }, + { + "variant": 40 + }, + { + "variant": 41 + }, + { + "variant": 42 + }, + { + "variant": 43 + }, + { + "variant": 44 + }, + { + "variant": 50 + }, + { + "variant": 51 + }, + { + "variant": 52 + }, + { + "variant": 53 + }, + { + "variant": 54 + }, + { + "variant": 45 + }, + { + "variant": 46 + }, + { + "variant": 47 + }, + { + "variant": 48 + }, + { + "variant": 49 + }, + { + "variant": 55 + }, + { + "variant": 56 + }, + { + "variant": 57 + }, + { + "variant": 58 + }, + { + "variant": 59 + } + ] + } +} +``` + + + +## on_death + + + +ender_dragon + + + +```json +"minecraft:on_death": { + "event": "minecraft:start_death", + "target": "self" +} +``` + + + +## on_friendly_anger + + + +panda + +#component_groups/minecraft:panda_aggressive + +```json +"minecraft:on_friendly_anger": { + "event": "minecraft:on_anger", + "target": "self" +} +``` + +polar_bear + +#component_groups/minecraft:adult_wild + +```json +"minecraft:on_friendly_anger": { + "event": "minecraft:on_anger", + "target": "self" +} +``` + +trader_llama + +#component_groups/minecraft:llama_wandering_trader + +```json +"minecraft:on_friendly_anger": { + "event": "minecraft:defend_wandering_trader", + "target": "self" +} +``` + + + +## on_hurt + + + +blaze + + + +```json +"minecraft:on_hurt": { + "event": "minecraft:on_hurt_event", + "target": "self" +} +``` + +ender_crystal + + + +```json +"minecraft:on_hurt": { + "event": "minecraft:crystal_explode", + "target": "self" +} +``` + +pillager + +#component_groups/minecraft:illager_squad_captain + +```json +"minecraft:on_hurt": { + "event": "minecraft:ranged_mode", + "target": "self" +} +``` + +#component_groups/minecraft:patrol_captain + +```json +"minecraft:on_hurt": { + "event": "minecraft:ranged_mode", + "target": "self" +} +``` + +#component_groups/minecraft:patrol_follower + +```json +"minecraft:on_hurt": { + "event": "minecraft:ranged_mode", + "target": "self" +} +``` + + + +## on_hurt_by_player + + + +blaze + + + +```json +"minecraft:on_hurt_by_player": { + "event": "minecraft:on_hurt_event", + "target": "self" +} +``` + +pillager + +#component_groups/minecraft:illager_squad_captain + +```json +"minecraft:on_hurt_by_player": { + "event": "minecraft:ranged_mode", + "target": "self" +} +``` + +#component_groups/minecraft:patrol_captain + +```json +"minecraft:on_hurt_by_player": { + "event": "minecraft:ranged_mode", + "target": "self" +} +``` + +#component_groups/minecraft:patrol_follower + +```json +"minecraft:on_hurt_by_player": { + "event": "minecraft:ranged_mode", + "target": "self" +} +``` + + + +## on_start_landing + + + +ender_dragon + + + +```json +"minecraft:on_start_landing": { + "event": "minecraft:start_land", + "target": "self" +} +``` + + + +## on_start_takeoff + + + +ender_dragon + + + +```json +"minecraft:on_start_takeoff": { + "event": "minecraft:start_fly", + "target": "self" +} +``` + + + +## on_target_acquired + + + +bee + + + +```json +"minecraft:on_target_acquired": { + "event": "attacked", + "target": "self" +} +``` + +cave_spider + +#component_groups/minecraft:spider_neutral + +```json +"minecraft:on_target_acquired": { + "event": "minecraft:become_angry" +} +``` + +dolphin + + + +```json +"minecraft:on_target_acquired": { + "event": "become_angry", + "target": "self" +} +``` + +#component_groups/dolphin_angry + +```json +"minecraft:on_target_acquired": {} +``` + +drowned + + + +```json +"minecraft:on_target_acquired": { + "event": "minecraft:has_target", + "target": "self" +} +``` + +enderman + +#component_groups/minecraft:enderman_calm + +```json +"minecraft:on_target_acquired": { + "event": "minecraft:become_angry", + "target": "self" +} +``` + +hoglin + +#component_groups/minecraft:hoglin_adult + +```json +"minecraft:on_target_acquired": { + "event": "become_angry_event", + "target": "self" +} +``` + +llama + + + +```json +"minecraft:on_target_acquired": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "target", + "value": "wolf" + }, + { + "test": "has_component", + "subject": "target", + "operator": "!=", + "value": "minecraft:is_tamed" + } + ] + }, + "event": "minecraft:mad_at_wolf", + "target": "self" +} +``` + + + +## on_target_escape + + + +creeper + + + +```json +"minecraft:on_target_escape": { + "event": "minecraft:stop_exploding", + "target": "self" +} +``` + +#component_groups/minecraft:forced_exploding + +```json +"minecraft:on_target_escape": {} +``` + +#component_groups/minecraft:forced_charged_exploding + +```json +"minecraft:on_target_escape": {} +``` + +dolphin + + + +```json +"minecraft:on_target_escape": { + "target": "self" +} +``` + +drowned + + + +```json +"minecraft:on_target_escape": { + "event": "minecraft:lost_target", + "target": "self" +} +``` + +llama + + + +```json +"minecraft:on_target_escape": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "target", + "value": "wolf" + }, + { + "test": "has_component", + "subject": "target", + "operator": "!=", + "value": "minecraft:is_tamed" + } + ] + }, + "event": "minecraft:on_calm", + "target": "self" +} +``` + +magma_cube + + + +```json +"minecraft:on_target_escape": { + "event": "minecraft:become_calm", + "target": "self" +} +``` + +panda + +#component_groups/minecraft:panda_adult + +```json +"minecraft:on_target_escape": { + "event": "minecraft:on_calm", + "target": "self" +} +``` + + + +## on_wake_with_owner + + + +cat + +#component_groups/minecraft:cat_tame + +```json +"minecraft:on_wake_with_owner": { + "event": "minecraft:pet_slept_with_owner", + "target": "self" +} +``` + + + +## out_of_control + + + +boat + +#component_groups/minecraft:above_bubble_column_down + +```json +"minecraft:out_of_control": {} +``` + +#component_groups/minecraft:above_bubble_column_up + +```json +"minecraft:out_of_control": {} +``` + +chest_boat + +#component_groups/minecraft:above_bubble_column_down + +```json +"minecraft:out_of_control": {} +``` + +#component_groups/minecraft:above_bubble_column_up + +```json +"minecraft:out_of_control": {} +``` + + + +## peek + + + +shulker + + + +```json +"minecraft:peek": { + "on_open": { + "event": "minecraft:on_open" + }, + "on_close": { + "event": "minecraft:on_close" + }, + "on_target_open": { + "event": "minecraft:on_open" + } +} +``` + + + +## persist_sit + + + +camel + +#component_groups/minecraft:camel_sitting + +```json +"minecraft:persist_sit": {} +``` + + + +## persistent + + + +armor_stand + + + +```json +"minecraft:persistent": {} +``` + +ender_dragon + + + +```json +"minecraft:persistent": {} +``` + +evocation_illager + + + +```json +"minecraft:persistent": {} +``` + +#component_groups/minecraft:raid_persistence + +```json +"minecraft:persistent": {} +``` + +iron_golem + + + +```json +"minecraft:persistent": {} +``` + +npc + + + +```json +"minecraft:persistent": {} +``` + +pillager + +#component_groups/minecraft:raid_persistence + +```json +"minecraft:persistent": {} +``` + +ravager + +#component_groups/minecraft:raid_persistence + +```json +"minecraft:persistent": {} +``` + + + +## physics + + + +allay + + + +```json +"minecraft:physics": { + "has_gravity": false +} +``` + +area_effect_cloud + + + +```json +"minecraft:physics": { + "has_collision": false +} +``` + +armor_stand + + + +```json +"minecraft:physics": {} +``` + +arrow + + + +```json +"minecraft:physics": {} +``` + +axolotl + + + +```json +"minecraft:physics": {} +``` + +bat + + + +```json +"minecraft:physics": {} +``` + +bee + + + +```json +"minecraft:physics": {} +``` + +blaze + + + +```json +"minecraft:physics": {} +``` + + + +## player.exhaustion + + + +player + + + +```json +"minecraft:player.exhaustion": { + "value": 0, + "max": 20 +} +``` + + + +## player.experience + + + +player + + + +```json +"minecraft:player.experience": { + "value": 0, + "max": 1 +} +``` + + + +## player.level + + + +player + + + +```json +"minecraft:player.level": { + "value": 0, + "max": 24791 +} +``` + + + +## player.saturation + + + +player + + + +```json +"minecraft:player.saturation": { + "value": 5, + "max": 20 +} +``` + + + +## preferred_path + + + +iron_golem + + + +```json +"minecraft:preferred_path": { + "max_fall_blocks": 1, + "jump_cost": 5, + "default_block_cost": 1.5, + "preferred_path_blocks": [ + { + "cost": 0, + "blocks": [ + "grass_path" + ] + }, + { + "cost": 1, + "blocks": [ + "cobblestone", + "stone", + "stonebrick", + "sandstone", + "mossy_cobblestone", + "stone_slab", + "stone_slab2", + "stone_slab3", + "stone_slab4", + "double_stone_slab", + "double_stone_slab2", + "double_stone_slab3", + "double_stone_slab4", + "wooden_slab", + "double_wooden_slab", + "planks", + "brick_block", + "nether_brick", + "red_nether_brick", + "end_bricks", + "red_sandstone", + "stained_glass", + "glass", + "glowstone", + "prismarine", + "emerald_block", + "diamond_block", + "lapis_block", + "gold_block", + "redstone_block", + "purple_glazed_terracotta", + "white_glazed_terracotta", + "orange_glazed_terracotta", + "magenta_glazed_terracotta", + "light_blue_glazed_terracotta", + "yellow_glazed_terracotta", + "lime_glazed_terracotta", + "pink_glazed_terracotta", + "gray_glazed_terracotta", + "silver_glazed_terracotta", + "cyan_glazed_terracotta", + "blue_glazed_terracotta", + "brown_glazed_terracotta", + "green_glazed_terracotta", + "red_glazed_terracotta", + "black_glazed_terracotta" + ] + }, + { + "cost": 50, + "blocks": [ + "bed", + "lectern", + "composter", + "grindstone", + "blast_furnace", + "smoker", + "fletching_table", + "cartography_table", + "brewing_stand", + "smithing_table", + "cauldron", + "barrel", + "loom", + "stonecutter" + ] + } + ] +} +``` + +villager_v2 + +#component_groups/baby + +```json +"minecraft:preferred_path": { + "max_fall_blocks": 1, + "jump_cost": 5, + "default_block_cost": 1.5, + "preferred_path_blocks": [ + { + "cost": 0, + "blocks": [ + "grass_path" + ] + }, + { + "cost": 1, + "blocks": [ + "cobblestone", + "stone", + "stonebrick", + "sandstone", + "mossy_cobblestone", + "stone_slab", + "stone_slab2", + "stone_slab3", + "stone_slab4", + "double_stone_slab", + "double_stone_slab2", + "double_stone_slab3", + "double_stone_slab4", + "wooden_slab", + "double_wooden_slab", + "planks", + "brick_block", + "nether_brick", + "red_nether_brick", + "end_bricks", + "red_sandstone", + "stained_glass", + "glass", + "glowstone", + "prismarine", + "emerald_block", + "diamond_block", + "lapis_block", + "gold_block", + "redstone_block", + "purple_glazed_terracotta", + "white_glazed_terracotta", + "orange_glazed_terracotta", + "magenta_glazed_terracotta", + "light_blue_glazed_terracotta", + "yellow_glazed_terracotta", + "lime_glazed_terracotta", + "pink_glazed_terracotta", + "gray_glazed_terracotta", + "silver_glazed_terracotta", + "cyan_glazed_terracotta", + "blue_glazed_terracotta", + "brown_glazed_terracotta", + "green_glazed_terracotta", + "red_glazed_terracotta", + "black_glazed_terracotta" + ] + }, + { + "cost": 50, + "blocks": [ + "bed", + "lectern", + "composter", + "grindstone", + "blast_furnace", + "smoker", + "fletching_table", + "cartography_table", + "brewing_stand", + "smithing_table", + "cauldron", + "barrel", + "loom", + "stonecutter" + ] + } + ] +} +``` + +#component_groups/adult + +```json +"minecraft:preferred_path": { + "max_fall_blocks": 1, + "jump_cost": 20, + "default_block_cost": 3, + "preferred_path_blocks": [ + { + "cost": 0, + "blocks": [ + "grass_path" + ] + }, + { + "cost": 1, + "blocks": [ + "cobblestone", + "stone", + "stonebrick", + "sandstone", + "mossy_cobblestone", + "stone_slab", + "stone_slab2", + "stone_slab3", + "stone_slab4", + "double_stone_slab", + "double_stone_slab2", + "double_stone_slab3", + "double_stone_slab4", + "wooden_slab", + "double_wooden_slab", + "planks", + "brick_block", + "nether_brick", + "red_nether_brick", + "end_bricks", + "red_sandstone", + "stained_glass", + "glass", + "glowstone", + "prismarine", + "emerald_block", + "diamond_block", + "lapis_block", + "gold_block", + "redstone_block", + "purple_glazed_terracotta", + "white_glazed_terracotta", + "orange_glazed_terracotta", + "magenta_glazed_terracotta", + "light_blue_glazed_terracotta", + "yellow_glazed_terracotta", + "lime_glazed_terracotta", + "pink_glazed_terracotta", + "gray_glazed_terracotta", + "silver_glazed_terracotta", + "cyan_glazed_terracotta", + "blue_glazed_terracotta", + "brown_glazed_terracotta", + "green_glazed_terracotta", + "red_glazed_terracotta", + "black_glazed_terracotta" + ] + }, + { + "cost": 50, + "blocks": [ + "bed", + "lectern", + "composter", + "grindstone", + "blast_furnace", + "smoker", + "fletching_table", + "cartography_table", + "brewing_stand", + "smithing_table", + "cauldron", + "barrel", + "loom", + "stonecutter" + ] + } + ] +} +``` + +warden + + + +```json +"minecraft:preferred_path": { + "max_fall_blocks": 20 +} +``` + + + +## projectile + + + +arrow + + + +```json +"minecraft:projectile": { + "on_hit": { + "impact_damage": { + "damage": [ + 1, + 4 + ], + "knockback": true, + "semi_random_diff_damage": false, + "destroy_on_hit": true + }, + "stick_in_ground": { + "shake_time": 0.35 + }, + "arrow_effect": {} + }, + "hit_sound": "bow.hit", + "power": 1.6, + "gravity": 0.05, + "uncertainty_base": 16, + "uncertainty_multiplier": 4, + "anchor": 1, + "should_bounce": true, + "offset": [ + 0, + -0.1, + 0 + ] +} +``` + +#component_groups/minecraft:hard_arrow + +```json +"minecraft:projectile": { + "on_hit": { + "impact_damage": { + "damage": [ + 1, + 5 + ], + "knockback": true, + "semi_random_diff_damage": false, + "destroy_on_hit": true + }, + "stick_in_ground": { + "shake_time": 0.35 + }, + "arrow_effect": {} + }, + "hit_sound": "bow.hit", + "power": 1.6, + "gravity": 0.05, + "uncertainty_base": 16, + "uncertainty_multiplier": 4, + "anchor": 1, + "should_bounce": true, + "offset": [ + 0, + -0.1, + 0 + ] +} +``` + +#component_groups/minecraft:player_arrow + +```json +"minecraft:projectile": { + "on_hit": { + "impact_damage": { + "damage": 1, + "knockback": true, + "semi_random_diff_damage": true, + "destroy_on_hit": true, + "max_critical_damage": 10, + "min_critical_damage": 9, + "power_multiplier": 0.97 + }, + "stick_in_ground": { + "shake_time": 0.35 + }, + "arrow_effect": {} + }, + "hit_sound": "bow.hit", + "power": 5.0, + "gravity": 0.05, + "uncertainty_base": 1, + "uncertainty_multiplier": 0, + "anchor": 1, + "should_bounce": true, + "offset": [ + 0, + -0.1, + 0 + ] +} +``` + +dragon_fireball + + + +```json +"minecraft:projectile": { + "on_hit": { + "spawn_aoe_cloud": { + "radius": 6.0, + "radius_on_use": 0, + "potion": 23, + "particle": "dragonbreath", + "duration": 120, + "color": [ + 220, + 0, + 239 + ], + "affect_owner": false, + "reapplication_delay": 20 + }, + "remove_on_hit": {} + }, + "power": 1.3, + "gravity": 0.0, + "inertia": 1, + "anchor": 2, + "offset": [ + 0, + 0.5, + 0 + ], + "semi_random_diff_damage": true, + "uncertainty_base": 10.0, + "reflect_on_hurt": true, + "hit_sound": "explode" +} +``` + +egg + + + +```json +"minecraft:projectile": { + "on_hit": { + "impact_damage": { + "damage": 0, + "knockback": true, + "destroy_on_hit": true + }, + "spawn_chance": { + "first_spawn_chance": 8, + "second_spawn_chance": 32, + "first_spawn_count": 1, + "second_spawn_count": 4, + "spawn_definition": "minecraft:chicken", + "spawn_baby": true + }, + "remove_on_hit": {}, + "particle_on_hit": { + "particle_type": "iconcrack", + "num_particles": 6, + "on_entity_hit": true, + "on_other_hit": true + } + }, + "power": 1.5, + "gravity": 0.03, + "angle_offset": 0.0 +} +``` + +ender_pearl + + + +```json +"minecraft:projectile": { + "on_hit": { + "teleport_owner": {}, + "spawn_chance": { + "first_spawn_percent_chance": 5.0, + "first_spawn_count": 1, + "spawn_definition": "minecraft:endermite" + }, + "remove_on_hit": {} + }, + "power": 1.5, + "gravity": 0.025, + "angle_offset": 0.0, + "inertia": 1, + "liquid_inertia": 1 +} +``` + +#component_groups/minecraft:no_spawn + +```json +"minecraft:projectile": { + "on_hit": { + "teleport_owner": {}, + "remove_on_hit": {} + }, + "power": 1.5, + "gravity": 0.025, + "angle_offset": 0.0, + "inertia": 1, + "liquid_inertia": 1 +} +``` + +fireball + + + +```json +"minecraft:projectile": { + "on_hit": { + "impact_damage": { + "damage": 6, + "knockback": false, + "semi_random_diff_damage": false + }, + "definition_event": { + "affect_projectile": true, + "event_trigger": { + "event": "minecraft:explode", + "target": "self" + } + } + }, + "power": 1.6, + "gravity": 0.0, + "inertia": 1, + "liquid_inertia": 1, + "uncertainty_base": 0, + "uncertainty_multiplier": 0, + "anchor": 2, + "offset": [ + 0, + -1.5, + 0 + ], + "reflect_on_hurt": true, + "catch_fire": true +} +``` + + + +## pushable + + + +allay + + + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +armor_stand + + + +```json +"minecraft:pushable": { + "is_pushable": false, + "is_pushable_by_piston": true +} +``` + +arrow + + + +```json +"minecraft:pushable": { + "is_pushable": false, + "is_pushable_by_piston": true +} +``` + +axolotl + + + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +bee + + + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +blaze + + + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +boat + + + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +camel + +#component_groups/minecraft:camel_standing + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + + + +## raid_trigger + + + +player + +#component_groups/minecraft:raid_trigger + +```json +"minecraft:raid_trigger": { + "triggered_event": { + "event": "minecraft:remove_raid_trigger", + "target": "self" + } +} +``` + + + +## rail_movement + + + +chest_minecart + + + +```json +"minecraft:rail_movement": {} +``` + +command_block_minecart + + + +```json +"minecraft:rail_movement": {} +``` + +hopper_minecart + + + +```json +"minecraft:rail_movement": {} +``` + +minecart + + + +```json +"minecraft:rail_movement": {} +``` + +tnt_minecart + + + +```json +"minecraft:rail_movement": {} +``` + + + +## rail_sensor + + + +command_block_minecart + +#component_groups/minecraft:command_block_active + +```json +"minecraft:rail_sensor": { + "check_block_types": true, + "eject_on_activate": false, + "eject_on_deactivate": false, + "tick_command_block_on_activate": true, + "tick_command_block_on_deactivate": false, + "on_deactivate": { + "event": "minecraft:command_block_deactivate" + } +} +``` + +#component_groups/minecraft:command_block_inactive + +```json +"minecraft:rail_sensor": { + "check_block_types": false, + "eject_on_activate": false, + "eject_on_deactivate": false, + "tick_command_block_on_activate": true, + "tick_command_block_on_deactivate": false, + "on_activate": { + "event": "minecraft:command_block_activate" + } +} +``` + +hopper_minecart + +#component_groups/minecraft:hopper_active + +```json +"minecraft:rail_sensor": { + "on_activate": { + "event": "minecraft:hopper_deactivate" + } +} +``` + +#component_groups/minecraft:hopper_inactive + +```json +"minecraft:rail_sensor": { + "on_deactivate": { + "event": "minecraft:hopper_activate" + } +} +``` + +minecart + + + +```json +"minecraft:rail_sensor": { + "eject_on_activate": true +} +``` + +tnt_minecart + +#component_groups/minecraft:primed_tnt + +```json +"minecraft:rail_sensor": {} +``` + +#component_groups/minecraft:instant_explode_tnt + +```json +"minecraft:rail_sensor": {} +``` + +#component_groups/minecraft:inactive + +```json +"minecraft:rail_sensor": { + "on_activate": { + "filters": { + "all_of": [ + { + "test": "is_game_rule", + "domain": "tntexplodes", + "operator": "==", + "value": true + } + ] + }, + "event": "minecraft:on_prime" + } +} +``` + + + +## ravager_blocked + + + +ravager + + + +```json +"minecraft:ravager_blocked": { + "knockback_strength": 3.0, + "reaction_choices": [ + { + "weight": 1, + "value": { + "event": "minecraft:become_stunned", + "target": "self" + } + }, + { + "weight": 1 + } + ] +} +``` + + + +## rideable + + + +boat + + + +```json +"minecraft:rideable": { + "seat_count": 2, + "passenger_max_width": 1.375, + "interact_text": "action.interact.ride.boat", + "pull_in_entities": true, + "seats": [ + { + "position": [ + 0.0, + -0.2, + 0.0 + ], + "min_rider_count": 0, + "max_rider_count": 1, + "rotate_rider_by": -90, + "lock_rider_rotation": 90 + }, + { + "position": [ + 0.2, + -0.2, + 0.0 + ], + "min_rider_count": 2, + "max_rider_count": 2, + "rotate_rider_by": "q.has_any_family('blaze', 'creeper', 'enderman', 'illager', 'magmacube', 'piglin', 'player', 'skeleton', 'slime', 'villager', 'wandering_trader', 'witch', 'zombie', 'zombie_pigman') ? -90 : 0", + "lock_rider_rotation": 90 + }, + { + "position": [ + -0.6, + -0.2, + 0.0 + ], + "min_rider_count": 2, + "max_rider_count": 2, + "rotate_rider_by": "q.has_any_family('blaze', 'creeper', 'enderman', 'illager', 'magmacube', 'piglin', 'player', 'skeleton', 'slime', 'villager', 'wandering_trader', 'witch', 'zombie', 'zombie_pigman') ? -90 : 0", + "lock_rider_rotation": 90 + } + ] +} +``` + +#component_groups/minecraft:can_ride_default + +```json +"minecraft:rideable": { + "seat_count": 2, + "passenger_max_width": 1.375, + "interact_text": "action.interact.ride.boat", + "pull_in_entities": true, + "seats": [ + { + "position": [ + 0.0, + -0.2, + 0.0 + ], + "min_rider_count": 0, + "max_rider_count": 1, + "rotate_rider_by": -90, + "lock_rider_rotation": 90 + }, + { + "position": [ + 0.2, + -0.2, + 0.0 + ], + "min_rider_count": 2, + "max_rider_count": 2, + "rotate_rider_by": "q.has_any_family('blaze', 'creeper', 'enderman', 'illager', 'magmacube', 'piglin', 'player', 'skeleton', 'slime', 'villager', 'wandering_trader', 'witch', 'zombie', 'zombie_pigman') ? -90 : 0", + "lock_rider_rotation": 90 + }, + { + "position": [ + -0.6, + -0.2, + 0.0 + ], + "min_rider_count": 2, + "max_rider_count": 2, + "rotate_rider_by": "q.has_any_family('blaze', 'creeper', 'enderman', 'illager', 'magmacube', 'piglin', 'player', 'skeleton', 'slime', 'villager', 'wandering_trader', 'witch', 'zombie', 'zombie_pigman') ? -90 : 0", + "lock_rider_rotation": 90 + } + ] +} +``` + +#component_groups/minecraft:can_ride_bamboo + +```json +"minecraft:rideable": { + "seat_count": 2, + "passenger_max_width": 1.375, + "interact_text": "action.interact.ride.boat", + "pull_in_entities": true, + "seats": [ + { + "position": [ + 0.0, + 0.1, + 0.0 + ], + "min_rider_count": 0, + "max_rider_count": 1, + "rotate_rider_by": -90, + "lock_rider_rotation": 90 + }, + { + "position": [ + 0.2, + 0.1, + 0.0 + ], + "min_rider_count": 2, + "max_rider_count": 2, + "rotate_rider_by": "q.has_any_family('blaze', 'creeper', 'enderman', 'illager', 'magmacube', 'piglin', 'player', 'skeleton', 'slime', 'villager', 'wandering_trader', 'witch', 'zombie', 'zombie_pigman') ? -90 : 0", + "lock_rider_rotation": 90 + }, + { + "position": [ + -0.6, + 0.1, + 0.0 + ], + "min_rider_count": 2, + "max_rider_count": 2, + "rotate_rider_by": "q.has_any_family('blaze', 'creeper', 'enderman', 'illager', 'magmacube', 'piglin', 'player', 'skeleton', 'slime', 'villager', 'wandering_trader', 'witch', 'zombie', 'zombie_pigman') ? -90 : 0", + "lock_rider_rotation": 90 + } + ] +} +``` + +camel + +#component_groups/minecraft:camel_adult + +```json +"minecraft:rideable": { + "seat_count": 2, + "crouching_skip_interact": true, + "pull_in_entities": true, + "family_types": [ + "player" + ], + "interact_text": "action.interact.ride.horse", + "seats": [ + { + "min_rider_count": 0, + "max_rider_count": 2, + "position": [ + 0.0, + 1.905, + 0.5 + ] + }, + { + "min_rider_count": 1, + "max_rider_count": 2, + "position": [ + 0.0, + 1.905, + -0.5 + ] + } + ] +} +``` + +cat + +#component_groups/minecraft:cat_wild + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "zombie" + ], + "seats": { + "position": [ + 0.0, + 0.35, + 0.0 + ] + } +} +``` + +cave_spider + + + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "zombie" + ], + "seats": { + "position": [ + 0.0, + 0.3, + 0.0 + ] + } +} +``` + +#component_groups/minecraft:spider_jockey + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "skeleton" + ], + "seats": { + "position": [ + 0.0, + 0.3, + -0.1 + ] + } +} +``` + +#component_groups/minecraft:spider_stray_jockey + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "skeleton" + ], + "seats": { + "position": [ + 0.0, + 0.3, + -0.1 + ] + } +} +``` + + + +## scale + + + +axolotl + +#component_groups/axolotl_baby + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +bee + +#component_groups/bee_baby + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +camel + +#component_groups/minecraft:camel_baby + +```json +"minecraft:scale": { + "value": 0.45 +} +``` + +cat + +#component_groups/minecraft:cat_baby + +```json +"minecraft:scale": { + "value": 0.4 +} +``` + +#component_groups/minecraft:cat_adult + +```json +"minecraft:scale": { + "value": 0.8 +} +``` + +chicken + +#component_groups/minecraft:chicken_baby + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +cow + +#component_groups/minecraft:cow_baby + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +dolphin + +#component_groups/dolphin_baby + +```json +"minecraft:scale": { + "value": 0.65 +} +``` + + + +## scale_by_age + + + +donkey + +#component_groups/minecraft:donkey_baby + +```json +"minecraft:scale_by_age": { + "start_scale": 0.5, + "end_scale": 1.0 +} +``` + +horse + +#component_groups/minecraft:horse_baby + +```json +"minecraft:scale_by_age": { + "start_scale": 0.5, + "end_scale": 1.0 +} +``` + +mule + +#component_groups/minecraft:mule_baby + +```json +"minecraft:scale_by_age": { + "start_scale": 0.5, + "end_scale": 1.0 +} +``` + +skeleton_horse + +#component_groups/minecraft:skeleton_horse_baby + +```json +"minecraft:scale_by_age": { + "start_scale": 0.5, + "end_scale": 1.0 +} +``` + +zombie_horse + +#component_groups/minecraft:horse_baby + +```json +"minecraft:scale_by_age": { + "start_scale": 0.5, + "end_scale": 1.0 +} +``` + + + +## scheduler + + + +fox + + + +```json +"minecraft:scheduler": { + "min_delay_secs": 0, + "max_delay_secs": 0, + "scheduled_events": [ + { + "filters": [ + { + "test": "is_sleeping", + "value": true + } + ], + "event": "minecraft:ambient_sleep" + }, + { + "filters": { + "all_of": [ + { + "test": "is_daytime", + "value": false + }, + { + "test": "distance_to_nearest_player", + "operator": ">", + "value": 16 + } + ] + }, + "event": "minecraft:ambient_night" + }, + { + "filters": { + "all_of": [ + { + "test": "is_sleeping", + "value": false + }, + { + "any_of": [ + { + "test": "is_daytime", + "value": true + }, + { + "test": "distance_to_nearest_player", + "operator": "<=", + "value": 16 + } + ] + } + ] + }, + "event": "minecraft:ambient_normal" + } + ] +} +``` + +villager_v2 + +#component_groups/work_schedule + +```json +"minecraft:scheduler": { + "min_delay_secs": 0, + "max_delay_secs": 10, + "scheduled_events": [ + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 0 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 8000 + } + ] + }, + "event": "minecraft:schedule_work_pro_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 8000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 10000 + } + ] + }, + "event": "minecraft:schedule_gather_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 10000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 11000 + } + ] + }, + "event": "minecraft:schedule_work_pro_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 11000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 12000 + } + ] + }, + "event": "minecraft:schedule_home_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 12000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 24000 + } + ] + }, + "event": "minecraft:schedule_bed_villager" + } + ] +} +``` + +#component_groups/basic_schedule + +```json +"minecraft:scheduler": { + "min_delay_secs": 0, + "max_delay_secs": 10, + "scheduled_events": [ + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 0 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 8000 + } + ] + }, + "event": "minecraft:schedule_wander_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 8000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 10000 + } + ] + }, + "event": "minecraft:schedule_gather_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 10000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 11000 + } + ] + }, + "event": "minecraft:schedule_wander_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 11000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 12000 + } + ] + }, + "event": "minecraft:schedule_home_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 12000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 24000 + } + ] + }, + "event": "minecraft:schedule_bed_villager" + } + ] +} +``` + +#component_groups/child_schedule + +```json +"minecraft:scheduler": { + "min_delay_secs": 0, + "max_delay_secs": 10, + "scheduled_events": [ + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 0 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 11000 + } + ] + }, + "event": "minecraft:schedule_play_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 11000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 12000 + } + ] + }, + "event": "minecraft:schedule_home_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 12000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 24000 + } + ] + }, + "event": "minecraft:schedule_bed_villager" + } + ] +} +``` + + + +## shareables + + + +drowned + + + +```json +"minecraft:shareables": { + "singular_pickup": true, + "items": [ + { + "item": "minecraft:nautilus_shell", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:trident", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:netherite_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:diamond_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:iron_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:stone_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:golden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:wooden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:netherite_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:turtle_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:skull:0", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:skull:1", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:carved_pumpkin", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:netherite_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + } + ] +} +``` + +fox + + + +```json +"minecraft:shareables": { + "all_items": true, + "all_items_max_amount": 1, + "items": [ + { + "item": "minecraft:apple", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:appleEnchanted", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:baked_potato", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:beef", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:beetroot", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:beetroot_soup", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:bread", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:carrot", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:chicken", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:chorus_fruit", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:clownfish", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:cooked_beef", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:cooked_chicken", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:cooked_fish", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:cooked_porkchop", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:cooked_rabbit", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:cooked_salmon", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:cookie", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:dried_kelp", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:fish", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:golden_apple", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:golden_carrot", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:melon", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:mushroom_stew", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:muttonCooked", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:muttonRaw", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:poisonous_potato", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:porkchop", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:potato", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:pufferfish", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:pumpkin_pie", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:rabbit", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:rabbit_stew", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:rotten_flesh", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:salmon", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:spider_eye", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:sweet_berries", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:glow_berries", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:suspicious_stew", + "priority": 0, + "max_amount": 1 + } + ] +} +``` + +husk + + + +```json +"minecraft:shareables": { + "singular_pickup": true, + "items": [ + { + "item": "minecraft:netherite_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:golden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:stone_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:wooden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:turtle_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:skull:0", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:skull:1", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:carved_pumpkin", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:netherite_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + } + ] +} +``` + +piglin + + + +```json +"minecraft:shareables": { + "items": [ + { + "item": "minecraft:golden_sword", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_axe", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_hoe", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_pickaxe", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_shovel", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_rail", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_helmet", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_chestplate", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_leggings", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_boots", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_apple", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:appleEnchanted", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_carrot", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:gold_block", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:gold_nugget", + "priority": 2, + "stored_in_inventory": true + }, + { + "item": "minecraft:raw_gold", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:gold_ore", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:nether_gold_ore", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:deepslate_gold_ore", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:raw_gold_block", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:gilded_blackstone", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:horsearmorgold", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:crossbow", + "priority": 2 + }, + { + "item": "minecraft:porkchop", + "consume_item": true, + "priority": 3, + "max_amount": 64 + }, + { + "item": "minecraft:cooked_porkchop", + "consume_item": true, + "priority": 3, + "max_amount": 64 + }, + { + "item": "minecraft:netherite_helmet", + "priority": 3 + }, + { + "item": "minecraft:diamond_helmet", + "priority": 4 + }, + { + "item": "minecraft:iron_helmet", + "priority": 5 + }, + { + "item": "minecraft:chainmail_helmet", + "priority": 6 + }, + { + "item": "minecraft:leather_helmet", + "priority": 7 + }, + { + "item": "minecraft:skull:0", + "want_amount": 1, + "surplus_amount": 1, + "priority": 8 + }, + { + "item": "minecraft:skull:1", + "want_amount": 1, + "surplus_amount": 1, + "priority": 8 + }, + { + "item": "minecraft:skull:2", + "want_amount": 1, + "surplus_amount": 1, + "priority": 8 + }, + { + "item": "minecraft:skull:3", + "want_amount": 1, + "surplus_amount": 1, + "priority": 8 + }, + { + "item": "minecraft:skull:4", + "want_amount": 1, + "surplus_amount": 1, + "priority": 8 + }, + { + "item": "minecraft:skull:5", + "want_amount": 1, + "surplus_amount": 1, + "priority": 8 + }, + { + "item": "minecraft:carved_pumpkin", + "want_amount": 1, + "surplus_amount": 1, + "priority": 8 + }, + { + "item": "minecraft:turtle_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 8 + }, + { + "item": "minecraft:netherite_chestplate", + "priority": 3 + }, + { + "item": "minecraft:diamond_chestplate", + "priority": 4 + }, + { + "item": "minecraft:iron_chestplate", + "priority": 5 + }, + { + "item": "minecraft:chainmail_chestplate", + "priority": 6 + }, + { + "item": "minecraft:leather_chestplate", + "priority": 7 + }, + { + "item": "minecraft:elytra", + "priority": 7 + }, + { + "item": "minecraft:netherite_leggings", + "priority": 3 + }, + { + "item": "minecraft:diamond_leggings", + "priority": 4 + }, + { + "item": "minecraft:iron_leggings", + "priority": 5 + }, + { + "item": "minecraft:chainmail_leggings", + "priority": 6 + }, + { + "item": "minecraft:leather_leggings", + "priority": 7 + }, + { + "item": "minecraft:netherite_boots", + "priority": 3 + }, + { + "item": "minecraft:diamond_boots", + "priority": 4 + }, + { + "item": "minecraft:iron_boots", + "priority": 5 + }, + { + "item": "minecraft:chainmail_boots", + "priority": 6 + }, + { + "item": "minecraft:bell", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:clock", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:speckled_melon", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:light_weighted_pressure_plate", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:leather_boots", + "priority": 7 + }, + { + "item": "minecraft:netherite_sword", + "priority": 3 + }, + { + "item": "minecraft:diamond_sword", + "priority": 4 + }, + { + "item": "minecraft:iron_sword", + "priority": 5 + }, + { + "item": "minecraft:stone_sword", + "priority": 6 + }, + { + "item": "minecraft:wooden_sword", + "priority": 7 + }, + { + "item": "minecraft:shield", + "priority": 7 + }, + { + "item": "minecraft:gold_ingot", + "priority": 1, + "pickup_limit": 1, + "admire": true, + "barter": true + } + ] +} +``` + +pillager + + + +```json +"minecraft:shareables": { + "items": [ + { + "item": "minecraft:banner:15", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + } + ] +} +``` + +skeleton + + + +```json +"minecraft:shareables": { + "items": [ + { + "item": "minecraft:netherite_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:stone_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:wooden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:bow", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:netherite_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:turtle_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:skull:0", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:skull:1", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:carved_pumpkin", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:netherite_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + } + ] +} +``` + +stray + + + +```json +"minecraft:shareables": { + "items": [ + { + "item": "minecraft:netherite_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:stone_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:wooden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:bow", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:netherite_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:turtle_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:skull:0", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:skull:1", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:carved_pumpkin", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:netherite_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + } + ] +} +``` + +villager + +#component_groups/behavior_peasant + +```json +"minecraft:shareables": { + "items": [ + { + "item": "minecraft:bread", + "want_amount": 3, + "surplus_amount": 6, + "stored_in_inventory": true + }, + { + "item": "minecraft:carrot", + "want_amount": 60, + "surplus_amount": 4, + "stored_in_inventory": true + }, + { + "item": "minecraft:potato", + "want_amount": 60, + "surplus_amount": 24, + "stored_in_inventory": true + }, + { + "item": "minecraft:beetroot", + "want_amount": 60, + "surplus_amount": 24, + "stored_in_inventory": true + }, + { + "item": "minecraft:wheat_seeds", + "want_amount": 64, + "surplus_amount": 64, + "stored_in_inventory": true, + "pickup_only": true + }, + { + "item": "minecraft:beetroot_seeds", + "want_amount": 64, + "surplus_amount": 64, + "stored_in_inventory": true, + "pickup_only": true + }, + { + "item": "minecraft:wheat", + "want_amount": 45, + "surplus_amount": 18, + "craft_into": "minecraft:bread", + "stored_in_inventory": true + } + ] +} +``` + + + +## shooter + + + +blaze + +#component_groups/ranged_mode + +```json +"minecraft:shooter": { + "def": "minecraft:small_fireball" +} +``` + +drowned + +#component_groups/minecraft:ranged_mode + +```json +"minecraft:shooter": { + "def": "minecraft:thrown_trident" +} +``` + +ender_dragon + +#component_groups/dragon_flying + +```json +"minecraft:shooter": { + "type": "dragonfireball", + "def": "minecraft:dragon_fireball" +} +``` + +ghast + + + +```json +"minecraft:shooter": { + "def": "minecraft:fireball" +} +``` + +llama + + + +```json +"minecraft:shooter": { + "def": "minecraft:llama_spit" +} +``` + +piglin + +#component_groups/ranged_unit + +```json +"minecraft:shooter": { + "def": "minecraft:arrow" +} +``` + +pillager + +#component_groups/minecraft:ranged_attack + +```json +"minecraft:shooter": { + "def": "minecraft:arrow" +} +``` + +shulker + + + +```json +"minecraft:shooter": { + "def": "minecraft:shulker_bullet" +} +``` + + + +## sittable + + + +cat + +#component_groups/minecraft:cat_tame + +```json +"minecraft:sittable": {} +``` + +ocelot + +#component_groups/minecraft:ocelot_tame + +```json +"minecraft:sittable": {} +``` + +parrot + +#component_groups/minecraft:parrot_tame + +```json +"minecraft:sittable": {} +``` + +wolf + +#component_groups/minecraft:wolf_tame + +```json +"minecraft:sittable": {} +``` + + + +## skin_id + + + +villager_v2 + +#component_groups/villager_skin_0 + +```json +"minecraft:skin_id": { + "value": 0 +} +``` + +#component_groups/villager_skin_1 + +```json +"minecraft:skin_id": { + "value": 1 +} +``` + +#component_groups/villager_skin_2 + +```json +"minecraft:skin_id": { + "value": 2 +} +``` + +zombie_villager_v2 + +#component_groups/villager_skin_0 + +```json +"minecraft:skin_id": { + "value": 0 +} +``` + +#component_groups/villager_skin_1 + +```json +"minecraft:skin_id": { + "value": 1 +} +``` + +#component_groups/villager_skin_2 + +```json +"minecraft:skin_id": { + "value": 2 +} +``` + + + +## spawn_entity + + + +chicken + +#component_groups/minecraft:chicken_adult + +```json +"minecraft:spawn_entity": { + "entities": { + "min_wait_time": 300, + "max_wait_time": 600, + "spawn_sound": "plop", + "spawn_item": "egg", + "filters": { + "test": "rider_count", + "subject": "self", + "operator": "==", + "value": 0 + } + } +} +``` + +ocelot + +#component_groups/minecraft:wild_child_ocelot_spawn + +```json +"minecraft:spawn_entity": { + "entities": { + "filters": [ + { + "test": "random_chance", + "value": 7 + } + ], + "min_wait_time": 0, + "max_wait_time": 0, + "num_to_spawn": 2, + "single_use": true, + "spawn_entity": "minecraft:ocelot", + "spawn_event": "minecraft:entity_born", + "spawn_method": "born", + "spawn_sound": "" + } +} +``` + +sniffer + +#component_groups/sniffer_pregnant + +```json +"minecraft:spawn_entity": { + "entities": { + "min_wait_time": 0, + "max_wait_time": 0, + "spawn_sound": "plop", + "spawn_item": "sniffer_egg", + "spawn_item_event": { + "event": "on_egg_spawned", + "target": "self" + }, + "single_use": true + } +} +``` + +wandering_trader + + + +```json +"minecraft:spawn_entity": { + "entities": [ + { + "min_wait_time": 0, + "max_wait_time": 0, + "spawn_entity": "trader_llama", + "spawn_event": "minecraft:from_wandering_trader", + "single_use": true, + "num_to_spawn": 2, + "should_leash": true + } + ] +} +``` + + + +## spell_effects + + + +player + +#component_groups/minecraft:add_bad_omen + +```json +"minecraft:spell_effects": { + "add_effects": [ + { + "effect": "bad_omen", + "duration": 6000, + "visible": false, + "display_on_screen_animation": true + } + ] +} +``` + +#component_groups/minecraft:clear_bad_omen_spell_effect + +```json +"minecraft:spell_effects": {} +``` + +#component_groups/minecraft:raid_trigger + +```json +"minecraft:spell_effects": { + "remove_effects": "bad_omen" +} +``` + +zombie_villager + +#component_groups/to_villager + +```json +"minecraft:spell_effects": { + "add_effects": [ + { + "effect": "strength", + "duration": 100 + }, + { + "effect": "heal", + "duration": 100 + } + ], + "remove_effects": "weakness" +} +``` + +zombie_villager_v2 + +#component_groups/to_villager + +```json +"minecraft:spell_effects": { + "add_effects": [ + { + "effect": "strength", + "duration": 100 + }, + { + "effect": "heal", + "duration": 100 + } + ], + "remove_effects": "weakness" +} +``` + + + +## strength + + + +llama + +#component_groups/minecraft:strength_1 + +```json +"minecraft:strength": { + "value": 1, + "max": 5 +} +``` + +#component_groups/minecraft:strength_2 + +```json +"minecraft:strength": { + "value": 2, + "max": 5 +} +``` + +#component_groups/minecraft:strength_3 + +```json +"minecraft:strength": { + "value": 3, + "max": 5 +} +``` + +trader_llama + +#component_groups/minecraft:strength_1 + +```json +"minecraft:strength": { + "value": 1, + "max": 5 +} +``` + +#component_groups/minecraft:strength_2 + +```json +"minecraft:strength": { + "value": 2, + "max": 5 +} +``` + +#component_groups/minecraft:strength_3 + +```json +"minecraft:strength": { + "value": 3, + "max": 5 +} +``` + + + +## suspect_tracking + + + +warden + + + +```json +"minecraft:suspect_tracking": {} +``` + + + +## tameable + + + +cat + +#component_groups/minecraft:cat_wild + +```json +"minecraft:tameable": { + "probability": 0.33, + "tame_items": [ + "fish", + "salmon" + ], + "tame_event": { + "event": "minecraft:on_tame", + "target": "self" + } +} +``` + +parrot + +#component_groups/minecraft:parrot_wild + +```json +"minecraft:tameable": { + "probability": 0.33, + "tame_items": [ + "wheat_seeds", + "pumpkin_seeds", + "melon_seeds", + "beetroot_seeds", + "pitcher_pod", + "torchflower_seeds" + ], + "tame_event": { + "event": "minecraft:on_tame", + "target": "self" + } +} +``` + +wolf + +#component_groups/minecraft:wolf_wild + +```json +"minecraft:tameable": { + "probability": 0.33, + "tame_items": "bone", + "tame_event": { + "event": "minecraft:on_tame", + "target": "self" + } +} +``` + + + +## tamemount + + + +donkey + +#component_groups/minecraft:donkey_wild + +```json +"minecraft:tamemount": { + "min_temper": 0, + "max_temper": 100, + "feed_text": "action.interact.feed", + "ride_text": "action.interact.mount", + "feed_items": [ + { + "item": "wheat", + "temper_mod": 3 + }, + { + "item": "sugar", + "temper_mod": 3 + }, + { + "item": "apple", + "temper_mod": 3 + }, + { + "item": "golden_carrot", + "temper_mod": 5 + }, + { + "item": "golden_apple", + "temper_mod": 10 + }, + { + "item": "appleEnchanted", + "temper_mod": 10 + } + ], + "auto_reject_items": [ + { + "item": "horsearmorleather" + }, + { + "item": "horsearmoriron" + }, + { + "item": "horsearmorgold" + }, + { + "item": "horsearmordiamond" + }, + { + "item": "saddle" + } + ], + "tame_event": { + "event": "minecraft:on_tame", + "target": "self" + } +} +``` + +horse + +#component_groups/minecraft:horse_wild + +```json +"minecraft:tamemount": { + "min_temper": 0, + "max_temper": 100, + "feed_text": "action.interact.feed", + "ride_text": "action.interact.mount", + "feed_items": [ + { + "item": "wheat", + "temper_mod": 3 + }, + { + "item": "sugar", + "temper_mod": 3 + }, + { + "item": "apple", + "temper_mod": 3 + }, + { + "item": "golden_carrot", + "temper_mod": 5 + }, + { + "item": "golden_apple", + "temper_mod": 10 + }, + { + "item": "appleEnchanted", + "temper_mod": 10 + } + ], + "auto_reject_items": [ + { + "item": "horsearmorleather" + }, + { + "item": "horsearmoriron" + }, + { + "item": "horsearmorgold" + }, + { + "item": "horsearmordiamond" + }, + { + "item": "saddle" + } + ], + "tame_event": { + "event": "minecraft:on_tame", + "target": "self" + } +} +``` + +llama + +#component_groups/minecraft:llama_wild + +```json +"minecraft:tamemount": { + "min_temper": 0, + "max_temper": 30, + "feed_text": "action.interact.feed", + "ride_text": "action.interact.mount", + "feed_items": [ + { + "item": "wheat", + "temper_mod": 3 + }, + { + "item": "hay_block", + "temper_mod": 6 + } + ], + "tame_event": { + "event": "minecraft:on_tame", + "target": "self" + } +} +``` + +mule + +#component_groups/minecraft:mule_wild + +```json +"minecraft:tamemount": { + "min_temper": 0, + "max_temper": 100, + "feed_text": "action.interact.feed", + "ride_text": "action.interact.mount", + "feed_items": [ + { + "item": "wheat", + "temper_mod": 3 + }, + { + "item": "sugar", + "temper_mod": 3 + }, + { + "item": "apple", + "temper_mod": 3 + }, + { + "item": "golden_carrot", + "temper_mod": 5 + }, + { + "item": "golden_apple", + "temper_mod": 10 + }, + { + "item": "appleEnchanted", + "temper_mod": 10 + } + ], + "auto_reject_items": [ + { + "item": "horsearmorleather" + }, + { + "item": "horsearmoriron" + }, + { + "item": "horsearmorgold" + }, + { + "item": "horsearmordiamond" + }, + { + "item": "saddle" + } + ], + "tame_event": { + "event": "minecraft:on_tame", + "target": "self" + } +} +``` + +trader_llama + +#component_groups/minecraft:llama_wild + +```json +"minecraft:tamemount": { + "min_temper": 0, + "max_temper": 30, + "feed_text": "action.interact.feed", + "ride_text": "action.interact.mount", + "feed_items": [ + { + "item": "wheat", + "temper_mod": 3 + }, + { + "item": "hay_block", + "temper_mod": 6 + } + ], + "auto_reject_items": [ + { + "item": "horsearmorleather" + }, + { + "item": "horsearmoriron" + }, + { + "item": "horsearmorgold" + }, + { + "item": "horsearmordiamond" + }, + { + "item": "saddle" + } + ], + "tame_event": { + "event": "minecraft:on_tame", + "target": "self" + } +} +``` + + + +## target_nearby_sensor + + + +blaze + +#component_groups/mode_switcher + +```json +"minecraft:target_nearby_sensor": { + "inside_range": 2.0, + "outside_range": 3.0, + "must_see": true, + "on_inside_range": { + "event": "switch_to_melee", + "target": "self" + }, + "on_outside_range": { + "event": "switch_to_ranged", + "target": "self" + } +} +``` + +creeper + + + +```json +"minecraft:target_nearby_sensor": { + "inside_range": 2.5, + "outside_range": 6.0, + "must_see": true, + "on_inside_range": { + "event": "minecraft:start_exploding", + "target": "self" + }, + "on_outside_range": { + "event": "minecraft:stop_exploding", + "target": "self" + }, + "on_vision_lost_inside_range": { + "event": "minecraft:stop_exploding", + "target": "self" + } +} +``` + +#component_groups/minecraft:forced_exploding + +```json +"minecraft:target_nearby_sensor": {} +``` + +#component_groups/minecraft:forced_charged_exploding + +```json +"minecraft:target_nearby_sensor": {} +``` + +drowned + +#component_groups/minecraft:mode_switcher + +```json +"minecraft:target_nearby_sensor": { + "inside_range": 3.0, + "outside_range": 5.0, + "on_inside_range": { + "event": "minecraft:switch_to_melee", + "target": "self" + }, + "on_outside_range": { + "event": "minecraft:switch_to_ranged", + "target": "self" + } +} +``` + +guardian + + + +```json +"minecraft:target_nearby_sensor": { + "inside_range": 3.0, + "outside_range": 4.0, + "on_inside_range": { + "event": "minecraft:target_too_close", + "target": "self" + } +} +``` + +#component_groups/minecraft:guardian_aggressive + +```json +"minecraft:target_nearby_sensor": { + "inside_range": 3.0, + "outside_range": 4.0, + "on_inside_range": { + "event": "minecraft:target_too_close", + "target": "self" + } +} +``` + + + +## teleport + + + +enderman + + + +```json +"minecraft:teleport": { + "random_teleports": true, + "max_random_teleport_time": 30, + "random_teleport_cube": [ + 32, + 32, + 32 + ], + "target_distance": 16, + "target_teleport_chance": 0.05, + "light_teleport_chance": 0.05 +} +``` + + + +## timer + + + +allay + +#component_groups/pickup_item_delay + +```json +"minecraft:timer": { + "looping": false, + "time": 3, + "time_down_event": { + "event": "pickup_item_delay_complete" + } +} +``` + +bee + +#component_groups/escape_fire + +```json +"minecraft:timer": { + "looping": false, + "time": [ + 20, + 50 + ], + "randomInterval": true, + "time_down_event": { + "event": "stop_panicking_after_fire", + "target": "self" + } +} +``` + +#component_groups/countdown_to_perish + +```json +"minecraft:timer": { + "looping": false, + "time": [ + 10, + 60 + ], + "randomInterval": true, + "time_down_event": { + "event": "perish_event", + "target": "self" + } +} +``` + +#component_groups/take_nearest_target + +```json +"minecraft:timer": { + "looping": true, + "time": 5, + "time_down_event": { + "event": "calmed_down", + "target": "self" + } +} +``` + +boat + +#component_groups/minecraft:above_bubble_column_down + +```json +"minecraft:timer": { + "looping": false, + "time": 3, + "time_down_event": { + "event": "minecraft:sink", + "target": "self" + } +} +``` + +chest_boat + +#component_groups/minecraft:above_bubble_column_down + +```json +"minecraft:timer": { + "looping": false, + "time": 3, + "time_down_event": { + "event": "minecraft:sink", + "target": "self" + } +} +``` + +guardian + +#component_groups/minecraft:guardian_passive + +```json +"minecraft:timer": { + "time": [ + 1, + 3 + ], + "looping": false, + "time_down_event": { + "event": "minecraft:target_far_enough", + "target": "self" + } +} +``` + +hoglin + +#component_groups/start_zombification + +```json +"minecraft:timer": { + "looping": false, + "time": 15, + "time_down_event": { + "event": "become_zombie_event" + } +} +``` + + + +## trade_resupply + + + +villager_v2 + +#component_groups/trade_resupply_component_group + +```json +"minecraft:trade_resupply": {} +``` + + + +## trade_table + + + +villager + +#component_groups/farmer + +```json +"minecraft:trade_table": { + "display_name": "entity.villager.farmer", + "table": "trading/farmer_trades.json", + "convert_trades_economy": true +} +``` + +#component_groups/fisherman + +```json +"minecraft:trade_table": { + "display_name": "entity.villager.fisherman", + "table": "trading/fisherman_trades.json", + "convert_trades_economy": true +} +``` + +#component_groups/shepherd + +```json +"minecraft:trade_table": { + "display_name": "entity.villager.shepherd", + "table": "trading/shepherd_trades.json", + "convert_trades_economy": true +} +``` + + + +## trail + + + +snow_golem + + + +```json +"minecraft:trail": { + "block_type": "minecraft:snow_layer", + "spawn_filter": { + "test": "is_temperature_value", + "operator": "<", + "value": 0.81 + } +} +``` + + + +## transformation + + + +hoglin + +#component_groups/become_zombie + +```json +"minecraft:transformation": { + "into": "minecraft:zoglin", + "transformation_sound": "converted_to_zombified", + "keep_level": true +} +``` + +husk + +#component_groups/minecraft:convert_to_zombie + +```json +"minecraft:transformation": { + "into": "minecraft:zombie", + "transformation_sound": "convert_to_drowned", + "drop_equipment": true, + "delay": { + "value": 15 + } +} +``` + +#component_groups/minecraft:convert_to_baby_zombie + +```json +"minecraft:transformation": { + "into": "minecraft:zombie", + "transformation_sound": "convert_to_drowned", + "drop_equipment": true, + "delay": { + "value": 15 + } +} +``` + +mooshroom + +#component_groups/minecraft:mooshroom_become_cow + +```json +"minecraft:transformation": { + "into": "minecraft:cow" +} +``` + +pig + +#component_groups/minecraft:pig_transform + +```json +"minecraft:transformation": { + "into": "minecraft:pig_zombie", + "delay": 0.5 +} +``` + +piglin + +#component_groups/become_zombie + +```json +"minecraft:transformation": { + "into": "minecraft:zombie_pigman", + "transformation_sound": "converted_to_zombified", + "keep_level": true, + "drop_inventory": true, + "preserve_equipment": true +} +``` + +piglin_brute + +#component_groups/become_zombie + +```json +"minecraft:transformation": { + "into": "minecraft:zombie_pigman", + "transformation_sound": "converted_to_zombified", + "keep_level": true, + "preserve_equipment": true +} +``` + +skeleton + +#component_groups/become_stray + +```json +"minecraft:transformation": { + "into": "minecraft:stray", + "transformation_sound": "convert_to_stray", + "keep_level": true, + "drop_inventory": true, + "preserve_equipment": true +} +``` + + + +## trust + + + +fox + +#component_groups/minecraft:trusting_fox + +```json +"minecraft:trust": {} +``` + + + +## trusting + + + +ocelot + +#component_groups/minecraft:ocelot_wild + +```json +"minecraft:trusting": { + "probability": 0.33, + "trust_items": [ + "fish", + "salmon" + ], + "trust_event": { + "event": "minecraft:on_trust", + "target": "self" + } +} +``` + + + +## type_family + + + +allay + + + +```json +"minecraft:type_family": { + "family": [ + "allay", + "mob" + ] +} +``` + +armor_stand + + + +```json +"minecraft:type_family": { + "family": [ + "armor_stand", + "inanimate", + "mob" + ] +} +``` + +axolotl + + + +```json +"minecraft:type_family": { + "family": [ + "axolotl", + "mob" + ] +} +``` + +bat + + + +```json +"minecraft:type_family": { + "family": [ + "bat", + "mob" + ] +} +``` + +bee + + + +```json +"minecraft:type_family": { + "family": [ + "bee", + "mob", + "arthropod" + ] +} +``` + +#component_groups/countdown_to_perish + +```json +"minecraft:type_family": { + "family": [ + "bee", + "mob", + "arthropod", + "pacified" + ] +} +``` + +blaze + + + +```json +"minecraft:type_family": { + "family": [ + "blaze", + "monster", + "mob" + ] +} +``` + +boat + + + +```json +"minecraft:type_family": { + "family": [ + "boat", + "inanimate" + ] +} +``` + + + +## underwater_movement + + + +axolotl + + + +```json +"minecraft:underwater_movement": { + "value": 0.2 +} +``` + +dolphin + + + +```json +"minecraft:underwater_movement": { + "value": 0.15 +} +``` + +drowned + + + +```json +"minecraft:underwater_movement": { + "value": 0.06 +} +``` + +#component_groups/minecraft:baby_drowned + +```json +"minecraft:underwater_movement": { + "value": 0.08 +} +``` + +elder_guardian + + + +```json +"minecraft:underwater_movement": { + "value": 0.3 +} +``` + +cod + + + +```json +"minecraft:underwater_movement": { + "value": 0.1 +} +``` + +frog + + + +```json +"minecraft:underwater_movement": { + "value": 0.15 +} +``` + +guardian + + + +```json +"minecraft:underwater_movement": { + "value": 0.12 +} +``` + + + +## variable_max_auto_step + + + +camel + + + +```json +"minecraft:variable_max_auto_step": { + "base_value": 1.5625, + "controlled_value": 1.5625, + "jump_prevented_value": 0.5625 +} +``` + +enderman + + + +```json +"minecraft:variable_max_auto_step": { + "base_value": 1.0625, + "jump_prevented_value": 0.5625 +} +``` + + + +## variant + + + +axolotl + +#component_groups/axolotl_lucy + +```json +"minecraft:variant": { + "value": 0 +} +``` + +#component_groups/axolotl_cyan + +```json +"minecraft:variant": { + "value": 1 +} +``` + +#component_groups/axolotl_gold + +```json +"minecraft:variant": { + "value": 2 +} +``` + +cat + +#component_groups/minecraft:cat_white + +```json +"minecraft:variant": { + "value": 0 +} +``` + +#component_groups/minecraft:cat_tuxedo + +```json +"minecraft:variant": { + "value": 1 +} +``` + +#component_groups/minecraft:cat_red + +```json +"minecraft:variant": { + "value": 2 +} +``` + +fox + +#component_groups/minecraft:fox_red + +```json +"minecraft:variant": { + "value": 0 +} +``` + +#component_groups/minecraft:fox_arctic + +```json +"minecraft:variant": { + "value": 1 +} +``` + + + +## vibration_damper + + + +warden + + + +```json +"minecraft:vibration_damper": {} +``` + + + +## vibration_listener + + + +allay + + + +```json +"minecraft:vibration_listener": {} +``` + +warden + + + +```json +"minecraft:vibration_listener": {} +``` + + + +## water_movement + + + +panda + + + +```json +"minecraft:water_movement": { + "drag_factor": 0.98 +} +``` + +polar_bear + + + +```json +"minecraft:water_movement": { + "drag_factor": 0.98 +} +``` + +turtle + + + +```json +"minecraft:water_movement": { + "drag_factor": 0.9 +} +``` + + + diff --git a/docs/wiki/3-实体/3-文档/vanilla-usage-spawn-rules.md b/docs/wiki/3-实体/3-文档/vanilla-usage-spawn-rules.md new file mode 100644 index 00000000..a7cdbf33 --- /dev/null +++ b/docs/wiki/3-实体/3-文档/vanilla-usage-spawn-rules.md @@ -0,0 +1,1383 @@ +--- +title: Vanilla 可用生成规则(Spawn Rules) +category: Documentation +mentions: + - MedicalJewel105 +--- + +# Vanilla 可用生成规则(Spawn Rules) + + + +本页面由 [Wiki Content Generator](https://github.com/Bedrock-OSS/bedrock-wiki-content-generator) 创建。 如果有问题,请在 [Bedrock OSS](https://www.google.com/search?q=https://discord.gg/XjV87YN) Discord 服务器上联系我们。 +包含所有示例。 命名空间 `minecraft` 和一些格式已被删除,以加快页面加载速度。 *上次更新于 1.20.10* + +## biome_filter + + + +axolotl + + + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "lush_caves" +} +``` + +bat + + + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "animal" +} +``` + +bee + + + +```json +"minecraft:biome_filter": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "plains" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "sunflower_plains" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "flower_forest" + } +] +``` + +chicken + + + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "animal" +} +``` + +cod + + + +```json +"minecraft:biome_filter": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "ocean" + }, + { + "test": "has_biome_tag", + "operator": "!=", + "value": "warm" + } +] +``` + +cow + + + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "animal" +} +``` + +creeper + + + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "monster" +} +``` + +dolphin + + + +```json +"minecraft:biome_filter": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "ocean" + }, + { + "test": "has_biome_tag", + "operator": "!=", + "value": "frozen" + } +] +``` + + + +## brightness_filter + + + +bat + + + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 4, + "adjust_for_weather": true +} +``` + +bee + + + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +chicken + + + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +cow + + + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +creeper + + + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 7, + "adjust_for_weather": true +} +``` + +donkey + + + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + + + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +drowned + + + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 7, + "adjust_for_weather": true +} +``` + + + +## delay_filter + + + +pillager_patrol + + + +```json +"minecraft:delay_filter": { + "min": 600, + "max": 660, + "identifier": "minecraft:pillager_patrol_easy", + "spawn_chance": 20 +} +``` + + + +```json +"minecraft:delay_filter": { + "min": 600, + "max": 660, + "identifier": "minecraft:pillager_patrol_normal", + "spawn_chance": 20 +} +``` + + + +```json +"minecraft:delay_filter": { + "min": 600, + "max": 660, + "identifier": "minecraft:pillager_patrol_hard", + "spawn_chance": 20 +} +``` + + + +## density_limit + + + +axolotl + + + +```json +"minecraft:density_limit": { + "underground": 5 +} +``` + +bat + + + +```json +"minecraft:density_limit": { + "surface": 5 +} +``` + +cod + + + +```json +"minecraft:density_limit": { + "surface": 20 +} +``` + +creeper + + + +```json +"minecraft:density_limit": { + "surface": 5 +} +``` + +dolphin + + + +```json +"minecraft:density_limit": { + "surface": 5, + "underground": 0 +} +``` + +drowned + + + +```json +"minecraft:density_limit": { + "surface": 5 +} +``` + + + +```json +"minecraft:density_limit": { + "surface": 2 +} +``` + + + +```json +"minecraft:density_limit": { + "surface": 2 +} +``` + + + +## difficulty_filter + + + +creeper + + + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +drowned + + + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + + + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + + + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +enderman + + + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + + + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + + + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +ghast + + + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + + + +## disallow_spawns_in_bubble + + + +axolotl + + + +```json +"minecraft:disallow_spawns_in_bubble": {} +``` + + + +## distance_filter + + + +cod + + + +```json +"minecraft:distance_filter": { + "min": 12, + "max": 32 +} +``` + +pillager_patrol + + + +```json +"minecraft:distance_filter": { + "min": 24, + "max": 48 +} +``` + + + +```json +"minecraft:distance_filter": { + "min": 24, + "max": 48 +} +``` + + + +```json +"minecraft:distance_filter": { + "min": 24, + "max": 48 +} +``` + +pufferfish + + + +```json +"minecraft:distance_filter": { + "min": 12, + "max": 32 +} +``` + +salmon + + + +```json +"minecraft:distance_filter": { + "min": 12, + "max": 32 +} +``` + + + +```json +"minecraft:distance_filter": { + "min": 12, + "max": 32 +} +``` + +tropicalfish + + + +```json +"minecraft:distance_filter": { + "min": 12, + "max": 32 +} +``` + + + +## height_filter + + + +bat + + + +```json +"minecraft:height_filter": { + "min": -63, + "max": 63 +} +``` + +cod + + + +```json +"minecraft:height_filter": { + "min": 0, + "max": 64 +} +``` + +dolphin + + + +```json +"minecraft:height_filter": { + "min": 0, + "max": 64 +} +``` + +glow_squid + + + +```json +"minecraft:height_filter": { + "min": -64, + "max": 30 +} +``` + +pufferfish + + + +```json +"minecraft:height_filter": { + "min": 0, + "max": 64 +} +``` + +salmon + + + +```json +"minecraft:height_filter": { + "min": 0, + "max": 64 +} +``` + + + +```json +"minecraft:height_filter": { + "min": 50, + "max": 64 +} +``` + +stray + + + +```json +"minecraft:height_filter": { + "min": 60, + "max": 66 +} +``` + + + +## herd + + + +axolotl + + + +```json +"minecraft:herd": { + "min_size": 4, + "max_size": 6, + "event": "minecraft:entity_born", + "event_skip_count": 2 +} +``` + +bat + + + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 2 +} +``` + +bee + + + +```json +"minecraft:herd": { + "min_size": 1, + "max_size": 1 +} +``` + +chicken + + + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 4 +} +``` + +cod + + + +```json +"minecraft:herd": { + "min_size": 4, + "max_size": 7 +} +``` + +cow + + + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 3 +} +``` + +dolphin + + + +```json +"minecraft:herd": { + "min_size": 3, + "max_size": 5 +} +``` + +donkey + + + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 6 +} +``` + + + +## mob_event_filter + + + +pillager_patrol + + + +```json +"minecraft:mob_event_filter": { + "event": "minecraft:pillager_patrols_event" +} +``` + + + +```json +"minecraft:mob_event_filter": { + "event": "minecraft:pillager_patrols_event" +} +``` + + + +```json +"minecraft:mob_event_filter": { + "event": "minecraft:pillager_patrols_event" +} +``` + + + +## permute_type + + + +pillager_patrol + + + +```json +"minecraft:permute_type": [ + { + "weight": 100, + "entity_type": "minecraft:pillager" + } +] +``` + + + +```json +"minecraft:permute_type": [ + { + "weight": 100, + "entity_type": "minecraft:pillager" + } +] +``` + + + +```json +"minecraft:permute_type": [ + { + "weight": 100, + "entity_type": "minecraft:pillager" + } +] +``` + +zombie + + + +```json +"minecraft:permute_type": [ + { + "weight": 95 + }, + { + "weight": 5, + "entity_type": "minecraft:zombie_villager_v2" + } +] +``` + + + +## player_in_village_filter + + + +pillager_patrol + + + +```json +"minecraft:player_in_village_filter": { + "distance": 48, + "village_border_tolerance": 32 +} +``` + + + +```json +"minecraft:player_in_village_filter": { + "distance": 48, + "village_border_tolerance": 32 +} +``` + + + +```json +"minecraft:player_in_village_filter": { + "distance": 48, + "village_border_tolerance": 32 +} +``` + + + +## spawn_event + + + +stray + + + +```json +"minecraft:spawn_event": { + "event": "change_to_skeleton" +} +``` + + + +```json +"minecraft:spawn_event": { + "event": "change_to_skeleton" +} +``` + + + +## spawns_lava + + + +strider + + + +```json +"minecraft:spawns_lava": {} +``` + + + +## spawns_on_block_filter + + + +axolotl + + + +```json +"minecraft:spawns_on_block_filter": "minecraft:clay" +``` + +chicken + + + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + +cow + + + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + +donkey + + + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + + + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + +goat + + + +```json +"minecraft:spawns_on_block_filter": [ + "minecraft:stone", + "minecraft:snow", + "minecraft:powder_snow", + "minecraft:snow_layer", + "minecraft:packed_ice", + "minecraft:gravel" +] +``` + +horse + + + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + + + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + + + +## spawns_on_block_prevented_filter + + + +hoglin + + + +```json +"minecraft:spawns_on_block_prevented_filter": [ + "minecraft:nether_wart_block", + "minecraft:shroomlight" +] +``` + +magma_cube + + + +```json +"minecraft:spawns_on_block_prevented_filter": [ + "minecraft:nether_wart_block", + "minecraft:shroomlight" +] +``` + + + +```json +"minecraft:spawns_on_block_prevented_filter": [ + "minecraft:nether_wart_block", + "minecraft:shroomlight" +] +``` + +piglin + + + +```json +"minecraft:spawns_on_block_prevented_filter": [ + "minecraft:nether_wart_block", + "minecraft:shroomlight" +] +``` + + + +```json +"minecraft:spawns_on_block_prevented_filter": [ + "minecraft:nether_wart_block", + "minecraft:shroomlight" +] +``` + +skeleton + + + +```json +"minecraft:spawns_on_block_prevented_filter": [ + "minecraft:nether_wart_block", + "minecraft:shroomlight" +] +``` + +zombie_pigman + + + +```json +"minecraft:spawns_on_block_prevented_filter": [ + "minecraft:nether_wart_block", + "minecraft:shroomlight" +] +``` + + + +```json +"minecraft:spawns_on_block_prevented_filter": [ + "minecraft:nether_wart_block", + "minecraft:shroomlight" +] +``` + + + +## spawns_on_surface + + + +bee + + + +```json +"minecraft:spawns_on_surface": {} +``` + +chicken + + + +```json +"minecraft:spawns_on_surface": {} +``` + +cod + + + +```json +"minecraft:spawns_on_surface": {} +``` + +cow + + + +```json +"minecraft:spawns_on_surface": {} +``` + +creeper + + + +```json +"minecraft:spawns_on_surface": {} +``` + +dolphin + + + +```json +"minecraft:spawns_on_surface": {} +``` + +donkey + + + +```json +"minecraft:spawns_on_surface": {} +``` + + + +```json +"minecraft:spawns_on_surface": {} +``` + + + +## spawns_underground + + + +axolotl + + + +```json +"minecraft:spawns_underground": {} +``` + +bat + + + +```json +"minecraft:spawns_underground": {} +``` + +creeper + + + +```json +"minecraft:spawns_underground": {} +``` + +enderman + + + +```json +"minecraft:spawns_underground": {} +``` + + + +```json +"minecraft:spawns_underground": {} +``` + + + +```json +"minecraft:spawns_underground": {} +``` + +ghast + + + +```json +"minecraft:spawns_underground": {} +``` + +glow_squid + + + +```json +"minecraft:spawns_underground": {} +``` + + + +## spawns_underwater + + + +axolotl + + + +```json +"minecraft:spawns_underwater": {} +``` + +cod + + + +```json +"minecraft:spawns_underwater": {} +``` + +dolphin + + + +```json +"minecraft:spawns_underwater": {} +``` + +drowned + + + +```json +"minecraft:spawns_underwater": {} +``` + + + +```json +"minecraft:spawns_underwater": {} +``` + + + +```json +"minecraft:spawns_underwater": {} +``` + +glow_squid + + + +```json +"minecraft:spawns_underwater": {} +``` + +guardian + + + +```json +"minecraft:spawns_underwater": {} +``` + + + +## weight + + + +axolotl + + + +```json +"minecraft:weight": { + "default": 10 +} +``` + +bat + + + +```json +"minecraft:weight": { + "default": 10 +} +``` + +bee + + + +```json +"minecraft:weight": { + "default": 10 +} +``` + +chicken + + + +```json +"minecraft:weight": { + "default": 10 +} +``` + +cod + + + +```json +"minecraft:weight": { + "default": 75 +} +``` + +cow + + + +```json +"minecraft:weight": { + "default": 8 +} +``` + +creeper + + + +```json +"minecraft:weight": { + "default": 100 +} +``` + +dolphin + + + +```json +"minecraft:weight": { + "default": 7 +} +``` + + + +## world_age_filter + + + +pillager_patrol + + + +```json +"minecraft:world_age_filter": { + "min": 6000 +} +``` + + + +```json +"minecraft:world_age_filter": { + "min": 6000 +} +``` + + + +```json +"minecraft:world_age_filter": { + "min": 6000 +} +``` + + + diff --git a/docs/wiki/3-实体/3-文档/vuc-full.md b/docs/wiki/3-实体/3-文档/vuc-full.md new file mode 100644 index 00000000..9cd638e6 --- /dev/null +++ b/docs/wiki/3-实体/3-文档/vuc-full.md @@ -0,0 +1,47771 @@ +--- +title: Vanilla 可用 Components - 完整 +category: Documentation +mentions: + - MedicalJewel105 +hidden: true +--- + +# Vanilla 可用 Components - 完整 + + + +本页面由 [Wiki Content Generator](https://github.com/Bedrock-OSS/bedrock-wiki-content-generator) 创建。 如果有问题,请在 [Bedrock OSS](https://www.google.com/search?q=https://discord.gg/XjV87YN) Discord 服务器上联系我们。 +包含所有示例。 命名空间 `minecraft` 和一些格式已被删除,以加快页面加载速度。 *上次更新于 1.20.10* + +## addrider + +cave_spider + +```json +"minecraft:addrider": { + "entity_type": "minecraft:skeleton" +} +``` + +```json +"minecraft:addrider": { + "entity_type": "minecraft:skeleton.stray" +} +``` + +```json +"minecraft:addrider": { + "entity_type": "minecraft:skeleton.wither" +} +``` + +ravager + +```json +"minecraft:addrider": { + "entity_type": "minecraft:pillager" +} +``` + +```json +"minecraft:addrider": { + "entity_type": "minecraft:pillager", + "spawn_event": "minecraft:spawn_for_raid" +} +``` + +```json +"minecraft:addrider": { + "entity_type": "minecraft:evocation_illager", + "spawn_event": "minecraft:spawn_for_raid" +} +``` + +```json +"minecraft:addrider": { + "entity_type": "minecraft:pillager", + "spawn_event": "minecraft:spawn_as_illager_captain" +} +``` + +```json +"minecraft:addrider": { + "entity_type": "minecraft:vindicator" +} +``` + +```json +"minecraft:addrider": { + "entity_type": "minecraft:vindicator", + "spawn_event": "minecraft:spawn_as_illager_captain" +} +``` + +spider + +```json +"minecraft:addrider": { + "entity_type": "minecraft:skeleton" +} +``` + +```json +"minecraft:addrider": { + "entity_type": "minecraft:skeleton.stray" +} +``` + +```json +"minecraft:addrider": { + "entity_type": "minecraft:skeleton.wither" +} +``` + +strider + +```json +"minecraft:addrider": { + "entity_type": "minecraft:zombie_pigman", + "spawn_event": "minecraft:spawn_as_strider_jockey" +} +``` + +```json +"minecraft:addrider": { + "entity_type": "minecraft:strider", + "spawn_event": "minecraft:spawn_baby_strider_jockey" +} +``` + +## admire_item + +piglin + +```json +"minecraft:admire_item": { + "duration": 8, + "cooldown_after_being_attacked": 20 +} +``` + +## ageable + +axolotl + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": "tropical_fish_bucket", + "transform_to_item": "water_bucket:0", + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +bee + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + "minecraft:red_flower", + "minecraft:yellow_flower", + "minecraft:wither_rose", + "minecraft:double_plant:0", + "minecraft:double_plant:1", + "minecraft:double_plant:4", + "minecraft:double_plant:5", + "minecraft:flowering_azalea", + "minecraft:azalea_leaves_flowered", + "minecraft:mangrove_propagule", + "minecraft:pitcher_plant", + "minecraft:torchflower", + "minecraft:cherry_leaves", + "minecraft:pink_petals" + ], + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +camel + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": "cactus", + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +cat + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + "fish", + "salmon" + ], + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +chicken + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + "wheat_seeds", + "beetroot_seeds", + "melon_seeds", + "pumpkin_seeds", + "pitcher_pod", + "torchflower_seeds" + ], + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +cow + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": "wheat", + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +dolphin + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + "fish", + "salmon" + ], + "grow_up": { + "event": "ageable_grow_up", + "target": "self" + } +} +``` + +donkey + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + { + "item": "wheat", + "growth": 0.016667 + }, + { + "item": "sugar", + "growth": 0.025 + }, + { + "item": "hay_block", + "growth": 0.15 + }, + { + "item": "apple", + "growth": 0.05 + }, + { + "item": "golden_carrot", + "growth": 0.05 + }, + { + "item": "golden_apple", + "growth": 0.2 + }, + { + "item": "appleEnchanted", + "growth": 0.2 + } + ], + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +fox + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + "sweet_berries", + "glow_berries" + ], + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +goat + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": "wheat", + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +hoglin + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + "crimson_fungus" + ], + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +horse + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + { + "item": "wheat", + "growth": 0.016667 + }, + { + "item": "sugar", + "growth": 0.025 + }, + { + "item": "hay_block", + "growth": 0.15 + }, + { + "item": "apple", + "growth": 0.05 + }, + { + "item": "golden_carrot", + "growth": 0.05 + }, + { + "item": "golden_apple", + "growth": 0.2 + }, + { + "item": "appleEnchanted", + "growth": 0.2 + } + ], + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +llama + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + { + "item": "wheat", + "growth": 0.1 + }, + { + "item": "hay_block", + "growth": 0.9 + } + ], + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +mooshroom + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": "wheat", + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +mule + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + { + "item": "wheat", + "growth": 0.016667 + }, + { + "item": "sugar", + "growth": 0.025 + }, + { + "item": "hay_block", + "growth": 0.15 + }, + { + "item": "apple", + "growth": 0.05 + }, + { + "item": "golden_carrot", + "growth": 0.05 + }, + { + "item": "golden_apple", + "growth": 0.2 + }, + { + "item": "appleEnchanted", + "growth": 0.2 + } + ], + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +ocelot + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + "fish", + "salmon" + ], + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +panda + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": "bamboo", + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +pig + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + "carrot", + "beetroot", + "potato" + ], + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +polar_bear + +```json +"minecraft:ageable": { + "duration": 1200, + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +rabbit + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + "golden_carrot", + "carrot", + "yellow_flower" + ], + "grow_up": { + "event": "grow_up", + "target": "self" + } +} +``` + +sheep + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": "wheat", + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +skeleton_horse + +```json +"minecraft:ageable": { + "duration": 1200, + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +sniffer + +```json +"minecraft:ageable": { + "duration": 2400, + "feed_items": [ + "torchflower_seeds" + ], + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +strider + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + "warped_fungus" + ], + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +tadpole + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + "slime_ball" + ], + "grow_up": { + "event": "ageable_grow_up", + "target": "self" + } +} +``` + +trader_llama + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + { + "item": "wheat", + "growth": 0.1 + }, + { + "item": "hay_block", + "growth": 0.9 + } + ], + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +turtle + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + "seagrass" + ], + "drop_items": [ + "turtle_shell_piece" + ], + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +villager + +```json +"minecraft:ageable": { + "duration": 1200, + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +villager_v2 + +```json +"minecraft:ageable": { + "duration": 1200, + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +wolf + +```json +"minecraft:ageable": { + "duration": 1200, + "feed_items": [ + "chicken", + "cooked_chicken", + "beef", + "cooked_beef", + "muttonRaw", + "muttonCooked", + "porkchop", + "cooked_porkchop", + "rabbit", + "cooked_rabbit", + "rotten_flesh" + ], + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +zombie_horse + +```json +"minecraft:ageable": { + "duration": 1200, + "grow_up": { + "event": "minecraft:ageable_grow_up", + "target": "self" + } +} +``` + +## ambient_sound_interval + +allay + +```json +"minecraft:ambient_sound_interval": { + "value": 5.0, + "range": 5.0, + "event_name": "ambient", + "event_names": [ + { + "event_name": "ambient.tame", + "condition": "query.is_using_item" + }, + { + "event_name": "ambient", + "condition": "!query.is_using_item" + } + ] +} +``` + +bee + +```json +"minecraft:ambient_sound_interval": { + "event_name": "ambient.pollinate", + "range": 3.0, + "value": 2.0 +} +``` + +```json +"minecraft:ambient_sound_interval": { + "event_name": "ambient", + "range": 0.0, + "value": 0.0 +} +``` + +evocation_illager + +```json +"minecraft:ambient_sound_interval": { + "value": 2.0, + "range": 4.0, + "event_name": "ambient.in.raid" +} +``` + +fox + +```json +"minecraft:ambient_sound_interval": { + "event_name": "ambient" +} +``` + +```json +"minecraft:ambient_sound_interval": { + "event_name": "sleep" +} +``` + +```json +"minecraft:ambient_sound_interval": { + "event_name": "screech", + "value": 80, + "range": 160 +} +``` + +pillager + +```json +"minecraft:ambient_sound_interval": { + "value": 2.0, + "range": 4.0, + "event_name": "ambient.in.raid" +} +``` + +ravager + +```json +"minecraft:ambient_sound_interval": { + "value": 4.0, + "range": 8.0, + "event_name": "ambient.in.raid" +} +``` + +vindicator + +```json +"minecraft:ambient_sound_interval": { + "value": 2.0, + "range": 4.0, + "event_name": "ambient.in.raid" +} +``` + +warden + +```json +"minecraft:ambient_sound_interval": { + "value": 2.0, + "range": 4.0, + "event_name": "ambient", + "event_names": [ + { + "event_name": "angry", + "condition": "query.anger_level(this) >= 80" + }, + { + "event_name": "agitated", + "condition": "query.anger_level(this) >= 40" + } + ] +} +``` + +witch + +```json +"minecraft:ambient_sound_interval": { + "value": 2.0, + "range": 4.0, + "event_name": "ambient.in.raid" +} +``` + +## anger_level + +warden + +```json +"minecraft:anger_level": { + "max_anger": 150, + "angry_threshold": 80, + "remove_targets_below_angry_threshold": true, + "angry_boost": 20, + "anger_decrement_interval": 1.0, + "default_annoyingness": 35, + "default_projectile_annoyingness": 10, + "on_increase_sounds": [ + { + "sound": "listening_angry", + "condition": "query.anger_level(this) >= 40" + }, + { + "sound": "listening", + "condition": "query.anger_level(this) >= 0" + } + ], + "nuisance_filter": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "operator": "not", + "value": "warden" + }, + { + "test": "is_family", + "subject": "other", + "operator": "not", + "value": "inanimate" + } + ] + } +} +``` + +## angry + +bee + +```json +"minecraft:angry": { + "duration": 25, + "broadcastAnger": true, + "broadcastRange": 20, + "broadcast_filters": { + "test": "is_family", + "operator": "!=", + "value": "pacified" + }, + "calm_event": { + "event": "calmed_down", + "target": "self" + } +} +``` + +cave_spider + +```json +"minecraft:angry": { + "duration": 10, + "duration_delta": 3, + "calm_event": { + "event": "minecraft:on_calm", + "target": "self" + } +} +``` + +dolphin + +```json +"minecraft:angry": { + "duration": 25, + "broadcast_anger": true, + "broadcast_range": 16, + "calm_event": { + "event": "on_calm", + "target": "self" + } +} +``` + +enderman + +```json +"minecraft:angry": { + "duration": 25, + "calm_event": { + "event": "minecraft:on_calm", + "target": "self" + } +} +``` + +hoglin + +```json +"minecraft:angry": { + "duration": 10, + "broadcast_anger": true, + "broadcast_range": 16, + "calm_event": { + "event": "become_calm_event", + "target": "self" + }, + "angry_sound": "angry", + "sound_interval": { + "range_min": 2.0, + "range_max": 5.0 + } +} +``` + +llama + +```json +"minecraft:angry": { + "duration": 4, + "broadcast_anger": false, + "calm_event": { + "event": "minecraft:on_calm", + "target": "self" + } +} +``` + +```json +"minecraft:angry": { + "duration": -1, + "broadcast_anger": false, + "calm_event": { + "event": "minecraft:on_calm", + "target": "self" + } +} +``` + +panda + +```json +"minecraft:angry": { + "duration": 500, + "broadcast_anger": true, + "broadcast_range": 41, + "broadcast_filters": { + "test": "is_family", + "operator": "==", + "value": "panda_aggressive" + }, + "calm_event": { + "event": "minecraft:on_calm", + "target": "self" + } +} +``` + +```json +"minecraft:angry": { + "duration": 1, + "broadcast_anger": true, + "broadcast_range": 41, + "broadcast_filters": { + "test": "is_family", + "operator": "==", + "value": "panda_aggressive" + }, + "calm_event": { + "event": "minecraft:baby_on_calm", + "target": "self" + } +} +``` + +piglin + +```json +"minecraft:angry": { + "duration": 30, + "broadcast_anger": true, + "broadcast_anger_on_attack": true, + "broadcast_anger_on_being_attacked": true, + "broadcast_range": 16, + "broadcast_targets": [ + "piglin" + ], + "calm_event": { + "event": "become_calm_event", + "target": "self" + }, + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "piglin" + }, + { + "test": "has_component", + "subject": "self", + "operator": "!=", + "value": "minecraft:attack_cooldown" + } + ] + }, + "angry_sound": "angry", + "sound_interval": { + "range_min": 2.0, + "range_max": 5.0 + } +} +``` + +piglin_brute + +```json +"minecraft:angry": { + "duration": 30, + "broadcast_anger": false, + "broadcast_anger_on_attack": false, + "broadcast_anger_on_being_attacked": true, + "broadcast_range": 16, + "broadcast_targets": [ + "piglin" + ], + "calm_event": { + "event": "become_calm_event", + "target": "self" + }, + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "piglin" + } + ] + }, + "angry_sound": "angry", + "sound_interval": { + "range_min": 2.0, + "range_max": 5.0 + } +} +``` + +polar_bear + +```json +"minecraft:angry": { + "duration": 1, + "broadcast_anger": true, + "broadcast_range": 41, + "calm_event": { + "event": "minecraft:baby_on_calm", + "target": "self" + } +} +``` + +```json +"minecraft:angry": { + "duration": 500, + "broadcast_anger": false, + "broadcast_range": 20, + "calm_event": { + "event": "minecraft:on_calm", + "target": "self" + } +} +``` + +silverfish + +```json +"minecraft:angry": { + "duration": -1, + "broadcast_anger": true, + "broadcast_range": 20, + "calm_event": { + "event": "minecraft:on_calm", + "target": "self" + } +} +``` + +spider + +```json +"minecraft:angry": { + "duration": 10, + "duration_delta": 3, + "calm_event": { + "event": "minecraft:become_calm", + "target": "self" + } +} +``` + +trader_llama + +```json +"minecraft:angry": { + "duration": 4, + "broadcast_anger": false, + "calm_event": { + "event": "minecraft:on_calm", + "target": "self" + } +} +``` + +```json +"minecraft:angry": { + "duration": -1, + "broadcast_anger": false, + "calm_event": { + "event": "minecraft:on_calm", + "target": "self" + } +} +``` + +```json +"minecraft:angry": { + "duration": 10, + "calm_event": { + "event": "minecraft:on_calm", + "target": "self" + } +} +``` + +vindicator + +```json +"minecraft:angry": { + "duration": -1, + "broadcast_anger": false, + "calm_event": { + "event": "minecraft:stop_aggro", + "target": "self" + } +} +``` + +wandering_trader + +```json +"minecraft:angry": { + "duration": 5, + "broadcastAnger": true, + "broadcastRange": 10, + "broadcast_targets": [ + "llama", + "trader_llama" + ], + "broadcast_filters": { + "test": "is_leashed_to", + "subject": "other", + "value": true + }, + "calm_event": { + "event": "minecraft:become_calm", + "target": "self" + } +} +``` + +wolf + +```json +"minecraft:angry": { + "duration": 25, + "broadcast_anger": true, + "broadcast_range": 20, + "calm_event": { + "event": "minecraft:on_calm", + "target": "self" + } +} +``` + +zombie_pigman + +```json +"minecraft:angry": { + "duration": 25, + "broadcast_anger": true, + "broadcast_range": 20, + "calm_event": { + "event": "minecraft:on_calm", + "target": "self" + } +} +``` + +## annotation.break_door + +drowned + +```json +"minecraft:annotation.break_door": {} +``` + +husk + +```json +"minecraft:annotation.break_door": {} +``` + +vindicator + +```json +"minecraft:annotation.break_door": { + "break_time": 30, + "min_difficulty": "normal" +} +``` + +zombie + +```json +"minecraft:annotation.break_door": {} +``` + +zombie_villager + +```json +"minecraft:annotation.break_door": {} +``` + +zombie_villager_v2 + +```json +"minecraft:annotation.break_door": {} +``` + +## annotation.open_door + +piglin + +```json +"minecraft:annotation.open_door": {} +``` + +piglin_brute + +```json +"minecraft:annotation.open_door": {} +``` + +villager + +```json +"minecraft:annotation.open_door": {} +``` + +villager_v2 + +```json +"minecraft:annotation.open_door": {} +``` + +## area_attack + +magma_cube + +```json +"minecraft:area_attack": { + "damage_range": 0.15, + "damage_per_tick": 6, + "damage_cooldown": 0.5, + "cause": "entity_attack", + "entity_filter": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + } + ] + } +} +``` + +```json +"minecraft:area_attack": { + "damage_range": 0.15, + "damage_per_tick": 4, + "damage_cooldown": 0.5, + "cause": "entity_attack", + "entity_filter": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + } + ] + } +} +``` + +```json +"minecraft:area_attack": { + "damage_range": 0.15, + "damage_per_tick": 3, + "damage_cooldown": 0.5, + "cause": "entity_attack", + "entity_filter": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + } + ] + } +} +``` + +pufferfish + +```json +"minecraft:area_attack": { + "damage_range": 0.2, + "damage_per_tick": 2, + "damage_cooldown": 0.5, + "cause": "contact", + "entity_filter": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "monster" + } + ] + } +} +``` + +slime + +```json +"minecraft:area_attack": { + "damage_range": 0.15, + "damage_per_tick": 4, + "damage_cooldown": 0.5, + "cause": "entity_attack", + "entity_filter": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "snowgolem" + } + ] + } +} +``` + +```json +"minecraft:area_attack": { + "damage_range": 0.15, + "damage_per_tick": 2, + "damage_cooldown": 0.5, + "cause": "entity_attack", + "entity_filter": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "snowgolem" + } + ] + } +} +``` + +## attack + +axolotl + +```json +"minecraft:attack": { + "damage": 2 +} +``` + +bee + +```json +"minecraft:attack": { + "damage": 2 +} +``` + +```json +"minecraft:attack": { + "damage": 2, + "effect_name": "poison", + "effect_duration": 10 +} +``` + +```json +"minecraft:attack": { + "damage": 2, + "effect_name": "poison", + "effect_duration": 18 +} +``` + +blaze + +```json +"minecraft:attack": { + "damage": 6 +} +``` + +cave_spider + +```json +"minecraft:attack": { + "damage": 2, + "effect_name": "poison", + "effect_duration": 0 +} +``` + +```json +"minecraft:attack": { + "damage": 2, + "effect_name": "poison", + "effect_duration": 7 +} +``` + +```json +"minecraft:attack": { + "damage": 2, + "effect_name": "poison", + "effect_duration": 15 +} +``` + +creeper + +```json +"minecraft:attack": { + "damage": 3 +} +``` + +dolphin + +```json +"minecraft:attack": { + "damage": 3 +} +``` + +drowned + +```json +"minecraft:attack": { + "damage": 3 +} +``` + +elder_guardian + +```json +"minecraft:attack": { + "damage": 5 +} +``` + +enderman + +```json +"minecraft:attack": { + "damage": 7 +} +``` + +endermite + +```json +"minecraft:attack": { + "damage": 2 +} +``` + +ender_dragon + +```json +"minecraft:attack": { + "damage": 3 +} +``` + +fox + +```json +"minecraft:attack": { + "damage": 2 +} +``` + +goat + +```json +"minecraft:attack": { + "damage": 1 +} +``` + +```json +"minecraft:attack": { + "damage": 2 +} +``` + +guardian + +```json +"minecraft:attack": { + "damage": 5 +} +``` + +hoglin + +```json +"minecraft:attack": { + "damage": 1.0 +} +``` + +```json +"minecraft:attack": { + "damage": [ + 3, + 9 + ] +} +``` + +husk + +```json +"minecraft:attack": { + "damage": 3, + "effect_name": "hunger", + "effect_duration": 30 +} +``` + +iron_golem + +```json +"minecraft:attack": { + "damage": { + "range_min": 7, + "range_max": 21 + } +} +``` + +magma_cube + +```json +"minecraft:attack": { + "damage": 6 +} +``` + +```json +"minecraft:attack": { + "damage": 4 +} +``` + +```json +"minecraft:attack": { + "damage": 3 +} +``` + +panda + +```json +"minecraft:attack": { + "damage": 2.0 +} +``` + +```json +"minecraft:attack": { + "damage": 6.0 +} +``` + +phantom + +```json +"minecraft:attack": { + "damage": 6 +} +``` + +piglin + +```json +"minecraft:attack": { + "damage": 5 +} +``` + +piglin_brute + +```json +"minecraft:attack": { + "damage": 7 +} +``` + +pillager + +```json +"minecraft:attack": { + "damage": 3 +} +``` + +player + +```json +"minecraft:attack": { + "damage": 1 +} +``` + +polar_bear + +```json +"minecraft:attack": { + "damage": 6.0 +} +``` + +ravager + +```json +"minecraft:attack": { + "damage": 12.0 +} +``` + +silverfish + +```json +"minecraft:attack": { + "damage": 1 +} +``` + +skeleton + +```json +"minecraft:attack": { + "damage": 2 +} +``` + +slime + +```json +"minecraft:attack": { + "damage": 4 +} +``` + +```json +"minecraft:attack": { + "damage": 2 +} +``` + +```json +"minecraft:attack": { + "damage": 0 +} +``` + +snow_golem + +```json +"minecraft:attack": { + "damage": 2 +} +``` + +spider + +```json +"minecraft:attack": { + "damage": 2 +} +``` + +stray + +```json +"minecraft:attack": { + "damage": 3, + "effect_name": "slowness", + "effect_duration": 10 +} +``` + +vex + +```json +"minecraft:attack": { + "damage": 3 +} +``` + +vindicator + +```json +"minecraft:attack": { + "damage": 8 +} +``` + +warden + +```json +"minecraft:attack": { + "damage": 30 +} +``` + +wither_skeleton + +```json +"minecraft:attack": { + "damage": 4, + "effect_name": "wither", + "effect_duration": 10 +} +``` + +wolf + +```json +"minecraft:attack": { + "damage": 3 +} +``` + +```json +"minecraft:attack": { + "damage": 4 +} +``` + +zoglin + +```json +"minecraft:attack": { + "damage": 0.5 +} +``` + +```json +"minecraft:attack": { + "damage": [ + 3, + 8 + ] +} +``` + +zombie + +```json +"minecraft:attack": { + "damage": 3 +} +``` + +zombie_pigman + +```json +"minecraft:attack": { + "damage": 5 +} +``` + +zombie_villager + +```json +"minecraft:attack": { + "damage": 3 +} +``` + +zombie_villager_v2 + +```json +"minecraft:attack": { + "damage": 3 +} +``` + +## attack_cooldown + +axolotl + +```json +"minecraft:attack_cooldown": { + "attack_cooldown_time": 120.0, + "attack_cooldown_complete_event": { + "event": "attack_cooldown_complete_event", + "target": "self" + } +} +``` + +goat + +```json +"minecraft:attack_cooldown": { + "attack_cooldown_time": [ + 30, + 40 + ], + "attack_cooldown_complete_event": { + "event": "attack_cooldown_complete_event", + "target": "self" + } +} +``` + +hoglin + +```json +"minecraft:attack_cooldown": { + "attack_cooldown_time": [ + 10.0, + 15.0 + ], + "attack_cooldown_complete_event": { + "event": "attack_cooldown_complete_event", + "target": "self" + } +} +``` + +piglin + +```json +"minecraft:attack_cooldown": { + "attack_cooldown_time": [ + 30.0, + 120.0 + ], + "attack_cooldown_complete_event": { + "event": "attack_cooldown_complete_event", + "target": "self" + } +} +``` + +## attack_damage + +cat + +```json +"minecraft:attack_damage": { + "value": 4 +} +``` + +ocelot + +```json +"minecraft:attack_damage": { + "value": 3 +} +``` + +## balloonable + +allay + +```json +"minecraft:balloonable": { + "mass": 0.5 +} +``` + +bee + +```json +"minecraft:balloonable": { + "mass": 0.5 +} +``` + +boat + +```json +"minecraft:balloonable": {} +``` + +cat + +```json +"minecraft:balloonable": { + "mass": 0.6 +} +``` + +chest_boat + +```json +"minecraft:balloonable": {} +``` + +chicken + +```json +"minecraft:balloonable": { + "mass": 0.5 +} +``` + +cow + +```json +"minecraft:balloonable": {} +``` + +dolphin + +```json +"minecraft:balloonable": {} +``` + +donkey + +```json +"minecraft:balloonable": {} +``` + +fox + +```json +"minecraft:balloonable": { + "mass": 0.6 +} +``` + +glow_squid + +```json +"minecraft:balloonable": { + "mass": 0.5 +} +``` + +goat + +```json +"minecraft:balloonable": {} +``` + +hoglin + +```json +"minecraft:balloonable": {} +``` + +horse + +```json +"minecraft:balloonable": {} +``` + +iron_golem + +```json +"minecraft:balloonable": { + "mass": 2.0 +} +``` + +llama + +```json +"minecraft:balloonable": {} +``` + +mooshroom + +```json +"minecraft:balloonable": {} +``` + +mule + +```json +"minecraft:balloonable": {} +``` + +ocelot + +```json +"minecraft:balloonable": { + "mass": 0.7 +} +``` + +panda + +```json +"minecraft:balloonable": {} +``` + +parrot + +```json +"minecraft:balloonable": {} +``` + +pig + +```json +"minecraft:balloonable": { + "mass": 0.9 +} +``` + +polar_bear + +```json +"minecraft:balloonable": {} +``` + +rabbit + +```json +"minecraft:balloonable": { + "mass": 0.4 +} +``` + +sheep + +```json +"minecraft:balloonable": { + "mass": 0.75 +} +``` + +skeleton_horse + +```json +"minecraft:balloonable": {} +``` + +snow_golem + +```json +"minecraft:balloonable": {} +``` + +squid + +```json +"minecraft:balloonable": { + "mass": 0.5 +} +``` + +strider + +```json +"minecraft:balloonable": {} +``` + +trader_llama + +```json +"minecraft:balloonable": {} +``` + +wolf + +```json +"minecraft:balloonable": { + "mass": 0.8 +} +``` + +zoglin + +```json +"minecraft:balloonable": {} +``` + +zombie_horse + +```json +"minecraft:balloonable": {} +``` + +## barter + +piglin + +```json +"minecraft:barter": { + "barter_table": "loot_tables/entities/piglin_barter.json", + "cooldown_after_being_attacked": 20 +} +``` + +## behavior.admire_item + +piglin + +```json +"minecraft:behavior.admire_item": { + "priority": 2, + "admire_item_sound": "admire", + "sound_interval": { + "range_min": 2.0, + "range_max": 5.0 + }, + "on_admire_item_start": { + "event": "admire_item_started_event", + "target": "self" + }, + "on_admire_item_stop": { + "event": "admire_item_stopped_event", + "target": "self" + } +} +``` + +## behavior.avoid_block + +hoglin + +```json +"minecraft:behavior.avoid_block": { + "priority": 1, + "tick_interval": 5, + "search_range": 8, + "search_height": 4, + "walk_speed_modifier": 1, + "sprint_speed_modifier": 1, + "avoid_block_sound": "retreat", + "sound_interval": { + "range_min": 2.0, + "range_max": 5.0 + }, + "target_selection_method": "nearest", + "target_blocks": [ + "minecraft:warped_fungus", + "minecraft:portal", + "minecraft:respawn_anchor" + ], + "on_escape": [ + { + "event": "escaped_event", + "target": "self" + } + ] +} +``` + +piglin + +```json +"minecraft:behavior.avoid_block": { + "priority": 9, + "tick_interval": 5, + "search_range": 8, + "search_height": 4, + "sprint_speed_modifier": 1.1, + "target_selection_method": "nearest", + "target_blocks": [ + "minecraft:soul_fire", + "minecraft:soul_lantern", + "minecraft:soul_torch", + "minecraft:item.soul_campfire" + ], + "avoid_block_sound": "retreat", + "sound_interval": { + "range_min": 2.0, + "range_max": 5.0 + } +} +``` + +## behavior.avoid_mob_type + +cat + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 6, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 10, + "walk_speed_multiplier": 0.8, + "sprint_speed_multiplier": 1.33 + } + ] +} +``` + +creeper + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 3, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "ocelot" + }, + { + "test": "is_family", + "subject": "other", + "value": "cat" + } + ] + }, + "max_dist": 6, + "sprint_speed_multiplier": 1.2 + } + ] +} +``` + +dolphin + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 2, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "guardian_elder" + }, + { + "test": "is_family", + "subject": "other", + "value": "guardian" + } + ] + }, + "max_dist": 8, + "walk_speed_multiplier": 1.0, + "sprint_speed_multiplier": 1.0 + } + ], + "probability_per_strength": 0.14 +} +``` + +evocation_illager + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 5, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 8, + "walk_speed_multiplier": 0.6, + "sprint_speed_multiplier": 1.0 + } + ] +} +``` + +cod + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 1, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "axolotl" + } + ] + }, + "max_dist": 6, + "walk_speed_multiplier": 1.5, + "sprint_speed_multiplier": 2.0 + } + ] +} +``` + +fox + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 5, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "trusts", + "subject": "other", + "operator": "!=", + "value": true + }, + { + "test": "is_sneaking", + "subject": "other", + "operator": "!=", + "value": true + } + ] + }, + { + "test": "is_family", + "subject": "other", + "value": "polarbear" + }, + { + "test": "is_family", + "subject": "other", + "value": "wolf" + } + ] + }, + "max_dist": 10, + "walk_speed_multiplier": 1.0, + "sprint_speed_multiplier": 1.5 + } + ] +} +``` + +guardian + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 1, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 8, + "walk_speed_multiplier": 1, + "sprint_speed_multiplier": 1 + } + ] +} +``` + +hoglin + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 0, + "remove_target": true, + "entity_types": [ + { + "filters": { + "all_of": [ + { + "test": "has_target", + "subject": "other", + "value": true + }, + { + "test": "is_family", + "subject": "other", + "value": "piglin" + } + ] + }, + "check_if_outnumbered": true, + "max_dist": 10, + "sprint_speed_multiplier": 1.2 + } + ], + "avoid_mob_sound": "retreat", + "sound_interval": { + "range_min": 2.0, + "range_max": 5.0 + } +} +``` + +ocelot + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 5, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 10, + "walk_speed_multiplier": 0.8, + "sprint_speed_multiplier": 1.33 + } + ] +} +``` + +panda + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 5, + "max_dist": 16, + "max_flee": 20, + "entity_types": [ + { + "filters": { + "test": "is_family", + "operator": "!=", + "subject": "other", + "value": "panda" + }, + "max_dist": 16, + "sprint_speed_multiplier": 1.5 + } + ] +} +``` + +phantom + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 0, + "max_dist": 16.0, + "ignore_visibility": true, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "ocelot" + }, + { + "test": "is_family", + "subject": "other", + "value": "cat" + } + ] + }, + "max_dist": 16 + } + ] +} +``` + +piglin + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 4, + "remove_target": true, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "zombie_pigman" + } + ] + }, + "max_dist": 6 + }, + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "zoglin" + } + ] + }, + "max_dist": 6 + }, + { + "filters": { + "all_of": [ + { + "test": "has_target", + "subject": "other", + "value": true + }, + { + "test": "is_family", + "subject": "other", + "value": "hoglin" + } + ] + }, + "sprint_speed_multiplier": 1.2, + "check_if_outnumbered": true + } + ], + "on_escape_event": { + "event": "become_calm_event", + "target": "self" + }, + "avoid_mob_sound": "retreat", + "sound_interval": { + "range_min": 2.0, + "range_max": 5.0 + } +} +``` + +pufferfish + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 1, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "axolotl" + } + ] + }, + "max_dist": 6, + "walk_speed_multiplier": 1.5, + "sprint_speed_multiplier": 2.0 + } + ] +} +``` + +rabbit + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 4, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 8, + "walk_speed_multiplier": 1.5, + "sprint_speed_multiplier": 1.8 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "wolf" + }, + "max_dist": 4, + "walk_speed_multiplier": 1.5, + "sprint_speed_multiplier": 1.8 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "monster" + }, + "max_dist": 4, + "walk_speed_multiplier": 1.5, + "sprint_speed_multiplier": 1.5 + } + ] +} +``` + +salmon + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 1, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "axolotl" + } + ] + }, + "max_dist": 3, + "max_flee": 10, + "walk_speed_multiplier": 1.5, + "sprint_speed_multiplier": 2.0 + } + ] +} +``` + +skeleton + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 4, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "wolf" + }, + "max_dist": 6, + "walk_speed_multiplier": 1.2, + "sprint_speed_multiplier": 1.2 + } + ] +} +``` + +stray + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 4, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "wolf" + }, + "max_dist": 6, + "walk_speed_multiplier": 1.2, + "sprint_speed_multiplier": 1.2 + } + ] +} +``` + +tropicalfish + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 1, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "axolotl" + } + ] + }, + "max_dist": 6, + "walk_speed_multiplier": 1.5, + "sprint_speed_multiplier": 2.0 + } + ] +} +``` + +villager + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 3, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "zombie" + }, + { + "test": "is_family", + "subject": "other", + "value": "zombie_villager" + }, + { + "test": "is_family", + "subject": "other", + "value": "illager" + }, + { + "test": "is_family", + "subject": "other", + "value": "vex" + } + ] + }, + "max_dist": 8, + "walk_speed_multiplier": 0.6, + "sprint_speed_multiplier": 0.6 + } + ] +} +``` + +villager_v2 + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 4, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "zombie" + }, + { + "test": "is_family", + "subject": "other", + "value": "zombie_villager" + }, + { + "test": "is_family", + "subject": "other", + "value": "illager" + }, + { + "test": "is_family", + "subject": "other", + "value": "vex" + }, + { + "test": "is_family", + "subject": "other", + "value": "zoglin" + } + ] + }, + "max_dist": 8, + "walk_speed_multiplier": 0.6, + "sprint_speed_multiplier": 0.6 + } + ] +} +``` + +wandering_trader + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 2, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "zombie" + }, + { + "test": "is_family", + "subject": "other", + "value": "zombie_villager" + }, + { + "test": "is_family", + "subject": "other", + "value": "zombie_pigman" + }, + { + "test": "is_family", + "subject": "other", + "value": "illager" + }, + { + "test": "is_family", + "subject": "other", + "value": "vex" + }, + { + "test": "is_family", + "subject": "other", + "value": "zoglin" + } + ] + }, + "walk_speed_multiplier": 0.6, + "sprint_speed_multiplier": 0.6 + } + ], + "max_dist": 6 +} +``` + +wolf + +```json +"minecraft:behavior.avoid_mob_type": { + "priority": 3, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "llama" + }, + "max_dist": 24, + "walk_speed_multiplier": 1.5, + "sprint_speed_multiplier": 1.5 + } + ], + "probability_per_strength": 0.14 +} +``` + +## behavior.barter + +piglin + +```json +"minecraft:behavior.barter": { + "priority": 3 +} +``` + +## behavior.beg + +wolf + +```json +"minecraft:behavior.beg": { + "priority": 9, + "look_distance": 8, + "look_time": [ + 2, + 4 + ], + "items": [ + "bone", + "porkchop", + "cooked_porkchop", + "chicken", + "cooked_chicken", + "beef", + "cooked_beef", + "rotten_flesh", + "muttonraw", + "muttoncooked", + "rabbit", + "cooked_rabbit" + ] +} +``` + +## behavior.breed + +axolotl + +```json +"minecraft:behavior.breed": { + "priority": 1, + "speed_multiplier": 1.0 +} +``` + +bee + +```json +"minecraft:behavior.breed": { + "priority": 4, + "speed_multiplier": 1.0 +} +``` + +camel + +```json +"minecraft:behavior.breed": { + "priority": 2, + "speed_multiplier": 1.0 +} +``` + +cat + +```json +"minecraft:behavior.breed": { + "priority": 3, + "speed_multiplier": 1.0 +} +``` + +chicken + +```json +"minecraft:behavior.breed": { + "priority": 3, + "speed_multiplier": 1.0 +} +``` + +cow + +```json +"minecraft:behavior.breed": { + "priority": 3, + "speed_multiplier": 1.0 +} +``` + +```json +"minecraft:behavior.breed": { + "priority": 3, + "speed_multiplier": 1.0 +} +``` + +donkey + +```json +"minecraft:behavior.breed": { + "priority": 2, + "speed_multiplier": 1.0 +} +``` + +fox + +```json +"minecraft:behavior.breed": { + "priority": 3, + "speed_multiplier": 1.0 +} +``` + +frog + +```json +"minecraft:behavior.breed": { + "priority": 4 +} +``` + +goat + +```json +"minecraft:behavior.breed": { + "priority": 3, + "speed_multiplier": 0.6 +} +``` + +hoglin + +```json +"minecraft:behavior.breed": { + "priority": 3, + "speed_multiplier": 0.6 +} +``` + +horse + +```json +"minecraft:behavior.breed": { + "priority": 2, + "speed_multiplier": 1.0 +} +``` + +llama + +```json +"minecraft:behavior.breed": { + "priority": 4, + "speed_multiplier": 1.0 +} +``` + +mooshroom + +```json +"minecraft:behavior.breed": { + "priority": 3, + "speed_multiplier": 1.0 +} +``` + +```json +"minecraft:behavior.breed": { + "priority": 3, + "speed_multiplier": 1.0 +} +``` + +ocelot + +```json +"minecraft:behavior.breed": { + "priority": 3, + "speed_multiplier": 1.0 +} +``` + +panda + +```json +"minecraft:behavior.breed": { + "priority": 3, + "speed_multiplier": 1.0 +} +``` + +```json +"minecraft:behavior.breed": { + "priority": 3, + "speed_multiplier": 1.0 +} +``` + +pig + +```json +"minecraft:behavior.breed": { + "priority": 4, + "speed_multiplier": 1.0 +} +``` + +rabbit + +```json +"minecraft:behavior.breed": { + "priority": 2, + "speed_multiplier": 0.8 +} +``` + +```json +"minecraft:behavior.breed": { + "priority": 2, + "speed_multiplier": 1.0 +} +``` + +sheep + +```json +"minecraft:behavior.breed": { + "priority": 3, + "speed_multiplier": 1.0 +} +``` + +sniffer + +```json +"minecraft:behavior.breed": { + "priority": 3, + "speed_multiplier": 1.0 +} +``` + +strider + +```json +"minecraft:behavior.breed": { + "priority": 4, + "speed_multiplier": 1.0 +} +``` + +trader_llama + +```json +"minecraft:behavior.breed": { + "priority": 4, + "speed_multiplier": 1.0 +} +``` + +turtle + +```json +"minecraft:behavior.breed": { + "priority": 2, + "speed_multiplier": 1.0 +} +``` + +wolf + +```json +"minecraft:behavior.breed": { + "priority": 2, + "speed_multiplier": 1.0 +} +``` + +## behavior.celebrate + +evocation_illager + +```json +"minecraft:behavior.celebrate": { + "priority": 5, + "celebration_sound": "celebrate", + "sound_interval": { + "range_min": 2.0, + "range_max": 7.0 + }, + "jump_interval": { + "range_min": 1.0, + "range_max": 3.5 + }, + "duration": 30.0, + "on_celebration_end_event": { + "event": "minecraft:stop_celebrating", + "target": "self" + } +} +``` + +pillager + +```json +"minecraft:behavior.celebrate": { + "priority": 5, + "celebration_sound": "celebrate", + "sound_interval": { + "range_min": 2.0, + "range_max": 7.0 + }, + "jump_interval": { + "range_min": 1.0, + "range_max": 3.5 + }, + "duration": 30.0, + "on_celebration_end_event": { + "event": "minecraft:stop_celebrating", + "target": "self" + } +} +``` + +ravager + +```json +"minecraft:behavior.celebrate": { + "priority": 5, + "celebration_sound": "celebrate", + "sound_interval": { + "range_min": 2.0, + "range_max": 7.0 + }, + "jump_interval": { + "range_min": 1.0, + "range_max": 3.5 + }, + "duration": 30.0, + "on_celebration_end_event": { + "event": "minecraft:stop_celebrating", + "target": "self" + } +} +``` + +vindicator + +```json +"minecraft:behavior.celebrate": { + "priority": 5, + "celebration_sound": "celebrate", + "sound_interval": { + "range_min": 2.0, + "range_max": 7.0 + }, + "jump_interval": { + "range_min": 1.0, + "range_max": 3.5 + }, + "duration": 30.0, + "on_celebration_end_event": { + "event": "minecraft:stop_celebrating", + "target": "self" + } +} +``` + +witch + +```json +"minecraft:behavior.celebrate": { + "priority": 5, + "celebration_sound": "celebrate", + "sound_interval": { + "range_min": 2.0, + "range_max": 7.0 + }, + "jump_interval": { + "range_min": 1.0, + "range_max": 3.5 + }, + "duration": 30.0, + "on_celebration_end_event": { + "event": "minecraft:stop_celebrating", + "target": "self" + } +} +``` + +## behavior.celebrate_survive + +villager + +```json +"minecraft:behavior.celebrate_survive": { + "priority": 5, + "fireworks_interval": { + "range_min": 2.0, + "range_max": 7.0 + }, + "duration": 30.0, + "on_celebration_end_event": { + "event": "minecraft:stop_celebrating", + "target": "self" + } +} +``` + +villager_v2 + +```json +"minecraft:behavior.celebrate_survive": { + "priority": 5, + "fireworks_interval": { + "range_min": 2.0, + "range_max": 7.0 + }, + "duration": 30.0, + "on_celebration_end_event": { + "event": "minecraft:stop_celebrating", + "target": "self" + } +} +``` + +## behavior.charge_attack + +vex + +```json +"minecraft:behavior.charge_attack": { + "priority": 4 +} +``` + +## behavior.charge_held_item + +piglin + +```json +"minecraft:behavior.charge_held_item": { + "priority": 3, + "items": [ + "minecraft:arrow" + ] +} +``` + +pillager + +```json +"minecraft:behavior.charge_held_item": { + "priority": 3, + "items": [ + "minecraft:arrow" + ] +} +``` + +## behavior.circle_around_anchor + +phantom + +```json +"minecraft:behavior.circle_around_anchor": { + "priority": 3, + "radius_change": 1.0, + "radius_adjustment_chance": 0.004, + "height_adjustment_chance": 0.002857, + "goal_radius": 1.0, + "angle_change": 15.0, + "radius_range": [ + 5.0, + 15.0 + ], + "height_offset_range": [ + -4.0, + 5.0 + ], + "height_above_target_range": [ + 20.0, + 40.0 + ] +} +``` + +## behavior.controlled_by_player + +pig + +```json +"minecraft:behavior.controlled_by_player": { + "priority": 0 +} +``` + +strider + +```json +"minecraft:behavior.controlled_by_player": { + "priority": 0, + "mount_speed_multiplier": 1.45 +} +``` + +## behavior.croak + +frog + +```json +"minecraft:behavior.croak": { + "priority": 9, + "interval": [ + 10, + 20 + ], + "duration": 4.5, + "filters": { + "all_of": [ + { + "test": "in_water", + "value": false + }, + { + "test": "in_lava", + "value": false + } + ] + } +} +``` + +## behavior.defend_trusted_target + +fox + +```json +"minecraft:behavior.defend_trusted_target": { + "priority": 0, + "within_radius": 25, + "must_see": false, + "aggro_sound": "mad", + "sound_chance": 0.05, + "on_defend_start": { + "event": "minecraft:fox_configure_defending", + "target": "self" + } +} +``` + +## behavior.defend_village_target + +iron_golem + +```json +"minecraft:behavior.defend_village_target": { + "priority": 1, + "must_reach": true, + "attack_chance": 0.05, + "entity_types": { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "mob" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + } + ] + } + } +} +``` + +## behavior.delayed_attack + +ravager + +```json +"minecraft:behavior.delayed_attack": { + "priority": 4, + "attack_once": false, + "track_target": true, + "require_complete_path": false, + "random_stop_interval": 0, + "reach_multiplier": 1.5, + "speed_multiplier": 1.0, + "attack_duration": 0.75, + "hit_delay_pct": 0.5 +} +``` + +## behavior.dig + +warden + +```json +"minecraft:behavior.dig": { + "priority": 1, + "duration": 5.5, + "idle_time": 60.0, + "vibration_is_disturbance": true, + "suspicion_is_disturbance": true, + "digs_in_daylight": false, + "on_start": { + "event": "on_digging_event", + "target": "self" + } +} +``` + +## behavior.dragonchargeplayer + +ender_dragon + +```json +"minecraft:behavior.dragonchargeplayer": { + "priority": 1 +} +``` + +## behavior.dragondeath + +ender_dragon + +```json +"minecraft:behavior.dragondeath": { + "priority": 0 +} +``` + +## behavior.dragonflaming + +ender_dragon + +```json +"minecraft:behavior.dragonflaming": { + "priority": 1 +} +``` + +## behavior.dragonholdingpattern + +ender_dragon + +```json +"minecraft:behavior.dragonholdingpattern": { + "priority": 3 +} +``` + +## behavior.dragonlanding + +ender_dragon + +```json +"minecraft:behavior.dragonlanding": { + "priority": 0 +} +``` + +## behavior.dragonscanning + +ender_dragon + +```json +"minecraft:behavior.dragonscanning": { + "priority": 2 +} +``` + +## behavior.dragonstrafeplayer + +ender_dragon + +```json +"minecraft:behavior.dragonstrafeplayer": { + "priority": 2 +} +``` + +## behavior.dragontakeoff + +ender_dragon + +```json +"minecraft:behavior.dragontakeoff": { + "priority": 0 +} +``` + +## behavior.drink_milk + +wandering_trader + +```json +"minecraft:behavior.drink_milk": { + "priority": 5, + "filters": { + "all_of": [ + { + "test": "is_daytime", + "value": true + }, + { + "test": "is_visible", + "subject": "self", + "value": false + }, + { + "test": "is_avoiding_mobs", + "subject": "self", + "value": false + } + ] + } +} +``` + +## behavior.drink_potion + +wandering_trader + +```json +"minecraft:behavior.drink_potion": { + "priority": 1, + "speed_modifier": -0.2, + "potions": [ + { + "id": 7, + "chance": 1.0, + "filters": { + "all_of": [ + { + "any_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 18000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 12000 + } + ] + }, + { + "test": "is_visible", + "subject": "self", + "value": true + }, + { + "any_of": [ + { + "test": "is_avoiding_mobs", + "subject": "self", + "value": true + }, + { + "all_of": [ + { + "test": "has_component", + "subject": "self", + "value": "minecraft:angry" + }, + { + "test": "is_family", + "subject": "target", + "operator": "!=", + "value": "player" + } + ] + } + ] + } + ] + } + }, + { + "id": 8, + "chance": 1.0, + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 12000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 18000 + }, + { + "test": "is_visible", + "subject": "self", + "value": true + }, + { + "any_of": [ + { + "test": "is_avoiding_mobs", + "subject": "self", + "value": true + }, + { + "test": "has_component", + "subject": "self", + "value": "minecraft:angry" + } + ] + } + ] + } + } + ] +} +``` + +witch + +```json +"minecraft:behavior.drink_potion": { + "priority": 1, + "speed_modifier": -0.25, + "potions": [ + { + "id": 19, + "chance": 0.15, + "filters": { + "all_of": [ + { + "test": "is_underwater", + "subject": "self", + "value": true + }, + { + "none_of": [ + { + "test": "has_mob_effect", + "subject": "self", + "value": "water_breathing" + } + ] + } + ] + } + }, + { + "id": 12, + "chance": 0.15, + "filters": { + "all_of": [ + { + "any_of": [ + { + "test": "on_fire", + "subject": "self", + "value": true + }, + { + "test": "on_hot_block", + "subject": "self", + "value": true + }, + { + "test": "taking_fire_damage", + "subject": "self", + "value": true + } + ] + }, + { + "none_of": [ + { + "test": "has_mob_effect", + "subject": "self", + "value": "fire_resistance" + } + ] + } + ] + } + }, + { + "id": 21, + "chance": 0.05, + "filters": { + "all_of": [ + { + "test": "is_missing_health", + "subject": "self", + "value": true + } + ] + } + }, + { + "id": 14, + "chance": 0.25, + "filters": { + "all_of": [ + { + "test": "has_target", + "subject": "self", + "value": true + }, + { + "none_of": [ + { + "test": "has_mob_effect", + "subject": "self", + "value": "speed" + } + ] + }, + { + "test": "target_distance", + "subject": "self", + "value": 11.0, + "operator": ">=" + } + ] + } + } + ] +} +``` + +## behavior.drop_item_for + +cat + +```json +"minecraft:behavior.drop_item_for": { + "priority": 1, + "seconds_before_pickup": 0.0, + "cooldown": 0.25, + "drop_item_chance": 0.7, + "offering_distance": 5.0, + "minimum_teleport_distance": 2.0, + "max_head_look_at_height": 10.0, + "target_range": [ + 5.0, + 5.0, + 5.0 + ], + "teleport_offset": [ + 0.0, + 1.0, + 0.0 + ], + "time_of_day_range": [ + 0.74999, + 0.8 + ], + "speed_multiplier": 1.0, + "search_range": 5, + "search_height": 2, + "search_count": 0, + "goal_radius": 1.0, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 6 + } + ], + "loot_table": "loot_tables/entities/cat_gift.json", + "on_drop_attempt": { + "event": "minecraft:cat_gifted_owner", + "target": "self" + } +} +``` + +## behavior.eat_block + +sheep + +```json +"minecraft:behavior.eat_block": { + "priority": 6, + "success_chance": "query.is_baby ? 0.02 : 0.001", + "time_until_eat": 1.8, + "eat_and_replace_block_pairs": [ + { + "eat_block": "grass", + "replace_block": "dirt" + }, + { + "eat_block": "tallgrass", + "replace_block": "air" + } + ], + "on_eat": { + "event": "minecraft:on_eat_block", + "target": "self" + } +} +``` + +## behavior.eat_carried_item + +fox + +```json +"minecraft:behavior.eat_carried_item": { + "priority": 12, + "delay_before_eating": 28 +} +``` + +## behavior.eat_mob + +frog + +```json +"minecraft:behavior.eat_mob": { + "priority": 7, + "run_speed": 2.0, + "eat_animation_time": 0.3, + "pull_in_force": 0.75, + "reach_mob_distance": 1.75, + "eat_mob_sound": "tongue", + "loot_table": "loot_tables/entities/frog.json" +} +``` + +## behavior.emerge + +warden + +```json +"minecraft:behavior.emerge": { + "duration": 7.0, + "on_done": { + "event": "minecraft:emerged", + "target": "self" + } +} +``` + +## behavior.enderman_leave_block + +enderman + +```json +"minecraft:behavior.enderman_leave_block": { + "priority": 10 +} +``` + +## behavior.enderman_take_block + +enderman + +```json +"minecraft:behavior.enderman_take_block": { + "priority": 11 +} +``` + +## behavior.equip_item + +drowned + +```json +"minecraft:behavior.equip_item": { + "priority": 3 +} +``` + +fox + +```json +"minecraft:behavior.equip_item": { + "priority": 2 +} +``` + +husk + +```json +"minecraft:behavior.equip_item": { + "priority": 2 +} +``` + +piglin + +```json +"minecraft:behavior.equip_item": { + "priority": 5 +} +``` + +pillager + +```json +"minecraft:behavior.equip_item": { + "priority": 3 +} +``` + +skeleton + +```json +"minecraft:behavior.equip_item": { + "priority": 3 +} +``` + +stray + +```json +"minecraft:behavior.equip_item": { + "priority": 3 +} +``` + +wither_skeleton + +```json +"minecraft:behavior.equip_item": { + "priority": 3 +} +``` + +zombie + +```json +"minecraft:behavior.equip_item": { + "priority": 2 +} +``` + +zombie_pigman + +```json +"minecraft:behavior.equip_item": { + "priority": 3 +} +``` + +zombie_villager + +```json +"minecraft:behavior.equip_item": { + "priority": 3 +} +``` + +zombie_villager_v2 + +```json +"minecraft:behavior.equip_item": { + "priority": 3 +} +``` + +## behavior.explore_outskirts + +villager_v2 + +```json +"minecraft:behavior.explore_outskirts": {} +``` + +```json +"minecraft:behavior.explore_outskirts": { + "priority": 9, + "next_xz": 5, + "next_y": 3, + "min_wait_time": 3.0, + "max_wait_time": 10.0, + "max_travel_time": 60.0, + "speed_multiplier": 0.6, + "explore_dist": 6.0, + "min_perimeter": 1.0, + "min_dist_from_target": 2.5, + "timer_ratio": 2.0, + "dist_from_boundary": [ + 5.0, + 0.0, + 5.0 + ] +} +``` + +## behavior.feeling_happy + +sniffer + +```json +"minecraft:behavior.feeling_happy": { + "priority": 5, + "cooldown_range": 0.0, + "duration_range": [ + 2.0, + 5.0 + ], + "on_end": { + "event": "on_feeling_happy_end", + "target": "self" + } +} +``` + +## behavior.fertilize_farm_block + +villager_v2 + +```json +"minecraft:behavior.fertilize_farm_block": { + "priority": 8 +} +``` + +## behavior.find_cover + +fox + +```json +"minecraft:behavior.find_cover": { + "priority": 0, + "speed_multiplier": 1, + "cooldown_time": 0.0 +} +``` + +```json +"minecraft:behavior.find_cover": { + "priority": 9, + "speed_multiplier": 1, + "cooldown_time": 5.0 +} +``` + +## behavior.find_mount + +husk + +```json +"minecraft:behavior.find_mount": { + "priority": 1, + "within_radius": 16 +} +``` + +parrot + +```json +"minecraft:behavior.find_mount": { + "priority": 3, + "within_radius": 16, + "avoid_water": true, + "start_delay": 100, + "target_needed": false, + "mount_distance": 2.0 +} +``` + +piglin + +```json +"minecraft:behavior.find_mount": { + "priority": 1, + "within_radius": 16, + "start_delay": 15, + "max_failed_attempts": 20 +} +``` + +zombie + +```json +"minecraft:behavior.find_mount": { + "priority": 1, + "within_radius": 16, + "start_delay": 15, + "max_failed_attempts": 20 +} +``` + +zombie_villager + +```json +"minecraft:behavior.find_mount": { + "priority": 1, + "within_radius": 16 +} +``` + +zombie_villager_v2 + +```json +"minecraft:behavior.find_mount": { + "priority": 1, + "within_radius": 16 +} +``` + +## behavior.find_underwater_treasure + +dolphin + +```json +"minecraft:behavior.find_underwater_treasure": { + "priority": 2, + "speed_multiplier": 2.0, + "search_range": 30, + "stop_distance": 50 +} +``` + +## behavior.flee_sun + +drowned + +```json +"minecraft:behavior.flee_sun": { + "priority": 2, + "speed_multiplier": 1 +} +``` + +skeleton + +```json +"minecraft:behavior.flee_sun": { + "priority": 2, + "speed_multiplier": 1 +} +``` + +stray + +```json +"minecraft:behavior.flee_sun": { + "priority": 2, + "speed_multiplier": 1 +} +``` + +zombie_villager + +```json +"minecraft:behavior.flee_sun": { + "priority": 4, + "speed_multiplier": 1 +} +``` + +zombie_villager_v2 + +```json +"minecraft:behavior.flee_sun": { + "priority": 4, + "speed_multiplier": 1 +} +``` + +## behavior.float + +allay + +```json +"minecraft:behavior.float": { + "priority": 7 +} +``` + +bat + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +bee + +```json +"minecraft:behavior.float": { + "priority": 19 +} +``` + +blaze + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +camel + +```json +"minecraft:behavior.float": { + "priority": 0, + "sink_with_passengers": true +} +``` + +cat + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +cave_spider + +```json +"minecraft:behavior.float": { + "priority": 1 +} +``` + +chicken + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +cow + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +creeper + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +donkey + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +enderman + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +endermite + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +evocation_illager + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +fox + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +ghast + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +goat + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +horse + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +llama + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +mooshroom + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +mule + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +ocelot + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +panda + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +parrot + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +pig + +```json +"minecraft:behavior.float": { + "priority": 2 +} +``` + +pillager + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +polar_bear + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +rabbit + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +ravager + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +sheep + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +silverfish + +```json +"minecraft:behavior.float": { + "priority": 1 +} +``` + +sniffer + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +spider + +```json +"minecraft:behavior.float": { + "priority": 1 +} +``` + +trader_llama + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +vex + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +villager + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +villager_v2 + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +vindicator + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +wandering_trader + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +warden + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +witch + +```json +"minecraft:behavior.float": { + "priority": 1 +} +``` + +wither + +```json +"minecraft:behavior.float": { + "priority": 1 +} +``` + +wolf + +```json +"minecraft:behavior.float": { + "priority": 0 +} +``` + +## behavior.float_wander + +bat + +```json +"minecraft:behavior.float_wander": { + "xz_dist": 10, + "y_dist": 7, + "y_offset": -2.0, + "random_reselect": true, + "float_duration": [ + 0.1, + 0.35 + ] +} +``` + +ghast + +```json +"minecraft:behavior.float_wander": { + "priority": 2, + "must_reach": true +} +``` + +## behavior.follow_caravan + +llama + +```json +"minecraft:behavior.follow_caravan": { + "priority": 3, + "speed_multiplier": 2.1, + "entity_count": 10, + "entity_types": { + "filters": { + "test": "is_family", + "subject": "other", + "value": "llama" + } + } +} +``` + +trader_llama + +```json +"minecraft:behavior.follow_caravan": { + "priority": 3, + "speed_multiplier": 2.1, + "entity_count": 10, + "entity_types": { + "filters": { + "test": "is_family", + "subject": "other", + "value": "llama" + } + } +} +``` + +## behavior.follow_mob + +parrot + +```json +"minecraft:behavior.follow_mob": { + "priority": 3, + "speed_multiplier": 1.0, + "stop_distance": 3, + "search_range": 20 +} +``` + +## behavior.follow_owner + +allay + +```json +"minecraft:behavior.follow_owner": { + "priority": 6, + "speed_multiplier": 8, + "start_distance": 16, + "stop_distance": 4, + "can_teleport": false, + "ignore_vibration": false +} +``` + +cat + +```json +"minecraft:behavior.follow_owner": { + "priority": 4, + "speed_multiplier": 1.0, + "start_distance": 10, + "stop_distance": 2 +} +``` + +ocelot + +```json +"minecraft:behavior.follow_owner": { + "priority": 4, + "speed_multiplier": 1.0, + "start_distance": 10, + "stop_distance": 2 +} +``` + +parrot + +```json +"minecraft:behavior.follow_owner": { + "priority": 2, + "speed_multiplier": 1.0, + "start_distance": 5, + "stop_distance": 1 +} +``` + +wolf + +```json +"minecraft:behavior.follow_owner": { + "priority": 6, + "speed_multiplier": 1.0, + "start_distance": 10, + "stop_distance": 2 +} +``` + +## behavior.follow_parent + +axolotl + +```json +"minecraft:behavior.follow_parent": { + "priority": 5, + "speed_multiplier": 1.1 +} +``` + +bee + +```json +"minecraft:behavior.follow_parent": { + "priority": 11, + "speed_multiplier": 1.1 +} +``` + +camel + +```json +"minecraft:behavior.follow_parent": { + "priority": 5, + "speed_multiplier": 2.5 +} +``` + +chicken + +```json +"minecraft:behavior.follow_parent": { + "priority": 5, + "speed_multiplier": 1.1 +} +``` + +cow + +```json +"minecraft:behavior.follow_parent": { + "priority": 5, + "speed_multiplier": 1.1 +} +``` + +```json +"minecraft:behavior.follow_parent": { + "priority": 6, + "speed_multiplier": 1.1 +} +``` + +dolphin + +```json +"minecraft:behavior.follow_parent": { + "priority": 4, + "speed_multiplier": 1.1 +} +``` + +donkey + +```json +"minecraft:behavior.follow_parent": { + "priority": 4, + "speed_multiplier": 1.0 +} +``` + +fox + +```json +"minecraft:behavior.follow_parent": { + "priority": 9, + "speed_multiplier": 1.1 +} +``` + +goat + +```json +"minecraft:behavior.follow_parent": { + "priority": 6, + "speed_multiplier": 1 +} +``` + +hoglin + +```json +"minecraft:behavior.follow_parent": { + "priority": 6, + "speed_multiplier": 1 +} +``` + +horse + +```json +"minecraft:behavior.follow_parent": { + "priority": 4, + "speed_multiplier": 1.0 +} +``` + +llama + +```json +"minecraft:behavior.follow_parent": { + "priority": 5, + "speed_multiplier": 1.0 +} +``` + +mooshroom + +```json +"minecraft:behavior.follow_parent": { + "priority": 5, + "speed_multiplier": 1.1 +} +``` + +```json +"minecraft:behavior.follow_parent": { + "priority": 6, + "speed_multiplier": 1.1 +} +``` + +mule + +```json +"minecraft:behavior.follow_parent": { + "priority": 4, + "speed_multiplier": 1.0 +} +``` + +panda + +```json +"minecraft:behavior.follow_parent": { + "priority": 13, + "speed_multiplier": 1.1 +} +``` + +pig + +```json +"minecraft:behavior.follow_parent": { + "priority": 6, + "speed_multiplier": 1.1 +} +``` + +polar_bear + +```json +"minecraft:behavior.follow_parent": { + "priority": 4, + "speed_multiplier": 1.25 +} +``` + +rabbit + +```json +"minecraft:behavior.follow_parent": { + "priority": 6, + "speed_multiplier": 1.1 +} +``` + +sheep + +```json +"minecraft:behavior.follow_parent": { + "priority": 5, + "speed_multiplier": 1.1 +} +``` + +```json +"minecraft:behavior.follow_parent": { + "priority": 6, + "speed_multiplier": 1.1 +} +``` + +skeleton_horse + +```json +"minecraft:behavior.follow_parent": { + "priority": 4, + "speed_multiplier": 1.0 +} +``` + +strider + +```json +"minecraft:behavior.follow_parent": { + "priority": 6, + "speed_multiplier": 1.1 +} +``` + +trader_llama + +```json +"minecraft:behavior.follow_parent": { + "priority": 5, + "speed_multiplier": 1.0 +} +``` + +zombie_horse + +```json +"minecraft:behavior.follow_parent": { + "priority": 4, + "speed_multiplier": 1.0 +} +``` + +## behavior.follow_target_captain + +pillager + +```json +"minecraft:behavior.follow_target_captain": { + "priority": 5, + "speed_multiplier": 0.8, + "within_radius": 64, + "follow_distance": 5 +} +``` + +vindicator + +```json +"minecraft:behavior.follow_target_captain": { + "priority": 5, + "speed_multiplier": 0.8, + "within_radius": 64, + "follow_distance": 5 +} +``` + +## behavior.go_and_give_items_to_noteblock + +allay + +```json +"minecraft:behavior.go_and_give_items_to_noteblock": { + "priority": 3, + "run_speed": 8, + "throw_sound": "item_thrown", + "on_item_throw": [ + { + "event": "pickup_item_delay", + "target": "self" + } + ] +} +``` + +## behavior.go_and_give_items_to_owner + +allay + +```json +"minecraft:behavior.go_and_give_items_to_owner": { + "priority": 4, + "run_speed": 8, + "throw_sound": "item_thrown", + "on_item_throw": [ + { + "event": "pickup_item_delay", + "target": "self" + } + ] +} +``` + +## behavior.go_home + +bee + +```json +"minecraft:behavior.go_home": { + "priority": 4, + "speed_multiplier": 1.0, + "interval": 1, + "goal_radius": 1.2, + "on_home": [ + { + "filters": { + "any_of": [ + { + "test": "is_block", + "subject": "block", + "value": "minecraft:bee_nest" + }, + { + "test": "is_block", + "subject": "block", + "value": "minecraft:beehive" + } + ] + }, + "event": "minecraft:bee_returned_to_hive", + "target": "block" + }, + { + "filters": { + "all_of": [ + { + "test": "is_block", + "subject": "block", + "operator": "!=", + "value": "minecraft:bee_nest" + }, + { + "test": "is_block", + "subject": "block", + "operator": "!=", + "value": "minecraft:beehive" + } + ] + }, + "event": "find_hive_event", + "target": "self" + } + ], + "on_failed": [ + { + "event": "find_hive_event", + "target": "self" + } + ] +} +``` + +piglin_brute + +```json +"minecraft:behavior.go_home": { + "priority": 6, + "interval": 200, + "speed_multiplier": 0.6, + "goal_radius": 4.0, + "on_failed": [ + { + "event": "go_back_to_spawn_failed", + "target": "self" + } + ] +} +``` + +turtle + +```json +"minecraft:behavior.go_home": { + "priority": 1, + "speed_multiplier": 1.0, + "interval": 700, + "goal_radius": 4.0, + "on_home": [ + { + "event": "minecraft:go_lay_egg", + "target": "self" + } + ] +} +``` + +## behavior.guardian_attack + +elder_guardian + +```json +"minecraft:behavior.guardian_attack": { + "priority": 4 +} +``` + +guardian + +```json +"minecraft:behavior.guardian_attack": { + "priority": 4 +} +``` + +```json +"minecraft:behavior.guardian_attack": { + "priority": 4 +} +``` + +## behavior.harvest_farm_block + +villager + +```json +"minecraft:behavior.harvest_farm_block": { + "priority": 9, + "speed_multiplier": 0.5 +} +``` + +villager_v2 + +```json +"minecraft:behavior.harvest_farm_block": {} +``` + +```json +"minecraft:behavior.harvest_farm_block": { + "priority": 7 +} +``` + +## behavior.hide + +villager_v2 + +```json +"minecraft:behavior.hide": { + "priority": 0, + "speed_multiplier": 0.8, + "poi_type": "bed", + "duration": 30.0 +} +``` + +## behavior.hold_ground + +pillager + +```json +"minecraft:behavior.hold_ground": { + "priority": 5, + "min_radius": 10, + "broadcast": true, + "broadcast_range": 8, + "within_radius_event": { + "event": "minecraft:ranged_mode", + "target": "self" + } +} +``` + +```json +"minecraft:behavior.hold_ground": { + "priority": 6, + "min_radius": 10, + "broadcast": true, + "broadcast_range": 8, + "within_radius_event": { + "event": "minecraft:ranged_mode", + "target": "self" + } +} +``` + +## behavior.hurt_by_target + +bee + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +blaze + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +cave_spider + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +creeper + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 2 +} +``` + +dolphin + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +drowned + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +enderman + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 3 +} +``` + +evocation_illager + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +ghast + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +hoglin + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 2 +} +``` + +husk + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +iron_golem + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 2, + "entity_types": { + "filters": { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "creeper" + } + } +} +``` + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 2, + "entity_types": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "creeper" + } + ] + } + } +} +``` + +llama + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1, + "hurt_owner": true +} +``` + +panda + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +piglin + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +piglin_brute + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +pillager + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1, + "entity_types": { + "filters": { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "illager" + }, + "max_dist": 64 + } +} +``` + +polar_bear + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +ravager + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 2, + "entity_types": { + "filters": { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "illager" + }, + "max_dist": 64 + } +} +``` + +shulker + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 2, + "entity_types": { + "filters": { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "shulker" + } + } +} +``` + +silverfish + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1, + "alert_same_type": true +} +``` + +skeleton + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +spider + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +stray + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +trader_llama + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1, + "hurt_owner": true, + "entity_types": { + "filters": { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "trader_llama" + } + } +} +``` + +turtle + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +vex + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +vindicator + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +witch + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +wither + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 2 +} +``` + +wither_skeleton + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +wolf + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 3 +} +``` + +zoglin + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +zombie + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +zombie_pigman + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +zombie_villager + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +zombie_villager_v2 + +```json +"minecraft:behavior.hurt_by_target": { + "priority": 1 +} +``` + +## behavior.inspect_bookshelf + +villager_v2 + +```json +"minecraft:behavior.inspect_bookshelf": {} +``` + +```json +"minecraft:behavior.inspect_bookshelf": { + "priority": 8, + "speed_multiplier": 0.6, + "search_range": 4, + "search_height": 3, + "goal_radius": 0.8, + "search_count": 0 +} +``` + +## behavior.investigate_suspicious_location + +warden + +```json +"minecraft:behavior.investigate_suspicious_location": { + "priority": 5, + "speed_multiplier": 0.7 +} +``` + +## behavior.jump_to_block + +frog + +```json +"minecraft:behavior.jump_to_block": { + "priority": 10, + "search_width": 8, + "search_height": 4, + "minimum_path_length": 2, + "minimum_distance": 1, + "scale_factor": 0.6, + "max_velocity": 1, + "cooldown_range": [ + 5, + 7 + ], + "preferred_blocks": [ + "minecraft:waterlily", + "minecraft:big_dripleaf" + ], + "preferred_blocks_chance": 0.5, + "forbidden_blocks": [ + "minecraft:water" + ] +} +``` + +goat + +```json +"minecraft:behavior.jump_to_block": { + "priority": 8, + "search_width": 10, + "search_height": 10, + "minimum_path_length": 8, + "minimum_distance": 1, + "scale_factor": 0.6, + "cooldown_range": [ + 30, + 60 + ] +} +``` + +## behavior.knockback_roar + +ravager + +```json +"minecraft:behavior.knockback_roar": { + "priority": 1, + "duration": 1, + "attack_time": 0.5, + "knockback_damage": 6, + "knockback_horizontal_strength": 3, + "knockback_vertical_strength": 3, + "knockback_range": 4, + "knockback_filters": { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "ravager" + }, + "damage_filters": { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "illager" + }, + "on_roar_end": { + "event": "minecraft:end_roar" + }, + "cooldown_time": 0.1 +} +``` + +## behavior.lay_down + +panda + +```json +"minecraft:behavior.lay_down": { + "priority": 5, + "interval": 400, + "random_stop_interval": 2000 +} +``` + +## behavior.lay_egg + +frog + +```json +"minecraft:behavior.lay_egg": { + "priority": 2, + "speed_multiplier": 1.0, + "search_range": 10, + "search_height": 3, + "goal_radius": 1.7, + "target_blocks": [ + "minecraft:water" + ], + "target_materials_above_block": [ + "Air" + ], + "allow_laying_from_below": true, + "use_default_animation": false, + "lay_seconds": 2, + "egg_type": "minecraft:frog_spawn", + "lay_egg_sound": "lay_spawn", + "on_lay": { + "event": "laid_egg", + "target": "self" + } +} +``` + +turtle + +```json +"minecraft:behavior.lay_egg": { + "priority": 1, + "speed_multiplier": 1.0, + "search_range": 16, + "search_height": 4, + "goal_radius": 1.5, + "on_lay": { + "event": "minecraft:laid_egg", + "target": "self" + } +} +``` + +## behavior.leap_at_target + +cat + +```json +"minecraft:behavior.leap_at_target": { + "priority": 3, + "target_dist": 0.3 +} +``` + +cave_spider + +```json +"minecraft:behavior.leap_at_target": { + "priority": 4, + "yd": 0.4, + "must_be_on_ground": false +} +``` + +```json +"minecraft:behavior.leap_at_target": { + "priority": 4, + "yd": 0.4, + "must_be_on_ground": false +} +``` + +ocelot + +```json +"minecraft:behavior.leap_at_target": { + "priority": 3, + "target_dist": 0.3 +} +``` + +spider + +```json +"minecraft:behavior.leap_at_target": { + "priority": 4, + "yd": 0.4, + "must_be_on_ground": false +} +``` + +wolf + +```json +"minecraft:behavior.leap_at_target": { + "priority": 4, + "target_dist": 0.4 +} +``` + +## behavior.look_at_entity + +evocation_illager + +```json +"minecraft:behavior.look_at_entity": { + "priority": 10, + "look_distance": 8.0, + "filters": { + "test": "is_family", + "subject": "other", + "value": "mob" + } +} +``` + +ravager + +```json +"minecraft:behavior.look_at_entity": { + "priority": 10, + "look_distance": 8, + "angle_of_view_horizontal": 45, + "filters": { + "test": "is_family", + "subject": "other", + "value": "mob" + } +} +``` + +vex + +```json +"minecraft:behavior.look_at_entity": { + "priority": 9, + "look_distance": 6.0, + "probability": 0.02, + "filters": { + "test": "is_family", + "subject": "other", + "value": "mob" + } +} +``` + +## behavior.look_at_player + +allay + +```json +"minecraft:behavior.look_at_player": { + "priority": 8, + "target_distance": 6.0, + "probability": 0.02 +} +``` + +axolotl + +```json +"minecraft:behavior.look_at_player": { + "priority": 10, + "target_distance": 6.0, + "probability": 0.02 +} +``` + +camel + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "target_distance": 6.0, + "probability": 0.02 +} +``` + +cat + +```json +"minecraft:behavior.look_at_player": { + "priority": 9 +} +``` + +cave_spider + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +chicken + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +cow + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +creeper + +```json +"minecraft:behavior.look_at_player": { + "priority": 6, + "look_distance": 8 +} +``` + +dolphin + +```json +"minecraft:behavior.look_at_player": { + "priority": 8, + "look_distance": 6 +} +``` + +donkey + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +drowned + +```json +"minecraft:behavior.look_at_player": { + "priority": 8, + "look_distance": 6, + "probability": 0.02 +} +``` + +elder_guardian + +```json +"minecraft:behavior.look_at_player": { + "priority": 8, + "look_distance": 12.0, + "probability": 0.01 +} +``` + +enderman + +```json +"minecraft:behavior.look_at_player": { + "priority": 8, + "look_distance": 8.0, + "probability": 8.0 +} +``` + +evocation_illager + +```json +"minecraft:behavior.look_at_player": { + "priority": 9, + "look_distance": 3.0, + "probability": 1.0 +} +``` + +fox + +```json +"minecraft:behavior.look_at_player": { + "priority": 14, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +frog + +```json +"minecraft:behavior.look_at_player": { + "priority": 12, + "target_distance": 6.0, + "probability": 0.02 +} +``` + +goat + +```json +"minecraft:behavior.look_at_player": { + "priority": 10, + "look_distance": 6, + "probability": 0.02 +} +``` + +guardian + +```json +"minecraft:behavior.look_at_player": { + "priority": 8, + "look_distance": 12.0, + "probability": 0.01 +} +``` + +hoglin + +```json +"minecraft:behavior.look_at_player": { + "priority": 8, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +horse + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +husk + +```json +"minecraft:behavior.look_at_player": { + "priority": 8, + "look_distance": 6, + "probability": 0.02 +} +``` + +iron_golem + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +llama + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +mooshroom + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +mule + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +npc + +```json +"minecraft:behavior.look_at_player": { + "priority": 0, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +ocelot + +```json +"minecraft:behavior.look_at_player": { + "priority": 9 +} +``` + +panda + +```json +"minecraft:behavior.look_at_player": { + "priority": 8, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +parrot + +```json +"minecraft:behavior.look_at_player": { + "priority": 1, + "look_distance": 8.0 +} +``` + +pig + +```json +"minecraft:behavior.look_at_player": { + "priority": 8, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +piglin + +```json +"minecraft:behavior.look_at_player": { + "priority": 11, + "look_distance": 8 +} +``` + +piglin_brute + +```json +"minecraft:behavior.look_at_player": { + "priority": 8, + "look_distance": 8 +} +``` + +pillager + +```json +"minecraft:behavior.look_at_player": { + "priority": 9, + "look_distance": 8 +} +``` + +polar_bear + +```json +"minecraft:behavior.look_at_player": { + "priority": 6, + "target_distance": 6.0, + "probability": 0.02 +} +``` + +rabbit + +```json +"minecraft:behavior.look_at_player": { + "priority": 11 +} +``` + +ravager + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 6, + "angle_of_view_horizontal": 45, + "probability": 1 +} +``` + +sheep + +```json +"minecraft:behavior.look_at_player": { + "priority": 8, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +shulker + +```json +"minecraft:behavior.look_at_player": { + "priority": 1, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +skeleton + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 8 +} +``` + +skeleton_horse + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +sniffer + +```json +"minecraft:behavior.look_at_player": { + "priority": 8, + "target_distance": 6.0, + "probability": 0.02 +} +``` + +snow_golem + +```json +"minecraft:behavior.look_at_player": { + "priority": 3, + "look_distance": 6.0 +} +``` + +spider + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +stray + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 8 +} +``` + +strider + +```json +"minecraft:behavior.look_at_player": { + "priority": 9, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +tadpole + +```json +"minecraft:behavior.look_at_player": { + "priority": 3, + "target_distance": 6.0, + "probability": 0.02 +} +``` + +trader_llama + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +turtle + +```json +"minecraft:behavior.look_at_player": { + "priority": 8, + "target_distance": 6.0, + "probability": 0.02 +} +``` + +vex + +```json +"minecraft:behavior.look_at_player": { + "priority": 9, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +villager + +```json +"minecraft:behavior.look_at_player": { + "priority": 12, + "look_distance": 8, + "probability": 0.02 +} +``` + +villager_v2 + +```json +"minecraft:behavior.look_at_player": { + "priority": 9, + "look_distance": 8, + "probability": 0.02 +} +``` + +vindicator + +```json +"minecraft:behavior.look_at_player": { + "priority": 10, + "look_distance": 8, + "probability": 0.02 +} +``` + +wandering_trader + +```json +"minecraft:behavior.look_at_player": { + "priority": 8, + "look_distance": 8, + "probability": 0.02 +} +``` + +witch + +```json +"minecraft:behavior.look_at_player": { + "priority": 5, + "look_distance": 8.0 +} +``` + +wither + +```json +"minecraft:behavior.look_at_player": { + "priority": 6, + "look_distance": 8 +} +``` + +wither_skeleton + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 8 +} +``` + +wolf + +```json +"minecraft:behavior.look_at_player": { + "priority": 6, + "target_distance": 6.0, + "probability": 0.02 +} +``` + +zoglin + +```json +"minecraft:behavior.look_at_player": { + "priority": 8, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +zombie + +```json +"minecraft:behavior.look_at_player": { + "priority": 8, + "look_distance": 6, + "probability": 0.02 +} +``` + +zombie_horse + +```json +"minecraft:behavior.look_at_player": { + "priority": 7, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +zombie_pigman + +```json +"minecraft:behavior.look_at_player": { + "priority": 8, + "look_distance": 6.0, + "probability": 0.02 +} +``` + +zombie_villager + +```json +"minecraft:behavior.look_at_player": { + "priority": 10, + "look_distance": 6, + "probability": 0.02 +} +``` + +zombie_villager_v2 + +```json +"minecraft:behavior.look_at_player": { + "priority": 10, + "look_distance": 6, + "probability": 0.02 +} +``` + +## behavior.look_at_target + +wither + +```json +"minecraft:behavior.look_at_target": { + "priority": 5 +} +``` + +## behavior.look_at_trading_player + +villager + +```json +"minecraft:behavior.look_at_trading_player": { + "priority": 2 +} +``` + +villager_v2 + +```json +"minecraft:behavior.look_at_trading_player": { + "priority": 7 +} +``` + +wandering_trader + +```json +"minecraft:behavior.look_at_trading_player": { + "priority": 4 +} +``` + +## behavior.make_love + +villager + +```json +"minecraft:behavior.make_love": { + "priority": 6 +} +``` + +villager_v2 + +```json +"minecraft:behavior.make_love": { + "priority": 5 +} +``` + +## behavior.melee_attack + +axolotl + +```json +"minecraft:behavior.melee_attack": { + "priority": 4, + "on_kill": { + "event": "killed_enemy_event", + "target": "self" + } +} +``` + +bee + +```json +"minecraft:behavior.melee_attack": { + "priority": 2, + "attack_once": true, + "speed_multiplier": 1.4, + "on_attack": { + "event": "countdown_to_perish_event", + "target": "self" + } +} +``` + +blaze + +```json +"minecraft:behavior.melee_attack": { + "priority": 3 +} +``` + +cave_spider + +```json +"minecraft:behavior.melee_attack": { + "priority": 3, + "track_target": true, + "random_stop_interval": 100, + "reach_multiplier": 0.8 +} +``` + +```json +"minecraft:behavior.melee_attack": { + "priority": 3, + "track_target": true, + "reach_multiplier": 1.4 +} +``` + +creeper + +```json +"minecraft:behavior.melee_attack": { + "priority": 4, + "speed_multiplier": 1.25, + "track_target": false, + "reach_multiplier": 0.0 +} +``` + +dolphin + +```json +"minecraft:behavior.melee_attack": { + "priority": 2, + "track_target": true +} +``` + +drowned + +```json +"minecraft:behavior.melee_attack": { + "priority": 3, + "speed_multiplier": 1, + "track_target": false, + "require_complete_path": true +} +``` + +enderman + +```json +"minecraft:behavior.melee_attack": { + "priority": 2 +} +``` + +endermite + +```json +"minecraft:behavior.melee_attack": { + "priority": 3, + "track_target": true +} +``` + +fox + +```json +"minecraft:behavior.melee_attack": { + "priority": 10, + "track_target": true, + "require_complete_path": true, + "reach_multiplier": 1.5 +} +``` + +```json +"minecraft:behavior.melee_attack": { + "priority": 1, + "track_target": true, + "require_complete_path": true, + "reach_multiplier": 1.5 +} +``` + +hoglin + +```json +"minecraft:behavior.melee_attack": { + "priority": 4, + "speed_multiplier": 1, + "track_target": true, + "reach_multiplier": 1.0, + "cooldown_time": 0.75 +} +``` + +```json +"minecraft:behavior.melee_attack": { + "priority": 4, + "speed_multiplier": 1, + "track_target": true, + "reach_multiplier": 2.15, + "cooldown_time": 2 +} +``` + +husk + +```json +"minecraft:behavior.melee_attack": { + "priority": 3 +} +``` + +iron_golem + +```json +"minecraft:behavior.melee_attack": { + "priority": 1, + "track_target": true +} +``` + +panda + +```json +"minecraft:behavior.melee_attack": { + "priority": 2, + "attack_once": true, + "track_target": true, + "reach_multiplier": 1.0 +} +``` + +```json +"minecraft:behavior.melee_attack": { + "priority": 2, + "track_target": true, + "reach_multiplier": 1.0 +} +``` + +piglin + +```json +"minecraft:behavior.melee_attack": { + "priority": 8, + "speed_multiplier": 1.0, + "track_target": true +} +``` + +piglin_brute + +```json +"minecraft:behavior.melee_attack": { + "priority": 4, + "speed_multiplier": 1, + "track_target": true +} +``` + +pillager + +```json +"minecraft:behavior.melee_attack": { + "priority": 4, + "track_target": true +} +``` + +silverfish + +```json +"minecraft:behavior.melee_attack": { + "priority": 4, + "track_target": true +} +``` + +skeleton + +```json +"minecraft:behavior.melee_attack": { + "priority": 4, + "track_target": true, + "speed_multiplier": 1.25 +} +``` + +spider + +```json +"minecraft:behavior.melee_attack": { + "priority": 3, + "track_target": true, + "reach_multiplier": 0.8 +} +``` + +stray + +```json +"minecraft:behavior.melee_attack": { + "priority": 4, + "track_target": true, + "speed_multiplier": 1.25 +} +``` + +vindicator + +```json +"minecraft:behavior.melee_attack": { + "priority": 3 +} +``` + +warden + +```json +"minecraft:behavior.melee_attack": { + "priority": 4, + "speed_multiplier": 1.2, + "melee_fov": 360 +} +``` + +wither_skeleton + +```json +"minecraft:behavior.melee_attack": { + "priority": 4, + "track_target": true, + "speed_multiplier": 1.25 +} +``` + +wolf + +```json +"minecraft:behavior.melee_attack": { + "priority": 5 +} +``` + +zoglin + +```json +"minecraft:behavior.melee_attack": { + "priority": 4, + "reach_multiplier": 2.15, + "speed_multiplier": 1.4, + "track_target": true +} +``` + +zombie + +```json +"minecraft:behavior.melee_attack": { + "priority": 3 +} +``` + +zombie_pigman + +```json +"minecraft:behavior.melee_attack": { + "priority": 4, + "speed_multiplier": 1.5 +} +``` + +zombie_villager + +```json +"minecraft:behavior.melee_attack": { + "priority": 6 +} +``` + +zombie_villager_v2 + +```json +"minecraft:behavior.melee_attack": { + "priority": 6 +} +``` + +## behavior.mingle + +villager_v2 + +```json +"minecraft:behavior.mingle": {} +``` + +```json +"minecraft:behavior.mingle": { + "priority": 7, + "speed_multiplier": 0.5, + "duration": 30, + "cooldown_time": 10, + "mingle_partner_type": "minecraft:villager_v2", + "mingle_distance": 2.0 +} +``` + +## behavior.mount_pathing + +cat + +```json +"minecraft:behavior.mount_pathing": { + "priority": 1, + "speed_multiplier": 1.25, + "target_dist": 0, + "track_target": true +} +``` + +cave_spider + +```json +"minecraft:behavior.mount_pathing": { + "priority": 5, + "speed_multiplier": 1.25, + "target_dist": 0.0, + "track_target": true +} +``` + +chicken + +```json +"minecraft:behavior.mount_pathing": { + "priority": 2, + "speed_multiplier": 1.5, + "target_dist": 0.0, + "track_target": true +} +``` + +cow + +```json +"minecraft:behavior.mount_pathing": { + "priority": 2, + "speed_multiplier": 1.5, + "target_dist": 0.0, + "track_target": true +} +``` + +donkey + +```json +"minecraft:behavior.mount_pathing": { + "priority": 2, + "speed_multiplier": 1.5, + "target_dist": 0.0, + "track_target": true +} +``` + +horse + +```json +"minecraft:behavior.mount_pathing": { + "priority": 2, + "speed_multiplier": 1.5, + "target_dist": 0.0, + "track_target": true +} +``` + +husk + +```json +"minecraft:behavior.mount_pathing": { + "priority": 2, + "speed_multiplier": 1.25, + "target_dist": 0.0, + "track_target": true +} +``` + +llama + +```json +"minecraft:behavior.mount_pathing": { + "priority": 1, + "speed_multiplier": 1.25, + "target_dist": 0.0, + "track_target": true +} +``` + +mooshroom + +```json +"minecraft:behavior.mount_pathing": { + "priority": 2, + "speed_multiplier": 1.5, + "target_dist": 0.0, + "track_target": true +} +``` + +mule + +```json +"minecraft:behavior.mount_pathing": { + "priority": 2, + "speed_multiplier": 1.5, + "target_dist": 0.0, + "track_target": true +} +``` + +ocelot + +```json +"minecraft:behavior.mount_pathing": { + "priority": 1, + "speed_multiplier": 1.25, + "target_dist": 0, + "track_target": true +} +``` + +panda + +```json +"minecraft:behavior.mount_pathing": { + "priority": 5, + "speed_multiplier": 1.5, + "target_dist": 0.0, + "track_target": true +} +``` + +pig + +```json +"minecraft:behavior.mount_pathing": { + "priority": 1, + "speed_multiplier": 1.25, + "target_dist": 0.0, + "track_target": true +} +``` + +ravager + +```json +"minecraft:behavior.mount_pathing": { + "priority": 5, + "speed_multiplier": 1.25, + "target_dist": 0.0, + "track_target": true +} +``` + +sheep + +```json +"minecraft:behavior.mount_pathing": { + "priority": 2, + "speed_multiplier": 1.5, + "target_dist": 0.0, + "track_target": true +} +``` + +skeleton_horse + +```json +"minecraft:behavior.mount_pathing": { + "priority": 2, + "speed_multiplier": 1.5, + "target_dist": 4.0, + "track_target": true +} +``` + +spider + +```json +"minecraft:behavior.mount_pathing": { + "priority": 5, + "speed_multiplier": 1.25, + "target_dist": 0.0, + "track_target": true +} +``` + +trader_llama + +```json +"minecraft:behavior.mount_pathing": { + "priority": 1, + "speed_multiplier": 1.25, + "target_dist": 0.0, + "track_target": true +} +``` + +wolf + +```json +"minecraft:behavior.mount_pathing": { + "priority": 1, + "speed_multiplier": 1.25, + "target_dist": 0, + "track_target": true +} +``` + +zombie + +```json +"minecraft:behavior.mount_pathing": { + "priority": 2, + "speed_multiplier": 1.25, + "target_dist": 0.0, + "track_target": true +} +``` + +zombie_horse + +```json +"minecraft:behavior.mount_pathing": { + "priority": 2, + "speed_multiplier": 1.5, + "target_dist": 0.0, + "track_target": true +} +``` + +zombie_pigman + +```json +"minecraft:behavior.mount_pathing": { + "priority": 2, + "speed_multiplier": 1.25, + "target_dist": 0, + "track_target": true +} +``` + +zombie_villager + +```json +"minecraft:behavior.mount_pathing": { + "priority": 5, + "speed_multiplier": 1.25, + "target_dist": 0.0, + "track_target": true +} +``` + +zombie_villager_v2 + +```json +"minecraft:behavior.mount_pathing": { + "priority": 5, + "speed_multiplier": 1.25, + "target_dist": 0.0, + "track_target": true +} +``` + +## behavior.move_indoors + +villager + +```json +"minecraft:behavior.move_indoors": { + "priority": 4, + "speed_multiplier": 0.8 +} +``` + +villager_v2 + +```json +"minecraft:behavior.move_indoors": { + "priority": 6, + "speed_multiplier": 0.8, + "timeout_cooldown": 8.0 +} +``` + +## behavior.move_outdoors + +villager + +```json +"minecraft:behavior.move_outdoors": { + "priority": 2, + "speed_multiplier": 0.8, + "timeout_cooldown": 8.0 +} +``` + +villager_v2 + +```json +"minecraft:behavior.move_outdoors": { + "priority": 2, + "speed_multiplier": 0.8, + "timeout_cooldown": 8.0 +} +``` + +## behavior.move_through_village + +iron_golem + +```json +"minecraft:behavior.move_through_village": { + "priority": 3, + "speed_multiplier": 0.6, + "only_at_night": true +} +``` + +## behavior.move_to_block + +bee + +```json +"minecraft:behavior.move_to_block": { + "priority": 10, + "tick_interval": 1, + "start_chance": 0.5, + "search_range": 6, + "search_height": 4, + "goal_radius": 1.0, + "stay_duration": 20.0, + "target_selection_method": "random", + "target_offset": [ + 0, + 0.25, + 0 + ], + "target_block_filters": { + "test": "is_waterlogged", + "subject": "block", + "operator": "==", + "value": false + }, + "target_blocks": [ + "minecraft:red_flower", + "minecraft:yellow_flower", + "minecraft:wither_rose", + "minecraft:double_plant:8", + "minecraft:double_plant:9", + "minecraft:double_plant:12", + "minecraft:double_plant:13", + "minecraft:flowering_azalea", + "minecraft:azalea_leaves_flowered", + "minecraft:mangrove_propagule", + "minecraft:pitcher_plant", + "minecraft:torchflower", + "minecraft:cherry_leaves", + "minecraft:pink_petals" + ], + "on_stay_completed": [ + { + "event": "collected_nectar", + "target": "self" + } + ] +} +``` + +```json +"minecraft:behavior.move_to_block": { + "priority": 10, + "search_range": 16, + "search_height": 10, + "tick_interval": 1, + "goal_radius": 0.633, + "target_blocks": [ + "bee_nest", + "beehive" + ], + "on_reach": [ + { + "event": "minecraft:bee_returned_to_hive", + "target": "block" + } + ] +} +``` + +## behavior.move_to_land + +frog + +```json +"minecraft:behavior.move_to_land": { + "priority": 6, + "search_range": 30, + "search_height": 8, + "search_count": 80, + "goal_radius": 2 +} +``` + +turtle + +```json +"minecraft:behavior.move_to_land": { + "priority": 6, + "search_range": 16, + "search_height": 5, + "goal_radius": 0.5 +} +``` + +## behavior.move_to_liquid + +strider + +```json +"minecraft:behavior.move_to_liquid": { + "priority": 7, + "search_range": 16, + "search_height": 10, + "goal_radius": 0.9, + "material_type": "Lava", + "search_count": 30 +} +``` + +## behavior.move_to_random_block + +pillager + +```json +"minecraft:behavior.move_to_random_block": { + "priority": 6, + "speed_multiplier": 0.55, + "within_radius": 8, + "block_distance": 512 +} +``` + +vindicator + +```json +"minecraft:behavior.move_to_random_block": { + "priority": 5, + "speed_multiplier": 0.55, + "within_radius": 8, + "block_distance": 512 +} +``` + +## behavior.move_to_village + +evocation_illager + +```json +"minecraft:behavior.move_to_village": { + "priority": 6, + "speed_multiplier": 0.7 +} +``` + +pillager + +```json +"minecraft:behavior.move_to_village": { + "priority": 5, + "speed_multiplier": 1.0, + "goal_radius": 2.0 +} +``` + +ravager + +```json +"minecraft:behavior.move_to_village": { + "priority": 5, + "speed_multiplier": 1.0, + "goal_radius": 2.0 +} +``` + +vindicator + +```json +"minecraft:behavior.move_to_village": { + "priority": 4, + "speed_multiplier": 1.0, + "goal_radius": 2.0 +} +``` + +witch + +```json +"minecraft:behavior.move_to_village": { + "priority": 3, + "speed_multiplier": 1.2, + "goal_radius": 2.0 +} +``` + +## behavior.move_to_water + +axolotl + +```json +"minecraft:behavior.move_to_water": { + "priority": 6, + "search_range": 16, + "search_height": 5, + "search_count": 1, + "goal_radius": 0.1 +} +``` + +dolphin + +```json +"minecraft:behavior.move_to_water": { + "priority": 1, + "search_range": 15, + "search_height": 5 +} +``` + +frog + +```json +"minecraft:behavior.move_to_water": { + "priority": 3, + "search_range": 20, + "search_height": 5, + "goal_radius": 1.5 +} +``` + +turtle + +```json +"minecraft:behavior.move_to_water": { + "priority": 4, + "search_range": 16, + "search_height": 5, + "goal_radius": 1.5 +} +``` + +```json +"minecraft:behavior.move_to_water": { + "priority": 1, + "search_range": 15, + "search_height": 5, + "goal_radius": 0.1 +} +``` + +## behavior.move_towards_dwelling_restriction + +cat + +```json +"minecraft:behavior.move_towards_dwelling_restriction": { + "priority": 7 +} +``` + +iron_golem + +```json +"minecraft:behavior.move_towards_dwelling_restriction": { + "priority": 4, + "speed_multiplier": 1 +} +``` + +villager_v2 + +```json +"minecraft:behavior.move_towards_dwelling_restriction": { + "priority": 11, + "speed_multiplier": 0.6 +} +``` + +## behavior.move_towards_home_restriction + +bee + +```json +"minecraft:behavior.move_towards_home_restriction": { + "priority": 9 +} +``` + +elder_guardian + +```json +"minecraft:behavior.move_towards_home_restriction": { + "priority": 5, + "speed_multiplier": 1.0 +} +``` + +guardian + +```json +"minecraft:behavior.move_towards_home_restriction": { + "priority": 5, + "speed_multiplier": 1.0 +} +``` + +wandering_trader + +```json +"minecraft:behavior.move_towards_home_restriction": { + "priority": 6, + "speed_multiplier": 0.6 +} +``` + +## behavior.move_towards_target + +iron_golem + +```json +"minecraft:behavior.move_towards_target": { + "priority": 2, + "speed_multiplier": 0.9, + "within_radius": 32 +} +``` + +## behavior.nap + +fox + +```json +"minecraft:behavior.nap": { + "priority": 8, + "cooldown_min": 2.0, + "cooldown_max": 7.0, + "mob_detect_dist": 12.0, + "mob_detect_height": 6.0, + "can_nap_filters": { + "all_of": [ + { + "test": "in_water", + "subject": "self", + "operator": "==", + "value": false + }, + { + "test": "on_ground", + "subject": "self", + "operator": "==", + "value": true + }, + { + "test": "is_underground", + "subject": "self", + "operator": "==", + "value": true + }, + { + "test": "weather_at_position", + "subject": "self", + "operator": "!=", + "value": "thunderstorm" + } + ] + }, + "wake_mob_exceptions": { + "any_of": [ + { + "test": "trusts", + "subject": "other", + "operator": "==", + "value": true + }, + { + "test": "is_family", + "subject": "other", + "operator": "==", + "value": "fox" + }, + { + "test": "is_sneaking", + "subject": "other", + "operator": "==", + "value": true + } + ] + } +} +``` + +## behavior.nearest_attackable_target + +axolotl + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 3, + "must_see": true, + "reselect_targets": true, + "within_radius": 20.0, + "must_see_forget_duration": 17.0, + "entity_types": [ + { + "filters": { + "all_of": [ + { + "test": "in_water", + "subject": "other", + "value": true + }, + { + "test": "has_component", + "subject": "self", + "operator": "!=", + "value": "minecraft:attack_cooldown" + }, + { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "squid" + }, + { + "test": "is_family", + "subject": "other", + "value": "fish" + }, + { + "test": "is_family", + "subject": "other", + "value": "tadpole" + } + ] + } + ] + }, + "max_dist": 8 + }, + { + "filters": { + "all_of": [ + { + "test": "in_water", + "subject": "other", + "value": true + }, + { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "drowned" + }, + { + "test": "is_family", + "subject": "other", + "value": "guardian" + }, + { + "test": "is_family", + "subject": "other", + "value": "guardian_elder" + } + ] + } + ] + }, + "max_dist": 8 + } + ] +} +``` + +bee + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 10 + } + ] +} +``` + +blaze + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "must_see": true, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 48.0 + } + ] +} +``` + +cat + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 1, + "reselect_targets": true, + "within_radius": 16.0, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "rabbit" + }, + "max_dist": 8 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "baby_turtle" + }, + { + "test": "in_water", + "subject": "other", + "operator": "!=", + "value": true + } + ] + }, + "max_dist": 8 + } + ] +} +``` + +cave_spider + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "must_see": true, + "attack_interval": 5, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "snowgolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + } + ] + }, + "max_dist": 16 + } + ] +} +``` + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "must_see": true, + "attack_interval": 10, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "snowgolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + } + ] + }, + "max_dist": 16 + } + ] +} +``` + +creeper + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 1, + "must_see": true, + "must_see_forget_duration": 3.0, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 16 + } + ] +} +``` + +drowned + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "reselect_targets": true, + "must_see": true, + "within_radius": 12.0, + "must_see_forget_duration": 17.0, + "persist_time": 0.5, + "entity_types": [ + { + "filters": { + "all_of": [ + { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "snowgolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "axolotl" + } + ] + }, + { + "any_of": [ + { + "test": "in_water", + "subject": "other", + "value": true + }, + { + "test": "is_daytime", + "value": false + } + ] + } + ] + }, + "max_dist": 20 + }, + { + "filters": { + "all_of": [ + { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "villager" + }, + { + "test": "is_family", + "subject": "other", + "value": "wandering_trader" + } + ] + }, + { + "any_of": [ + { + "test": "in_water", + "subject": "other", + "value": true + }, + { + "test": "is_daytime", + "value": false + } + ] + } + ] + }, + "max_dist": 20, + "must_see": false + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "baby_turtle" + }, + { + "test": "in_water", + "subject": "other", + "operator": "!=", + "value": true + } + ] + }, + "max_dist": 20 + } + ] +} +``` + +elder_guardian + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 1, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "squid" + }, + { + "test": "is_family", + "subject": "other", + "value": "axolotl" + } + ] + }, + "max_dist": 16 + } + ], + "attack_interval_min": 1.0, + "must_see": true +} +``` + +enderman + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 5, + "must_see": true, + "attack_interval": 10, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "endermite" + }, + "max_dist": 64 + } + ] +} +``` + +endermite + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 5, + "must_see": true, + "within_radius": 16.0, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "enderman" + } + ] + }, + "max_dist": 16 + } + ] +} +``` + +evocation_illager + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "snowgolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "wandering_trader" + } + ] + }, + "max_dist": 20 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "villager" + }, + { + "test": "has_component", + "subject": "other", + "operator": "!=", + "value": "minecraft:is_baby" + } + ] + }, + "max_dist": 20 + } + ], + "must_see": true +} +``` + +frog + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 8, + "within_radius": 16, + "entity_types": [ + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "slime" + }, + { + "test": "is_variant", + "subject": "other", + "operator": "==", + "value": 1 + } + ] + }, + "max_dist": 16 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "magmacube" + }, + { + "test": "is_variant", + "subject": "other", + "operator": "==", + "value": 1 + } + ] + }, + "max_dist": 16 + } + ], + "must_see": true +} +``` + +ghast + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 28 + } + ], + "must_see": true +} +``` + +goat + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 6, + "within_radius": 16, + "entity_types": [ + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "goat" + }, + { + "test": "has_component", + "subject": "self", + "operator": "!=", + "value": "minecraft:attack_cooldown" + } + ] + }, + "max_dist": 16 + } + ], + "must_see": true +} +``` + +guardian + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 1, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "squid" + }, + { + "test": "is_family", + "subject": "other", + "value": "axolotl" + } + ] + }, + "max_dist": 16 + } + ], + "attack_interval_min": 1.0, + "must_see": true +} +``` + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 1, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "squid" + }, + { + "test": "is_family", + "subject": "other", + "value": "axolotl" + } + ] + }, + "max_dist": 16 + } + ], + "attack_interval_min": 1.0, + "must_see": true +} +``` + +hoglin + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 4, + "within_radius": 16.0, + "entity_types": [ + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_component", + "subject": "self", + "operator": "!=", + "value": "minecraft:attack_cooldown" + } + ] + }, + "max_dist": 16 + } + ], + "must_see": true +} +``` + +husk + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "must_see": true, + "reselect_targets": true, + "within_radius": 25.0, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "snowgolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + } + ] + }, + "max_dist": 35 + }, + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "villager" + }, + { + "test": "is_family", + "subject": "other", + "value": "wandering_trader" + } + ] + }, + "max_dist": 35, + "must_see": false + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "baby_turtle" + }, + { + "test": "in_water", + "subject": "other", + "operator": "!=", + "value": true + } + ] + }, + "max_dist": 35 + } + ] +} +``` + +iron_golem + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 3, + "must_reach": true, + "must_see": true, + "entity_types": [ + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "monster" + }, + { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "creeper" + } + ] + }, + "within_default": 10 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "hoglin" + }, + { + "test": "is_difficulty", + "operator": "!=", + "value": "peaceful" + } + ] + }, + "max_dist": 16 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "zoglin" + }, + { + "test": "is_difficulty", + "operator": "!=", + "value": "peaceful" + } + ] + }, + "max_dist": 16 + } + ] +} +``` + +llama + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "attack_interval": 16, + "entity_types": [ + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "wolf" + }, + { + "test": "has_component", + "subject": "other", + "operator": "!=", + "value": "minecraft:is_tamed" + } + ] + }, + "max_dist": 10 + } + ], + "must_see": false, + "must_reach": true +} +``` + +magma_cube + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + } + ] + }, + "max_dist": 16 + } + ], + "must_see": true +} +``` + +ocelot + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 1, + "reselect_targets": true, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "chicken" + }, + "max_dist": 8 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "baby_turtle" + }, + { + "test": "in_water", + "subject": "other", + "operator": "!=", + "value": true + } + ] + }, + "max_dist": 8 + } + ] +} +``` + +phantom + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 1, + "reselect_targets": true, + "scan_interval": 20, + "within_radius": 64.0, + "must_see_forget_duration": 0.5, + "target_search_height": 80.0, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 64 + } + ] +} +``` + +piglin + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 7, + "within_radius": 16.0, + "persist_time": 0.0, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "wither" + } + ] + }, + "max_dist": 16 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "self", + "value": "piglin_hunter" + }, + { + "test": "is_family", + "subject": "other", + "value": "hoglin_huntable" + }, + { + "test": "has_component", + "subject": "other", + "operator": "!=", + "value": "minecraft:is_baby" + }, + { + "test": "has_component", + "subject": "self", + "operator": "!=", + "value": "minecraft:attack_cooldown" + } + ] + }, + "max_dist": 16 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "head", + "operator": "!=", + "value": "golden_helmet" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "torso", + "operator": "!=", + "value": "golden_chestplate" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "leg", + "operator": "!=", + "value": "golden_leggings" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "feet", + "operator": "!=", + "value": "golden_boots" + } + ] + }, + "max_dist": 16, + "reevaluate_description": true + }, + { + "filters": { + "any_of": [ + { + "test": "has_container_open", + "subject": "other", + "operator": "==", + "value": true + } + ] + }, + "max_dist": 16 + } + ], + "must_see": true +} +``` + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 7, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 16 + } + ] +} +``` + +piglin_brute + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 3, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 16 + } + ] +} +``` + +pillager + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "must_see": true, + "reselect_targets": true, + "within_radius": 16.0, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "wandering_trader" + } + ] + }, + "max_dist": 16 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "villager" + }, + { + "test": "has_component", + "subject": "other", + "operator": "!=", + "value": "minecraft:is_baby" + } + ] + }, + "max_dist": 16 + } + ] +} +``` + +polar_bear + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 4, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 16 + } + ] +} +``` + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 4, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "fox" + }, + "max_dist": 16 + } + ], + "must_see": false +} +``` + +ravager + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 3, + "must_see": true, + "within_radius": 16.0, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "subject": "other", + "test": "is_family", + "value": "player" + }, + { + "subject": "other", + "test": "is_family", + "value": "irongolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "wandering_trader" + } + ] + }, + "max_dist": 16 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "villager" + }, + { + "test": "has_component", + "subject": "other", + "operator": "!=", + "value": "minecraft:is_baby" + } + ] + }, + "max_dist": 16 + } + ] +} +``` + +shulker + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 3, + "entity_types": { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 16 + }, + "must_see": true +} +``` + +silverfish + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "attack_interval": 10, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "snowgolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + } + ] + }, + "max_dist": 8 + } + ] +} +``` + +skeleton + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "must_see": true, + "reselect_targets": true, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 16 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "irongolem" + }, + "max_dist": 16 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "baby_turtle" + }, + { + "test": "in_water", + "subject": "other", + "operator": "!=", + "value": true + } + ] + }, + "max_dist": 16 + } + ] +} +``` + +slime + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "snowgolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + } + ] + }, + "max_dist": 16 + } + ], + "must_see": true +} +``` + +snow_golem + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 1, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "monster" + }, + "within_default": 6 + } + ] +} +``` + +spider + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "must_see": true, + "attack_interval": 5, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "snowgolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + } + ] + }, + "max_dist": 16 + } + ] +} +``` + +stray + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "must_see": true, + "reselect_targets": true, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 16 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "irongolem" + }, + "max_dist": 16 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "baby_turtle" + }, + { + "test": "in_water", + "subject": "other", + "operator": "!=", + "value": true + } + ] + }, + "max_dist": 16 + } + ] +} +``` + +trader_llama + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "attack_interval": 16, + "entity_types": [ + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "wolf" + }, + { + "test": "has_component", + "subject": "other", + "operator": "!=", + "value": "minecraft:is_tamed" + } + ] + }, + "max_dist": 10 + } + ], + "must_see": false, + "must_reach": true +} +``` + +vex + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 3, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "wandering_trader" + } + ] + }, + "max_dist": 70 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "villager" + }, + { + "test": "has_component", + "subject": "other", + "operator": "!=", + "value": "minecraft:is_baby" + } + ] + }, + "max_dist": 70 + } + ], + "must_see": true +} +``` + +vindicator + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "must_see": true, + "within_radius": 12.0, + "must_see_forget_duration": 40.0, + "entity_types": [ + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "illager" + } + ] + }, + "max_dist": 12 + } + ] +} +``` + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "must_see": true, + "within_radius": 12.0, + "must_see_forget_duration": 40.0, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "snowgolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "wandering_trader" + } + ] + }, + "max_dist": 12 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "villager" + }, + { + "test": "has_component", + "subject": "other", + "operator": "!=", + "value": "minecraft:is_baby" + } + ] + }, + "max_dist": 12 + } + ] +} +``` + +witch + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "snowgolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + } + ] + }, + "max_dist": 10 + } + ], + "must_reach": true +} +``` + +wither + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 3, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 70 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "undead" + }, + { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "inanimate" + } + ] + }, + "max_dist": 70 + } + ], + "must_see": true +} +``` + +wither_skeleton + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "reselect_targets": true, + "must_see": true, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 16 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "piglin" + }, + { + "test": "is_difficulty", + "operator": "!=", + "value": "peaceful" + } + ] + }, + "max_dist": 16 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "irongolem" + }, + "max_dist": 16 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "baby_turtle" + }, + { + "test": "in_water", + "subject": "other", + "operator": "!=", + "value": true + } + ] + }, + "max_dist": 16 + } + ] +} +``` + +wolf + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 4, + "reselect_targets": true, + "must_see": true, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "skeleton" + }, + { + "test": "is_family", + "subject": "other", + "value": "sheep" + }, + { + "test": "is_family", + "subject": "other", + "value": "rabbit" + }, + { + "test": "is_family", + "subject": "other", + "value": "fox" + } + ] + }, + "max_dist": 16 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "baby_turtle" + }, + { + "test": "in_water", + "subject": "other", + "operator": "!=", + "value": true + } + ] + }, + "max_dist": 16 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "skeleton" + }, + { + "test": "is_underwater", + "subject": "other", + "operator": "!=", + "value": true + } + ] + }, + "max_dist": 16 + } + ] +} +``` + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 5, + "must_see": true, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "skeleton" + }, + "max_dist": 16 + } + ] +} +``` + +zoglin + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 3, + "within_radius": 16.0, + "entity_types": [ + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "zoglin" + }, + { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "creeper" + } + ] + }, + "max_dist": 16 + } + ], + "must_see": true +} +``` + +zombie + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "must_see": true, + "reselect_targets": true, + "within_radius": 25.0, + "must_see_forget_duration": 17.0, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "snowgolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + } + ] + }, + "max_dist": 35 + }, + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "villager" + }, + { + "test": "is_family", + "subject": "other", + "value": "wandering_trader" + } + ] + }, + "max_dist": 35, + "must_see": false + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "baby_turtle" + }, + { + "test": "in_water", + "subject": "other", + "operator": "!=", + "value": true + } + ] + }, + "max_dist": 35 + } + ] +} +``` + +zombie_villager + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "must_see": true, + "reselect_targets": true, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "snowgolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + } + ] + }, + "max_dist": 35 + }, + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "villager" + }, + { + "test": "is_family", + "subject": "other", + "value": "wandering_trader" + } + ] + }, + "max_dist": 35, + "must_see": false + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "baby_turtle" + }, + { + "test": "in_water", + "subject": "other", + "operator": "!=", + "value": true + } + ] + }, + "max_dist": 35 + } + ] +} +``` + +zombie_villager_v2 + +```json +"minecraft:behavior.nearest_attackable_target": { + "priority": 2, + "must_see": true, + "reselect_targets": true, + "entity_types": [ + { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "snowgolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "irongolem" + }, + { + "test": "is_family", + "subject": "other", + "value": "villager" + }, + { + "test": "is_family", + "subject": "other", + "value": "wandering_trader" + } + ] + }, + "max_dist": 35 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "baby_turtle" + }, + { + "test": "in_water", + "subject": "other", + "operator": "!=", + "value": true + } + ] + }, + "max_dist": 35 + } + ] +} +``` + +## behavior.nearest_prioritized_attackable_target + +fox + +```json +"minecraft:behavior.nearest_prioritized_attackable_target": { + "priority": 6, + "attack_interval": 2, + "reselect_targets": true, + "target_search_height": 5, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "rabbit" + }, + "max_dist": 12, + "priority": 0 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "chicken" + }, + "max_dist": 12, + "priority": 0 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "cod" + }, + "max_dist": 12, + "priority": 1 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "salmon" + }, + "max_dist": 12, + "priority": 1 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "tropicalfish" + }, + "max_dist": 12, + "priority": 1 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "baby_turtle" + }, + { + "test": "in_water", + "subject": "other", + "operator": "!=", + "value": true + } + ] + }, + "max_dist": 12, + "priority": 0 + } + ] +} +``` + +```json +"minecraft:behavior.nearest_prioritized_attackable_target": { + "priority": 6, + "attack_interval": 2, + "reselect_targets": true, + "target_search_height": 5, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "rabbit" + }, + "max_dist": 12, + "priority": 1 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "chicken" + }, + "max_dist": 12, + "priority": 1 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "cod" + }, + "max_dist": 12, + "priority": 0 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "salmon" + }, + "max_dist": 12, + "priority": 0 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "tropicalfish" + }, + "max_dist": 12, + "priority": 0 + }, + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "baby_turtle" + }, + { + "test": "in_water", + "subject": "other", + "operator": "!=", + "value": true + } + ] + }, + "max_dist": 12, + "priority": 1 + } + ] +} +``` + +piglin_brute + +```json +"minecraft:behavior.nearest_prioritized_attackable_target": { + "priority": 3, + "within_radius": 12.0, + "persist_time": 2.0, + "must_see": true, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + }, + "max_dist": 12, + "priority": 0 + }, + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "wither" + }, + "max_dist": 12, + "priority": 1 + } + ] +} +``` + +## behavior.ocelot_sit_on_block + +cat + +```json +"minecraft:behavior.ocelot_sit_on_block": { + "priority": 7, + "speed_multiplier": 1.0 +} +``` + +ocelot + +```json +"minecraft:behavior.ocelot_sit_on_block": { + "priority": 6, + "speed_multiplier": 1.0 +} +``` + +## behavior.ocelotattack + +cat + +```json +"minecraft:behavior.ocelotattack": { + "priority": 4, + "cooldown_time": 1.0, + "x_max_rotation": 30.0, + "y_max_head_rotation": 30.0, + "max_distance": 15.0, + "max_sneak_range": 15.0, + "max_sprint_range": 4.0, + "reach_multiplier": 2.0, + "sneak_speed_multiplier": 0.6, + "sprint_speed_multiplier": 1.33, + "walk_speed_multiplier": 0.8 +} +``` + +ocelot + +```json +"minecraft:behavior.ocelotattack": { + "priority": 4, + "cooldown_time": 1.0, + "x_max_rotation": 30.0, + "y_max_head_rotation": 30.0, + "max_distance": 15.0, + "max_sneak_range": 15.0, + "max_sprint_range": 4.0, + "reach_multiplier": 2.0, + "sneak_speed_multiplier": 0.6, + "sprint_speed_multiplier": 1.33, + "walk_speed_multiplier": 0.8 +} +``` + +## behavior.offer_flower + +iron_golem + +```json +"minecraft:behavior.offer_flower": { + "priority": 5, + "filters": { + "all_of": [ + { + "test": "is_daytime", + "value": true + } + ] + } +} +``` + +## behavior.open_door + +villager + +```json +"minecraft:behavior.open_door": { + "priority": 6, + "close_door_after": true +} +``` + +## behavior.owner_hurt_by_target + +wolf + +```json +"minecraft:behavior.owner_hurt_by_target": { + "priority": 1 +} +``` + +## behavior.owner_hurt_target + +wolf + +```json +"minecraft:behavior.owner_hurt_target": { + "priority": 2 +} +``` + +## behavior.panic + +allay + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 2.0 +} +``` + +bee + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.25, + "force": true +} +``` + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.25, + "force": true +} +``` + +camel + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 4 +} +``` + +cat + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.25 +} +``` + +chicken + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.5 +} +``` + +cow + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.25 +} +``` + +dolphin + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.25 +} +``` + +donkey + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.2 +} +``` + +fox + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.25 +} +``` + +```json +"minecraft:behavior.panic": { + "priority": 2, + "speed_multiplier": 1.25 +} +``` + +frog + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 2.0 +} +``` + +goat + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1 +} +``` + +hoglin + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1 +} +``` + +horse + +```json +"minecraft:behavior.panic": { + "priority": 3, + "speed_multiplier": 1.2 +} +``` + +llama + +```json +"minecraft:behavior.panic": { + "priority": 4, + "speed_multiplier": 1.2 +} +``` + +mooshroom + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.25 +} +``` + +mule + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.2 +} +``` + +ocelot + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.25 +} +``` + +panda + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.25 +} +``` + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 2.5 +} +``` + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.25, + "ignore_mob_damage": true +} +``` + +parrot + +```json +"minecraft:behavior.panic": { + "priority": 0, + "speed_multiplier": 1.25 +} +``` + +pig + +```json +"minecraft:behavior.panic": { + "priority": 3, + "speed_multiplier": 1.25 +} +``` + +piglin + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.1 +} +``` + +rabbit + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 2.2 +} +``` + +sheep + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.25 +} +``` + +skeleton_horse + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.2 +} +``` + +sniffer + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 2 +} +``` + +strider + +```json +"minecraft:behavior.panic": { + "priority": 3, + "speed_multiplier": 1.1, + "panic_sound": "panic", + "sound_interval": { + "range_min": 1.0, + "range_max": 3.0 + } +} +``` + +tadpole + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 2.0 +} +``` + +trader_llama + +```json +"minecraft:behavior.panic": { + "priority": 4, + "speed_multiplier": 1.2 +} +``` + +turtle + +```json +"minecraft:behavior.panic": { + "priority": 0, + "prefer_water": true, + "speed_multiplier": 1.2 +} +``` + +villager + +```json +"minecraft:behavior.panic": { + "priority": 3, + "speed_multiplier": 0.6 +} +``` + +villager_v2 + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 0.6 +} +``` + +wandering_trader + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 0.6 +} +``` + +zombie_horse + +```json +"minecraft:behavior.panic": { + "priority": 1, + "speed_multiplier": 1.2 +} +``` + +## behavior.pet_sleep_with_owner + +cat + +```json +"minecraft:behavior.pet_sleep_with_owner": { + "priority": 2, + "speed_multiplier": 1.2, + "search_radius": 10, + "search_height": 10, + "goal_radius": 1.0 +} +``` + +## behavior.pickup_items + +allay + +```json +"minecraft:behavior.pickup_items": { + "priority": 2, + "max_dist": 32, + "search_height": 32, + "goal_radius": 2.2, + "speed_multiplier": 6, + "pickup_based_on_chance": false, + "can_pickup_any_item": false, + "can_pickup_to_hand_or_equipment": false, + "pickup_same_items_as_in_hand": true +} +``` + +drowned + +```json +"minecraft:behavior.pickup_items": { + "priority": 6, + "max_dist": 3, + "goal_radius": 2, + "speed_multiplier": 1.0, + "pickup_based_on_chance": true, + "can_pickup_any_item": true, + "excluded_items": [ + "minecraft:glow_ink_sac" + ] +} +``` + +fox + +```json +"minecraft:behavior.pickup_items": { + "priority": 11, + "max_dist": 3, + "goal_radius": 2, + "speed_multiplier": 0.5 +} +``` + +husk + +```json +"minecraft:behavior.pickup_items": { + "priority": 6, + "max_dist": 3, + "goal_radius": 2, + "speed_multiplier": 1.0, + "pickup_based_on_chance": true, + "can_pickup_any_item": true, + "excluded_items": [ + "minecraft:glow_ink_sac" + ] +} +``` + +piglin + +```json +"minecraft:behavior.pickup_items": { + "priority": 6, + "max_dist": 10, + "goal_radius": 2, + "speed_multiplier": 0.8, + "pickup_based_on_chance": false, + "can_pickup_any_item": false, + "cooldown_after_being_attacked": 20.0 +} +``` + +pillager + +```json +"minecraft:behavior.pickup_items": { + "priority": 7, + "max_dist": 3, + "goal_radius": 2, + "speed_multiplier": 1.0 +} +``` + +skeleton + +```json +"minecraft:behavior.pickup_items": { + "priority": 5, + "max_dist": 3, + "goal_radius": 2, + "speed_multiplier": 1.0, + "pickup_based_on_chance": true, + "can_pickup_any_item": true +} +``` + +stray + +```json +"minecraft:behavior.pickup_items": { + "priority": 5, + "max_dist": 3, + "goal_radius": 2, + "speed_multiplier": 1.0, + "pickup_based_on_chance": true, + "can_pickup_any_item": true +} +``` + +villager + +```json +"minecraft:behavior.pickup_items": { + "priority": 9, + "max_dist": 3, + "goal_radius": 2, + "speed_multiplier": 0.5, + "can_pickup_to_hand_or_equipment": false +} +``` + +villager_v2 + +```json +"minecraft:behavior.pickup_items": { + "priority": 4, + "max_dist": 3, + "goal_radius": 2, + "speed_multiplier": 0.5, + "can_pickup_to_hand_or_equipment": false +} +``` + +wither_skeleton + +```json +"minecraft:behavior.pickup_items": { + "priority": 5, + "max_dist": 3, + "goal_radius": 2, + "speed_multiplier": 1.0, + "pickup_based_on_chance": true +} +``` + +zombie + +```json +"minecraft:behavior.pickup_items": { + "priority": 6, + "max_dist": 3, + "goal_radius": 2, + "speed_multiplier": 1.0, + "pickup_based_on_chance": true, + "can_pickup_any_item": true, + "excluded_items": [ + "minecraft:glow_ink_sac" + ] +} +``` + +zombie_pigman + +```json +"minecraft:behavior.pickup_items": { + "priority": 6, + "max_dist": 3, + "goal_radius": 2, + "speed_multiplier": 1.0, + "pickup_based_on_chance": true, + "can_pickup_any_item": true +} +``` + +zombie_villager + +```json +"minecraft:behavior.pickup_items": { + "priority": 8, + "max_dist": 3, + "goal_radius": 2, + "speed_multiplier": 1.0, + "pickup_based_on_chance": true, + "can_pickup_any_item": true, + "excluded_items": [ + "minecraft:glow_ink_sac" + ] +} +``` + +zombie_villager_v2 + +```json +"minecraft:behavior.pickup_items": { + "priority": 8, + "max_dist": 3, + "goal_radius": 2, + "speed_multiplier": 1.0, + "pickup_based_on_chance": true, + "can_pickup_any_item": true, + "excluded_items": [ + "minecraft:glow_ink_sac" + ] +} +``` + +## behavior.play + +villager + +```json +"minecraft:behavior.play": { + "priority": 8, + "speed_multiplier": 0.32 +} +``` + +villager_v2 + +```json +"minecraft:behavior.play": { + "priority": 8, + "speed_multiplier": 0.6, + "friend_types": [ + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "villager" + }, + { + "test": "is_baby", + "subject": "other", + "operator": "==", + "value": true + } + ] + } + } + ] +} +``` + +## behavior.play_dead + +axolotl + +```json +"minecraft:behavior.play_dead": { + "priority": 0, + "duration": 10, + "force_below_health": 8, + "random_start_chance": 0.33, + "random_damage_range": [ + 0, + 2 + ], + "damage_sources": [ + "contact", + "entity_attack", + "entity_explosion", + "magic", + "projectile", + "thorns", + "wither" + ], + "apply_regeneration": true, + "filters": { + "test": "in_water", + "operator": "==", + "value": true + } +} +``` + +## behavior.player_ride_tamed + +camel + +```json +"minecraft:behavior.player_ride_tamed": {} +``` + +donkey + +```json +"minecraft:behavior.player_ride_tamed": {} +``` + +horse + +```json +"minecraft:behavior.player_ride_tamed": {} +``` + +mule + +```json +"minecraft:behavior.player_ride_tamed": {} +``` + +skeleton_horse + +```json +"minecraft:behavior.player_ride_tamed": {} +``` + +zombie_horse + +```json +"minecraft:behavior.player_ride_tamed": {} +``` + +## behavior.raid_garden + +fox + +```json +"minecraft:behavior.raid_garden": { + "priority": 12, + "blocks": [ + "minecraft:sweet_berry_bush", + "minecraft:cave_vines_head_with_berries", + "minecraft:cave_vines_body_with_berries" + ], + "speed_multiplier": 1.2, + "search_range": 12, + "search_height": 2, + "goal_radius": 0.8, + "max_to_eat": 0, + "initial_eat_delay": 2 +} +``` + +rabbit + +```json +"minecraft:behavior.raid_garden": { + "priority": 5, + "blocks": [ + "minecraft:carrots" + ], + "search_range": 16, + "goal_radius": 0.8 +} +``` + +## behavior.ram_attack + +goat + +```json +"minecraft:behavior.ram_attack": { + "priority": 5, + "run_speed": 0.7, + "ram_speed": 1.8, + "min_ram_distance": 4, + "ram_distance": 7, + "knockback_force": 2.5, + "knockback_height": 0.04, + "pre_ram_sound": "pre_ram", + "ram_impact_sound": "ram_impact", + "cooldown_range": [ + 30, + 300 + ], + "on_start": [ + { + "event": "start_event", + "target": "self" + } + ] +} +``` + +```json +"minecraft:behavior.ram_attack": { + "priority": 5, + "run_speed": 0.7, + "ram_speed": 1.8, + "min_ram_distance": 4, + "ram_distance": 7, + "knockback_force": 2.5, + "knockback_height": 0.04, + "pre_ram_sound": "pre_ram.screamer", + "ram_impact_sound": "ram_impact.screamer", + "cooldown_range": [ + 5, + 15 + ], + "on_start": [ + { + "event": "start_event", + "target": "self" + } + ] +} +``` + +## behavior.random_breach + +dolphin + +```json +"minecraft:behavior.random_breach": { + "priority": 6, + "interval": 50, + "xz_dist": 6, + "cooldown_time": 2.0 +} +``` + +## behavior.random_fly + +parrot + +```json +"minecraft:behavior.random_fly": { + "priority": 2, + "xz_dist": 15, + "y_dist": 1, + "y_offset": 0, + "speed_multiplier": 1.0, + "can_land_on_trees": true, + "avoid_damage_blocks": true +} +``` + +## behavior.random_hover + +allay + +```json +"minecraft:behavior.random_hover": { + "priority": 9, + "xz_dist": 8, + "y_dist": 8, + "y_offset": -1, + "interval": 1, + "hover_height": [ + 1, + 4 + ] +} +``` + +bee + +```json +"minecraft:behavior.random_hover": { + "priority": 12, + "xz_dist": 8, + "y_dist": 8, + "y_offset": -1, + "interval": 1, + "hover_height": [ + 1, + 4 + ] +} +``` + +## behavior.random_look_around + +allay + +```json +"minecraft:behavior.random_look_around": { + "priority": 8 +} +``` + +blaze + +```json +"minecraft:behavior.random_look_around": { + "priority": 5 +} +``` + +camel + +```json +"minecraft:behavior.random_look_around": { + "priority": 8 +} +``` + +cave_spider + +```json +"minecraft:behavior.random_look_around": { + "priority": 7 +} +``` + +chicken + +```json +"minecraft:behavior.random_look_around": { + "priority": 8 +} +``` + +cow + +```json +"minecraft:behavior.random_look_around": { + "priority": 9 +} +``` + +creeper + +```json +"minecraft:behavior.random_look_around": { + "priority": 6 +} +``` + +dolphin + +```json +"minecraft:behavior.random_look_around": { + "priority": 7 +} +``` + +donkey + +```json +"minecraft:behavior.random_look_around": { + "priority": 8 +} +``` + +drowned + +```json +"minecraft:behavior.random_look_around": { + "priority": 9 +} +``` + +elder_guardian + +```json +"minecraft:behavior.random_look_around": { + "priority": 9 +} +``` + +enderman + +```json +"minecraft:behavior.random_look_around": { + "priority": 8 +} +``` + +fox + +```json +"minecraft:behavior.random_look_around": { + "priority": 15 +} +``` + +goat + +```json +"minecraft:behavior.random_look_around": { + "priority": 11 +} +``` + +guardian + +```json +"minecraft:behavior.random_look_around": { + "priority": 9 +} +``` + +hoglin + +```json +"minecraft:behavior.random_look_around": { + "priority": 9 +} +``` + +horse + +```json +"minecraft:behavior.random_look_around": { + "priority": 8 +} +``` + +husk + +```json +"minecraft:behavior.random_look_around": { + "priority": 9 +} +``` + +iron_golem + +```json +"minecraft:behavior.random_look_around": { + "priority": 8 +} +``` + +llama + +```json +"minecraft:behavior.random_look_around": { + "priority": 8 +} +``` + +mooshroom + +```json +"minecraft:behavior.random_look_around": { + "priority": 9 +} +``` + +mule + +```json +"minecraft:behavior.random_look_around": { + "priority": 8 +} +``` + +panda + +```json +"minecraft:behavior.random_look_around": { + "priority": 9 +} +``` + +pig + +```json +"minecraft:behavior.random_look_around": { + "priority": 9 +} +``` + +piglin + +```json +"minecraft:behavior.random_look_around": { + "priority": 12 +} +``` + +piglin_brute + +```json +"minecraft:behavior.random_look_around": { + "priority": 9 +} +``` + +pillager + +```json +"minecraft:behavior.random_look_around": { + "priority": 10 +} +``` + +polar_bear + +```json +"minecraft:behavior.random_look_around": { + "priority": 7 +} +``` + +sheep + +```json +"minecraft:behavior.random_look_around": { + "priority": 9 +} +``` + +shulker + +```json +"minecraft:behavior.random_look_around": { + "priority": 8 +} +``` + +skeleton + +```json +"minecraft:behavior.random_look_around": { + "priority": 8 +} +``` + +skeleton_horse + +```json +"minecraft:behavior.random_look_around": { + "priority": 8 +} +``` + +sniffer + +```json +"minecraft:behavior.random_look_around": { + "priority": 9 +} +``` + +snow_golem + +```json +"minecraft:behavior.random_look_around": { + "priority": 4 +} +``` + +spider + +```json +"minecraft:behavior.random_look_around": { + "priority": 7 +} +``` + +stray + +```json +"minecraft:behavior.random_look_around": { + "priority": 8 +} +``` + +strider + +```json +"minecraft:behavior.random_look_around": { + "priority": 10 +} +``` + +trader_llama + +```json +"minecraft:behavior.random_look_around": { + "priority": 8 +} +``` + +wandering_trader + +```json +"minecraft:behavior.random_look_around": { + "priority": 9 +} +``` + +warden + +```json +"minecraft:behavior.random_look_around": { + "priority": 11 +} +``` + +witch + +```json +"minecraft:behavior.random_look_around": { + "priority": 5, + "look_distance": 8.0 +} +``` + +wither + +```json +"minecraft:behavior.random_look_around": { + "priority": 7 +} +``` + +wither_skeleton + +```json +"minecraft:behavior.random_look_around": { + "priority": 8 +} +``` + +zoglin + +```json +"minecraft:behavior.random_look_around": { + "priority": 9 +} +``` + +zombie + +```json +"minecraft:behavior.random_look_around": { + "priority": 9 +} +``` + +zombie_horse + +```json +"minecraft:behavior.random_look_around": { + "priority": 8 +} +``` + +zombie_pigman + +```json +"minecraft:behavior.random_look_around": { + "priority": 9 +} +``` + +zombie_villager + +```json +"minecraft:behavior.random_look_around": { + "priority": 11 +} +``` + +zombie_villager_v2 + +```json +"minecraft:behavior.random_look_around": { + "priority": 11 +} +``` + +## behavior.random_look_around_and_sit + +camel + +```json +"minecraft:behavior.random_look_around_and_sit": { + "priority": 4, + "continue_if_leashed": true, + "min_look_count": 2, + "max_look_count": 5, + "min_look_time": 80, + "max_look_time": 100, + "min_angle_of_view_horizontal": -30, + "max_angle_of_view_horizontal": 30, + "random_look_around_cooldown": 5, + "probability": 0.001 +} +``` + +fox + +```json +"minecraft:behavior.random_look_around_and_sit": { + "priority": 12, + "min_look_count": 2, + "max_look_count": 5, + "min_look_time": 80, + "max_look_time": 100, + "probability": 0.001 +} +``` + +## behavior.random_search_and_dig + +sniffer + +```json +"minecraft:behavior.random_search_and_dig": { + "priority": 5, + "speed_multiplier": 1.25, + "find_valid_position_retries": 5, + "goal_radius": 2.0, + "search_range_xz": 20.0, + "search_range_y": 3, + "cooldown_range": 0.0, + "digging_duration_range": [ + 8.0, + 10.0 + ], + "items": [ + { + "item": "torchflower_seeds", + "weight": 1 + }, + { + "item": "pitcher_pod", + "weight": 1 + } + ], + "spawn_item_after_seconds": 6.0, + "spawn_item_pos_offset": 2.25, + "on_searching_start": { + "event": "on_searching_start", + "target": "self" + }, + "on_fail_during_searching": { + "event": "on_fail_during_searching", + "target": "self" + }, + "on_digging_start": { + "event": "on_digging_start", + "target": "self" + }, + "on_item_found": { + "event": "on_item_found", + "target": "self" + }, + "on_fail_during_digging": { + "event": "on_fail_during_digging", + "target": "self" + }, + "on_success": { + "event": "on_search_and_digging_success", + "target": "self" + } +} +``` + +## behavior.random_sitting + +panda + +```json +"minecraft:behavior.random_sitting": { + "priority": 5, + "start_chance": 0.01, + "stop_chance": 0.3, + "cooldown": 30, + "min_sit_time": 10 +} +``` + +```json +"minecraft:behavior.random_sitting": { + "priority": 6, + "start_chance": 0.02, + "stop_chance": 0.2, + "cooldown": 25, + "min_sit_time": 15 +} +``` + +## behavior.random_stroll + +axolotl + +```json +"minecraft:behavior.random_stroll": { + "priority": 9, + "interval": 100 +} +``` + +blaze + +```json +"minecraft:behavior.random_stroll": { + "priority": 4, + "speed_multiplier": 1.0 +} +``` + +camel + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 2 +} +``` + +cat + +```json +"minecraft:behavior.random_stroll": { + "priority": 8, + "speed_multiplier": 0.8 +} +``` + +cave_spider + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 0.8 +} +``` + +chicken + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 1.0 +} +``` + +cow + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 0.8 +} +``` + +creeper + +```json +"minecraft:behavior.random_stroll": { + "priority": 5, + "speed_multiplier": 1 +} +``` + +donkey + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 0.7 +} +``` + +drowned + +```json +"minecraft:behavior.random_stroll": { + "priority": 7, + "speed_multiplier": 1 +} +``` + +enderman + +```json +"minecraft:behavior.random_stroll": { + "priority": 7, + "speed_multiplier": 1.0 +} +``` + +endermite + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 1 +} +``` + +evocation_illager + +```json +"minecraft:behavior.random_stroll": { + "priority": 8, + "speed_multiplier": 0.6 +} +``` + +fox + +```json +"minecraft:behavior.random_stroll": { + "priority": 13, + "speed_multiplier": 0.8 +} +``` + +frog + +```json +"minecraft:behavior.random_stroll": { + "priority": 11 +} +``` + +goat + +```json +"minecraft:behavior.random_stroll": { + "priority": 9, + "speed_multiplier": 0.6 +} +``` + +hoglin + +```json +"minecraft:behavior.random_stroll": { + "priority": 7, + "speed_multiplier": 0.4 +} +``` + +horse + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 0.7 +} +``` + +husk + +```json +"minecraft:behavior.random_stroll": { + "priority": 7, + "speed_multiplier": 1 +} +``` + +iron_golem + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 0.6, + "xz_dist": 16 +} +``` + +llama + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 0.7 +} +``` + +mooshroom + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 0.8 +} +``` + +mule + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 0.7 +} +``` + +ocelot + +```json +"minecraft:behavior.random_stroll": { + "priority": 8, + "speed_multiplier": 0.8 +} +``` + +panda + +```json +"minecraft:behavior.random_stroll": { + "priority": 14, + "speed_multiplier": 0.8 +} +``` + +pig + +```json +"minecraft:behavior.random_stroll": { + "priority": 7, + "speed_multiplier": 1.0 +} +``` + +piglin + +```json +"minecraft:behavior.random_stroll": { + "priority": 10, + "speed_multiplier": 0.6 +} +``` + +piglin_brute + +```json +"minecraft:behavior.random_stroll": { + "priority": 7, + "speed_multiplier": 0.6 +} +``` + +pillager + +```json +"minecraft:behavior.random_stroll": { + "priority": 8, + "speed_multiplier": 1 +} +``` + +polar_bear + +```json +"minecraft:behavior.random_stroll": { + "priority": 5 +} +``` + +rabbit + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 0.6, + "xz_dist": 2, + "y_dist": 1 +} +``` + +ravager + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 1.0 +} +``` + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 0.4 +} +``` + +sheep + +```json +"minecraft:behavior.random_stroll": { + "priority": 7, + "speed_multiplier": 0.8 +} +``` + +skeleton + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 1 +} +``` + +skeleton_horse + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 0.7 +} +``` + +sniffer + +```json +"minecraft:behavior.random_stroll": { + "priority": 7, + "speed_multiplier": 1 +} +``` + +snow_golem + +```json +"minecraft:behavior.random_stroll": { + "priority": 2, + "speed_multiplier": 1 +} +``` + +spider + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 0.8 +} +``` + +stray + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 1 +} +``` + +strider + +```json +"minecraft:behavior.random_stroll": { + "priority": 8, + "speed_multiplier": 0.8 +} +``` + +trader_llama + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 0.7 +} +``` + +turtle + +```json +"minecraft:behavior.random_stroll": { + "priority": 9, + "interval": 100 +} +``` + +villager + +```json +"minecraft:behavior.random_stroll": { + "priority": 11, + "speed_multiplier": 0.6 +} +``` + +villager_v2 + +```json +"minecraft:behavior.random_stroll": { + "priority": 11, + "speed_multiplier": 0.6 +} +``` + +vindicator + +```json +"minecraft:behavior.random_stroll": { + "priority": 9, + "speed_multiplier": 1 +} +``` + +wandering_trader + +```json +"minecraft:behavior.random_stroll": { + "priority": 7, + "speed_multiplier": 0.6 +} +``` + +warden + +```json +"minecraft:behavior.random_stroll": { + "priority": 9, + "speed_multiplier": 0.5 +} +``` + +witch + +```json +"minecraft:behavior.random_stroll": { + "priority": 4, + "speed_multiplier": 1.0 +} +``` + +wither + +```json +"minecraft:behavior.random_stroll": { + "priority": 5, + "speed_multiplier": 1 +} +``` + +wither_skeleton + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 1 +} +``` + +wolf + +```json +"minecraft:behavior.random_stroll": { + "priority": 8, + "speed_multiplier": 1.0 +} +``` + +zoglin + +```json +"minecraft:behavior.random_stroll": { + "priority": 7, + "speed_multiplier": 1.0 +} +``` + +zombie + +```json +"minecraft:behavior.random_stroll": { + "priority": 7, + "speed_multiplier": 1 +} +``` + +zombie_horse + +```json +"minecraft:behavior.random_stroll": { + "priority": 6, + "speed_multiplier": 0.7 +} +``` + +zombie_pigman + +```json +"minecraft:behavior.random_stroll": { + "priority": 7, + "speed_multiplier": 1.0 +} +``` + +zombie_villager + +```json +"minecraft:behavior.random_stroll": { + "priority": 9, + "speed_multiplier": 1 +} +``` + +zombie_villager_v2 + +```json +"minecraft:behavior.random_stroll": { + "priority": 9, + "speed_multiplier": 1 +} +``` + +## behavior.random_swim + +axolotl + +```json +"minecraft:behavior.random_swim": { + "priority": 8, + "interval": 0, + "xz_dist": 30, + "y_dist": 15 +} +``` + +dolphin + +```json +"minecraft:behavior.random_swim": { + "priority": 5, + "interval": 0, + "xz_dist": 20 +} +``` + +elder_guardian + +```json +"minecraft:behavior.random_swim": { + "priority": 7, + "speed_multiplier": 0.5, + "avoid_surface": false +} +``` + +cod + +```json +"minecraft:behavior.random_swim": { + "priority": 3, + "speed_multiplier": 1.0, + "xz_dist": 16, + "y_dist": 4, + "interval": 0 +} +``` + +guardian + +```json +"minecraft:behavior.random_swim": { + "priority": 7, + "speed_multiplier": 1.0, + "interval": 80, + "avoid_surface": false +} +``` + +pufferfish + +```json +"minecraft:behavior.random_swim": { + "priority": 3, + "speed_multiplier": 1.0, + "xz_dist": 16, + "y_dist": 4, + "interval": 0 +} +``` + +salmon + +```json +"minecraft:behavior.random_swim": { + "speed_multiplier": 1.0, + "priority": 3, + "xz_dist": 16, + "y_dist": 4, + "interval": 0 +} +``` + +tadpole + +```json +"minecraft:behavior.random_swim": { + "priority": 2, + "interval": 100 +} +``` + +tropicalfish + +```json +"minecraft:behavior.random_swim": { + "priority": 3, + "speed_multiplier": 1.0, + "xz_dist": 16, + "y_dist": 4, + "interval": 0 +} +``` + +turtle + +```json +"minecraft:behavior.random_swim": { + "priority": 7, + "interval": 0, + "xz_dist": 30, + "y_dist": 15 +} +``` + +## behavior.ranged_attack + +blaze + +```json +"minecraft:behavior.ranged_attack": { + "priority": 3, + "burst_shots": 3, + "burst_interval": 0.3, + "charge_charged_trigger": 0.0, + "charge_shoot_trigger": 4.0, + "attack_interval_min": 3.0, + "attack_interval_max": 5.0, + "attack_radius": 16.0 +} +``` + +drowned + +```json +"minecraft:behavior.ranged_attack": { + "priority": 3, + "attack_interval_min": 1.0, + "attack_interval_max": 3.0, + "attack_radius": 10.0, + "swing": true +} +``` + +ghast + +```json +"minecraft:behavior.ranged_attack": { + "priority": 1, + "attack_radius": 64, + "charge_shoot_trigger": 2, + "charge_charged_trigger": 1 +} +``` + +llama + +```json +"minecraft:behavior.ranged_attack": { + "priority": 2, + "attack_radius": 64, + "charge_shoot_trigger": 2, + "charge_charged_trigger": 1 +} +``` + +```json +"minecraft:behavior.ranged_attack": { + "priority": 2, + "attack_radius": 64, + "charge_shoot_trigger": 2, + "charge_charged_trigger": 1 +} +``` + +piglin + +```json +"minecraft:behavior.ranged_attack": { + "priority": 8, + "attack_interval_min": 1, + "attack_interval_max": 1, + "attack_radius": 8, + "attack_radius_min": 4, + "speed_multiplier": 1.0, + "target_in_sight_time": 0.1 +} +``` + +pillager + +```json +"minecraft:behavior.ranged_attack": { + "priority": 4, + "attack_interval_min": 1.0, + "attack_interval_max": 1.0, + "attack_radius": 8.0 +} +``` + +shulker + +```json +"minecraft:behavior.ranged_attack": { + "attack_interval_min": 1, + "attack_interval_max": 3, + "attack_radius": 15 +} +``` + +skeleton + +```json +"minecraft:behavior.ranged_attack": { + "priority": 0, + "attack_interval_min": 1.0, + "attack_interval_max": 3.0, + "attack_radius": 15.0 +} +``` + +```json +"minecraft:behavior.ranged_attack": { + "priority": 0, + "attack_interval_min": 1.0, + "attack_interval_max": 3.0, + "attack_radius": 15.0 +} +``` + +snow_golem + +```json +"minecraft:behavior.ranged_attack": { + "priority": 1, + "speed_multiplier": 1.25, + "attack_interval": 1, + "attack_radius": 10 +} +``` + +stray + +```json +"minecraft:behavior.ranged_attack": { + "priority": 0, + "attack_interval_min": 1.0, + "attack_interval_max": 3.0, + "attack_radius": 15.0 +} +``` + +```json +"minecraft:behavior.ranged_attack": { + "priority": 0, + "attack_interval_min": 1.0, + "attack_interval_max": 3.0, + "attack_radius": 15.0 +} +``` + +trader_llama + +```json +"minecraft:behavior.ranged_attack": { + "priority": 2, + "attack_radius": 64, + "charge_shoot_trigger": 2, + "charge_charged_trigger": 1 +} +``` + +```json +"minecraft:behavior.ranged_attack": { + "priority": 2, + "attack_radius": 64, + "charge_shoot_trigger": 2, + "charge_charged_trigger": 1 +} +``` + +```json +"minecraft:behavior.ranged_attack": { + "priority": 2, + "attack_radius": 64, + "charge_shoot_trigger": 2, + "charge_charged_trigger": 1 +} +``` + +witch + +```json +"minecraft:behavior.ranged_attack": { + "priority": 2, + "speed_multiplier": 1.0, + "attack_interval_min": 3, + "attack_interval_max": 3, + "attack_radius": 10.0 +} +``` + +## behavior.receive_love + +villager + +```json +"minecraft:behavior.receive_love": { + "priority": 7 +} +``` + +villager_v2 + +```json +"minecraft:behavior.receive_love": { + "priority": 6 +} +``` + +## behavior.restrict_open_door + +villager + +```json +"minecraft:behavior.restrict_open_door": { + "priority": 5 +} +``` + +## behavior.rise_to_liquid_level + +strider + +```json +"minecraft:behavior.rise_to_liquid_level": { + "priority": 0, + "liquid_y_offset": 0.25, + "rise_delta": 0.01, + "sink_delta": 0.01 +} +``` + +## behavior.rising + +sniffer + +```json +"minecraft:behavior.rising": { + "priority": 2, + "cooldown_range": 0.0, + "duration_range": [ + 2.0, + 5.0 + ], + "on_end": { + "event": "on_rising_end", + "target": "self" + } +} +``` + +## behavior.roar + +warden + +```json +"minecraft:behavior.roar": { + "priority": 2, + "duration": 4.2 +} +``` + +## behavior.roll + +panda + +```json +"minecraft:behavior.roll": { + "priority": 12, + "probability": 0.0016 +} +``` + +```json +"minecraft:behavior.roll": { + "priority": 12, + "probability": 0.013 +} +``` + +## behavior.run_around_like_crazy + +donkey + +```json +"minecraft:behavior.run_around_like_crazy": { + "priority": 1, + "speed_multiplier": 1.2 +} +``` + +horse + +```json +"minecraft:behavior.run_around_like_crazy": { + "priority": 1, + "speed_multiplier": 1.2 +} +``` + +llama + +```json +"minecraft:behavior.run_around_like_crazy": { + "priority": 1, + "speed_multiplier": 1.2 +} +``` + +mule + +```json +"minecraft:behavior.run_around_like_crazy": { + "priority": 1, + "speed_multiplier": 1.2 +} +``` + +trader_llama + +```json +"minecraft:behavior.run_around_like_crazy": { + "priority": 1, + "speed_multiplier": 1.2 +} +``` + +## behavior.scared + +panda + +```json +"minecraft:behavior.scared": { + "priority": 1, + "sound_interval": 20 +} +``` + +## behavior.scenting + +sniffer + +```json +"minecraft:behavior.scenting": { + "priority": 6, + "cooldown_range": [ + 400.0, + 500.0 + ], + "duration_range": 2.0, + "on_end": { + "event": "on_scenting_success", + "target": "self" + } +} +``` + +## behavior.send_event + +evocation_illager + +```json +"minecraft:behavior.send_event": { + "priority": 3, + "event_choices": [ + { + "min_activation_range": 0.0, + "max_activation_range": 16.0, + "cooldown_time": 5.0, + "cast_duration": 3.0, + "particle_color": "#FFB38033", + "weight": 3, + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "sheep" + }, + { + "test": "is_color", + "subject": "other", + "value": "blue" + } + ] + }, + "start_sound_event": "cast.spell", + "sequence": [ + { + "base_delay": 2.0, + "event": "wololo", + "sound_event": "prepare.wololo" + } + ] + } + ] +} +``` + +## behavior.share_items + +villager + +```json +"minecraft:behavior.share_items": { + "priority": 8, + "max_dist": 3, + "goal_radius": 2.0, + "speed_multiplier": 0.5, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "villager" + } + } + ] +} +``` + +villager_v2 + +```json +"minecraft:behavior.share_items": { + "priority": 10, + "max_dist": 3, + "goal_radius": 2.0, + "speed_multiplier": 0.5, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "villager" + } + } + ] +} +``` + +## behavior.silverfish_merge_with_stone + +silverfish + +```json +"minecraft:behavior.silverfish_merge_with_stone": { + "priority": 5 +} +``` + +## behavior.silverfish_wake_up_friends + +silverfish + +```json +"minecraft:behavior.silverfish_wake_up_friends": { + "priority": 1 +} +``` + +## behavior.skeleton_horse_trap + +skeleton_horse + +```json +"minecraft:behavior.skeleton_horse_trap": { + "within_radius": 10.0, + "duration": 900.0, + "priority": 2 +} +``` + +## behavior.sleep + +villager_v2 + +```json +"minecraft:behavior.sleep": {} +``` + +```json +"minecraft:behavior.sleep": { + "priority": 3, + "goal_radius": 1.5, + "speed_multiplier": 0.6, + "sleep_collider_height": 0.3, + "sleep_collider_width": 1.0, + "sleep_y_offset": 0.6, + "timeout_cooldown": 10.0 +} +``` + +## behavior.slime_attack + +magma_cube + +```json +"minecraft:behavior.slime_attack": { + "priority": 3 +} +``` + +slime + +```json +"minecraft:behavior.slime_attack": { + "priority": 3 +} +``` + +## behavior.slime_float + +magma_cube + +```json +"minecraft:behavior.slime_float": { + "priority": 1, + "jump_chance_percentage": 0.8, + "speed_multiplier": 1.2 +} +``` + +slime + +```json +"minecraft:behavior.slime_float": { + "priority": 1, + "jump_chance_percentage": 0.8, + "speed_multiplier": 1.2 +} +``` + +## behavior.slime_keep_on_jumping + +magma_cube + +```json +"minecraft:behavior.slime_keep_on_jumping": { + "priority": 5, + "speed_multiplier": 1.0 +} +``` + +slime + +```json +"minecraft:behavior.slime_keep_on_jumping": { + "priority": 5, + "speed_multiplier": 1.0 +} +``` + +## behavior.slime_random_direction + +magma_cube + +```json +"minecraft:behavior.slime_random_direction": { + "priority": 4, + "add_random_time_range": 3, + "turn_range": 360, + "min_change_direction_time": 2.0 +} +``` + +slime + +```json +"minecraft:behavior.slime_random_direction": { + "priority": 4, + "add_random_time_range": 3, + "turn_range": 360, + "min_change_direction_time": 2.0 +} +``` + +## behavior.snacking + +panda + +```json +"minecraft:behavior.snacking": { + "priority": 2, + "snacking_cooldown": 22.5, + "snacking_cooldown_min": 20, + "snacking_stop_chance": 0.001334, + "items": [ + "bamboo", + "cake" + ] +} +``` + +```json +"minecraft:behavior.snacking": { + "priority": 3, + "snacking_cooldown": 17.5, + "snacking_cooldown_min": 10, + "snacking_stop_chance": 0.0011, + "items": [ + "bamboo", + "cake" + ] +} +``` + +## behavior.sneeze + +panda + +```json +"minecraft:behavior.sneeze": { + "priority": 7, + "probability": 0.0001666, + "cooldown_time": 1.0, + "within_radius": 10.0, + "entity_types": [ + { + "filters": { + "all_of": [ + { + "test": "has_component", + "subject": "other", + "operator": "!=", + "value": "minecraft:is_baby" + }, + { + "test": "is_family", + "subject": "other", + "value": "panda" + }, + { + "test": "in_water", + "subject": "other", + "operator": "!=", + "value": true + }, + { + "test": "on_ground", + "operator": "==", + "value": true + } + ] + }, + "max_dist": 10 + } + ], + "drop_item_chance": 0.001, + "loot_table": "loot_tables/entities/panda_sneeze.json", + "prepare_sound": "presneeze", + "prepare_time": 1.0, + "sound": "sneeze" +} +``` + +```json +"minecraft:behavior.sneeze": { + "priority": 7, + "probability": 0.002, + "cooldown_time": 1.0, + "within_radius": 10.0, + "entity_types": [ + { + "filters": { + "all_of": [ + { + "test": "has_component", + "subject": "other", + "operator": "!=", + "value": "minecraft:is_baby" + }, + { + "test": "is_family", + "subject": "other", + "value": "panda" + }, + { + "test": "in_water", + "subject": "other", + "operator": "!=", + "value": true + }, + { + "test": "on_ground", + "operator": "==", + "value": true + } + ] + }, + "max_dist": 10 + } + ], + "drop_item_chance": 0.001, + "loot_table": "loot_tables/entities/panda_sneeze.json", + "prepare_sound": "presneeze", + "prepare_time": 1.0, + "sound": "sneeze" +} +``` + +## behavior.sniff + +warden + +```json +"minecraft:behavior.sniff": { + "priority": 6, + "duration": 4.16, + "sniffing_radius": 24.0, + "suspicion_radius_horizontal": 6.0, + "suspicion_radius_vertical": 20.0, + "cooldown_range": [ + 5.0, + 10.0 + ] +} +``` + +## behavior.sonic_boom + +warden + +```json +"minecraft:behavior.sonic_boom": { + "priority": 3, + "duration": 3.0, + "speed_multiplier": 1.2, + "attack_damage": 10, + "attack_range_horizontal": 15, + "attack_range_vertical": 20, + "attack_cooldown": 2, + "knockback_vertical_strength": 0.5, + "knockback_horizontal_strength": 2.5, + "knockback_height_cap": 0.5, + "duration_until_attack_sound": 1.7, + "charge_sound": "sonic_charge", + "attack_sound": "sonic_boom" +} +``` + +## behavior.squid_dive + +glow_squid + +```json +"minecraft:behavior.squid_dive": { + "priority": 2 +} +``` + +squid + +```json +"minecraft:behavior.squid_dive": { + "priority": 2 +} +``` + +## behavior.squid_flee + +glow_squid + +```json +"minecraft:behavior.squid_flee": { + "priority": 2 +} +``` + +squid + +```json +"minecraft:behavior.squid_flee": { + "priority": 2 +} +``` + +## behavior.squid_idle + +glow_squid + +```json +"minecraft:behavior.squid_idle": { + "priority": 2 +} +``` + +squid + +```json +"minecraft:behavior.squid_idle": { + "priority": 2 +} +``` + +## behavior.squid_move_away_from_ground + +glow_squid + +```json +"minecraft:behavior.squid_move_away_from_ground": { + "priority": 1 +} +``` + +squid + +```json +"minecraft:behavior.squid_move_away_from_ground": { + "priority": 1 +} +``` + +## behavior.squid_out_of_water + +glow_squid + +```json +"minecraft:behavior.squid_out_of_water": { + "priority": 2 +} +``` + +squid + +```json +"minecraft:behavior.squid_out_of_water": { + "priority": 2 +} +``` + +## behavior.stalk_and_pounce_on_target + +fox + +```json +"minecraft:behavior.stalk_and_pounce_on_target": { + "priority": 7, + "stalk_speed": 1.2, + "max_stalk_dist": 12.0, + "leap_height": 0.9, + "leap_dist": 0.8, + "pounce_max_dist": 5.0, + "interest_time": 2.0, + "stuck_time": 2.0, + "strike_dist": 2.0, + "stuck_blocks": { + "test": "is_block", + "subject": "block", + "operator": "==", + "value": "snow_layer" + } +} +``` + +## behavior.stay_near_noteblock + +allay + +```json +"minecraft:behavior.stay_near_noteblock": { + "priority": 5, + "speed": 8, + "start_distance": 16, + "stop_distance": 4 +} +``` + +## behavior.stay_while_sitting + +cat + +```json +"minecraft:behavior.stay_while_sitting": { + "priority": 3 +} +``` + +ocelot + +```json +"minecraft:behavior.stay_while_sitting": { + "priority": 3 +} +``` + +parrot + +```json +"minecraft:behavior.stay_while_sitting": { + "priority": 1 +} +``` + +wolf + +```json +"minecraft:behavior.stay_while_sitting": { + "priority": 3 +} +``` + +## behavior.stomp_attack + +polar_bear + +```json +"minecraft:behavior.stomp_attack": { + "priority": 1, + "track_target": true, + "require_complete_path": true, + "stomp_range_multiplier": 2.0, + "no_damage_range_multiplier": 2.0 +} +``` + +## behavior.stomp_turtle_egg + +drowned + +```json +"minecraft:behavior.stomp_turtle_egg": { + "priority": 4, + "speed_multiplier": 1, + "search_range": 10, + "search_height": 2, + "goal_radius": 1.14, + "interval": 20 +} +``` + +husk + +```json +"minecraft:behavior.stomp_turtle_egg": { + "priority": 4, + "speed_multiplier": 1, + "search_range": 10, + "search_height": 2, + "goal_radius": 1.14, + "interval": 20 +} +``` + +zombie + +```json +"minecraft:behavior.stomp_turtle_egg": { + "priority": 4, + "speed_multiplier": 1, + "search_range": 10, + "search_height": 2, + "goal_radius": 1.14, + "interval": 20 +} +``` + +zombie_pigman + +```json +"minecraft:behavior.stomp_turtle_egg": { + "priority": 5, + "speed_multiplier": 1, + "search_range": 10, + "search_height": 2, + "goal_radius": 1.14, + "interval": 20 +} +``` + +zombie_villager + +```json +"minecraft:behavior.stomp_turtle_egg": { + "priority": 4, + "speed_multiplier": 1, + "search_range": 10, + "search_height": 2, + "goal_radius": 1.14, + "interval": 20 +} +``` + +zombie_villager_v2 + +```json +"minecraft:behavior.stomp_turtle_egg": { + "priority": 4, + "speed_multiplier": 1, + "search_range": 10, + "search_height": 2, + "goal_radius": 1.14, + "interval": 20 +} +``` + +## behavior.stroll_towards_village + +fox + +```json +"minecraft:behavior.stroll_towards_village": { + "priority": 11, + "speed_multiplier": 1.0, + "goal_radius": 3.0, + "cooldown_time": 10.0, + "search_range": 32, + "start_chance": 0.005 +} +``` + +## behavior.summon_entity + +evocation_illager + +```json +"minecraft:behavior.summon_entity": { + "priority": 2, + "summon_choices": [ + { + "min_activation_range": 0.0, + "max_activation_range": 3.0, + "cooldown_time": 5.0, + "weight": 3, + "cast_duration": 2.0, + "particle_color": "#FF664D59", + "start_sound_event": "cast.spell", + "sequence": [ + { + "shape": "circle", + "target": "self", + "base_delay": 1.0, + "delay_per_summon": 0.0, + "num_entities_spawned": 5, + "entity_type": "minecraft:evocation_fang", + "size": 1.5, + "entity_lifespan": 1.1, + "sound_event": "prepare.attack" + }, + { + "shape": "circle", + "target": "self", + "base_delay": 0.15, + "delay_per_summon": 0.0, + "num_entities_spawned": 8, + "entity_type": "minecraft:evocation_fang", + "size": 2.5, + "entity_lifespan": 1.1 + } + ] + }, + { + "min_activation_range": 3.0, + "weight": 3, + "cooldown_time": 5.0, + "cast_duration": 2.0, + "particle_color": "#FF664D59", + "start_sound_event": "cast.spell", + "sequence": [ + { + "shape": "line", + "target": "self", + "base_delay": 1.0, + "delay_per_summon": 0.05, + "num_entities_spawned": 16, + "entity_type": "minecraft:evocation_fang", + "size": 20, + "entity_lifespan": 1.1 + } + ] + }, + { + "weight": 1, + "cooldown_time": 17.0, + "cast_duration": 5.0, + "particle_color": "#FFB3B3CC", + "sequence": [ + { + "shape": "circle", + "target": "self", + "base_delay": 5.0, + "num_entities_spawned": 3, + "entity_type": "minecraft:vex", + "summon_cap": 8, + "summon_cap_radius": 16.0, + "size": 1.0, + "sound_event": "prepare.summon" + } + ] + } + ] +} +``` + +## behavior.swell + +creeper + +```json +"minecraft:behavior.swell": { + "start_distance": 2.5, + "stop_distance": 6.0, + "priority": 2 +} +``` + +## behavior.swim_idle + +axolotl + +```json +"minecraft:behavior.swim_idle": { + "priority": 7, + "idle_time": 5.0, + "success_rate": 0.05 +} +``` + +cod + +```json +"minecraft:behavior.swim_idle": { + "priority": 5, + "idle_time": 5.0, + "success_rate": 0.1 +} +``` + +salmon + +```json +"minecraft:behavior.swim_idle": { + "priority": 5, + "idle_time": 5.0, + "success_rate": 0.1 +} +``` + +tropicalfish + +```json +"minecraft:behavior.swim_idle": { + "priority": 5, + "idle_time": 5.0, + "success_rate": 0.1 +} +``` + +## behavior.swim_wander + +cod + +```json +"minecraft:behavior.swim_wander": { + "priority": 4, + "interval": 0.1, + "look_ahead": 2.0, + "speed_multiplier": 1.0, + "wander_time": 5.0 +} +``` + +pufferfish + +```json +"minecraft:behavior.swim_wander": { + "priority": 5, + "interval": 1.0, + "look_ahead": 2.0, + "speed_multiplier": 1.0, + "wander_time": 5.0 +} +``` + +salmon + +```json +"minecraft:behavior.swim_wander": { + "priority": 4, + "interval": 0.0166, + "look_ahead": 5.0, + "speed_multiplier": 0.014, + "wander_time": 5.0 +} +``` + +tropicalfish + +```json +"minecraft:behavior.swim_wander": { + "priority": 4, + "interval": 0.1, + "look_ahead": 2.0, + "speed_multiplier": 1.0, + "wander_time": 5.0 +} +``` + +## behavior.swim_with_entity + +dolphin + +```json +"minecraft:behavior.swim_with_entity": { + "priority": 4, + "success_rate": 0.1, + "chance_to_stop": 0.0333, + "state_check_interval": 0.5, + "catch_up_threshold": 12.0, + "match_direction_threshold": 2.0, + "catch_up_multiplier": 2.5, + "speed_multiplier": 1.5, + "search_range": 20.0, + "stop_distance": 5.0, + "entity_types": [ + { + "filters": { + "test": "is_family", + "subject": "other", + "value": "player" + } + } + ] +} +``` + +## behavior.swoop_attack + +phantom + +```json +"minecraft:behavior.swoop_attack": { + "priority": 2, + "damage_reach": 0.2, + "speed_multiplier": 1.0, + "delay_range": [ + 10.0, + 20.0 + ] +} +``` + +## behavior.take_flower + +villager + +```json +"minecraft:behavior.take_flower": { + "priority": 7, + "filters": { + "all_of": [ + { + "test": "is_daytime", + "value": true + } + ] + } +} +``` + +villager_v2 + +```json +"minecraft:behavior.take_flower": { + "priority": 9, + "filters": { + "all_of": [ + { + "test": "is_daytime", + "value": true + } + ] + } +} +``` + +## behavior.target_when_pushed + +iron_golem + +```json +"minecraft:behavior.target_when_pushed": { + "priority": 1, + "percent_chance": 5.0, + "entity_types": [ + { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "monster" + }, + { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "creeper" + } + ] + } + } + ] +} +``` + +## behavior.tempt + +axolotl + +```json +"minecraft:behavior.tempt": { + "priority": 2, + "speed_multiplier": 1.1, + "can_tempt_vertically": true, + "items": [ + "tropical_fish_bucket" + ] +} +``` + +bee + +```json +"minecraft:behavior.tempt": { + "priority": 5, + "speed_multiplier": 1.25, + "within_radius": 8, + "can_tempt_vertically": true, + "items": [ + "minecraft:red_flower", + "minecraft:yellow_flower", + "minecraft:wither_rose", + "minecraft:double_plant:0", + "minecraft:double_plant:1", + "minecraft:double_plant:4", + "minecraft:double_plant:5", + "minecraft:flowering_azalea", + "minecraft:azalea_leaves_flowered", + "minecraft:mangrove_propagule", + "minecraft:pitcher_plant", + "minecraft:torchflower", + "minecraft:cherry_leaves", + "minecraft:pink_petals" + ] +} +``` + +camel + +```json +"minecraft:behavior.tempt": { + "priority": 3, + "speed_multiplier": 2.5, + "can_tempt_vertically": true, + "items": [ + "cactus" + ] +} +``` + +cat + +```json +"minecraft:behavior.tempt": { + "priority": 5, + "speed_multiplier": 0.5, + "within_radius": 16, + "can_get_scared": true, + "items": [ + "fish", + "salmon" + ] +} +``` + +```json +"minecraft:behavior.tempt": { + "priority": 5, + "speed_multiplier": 0.5, + "within_radius": 16, + "items": [ + "fish", + "salmon" + ] +} +``` + +chicken + +```json +"minecraft:behavior.tempt": { + "priority": 4, + "speed_multiplier": 1.0, + "items": [ + "wheat_seeds", + "beetroot_seeds", + "melon_seeds", + "pumpkin_seeds", + "pitcher_pod", + "torchflower_seeds" + ] +} +``` + +cow + +```json +"minecraft:behavior.tempt": { + "priority": 4, + "speed_multiplier": 1.25, + "items": [ + "wheat" + ] +} +``` + +donkey + +```json +"minecraft:behavior.tempt": { + "priority": 5, + "speed_multiplier": 1.2, + "items": [ + "apple", + "carrot", + "golden_apple", + "appleEnchanted", + "golden_carrot", + "carrotOnAStick", + "hay_block", + "sugar", + "bread", + "wheat" + ] +} +``` + +fox + +```json +"minecraft:behavior.tempt": { + "priority": 3, + "speed_multiplier": 0.5, + "within_radius": 16, + "can_get_scared": true, + "items": [ + "sweet_berries", + "glow_berries" + ] +} +``` + +frog + +```json +"minecraft:behavior.tempt": { + "priority": 5, + "speed_multiplier": 1.25, + "can_tempt_vertically": true, + "items": [ + "slime_ball" + ] +} +``` + +goat + +```json +"minecraft:behavior.tempt": { + "priority": 4, + "speed_multiplier": 0.75, + "items": [ + "wheat" + ] +} +``` + +horse + +```json +"minecraft:behavior.tempt": { + "priority": 5, + "speed_multiplier": 1.2, + "items": [ + "golden_apple", + "appleEnchanted", + "golden_carrot" + ] +} +``` + +mooshroom + +```json +"minecraft:behavior.tempt": { + "priority": 4, + "speed_multiplier": 1.25, + "items": [ + "wheat" + ] +} +``` + +mule + +```json +"minecraft:behavior.tempt": { + "priority": 5, + "speed_multiplier": 1.2, + "items": [ + "apple", + "carrot", + "golden_apple", + "appleEnchanted", + "golden_carrot", + "carrotOnAStick", + "hay_block", + "sugar", + "bread", + "wheat" + ] +} +``` + +ocelot + +```json +"minecraft:behavior.tempt": { + "priority": 4, + "speed_multiplier": 0.5, + "within_radius": 16, + "can_get_scared": true, + "items": [ + "fish", + "salmon" + ] +} +``` + +```json +"minecraft:behavior.tempt": { + "priority": 4, + "speed_multiplier": 0.5, + "within_radius": 16, + "items": [ + "fish", + "salmon" + ] +} +``` + +panda + +```json +"minecraft:behavior.tempt": { + "priority": 4, + "speed_multiplier": 1.25, + "items": [ + "bamboo" + ] +} +``` + +pig + +```json +"minecraft:behavior.tempt": { + "priority": 5, + "speed_multiplier": 1.2, + "items": [ + "potato", + "carrot", + "beetroot", + "carrotOnAStick" + ] +} +``` + +rabbit + +```json +"minecraft:behavior.tempt": { + "priority": 3, + "speed_multiplier": 1, + "items": [ + "golden_carrot", + "carrot", + "yellow_flower" + ] +} +``` + +sheep + +```json +"minecraft:behavior.tempt": { + "priority": 4, + "speed_multiplier": 1.25, + "items": [ + "wheat" + ] +} +``` + +sniffer + +```json +"minecraft:behavior.tempt": { + "priority": 4, + "speed_multiplier": 1.25, + "items": [ + "torchflower_seeds" + ] +} +``` + +strider + +```json +"minecraft:behavior.tempt": { + "priority": 5, + "speed_multiplier": 1.2, + "items": [ + "warped_fungus", + "warped_fungus_on_a_stick" + ], + "can_tempt_while_ridden": true, + "tempt_sound": "tempt", + "sound_interval": { + "range_min": 2.0, + "range_max": 5.0 + } +} +``` + +tadpole + +```json +"minecraft:behavior.tempt": { + "priority": 5, + "speed_multiplier": 1.25, + "can_tempt_vertically": true, + "items": [ + "slime_ball" + ] +} +``` + +turtle + +```json +"minecraft:behavior.tempt": { + "priority": 3, + "speed_multiplier": 1.1, + "can_tempt_vertically": true, + "items": [ + "seagrass" + ] +} +``` + +## behavior.trade_interest + +villager_v2 + +```json +"minecraft:behavior.trade_interest": {} +``` + +```json +"minecraft:behavior.trade_interest": { + "priority": 5, + "within_radius": 6.0, + "interest_time": 45.0, + "remove_item_time": 1.0, + "carried_item_switch_time": 2.0, + "cooldown": 2.0 +} +``` + +```json +"minecraft:behavior.trade_interest": { + "priority": 5, + "within_radius": 6.0, + "interest_time": 45.0, + "remove_item_time": 1.0, + "carried_item_switch_time": 2.0, + "cooldown": 2.0 +} +``` + +```json +"minecraft:behavior.trade_interest": { + "priority": 5, + "within_radius": 6.0, + "interest_time": 45.0, + "remove_item_time": 1.0, + "carried_item_switch_time": 2.0, + "cooldown": 2.0 +} +``` + +```json +"minecraft:behavior.trade_interest": { + "priority": 5, + "within_radius": 6.0, + "interest_time": 45.0, + "remove_item_time": 1.0, + "carried_item_switch_time": 2.0, + "cooldown": 2.0 +} +``` + +```json +"minecraft:behavior.trade_interest": { + "priority": 5, + "within_radius": 6.0, + "interest_time": 45.0, + "remove_item_time": 1.0, + "carried_item_switch_time": 2.0, + "cooldown": 2.0 +} +``` + +```json +"minecraft:behavior.trade_interest": { + "priority": 5, + "within_radius": 6.0, + "interest_time": 45.0, + "remove_item_time": 1.0, + "carried_item_switch_time": 2.0, + "cooldown": 2.0 +} +``` + +```json +"minecraft:behavior.trade_interest": { + "priority": 5, + "within_radius": 6.0, + "interest_time": 45.0, + "remove_item_time": 1.0, + "carried_item_switch_time": 2.0, + "cooldown": 2.0 +} +``` + +```json +"minecraft:behavior.trade_interest": { + "priority": 5, + "within_radius": 6.0, + "interest_time": 45.0, + "remove_item_time": 1.0, + "carried_item_switch_time": 2.0, + "cooldown": 2.0 +} +``` + +```json +"minecraft:behavior.trade_interest": { + "priority": 5, + "within_radius": 6.0, + "interest_time": 45.0, + "remove_item_time": 1.0, + "carried_item_switch_time": 2.0, + "cooldown": 2.0 +} +``` + +```json +"minecraft:behavior.trade_interest": { + "priority": 5, + "within_radius": 6.0, + "interest_time": 45.0, + "remove_item_time": 1.0, + "carried_item_switch_time": 2.0, + "cooldown": 2.0 +} +``` + +```json +"minecraft:behavior.trade_interest": { + "priority": 5, + "within_radius": 6.0, + "interest_time": 45.0, + "remove_item_time": 1.0, + "carried_item_switch_time": 2.0, + "cooldown": 2.0 +} +``` + +```json +"minecraft:behavior.trade_interest": { + "priority": 5, + "within_radius": 6.0, + "interest_time": 45.0, + "remove_item_time": 1.0, + "carried_item_switch_time": 2.0, + "cooldown": 2.0 +} +``` + +```json +"minecraft:behavior.trade_interest": { + "priority": 5, + "within_radius": 6.0, + "interest_time": 45.0, + "remove_item_time": 1.0, + "carried_item_switch_time": 2.0, + "cooldown": 2.0 +} +``` + +wandering_trader + +```json +"minecraft:behavior.trade_interest": { + "priority": 3, + "within_radius": 6.0, + "interest_time": 45.0, + "remove_item_time": 1.0, + "carried_item_switch_time": 2.0, + "cooldown": 2.0 +} +``` + +## behavior.trade_with_player + +villager + +```json +"minecraft:behavior.trade_with_player": { + "priority": 1, + "filters": { + "all_of": [ + { + "all_of": [ + { + "test": "in_water", + "value": false + } + ] + }, + { + "any_of": [ + { + "test": "on_ground", + "value": true + }, + { + "test": "is_sleeping", + "value": true + } + ] + } + ] + } +} +``` + +villager_v2 + +```json +"minecraft:behavior.trade_with_player": { + "priority": 2, + "filters": { + "all_of": [ + { + "all_of": [ + { + "test": "in_water", + "value": false + } + ] + }, + { + "any_of": [ + { + "test": "on_ground", + "value": true + }, + { + "test": "is_sleeping", + "value": true + } + ] + } + ] + } +} +``` + +wandering_trader + +```json +"minecraft:behavior.trade_with_player": { + "priority": 1, + "filters": { + "all_of": [ + { + "all_of": [ + { + "test": "in_water", + "value": false + } + ] + }, + { + "any_of": [ + { + "test": "on_ground", + "value": true + }, + { + "test": "is_sleeping", + "value": true + } + ] + } + ] + } +} +``` + +## behavior.wither_random_attack_pos_goal + +wither + +```json +"minecraft:behavior.wither_random_attack_pos_goal": { + "priority": 3 +} +``` + +## behavior.wither_target_highest_damage + +wither + +```json +"minecraft:behavior.wither_target_highest_damage": { + "priority": 1 +} +``` + +## behavior.work + +villager_v2 + +```json +"minecraft:behavior.work": {} +``` + +```json +"minecraft:behavior.work": { + "priority": 7, + "active_time": 250, + "speed_multiplier": 0.5, + "goal_cooldown": 200, + "sound_delay_min": 100, + "sound_delay_max": 200, + "can_work_in_rain": false, + "work_in_rain_tolerance": 100, + "on_arrival": { + "event": "minecraft:resupply_trades", + "target": "self" + } +} +``` + +```json +"minecraft:behavior.work": { + "priority": 7, + "active_time": 250, + "speed_multiplier": 0.5, + "goal_cooldown": 200, + "sound_delay_min": 100, + "sound_delay_max": 200, + "can_work_in_rain": false, + "work_in_rain_tolerance": 100, + "on_arrival": { + "event": "minecraft:resupply_trades", + "target": "self" + } +} +``` + +```json +"minecraft:behavior.work": { + "priority": 7, + "active_time": 250, + "speed_multiplier": 0.5, + "goal_cooldown": 200, + "sound_delay_min": 100, + "sound_delay_max": 200, + "can_work_in_rain": false, + "work_in_rain_tolerance": 100, + "on_arrival": { + "event": "minecraft:resupply_trades", + "target": "self" + } +} +``` + +## behavior.work_composter + +villager_v2 + +```json +"minecraft:behavior.work_composter": {} +``` + +```json +"minecraft:behavior.work_composter": { + "priority": 9, + "active_time": 250, + "speed_multiplier": 0.5, + "goal_cooldown": 200, + "can_work_in_rain": false, + "work_in_rain_tolerance": 100, + "on_arrival": { + "event": "minecraft:resupply_trades", + "target": "self" + } +} +``` + +## block_climber + +endermite + +```json +"minecraft:block_climber": {} +``` + +fox + +```json +"minecraft:block_climber": {} +``` + +player + +```json +"minecraft:block_climber": {} +``` + +rabbit + +```json +"minecraft:block_climber": {} +``` + +silverfish + +```json +"minecraft:block_climber": {} +``` + +## block_sensor + +bee + +```json +"minecraft:block_sensor": { + "sensor_radius": 16, + "sources": [ + { + "test": "has_silk_touch", + "subject": "other", + "value": false + } + ], + "on_break": [ + { + "block_list": [ + "minecraft:beehive", + "minecraft:bee_nest" + ], + "on_block_broken": "hive_destroyed" + } + ] +} +``` + +piglin + +```json +"minecraft:block_sensor": { + "sensor_radius": 16, + "on_break": [ + { + "block_list": [ + "minecraft:gold_block", + "minecraft:gilded_blackstone", + "minecraft:nether_gold_ore", + "minecraft:deepslate_gold_ore", + "minecraft:raw_gold_block", + "minecraft:gold_ore", + "minecraft:chest", + "minecraft:trapped_chest", + "minecraft:ender_chest", + "minecraft:barrel", + "minecraft:shulker_box", + "minecraft:undyed_shulker_box" + ], + "on_block_broken": "important_block_destroyed_event" + } + ] +} +``` + +## boostable + +pig + +```json +"minecraft:boostable": { + "speed_multiplier": 1.35, + "duration": 3.0, + "boost_items": [ + { + "item": "carrotOnAStick", + "damage": 2, + "replace_item": "fishing_rod" + } + ] +} +``` + +strider + +```json +"minecraft:boostable": { + "speed_multiplier": 1.35, + "duration": 16.0, + "boost_items": [ + { + "item": "warped_fungus_on_a_stick", + "damage": 1, + "replace_item": "fishing_rod" + } + ] +} +``` + +## boss + +ender_dragon + +```json +"minecraft:boss": { + "should_darken_sky": false, + "hud_range": 125 +} +``` + +wither + +```json +"minecraft:boss": { + "should_darken_sky": true, + "hud_range": 55 +} +``` + +## break_blocks + +ravager + +```json +"minecraft:break_blocks": { + "breakable_blocks": [ + "bamboo", + "bamboo_sapling", + "beetroot", + "brown_mushroom", + "carrots", + "carved_pumpkin", + "chorus_flower", + "chorus_plant", + "deadbush", + "double_plant", + "leaves", + "leaves2", + "lit_pumpkin", + "melon_block", + "melon_stem", + "potatoes", + "pumpkin", + "pumpkin_stem", + "red_flower", + "red_mushroom", + "crimson_fungus", + "warped_fungus", + "reeds", + "sapling", + "snow_layer", + "sweet_berry_bush", + "tallgrass", + "turtle_egg", + "vine", + "waterlily", + "wheat", + "yellow_flower", + "azalea", + "flowering_azalea", + "azalea_leaves", + "azalea_leaves_flowered", + "cave_vines", + "cave_vines_body_with_berries", + "cave_vines_head_with_berries", + "small_dripleaf_block", + "big_dripleaf", + "spore_blossom", + "hanging_roots", + "mangrove_leaves" + ] +} +``` + +## breathable + +allay + +```json +"minecraft:breathable": { + "totalSupply": 15, + "suffocateTime": 0 +} +``` + +axolotl + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_water": true, + "breathes_air": true, + "generates_bubbles": false +} +``` + +bat + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +bee + +```json +"minecraft:breathable": { + "totalSupply": 15, + "suffocateTime": 0 +} +``` + +camel + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +cat + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +cave_spider + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +chicken + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +cow + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +creeper + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +dolphin + +```json +"minecraft:breathable": { + "total_supply": 240, + "suffocate_time": 0, + "breathes_air": true, + "breathes_water": false, + "generates_bubbles": false +} +``` + +donkey + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +drowned + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_air": true, + "breathes_water": true +} +``` + +elder_guardian + +```json +"minecraft:breathable": { + "breathes_water": true +} +``` + +enderman + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +endermite + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +evocation_illager + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +cod + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_air": false, + "breathes_water": true +} +``` + +fox + +```json +"minecraft:breathable": { + "totalSupply": 15, + "suffocateTime": 0 +} +``` + +frog + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_water": true, + "breathes_air": true, + "generates_bubbles": false +} +``` + +ghast + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +glow_squid + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_air": false, + "breathes_water": true +} +``` + +goat + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +guardian + +```json +"minecraft:breathable": { + "breathes_water": true +} +``` + +hoglin + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +horse + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +husk + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_water": true +} +``` + +llama + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +magma_cube + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_lava": true +} +``` + +mooshroom + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +mule + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +ocelot + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +panda + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +parrot + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +phantom + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_air": true, + "breathes_water": false +} +``` + +pig + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +piglin + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +piglin_brute + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +pillager + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +player + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": -1, + "inhale_time": 3.75, + "generates_bubbles": false +} +``` + +polar_bear + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +pufferfish + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_air": false, + "breathes_water": true +} +``` + +rabbit + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +ravager + +```json +"minecraft:breathable": { + "suffocate_time": 0, + "total_supply": 15 +} +``` + +salmon + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_air": false, + "breathes_water": true +} +``` + +sheep + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +shulker + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_lava": false, + "breathes_water": false +} +``` + +silverfish + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +skeleton + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_water": true +} +``` + +skeleton_horse + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_water": true +} +``` + +slime + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +sniffer + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +snow_golem + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +spider + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +squid + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_air": false, + "breathes_water": true +} +``` + +stray + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_water": true +} +``` + +tadpole + +```json +"minecraft:breathable": { + "total_supply": 8, + "suffocate_time": 0, + "breathes_water": true, + "breathes_air": false, + "generates_bubbles": false +} +``` + +trader_llama + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +tropicalfish + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_air": false, + "breathes_water": true +} +``` + +turtle + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_water": true, + "breathes_air": true, + "generates_bubbles": false +} +``` + +villager + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +villager_v2 + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +vindicator + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +wandering_trader + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +warden + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +witch + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +wither + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +wither_skeleton + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_water": true +} +``` + +wolf + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0 +} +``` + +zoglin + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_water": true +} +``` + +zombie + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_air": true, + "breathes_water": true +} +``` + +zombie_horse + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_water": true +} +``` + +zombie_pigman + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_water": true +} +``` + +zombie_villager + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_water": true +} +``` + +zombie_villager_v2 + +```json +"minecraft:breathable": { + "total_supply": 15, + "suffocate_time": 0, + "breathes_water": true +} +``` + +## breedable + +axolotl + +```json +"minecraft:breedable": { + "require_tame": false, + "breed_items": "tropical_fish_bucket", + "transform_to_item": "water_bucket:0", + "breeds_with": { + "mate_type": "minecraft:axolotl", + "baby_type": "minecraft:axolotl", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + }, + "mutation_factor": { + "variant": 0.00083 + } +} +``` + +bee + +```json +"minecraft:breedable": { + "require_tame": false, + "breeds_with": { + "mate_type": "minecraft:bee", + "baby_type": "minecraft:bee", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + }, + "breed_items": [ + "minecraft:red_flower", + "minecraft:yellow_flower", + "minecraft:wither_rose", + "minecraft:double_plant:0", + "minecraft:double_plant:1", + "minecraft:double_plant:4", + "minecraft:double_plant:5", + "minecraft:flowering_azalea", + "minecraft:azalea_leaves_flowered", + "minecraft:mangrove_propagule", + "minecraft:pitcher_plant", + "minecraft:torchflower", + "minecraft:cherry_leaves", + "minecraft:pink_petals" + ] +} +``` + +camel + +```json +"minecraft:breedable": { + "require_tame": false, + "breeds_with": [ + { + "mate_type": "minecraft:camel", + "baby_type": "minecraft:camel", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + } + ], + "breed_items": [ + "cactus" + ] +} +``` + +cat + +```json +"minecraft:breedable": { + "require_tame": true, + "require_full_health": true, + "allow_sitting": true, + "breeds_with": { + "mate_type": "minecraft:cat", + "baby_type": "minecraft:cat", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + }, + "breed_items": [ + "fish", + "salmon" + ] +} +``` + +chicken + +```json +"minecraft:breedable": { + "require_tame": false, + "breeds_with": { + "mate_type": "minecraft:chicken", + "baby_type": "minecraft:chicken", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + }, + "breed_items": [ + "wheat_seeds", + "beetroot_seeds", + "melon_seeds", + "pumpkin_seeds", + "pitcher_pod", + "torchflower_seeds" + ] +} +``` + +cow + +```json +"minecraft:breedable": { + "require_tame": false, + "breed_items": "wheat", + "breeds_with": { + "mate_type": "minecraft:cow", + "baby_type": "minecraft:cow", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + } +} +``` + +donkey + +```json +"minecraft:breedable": { + "parent_centric_attribute_blending": [ + "minecraft:health" + ], + "require_tame": true, + "inherit_tamed": false, + "breeds_with": [ + { + "mate_type": "minecraft:donkey", + "baby_type": "minecraft:donkey", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + }, + { + "mate_type": "minecraft:horse", + "baby_type": "minecraft:mule", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + } + ], + "breed_items": [ + "golden_carrot", + "golden_apple", + "appleEnchanted" + ] +} +``` + +fox + +```json +"minecraft:breedable": { + "require_tame": false, + "breed_items": [ + "sweet_berries", + "glow_berries" + ], + "breeds_with": { + "mate_type": "minecraft:fox", + "baby_type": "minecraft:fox", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + } +} +``` + +frog + +```json +"minecraft:breedable": { + "require_tame": false, + "causes_pregnancy": true, + "breeds_with": { + "mate_type": "minecraft:frog", + "baby_type": "minecraft:tadpole", + "breed_event": { + "event": "become_pregnant" + } + }, + "breed_items": [ + "slime_ball" + ] +} +``` + +goat + +```json +"minecraft:breedable": { + "require_tame": false, + "breed_items": "wheat", + "breeds_with": { + "mate_type": "minecraft:goat", + "baby_type": "minecraft:goat", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + }, + "mutation_factor": { + "variant": 0 + } +} +``` + +hoglin + +```json +"minecraft:breedable": { + "require_tame": false, + "love_filters": { + "test": "has_component", + "subject": "self", + "operator": "!=", + "value": "minecraft:attack_cooldown" + }, + "breeds_with": { + "mate_type": "minecraft:hoglin", + "baby_type": "minecraft:hoglin", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + }, + "breed_items": [ + "crimson_fungus" + ] +} +``` + +horse + +```json +"minecraft:breedable": { + "parent_centric_attribute_blending": [ + "minecraft:health", + "minecraft:movement", + "minecraft:horse.jump_strength" + ], + "require_tame": true, + "inherit_tamed": false, + "breeds_with": [ + { + "mate_type": "minecraft:horse", + "baby_type": "minecraft:horse", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + }, + { + "mate_type": "minecraft:donkey", + "baby_type": "minecraft:mule", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + } + ], + "breed_items": [ + "golden_carrot", + "golden_apple", + "appleEnchanted" + ], + "mutation_factor": { + "extra_variant": 0.2, + "variant": 0.111 + }, + "mutation_strategy": "random", + "random_variant_mutation_interval": [ + 0, + 7 + ], + "random_extra_variant_mutation_interval": [ + 0, + 5 + ] +} +``` + +llama + +```json +"minecraft:breedable": { + "parent_centric_attribute_blending": [ + "minecraft:health" + ], + "require_tame": true, + "inherit_tamed": false, + "breeds_with": { + "mate_type": "minecraft:llama", + "baby_type": "minecraft:llama", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + }, + "breed_items": [ + "hay_block" + ] +} +``` + +mooshroom + +```json +"minecraft:breedable": { + "require_tame": false, + "breed_items": "wheat", + "breeds_with": { + "mate_type": "minecraft:mooshroom", + "baby_type": "minecraft:mooshroom", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + }, + "deny_parents_variant": { + "chance": 0.00098, + "min_variant": 0, + "max_variant": 1 + } +} +``` + +ocelot + +```json +"minecraft:breedable": { + "require_tame": false, + "breeds_with": { + "mate_type": "minecraft:ocelot", + "baby_type": "minecraft:ocelot", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + }, + "breed_items": [ + "fish", + "salmon" + ] +} +``` + +panda + +```json +"minecraft:breedable": { + "require_tame": false, + "blend_attributes": false, + "environment_requirements": { + "blocks": "bamboo", + "count": 8, + "radius": 5 + }, + "breed_items": "bamboo", + "breeds_with": { + "mate_type": "minecraft:panda", + "baby_type": "minecraft:panda", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + }, + "mutation_factor": { + "variant": 1.0 + } +} +``` + +pig + +```json +"minecraft:breedable": { + "require_tame": false, + "breeds_with": { + "mate_type": "minecraft:pig", + "baby_type": "minecraft:pig", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + }, + "breed_items": [ + "carrot", + "beetroot", + "potato" + ] +} +``` + +rabbit + +```json +"minecraft:breedable": { + "breed_items": [ + "golden_carrot", + "carrot", + "yellow_flower" + ], + "breeds_with": { + "mate_type": "minecraft:rabbit", + "baby_type": "minecraft:rabbit" + }, + "require_tame": false, + "mutation_factor": { + "variant": 0.2 + } +} +``` + +sheep + +```json +"minecraft:breedable": { + "require_tame": false, + "breeds_with": { + "mate_type": "minecraft:sheep", + "baby_type": "minecraft:sheep" + }, + "breed_items": "wheat" +} +``` + +sniffer + +```json +"minecraft:breedable": { + "require_tame": false, + "causes_pregnancy": true, + "breeds_with": [ + { + "mate_type": "minecraft:sniffer", + "breed_event": { + "event": "on_pregnant", + "target": "self" + } + } + ], + "breed_items": [ + "torchflower_seeds" + ] +} +``` + +strider + +```json +"minecraft:breedable": { + "require_tame": false, + "breeds_with": { + "mate_type": "minecraft:strider", + "baby_type": "minecraft:strider", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + }, + "breed_items": [ + "warped_fungus" + ] +} +``` + +trader_llama + +```json +"minecraft:breedable": { + "require_tame": true, + "inherit_tamed": false, + "breeds_with": [ + { + "mate_type": "minecraft:llama", + "baby_type": "minecraft:llama", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + }, + { + "mate_type": "minecraft:trader_llama", + "baby_type": "minecraft:trader_llama", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + } + ], + "breed_items": [ + "hay_block" + ] +} +``` + +turtle + +```json +"minecraft:breedable": { + "require_tame": false, + "causes_pregnancy": true, + "breeds_with": { + "mate_type": "minecraft:turtle", + "baby_type": "minecraft:turtle", + "breed_event": { + "event": "minecraft:become_pregnant", + "target": "self" + } + }, + "breed_items": [ + "seagrass" + ] +} +``` + +wolf + +```json +"minecraft:breedable": { + "require_tame": true, + "require_full_health": true, + "breeds_with": { + "mate_type": "minecraft:wolf", + "baby_type": "minecraft:wolf", + "breed_event": { + "event": "minecraft:entity_born", + "target": "baby" + } + }, + "breed_items": [ + "chicken", + "cooked_chicken", + "beef", + "cooked_beef", + "muttonRaw", + "muttonCooked", + "porkchop", + "cooked_porkchop", + "rabbit", + "cooked_rabbit", + "rotten_flesh" + ] +} +``` + +## bribeable + +dolphin + +```json +"minecraft:bribeable": { + "bribe_items": [ + "fish", + "salmon" + ] +} +``` + +## buoyant + +boat + +```json +"minecraft:buoyant": { + "base_buoyancy": 1.0, + "apply_gravity": true, + "simulate_waves": true, + "big_wave_probability": 0.03, + "big_wave_speed": 10.0, + "liquid_blocks": [ + "minecraft:water", + "minecraft:flowing_water" + ] +} +``` + +```json +"minecraft:buoyant": { + "base_buoyancy": 1.0, + "apply_gravity": true, + "simulate_waves": true, + "big_wave_probability": 0.03, + "big_wave_speed": 10.0, + "liquid_blocks": [ + "minecraft:water", + "minecraft:flowing_water" + ] +} +``` + +```json +"minecraft:buoyant": { + "base_buoyancy": 1.0, + "apply_gravity": true, + "simulate_waves": false, + "liquid_blocks": [ + "minecraft:water", + "minecraft:flowing_water" + ], + "drag_down_on_buoyancy_removed": 0.7 +} +``` + +```json +"minecraft:buoyant": { + "base_buoyancy": 1.0, + "apply_gravity": true, + "simulate_waves": false, + "liquid_blocks": [ + "minecraft:water", + "minecraft:flowing_water" + ], + "drag_down_on_buoyancy_removed": 0.7 +} +``` + +chest_boat + +```json +"minecraft:buoyant": { + "base_buoyancy": 1.0, + "apply_gravity": true, + "simulate_waves": true, + "big_wave_probability": 0.03, + "big_wave_speed": 10.0, + "liquid_blocks": [ + "minecraft:water", + "minecraft:flowing_water" + ] +} +``` + +```json +"minecraft:buoyant": { + "base_buoyancy": 1.0, + "apply_gravity": true, + "simulate_waves": true, + "big_wave_probability": 0.03, + "big_wave_speed": 10.0, + "liquid_blocks": [ + "minecraft:water", + "minecraft:flowing_water" + ] +} +``` + +```json +"minecraft:buoyant": { + "base_buoyancy": 1.0, + "apply_gravity": true, + "simulate_waves": false, + "liquid_blocks": [ + "minecraft:water", + "minecraft:flowing_water" + ], + "drag_down_on_buoyancy_removed": 0.7 +} +``` + +```json +"minecraft:buoyant": { + "base_buoyancy": 1.0, + "apply_gravity": true, + "simulate_waves": false, + "liquid_blocks": [ + "minecraft:water", + "minecraft:flowing_water" + ], + "drag_down_on_buoyancy_removed": 0.7 +} +``` + +xp_orb + +```json +"minecraft:buoyant": { + "apply_gravity": false, + "liquid_blocks": [ + "minecraft:flowing_water", + "minecraft:water" + ] +} +``` + +## burns_in_daylight + +drowned + +```json +"minecraft:burns_in_daylight": {} +``` + +magma_cube + +```json +"minecraft:burns_in_daylight": false +``` + +phantom + +```json +"minecraft:burns_in_daylight": {} +``` + +skeleton + +```json +"minecraft:burns_in_daylight": {} +``` + +stray + +```json +"minecraft:burns_in_daylight": {} +``` + +zombie + +```json +"minecraft:burns_in_daylight": {} +``` + +zombie_villager + +```json +"minecraft:burns_in_daylight": {} +``` + +zombie_villager_v2 + +```json +"minecraft:burns_in_daylight": {} +``` + +## can_climb + +blaze + +```json +"minecraft:can_climb": {} +``` + +camel + +```json +"minecraft:can_climb": {} +``` + +cat + +```json +"minecraft:can_climb": {} +``` + +cave_spider + +```json +"minecraft:can_climb": {} +``` + +chicken + +```json +"minecraft:can_climb": {} +``` + +cow + +```json +"minecraft:can_climb": {} +``` + +creeper + +```json +"minecraft:can_climb": {} +``` + +dolphin + +```json +"minecraft:can_climb": {} +``` + +drowned + +```json +"minecraft:can_climb": {} +``` + +enderman + +```json +"minecraft:can_climb": {} +``` + +endermite + +```json +"minecraft:can_climb": {} +``` + +evocation_illager + +```json +"minecraft:can_climb": {} +``` + +fox + +```json +"minecraft:can_climb": {} +``` + +glow_squid + +```json +"minecraft:can_climb": {} +``` + +goat + +```json +"minecraft:can_climb": {} +``` + +hoglin + +```json +"minecraft:can_climb": {} +``` + +husk + +```json +"minecraft:can_climb": {} +``` + +iron_golem + +```json +"minecraft:can_climb": {} +``` + +magma_cube + +```json +"minecraft:can_climb": {} +``` + +mooshroom + +```json +"minecraft:can_climb": {} +``` + +ocelot + +```json +"minecraft:can_climb": {} +``` + +panda + +```json +"minecraft:can_climb": {} +``` + +pig + +```json +"minecraft:can_climb": {} +``` + +player + +```json +"minecraft:can_climb": {} +``` + +polar_bear + +```json +"minecraft:can_climb": {} +``` + +rabbit + +```json +"minecraft:can_climb": {} +``` + +sheep + +```json +"minecraft:can_climb": {} +``` + +silverfish + +```json +"minecraft:can_climb": {} +``` + +skeleton + +```json +"minecraft:can_climb": {} +``` + +slime + +```json +"minecraft:can_climb": {} +``` + +sniffer + +```json +"minecraft:can_climb": {} +``` + +snow_golem + +```json +"minecraft:can_climb": {} +``` + +spider + +```json +"minecraft:can_climb": {} +``` + +squid + +```json +"minecraft:can_climb": {} +``` + +stray + +```json +"minecraft:can_climb": {} +``` + +vex + +```json +"minecraft:can_climb": {} +``` + +villager + +```json +"minecraft:can_climb": {} +``` + +villager_v2 + +```json +"minecraft:can_climb": {} +``` + +wandering_trader + +```json +"minecraft:can_climb": {} +``` + +warden + +```json +"minecraft:can_climb": {} +``` + +witch + +```json +"minecraft:can_climb": {} +``` + +wither + +```json +"minecraft:can_climb": {} +``` + +wither_skeleton + +```json +"minecraft:can_climb": {} +``` + +wolf + +```json +"minecraft:can_climb": {} +``` + +zoglin + +```json +"minecraft:can_climb": {} +``` + +zombie + +```json +"minecraft:can_climb": {} +``` + +zombie_pigman + +```json +"minecraft:can_climb": {} +``` + +zombie_villager + +```json +"minecraft:can_climb": {} +``` + +zombie_villager_v2 + +```json +"minecraft:can_climb": {} +``` + +## can_fly + +allay + +```json +"minecraft:can_fly": {} +``` + +bat + +```json +"minecraft:can_fly": {} +``` + +bee + +```json +"minecraft:can_fly": {} +``` + +ghast + +```json +"minecraft:can_fly": {} +``` + +parrot + +```json +"minecraft:can_fly": {} +``` + +wither + +```json +"minecraft:can_fly": {} +``` + +## can_power_jump + +donkey + +```json +"minecraft:can_power_jump": {} +``` + +horse + +```json +"minecraft:can_power_jump": {} +``` + +mule + +```json +"minecraft:can_power_jump": {} +``` + +skeleton_horse + +```json +"minecraft:can_power_jump": {} +``` + +## celebrate_hunt + +piglin + +```json +"minecraft:celebrate_hunt": { + "celebration_targets": { + "all_of": [ + { + "test": "is_family", + "value": "hoglin" + } + ] + }, + "broadcast": true, + "duration": 10, + "celebrate_sound": "celebrate", + "sound_interval": { + "range_min": 2.0, + "range_max": 5.0 + }, + "radius": 16 +} +``` + +## collision_box + +allay + +```json +"minecraft:collision_box": { + "width": 0.35, + "height": 0.6 +} +``` + +armor_stand + +```json +"minecraft:collision_box": { + "width": 0.5, + "height": 1.975 +} +``` + +arrow + +```json +"minecraft:collision_box": { + "width": 0.25, + "height": 0.25 +} +``` + +axolotl + +```json +"minecraft:collision_box": { + "width": 0.75, + "height": 0.42 +} +``` + +bat + +```json +"minecraft:collision_box": { + "width": 0.5, + "height": 0.9 +} +``` + +bee + +```json +"minecraft:collision_box": { + "width": 0.55, + "height": 0.5 +} +``` + +blaze + +```json +"minecraft:collision_box": { + "width": 0.5, + "height": 1.8 +} +``` + +boat + +```json +"minecraft:collision_box": { + "width": 1.4, + "height": 0.455 +} +``` + +camel + +```json +"minecraft:collision_box": { + "width": 1.7, + "height": 2.375 +} +``` + +```json +"minecraft:collision_box": { + "width": 1.7, + "height": 0.945 +} +``` + +cat + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 0.7 +} +``` + +cave_spider + +```json +"minecraft:collision_box": { + "width": 0.7, + "height": 0.5 +} +``` + +chest_boat + +```json +"minecraft:collision_box": { + "width": 1.4, + "height": 0.455 +} +``` + +chest_minecart + +```json +"minecraft:collision_box": { + "width": 0.98, + "height": 0.7 +} +``` + +chicken + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 0.8 +} +``` + +command_block_minecart + +```json +"minecraft:collision_box": { + "width": 0.98, + "height": 0.7 +} +``` + +cow + +```json +"minecraft:collision_box": { + "width": 0.9, + "height": 1.3 +} +``` + +creeper + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 1.8 +} +``` + +dolphin + +```json +"minecraft:collision_box": { + "width": 0.9, + "height": 0.6 +} +``` + +donkey + +```json +"minecraft:collision_box": { + "width": 1.4, + "height": 1.6 +} +``` + +dragon_fireball + +```json +"minecraft:collision_box": { + "width": 0.31, + "height": 0.31 +} +``` + +drowned + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 1.9 +} +``` + +egg + +```json +"minecraft:collision_box": { + "width": 0.25, + "height": 0.25 +} +``` + +elder_guardian + +```json +"minecraft:collision_box": { + "width": 1.99, + "height": 1.99 +} +``` + +enderman + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 2.9 +} +``` + +endermite + +```json +"minecraft:collision_box": { + "width": 0.4, + "height": 0.3 +} +``` + +ender_crystal + +```json +"minecraft:collision_box": { + "width": 2, + "height": 2 +} +``` + +ender_dragon + +```json +"minecraft:collision_box": { + "width": 13, + "height": 4 +} +``` + +ender_pearl + +```json +"minecraft:collision_box": { + "width": 0.25, + "height": 0.25 +} +``` + +evocation_illager + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 1.9 +} +``` + +eye_of_ender_signal + +```json +"minecraft:collision_box": { + "width": 0.25, + "height": 0.25 +} +``` + +fireball + +```json +"minecraft:collision_box": { + "width": 1.0, + "height": 1.0 +} +``` + +fireworks_rocket + +```json +"minecraft:collision_box": { + "width": 0.25, + "height": 0.25 +} +``` + +cod + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 0.3 +} +``` + +fishing_hook + +```json +"minecraft:collision_box": { + "width": 0.15, + "height": 0.15 +} +``` + +fox + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 0.7 +} +``` + +frog + +```json +"minecraft:collision_box": { + "width": 0.5, + "height": 0.55 +} +``` + +ghast + +```json +"minecraft:collision_box": { + "width": 4.02, + "height": 4 +} +``` + +glow_squid + +```json +"minecraft:collision_box": { + "width": 0.95, + "height": 0.95 +} +``` + +goat + +```json +"minecraft:collision_box": { + "width": 0.9, + "height": 1.3 +} +``` + +guardian + +```json +"minecraft:collision_box": { + "width": 0.85, + "height": 0.85 +} +``` + +hoglin + +```json +"minecraft:collision_box": { + "width": 0.85, + "height": 0.85 +} +``` + +```json +"minecraft:collision_box": { + "width": 1.4, + "height": 1.4 +} +``` + +hopper_minecart + +```json +"minecraft:collision_box": { + "width": 0.98, + "height": 0.7 +} +``` + +horse + +```json +"minecraft:collision_box": { + "width": 1.4, + "height": 1.6 +} +``` + +husk + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 1.9 +} +``` + +iron_golem + +```json +"minecraft:collision_box": { + "width": 1.4, + "height": 2.9 +} +``` + +lingering_potion + +```json +"minecraft:collision_box": { + "width": 0.25, + "height": 0.25 +} +``` + +llama + +```json +"minecraft:collision_box": { + "width": 0.9, + "height": 1.87 +} +``` + +llama_spit + +```json +"minecraft:collision_box": { + "width": 0.31, + "height": 0.31 +} +``` + +magma_cube + +```json +"minecraft:collision_box": { + "width": 2.08, + "height": 2.08 +} +``` + +```json +"minecraft:collision_box": { + "width": 2.08, + "height": 2.08 +} +``` + +```json +"minecraft:collision_box": { + "width": 1.04, + "height": 1.02 +} +``` + +```json +"minecraft:collision_box": { + "width": 0.52, + "height": 0.52 +} +``` + +minecart + +```json +"minecraft:collision_box": { + "width": 0.98, + "height": 0.7 +} +``` + +mooshroom + +```json +"minecraft:collision_box": { + "width": 0.9, + "height": 1.3 +} +``` + +mule + +```json +"minecraft:collision_box": { + "width": 1.4, + "height": 1.6 +} +``` + +npc + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 2.1 +} +``` + +ocelot + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 0.7 +} +``` + +panda + +```json +"minecraft:collision_box": { + "width": 1.3, + "height": 1.25 +} +``` + +parrot + +```json +"minecraft:collision_box": { + "width": 0.5, + "height": 1 +} +``` + +phantom + +```json +"minecraft:collision_box": { + "width": 0.9, + "height": 0.5 +} +``` + +pig + +```json +"minecraft:collision_box": { + "width": 0.9, + "height": 0.9 +} +``` + +piglin + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 1.9 +} +``` + +piglin_brute + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 1.9 +} +``` + +pillager + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 1.9 +} +``` + +player + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 1.8 +} +``` + +polar_bear + +```json +"minecraft:collision_box": { + "width": 1.4, + "height": 1.4 +} +``` + +pufferfish + +```json +"minecraft:collision_box": { + "width": 0.8, + "height": 0.8 +} +``` + +rabbit + +```json +"minecraft:collision_box": { + "width": 0.67, + "height": 0.67 +} +``` + +ravager + +```json +"minecraft:collision_box": { + "height": 2.2, + "width": 1.95 +} +``` + +salmon + +```json +"minecraft:collision_box": { + "width": 0.5, + "height": 0.5 +} +``` + +sheep + +```json +"minecraft:collision_box": { + "width": 0.9, + "height": 1.3 +} +``` + +shulker_bullet + +```json +"minecraft:collision_box": { + "width": 0.625, + "height": 0.625 +} +``` + +silverfish + +```json +"minecraft:collision_box": { + "width": 0.4, + "height": 0.3 +} +``` + +skeleton + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 1.9 +} +``` + +skeleton_horse + +```json +"minecraft:collision_box": { + "width": 1.4, + "height": 1.6 +} +``` + +slime + +```json +"minecraft:collision_box": { + "width": 2.08, + "height": 2.08 +} +``` + +```json +"minecraft:collision_box": { + "width": 2.08, + "height": 2.08 +} +``` + +```json +"minecraft:collision_box": { + "width": 1.04, + "height": 1.04 +} +``` + +```json +"minecraft:collision_box": { + "width": 0.52, + "height": 0.52 +} +``` + +small_fireball + +```json +"minecraft:collision_box": { + "width": 0.31, + "height": 0.31 +} +``` + +sniffer + +```json +"minecraft:collision_box": { + "width": 1.9, + "height": 1.75 +} +``` + +snowball + +```json +"minecraft:collision_box": { + "width": 0.25, + "height": 0.25 +} +``` + +snow_golem + +```json +"minecraft:collision_box": { + "width": 0.4, + "height": 1.8 +} +``` + +spider + +```json +"minecraft:collision_box": { + "width": 1.4, + "height": 0.9 +} +``` + +splash_potion + +```json +"minecraft:collision_box": { + "width": 0.25, + "height": 0.25 +} +``` + +squid + +```json +"minecraft:collision_box": { + "width": 0.95, + "height": 0.95 +} +``` + +stray + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 1.9 +} +``` + +strider + +```json +"minecraft:collision_box": { + "width": 0.9, + "height": 1.7 +} +``` + +tadpole + +```json +"minecraft:collision_box": { + "width": 0.8, + "height": 0.6 +} +``` + +thrown_trident + +```json +"minecraft:collision_box": { + "width": 0.25, + "height": 0.35 +} +``` + +tnt + +```json +"minecraft:collision_box": { + "width": 0.98, + "height": 0.98 +} +``` + +tnt_minecart + +```json +"minecraft:collision_box": { + "width": 0.98, + "height": 0.7 +} +``` + +trader_llama + +```json +"minecraft:collision_box": { + "width": 0.9, + "height": 1.87 +} +``` + +tripod_camera + +```json +"minecraft:collision_box": { + "width": 0.75, + "height": 1.8 +} +``` + +tropicalfish + +```json +"minecraft:collision_box": { + "width": 0.4, + "height": 0.4 +} +``` + +turtle + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 0.2 +} +``` + +```json +"minecraft:collision_box": { + "width": 1.2, + "height": 0.4 +} +``` + +vex + +```json +"minecraft:collision_box": { + "width": 0.4, + "height": 0.8 +} +``` + +villager + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 1.9 +} +``` + +villager_v2 + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 1.9 +} +``` + +vindicator + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 1.9 +} +``` + +wandering_trader + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 1.9 +} +``` + +warden + +```json +"minecraft:collision_box": { + "width": 0.9, + "height": 2.9 +} +``` + +witch + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 1.9 +} +``` + +wither + +```json +"minecraft:collision_box": { + "width": 1, + "height": 3 +} +``` + +wither_skeleton + +```json +"minecraft:collision_box": { + "width": 0.72, + "height": 2.01 +} +``` + +wither_skull + +```json +"minecraft:collision_box": { + "width": 0.15, + "height": 0.15 +} +``` + +wither_skull_dangerous + +```json +"minecraft:collision_box": { + "width": 0.15, + "height": 0.15 +} +``` + +wolf + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 0.8 +} +``` + +xp_bottle + +```json +"minecraft:collision_box": { + "width": 0.25, + "height": 0.25 +} +``` + +xp_orb + +```json +"minecraft:collision_box": { + "width": 0.25, + "height": 0.25 +} +``` + +zoglin + +```json +"minecraft:collision_box": { + "width": 0.85, + "height": 0.85 +} +``` + +```json +"minecraft:collision_box": { + "width": 1.4, + "height": 1.4 +} +``` + +zombie + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 1.9 +} +``` + +zombie_horse + +```json +"minecraft:collision_box": { + "width": 1.4, + "height": 1.6 +} +``` + +zombie_pigman + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 1.9 +} +``` + +zombie_villager + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 1.9 +} +``` + +zombie_villager_v2 + +```json +"minecraft:collision_box": { + "width": 0.6, + "height": 1.9 +} +``` + +## color + +cat + +```json +"minecraft:color": { + "value": 14 +} +``` + +sheep + +```json +"minecraft:color": { + "value": 0 +} +``` + +```json +"minecraft:color": { + "value": 12 +} +``` + +```json +"minecraft:color": { + "value": 15 +} +``` + +```json +"minecraft:color": { + "value": 8 +} +``` + +```json +"minecraft:color": { + "value": 7 +} +``` + +```json +"minecraft:color": { + "value": 6 +} +``` + +```json +"minecraft:color": { + "value": 14 +} +``` + +tropicalfish + +```json +"minecraft:color": { + "value": 0 +} +``` + +```json +"minecraft:color": { + "value": 1 +} +``` + +```json +"minecraft:color": { + "value": 2 +} +``` + +```json +"minecraft:color": { + "value": 3 +} +``` + +```json +"minecraft:color": { + "value": 4 +} +``` + +```json +"minecraft:color": { + "value": 5 +} +``` + +```json +"minecraft:color": { + "value": 6 +} +``` + +```json +"minecraft:color": { + "value": 7 +} +``` + +```json +"minecraft:color": { + "value": 8 +} +``` + +```json +"minecraft:color": { + "value": 9 +} +``` + +```json +"minecraft:color": { + "value": 10 +} +``` + +```json +"minecraft:color": { + "value": 11 +} +``` + +```json +"minecraft:color": { + "value": 12 +} +``` + +```json +"minecraft:color": { + "value": 13 +} +``` + +```json +"minecraft:color": { + "value": 14 +} +``` + +```json +"minecraft:color": { + "value": 1 +} +``` + +```json +"minecraft:color": { + "value": 7 +} +``` + +```json +"minecraft:color": { + "value": 7 +} +``` + +```json +"minecraft:color": { + "value": 0 +} +``` + +```json +"minecraft:color": { + "value": 11 +} +``` + +```json +"minecraft:color": { + "value": 1 +} +``` + +```json +"minecraft:color": { + "value": 6 +} +``` + +```json +"minecraft:color": { + "value": 10 +} +``` + +```json +"minecraft:color": { + "value": 0 +} +``` + +```json +"minecraft:color": { + "value": 0 +} +``` + +```json +"minecraft:color": { + "value": 0 +} +``` + +```json +"minecraft:color": { + "value": 0 +} +``` + +```json +"minecraft:color": { + "value": 9 +} +``` + +```json +"minecraft:color": { + "value": 5 +} +``` + +```json +"minecraft:color": { + "value": 14 +} +``` + +```json +"minecraft:color": { + "value": 7 +} +``` + +```json +"minecraft:color": { + "value": 14 +} +``` + +```json +"minecraft:color": { + "value": 0 +} +``` + +```json +"minecraft:color": { + "value": 14 +} +``` + +```json +"minecraft:color": { + "value": 7 +} +``` + +```json +"minecraft:color": { + "value": 4 +} +``` + +```json +"minecraft:color": { + "value": 9 +} +``` + +wolf + +```json +"minecraft:color": { + "value": 14 +} +``` + +## color2 + +tropicalfish + +```json +"minecraft:color2": { + "value": 0 +} +``` + +```json +"minecraft:color2": { + "value": 1 +} +``` + +```json +"minecraft:color2": { + "value": 2 +} +``` + +```json +"minecraft:color2": { + "value": 3 +} +``` + +```json +"minecraft:color2": { + "value": 4 +} +``` + +```json +"minecraft:color2": { + "value": 5 +} +``` + +```json +"minecraft:color2": { + "value": 6 +} +``` + +```json +"minecraft:color2": { + "value": 7 +} +``` + +```json +"minecraft:color2": { + "value": 8 +} +``` + +```json +"minecraft:color2": { + "value": 9 +} +``` + +```json +"minecraft:color2": { + "value": 10 +} +``` + +```json +"minecraft:color2": { + "value": 11 +} +``` + +```json +"minecraft:color2": { + "value": 12 +} +``` + +```json +"minecraft:color2": { + "value": 13 +} +``` + +```json +"minecraft:color2": { + "value": 14 +} +``` + +```json +"minecraft:color2": { + "value": 7 +} +``` + +```json +"minecraft:color2": { + "value": 7 +} +``` + +```json +"minecraft:color2": { + "value": 3 +} +``` + +```json +"minecraft:color2": { + "value": 7 +} +``` + +```json +"minecraft:color2": { + "value": 7 +} +``` + +```json +"minecraft:color2": { + "value": 0 +} +``` + +```json +"minecraft:color2": { + "value": 3 +} +``` + +```json +"minecraft:color2": { + "value": 4 +} +``` + +```json +"minecraft:color2": { + "value": 14 +} +``` + +```json +"minecraft:color2": { + "value": 4 +} +``` + +```json +"minecraft:color2": { + "value": 7 +} +``` + +```json +"minecraft:color2": { + "value": 1 +} +``` + +```json +"minecraft:color2": { + "value": 6 +} +``` + +```json +"minecraft:color2": { + "value": 3 +} +``` + +```json +"minecraft:color2": { + "value": 0 +} +``` + +```json +"minecraft:color2": { + "value": 14 +} +``` + +```json +"minecraft:color2": { + "value": 0 +} +``` + +```json +"minecraft:color2": { + "value": 4 +} +``` + +```json +"minecraft:color2": { + "value": 0 +} +``` + +```json +"minecraft:color2": { + "value": 0 +} +``` + +```json +"minecraft:color2": { + "value": 4 +} +``` + +```json +"minecraft:color2": { + "value": 4 +} +``` + +## combat_regeneration + +axolotl + +```json +"minecraft:combat_regeneration": {} +``` + +## conditional_bandwidth_optimization + +allay + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +area_effect_cloud + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +armor_stand + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +arrow + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 7, + "use_motion_prediction_hints": true + } +} +``` + +bat + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +bee + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +blaze + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +boat + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 60.0, + "max_dropped_ticks": 20, + "use_motion_prediction_hints": true + }, + "conditional_values": [ + { + "max_optimized_distance": 0.0, + "max_dropped_ticks": 0, + "use_motion_prediction_hints": true, + "conditional_values": [ + { + "test": "is_moving", + "subject": "self", + "operator": "==", + "value": true + } + ] + } + ] +} +``` + +camel + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +cat + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +cave_spider + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +chest_boat + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 60.0, + "max_dropped_ticks": 20, + "use_motion_prediction_hints": true + }, + "conditional_values": [ + { + "max_optimized_distance": 0.0, + "max_dropped_ticks": 0, + "use_motion_prediction_hints": true, + "conditional_values": [ + { + "test": "is_moving", + "subject": "self", + "operator": "==", + "value": true + } + ] + } + ] +} +``` + +chest_minecart + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 60.0, + "max_dropped_ticks": 20, + "use_motion_prediction_hints": true + }, + "conditional_values": [ + { + "max_optimized_distance": 0.0, + "max_dropped_ticks": 0, + "conditional_values": [ + { + "test": "is_moving", + "subject": "self", + "operator": "==", + "value": true + } + ] + } + ] +} +``` + +chicken + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +command_block_minecart + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 60.0, + "max_dropped_ticks": 20, + "use_motion_prediction_hints": true + }, + "conditional_values": [ + { + "max_optimized_distance": 0.0, + "max_dropped_ticks": 0, + "conditional_values": [ + { + "test": "is_moving", + "subject": "self", + "operator": "==", + "value": true + } + ] + } + ] +} +``` + +cow + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +creeper + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +dolphin + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +donkey + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +drowned + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +egg + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 7, + "use_motion_prediction_hints": true + } +} +``` + +elder_guardian + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +enderman + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 10, + "use_motion_prediction_hints": true + } +} +``` + +endermite + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +ender_crystal + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +ender_pearl + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 7, + "use_motion_prediction_hints": true + } +} +``` + +evocation_illager + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +eye_of_ender_signal + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 10, + "use_motion_prediction_hints": true + } +} +``` + +fireball + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 7, + "use_motion_prediction_hints": true + } +} +``` + +fireworks_rocket + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 10, + "use_motion_prediction_hints": true + } +} +``` + +cod + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +fishing_hook + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 7, + "use_motion_prediction_hints": true + } +} +``` + +fox + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +ghast + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +guardian + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +hoglin + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +hopper_minecart + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 60.0, + "max_dropped_ticks": 20, + "use_motion_prediction_hints": true + }, + "conditional_values": [ + { + "max_optimized_distance": 0.0, + "max_dropped_ticks": 0, + "conditional_values": [ + { + "test": "is_moving", + "subject": "self", + "operator": "==", + "value": true + } + ] + } + ] +} +``` + +horse + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +husk + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +iron_golem + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +lightning_bolt + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 10, + "use_motion_prediction_hints": true + } +} +``` + +lingering_potion + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 5, + "use_motion_prediction_hints": true + } +} +``` + +llama + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +llama_spit + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 7, + "use_motion_prediction_hints": true + } +} +``` + +magma_cube + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +minecart + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 60.0, + "max_dropped_ticks": 20, + "use_motion_prediction_hints": true + }, + "conditional_values": [ + { + "max_optimized_distance": 0.0, + "max_dropped_ticks": 0, + "conditional_values": [ + { + "test": "is_moving", + "subject": "self", + "operator": "==", + "value": true + } + ] + } + ] +} +``` + +mooshroom + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +mule + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +ocelot + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +panda + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +parrot + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +phantom + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +pig + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +piglin + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +piglin_brute + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +pillager + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +player + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +polar_bear + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +pufferfish + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +rabbit + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +ravager + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +salmon + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +sheep + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +shulker + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 10, + "use_motion_prediction_hints": true + } +} +``` + +shulker_bullet + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 7, + "use_motion_prediction_hints": true + } +} +``` + +silverfish + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +skeleton + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +skeleton_horse + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +slime + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +small_fireball + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 7, + "use_motion_prediction_hints": true + } +} +``` + +sniffer + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +snowball + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 100.0, + "max_dropped_ticks": 7, + "use_motion_prediction_hints": true + } +} +``` + +snow_golem + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +spider + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +splash_potion + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 5, + "use_motion_prediction_hints": true + } +} +``` + +squid + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +stray + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +strider + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +thrown_trident + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 7, + "use_motion_prediction_hints": true + } +} +``` + +tnt + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 5, + "use_motion_prediction_hints": true + } +} +``` + +tnt_minecart + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 60.0, + "max_dropped_ticks": 20, + "use_motion_prediction_hints": true + }, + "conditional_values": [ + { + "max_optimized_distance": 0.0, + "max_dropped_ticks": 0, + "conditional_values": [ + { + "test": "is_moving", + "subject": "self", + "operator": "==", + "value": true + } + ] + } + ] +} +``` + +trader_llama + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +tripod_camera + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +tropicalfish + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +turtle + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +vex + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +villager + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +villager_v2 + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +vindicator + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +wandering_trader + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +witch + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +wither + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +wither_skeleton + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +wither_skull + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 7, + "use_motion_prediction_hints": true + } +} +``` + +wither_skull_dangerous + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 7, + "use_motion_prediction_hints": true + } +} +``` + +wolf + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +xp_bottle + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 5, + "use_motion_prediction_hints": true + } +} +``` + +xp_orb + +```json +"minecraft:conditional_bandwidth_optimization": { + "default_values": { + "max_optimized_distance": 80.0, + "max_dropped_ticks": 10, + "use_motion_prediction_hints": true + } +} +``` + +zoglin + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +zombie + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +zombie_horse + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +zombie_pigman + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +zombie_villager + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +zombie_villager_v2 + +```json +"minecraft:conditional_bandwidth_optimization": {} +``` + +## custom_hit_test + +hoglin + +```json +"minecraft:custom_hit_test": { + "hitboxes": [ + { + "width": 1.0, + "height": 0.85, + "pivot": [ + 0, + 0.5, + 0 + ] + } + ] +} +``` + +```json +"minecraft:custom_hit_test": { + "hitboxes": [ + { + "width": 2.0, + "height": 1.75, + "pivot": [ + 0, + 1, + 0 + ] + } + ] +} +``` + +zoglin + +```json +"minecraft:custom_hit_test": { + "hitboxes": [ + { + "width": 1.0, + "height": 0.85, + "pivot": [ + 0, + 0.5, + 0 + ] + } + ] +} +``` + +```json +"minecraft:custom_hit_test": { + "hitboxes": [ + { + "width": 2.0, + "height": 1.75, + "pivot": [ + 0, + 1, + 0 + ] + } + ] +} +``` + +## damage_over_time + +axolotl + +```json +"minecraft:damage_over_time": { + "damage_per_hurt": 1, + "time_between_hurt": 0 +} +``` + +dolphin + +```json +"minecraft:damage_over_time": { + "damage_per_hurt": 1, + "time_between_hurt": 0 +} +``` + +## damage_sensor + +allay + +```json +"minecraft:damage_sensor": { + "triggers": [ + { + "on_damage": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_owner", + "subject": "other", + "value": true + } + ] + } + }, + "deals_damage": false + } + ] +} +``` + +axolotl + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "lightning", + "deals_damage": true, + "damage_multiplier": 2000.0 + } +} +``` + +bat + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "fall", + "deals_damage": false + } +} +``` + +bee + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "fall", + "deals_damage": false + } +} +``` + +blaze + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "fall", + "deals_damage": false + } +} +``` + +cat + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "fall", + "deals_damage": false + } +} +``` + +chicken + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "fall", + "deals_damage": false + } +} +``` + +creeper + +```json +"minecraft:damage_sensor": { + "triggers": { + "on_damage": { + "filters": { + "test": "is_family", + "subject": "other", + "value": "lightning" + }, + "event": "minecraft:become_charged" + }, + "deals_damage": false + } +} +``` + +ender_dragon + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "fall", + "deals_damage": false + } +} +``` + +fox + +```json +"minecraft:damage_sensor": { + "triggers": [ + { + "on_damage": { + "filters": { + "test": "is_block", + "subject": "block", + "value": "minecraft:sweet_berry_bush" + } + }, + "deals_damage": false + } + ] +} +``` + +frog + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "fall", + "deals_damage": true, + "damage_modifier": -5 + } +} +``` + +ghast + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "fall", + "deals_damage": false + } +} +``` + +goat + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "fall", + "deals_damage": true, + "damage_modifier": -10 + } +} +``` + +iron_golem + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "fall", + "deals_damage": false + } +} +``` + +llama + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "all", + "deals_damage": true, + "on_damage": { + "filters": { + "test": "in_caravan", + "value": false + }, + "event": "minecraft:become_angry" + } + } +} +``` + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "all", + "deals_damage": true + } +} +``` + +magma_cube + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "fall", + "deals_damage": false + } +} +``` + +mooshroom + +```json +"minecraft:damage_sensor": { + "triggers": [ + { + "on_damage": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "lightning" + }, + { + "test": "is_variant", + "subject": "self", + "operator": "==", + "value": 0 + } + ] + }, + "event": "minecraft:become_brown" + }, + "deals_damage": false, + "on_damage_sound_event": "convert_mooshroom" + }, + { + "on_damage": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "lightning" + }, + { + "test": "is_variant", + "subject": "self", + "operator": "==", + "value": 1 + } + ] + }, + "event": "minecraft:become_red" + }, + "deals_damage": false, + "on_damage_sound_event": "convert_mooshroom" + } + ] +} +``` + +npc + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "all", + "deals_damage": false + } +} +``` + +ocelot + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "fall", + "deals_damage": false + } +} +``` + +parrot + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "fall", + "deals_damage": false + } +} +``` + +pig + +```json +"minecraft:damage_sensor": { + "triggers": { + "on_damage": { + "filters": [ + { + "test": "is_family", + "subject": "other", + "value": "lightning" + }, + { + "test": "is_difficulty", + "operator": "!=", + "value": "peaceful" + } + ], + "event": "become_zombie" + }, + "deals_damage": false + } +} +``` + +pillager + +```json +"minecraft:damage_sensor": { + "triggers": { + "on_damage": { + "filters": { + "all_of": [ + { + "test": "has_damage", + "value": "fatal" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + } + ] + }, + "event": "minecraft:gain_bad_omen", + "target": "other" + } + } +} +``` + +```json +"minecraft:damage_sensor": { + "triggers": { + "on_damage": { + "filters": { + "all_of": [ + { + "test": "has_damage", + "value": "fatal" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + } + ] + }, + "event": "minecraft:gain_bad_omen", + "target": "other" + } + } +} +``` + +skeleton + +```json +"minecraft:damage_sensor": { + "triggers": { + "on_damage": { + "filters": { + "other_with_families": "lightning" + } + }, + "deals_damage": false + } +} +``` + +skeleton_horse + +```json +"minecraft:damage_sensor": { + "triggers": { + "on_damage": { + "filters": { + "test": "is_family", + "subject": "other", + "value": "lightning" + } + }, + "deals_damage": false + } +} +``` + +snow_golem + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "fall", + "deals_damage": false + } +} +``` + +trader_llama + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "all", + "deals_damage": true, + "on_damage": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "operator": "!=", + "value": "trader_llama" + }, + { + "test": "in_caravan", + "value": false + } + ] + }, + "event": "minecraft:become_angry" + } + } +} +``` + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "all", + "deals_damage": true + } +} +``` + +turtle + +```json +"minecraft:damage_sensor": { + "triggers": { + "cause": "lightning", + "deals_damage": true, + "damage_multiplier": 2000.0 + } +} +``` + +villager + +```json +"minecraft:damage_sensor": { + "triggers": [ + { + "on_damage": { + "filters": { + "test": "is_family", + "subject": "other", + "value": "lightning" + }, + "event": "become_witch" + }, + "deals_damage": false + }, + { + "on_damage": { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "zombie" + }, + { + "test": "is_family", + "subject": "other", + "value": "husk" + } + ], + "all_of": [ + { + "test": "has_damage", + "value": "fatal" + } + ] + }, + "event": "become_zombie" + } + } + ] +} +``` + +villager_v2 + +```json +"minecraft:damage_sensor": { + "triggers": [ + { + "on_damage": { + "filters": [ + { + "test": "is_family", + "subject": "other", + "value": "lightning" + }, + { + "test": "is_difficulty", + "operator": "!=", + "value": "peaceful" + } + ], + "event": "become_witch" + }, + "deals_damage": false + }, + { + "on_damage": { + "filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "zombie" + }, + { + "test": "is_family", + "subject": "other", + "value": "husk" + } + ], + "all_of": [ + { + "test": "has_damage", + "value": "fatal" + } + ] + }, + "event": "become_zombie" + } + } + ] +} +``` + +vindicator + +```json +"minecraft:damage_sensor": { + "triggers": { + "on_damage": { + "filters": { + "all_of": [ + { + "test": "has_damage", + "value": "fatal" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + } + ] + }, + "event": "minecraft:gain_bad_omen", + "target": "other" + } + } +} +``` + +```json +"minecraft:damage_sensor": { + "triggers": { + "on_damage": { + "filters": { + "all_of": [ + { + "test": "has_damage", + "value": "fatal" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + } + ] + }, + "event": "minecraft:gain_bad_omen", + "target": "other" + } + } +} +``` + +wandering_trader + +```json +"minecraft:damage_sensor": { + "triggers": [ + { + "cause": "entity_attack", + "deals_damage": true, + "on_damage": { + "event": "minecraft:become_scared" + } + }, + { + "cause": "projectile", + "deals_damage": true, + "on_damage": { + "event": "minecraft:become_scared" + } + }, + { + "cause": "magic", + "deals_damage": true, + "on_damage": { + "event": "minecraft:become_scared" + } + } + ] +} +``` + +witch + +```json +"minecraft:damage_sensor": {} +``` + +wither + +```json +"minecraft:damage_sensor": { + "triggers": { + "on_damage": { + "filters": { + "test": "is_family", + "subject": "other", + "value": "undead" + } + }, + "deals_damage": false + } +} +``` + +## dash + +camel + +```json +"minecraft:dash": { + "cooldown_time": 2.75, + "horizontal_momentum": 20.0, + "vertical_momentum": 0.6 +} +``` + +## despawn + +axolotl + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +bat + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +blaze + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +camel + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +cat + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +cave_spider + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +chicken + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +cow + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +creeper + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +dolphin + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +donkey + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +drowned + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +enderman + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +endermite + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +evocation_illager + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +cod + +```json +"minecraft:despawn": { + "despawn_from_distance": { + "min_distance": 32, + "max_distance": 40 + } +} +``` + +fox + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +frog + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +ghast + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +glow_squid + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +goat + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +guardian + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +hoglin + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +horse + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +husk + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +llama + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +magma_cube + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +mooshroom + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +mule + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +ocelot + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +panda + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +parrot + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +phantom + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +pig + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +piglin + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +piglin_brute + +```json +"minecraft:despawn": { + "filters": { + "any_of": [ + { + "all_of": [ + { + "test": "is_persistent", + "value": false + }, + { + "test": "distance_to_nearest_player", + "operator": ">", + "value": 54 + } + ] + }, + { + "all_of": [ + { + "test": "is_persistent", + "value": false + }, + { + "test": "inactivity_timer", + "subject": "self", + "value": 30 + }, + { + "test": "random_chance", + "value": 800 + }, + { + "test": "distance_to_nearest_player", + "operator": ">", + "value": 32 + } + ] + } + ] + } +} +``` + +pillager + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +polar_bear + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +pufferfish + +```json +"minecraft:despawn": { + "despawn_from_distance": { + "min_distance": 32, + "max_distance": 40 + } +} +``` + +rabbit + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +ravager + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +salmon + +```json +"minecraft:despawn": { + "despawn_from_distance": { + "min_distance": 32, + "max_distance": 40 + } +} +``` + +sheep + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +silverfish + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +skeleton + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +skeleton_horse + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +slime + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +spider + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +squid + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +stray + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +strider + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +tadpole + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +trader_llama + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +tropicalfish + +```json +"minecraft:despawn": { + "despawn_from_distance": { + "min_distance": 32, + "max_distance": 40 + } +} +``` + +turtle + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +vex + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +vindicator + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +wandering_trader + +```json +"minecraft:despawn": { + "remove_child_entities": true, + "filters": { + "all_of": [ + { + "any_of": [ + { + "test": "is_family", + "subject": "self", + "value": "wandering_trader_despawning" + }, + { + "test": "has_trade_supply", + "subject": "self", + "value": false + } + ] + }, + { + "test": "distance_to_nearest_player", + "operator": ">", + "value": 24 + } + ] + } +} +``` + +witch + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +wither_skeleton + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +wolf + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +zoglin + +```json +"minecraft:despawn": { + "filters": { + "any_of": [ + { + "all_of": [ + { + "test": "is_persistent", + "value": false + }, + { + "test": "distance_to_nearest_player", + "operator": ">", + "value": 54 + } + ] + }, + { + "all_of": [ + { + "test": "is_persistent", + "value": false + }, + { + "test": "inactivity_timer", + "subject": "self", + "value": 30 + }, + { + "test": "random_chance", + "value": 800 + }, + { + "test": "distance_to_nearest_player", + "operator": ">", + "value": 32 + } + ] + } + ] + } +} +``` + +zombie + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +zombie_horse + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +zombie_pigman + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +zombie_villager + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +zombie_villager_v2 + +```json +"minecraft:despawn": { + "despawn_from_distance": {} +} +``` + +## drying_out_timer + +axolotl + +```json +"minecraft:drying_out_timer": { + "total_time": 300, + "water_bottle_refill_time": 90, + "dried_out_event": { + "event": "dried_out" + }, + "stopped_drying_out_event": { + "event": "stop_drying_out" + }, + "recover_after_dried_out_event": { + "event": "recover_after_dried_out" + } +} +``` + +dolphin + +```json +"minecraft:drying_out_timer": { + "total_time": 120, + "water_bottle_refill_time": 0, + "dried_out_event": { + "event": "dried_out" + }, + "stopped_drying_out_event": { + "event": "stop_dryingout" + }, + "recover_after_dried_out_event": { + "event": "recover_after_dried_out" + } +} +``` + +## dweller + +cat + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "passive", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": false, + "can_migrate": true, + "first_founding_reward": 0 +} +``` + +evocation_illager + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "hostile", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": false, + "can_migrate": true, + "first_founding_reward": 0 +} +``` + +iron_golem + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "defender", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": false, + "can_migrate": true, + "first_founding_reward": 0 +} +``` + +pillager + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "hostile", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": false, + "can_migrate": true, + "first_founding_reward": 0 +} +``` + +ravager + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "hostile", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": false, + "can_migrate": true, + "first_founding_reward": 0 +} +``` + +villager_v2 + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "inhabitant", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": true, + "can_migrate": true, + "first_founding_reward": 5 +} +``` + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "inhabitant", + "preferred_profession": "farmer", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": true, + "can_migrate": true, + "first_founding_reward": 5 +} +``` + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "inhabitant", + "preferred_profession": "fisherman", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": true, + "can_migrate": true, + "first_founding_reward": 5 +} +``` + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "inhabitant", + "preferred_profession": "shepherd", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": true, + "can_migrate": true, + "first_founding_reward": 5 +} +``` + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "inhabitant", + "preferred_profession": "fletcher", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": true, + "can_migrate": true, + "first_founding_reward": 5 +} +``` + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "inhabitant", + "preferred_profession": "librarian", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": true, + "can_migrate": true, + "first_founding_reward": 5 +} +``` + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "inhabitant", + "preferred_profession": "cartographer", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": true, + "can_migrate": true, + "first_founding_reward": 5 +} +``` + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "inhabitant", + "preferred_profession": "cleric", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": true, + "can_migrate": true, + "first_founding_reward": 5 +} +``` + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "inhabitant", + "preferred_profession": "armorer", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": true, + "can_migrate": true, + "first_founding_reward": 5 +} +``` + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "inhabitant", + "preferred_profession": "weaponsmith", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": true, + "can_migrate": true, + "first_founding_reward": 5 +} +``` + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "inhabitant", + "preferred_profession": "toolsmith", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": true, + "can_migrate": true, + "first_founding_reward": 5 +} +``` + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "inhabitant", + "preferred_profession": "butcher", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": true, + "can_migrate": true, + "first_founding_reward": 5 +} +``` + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "inhabitant", + "preferred_profession": "leatherworker", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": true, + "can_migrate": true, + "first_founding_reward": 5 +} +``` + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "inhabitant", + "preferred_profession": "mason", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": true, + "can_migrate": true, + "first_founding_reward": 5 +} +``` + +vindicator + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "hostile", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": false, + "can_migrate": true, + "first_founding_reward": 0 +} +``` + +witch + +```json +"minecraft:dweller": { + "dwelling_type": "village", + "dweller_role": "hostile", + "update_interval_base": 60, + "update_interval_variant": 40, + "can_find_poi": false, + "can_migrate": true, + "first_founding_reward": 0 +} +``` + +## economy_trade_table + +villager_v2 + +```json +"minecraft:economy_trade_table": {} +``` + +```json +"minecraft:economy_trade_table": { + "display_name": "entity.villager.farmer", + "table": "trading/economy_trades/farmer_trades.json", + "new_screen": true, + "persist_trades": true, + "cured_discount": [ + -100, + -100 + ], + "max_cured_discount": [ + -500, + -500 + ] +} +``` + +```json +"minecraft:economy_trade_table": { + "display_name": "entity.villager.fisherman", + "table": "trading/economy_trades/fisherman_trades.json", + "new_screen": true, + "persist_trades": true, + "cured_discount": [ + -100, + -100 + ], + "max_cured_discount": [ + -500, + -500 + ] +} +``` + +```json +"minecraft:economy_trade_table": { + "display_name": "entity.villager.shepherd", + "table": "trading/economy_trades/shepherd_trades.json", + "new_screen": true, + "persist_trades": true, + "cured_discount": [ + -100, + -100 + ], + "max_cured_discount": [ + -500, + -500 + ] +} +``` + +```json +"minecraft:economy_trade_table": { + "display_name": "entity.villager.fletcher", + "table": "trading/economy_trades/fletcher_trades.json", + "new_screen": true, + "persist_trades": true, + "cured_discount": [ + -100, + -100 + ], + "max_cured_discount": [ + -500, + -500 + ] +} +``` + +```json +"minecraft:economy_trade_table": { + "display_name": "entity.villager.librarian", + "table": "trading/economy_trades/librarian_trades.json", + "new_screen": true, + "persist_trades": true, + "cured_discount": [ + -100, + -100 + ], + "max_cured_discount": [ + -500, + -500 + ] +} +``` + +```json +"minecraft:economy_trade_table": { + "display_name": "entity.villager.cartographer", + "table": "trading/economy_trades/cartographer_trades.json", + "new_screen": true, + "persist_trades": true, + "cured_discount": [ + -100, + -100 + ], + "max_cured_discount": [ + -500, + -500 + ] +} +``` + +```json +"minecraft:economy_trade_table": { + "display_name": "entity.villager.cleric", + "table": "trading/economy_trades/cleric_trades.json", + "new_screen": true, + "persist_trades": true, + "cured_discount": [ + -100, + -100 + ], + "max_cured_discount": [ + -500, + -500 + ] +} +``` + +```json +"minecraft:economy_trade_table": { + "display_name": "entity.villager.armor", + "table": "trading/economy_trades/armorer_trades.json", + "new_screen": true, + "persist_trades": true, + "cured_discount": [ + -100, + -100 + ], + "max_cured_discount": [ + -500, + -500 + ] +} +``` + +```json +"minecraft:economy_trade_table": { + "display_name": "entity.villager.weapon", + "table": "trading/economy_trades/weapon_smith_trades.json", + "new_screen": true, + "persist_trades": true, + "cured_discount": [ + -100, + -100 + ], + "max_cured_discount": [ + -500, + -500 + ] +} +``` + +```json +"minecraft:economy_trade_table": { + "display_name": "entity.villager.tool", + "table": "trading/economy_trades/tool_smith_trades.json", + "new_screen": true, + "persist_trades": true, + "cured_discount": [ + -100, + -100 + ], + "max_cured_discount": [ + -500, + -500 + ] +} +``` + +```json +"minecraft:economy_trade_table": { + "display_name": "entity.villager.butcher", + "table": "trading/economy_trades/butcher_trades.json", + "new_screen": true, + "persist_trades": true, + "cured_discount": [ + -100, + -100 + ], + "max_cured_discount": [ + -500, + -500 + ] +} +``` + +```json +"minecraft:economy_trade_table": { + "display_name": "entity.villager.leather", + "table": "trading/economy_trades/leather_worker_trades.json", + "new_screen": true, + "persist_trades": true, + "cured_discount": [ + -100, + -100 + ], + "max_cured_discount": [ + -500, + -500 + ] +} +``` + +```json +"minecraft:economy_trade_table": { + "display_name": "entity.villager.mason", + "table": "trading/economy_trades/stone_mason_trades.json", + "new_screen": true, + "persist_trades": true, + "cured_discount": [ + -100, + -100 + ], + "max_cured_discount": [ + -500, + -500 + ] +} +``` + +wandering_trader + +```json +"minecraft:economy_trade_table": { + "display_name": "entity.wandering_trader.name", + "table": "trading/economy_trades/wandering_trader_trades.json", + "new_screen": true +} +``` + +## entity_sensor + +parrot + +```json +"minecraft:entity_sensor": { + "sensor_range": 2.0, + "relative_range": false, + "event_filters": { + "all_of": [ + { + "test": "is_riding", + "subject": "self", + "operator": "equals", + "value": true + }, + { + "test": "has_component", + "subject": "self", + "operator": "equals", + "value": "minecraft:behavior.look_at_player" + } + ] + }, + "event": "minecraft:on_riding_player" +} +``` + +```json +"minecraft:entity_sensor": { + "sensor_range": 2.0, + "relative_range": false, + "event_filters": { + "all_of": [ + { + "test": "is_riding", + "subject": "self", + "operator": "equals", + "value": false + }, + { + "test": "has_component", + "subject": "self", + "operator": "not", + "value": "minecraft:behavior.look_at_player" + } + ] + }, + "event": "minecraft:on_not_riding_player" +} +``` + +pufferfish + +```json +"minecraft:entity_sensor": { + "sensor_range": 2.5, + "relative_range": false, + "minimum_count": 1, + "event_filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "mob" + }, + { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "none_of": { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + } + ] + } + ] + }, + "event": "minecraft:start_half_puff" +} +``` + +```json +"minecraft:entity_sensor": { + "sensor_range": 2.5, + "relative_range": false, + "minimum_count": 1, + "event_filters": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "mob" + }, + { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "none_of": { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + } + ] + } + ] + }, + "event": "minecraft:start_full_puff" +} +``` + +```json +"minecraft:entity_sensor": { + "sensor_range": 2.9, + "relative_range": false, + "require_all": true, + "event_filters": { + "none_of": [ + { + "test": "is_family", + "subject": "other", + "value": "mob" + }, + { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "none_of": { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + } + ] + } + ], + "test": "distance_to_nearest_player", + "operator": ">", + "value": 2.9 + }, + "event": "minecraft:from_full_puff" +} +``` + +## environment_sensor + +axolotl + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "test": "in_water", + "operator": "!=", + "value": true + }, + "event": "start_drying_out" + } + ] +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "test": "in_water_or_rain", + "operator": "!=", + "value": true + }, + "event": "start_drying_out" + }, + { + "filters": { + "test": "in_water", + "operator": "==", + "value": true + }, + "event": "enter_water" + } + ] +} +``` + +bee + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "event": "seek_shelter", + "filters": { + "all_of": [ + { + "any_of": [ + { + "test": "is_daytime", + "value": false + }, + { + "test": "weather", + "operator": "==", + "value": "precipitation" + } + ] + }, + { + "test": "bool_property", + "domain": "minecraft:has_nectar", + "operator": "!=" + }, + { + "test": "has_biome_tag", + "value": "overworld" + } + ] + } + } + ] +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "event": "abort_sheltering", + "filters": { + "all_of": [ + { + "test": "weather", + "operator": "==", + "value": "clear" + }, + { + "test": "is_daytime", + "value": true + } + ] + } + } + ] +} +``` + +cave_spider + +```json +"minecraft:environment_sensor": { + "triggers": { + "filters": { + "test": "is_brightness", + "operator": "<", + "value": 0.49 + }, + "event": "minecraft:become_hostile" + } +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": { + "filters": { + "test": "is_brightness", + "operator": ">", + "value": 0.49 + }, + "event": "minecraft:become_neutral" + } +} +``` + +dolphin + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "all_of": [ + { + "test": "on_ground", + "operator": "==", + "value": true + }, + { + "test": "in_water", + "operator": "!=", + "value": true + } + ] + }, + "event": "navigation_on_land" + } + ] +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "test": "in_water", + "operator": "==", + "value": true + }, + "event": "navigation_off_land" + }, + { + "filters": { + "test": "in_water_or_rain", + "operator": "!=", + "value": true + }, + "event": "start_dryingout" + } + ] +} +``` + +fox + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "test": "is_daytime", + "value": false + }, + "event": "minecraft:fox_configure_night" + }, + { + "filters": { + "test": "is_daytime", + "value": true + }, + "event": "minecraft:fox_configure_day" + } + ] +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "all_of": [ + { + "test": "is_daytime", + "value": true + }, + { + "test": "has_target", + "operator": "==", + "value": false + } + ] + }, + "event": "minecraft:fox_configure_docile_day" + }, + { + "filters": { + "all_of": [ + { + "test": "is_daytime", + "value": false + }, + { + "test": "has_target", + "operator": "==", + "value": false + } + ] + }, + "event": "minecraft:fox_configure_docile_night" + } + ] +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "all_of": [ + { + "test": "weather_at_position", + "operator": "!=", + "value": "thunderstorm" + }, + { + "test": "is_daytime", + "value": true + } + ] + }, + "event": "minecraft:fox_configure_day" + }, + { + "filters": { + "all_of": [ + { + "test": "weather_at_position", + "operator": "!=", + "value": "thunderstorm" + }, + { + "test": "is_daytime", + "value": false + } + ] + }, + "event": "minecraft:fox_configure_night" + } + ] +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "test": "weather_at_position", + "value": "thunderstorm" + }, + "event": "minecraft:fox_configure_thunderstorm" + }, + { + "filters": { + "test": "is_daytime", + "value": false + }, + "event": "minecraft:fox_configure_night" + } + ] +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "test": "weather_at_position", + "value": "thunderstorm" + }, + "event": "minecraft:fox_configure_thunderstorm" + }, + { + "filters": { + "test": "is_daytime", + "value": true + }, + "event": "minecraft:fox_configure_day" + } + ] +} +``` + +hoglin + +```json +"minecraft:environment_sensor": { + "triggers": { + "filters": { + "test": "in_nether", + "subject": "self", + "operator": "==", + "value": false + }, + "event": "start_zombification_event" + } +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": { + "filters": { + "test": "in_nether", + "subject": "self", + "operator": "==", + "value": true + }, + "event": "stop_zombification_event" + } +} +``` + +husk + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "test": "is_underwater", + "subject": "self", + "operator": "==", + "value": true + }, + "event": "minecraft:start_transforming" + } + ] +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": { + "filters": { + "test": "is_underwater", + "subject": "self", + "operator": "==", + "value": true + }, + "event": "minecraft:start_transforming" + } +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": { + "filters": { + "test": "is_underwater", + "subject": "self", + "operator": "==", + "value": false + }, + "event": "minecraft:stop_transforming" + } +} +``` + +piglin + +```json +"minecraft:environment_sensor": { + "triggers": { + "filters": { + "test": "in_nether", + "subject": "self", + "operator": "==", + "value": false + }, + "event": "start_zombification_event" + } +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": { + "filters": { + "test": "in_nether", + "subject": "self", + "operator": "==", + "value": true + }, + "event": "stop_zombification_event" + } +} +``` + +piglin_brute + +```json +"minecraft:environment_sensor": { + "triggers": { + "filters": { + "test": "in_nether", + "subject": "self", + "operator": "==", + "value": false + }, + "event": "start_zombification_event" + } +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": { + "filters": { + "test": "in_nether", + "subject": "self", + "operator": "==", + "value": true + }, + "event": "stop_zombification_event" + } +} +``` + +pillager + +```json +"minecraft:environment_sensor": { + "triggers": { + "filters": { + "test": "is_underwater", + "subject": "self", + "operator": "==", + "value": true + }, + "event": "minecraft:melee_mode" + } +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": { + "filters": { + "test": "in_water", + "subject": "self", + "operator": "==", + "value": false + }, + "event": "minecraft:ranged_mode" + } +} +``` + +player + +```json +"minecraft:environment_sensor": { + "triggers": { + "filters": { + "all_of": [ + { + "test": "has_mob_effect", + "subject": "self", + "value": "bad_omen" + }, + { + "test": "is_in_village", + "subject": "self", + "value": true + } + ] + }, + "event": "minecraft:trigger_raid" + } +} +``` + +skeleton + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "test": "is_underwater", + "subject": "self", + "operator": "==", + "value": true + }, + "event": "minecraft:melee_mode" + }, + { + "filters": { + "test": "has_ranged_weapon", + "subject": "self", + "operator": "==", + "value": false + }, + "event": "minecraft:melee_mode" + }, + { + "filters": { + "test": "in_block", + "subject": "self", + "operator": "==", + "value": "minecraft:powder_snow" + }, + "event": "got_in_powder_snow" + } + ] +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "test": "in_block", + "subject": "self", + "operator": "!=", + "value": "minecraft:powder_snow" + }, + "event": "got_out_of_powder_snow" + } + ] +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "test": "is_underwater", + "subject": "self", + "operator": "==", + "value": true + }, + "event": "minecraft:melee_mode" + }, + { + "filters": { + "test": "has_ranged_weapon", + "subject": "self", + "operator": "==", + "value": false + }, + "event": "minecraft:melee_mode" + }, + { + "filters": { + "all_of": [ + { + "test": "in_water", + "subject": "self", + "operator": "==", + "value": false + }, + { + "test": "has_ranged_weapon", + "subject": "self", + "operator": "==", + "value": true + } + ] + }, + "event": "minecraft:ranged_mode" + } + ] +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "test": "is_underwater", + "subject": "self", + "operator": "==", + "value": true + }, + "event": "minecraft:melee_mode" + }, + { + "filters": { + "test": "has_ranged_weapon", + "subject": "self", + "operator": "==", + "value": false + }, + "event": "minecraft:melee_mode" + }, + { + "filters": { + "test": "in_block", + "subject": "self", + "operator": "==", + "value": "minecraft:powder_snow" + }, + "event": "got_in_powder_snow" + } + ] +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "all_of": [ + { + "test": "in_water", + "subject": "self", + "operator": "==", + "value": false + }, + { + "test": "has_ranged_weapon", + "subject": "self", + "operator": "==", + "value": true + } + ] + }, + "event": "minecraft:ranged_mode" + }, + { + "filters": { + "test": "in_block", + "subject": "self", + "operator": "==", + "value": "minecraft:powder_snow" + }, + "event": "got_in_powder_snow" + } + ] +} +``` + +spider + +```json +"minecraft:environment_sensor": { + "triggers": { + "filters": { + "test": "is_brightness", + "operator": "<", + "value": 0.49 + }, + "event": "minecraft:become_hostile" + } +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": { + "filters": { + "test": "is_brightness", + "operator": ">", + "value": 0.49 + }, + "event": "minecraft:become_neutral" + } +} +``` + +stray + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "test": "is_underwater", + "subject": "self", + "operator": "==", + "value": true + }, + "event": "minecraft:melee_mode" + }, + { + "filters": { + "test": "has_ranged_weapon", + "subject": "self", + "operator": "==", + "value": false + }, + "event": "minecraft:melee_mode" + } + ] +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "test": "is_underwater", + "subject": "self", + "operator": "==", + "value": true + }, + "event": "minecraft:melee_mode" + }, + { + "filters": { + "test": "has_ranged_weapon", + "subject": "self", + "operator": "==", + "value": false + }, + "event": "minecraft:melee_mode" + } + ] +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "all_of": [ + { + "test": "in_water", + "subject": "self", + "operator": "==", + "value": false + }, + { + "test": "has_ranged_weapon", + "subject": "self", + "operator": "==", + "value": true + } + ] + }, + "event": "minecraft:ranged_mode" + } + ] +} +``` + +strider + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "any_of": [ + { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + { + "test": "in_lava", + "subject": "other", + "operator": "==", + "value": true + } + ] + }, + "event": "stop_suffocating" + }, + { + "filters": { + "all_of": [ + { + "test": "is_riding", + "subject": "self", + "operator": "equals", + "value": false + }, + { + "test": "has_component", + "subject": "self", + "operator": "not", + "value": "minecraft:behavior.move_to_liquid" + } + ] + }, + "event": "on_not_riding_parent" + } + ] +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "all_of": [ + { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": false + }, + { + "any_of": [ + { + "test": "is_riding", + "subject": "self", + "operator": "==", + "value": false + }, + { + "test": "in_lava", + "subject": "other", + "operator": "==", + "value": false + } + ] + } + ] + }, + "event": "start_suffocating" + }, + { + "filters": { + "all_of": [ + { + "test": "is_riding", + "subject": "self", + "operator": "equals", + "value": false + }, + { + "test": "has_component", + "subject": "self", + "operator": "not", + "value": "minecraft:behavior.move_to_liquid" + } + ] + }, + "event": "on_not_riding_parent" + } + ] +} +``` + +trader_llama + +```json +"minecraft:environment_sensor": { + "triggers": [ + { + "filters": { + "all_of": [ + { + "test": "is_leashed", + "subject": "self", + "value": false + }, + { + "test": "has_component", + "subject": "self", + "operator": "!=", + "value": "minecraft:is_tamed" + } + ] + }, + "event": "minecraft:on_tame" + }, + { + "filters": { + "all_of": [ + { + "test": "is_leashed", + "subject": "self", + "value": false + }, + { + "test": "has_component", + "subject": "self", + "operator": "==", + "value": "minecraft:persistent" + } + ] + }, + "event": "minecraft:remove_persistence" + } + ] +} +``` + +zombie + +```json +"minecraft:environment_sensor": { + "triggers": { + "filters": { + "test": "is_underwater", + "operator": "==", + "value": true + }, + "event": "minecraft:start_transforming" + } +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": { + "filters": { + "test": "is_underwater", + "subject": "self", + "operator": "==", + "value": true + }, + "event": "minecraft:start_transforming" + } +} +``` + +```json +"minecraft:environment_sensor": { + "triggers": { + "filters": { + "test": "is_underwater", + "subject": "self", + "operator": "==", + "value": false + }, + "event": "minecraft:stop_transforming" + } +} +``` + +## equip_item + +drowned + +```json +"minecraft:equip_item": {} +``` + +fox + +```json +"minecraft:equip_item": {} +``` + +husk + +```json +"minecraft:equip_item": {} +``` + +piglin + +```json +"minecraft:equip_item": {} +``` + +pillager + +```json +"minecraft:equip_item": {} +``` + +skeleton + +```json +"minecraft:equip_item": {} +``` + +stray + +```json +"minecraft:equip_item": {} +``` + +wither_skeleton + +```json +"minecraft:equip_item": {} +``` + +zombie + +```json +"minecraft:equip_item": {} +``` + +zombie_pigman + +```json +"minecraft:equip_item": {} +``` + +zombie_villager + +```json +"minecraft:equip_item": {} +``` + +zombie_villager_v2 + +```json +"minecraft:equip_item": {} +``` + +## equipment + +drowned + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/drowned_ranged_equipment.json", + "slot_drop_chance": [ + { + "slot": "slot.weapon.offhand", + "drop_chance": 1.0 + } + ] +} +``` + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/drowned_equipment.json", + "slot_drop_chance": [ + { + "slot": "slot.weapon.offhand", + "drop_chance": 1.0 + } + ] +} +``` + +fox + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/fox_equipment.json", + "slot_drop_chance": [ + { + "slot": "slot.weapon.mainhand", + "drop_chance": 1.0 + } + ] +} +``` + +husk + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/zombie_equipment.json" +} +``` + +piglin + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/piglin_gear_ranged.json" +} +``` + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/piglin_gear_melee.json" +} +``` + +piglin_brute + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/piglin_brute_gear.json" +} +``` + +pillager + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/pillager_gear.json" +} +``` + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/pillager_captain_equipment.json", + "slot_drop_chance": [ + { + "slot": "slot.armor.chest", + "drop_chance": 1.0 + } + ] +} +``` + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/pillager_captain_equipment.json", + "slot_drop_chance": [ + { + "slot": "slot.armor.chest", + "drop_chance": 1.0 + } + ] +} +``` + +skeleton + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/skeleton_gear.json" +} +``` + +stray + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/skeleton_gear.json" +} +``` + +vex + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/vex_gear.json" +} +``` + +vindicator + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/vindicator_gear.json" +} +``` + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/vindicator_captain_equipment.json", + "slot_drop_chance": [ + { + "slot": "slot.armor.chest", + "drop_chance": 1.0 + } + ] +} +``` + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/vindicator_captain_equipment.json", + "slot_drop_chance": [ + { + "slot": "slot.armor.chest", + "drop_chance": 1.0 + } + ] +} +``` + +wither_skeleton + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/wither_skeleton_gear.json" +} +``` + +zombie + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/zombie_equipment.json" +} +``` + +zombie_pigman + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/zombie_pigman_gear.json" +} +``` + +```json +"minecraft:equipment": { + "table": "loot_tables/entities/zombified_piglin_rider_gear.json" +} +``` + +## equippable + +camel + +```json +"minecraft:equippable": { + "slots": [ + { + "slot": 0, + "item": "saddle", + "accepted_items": [ + "saddle" + ], + "on_equip": { + "event": "minecraft:camel_saddled" + }, + "on_unequip": { + "event": "minecraft:camel_unsaddled" + } + } + ] +} +``` + +donkey + +```json +"minecraft:equippable": { + "slots": [ + { + "slot": 0, + "item": "saddle", + "accepted_items": [ + "saddle" + ], + "on_equip": { + "event": "minecraft:donkey_saddled" + }, + "on_unequip": { + "event": "minecraft:donkey_unsaddled" + } + } + ] +} +``` + +horse + +```json +"minecraft:equippable": { + "slots": [ + { + "slot": 0, + "item": "saddle", + "accepted_items": [ + "saddle" + ], + "on_equip": { + "event": "minecraft:horse_saddled" + }, + "on_unequip": { + "event": "minecraft:horse_unsaddled" + } + }, + { + "slot": 1, + "item": "horsearmoriron", + "accepted_items": [ + "horsearmorleather", + "horsearmoriron", + "horsearmorgold", + "horsearmordiamond" + ] + } + ] +} +``` + +llama + +```json +"minecraft:equippable": { + "slots": [ + { + "slot": 1, + "item": "carpet", + "accepted_items": [ + "carpet" + ] + } + ] +} +``` + +mule + +```json +"minecraft:equippable": { + "slots": [ + { + "slot": 0, + "item": "saddle", + "accepted_items": [ + "saddle" + ], + "on_equip": { + "event": "minecraft:mule_saddled" + }, + "on_unequip": { + "event": "minecraft:mule_unsaddled" + } + } + ] +} +``` + +trader_llama + +```json +"minecraft:equippable": { + "slots": [ + { + "slot": 1, + "item": "carpet", + "accepted_items": [ + "carpet" + ] + } + ] +} +``` + +## exhaustion_values + +player + +```json +"minecraft:exhaustion_values": { + "heal": 6, + "jump": 0.05, + "sprint_jump": 0.2, + "mine": 0.005, + "attack": 0.1, + "damage": 0.1, + "walk": 0.0, + "sprint": 0.1, + "swim": 0.01 +} +``` + +## experience_reward + +axolotl + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +bee + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +blaze + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 10 : 0" +} +``` + +camel + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +cat + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +cave_spider + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 5 : 0" +} +``` + +chicken + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +cow + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +creeper + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 5 : 0" +} +``` + +dolphin + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +donkey + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +drowned + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 12 + (query.equipment_count * Math.Random(1,3)) : 0" +} +``` + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 5 + (query.equipment_count * Math.Random(1,3)) : 0" +} +``` + +elder_guardian + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 10 : 0" +} +``` + +enderman + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 5 : 0" +} +``` + +endermite + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 3 : 0" +} +``` + +evocation_illager + +```json +"minecraft:experience_reward": { + "on_death": "10" +} +``` + +cod + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +fox + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +frog + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +ghast + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 5 + (query.equipment_count * Math.Random(1,3)) : 0" +} +``` + +glow_squid + +```json +"minecraft:experience_reward": { + "on_death": "!query.is_baby && query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +goat + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +guardian + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 10 : 0" +} +``` + +hoglin + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? 5 : 0" +} +``` + +horse + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +husk + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 12 + (query.equipment_count * Math.Random(1,3)) : 0" +} +``` + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 5 + (query.equipment_count * Math.Random(1,3)) : 0" +} +``` + +llama + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +magma_cube + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? query.variant : 0" +} +``` + +mooshroom + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +mule + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +ocelot + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +panda + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +parrot + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +phantom + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 5 : 0" +} +``` + +pig + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +piglin + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 1 + (query.equipment_count * Math.Random(1,2)) : 0" +} +``` + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 5 + (query.equipment_count * Math.Random(1,3)) : 0" +} +``` + +piglin_brute + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 20 : 0" +} +``` + +pillager + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? (query.is_baby ? 12 : 5) + (Math.die_roll(query.equipment_count,1,3)) : 0" +} +``` + +player + +```json +"minecraft:experience_reward": { + "on_death": "Math.Min(query.player_level * 7, 100)" +} +``` + +polar_bear + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +pufferfish + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +rabbit + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +ravager + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 20 : 0" +} +``` + +salmon + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +sheep + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +shulker + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 5 : 0" +} +``` + +silverfish + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 5 : 0" +} +``` + +skeleton + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 5 + (query.equipment_count * Math.Random(1,3)) : 0" +} +``` + +skeleton_horse + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +slime + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? query.variant : 0" +} +``` + +sniffer + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +spider + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 5 : 0" +} +``` + +squid + +```json +"minecraft:experience_reward": { + "on_death": "!query.is_baby && query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +stray + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 5 + (query.equipment_count * Math.Random(1,3)) : 0" +} +``` + +strider + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +trader_llama + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +tropicalfish + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +turtle + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +vex + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 5 + (query.equipment_count * Math.Random(1,3)) : 0" +} +``` + +vindicator + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? (query.is_baby ? 12 : 5) + (Math.die_roll(query.equipment_count,1,3)) : 0" +} +``` + +warden + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? 5 : 0" +} +``` + +witch + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? (query.is_baby ? 12 : 5) + (Math.die_roll(query.equipment_count,1,3)) : 0" +} +``` + +wither + +```json +"minecraft:experience_reward": { + "on_death": "50" +} +``` + +wither_skeleton + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 5 + (query.equipment_count * Math.Random(1,3)) : 0" +} +``` + +wolf + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +zoglin + +```json +"minecraft:experience_reward": { + "on_bred": "Math.Random(1,7)", + "on_death": "query.last_hit_by_player ? 5 : 0" +} +``` + +zombie + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 12 + (query.equipment_count * Math.Random(1,3)) : 0" +} +``` + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 5 + (query.equipment_count * Math.Random(1,3)) : 0" +} +``` + +zombie_horse + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" +} +``` + +zombie_pigman + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 12 + (query.equipment_count * Math.Random(1,3)) : 0" +} +``` + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 5 + (query.equipment_count * Math.Random(1,3)) : 0" +} +``` + +zombie_villager + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 12 + (query.equipment_count * Math.Random(1,3)) : 0" +} +``` + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 5 + (query.equipment_count * Math.Random(1,3)) : 0" +} +``` + +zombie_villager_v2 + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 12 + (query.equipment_count * Math.Random(1,3)) : 0" +} +``` + +```json +"minecraft:experience_reward": { + "on_death": "query.last_hit_by_player ? 5 + (query.equipment_count * Math.Random(1,3)) : 0" +} +``` + +## explode + +creeper + +```json +"minecraft:explode": { + "fuse_length": 1.5, + "fuse_lit": true, + "power": 3, + "causes_fire": false, + "destroy_affected_by_griefing": true +} +``` + +```json +"minecraft:explode": { + "fuse_length": 1.5, + "fuse_lit": true, + "power": 6, + "causes_fire": false, + "destroy_affected_by_griefing": true +} +``` + +```json +"minecraft:explode": { + "fuse_length": 1.5, + "fuse_lit": true, + "power": 3, + "causes_fire": false, + "destroy_affected_by_griefing": true +} +``` + +```json +"minecraft:explode": { + "fuse_length": 1.5, + "fuse_lit": true, + "power": 6, + "causes_fire": false, + "destroy_affected_by_griefing": true +} +``` + +ender_crystal + +```json +"minecraft:explode": { + "fuse_length": 0, + "fuse_lit": true, + "power": 6, + "causes_fire": false, + "destroy_affected_by_griefing": true +} +``` + +fireball + +```json +"minecraft:explode": { + "fuse_length": 0, + "fuse_lit": true, + "power": 1, + "causes_fire": true, + "fire_affected_by_griefing": true, + "destroy_affected_by_griefing": true +} +``` + +tnt + +```json +"minecraft:explode": { + "fuse_length": 4, + "fuse_lit": true, + "power": 4, + "causes_fire": false +} +``` + +```json +"minecraft:explode": { + "fuse_length": { + "range_min": 0.5, + "range_max": 2.0 + }, + "fuse_lit": true, + "power": 4, + "causes_fire": false +} +``` + +tnt_minecart + +```json +"minecraft:explode": { + "fuse_length": 4, + "fuse_lit": true, + "power": 3, + "causes_fire": false +} +``` + +```json +"minecraft:explode": { + "fuse_length": 0, + "fuse_lit": true, + "power": 3, + "causes_fire": false +} +``` + +wither_skull + +```json +"minecraft:explode": { + "fuse_length": 0, + "fuse_lit": true, + "power": 1, + "causes_fire": false, + "destroy_affected_by_griefing": true +} +``` + +wither_skull_dangerous + +```json +"minecraft:explode": { + "fuse_length": 0, + "fuse_lit": true, + "power": 1, + "causes_fire": false, + "max_resistance": 4.0, + "destroy_affected_by_griefing": true +} +``` + +## fire_immune + +blaze + +```json +"minecraft:fire_immune": {} +``` + +ender_crystal + +```json +"minecraft:fire_immune": true +``` + +ender_dragon + +```json +"minecraft:fire_immune": true +``` + +ghast + +```json +"minecraft:fire_immune": {} +``` + +magma_cube + +```json +"minecraft:fire_immune": {} +``` + +npc + +```json +"minecraft:fire_immune": true +``` + +shulker + +```json +"minecraft:fire_immune": true +``` + +strider + +```json +"minecraft:fire_immune": {} +``` + +vex + +```json +"minecraft:fire_immune": {} +``` + +warden + +```json +"minecraft:fire_immune": {} +``` + +wither + +```json +"minecraft:fire_immune": {} +``` + +wither_skeleton + +```json +"minecraft:fire_immune": {} +``` + +zoglin + +```json +"minecraft:fire_immune": {} +``` + +zombie_pigman + +```json +"minecraft:fire_immune": {} +``` + +## flocking + +dolphin + +```json +"minecraft:flocking": { + "in_water": false, + "match_variants": false, + "use_center_of_mass": false, + "low_flock_limit": 4, + "high_flock_limit": 8, + "goal_weight": 2.0, + "loner_chance": 0.1, + "influence_radius": 6.0, + "breach_influence": 0.0, + "separation_weight": 1.75, + "separation_threshold": 3.0, + "cohesion_weight": 1.85, + "cohesion_threshold": 6.5, + "innner_cohesion_threshold": 3.5, + "min_height": 4.0, + "max_height": 4.0, + "block_distance": 1.0, + "block_weight": 0.0 +} +``` + +cod + +```json +"minecraft:flocking": { + "in_water": true, + "match_variants": false, + "use_center_of_mass": true, + "low_flock_limit": 4, + "high_flock_limit": 8, + "goal_weight": 2.0, + "loner_chance": 0.1, + "influence_radius": 3.0, + "breach_influence": 7.0, + "separation_weight": 1.75, + "separation_threshold": 0.95, + "cohesion_weight": 2.0, + "cohesion_threshold": 1.95, + "innner_cohesion_threshold": 1.25, + "min_height": 1.5, + "max_height": 6.0, + "block_distance": 2.0, + "block_weight": 0.85 +} +``` + +pufferfish + +```json +"minecraft:flocking": { + "in_water": true, + "match_variants": false, + "use_center_of_mass": true, + "low_flock_limit": 4, + "high_flock_limit": 8, + "goal_weight": 2.0, + "loner_chance": 0.1, + "influence_radius": 3.0, + "breach_influence": 7.0, + "separation_weight": 1.75, + "separation_threshold": 0.95, + "cohesion_weight": 2.0, + "cohesion_threshold": 1.95, + "innner_cohesion_threshold": 1.25, + "min_height": 1.5, + "max_height": 6.0, + "block_distance": 2.0, + "block_weight": 0.85 +} +``` + +salmon + +```json +"minecraft:flocking": { + "in_water": true, + "match_variants": false, + "use_center_of_mass": false, + "low_flock_limit": 4, + "high_flock_limit": 8, + "goal_weight": 2.0, + "loner_chance": 0.1, + "influence_radius": 3.0, + "breach_influence": 7.0, + "separation_weight": 0.65, + "separation_threshold": 0.15, + "cohesion_weight": 2.25, + "cohesion_threshold": 1.5, + "innner_cohesion_threshold": 1.5, + "min_height": 4.0, + "max_height": 4.0, + "block_distance": 1.0, + "block_weight": 0.75 +} +``` + +tropicalfish + +```json +"minecraft:flocking": { + "in_water": true, + "match_variants": true, + "use_center_of_mass": false, + "low_flock_limit": 4, + "high_flock_limit": 8, + "goal_weight": 2.0, + "loner_chance": 0.1, + "influence_radius": 3.0, + "breach_influence": 7.0, + "separation_weight": 0.65, + "separation_threshold": 0.15, + "cohesion_weight": 2.75, + "cohesion_threshold": 1.5, + "innner_cohesion_threshold": 1.5, + "min_height": 1.5, + "max_height": 6.0, + "block_distance": 2.0, + "block_weight": 0.85 +} +``` + +## flying_speed + +allay + +```json +"minecraft:flying_speed": { + "value": 0.1 +} +``` + +bee + +```json +"minecraft:flying_speed": { + "value": 0.15 +} +``` + +ender_dragon + +```json +"minecraft:flying_speed": { + "value": 0.6 +} +``` + +## follow_range + +allay + +```json +"minecraft:follow_range": { + "value": 1024 +} +``` + +bee + +```json +"minecraft:follow_range": { + "value": 1024 +} +``` + +blaze + +```json +"minecraft:follow_range": { + "value": 48, + "max": 48 +} +``` + +dolphin + +```json +"minecraft:follow_range": { + "value": 48, + "max": 48 +} +``` + +elder_guardian + +```json +"minecraft:follow_range": { + "value": 16, + "max": 16 +} +``` + +enderman + +```json +"minecraft:follow_range": { + "value": 64, + "max": 64 +} +``` + +evocation_illager + +```json +"minecraft:follow_range": { + "value": 64 +} +``` + +ghast + +```json +"minecraft:follow_range": { + "value": 64, + "max": 64 +} +``` + +guardian + +```json +"minecraft:follow_range": { + "value": 16, + "max": 16 +} +``` + +iron_golem + +```json +"minecraft:follow_range": { + "value": 64 +} +``` + +llama + +```json +"minecraft:follow_range": { + "value": 40, + "max": 40 +} +``` + +phantom + +```json +"minecraft:follow_range": { + "value": 64, + "max": 64 +} +``` + +piglin + +```json +"minecraft:follow_range": { + "value": 64 +} +``` + +piglin_brute + +```json +"minecraft:follow_range": { + "value": 64 +} +``` + +pillager + +```json +"minecraft:follow_range": { + "value": 64 +} +``` + +polar_bear + +```json +"minecraft:follow_range": { + "value": 48 +} +``` + +ravager + +```json +"minecraft:follow_range": { + "value": 64 +} +``` + +sniffer + +```json +"minecraft:follow_range": { + "value": 64.0 +} +``` + +trader_llama + +```json +"minecraft:follow_range": { + "value": 40, + "max": 40 +} +``` + +turtle + +```json +"minecraft:follow_range": { + "value": 1024 +} +``` + +villager_v2 + +```json +"minecraft:follow_range": { + "value": 128 +} +``` + +vindicator + +```json +"minecraft:follow_range": { + "value": 64 +} +``` + +warden + +```json +"minecraft:follow_range": 30 +``` + +witch + +```json +"minecraft:follow_range": { + "value": 64 +} +``` + +## game_event_movement_tracking + +allay + +```json +"minecraft:game_event_movement_tracking": { + "emit_flap": true +} +``` + +bat + +```json +"minecraft:game_event_movement_tracking": { + "emit_flap": true +} +``` + +bee + +```json +"minecraft:game_event_movement_tracking": { + "emit_flap": true +} +``` + +chicken + +```json +"minecraft:game_event_movement_tracking": { + "emit_flap": true +} +``` + +ender_dragon + +```json +"minecraft:game_event_movement_tracking": { + "emit_flap": true +} +``` + +parrot + +```json +"minecraft:game_event_movement_tracking": { + "emit_flap": true +} +``` + +phantom + +```json +"minecraft:game_event_movement_tracking": { + "emit_flap": true +} +``` + +vex + +```json +"minecraft:game_event_movement_tracking": { + "emit_move": false, + "emit_swim": false +} +``` + +## genetics + +goat + +```json +"minecraft:genetics": { + "mutation_rate": 0.02, + "genes": [ + { + "name": "goat_variant", + "use_simplified_breeding": true, + "allele_range": { + "range_min": 1, + "range_max": 100 + }, + "genetic_variants": [ + { + "main_allele": { + "range_min": 1, + "range_max": 2 + }, + "birth_event": { + "event": "minecraft:born_screamer", + "target": "self" + } + }, + { + "main_allele": { + "range_min": 3, + "range_max": 100 + }, + "birth_event": { + "event": "minecraft:born_default", + "target": "self" + } + } + ] + } + ] +} +``` + +panda + +```json +"minecraft:genetics": { + "mutation_rate": 0.03125, + "genes": [ + { + "name": "panda_variant", + "allele_range": { + "range_min": 0, + "range_max": 15 + }, + "genetic_variants": [ + { + "main_allele": 0, + "birth_event": { + "event": "minecraft:panda_lazy", + "target": "self" + } + }, + { + "main_allele": 1, + "birth_event": { + "event": "minecraft:panda_worried", + "target": "self" + } + }, + { + "main_allele": 2, + "birth_event": { + "event": "minecraft:panda_playful", + "target": "self" + } + }, + { + "main_allele": 3, + "birth_event": { + "event": "minecraft:panda_aggressive", + "target": "self" + } + }, + { + "both_allele": { + "range_min": 4, + "range_max": 7 + }, + "birth_event": { + "event": "minecraft:panda_weak", + "target": "self" + } + }, + { + "both_allele": { + "range_min": 8, + "range_max": 9 + }, + "birth_event": { + "event": "minecraft:panda_brown", + "target": "self" + } + } + ] + } + ] +} +``` + +## giveable + +panda + +```json +"minecraft:giveable": { + "triggers": { + "cooldown": 3.0, + "items": [ + "bamboo", + "cake" + ], + "on_give": { + "event": "minecraft:on_calm", + "target": "self" + } + } +} +``` + +## group_size + +hoglin + +```json +"minecraft:group_size": { + "radius": 32, + "filters": { + "all_of": [ + { + "test": "has_component", + "operator": "!=", + "value": "minecraft:is_baby" + }, + { + "test": "is_family", + "value": "hoglin" + } + ] + } +} +``` + +piglin + +```json +"minecraft:group_size": { + "radius": 32, + "filters": { + "all_of": [ + { + "test": "has_component", + "operator": "!=", + "value": "minecraft:is_baby" + }, + { + "test": "is_family", + "value": "piglin" + } + ] + } +} +``` + +## grows_crop + +bee + +```json +"minecraft:grows_crop": { + "charges": 10, + "chance": 0.03 +} +``` + +## healable + +camel + +```json +"minecraft:healable": { + "items": [ + { + "item": "cactus", + "heal_amount": 2 + } + ] +} +``` + +cat + +```json +"minecraft:healable": { + "items": [ + { + "item": "fish", + "heal_amount": 2 + }, + { + "item": "salmon", + "heal_amount": 2 + } + ] +} +``` + +donkey + +```json +"minecraft:healable": { + "items": [ + { + "item": "wheat", + "heal_amount": 2 + }, + { + "item": "sugar", + "heal_amount": 1 + }, + { + "item": "hay_block", + "heal_amount": 20 + }, + { + "item": "apple", + "heal_amount": 3 + }, + { + "item": "golden_carrot", + "heal_amount": 4 + }, + { + "item": "golden_apple", + "heal_amount": 10 + }, + { + "item": "appleEnchanted", + "heal_amount": 10 + } + ] +} +``` + +horse + +```json +"minecraft:healable": { + "items": [ + { + "item": "wheat", + "heal_amount": 2 + }, + { + "item": "sugar", + "heal_amount": 1 + }, + { + "item": "hay_block", + "heal_amount": 20 + }, + { + "item": "apple", + "heal_amount": 3 + }, + { + "item": "golden_carrot", + "heal_amount": 4 + }, + { + "item": "golden_apple", + "heal_amount": 10 + }, + { + "item": "appleEnchanted", + "heal_amount": 10 + } + ] +} +``` + +llama + +```json +"minecraft:healable": { + "items": [ + { + "item": "wheat", + "heal_amount": 2 + }, + { + "item": "hay_block", + "heal_amount": 10 + } + ] +} +``` + +mule + +```json +"minecraft:healable": { + "items": [ + { + "item": "wheat", + "heal_amount": 2 + }, + { + "item": "sugar", + "heal_amount": 1 + }, + { + "item": "hay_block", + "heal_amount": 20 + }, + { + "item": "apple", + "heal_amount": 3 + }, + { + "item": "golden_carrot", + "heal_amount": 4 + }, + { + "item": "golden_apple", + "heal_amount": 10 + }, + { + "item": "appleEnchanted", + "heal_amount": 10 + } + ] +} +``` + +parrot + +```json +"minecraft:healable": { + "force_use": true, + "filters": { + "test": "is_riding", + "operator": "!=", + "value": true + }, + "items": [ + { + "item": "cookie", + "heal_amount": 0, + "effects": [ + { + "name": "fatal_poison", + "chance": 1.0, + "duration": 1000, + "amplifier": 0 + } + ] + } + ] +} +``` + +sniffer + +```json +"minecraft:healable": { + "items": [ + { + "item": "torchflower_seeds", + "heal_amount": 2 + } + ] +} +``` + +trader_llama + +```json +"minecraft:healable": { + "items": [ + { + "item": "wheat", + "heal_amount": 2 + }, + { + "item": "hay_block", + "heal_amount": 10 + } + ] +} +``` + +wolf + +```json +"minecraft:healable": { + "items": [ + { + "item": "porkchop", + "heal_amount": 3 + }, + { + "item": "cooked_porkchop", + "heal_amount": 8 + }, + { + "item": "fish", + "heal_amount": 2 + }, + { + "item": "salmon", + "heal_amount": 2 + }, + { + "item": "clownfish", + "heal_amount": 1 + }, + { + "item": "pufferfish", + "heal_amount": 1 + }, + { + "item": "cooked_fish", + "heal_amount": 5 + }, + { + "item": "cooked_salmon", + "heal_amount": 6 + }, + { + "item": "beef", + "heal_amount": 3 + }, + { + "item": "cooked_beef", + "heal_amount": 8 + }, + { + "item": "chicken", + "heal_amount": 2 + }, + { + "item": "cooked_chicken", + "heal_amount": 6 + }, + { + "item": "muttonRaw", + "heal_amount": 2 + }, + { + "item": "muttonCooked", + "heal_amount": 6 + }, + { + "item": "rotten_flesh", + "heal_amount": 4 + }, + { + "item": "rabbit", + "heal_amount": 3 + }, + { + "item": "cooked_rabbit", + "heal_amount": 5 + }, + { + "item": "rabbit_stew", + "heal_amount": 10 + } + ] +} +``` + +## health + +allay + +```json +"minecraft:health": { + "value": 20 +} +``` + +armor_stand + +```json +"minecraft:health": { + "value": 6, + "max": 6 +} +``` + +axolotl + +```json +"minecraft:health": { + "value": 14 +} +``` + +bat + +```json +"minecraft:health": { + "value": 6, + "max": 6 +} +``` + +bee + +```json +"minecraft:health": { + "value": 10, + "max": 10 +} +``` + +blaze + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +camel + +```json +"minecraft:health": { + "value": 32 +} +``` + +cat + +```json +"minecraft:health": { + "value": 10, + "max": 10 +} +``` + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +cave_spider + +```json +"minecraft:health": { + "value": 12, + "max": 12 +} +``` + +chicken + +```json +"minecraft:health": { + "value": 4, + "max": 4 +} +``` + +cow + +```json +"minecraft:health": { + "value": 10, + "max": 10 +} +``` + +creeper + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +dolphin + +```json +"minecraft:health": { + "value": 10, + "max": 10 +} +``` + +donkey + +```json +"minecraft:health": { + "value": { + "range_min": 15, + "range_max": 30 + } +} +``` + +drowned + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +elder_guardian + +```json +"minecraft:health": { + "value": 80, + "max": 80 +} +``` + +enderman + +```json +"minecraft:health": { + "value": 40, + "max": 40 +} +``` + +endermite + +```json +"minecraft:health": { + "value": 8, + "max": 8 +} +``` + +ender_crystal + +```json +"minecraft:health": { + "value": 1, + "max": 1 +} +``` + +ender_dragon + +```json +"minecraft:health": { + "value": 200, + "max": 200 +} +``` + +evocation_illager + +```json +"minecraft:health": { + "value": 24, + "max": 24 +} +``` + +cod + +```json +"minecraft:health": { + "value": 3, + "max": 3 +} +``` + +fox + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +frog + +```json +"minecraft:health": { + "value": 10 +} +``` + +ghast + +```json +"minecraft:health": { + "value": 10, + "max": 10 +} +``` + +glow_squid + +```json +"minecraft:health": { + "value": 10, + "max": 10 +} +``` + +goat + +```json +"minecraft:health": { + "value": 10, + "max": 10 +} +``` + +guardian + +```json +"minecraft:health": { + "value": 30, + "max": 30 +} +``` + +hoglin + +```json +"minecraft:health": { + "value": 40, + "max": 40 +} +``` + +horse + +```json +"minecraft:health": { + "value": { + "range_min": 15, + "range_max": 30 + } +} +``` + +husk + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +iron_golem + +```json +"minecraft:health": { + "value": 100, + "max": 100 +} +``` + +llama + +```json +"minecraft:health": { + "value": { + "range_min": 15, + "range_max": 30 + } +} +``` + +magma_cube + +```json +"minecraft:health": { + "value": 16, + "max": 16 +} +``` + +```json +"minecraft:health": { + "value": 4, + "max": 4 +} +``` + +```json +"minecraft:health": { + "value": 1, + "max": 1 +} +``` + +mooshroom + +```json +"minecraft:health": { + "value": 10, + "max": 10 +} +``` + +mule + +```json +"minecraft:health": { + "value": { + "range_min": 15, + "range_max": 30 + } +} +``` + +ocelot + +```json +"minecraft:health": { + "value": 10, + "max": 10 +} +``` + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +panda + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +```json +"minecraft:health": { + "value": 10, + "max": 10 +} +``` + +parrot + +```json +"minecraft:health": { + "value": 6, + "max": 6 +} +``` + +phantom + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +pig + +```json +"minecraft:health": { + "value": 10, + "max": 10 +} +``` + +piglin + +```json +"minecraft:health": { + "value": 16, + "max": 16 +} +``` + +piglin_brute + +```json +"minecraft:health": { + "value": 50, + "max": 50 +} +``` + +pillager + +```json +"minecraft:health": { + "value": 24, + "max": 24 +} +``` + +polar_bear + +```json +"minecraft:health": { + "value": 30 +} +``` + +pufferfish + +```json +"minecraft:health": { + "value": 3, + "max": 3 +} +``` + +rabbit + +```json +"minecraft:health": { + "value": 3, + "max": 3 +} +``` + +ravager + +```json +"minecraft:health": { + "max": 100, + "value": 100 +} +``` + +salmon + +```json +"minecraft:health": { + "value": 3, + "max": 3 +} +``` + +sheep + +```json +"minecraft:health": { + "value": 8, + "max": 8 +} +``` + +shulker + +```json +"minecraft:health": { + "value": 30, + "max": 30 +} +``` + +silverfish + +```json +"minecraft:health": { + "value": 8, + "max": 8 +} +``` + +skeleton + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +skeleton_horse + +```json +"minecraft:health": { + "value": 15, + "max": 15 +} +``` + +slime + +```json +"minecraft:health": { + "value": 16, + "max": 16 +} +``` + +```json +"minecraft:health": { + "value": 4, + "max": 4 +} +``` + +```json +"minecraft:health": { + "value": 1, + "max": 1 +} +``` + +sniffer + +```json +"minecraft:health": { + "value": 14 +} +``` + +snow_golem + +```json +"minecraft:health": { + "value": 4, + "max": 4 +} +``` + +spider + +```json +"minecraft:health": { + "value": 16, + "max": 16 +} +``` + +squid + +```json +"minecraft:health": { + "value": 10, + "max": 10 +} +``` + +stray + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +strider + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +tadpole + +```json +"minecraft:health": { + "value": 6 +} +``` + +trader_llama + +```json +"minecraft:health": { + "value": { + "range_min": 15, + "range_max": 30 + } +} +``` + +tripod_camera + +```json +"minecraft:health": { + "value": 4, + "max": 4 +} +``` + +tropicalfish + +```json +"minecraft:health": { + "value": 3, + "max": 3 +} +``` + +turtle + +```json +"minecraft:health": { + "value": 30 +} +``` + +vex + +```json +"minecraft:health": { + "value": 14, + "max": 14 +} +``` + +villager + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +villager_v2 + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +vindicator + +```json +"minecraft:health": { + "value": 24, + "max": 24 +} +``` + +wandering_trader + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +warden + +```json +"minecraft:health": { + "value": 500, + "max": 500 +} +``` + +witch + +```json +"minecraft:health": { + "value": 26, + "max": 26 +} +``` + +wither + +```json +"minecraft:health": { + "value": 600, + "max": 600 +} +``` + +wither_skeleton + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +wolf + +```json +"minecraft:health": { + "value": 8, + "max": 8 +} +``` + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +xp_orb + +```json +"minecraft:health": { + "value": 5, + "max": 5 +} +``` + +zoglin + +```json +"minecraft:health": { + "value": 40, + "max": 40 +} +``` + +zombie + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +zombie_horse + +```json +"minecraft:health": { + "value": 15, + "max": 15 +} +``` + +zombie_pigman + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +zombie_villager + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +zombie_villager_v2 + +```json +"minecraft:health": { + "value": 20, + "max": 20 +} +``` + +## heartbeat + +warden + +```json +"minecraft:heartbeat": { + "interval": "2.0 - math.clamp(query.anger_level / 80 * 1.5, 0, 1.5)" +} +``` + +## hide + +villager_v2 + +```json +"minecraft:hide": {} +``` + +## home + +bee + +```json +"minecraft:home": { + "restriction_radius": 22, + "home_block_list": [ + "minecraft:bee_nest", + "minecraft:beehive" + ] +} +``` + +elder_guardian + +```json +"minecraft:home": { + "restriction_radius": 16 +} +``` + +guardian + +```json +"minecraft:home": { + "restriction_radius": 16 +} +``` + +piglin_brute + +```json +"minecraft:home": {} +``` + +turtle + +```json +"minecraft:home": {} +``` + +wandering_trader + +```json +"minecraft:home": { + "restriction_radius": 16 +} +``` + +## horse.jump_strength + +donkey + +```json +"minecraft:horse.jump_strength": { + "value": 0.5 +} +``` + +horse + +```json +"minecraft:horse.jump_strength": { + "value": { + "range_min": 0.4, + "range_max": 1.0 + } +} +``` + +mule + +```json +"minecraft:horse.jump_strength": { + "value": 0.5 +} +``` + +skeleton_horse + +```json +"minecraft:horse.jump_strength": { + "value": { + "range_min": 0.4, + "range_max": 1.0 + } +} +``` + +zombie_horse + +```json +"minecraft:horse.jump_strength": { + "value": { + "range_min": 0.4, + "range_max": 1.0 + } +} +``` + +## hurt_on_condition + +allay + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +armor_stand + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +arrow + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +axolotl + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +bat + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +bee + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "cause": "none", + "damage_per_tick": 999 + } + ] +} +``` + +blaze + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_contact_with_water", + "operator": "==", + "value": true + }, + "cause": "drowning", + "damage_per_tick": 1 + } + ] +} +``` + +boat + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +camel + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +cat + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +cave_spider + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +chest_boat + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +chicken + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +cow + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +creeper + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +dolphin + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +donkey + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +drowned + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +elder_guardian + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +enderman + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + }, + { + "filters": { + "test": "in_contact_with_water", + "operator": "==", + "value": true + }, + "cause": "drowning", + "damage_per_tick": 1 + } + ] +} +``` + +endermite + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +evocation_illager + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +cod + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +frog + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +glow_squid + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +goat + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +guardian + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +hoglin + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +horse + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +husk + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +iron_golem + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +llama + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +mooshroom + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +mule + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +ocelot + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +panda + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +parrot + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +phantom + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +pig + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +piglin + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +piglin_brute + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +pillager + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +player + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +polar_bear + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +pufferfish + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +rabbit + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +ravager + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +salmon + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +sheep + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +silverfish + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +skeleton + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +skeleton_horse + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +slime + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +sniffer + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +snow_golem + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + }, + { + "filters": { + "test": "is_temperature_value", + "operator": ">", + "value": 1.0 + }, + "cause": "temperature", + "damage_per_tick": 1 + }, + { + "filters": { + "test": "in_contact_with_water", + "operator": "==", + "value": true + }, + "cause": "drowning", + "damage_per_tick": 1 + } + ] +} +``` + +spider + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +squid + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +stray + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +strider + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_contact_with_water", + "operator": "==", + "value": true + }, + "cause": "drowning", + "damage_per_tick": 1 + } + ] +} +``` + +tadpole + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +trader_llama + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +tripod_camera + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +tropicalfish + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +turtle + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +villager + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +villager_v2 + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +vindicator + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +wandering_trader + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +witch + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +wolf + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +zombie + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +zombie_horse + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +zombie_villager + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +zombie_villager_v2 + +```json +"minecraft:hurt_on_condition": { + "damage_conditions": [ + { + "filters": { + "test": "in_lava", + "subject": "self", + "operator": "==", + "value": true + }, + "cause": "lava", + "damage_per_tick": 4 + } + ] +} +``` + +## input_ground_controlled + +camel + +```json +"minecraft:input_ground_controlled": {} +``` + +donkey + +```json +"minecraft:input_ground_controlled": {} +``` + +horse + +```json +"minecraft:input_ground_controlled": {} +``` + +mule + +```json +"minecraft:input_ground_controlled": {} +``` + +skeleton_horse + +```json +"minecraft:input_ground_controlled": {} +``` + +## inside_block_notifier + +boat + +```json +"minecraft:inside_block_notifier": { + "block_list": [ + { + "block": { + "name": "minecraft:bubble_column", + "states": { + "drag_down": true + } + }, + "entered_block_event": { + "event": "minecraft:entered_bubble_column_down", + "target": "self" + }, + "exited_block_event": { + "event": "minecraft:exited_bubble_column", + "target": "self" + } + }, + { + "block": { + "name": "minecraft:bubble_column", + "states": { + "drag_down": false + } + }, + "entered_block_event": { + "event": "minecraft:entered_bubble_column_up", + "target": "self" + }, + "exited_block_event": { + "event": "minecraft:exited_bubble_column", + "target": "self" + } + } + ] +} +``` + +chest_boat + +```json +"minecraft:inside_block_notifier": { + "block_list": [ + { + "block": { + "name": "minecraft:bubble_column", + "states": { + "drag_down": true + } + }, + "entered_block_event": { + "event": "minecraft:entered_bubble_column_down", + "target": "self" + }, + "exited_block_event": { + "event": "minecraft:exited_bubble_column", + "target": "self" + } + }, + { + "block": { + "name": "minecraft:bubble_column", + "states": { + "drag_down": false + } + }, + "entered_block_event": { + "event": "minecraft:entered_bubble_column_up", + "target": "self" + }, + "exited_block_event": { + "event": "minecraft:exited_bubble_column", + "target": "self" + } + } + ] +} +``` + +## insomnia + +player + +```json +"minecraft:insomnia": { + "days_until_insomnia": 3 +} +``` + +## interact + +allay + +```json +"minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_sneak_held", + "subject": "other", + "value": false + } + ] + } + }, + "give_item": true, + "take_item": true, + "interact_text": "action.interact.allay" + } + ] +} +``` + +camel + +```json +"minecraft:interact": { + "interactions": [ + { + "play_sounds": "saddle", + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "self", + "domain": "inventory", + "operator": "not", + "value": "saddle" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "saddle" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_sneak_held", + "subject": "other", + "value": false + } + ] + }, + "target": "self" + }, + "equip_item_slot": 0, + "interact_text": "action.interact.saddle" + } + ] +} +``` + +cow + +```json +"minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_equipment", + "domain": "hand", + "subject": "other", + "value": "bucket:0" + } + ] + } + }, + "use_item": true, + "transform_to_item": "bucket:1", + "play_sounds": "milk", + "interact_text": "action.interact.milk" + } + ] +} +``` + +creeper + +```json +"minecraft:interact": { + "interactions": { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_equipment", + "domain": "hand", + "subject": "other", + "value": "flint_and_steel" + }, + { + "test": "has_component", + "operator": "!=", + "value": "minecraft:explode" + } + ] + }, + "event": "minecraft:start_exploding_forced", + "target": "self" + }, + "hurt_item": 1, + "swing": true, + "play_sounds": "ignite", + "interact_text": "action.interact.creeper" + } +} +``` + +donkey + +```json +"minecraft:interact": { + "interactions": [ + { + "play_sounds": "armor.equip_generic", + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "self", + "domain": "inventory", + "operator": "not", + "value": "saddle" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "saddle" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_sneaking", + "subject": "other", + "value": false + } + ] + }, + "target": "self" + }, + "equip_item_slot": 0, + "interact_text": "action.interact.equip" + } + ] +} +``` + +```json +"minecraft:interact": { + "interactions": [ + { + "play_sounds": "armor.equip_generic", + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "self", + "domain": "inventory", + "operator": "not", + "value": "saddle" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "saddle" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_sneaking", + "subject": "other", + "value": false + } + ] + }, + "target": "self" + }, + "equip_item_slot": 0, + "interact_text": "action.interact.saddle" + }, + { + "play_sounds": "armor.equip_generic", + "on_interact": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_sneaking", + "subject": "other", + "value": false + }, + { + "test": "has_equipment", + "domain": "hand", + "subject": "other", + "value": "chest" + } + ] + }, + "event": "minecraft:on_chest", + "target": "self" + }, + "use_item": true, + "interact_text": "action.interact.attachchest" + } + ] +} +``` + +```json +"minecraft:interact": { + "interactions": [ + { + "play_sounds": "armor.equip_generic", + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "self", + "domain": "inventory", + "operator": "not", + "value": "saddle" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "saddle" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_sneaking", + "subject": "other", + "value": false + } + ] + }, + "target": "self" + }, + "equip_item_slot": 0, + "interact_text": "action.interact.saddle" + } + ] +} +``` + +goat + +```json +"minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_component", + "subject": "self", + "operator": "!=", + "value": "minecraft:is_baby" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_equipment", + "domain": "hand", + "subject": "other", + "value": "bucket:0" + } + ] + } + }, + "use_item": true, + "transform_to_item": "bucket:1", + "play_sounds": "milk_suspiciously", + "interact_text": "action.interact.milk" + } + ] +} +``` + +```json +"minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_component", + "subject": "self", + "operator": "!=", + "value": "minecraft:is_baby" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_equipment", + "domain": "hand", + "subject": "other", + "value": "bucket:0" + } + ] + } + }, + "use_item": true, + "transform_to_item": "bucket:1", + "play_sounds": "milk.screamer", + "interact_text": "action.interact.milk" + } + ] +} +``` + +horse + +```json +"minecraft:interact": { + "interactions": [ + { + "play_sounds": "armor.equip_generic", + "on_interact": { + "filters": { + "all_of": [ + { + "none_of": [ + { + "test": "has_equipment", + "subject": "self", + "domain": "inventory", + "value": "leather_horse_armor" + }, + { + "test": "has_equipment", + "subject": "self", + "domain": "inventory", + "value": "iron_horse_armor" + }, + { + "test": "has_equipment", + "subject": "self", + "domain": "inventory", + "value": "golden_horse_armor" + }, + { + "test": "has_equipment", + "subject": "self", + "domain": "inventory", + "value": "diamond_horse_armor" + } + ] + }, + { + "any_of": [ + { + "test": "has_equipment", + "subject": "player", + "domain": "hand", + "value": "leather_horse_armor" + }, + { + "test": "has_equipment", + "subject": "player", + "domain": "hand", + "value": "iron_horse_armor" + }, + { + "test": "has_equipment", + "subject": "player", + "domain": "hand", + "value": "golden_horse_armor" + }, + { + "test": "has_equipment", + "subject": "player", + "domain": "hand", + "value": "diamond_horse_armor" + } + ] + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_sneaking", + "subject": "other", + "value": false + } + ] + }, + "target": "self" + }, + "equip_item_slot": 1, + "interact_text": "action.interact.equiphorsearmor" + }, + { + "play_sounds": "saddle", + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "self", + "domain": "inventory", + "operator": "not", + "value": "saddle" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "saddle" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_sneaking", + "subject": "other", + "value": false + } + ] + }, + "target": "self" + }, + "equip_item_slot": 0, + "interact_text": "action.interact.saddle" + } + ] +} +``` + +iron_golem + +```json +"minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_equipment", + "domain": "hand", + "subject": "other", + "value": "iron_ingot" + }, + { + "test": "is_missing_health", + "value": true + } + ] + } + }, + "use_item": true, + "health_amount": 25, + "play_sounds": "irongolem.repair", + "interact_text": "action.interact.repair" + } + ] +} +``` + +llama + +```json +"minecraft:interact": { + "interactions": [ + { + "play_sounds": "armor.equip_generic", + "on_interact": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_sneaking", + "subject": "other", + "value": false + }, + { + "test": "has_equipment", + "domain": "hand", + "subject": "other", + "value": "chest" + } + ] + }, + "event": "minecraft:on_chest", + "target": "self" + }, + "use_item": true, + "interact_text": "action.interact.attachchest" + }, + { + "play_sounds": "armor.equip_generic", + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "self", + "domain": "inventory", + "operator": "not", + "value": "carpet" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "carpet" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_sneaking", + "subject": "other", + "value": false + } + ] + }, + "target": "self" + }, + "equip_item_slot": 0, + "interact_text": "action.interact.equipcarpet" + } + ] +} +``` + +```json +"minecraft:interact": { + "interactions": [ + { + "play_sounds": "armor.equip_generic", + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "self", + "domain": "inventory", + "operator": "not", + "value": "carpet" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "carpet" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_sneaking", + "subject": "other", + "value": false + } + ] + }, + "target": "self" + }, + "equip_item_slot": 0, + "interact_text": "action.interact.equipcarpet" + } + ] +} +``` + +mooshroom + +```json +"minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "bowl" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_component", + "operator": "!=", + "value": "minecraft:transformation" + } + ] + }, + "event": "minecraft:flowerless", + "target": "self" + }, + "add_items": { + "table": "loot_tables/gameplay/entities/mooshroom_milking.json" + }, + "use_item": true, + "play_sounds": "milk_suspiciously", + "interact_text": "action.interact.moostew" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "red_flower:2" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_variant", + "subject": "self", + "operator": "==", + "value": 1 + }, + { + "test": "is_mark_variant", + "subject": "self", + "operator": "!=", + "value": 7 + } + ] + }, + "event": "minecraft:ate_allium", + "target": "self" + }, + "use_item": true, + "play_sounds": "eat", + "particle_on_start": { + "particle_type": "smoke", + "particle_y_offset": 0.25, + "particle_offset_towards_interactor": true + }, + "interact_text": "action.interact.feed" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "red_flower:3" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_variant", + "subject": "self", + "operator": "==", + "value": 1 + }, + { + "test": "is_mark_variant", + "subject": "self", + "operator": "!=", + "value": 3 + } + ] + }, + "event": "minecraft:ate_bluet", + "target": "self" + }, + "use_item": true, + "play_sounds": "eat", + "particle_on_start": { + "particle_type": "smoke", + "particle_y_offset": 0.25, + "particle_offset_towards_interactor": true + }, + "interact_text": "action.interact.feed" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "red_flower:1" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_variant", + "subject": "self", + "operator": "==", + "value": 1 + }, + { + "test": "is_mark_variant", + "subject": "self", + "operator": "!=", + "value": 6 + } + ] + }, + "event": "minecraft:ate_orchid", + "target": "self" + }, + "use_item": true, + "play_sounds": "eat", + "particle_on_start": { + "particle_type": "smoke", + "particle_y_offset": 0.25, + "particle_offset_towards_interactor": true + }, + "interact_text": "action.interact.feed" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "red_flower:9" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_variant", + "subject": "self", + "operator": "==", + "value": 1 + }, + { + "test": "is_mark_variant", + "subject": "self", + "operator": "!=", + "value": 1 + } + ] + }, + "event": "minecraft:ate_cornflower", + "target": "self" + }, + "use_item": true, + "play_sounds": "eat", + "particle_on_start": { + "particle_type": "smoke", + "particle_y_offset": 0.25, + "particle_offset_towards_interactor": true + }, + "interact_text": "action.interact.feed" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "yellow_flower" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_variant", + "subject": "self", + "operator": "==", + "value": 1 + }, + { + "test": "is_mark_variant", + "subject": "self", + "operator": "!=", + "value": 5 + } + ] + }, + "event": "minecraft:ate_dandelion", + "target": "self" + }, + "use_item": true, + "play_sounds": "eat", + "particle_on_start": { + "particle_type": "smoke", + "particle_y_offset": 0.25, + "particle_offset_towards_interactor": true + }, + "interact_text": "action.interact.feed" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "red_flower:10" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_variant", + "subject": "self", + "operator": "==", + "value": 1 + }, + { + "test": "is_mark_variant", + "subject": "self", + "operator": "!=", + "value": 4 + } + ] + }, + "event": "minecraft:ate_lily", + "target": "self" + }, + "use_item": true, + "play_sounds": "eat", + "particle_on_start": { + "particle_type": "smoke", + "particle_y_offset": 0.25, + "particle_offset_towards_interactor": true + }, + "interact_text": "action.interact.feed" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "red_flower:8" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_variant", + "subject": "self", + "operator": "==", + "value": 1 + }, + { + "test": "is_mark_variant", + "subject": "self", + "operator": "!=", + "value": 8 + } + ] + }, + "event": "minecraft:ate_daisy", + "target": "self" + }, + "use_item": true, + "play_sounds": "eat", + "particle_on_start": { + "particle_type": "smoke", + "particle_y_offset": 0.25, + "particle_offset_towards_interactor": true + }, + "interact_text": "action.interact.feed" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "red_flower:0" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_variant", + "subject": "self", + "operator": "==", + "value": 1 + }, + { + "test": "is_mark_variant", + "subject": "self", + "operator": "!=", + "value": 0 + } + ] + }, + "event": "minecraft:ate_poppy", + "target": "self" + }, + "use_item": true, + "play_sounds": "eat", + "particle_on_start": { + "particle_type": "smoke", + "particle_y_offset": 0.25, + "particle_offset_towards_interactor": true + }, + "interact_text": "action.interact.feed" + }, + { + "on_interact": { + "filters": { + "any_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "red_flower:4" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "red_flower:5" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "red_flower:6" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "red_flower:7" + } + ], + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_variant", + "subject": "self", + "operator": "==", + "value": 1 + }, + { + "test": "is_mark_variant", + "subject": "self", + "operator": "!=", + "value": 2 + } + ] + }, + "event": "minecraft:ate_tulip", + "target": "self" + }, + "use_item": true, + "play_sounds": "eat", + "particle_on_start": { + "particle_type": "smoke", + "particle_y_offset": 0.25, + "particle_offset_towards_interactor": true + }, + "interact_text": "action.interact.feed" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "wither_rose" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_variant", + "subject": "self", + "operator": "==", + "value": 1 + }, + { + "test": "is_mark_variant", + "subject": "self", + "operator": "!=", + "value": 9 + } + ] + }, + "event": "minecraft:ate_rose", + "target": "self" + }, + "use_item": true, + "play_sounds": "eat", + "particle_on_start": { + "particle_type": "smoke", + "particle_y_offset": 0.25, + "particle_offset_towards_interactor": true + }, + "interact_text": "action.interact.feed" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "torchflower" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_variant", + "subject": "self", + "operator": "==", + "value": 1 + }, + { + "test": "is_mark_variant", + "subject": "self", + "operator": "!=", + "value": 10 + } + ] + }, + "event": "minecraft:ate_torchflower", + "target": "self" + }, + "use_item": true, + "play_sounds": "eat", + "particle_on_start": { + "particle_type": "smoke", + "particle_y_offset": 0.25, + "particle_offset_towards_interactor": true + }, + "interact_text": "action.interact.feed" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "shears" + }, + { + "test": "has_component", + "operator": "!=", + "value": "minecraft:transformation" + }, + { + "test": "is_variant", + "subject": "self", + "operator": "==", + "value": 0 + } + ] + }, + "event": "become_cow", + "target": "self" + }, + "use_item": false, + "hurt_item": 1, + "play_sounds": "shear", + "spawn_items": { + "table": "loot_tables/entities/mooshroom_shear.json" + }, + "particle_on_start": { + "particle_type": "largeexplode", + "particle_y_offset": 0.25, + "particle_offset_towards_interactor": true + }, + "interact_text": "action.interact.mooshear", + "vibration": "shear" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "shears" + }, + { + "test": "has_component", + "operator": "!=", + "value": "minecraft:transformation" + }, + { + "test": "is_variant", + "subject": "self", + "operator": "==", + "value": 1 + } + ] + }, + "event": "become_cow", + "target": "self" + }, + "use_item": false, + "hurt_item": 1, + "play_sounds": "shear", + "spawn_items": { + "table": "loot_tables/entities/brown_mooshroom_shear.json" + }, + "particle_on_start": { + "particle_type": "largeexplode", + "particle_y_offset": 0.25, + "particle_offset_towards_interactor": true + }, + "interact_text": "action.interact.mooshear", + "vibration": "shear" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "bucket:0" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + } + ] + } + }, + "use_item": true, + "transform_to_item": "bucket:1", + "play_sounds": "milk", + "interact_text": "action.interact.milk" + } + ] +} +``` + +mule + +```json +"minecraft:interact": { + "interactions": [ + { + "play_sounds": "armor.equip_generic", + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "chest" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_sneaking", + "subject": "other", + "value": false + } + ] + }, + "event": "minecraft:on_chest", + "target": "self" + }, + "use_item": true, + "interact_text": "action.interact.attachchest" + }, + { + "play_sounds": "armor.equip_generic", + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "self", + "domain": "inventory", + "operator": "not", + "value": "saddle" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "saddle" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_sneaking", + "subject": "other", + "value": false + } + ] + }, + "target": "self" + }, + "equip_item_slot": 0, + "interact_text": "action.interact.saddle" + } + ] +} +``` + +```json +"minecraft:interact": { + "interactions": [ + { + "play_sounds": "armor.equip_generic", + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "self", + "domain": "inventory", + "operator": "not", + "value": "saddle" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "saddle" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_sneaking", + "subject": "other", + "value": false + } + ] + }, + "target": "self" + }, + "equip_item_slot": 0, + "interact_text": "action.interact.saddle" + } + ] +} +``` + +pig + +```json +"minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "saddle" + }, + "event": "minecraft:on_saddled" + }, + "use_item": true, + "play_sounds": "saddle", + "interact_text": "action.interact.saddle" + } + ] +} +``` + +piglin + +```json +"minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "gold_ingot" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_component", + "subject": "self", + "operator": "!=", + "value": "minecraft:is_baby" + } + ] + } + }, + "barter": true, + "admire": true, + "use_item": true, + "cooldown_after_being_attacked": 20, + "interact_text": "action.interact.barter" + } + ] +} +``` + +sheep + +```json +"minecraft:interact": { + "interactions": [ + { + "cooldown": 2.5, + "use_item": false, + "hurt_item": 1, + "spawn_items": { + "table": "loot_tables/entities/sheep_shear.json" + }, + "play_sounds": "shear", + "interact_text": "action.interact.shear", + "vibration": "shear", + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "shears" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_component", + "operator": "!=", + "value": "minecraft:is_baby" + }, + { + "test": "has_component", + "value": "minecraft:is_dyeable" + } + ] + }, + "event": "minecraft:on_sheared", + "target": "self" + } + } + ] +} +``` + +shulker + +```json +"minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "all_of": [ + { + "any_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "dye:0" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "dye:16" + } + ] + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + ] + }, + "event": "minecraft:turn_black" + }, + "use_item": true + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "dye:8" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + ] + }, + "event": "minecraft:turn_gray" + }, + "use_item": true + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "dye:7" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + ] + }, + "event": "minecraft:turn_silver" + }, + "use_item": true + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "any_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "dye:15" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "dye:19" + } + ] + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + ] + }, + "event": "minecraft:turn_white" + }, + "use_item": true + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "dye:12" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + ] + }, + "event": "minecraft:turn_light_blue" + }, + "use_item": true + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "dye:14" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + ] + }, + "event": "minecraft:turn_orange" + }, + "use_item": true + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "dye:1" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + ] + }, + "event": "minecraft:turn_red" + }, + "use_item": true + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "any_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "dye:4" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "dye:18" + } + ] + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + ] + }, + "event": "minecraft:turn_blue" + }, + "use_item": true + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "dye:5" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + ] + }, + "event": "minecraft:turn_purple" + }, + "use_item": true + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "dye:13" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + ] + }, + "event": "minecraft:turn_magenta" + }, + "use_item": true + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "dye:9" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + ] + }, + "event": "minecraft:turn_pink" + }, + "use_item": true + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "any_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "dye:3" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "dye:17" + } + ] + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + ] + }, + "event": "minecraft:turn_brown" + }, + "use_item": true + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "dye:11" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + ] + }, + "event": "minecraft:turn_yellow" + }, + "use_item": true + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "dye:10" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + ] + }, + "event": "minecraft:turn_lime" + }, + "use_item": true + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "dye:2" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + ] + }, + "event": "minecraft:turn_green" + }, + "use_item": true + }, + { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "dye:6" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_ability", + "subject": "other", + "value": "instabuild" + } + ] + }, + "event": "minecraft:turn_cyan" + }, + "use_item": true + } + ] +} +``` + +snow_golem + +```json +"minecraft:interact": { + "interactions": [ + { + "cooldown": 2.5, + "use_item": false, + "hurt_item": 1, + "spawn_items": { + "table": "loot_tables/entities/snow_golem_shear.json" + }, + "play_sounds": "shear", + "interact_text": "action.interact.shear", + "vibration": "shear", + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "shears" + }, + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_component", + "operator": "!=", + "value": "minecraft:is_sheared" + } + ] + }, + "event": "minecraft:on_sheared", + "target": "self" + } + } + ] +} +``` + +strider + +```json +"minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "saddle" + }, + "event": "minecraft:on_saddled" + }, + "use_item": true, + "play_sounds": "saddle", + "interact_text": "action.interact.saddle" + } + ] +} +``` + +tnt_minecart + +```json +"minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "any_of": [ + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "fireball:0" + }, + { + "test": "has_equipment", + "subject": "other", + "domain": "hand", + "value": "flint_and_steel" + } + ], + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_game_rule", + "domain": "tntexplodes", + "operator": "==", + "value": true + } + ] + }, + "event": "minecraft:on_prime", + "target": "self" + }, + "swing": true, + "play_sounds": "ignite", + "interact_text": "action.interact.creeper" + }, + { + "on_interact": { + "filters": { + "any_of": [ + { + "test": "has_component", + "subject": "other", + "value": "fire_aspect" + } + ], + "all_of": [ + { + "test": "is_game_rule", + "domain": "tntexplodes", + "operator": "==", + "value": true + } + ] + }, + "event": "minecraft:on_prime", + "target": "self" + }, + "swing": true, + "interact_text": "action.interact.creeper" + } + ] +} +``` + +trader_llama + +```json +"minecraft:interact": { + "interactions": [ + { + "play_sounds": "armor.equip_generic", + "on_interact": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "has_equipment", + "domain": "hand", + "subject": "other", + "value": "chest" + } + ] + }, + "event": "minecraft:on_chest", + "target": "self" + }, + "use_item": true, + "interact_text": "action.interact.attachchest" + } + ] +} +``` + +zombie_villager + +```json +"minecraft:interact": { + "interactions": { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "domain": "hand", + "subject": "other", + "value": "golden_apple" + }, + { + "test": "has_component", + "subject": "self", + "value": "minecraft:effect.weakness" + } + ] + }, + "event": "villager_converted", + "target": "self" + }, + "use_item": true, + "interact_text": "action.interact.cure" + } +} +``` + +zombie_villager_v2 + +```json +"minecraft:interact": { + "interactions": { + "on_interact": { + "filters": { + "all_of": [ + { + "test": "has_equipment", + "domain": "hand", + "subject": "other", + "value": "golden_apple" + }, + { + "test": "has_component", + "subject": "self", + "value": "minecraft:effect.weakness" + } + ] + }, + "event": "villager_converted", + "target": "self" + }, + "use_item": true, + "interact_text": "action.interact.cure" + } +} +``` + +## inventory + +allay + +```json +"minecraft:inventory": { + "inventory_size": 1 +} +``` + +camel + +```json +"minecraft:inventory": { + "container_type": "horse" +} +``` + +chest_boat + +```json +"minecraft:inventory": { + "container_type": "chest_boat", + "inventory_size": 27, + "can_be_siphoned_from": true +} +``` + +chest_minecart + +```json +"minecraft:inventory": { + "container_type": "minecart_chest", + "inventory_size": 27, + "can_be_siphoned_from": true +} +``` + +command_block_minecart + +```json +"minecraft:inventory": {} +``` + +donkey + +```json +"minecraft:inventory": { + "inventory_size": 16, + "container_type": "horse" +} +``` + +hopper_minecart + +```json +"minecraft:inventory": { + "container_type": "minecart_hopper", + "inventory_size": 5, + "can_be_siphoned_from": true +} +``` + +horse + +```json +"minecraft:inventory": { + "inventory_size": 2, + "container_type": "horse" +} +``` + +llama + +```json +"minecraft:inventory": { + "inventory_size": 16, + "container_type": "horse", + "additional_slots_per_strength": 3 +} +``` + +mule + +```json +"minecraft:inventory": { + "inventory_size": 16, + "container_type": "horse" +} +``` + +panda + +```json +"minecraft:inventory": { + "inventory_size": 1, + "private": true +} +``` + +piglin + +```json +"minecraft:inventory": { + "inventory_size": 8 +} +``` + +trader_llama + +```json +"minecraft:inventory": { + "inventory_size": 16, + "container_type": "horse", + "additional_slots_per_strength": 3 +} +``` + +villager + +```json +"minecraft:inventory": { + "inventory_size": 8, + "private": true +} +``` + +villager_v2 + +```json +"minecraft:inventory": { + "inventory_size": 8, + "private": true +} +``` + +## is_baby + +axolotl + +```json +"minecraft:is_baby": {} +``` + +bee + +```json +"minecraft:is_baby": {} +``` + +camel + +```json +"minecraft:is_baby": {} +``` + +cat + +```json +"minecraft:is_baby": {} +``` + +chicken + +```json +"minecraft:is_baby": {} +``` + +cow + +```json +"minecraft:is_baby": {} +``` + +dolphin + +```json +"minecraft:is_baby": {} +``` + +donkey + +```json +"minecraft:is_baby": {} +``` + +drowned + +```json +"minecraft:is_baby": {} +``` + +fox + +```json +"minecraft:is_baby": {} +``` + +glow_squid + +```json +"minecraft:is_baby": {} +``` + +goat + +```json +"minecraft:is_baby": {} +``` + +hoglin + +```json +"minecraft:is_baby": {} +``` + +horse + +```json +"minecraft:is_baby": {} +``` + +husk + +```json +"minecraft:is_baby": {} +``` + +llama + +```json +"minecraft:is_baby": {} +``` + +mooshroom + +```json +"minecraft:is_baby": {} +``` + +mule + +```json +"minecraft:is_baby": {} +``` + +ocelot + +```json +"minecraft:is_baby": {} +``` + +panda + +```json +"minecraft:is_baby": {} +``` + +pig + +```json +"minecraft:is_baby": {} +``` + +piglin + +```json +"minecraft:is_baby": {} +``` + +polar_bear + +```json +"minecraft:is_baby": {} +``` + +rabbit + +```json +"minecraft:is_baby": {} +``` + +sheep + +```json +"minecraft:is_baby": {} +``` + +skeleton_horse + +```json +"minecraft:is_baby": {} +``` + +sniffer + +```json +"minecraft:is_baby": {} +``` + +squid + +```json +"minecraft:is_baby": {} +``` + +strider + +```json +"minecraft:is_baby": {} +``` + +tadpole + +```json +"minecraft:is_baby": {} +``` + +trader_llama + +```json +"minecraft:is_baby": {} +``` + +turtle + +```json +"minecraft:is_baby": {} +``` + +villager + +```json +"minecraft:is_baby": {} +``` + +villager_v2 + +```json +"minecraft:is_baby": {} +``` + +wolf + +```json +"minecraft:is_baby": {} +``` + +zoglin + +```json +"minecraft:is_baby": {} +``` + +zombie + +```json +"minecraft:is_baby": {} +``` + +zombie_horse + +```json +"minecraft:is_baby": {} +``` + +zombie_pigman + +```json +"minecraft:is_baby": {} +``` + +zombie_villager + +```json +"minecraft:is_baby": {} +``` + +zombie_villager_v2 + +```json +"minecraft:is_baby": {} +``` + +## is_charged + +creeper + +```json +"minecraft:is_charged": {} +``` + +## is_chested + +donkey + +```json +"minecraft:is_chested": {} +``` + +llama + +```json +"minecraft:is_chested": {} +``` + +mule + +```json +"minecraft:is_chested": {} +``` + +trader_llama + +```json +"minecraft:is_chested": {} +``` + +## is_dyeable + +cat + +```json +"minecraft:is_dyeable": { + "interact_text": "action.interact.dye" +} +``` + +sheep + +```json +"minecraft:is_dyeable": { + "interact_text": "action.interact.dye" +} +``` + +wolf + +```json +"minecraft:is_dyeable": { + "interact_text": "action.interact.dye" +} +``` + +## is_hidden_when_invisible + +allay + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +axolotl + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +bat + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +bee + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +blaze + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +camel + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +cat + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +cave_spider + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +chicken + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +cow + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +creeper + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +dolphin + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +donkey + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +elder_guardian + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +enderman + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +endermite + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +ender_dragon + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +evocation_illager + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +cod + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +fox + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +frog + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +ghast + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +glow_squid + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +goat + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +guardian + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +hoglin + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +horse + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +husk + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +iron_golem + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +llama + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +magma_cube + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +mooshroom + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +mule + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +ocelot + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +panda + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +parrot + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +phantom + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +pig + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +piglin + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +piglin_brute + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +pillager + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +player + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +polar_bear + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +pufferfish + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +rabbit + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +ravager + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +salmon + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +sheep + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +shulker + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +silverfish + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +skeleton + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +skeleton_horse + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +slime + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +sniffer + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +snow_golem + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +spider + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +squid + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +stray + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +strider + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +tadpole + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +trader_llama + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +tropicalfish + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +turtle + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +vex + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +villager + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +villager_v2 + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +vindicator + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +wandering_trader + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +warden + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +witch + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +wither + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +wither_skeleton + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +wolf + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +zoglin + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +zombie + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +zombie_horse + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +zombie_pigman + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +zombie_villager + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +zombie_villager_v2 + +```json +"minecraft:is_hidden_when_invisible": {} +``` + +## is_ignited + +tnt_minecart + +```json +"minecraft:is_ignited": {} +``` + +```json +"minecraft:is_ignited": {} +``` + +## is_illager_captain + +pillager + +```json +"minecraft:is_illager_captain": {} +``` + +```json +"minecraft:is_illager_captain": {} +``` + +vindicator + +```json +"minecraft:is_illager_captain": {} +``` + +```json +"minecraft:is_illager_captain": {} +``` + +## is_pregnant + +sniffer + +```json +"minecraft:is_pregnant": {} +``` + +## is_saddled + +camel + +```json +"minecraft:is_saddled": {} +``` + +donkey + +```json +"minecraft:is_saddled": {} +``` + +horse + +```json +"minecraft:is_saddled": {} +``` + +mule + +```json +"minecraft:is_saddled": {} +``` + +pig + +```json +"minecraft:is_saddled": {} +``` + +strider + +```json +"minecraft:is_saddled": {} +``` + +## is_shaking + +hoglin + +```json +"minecraft:is_shaking": {} +``` + +husk + +```json +"minecraft:is_shaking": {} +``` + +```json +"minecraft:is_shaking": {} +``` + +piglin + +```json +"minecraft:is_shaking": {} +``` + +piglin_brute + +```json +"minecraft:is_shaking": {} +``` + +skeleton + +```json +"minecraft:is_shaking": {} +``` + +strider + +```json +"minecraft:is_shaking": {} +``` + +zombie + +```json +"minecraft:is_shaking": {} +``` + +```json +"minecraft:is_shaking": {} +``` + +zombie_villager + +```json +"minecraft:is_shaking": {} +``` + +zombie_villager_v2 + +```json +"minecraft:is_shaking": {} +``` + +## is_sheared + +sheep + +```json +"minecraft:is_sheared": {} +``` + +snow_golem + +```json +"minecraft:is_sheared": {} +``` + +## is_stackable + +boat + +```json +"minecraft:is_stackable": {} +``` + +chest_boat + +```json +"minecraft:is_stackable": {} +``` + +chest_minecart + +```json +"minecraft:is_stackable": { + "value": true +} +``` + +hopper_minecart + +```json +"minecraft:is_stackable": {} +``` + +minecart + +```json +"minecraft:is_stackable": {} +``` + +tnt_minecart + +```json +"minecraft:is_stackable": {} +``` + +## is_stunned + +ravager + +```json +"minecraft:is_stunned": {} +``` + +## is_tamed + +camel + +```json +"minecraft:is_tamed": {} +``` + +cat + +```json +"minecraft:is_tamed": {} +``` + +donkey + +```json +"minecraft:is_tamed": {} +``` + +horse + +```json +"minecraft:is_tamed": {} +``` + +llama + +```json +"minecraft:is_tamed": {} +``` + +mule + +```json +"minecraft:is_tamed": {} +``` + +ocelot + +```json +"minecraft:is_tamed": {} +``` + +parrot + +```json +"minecraft:is_tamed": {} +``` + +skeleton_horse + +```json +"minecraft:is_tamed": {} +``` + +trader_llama + +```json +"minecraft:is_tamed": {} +``` + +wolf + +```json +"minecraft:is_tamed": {} +``` + +zombie_horse + +```json +"minecraft:is_tamed": {} +``` + +## item_controllable + +pig + +```json +"minecraft:item_controllable": { + "control_items": "carrotOnAStick" +} +``` + +strider + +```json +"minecraft:item_controllable": { + "control_items": "warped_fungus_on_a_stick" +} +``` + +## item_hopper + +hopper_minecart + +```json +"minecraft:item_hopper": {} +``` + +## jump.dynamic + +rabbit + +```json +"minecraft:jump.dynamic": {} +``` + +## jump.static + +allay + +```json +"minecraft:jump.static": {} +``` + +axolotl + +```json +"minecraft:jump.static": {} +``` + +bat + +```json +"minecraft:jump.static": {} +``` + +bee + +```json +"minecraft:jump.static": {} +``` + +blaze + +```json +"minecraft:jump.static": {} +``` + +camel + +```json +"minecraft:jump.static": {} +``` + +cat + +```json +"minecraft:jump.static": {} +``` + +cave_spider + +```json +"minecraft:jump.static": {} +``` + +chicken + +```json +"minecraft:jump.static": {} +``` + +cow + +```json +"minecraft:jump.static": {} +``` + +creeper + +```json +"minecraft:jump.static": {} +``` + +dolphin + +```json +"minecraft:jump.static": { + "jump_power": 0.6 +} +``` + +donkey + +```json +"minecraft:jump.static": {} +``` + +drowned + +```json +"minecraft:jump.static": {} +``` + +elder_guardian + +```json +"minecraft:jump.static": {} +``` + +enderman + +```json +"minecraft:jump.static": {} +``` + +endermite + +```json +"minecraft:jump.static": {} +``` + +evocation_illager + +```json +"minecraft:jump.static": {} +``` + +fox + +```json +"minecraft:jump.static": {} +``` + +frog + +```json +"minecraft:jump.static": {} +``` + +ghast + +```json +"minecraft:jump.static": {} +``` + +glow_squid + +```json +"minecraft:jump.static": {} +``` + +goat + +```json +"minecraft:jump.static": {} +``` + +guardian + +```json +"minecraft:jump.static": {} +``` + +hoglin + +```json +"minecraft:jump.static": {} +``` + +horse + +```json +"minecraft:jump.static": {} +``` + +husk + +```json +"minecraft:jump.static": {} +``` + +iron_golem + +```json +"minecraft:jump.static": {} +``` + +llama + +```json +"minecraft:jump.static": {} +``` + +magma_cube + +```json +"minecraft:jump.static": {} +``` + +mooshroom + +```json +"minecraft:jump.static": {} +``` + +mule + +```json +"minecraft:jump.static": {} +``` + +ocelot + +```json +"minecraft:jump.static": {} +``` + +panda + +```json +"minecraft:jump.static": {} +``` + +parrot + +```json +"minecraft:jump.static": {} +``` + +pig + +```json +"minecraft:jump.static": {} +``` + +piglin + +```json +"minecraft:jump.static": {} +``` + +piglin_brute + +```json +"minecraft:jump.static": {} +``` + +pillager + +```json +"minecraft:jump.static": {} +``` + +polar_bear + +```json +"minecraft:jump.static": {} +``` + +ravager + +```json +"minecraft:jump.static": {} +``` + +sheep + +```json +"minecraft:jump.static": {} +``` + +silverfish + +```json +"minecraft:jump.static": {} +``` + +skeleton + +```json +"minecraft:jump.static": {} +``` + +skeleton_horse + +```json +"minecraft:jump.static": {} +``` + +slime + +```json +"minecraft:jump.static": {} +``` + +sniffer + +```json +"minecraft:jump.static": {} +``` + +snow_golem + +```json +"minecraft:jump.static": {} +``` + +spider + +```json +"minecraft:jump.static": {} +``` + +squid + +```json +"minecraft:jump.static": {} +``` + +stray + +```json +"minecraft:jump.static": {} +``` + +strider + +```json +"minecraft:jump.static": {} +``` + +trader_llama + +```json +"minecraft:jump.static": {} +``` + +turtle + +```json +"minecraft:jump.static": {} +``` + +vex + +```json +"minecraft:jump.static": {} +``` + +villager + +```json +"minecraft:jump.static": {} +``` + +villager_v2 + +```json +"minecraft:jump.static": {} +``` + +vindicator + +```json +"minecraft:jump.static": {} +``` + +wandering_trader + +```json +"minecraft:jump.static": {} +``` + +warden + +```json +"minecraft:jump.static": {} +``` + +witch + +```json +"minecraft:jump.static": {} +``` + +wither + +```json +"minecraft:jump.static": {} +``` + +wither_skeleton + +```json +"minecraft:jump.static": {} +``` + +wolf + +```json +"minecraft:jump.static": {} +``` + +zoglin + +```json +"minecraft:jump.static": {} +``` + +zombie + +```json +"minecraft:jump.static": {} +``` + +zombie_horse + +```json +"minecraft:jump.static": {} +``` + +zombie_pigman + +```json +"minecraft:jump.static": {} +``` + +zombie_villager + +```json +"minecraft:jump.static": {} +``` + +zombie_villager_v2 + +```json +"minecraft:jump.static": {} +``` + +## knockback_resistance + +armor_stand + +```json +"minecraft:knockback_resistance": { + "value": 1.0 +} +``` + +ender_dragon + +```json +"minecraft:knockback_resistance": { + "value": 100, + "max": 100 +} +``` + +hoglin + +```json +"minecraft:knockback_resistance": { + "value": 0.6 +} +``` + +iron_golem + +```json +"minecraft:knockback_resistance": { + "value": 1.0 +} +``` + +ravager + +```json +"minecraft:knockback_resistance": { + "value": 0.75 +} +``` + +warden + +```json +"minecraft:knockback_resistance": { + "value": 1.0 +} +``` + +zoglin + +```json +"minecraft:knockback_resistance": { + "value": 0.6 +} +``` + +## lava_movement + +strider + +```json +"minecraft:lava_movement": { + "value": 0.32 +} +``` + +## leashable + +allay + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +axolotl + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +bee + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +boat + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +camel + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +cat + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +chest_boat + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +chicken + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +cow + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +dolphin + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +donkey + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +fox + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +frog + +```json +"minecraft:leashable": {} +``` + +glow_squid + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +goat + +```json +"minecraft:leashable": { + "soft_distance": 4, + "hard_distance": 6, + "max_distance": 10 +} +``` + +hoglin + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +horse + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +iron_golem + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +llama + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0, + "can_be_stolen": true +} +``` + +mooshroom + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +mule + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +ocelot + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0, + "on_leash": { + "event": "minecraft:on_leash", + "target": "self" + }, + "on_unleash": { + "event": "minecraft:on_unleash", + "target": "self" + } +} +``` + +parrot + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +pig + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +polar_bear + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +rabbit + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +sheep + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +skeleton_horse + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +sniffer + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +snow_golem + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +squid + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +strider + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +trader_llama + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0, + "can_be_stolen": true +} +``` + +wolf + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0, + "on_leash": { + "event": "minecraft:on_leash", + "target": "self" + }, + "on_unleash": { + "event": "minecraft:on_unleash", + "target": "self" + } +} +``` + +zoglin + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +zombie_horse + +```json +"minecraft:leashable": { + "soft_distance": 4.0, + "hard_distance": 6.0, + "max_distance": 10.0 +} +``` + +## lookat + +enderman + +```json +"minecraft:lookat": { + "search_radius": 64.0, + "set_target": true, + "look_cooldown": 5.0, + "filters": { + "all_of": [ + { + "subject": "other", + "test": "is_family", + "value": "player" + }, + { + "test": "has_equipment", + "domain": "head", + "subject": "other", + "operator": "not", + "value": "carved_pumpkin" + } + ] + } +} +``` + +## loot + +armor_stand + +```json +"minecraft:loot": { + "table": "loot_tables/entities/armor_stand.json" +} +``` + +blaze + +```json +"minecraft:loot": { + "table": "loot_tables/entities/blaze.json" +} +``` + +boat + +```json +"minecraft:loot": { + "table": "loot_tables/entities/boat.json" +} +``` + +cat + +```json +"minecraft:loot": { + "table": "loot_tables/entities/cat.json" +} +``` + +cave_spider + +```json +"minecraft:loot": { + "table": "loot_tables/entities/spider.json" +} +``` + +chicken + +```json +"minecraft:loot": { + "table": "loot_tables/entities/chicken.json" +} +``` + +cow + +```json +"minecraft:loot": { + "table": "loot_tables/entities/cow.json" +} +``` + +creeper + +```json +"minecraft:loot": { + "table": "loot_tables/entities/creeper.json" +} +``` + +dolphin + +```json +"minecraft:loot": { + "table": "loot_tables/entities/dolphin.json" +} +``` + +donkey + +```json +"minecraft:loot": { + "table": "loot_tables/entities/horse.json" +} +``` + +drowned + +```json +"minecraft:loot": { + "table": "loot_tables/entities/drowned.json" +} +``` + +elder_guardian + +```json +"minecraft:loot": { + "table": "loot_tables/entities/elder_guardian.json" +} +``` + +enderman + +```json +"minecraft:loot": { + "table": "loot_tables/entities/enderman.json" +} +``` + +evocation_illager + +```json +"minecraft:loot": { + "table": "loot_tables/entities/evocation_illager.json" +} +``` + +cod + +```json +"minecraft:loot": { + "table": "loot_tables/entities/fish.json" +} +``` + +fishing_hook + +```json +"minecraft:loot": { + "table": "loot_tables/gameplay/fishing.json" +} +``` + +```json +"minecraft:loot": { + "table": "loot_tables/gameplay/jungle_fishing.json" +} +``` + +fox + +```json +"minecraft:loot": { + "table": "loot_tables/entities/fox.json" +} +``` + +ghast + +```json +"minecraft:loot": { + "table": "loot_tables/entities/ghast.json" +} +``` + +glow_squid + +```json +"minecraft:loot": { + "table": "loot_tables/entities/glow_squid.json" +} +``` + +goat + +```json +"minecraft:loot": { + "table": "loot_tables/entities/goat.json" +} +``` + +guardian + +```json +"minecraft:loot": { + "table": "loot_tables/entities/guardian.json" +} +``` + +hoglin + +```json +"minecraft:loot": { + "table": "loot_tables/entities/hoglin.json" +} +``` + +horse + +```json +"minecraft:loot": { + "table": "loot_tables/entities/horse.json" +} +``` + +husk + +```json +"minecraft:loot": { + "table": "loot_tables/entities/zombie.json" +} +``` + +iron_golem + +```json +"minecraft:loot": { + "table": "loot_tables/entities/iron_golem.json" +} +``` + +llama + +```json +"minecraft:loot": { + "table": "loot_tables/entities/llama.json" +} +``` + +magma_cube + +```json +"minecraft:loot": { + "table": "loot_tables/entities/magma_cube.json" +} +``` + +```json +"minecraft:loot": { + "table": "loot_tables/entities/magma_cube.json" +} +``` + +mooshroom + +```json +"minecraft:loot": { + "table": "loot_tables/entities/mooshroom.json" +} +``` + +mule + +```json +"minecraft:loot": { + "table": "loot_tables/entities/horse.json" +} +``` + +npc + +```json +"minecraft:loot": { + "table": "loot_tables/empty.json" +} +``` + +ocelot + +```json +"minecraft:loot": { + "table": "loot_tables/entities/ocelot.json" +} +``` + +panda + +```json +"minecraft:loot": { + "table": "loot_tables/entities/panda.json" +} +``` + +parrot + +```json +"minecraft:loot": { + "table": "loot_tables/entities/parrot.json" +} +``` + +phantom + +```json +"minecraft:loot": { + "table": "loot_tables/entities/phantom.json" +} +``` + +pig + +```json +"minecraft:loot": { + "table": "loot_tables/entities/pig.json" +} +``` + +```json +"minecraft:loot": { + "table": "loot_tables/entities/pig_saddled.json" +} +``` + +piglin + +```json +"minecraft:loot": { + "table": "loot_tables/entities/piglin.json" +} +``` + +piglin_brute + +```json +"minecraft:loot": { + "table": "loot_tables/entities/piglin.json" +} +``` + +pillager + +```json +"minecraft:loot": { + "table": "loot_tables/entities/pillager.json" +} +``` + +```json +"minecraft:loot": { + "table": "loot_tables/entities/pillager_raid.json" +} +``` + +player + +```json +"minecraft:loot": { + "table": "loot_tables/empty.json" +} +``` + +polar_bear + +```json +"minecraft:loot": { + "table": "loot_tables/entities/polar_bear.json" +} +``` + +pufferfish + +```json +"minecraft:loot": { + "table": "loot_tables/entities/pufferfish.json" +} +``` + +rabbit + +```json +"minecraft:loot": { + "table": "loot_tables/entities/rabbit.json" +} +``` + +ravager + +```json +"minecraft:loot": { + "table": "loot_tables/entities/ravager.json" +} +``` + +salmon + +```json +"minecraft:loot": { + "table": "loot_tables/entities/salmon_normal.json" +} +``` + +```json +"minecraft:loot": { + "table": "loot_tables/entities/salmon_normal.json" +} +``` + +```json +"minecraft:loot": { + "table": "loot_tables/entities/salmon_large.json" +} +``` + +sheep + +```json +"minecraft:loot": { + "table": "loot_tables/entities/sheep_sheared.json" +} +``` + +```json +"minecraft:loot": { + "table": "loot_tables/entities/sheep.json" +} +``` + +shulker + +```json +"minecraft:loot": { + "table": "loot_tables/entities/shulker.json" +} +``` + +silverfish + +```json +"minecraft:loot": { + "table": "loot_tables/entities/silverfish.json" +} +``` + +skeleton + +```json +"minecraft:loot": { + "table": "loot_tables/entities/skeleton.json" +} +``` + +skeleton_horse + +```json +"minecraft:loot": { + "table": "loot_tables/entities/skeleton_horse.json" +} +``` + +slime + +```json +"minecraft:loot": { + "table": "loot_tables/entities/slime.json" +} +``` + +snow_golem + +```json +"minecraft:loot": { + "table": "loot_tables/entities/snowman.json" +} +``` + +spider + +```json +"minecraft:loot": { + "table": "loot_tables/entities/spider.json" +} +``` + +squid + +```json +"minecraft:loot": { + "table": "loot_tables/entities/squid.json" +} +``` + +stray + +```json +"minecraft:loot": { + "table": "loot_tables/entities/stray.json" +} +``` + +strider + +```json +"minecraft:loot": { + "table": "loot_tables/entities/strider_saddled.json" +} +``` + +```json +"minecraft:loot": { + "table": "loot_tables/entities/strider.json" +} +``` + +trader_llama + +```json +"minecraft:loot": { + "table": "loot_tables/entities/llama.json" +} +``` + +tripod_camera + +```json +"minecraft:loot": { + "table": "loot_tables/empty.json" +} +``` + +tropicalfish + +```json +"minecraft:loot": { + "table": "loot_tables/entities/tropicalfish.json" +} +``` + +turtle + +```json +"minecraft:loot": { + "table": "loot_tables/entities/sea_turtle.json" +} +``` + +vindicator + +```json +"minecraft:loot": { + "table": "loot_tables/entities/vindication_illager.json" +} +``` + +```json +"minecraft:loot": { + "table": "loot_tables/entities/vindicator_raid.json" +} +``` + +warden + +```json +"minecraft:loot": { + "table": "loot_tables/entities/warden.json" +} +``` + +witch + +```json +"minecraft:loot": { + "table": "loot_tables/entities/witch.json" +} +``` + +wither + +```json +"minecraft:loot": { + "table": "loot_tables/entities/wither_boss.json" +} +``` + +wither_skeleton + +```json +"minecraft:loot": { + "table": "loot_tables/entities/wither_skeleton.json" +} +``` + +wolf + +```json +"minecraft:loot": { + "table": "loot_tables/entities/wolf.json" +} +``` + +zoglin + +```json +"minecraft:loot": { + "table": "loot_tables/entities/zoglin.json" +} +``` + +zombie + +```json +"minecraft:loot": { + "table": "loot_tables/entities/zombie.json" +} +``` + +zombie_horse + +```json +"minecraft:loot": { + "table": "loot_tables/entities/zombie_horse.json" +} +``` + +zombie_pigman + +```json +"minecraft:loot": { + "table": "loot_tables/entities/zombie_pigman.json" +} +``` + +zombie_villager + +```json +"minecraft:loot": { + "table": "loot_tables/entities/zombie.json" +} +``` + +zombie_villager_v2 + +```json +"minecraft:loot": { + "table": "loot_tables/entities/zombie.json" +} +``` + +## managed_wandering_trader + +wandering_trader + +```json +"minecraft:managed_wandering_trader": {} +``` + +## mark_variant + +bee + +```json +"minecraft:mark_variant": { + "value": 1 +} +``` + +horse + +```json +"minecraft:mark_variant": { + "value": 0 +} +``` + +```json +"minecraft:mark_variant": { + "value": 1 +} +``` + +```json +"minecraft:mark_variant": { + "value": 2 +} +``` + +```json +"minecraft:mark_variant": { + "value": 3 +} +``` + +```json +"minecraft:mark_variant": { + "value": 4 +} +``` + +llama + +```json +"minecraft:mark_variant": { + "value": 0 +} +``` + +mooshroom + +```json +"minecraft:mark_variant": { + "value": -1 +} +``` + +```json +"minecraft:mark_variant": { + "value": -1 +} +``` + +```json +"minecraft:mark_variant": { + "value": 0 +} +``` + +```json +"minecraft:mark_variant": { + "value": 1 +} +``` + +```json +"minecraft:mark_variant": { + "value": 2 +} +``` + +```json +"minecraft:mark_variant": { + "value": 3 +} +``` + +```json +"minecraft:mark_variant": { + "value": 4 +} +``` + +```json +"minecraft:mark_variant": { + "value": 5 +} +``` + +```json +"minecraft:mark_variant": { + "value": 6 +} +``` + +```json +"minecraft:mark_variant": { + "value": 7 +} +``` + +```json +"minecraft:mark_variant": { + "value": 8 +} +``` + +```json +"minecraft:mark_variant": { + "value": 9 +} +``` + +```json +"minecraft:mark_variant": { + "value": 10 +} +``` + +trader_llama + +```json +"minecraft:mark_variant": { + "value": 1 +} +``` + +tropicalfish + +```json +"minecraft:mark_variant": { + "value": 0 +} +``` + +```json +"minecraft:mark_variant": { + "value": 1 +} +``` + +```json +"minecraft:mark_variant": { + "value": 2 +} +``` + +```json +"minecraft:mark_variant": { + "value": 3 +} +``` + +```json +"minecraft:mark_variant": { + "value": 4 +} +``` + +```json +"minecraft:mark_variant": { + "value": 5 +} +``` + +```json +"minecraft:mark_variant": { + "value": 1 +} +``` + +```json +"minecraft:mark_variant": { + "value": 0 +} +``` + +```json +"minecraft:mark_variant": { + "value": 1 +} +``` + +```json +"minecraft:mark_variant": { + "value": 4 +} +``` + +```json +"minecraft:mark_variant": { + "value": 1 +} +``` + +```json +"minecraft:mark_variant": { + "value": 0 +} +``` + +```json +"minecraft:mark_variant": { + "value": 5 +} +``` + +```json +"minecraft:mark_variant": { + "value": 3 +} +``` + +```json +"minecraft:mark_variant": { + "value": 5 +} +``` + +```json +"minecraft:mark_variant": { + "value": 5 +} +``` + +```json +"minecraft:mark_variant": { + "value": 2 +} +``` + +```json +"minecraft:mark_variant": { + "value": 5 +} +``` + +```json +"minecraft:mark_variant": { + "value": 3 +} +``` + +```json +"minecraft:mark_variant": { + "value": 4 +} +``` + +```json +"minecraft:mark_variant": { + "value": 4 +} +``` + +```json +"minecraft:mark_variant": { + "value": 2 +} +``` + +```json +"minecraft:mark_variant": { + "value": 3 +} +``` + +```json +"minecraft:mark_variant": { + "value": 0 +} +``` + +```json +"minecraft:mark_variant": { + "value": 1 +} +``` + +```json +"minecraft:mark_variant": { + "value": 1 +} +``` + +```json +"minecraft:mark_variant": { + "value": 1 +} +``` + +```json +"minecraft:mark_variant": { + "value": 3 +} +``` + +villager_v2 + +```json +"minecraft:mark_variant": { + "value": 0 +} +``` + +```json +"minecraft:mark_variant": { + "value": 1 +} +``` + +```json +"minecraft:mark_variant": { + "value": 2 +} +``` + +```json +"minecraft:mark_variant": { + "value": 3 +} +``` + +```json +"minecraft:mark_variant": { + "value": 4 +} +``` + +```json +"minecraft:mark_variant": { + "value": 5 +} +``` + +```json +"minecraft:mark_variant": { + "value": 6 +} +``` + +zombie_villager_v2 + +```json +"minecraft:mark_variant": { + "value": 1 +} +``` + +```json +"minecraft:mark_variant": { + "value": 2 +} +``` + +```json +"minecraft:mark_variant": { + "value": 3 +} +``` + +```json +"minecraft:mark_variant": { + "value": 4 +} +``` + +```json +"minecraft:mark_variant": { + "value": 5 +} +``` + +```json +"minecraft:mark_variant": { + "value": 6 +} +``` + +## mob_effect + +pufferfish + +```json +"minecraft:mob_effect": { + "effect_range": 0.2, + "mob_effect": "poison", + "effect_time": 10, + "entity_filter": { + "any_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "test": "is_family", + "subject": "other", + "value": "monster" + } + ] + } +} +``` + +warden + +```json +"minecraft:mob_effect": { + "effect_range": 20, + "effect_time": 13, + "mob_effect": "darkness", + "cooldown_time": 6, + "entity_filter": { + "all_of": [ + { + "test": "is_family", + "subject": "other", + "value": "player" + }, + { + "operator": "not", + "test": "has_ability", + "subject": "other", + "value": "invulnerable" + } + ] + } +} +``` + +## movement + +allay + +```json +"minecraft:movement": { + "value": 0.1 +} +``` + +axolotl + +```json +"minecraft:movement": { + "value": 0.1 +} +``` + +bat + +```json +"minecraft:movement": { + "value": 0.1 +} +``` + +bee + +```json +"minecraft:movement": { + "value": 0.3 +} +``` + +blaze + +```json +"minecraft:movement": { + "value": 0.23 +} +``` + +camel + +```json +"minecraft:movement": { + "value": 0.09 +} +``` + +cat + +```json +"minecraft:movement": { + "value": 0.3 +} +``` + +cave_spider + +```json +"minecraft:movement": { + "value": 0.3 +} +``` + +chicken + +```json +"minecraft:movement": { + "value": 0.25 +} +``` + +cow + +```json +"minecraft:movement": { + "value": 0.25 +} +``` + +creeper + +```json +"minecraft:movement": { + "value": 0.2 +} +``` + +dolphin + +```json +"minecraft:movement": { + "value": 0.1 +} +``` + +donkey + +```json +"minecraft:movement": { + "value": 0.175 +} +``` + +drowned + +```json +"minecraft:movement": { + "value": 0.23 +} +``` + +```json +"minecraft:movement": { + "value": 0.25 +} +``` + +elder_guardian + +```json +"minecraft:movement": { + "value": 0.3 +} +``` + +enderman + +```json +"minecraft:movement": { + "value": 0.3 +} +``` + +```json +"minecraft:movement": { + "value": 0.45 +} +``` + +endermite + +```json +"minecraft:movement": { + "value": 0.25 +} +``` + +ender_dragon + +```json +"minecraft:movement": { + "value": 0.3 +} +``` + +evocation_illager + +```json +"minecraft:movement": { + "value": 0.5 +} +``` + +cod + +```json +"minecraft:movement": { + "value": 0.1 +} +``` + +fox + +```json +"minecraft:movement": { + "value": 0.3 +} +``` + +frog + +```json +"minecraft:movement": { + "value": 0.1 +} +``` + +ghast + +```json +"minecraft:movement": { + "value": 0.03 +} +``` + +glow_squid + +```json +"minecraft:movement": { + "value": 0.2 +} +``` + +goat + +```json +"minecraft:movement": { + "value": 0.4 +} +``` + +guardian + +```json +"minecraft:movement": { + "value": 0.12 +} +``` + +hoglin + +```json +"minecraft:movement": { + "value": 0.36 +} +``` + +```json +"minecraft:movement": { + "value": 0.3 +} +``` + +horse + +```json +"minecraft:movement": { + "value": { + "range_min": 0.1125, + "range_max": 0.3375 + } +} +``` + +husk + +```json +"minecraft:movement": { + "value": 0.35 +} +``` + +```json +"minecraft:movement": { + "value": 0.23 +} +``` + +iron_golem + +```json +"minecraft:movement": { + "value": 0.25 +} +``` + +llama + +```json +"minecraft:movement": { + "value": 0.25 +} +``` + +magma_cube + +```json +"minecraft:movement": { + "value": 0.75 +} +``` + +```json +"minecraft:movement": { + "value": 0.66 +} +``` + +```json +"minecraft:movement": { + "value": 0.6 +} +``` + +mooshroom + +```json +"minecraft:movement": { + "value": 0.25 +} +``` + +mule + +```json +"minecraft:movement": { + "value": 0.175 +} +``` + +npc + +```json +"minecraft:movement": { + "value": 0.5 +} +``` + +ocelot + +```json +"minecraft:movement": { + "value": 0.3 +} +``` + +panda + +```json +"minecraft:movement": { + "value": 0.15 +} +``` + +```json +"minecraft:movement": { + "value": 0.07 +} +``` + +parrot + +```json +"minecraft:movement": { + "value": 0.4 +} +``` + +phantom + +```json +"minecraft:movement": { + "value": 1.8 +} +``` + +pig + +```json +"minecraft:movement": { + "value": 0.25 +} +``` + +piglin + +```json +"minecraft:movement": { + "value": 0.42 +} +``` + +```json +"minecraft:movement": { + "value": 0.35 +} +``` + +piglin_brute + +```json +"minecraft:movement": { + "value": 0.35 +} +``` + +pillager + +```json +"minecraft:movement": { + "value": 0.35 +} +``` + +player + +```json +"minecraft:movement": { + "value": 0.1 +} +``` + +polar_bear + +```json +"minecraft:movement": { + "value": 0.25 +} +``` + +pufferfish + +```json +"minecraft:movement": { + "value": 0.13 +} +``` + +rabbit + +```json +"minecraft:movement": { + "value": 0.3 +} +``` + +ravager + +```json +"minecraft:movement": { + "value": 0.0 +} +``` + +```json +"minecraft:movement": { + "value": 0.4 +} +``` + +salmon + +```json +"minecraft:movement": { + "value": 0.12 +} +``` + +sheep + +```json +"minecraft:movement": { + "value": 0.25 +} +``` + +shulker + +```json +"minecraft:movement": { + "value": 0.0, + "max": 0.0 +} +``` + +silverfish + +```json +"minecraft:movement": { + "value": 0.25 +} +``` + +skeleton + +```json +"minecraft:movement": { + "value": 0.25 +} +``` + +skeleton_horse + +```json +"minecraft:movement": { + "value": 0.2 +} +``` + +slime + +```json +"minecraft:movement": { + "value": 0.6 +} +``` + +```json +"minecraft:movement": { + "value": 0.4 +} +``` + +```json +"minecraft:movement": { + "value": 0.3 +} +``` + +sniffer + +```json +"minecraft:movement": { + "value": 0.09 +} +``` + +snow_golem + +```json +"minecraft:movement": { + "value": 0.2 +} +``` + +spider + +```json +"minecraft:movement": { + "value": 0.3 +} +``` + +squid + +```json +"minecraft:movement": { + "value": 0.2 +} +``` + +stray + +```json +"minecraft:movement": { + "value": 0.25 +} +``` + +strider + +```json +"minecraft:movement": { + "value": 0.16 +} +``` + +tadpole + +```json +"minecraft:movement": { + "value": 0.1 +} +``` + +trader_llama + +```json +"minecraft:movement": { + "value": 0.25 +} +``` + +tropicalfish + +```json +"minecraft:movement": { + "value": 0.12 +} +``` + +turtle + +```json +"minecraft:movement": { + "value": 0.1 +} +``` + +vex + +```json +"minecraft:movement": { + "value": 1.0 +} +``` + +villager + +```json +"minecraft:movement": { + "value": 0.5 +} +``` + +villager_v2 + +```json +"minecraft:movement": { + "value": 0.5 +} +``` + +vindicator + +```json +"minecraft:movement": { + "value": 0.35 +} +``` + +wandering_trader + +```json +"minecraft:movement": { + "value": 0.5 +} +``` + +warden + +```json +"minecraft:movement": { + "value": 0.3 +} +``` + +witch + +```json +"minecraft:movement": { + "value": 0.25 +} +``` + +wither + +```json +"minecraft:movement": { + "value": 0.25 +} +``` + +wither_skeleton + +```json +"minecraft:movement": { + "value": 0.25 +} +``` + +wolf + +```json +"minecraft:movement": { + "value": 0.3 +} +``` + +zoglin + +```json +"minecraft:movement": { + "value": 0.25 +} +``` + +zombie + +```json +"minecraft:movement": { + "value": 0.35 +} +``` + +```json +"minecraft:movement": { + "value": 0.23 +} +``` + +zombie_horse + +```json +"minecraft:movement": { + "value": 0.2 +} +``` + +zombie_pigman + +```json +"minecraft:movement": { + "value": 0.23 +} +``` + +zombie_villager + +```json +"minecraft:movement": { + "value": 0.35 +} +``` + +```json +"minecraft:movement": { + "value": 0.23 +} +``` + +zombie_villager_v2 + +```json +"minecraft:movement": { + "value": 0.35 +} +``` + +```json +"minecraft:movement": { + "value": 0.23 +} +``` + +## movement.amphibious + +axolotl + +```json +"minecraft:movement.amphibious": { + "max_turn": 15.0 +} +``` + +frog + +```json +"minecraft:movement.amphibious": {} +``` + +turtle + +```json +"minecraft:movement.amphibious": { + "max_turn": 5.0 +} +``` + +## movement.basic + +bat + +```json +"minecraft:movement.basic": {} +``` + +blaze + +```json +"minecraft:movement.basic": {} +``` + +camel + +```json +"minecraft:movement.basic": {} +``` + +cat + +```json +"minecraft:movement.basic": {} +``` + +cave_spider + +```json +"minecraft:movement.basic": {} +``` + +chicken + +```json +"minecraft:movement.basic": {} +``` + +cow + +```json +"minecraft:movement.basic": {} +``` + +creeper + +```json +"minecraft:movement.basic": {} +``` + +donkey + +```json +"minecraft:movement.basic": {} +``` + +enderman + +```json +"minecraft:movement.basic": {} +``` + +endermite + +```json +"minecraft:movement.basic": {} +``` + +evocation_illager + +```json +"minecraft:movement.basic": {} +``` + +fox + +```json +"minecraft:movement.basic": {} +``` + +glow_squid + +```json +"minecraft:movement.basic": {} +``` + +goat + +```json +"minecraft:movement.basic": {} +``` + +hoglin + +```json +"minecraft:movement.basic": {} +``` + +horse + +```json +"minecraft:movement.basic": {} +``` + +husk + +```json +"minecraft:movement.basic": {} +``` + +iron_golem + +```json +"minecraft:movement.basic": {} +``` + +llama + +```json +"minecraft:movement.basic": {} +``` + +mooshroom + +```json +"minecraft:movement.basic": {} +``` + +mule + +```json +"minecraft:movement.basic": {} +``` + +ocelot + +```json +"minecraft:movement.basic": {} +``` + +panda + +```json +"minecraft:movement.basic": {} +``` + +pig + +```json +"minecraft:movement.basic": {} +``` + +piglin + +```json +"minecraft:movement.basic": {} +``` + +piglin_brute + +```json +"minecraft:movement.basic": {} +``` + +pillager + +```json +"minecraft:movement.basic": {} +``` + +polar_bear + +```json +"minecraft:movement.basic": {} +``` + +ravager + +```json +"minecraft:movement.basic": {} +``` + +sheep + +```json +"minecraft:movement.basic": {} +``` + +shulker + +```json +"minecraft:movement.basic": {} +``` + +silverfish + +```json +"minecraft:movement.basic": {} +``` + +skeleton + +```json +"minecraft:movement.basic": {} +``` + +skeleton_horse + +```json +"minecraft:movement.basic": {} +``` + +sniffer + +```json +"minecraft:movement.basic": {} +``` + +snow_golem + +```json +"minecraft:movement.basic": {} +``` + +spider + +```json +"minecraft:movement.basic": {} +``` + +squid + +```json +"minecraft:movement.basic": {} +``` + +stray + +```json +"minecraft:movement.basic": {} +``` + +strider + +```json +"minecraft:movement.basic": {} +``` + +trader_llama + +```json +"minecraft:movement.basic": {} +``` + +vex + +```json +"minecraft:movement.basic": {} +``` + +villager + +```json +"minecraft:movement.basic": {} +``` + +villager_v2 + +```json +"minecraft:movement.basic": {} +``` + +vindicator + +```json +"minecraft:movement.basic": {} +``` + +wandering_trader + +```json +"minecraft:movement.basic": {} +``` + +warden + +```json +"minecraft:movement.basic": {} +``` + +witch + +```json +"minecraft:movement.basic": {} +``` + +wither + +```json +"minecraft:movement.basic": { + "max_turn": 180.0 +} +``` + +wither_skeleton + +```json +"minecraft:movement.basic": {} +``` + +wolf + +```json +"minecraft:movement.basic": {} +``` + +zoglin + +```json +"minecraft:movement.basic": {} +``` + +zombie + +```json +"minecraft:movement.basic": {} +``` + +zombie_horse + +```json +"minecraft:movement.basic": {} +``` + +zombie_pigman + +```json +"minecraft:movement.basic": {} +``` + +zombie_villager + +```json +"minecraft:movement.basic": {} +``` + +zombie_villager_v2 + +```json +"minecraft:movement.basic": {} +``` + +## movement.fly + +parrot + +```json +"minecraft:movement.fly": {} +``` + +## movement.generic + +drowned + +```json +"minecraft:movement.generic": {} +``` + +## movement.glide + +phantom + +```json +"minecraft:movement.glide": { + "start_speed": 0.1, + "speed_when_turning": 0.2 +} +``` + +## movement.hover + +allay + +```json +"minecraft:movement.hover": {} +``` + +bee + +```json +"minecraft:movement.hover": {} +``` + +## movement.jump + +magma_cube + +```json +"minecraft:movement.jump": { + "jump_delay": [ + 2.0, + 6.0 + ] +} +``` + +```json +"minecraft:movement.jump": { + "jump_delay": [ + 2.0, + 6.0 + ] +} +``` + +```json +"minecraft:movement.jump": { + "jump_delay": [ + 0.667, + 2.0 + ] +} +``` + +slime + +```json +"minecraft:movement.jump": { + "jump_delay": [ + 0.5, + 1.5 + ] +} +``` + +```json +"minecraft:movement.jump": { + "jump_delay": [ + 0.5, + 1.5 + ] +} +``` + +```json +"minecraft:movement.jump": { + "jump_delay": [ + 0.16, + 0.5 + ] +} +``` + +## movement.skip + +rabbit + +```json +"minecraft:movement.skip": {} +``` + +## movement.sway + +elder_guardian + +```json +"minecraft:movement.sway": {} +``` + +cod + +```json +"minecraft:movement.sway": { + "sway_amplitude": 0.0 +} +``` + +guardian + +```json +"minecraft:movement.sway": {} +``` + +pufferfish + +```json +"minecraft:movement.sway": { + "sway_amplitude": 0.0 +} +``` + +salmon + +```json +"minecraft:movement.sway": { + "sway_amplitude": 0.0 +} +``` + +tadpole + +```json +"minecraft:movement.sway": { + "sway_amplitude": 0.0 +} +``` + +tropicalfish + +```json +"minecraft:movement.sway": { + "sway_amplitude": 0.0 +} +``` + +## movement_sound_distance_offset + +warden + +```json +"minecraft:movement_sound_distance_offset": { + "value": 0.55 +} +``` + +## nameable + +allay + +```json +"minecraft:nameable": {} +``` + +armor_stand + +```json +"minecraft:nameable": {} +``` + +axolotl + +```json +"minecraft:nameable": {} +``` + +bat + +```json +"minecraft:nameable": {} +``` + +bee + +```json +"minecraft:nameable": {} +``` + +blaze + +```json +"minecraft:nameable": {} +``` + +camel + +```json +"minecraft:nameable": {} +``` + +cat + +```json +"minecraft:nameable": {} +``` + +cave_spider + +```json +"minecraft:nameable": {} +``` + +chicken + +```json +"minecraft:nameable": {} +``` + +cow + +```json +"minecraft:nameable": {} +``` + +creeper + +```json +"minecraft:nameable": {} +``` + +dolphin + +```json +"minecraft:nameable": {} +``` + +donkey + +```json +"minecraft:nameable": {} +``` + +drowned + +```json +"minecraft:nameable": {} +``` + +elder_guardian + +```json +"minecraft:nameable": {} +``` + +enderman + +```json +"minecraft:nameable": {} +``` + +endermite + +```json +"minecraft:nameable": {} +``` + +evocation_illager + +```json +"minecraft:nameable": {} +``` + +cod + +```json +"minecraft:nameable": {} +``` + +fox + +```json +"minecraft:nameable": {} +``` + +frog + +```json +"minecraft:nameable": {} +``` + +ghast + +```json +"minecraft:nameable": {} +``` + +glow_squid + +```json +"minecraft:nameable": {} +``` + +goat + +```json +"minecraft:nameable": {} +``` + +guardian + +```json +"minecraft:nameable": {} +``` + +hoglin + +```json +"minecraft:nameable": {} +``` + +horse + +```json +"minecraft:nameable": {} +``` + +husk + +```json +"minecraft:nameable": {} +``` + +iron_golem + +```json +"minecraft:nameable": {} +``` + +llama + +```json +"minecraft:nameable": {} +``` + +magma_cube + +```json +"minecraft:nameable": {} +``` + +mooshroom + +```json +"minecraft:nameable": {} +``` + +mule + +```json +"minecraft:nameable": {} +``` + +npc + +```json +"minecraft:nameable": { + "always_show": false, + "allow_name_tag_renaming": false +} +``` + +ocelot + +```json +"minecraft:nameable": {} +``` + +panda + +```json +"minecraft:nameable": {} +``` + +parrot + +```json +"minecraft:nameable": {} +``` + +phantom + +```json +"minecraft:nameable": {} +``` + +pig + +```json +"minecraft:nameable": {} +``` + +piglin + +```json +"minecraft:nameable": {} +``` + +piglin_brute + +```json +"minecraft:nameable": {} +``` + +pillager + +```json +"minecraft:nameable": {} +``` + +player + +```json +"minecraft:nameable": { + "always_show": true, + "allow_name_tag_renaming": false +} +``` + +polar_bear + +```json +"minecraft:nameable": {} +``` + +pufferfish + +```json +"minecraft:nameable": {} +``` + +rabbit + +```json +"minecraft:nameable": {} +``` + +ravager + +```json +"minecraft:nameable": {} +``` + +salmon + +```json +"minecraft:nameable": {} +``` + +sheep + +```json +"minecraft:nameable": {} +``` + +shulker + +```json +"minecraft:nameable": {} +``` + +silverfish + +```json +"minecraft:nameable": {} +``` + +skeleton + +```json +"minecraft:nameable": {} +``` + +skeleton_horse + +```json +"minecraft:nameable": {} +``` + +slime + +```json +"minecraft:nameable": {} +``` + +sniffer + +```json +"minecraft:nameable": {} +``` + +snow_golem + +```json +"minecraft:nameable": {} +``` + +spider + +```json +"minecraft:nameable": {} +``` + +squid + +```json +"minecraft:nameable": {} +``` + +stray + +```json +"minecraft:nameable": {} +``` + +strider + +```json +"minecraft:nameable": {} +``` + +tadpole + +```json +"minecraft:nameable": {} +``` + +trader_llama + +```json +"minecraft:nameable": {} +``` + +tropicalfish + +```json +"minecraft:nameable": {} +``` + +turtle + +```json +"minecraft:nameable": {} +``` + +vex + +```json +"minecraft:nameable": {} +``` + +villager + +```json +"minecraft:nameable": {} +``` + +villager_v2 + +```json +"minecraft:nameable": {} +``` + +vindicator + +```json +"minecraft:nameable": { + "default_trigger": { + "event": "minecraft:stop_johnny", + "target": "self" + }, + "name_actions": [ + { + "name_filter": "Johnny", + "on_named": { + "event": "minecraft:start_johnny", + "target": "self" + } + } + ] +} +``` + +wandering_trader + +```json +"minecraft:nameable": {} +``` + +warden + +```json +"minecraft:nameable": {} +``` + +witch + +```json +"minecraft:nameable": {} +``` + +wither + +```json +"minecraft:nameable": {} +``` + +wither_skeleton + +```json +"minecraft:nameable": {} +``` + +wolf + +```json +"minecraft:nameable": {} +``` + +zoglin + +```json +"minecraft:nameable": {} +``` + +zombie + +```json +"minecraft:nameable": {} +``` + +zombie_horse + +```json +"minecraft:nameable": {} +``` + +zombie_pigman + +```json +"minecraft:nameable": {} +``` + +zombie_villager + +```json +"minecraft:nameable": {} +``` + +zombie_villager_v2 + +```json +"minecraft:nameable": {} +``` + +## navigation.climb + +cave_spider + +```json +"minecraft:navigation.climb": { + "can_path_over_water": true +} +``` + +spider + +```json +"minecraft:navigation.climb": { + "can_path_over_water": true +} +``` + +## navigation.float + +bat + +```json +"minecraft:navigation.float": { + "can_path_over_water": true +} +``` + +ghast + +```json +"minecraft:navigation.float": { + "can_path_over_water": true +} +``` + +## navigation.fly + +parrot + +```json +"minecraft:navigation.fly": { + "can_path_over_water": true, + "can_path_from_air": true +} +``` + +## navigation.generic + +axolotl + +```json +"minecraft:navigation.generic": { + "is_amphibious": true, + "can_path_over_water": true, + "can_swim": true, + "can_walk": true, + "can_sink": false, + "avoid_damage_blocks": true +} +``` + +dolphin + +```json +"minecraft:navigation.generic": { + "is_amphibious": true, + "can_path_over_water": true, + "can_swim": true, + "can_walk": false, + "can_breach": true, + "can_sink": false +} +``` + +```json +"minecraft:navigation.generic": { + "is_amphibious": true, + "can_path_over_water": false, + "can_swim": true, + "can_walk": false, + "can_breach": true, + "can_sink": false +} +``` + +```json +"minecraft:navigation.generic": { + "is_amphibious": true, + "can_path_over_water": true, + "can_swim": true, + "can_walk": true, + "can_breach": false, + "can_jump": false +} +``` + +```json +"minecraft:navigation.generic": { + "is_amphibious": true, + "can_path_over_water": true, + "can_swim": true, + "can_walk": true, + "can_breach": false, + "can_jump": false +} +``` + +drowned + +```json +"minecraft:navigation.generic": { + "is_amphibious": true, + "can_path_over_water": false, + "can_break_doors": true, + "can_swim": false, + "can_walk": true, + "avoid_sun": true +} +``` + +```json +"minecraft:navigation.generic": { + "is_amphibious": true, + "can_path_over_water": false, + "can_break_doors": true, + "can_swim": true, + "can_walk": true, + "avoid_sun": true +} +``` + +```json +"minecraft:navigation.generic": { + "is_amphibious": true, + "can_path_over_water": false, + "can_break_doors": true, + "can_swim": false, + "can_walk": true, + "avoid_sun": true +} +``` + +elder_guardian + +```json +"minecraft:navigation.generic": { + "is_amphibious": true, + "can_path_over_water": false, + "can_swim": true, + "can_walk": false, + "can_breach": true +} +``` + +cod + +```json +"minecraft:navigation.generic": { + "is_amphibious": false, + "can_path_over_water": false, + "can_swim": true, + "can_walk": false, + "can_breach": false, + "can_sink": false +} +``` + +frog + +```json +"minecraft:navigation.generic": { + "is_amphibious": true, + "can_path_over_water": true, + "can_swim": true, + "can_walk": true, + "can_sink": false, + "avoid_damage_blocks": true +} +``` + +guardian + +```json +"minecraft:navigation.generic": { + "is_amphibious": true, + "can_path_over_water": false, + "can_swim": true, + "can_walk": false, + "can_breach": true +} +``` + +pufferfish + +```json +"minecraft:navigation.generic": { + "is_amphibious": false, + "can_path_over_water": false, + "can_swim": true, + "can_walk": false, + "can_breach": false, + "can_sink": false +} +``` + +salmon + +```json +"minecraft:navigation.generic": { + "is_amphibious": false, + "can_path_over_water": false, + "can_swim": true, + "can_walk": false, + "can_breach": false, + "can_sink": false +} +``` + +tadpole + +```json +"minecraft:navigation.generic": { + "can_path_over_water": true, + "can_swim": true, + "can_walk": false, + "can_sink": false, + "avoid_damage_blocks": true +} +``` + +tropicalfish + +```json +"minecraft:navigation.generic": { + "is_amphibious": false, + "can_path_over_water": false, + "can_swim": true, + "can_walk": false, + "can_breach": false, + "can_sink": false +} +``` + +turtle + +```json +"minecraft:navigation.generic": { + "is_amphibious": true, + "can_path_over_water": false, + "can_swim": true, + "can_walk": true, + "can_sink": false, + "avoid_damage_blocks": true +} +``` + +## navigation.hover + +allay + +```json +"minecraft:navigation.hover": { + "can_path_over_water": true, + "can_sink": false, + "can_pass_doors": false, + "can_path_from_air": true, + "avoid_water": true, + "avoid_damage_blocks": true, + "avoid_sun": false +} +``` + +bee + +```json +"minecraft:navigation.hover": { + "can_path_over_water": true, + "can_sink": false, + "can_pass_doors": false, + "can_path_from_air": true, + "avoid_water": true, + "avoid_damage_blocks": true, + "avoid_sun": false +} +``` + +## navigation.walk + +blaze + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_water": true, + "avoid_damage_blocks": true +} +``` + +camel + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_damage_blocks": true +} +``` + +cat + +```json +"minecraft:navigation.walk": { + "can_float": true, + "avoid_water": true, + "avoid_damage_blocks": true +} +``` + +chicken + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_damage_blocks": true +} +``` + +cow + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_water": true, + "avoid_damage_blocks": true +} +``` + +creeper + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true +} +``` + +donkey + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_water": true, + "avoid_damage_blocks": true +} +``` + +enderman + +```json +"minecraft:navigation.walk": { + "can_path_over_water": false, + "avoid_water": true +} +``` + +endermite + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true +} +``` + +evocation_illager + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "can_pass_doors": true, + "can_open_doors": true, + "avoid_water": true +} +``` + +fox + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_water": true, + "avoid_damage_blocks": true +} +``` + +glow_squid + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "can_sink": false +} +``` + +goat + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_water": true, + "avoid_damage_blocks": true, + "blocks_to_avoid": [ + { + "name": "minecraft:powder_snow" + } + ] +} +``` + +hoglin + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_water": true, + "avoid_damage_blocks": true +} +``` + +horse + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_water": true, + "avoid_damage_blocks": true +} +``` + +husk + +```json +"minecraft:navigation.walk": { + "is_amphibious": true, + "can_pass_doors": true, + "can_break_doors": true, + "avoid_portals": false +} +``` + +iron_golem + +```json +"minecraft:navigation.walk": { + "can_path_over_water": false, + "avoid_water": true, + "avoid_damage_blocks": true +} +``` + +llama + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_damage_blocks": true +} +``` + +magma_cube + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_water": true +} +``` + +mooshroom + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_water": true, + "avoid_damage_blocks": true +} +``` + +mule + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_water": true, + "avoid_damage_blocks": true +} +``` + +ocelot + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_water": true, + "avoid_damage_blocks": true +} +``` + +panda + +```json +"minecraft:navigation.walk": { + "can_float": true, + "avoid_water": true, + "avoid_damage_blocks": true +} +``` + +pig + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_water": true, + "avoid_damage_blocks": true +} +``` + +piglin + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "can_open_doors": true +} +``` + +piglin_brute + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "can_open_doors": true +} +``` + +pillager + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true +} +``` + +polar_bear + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_damage_blocks": true +} +``` + +rabbit + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_water": true +} +``` + +ravager + +```json +"minecraft:navigation.walk": { + "avoid_damage_blocks": true, + "can_path_over_water": true, + "can_sink": false +} +``` + +sheep + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_water": true +} +``` + +shulker + +```json +"minecraft:navigation.walk": {} +``` + +silverfish + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true +} +``` + +skeleton + +```json +"minecraft:navigation.walk": { + "is_amphibious": true, + "avoid_sun": true, + "avoid_water": true +} +``` + +skeleton_horse + +```json +"minecraft:navigation.walk": { + "is_amphibious": true, + "avoid_water": true +} +``` + +slime + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_water": true +} +``` + +sniffer + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_water": true, + "avoid_damage_blocks": true +} +``` + +snow_golem + +```json +"minecraft:navigation.walk": { + "avoid_water": true +} +``` + +squid + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "can_sink": false +} +``` + +stray + +```json +"minecraft:navigation.walk": { + "is_amphibious": true, + "avoid_sun": true, + "avoid_water": true +} +``` + +strider + +```json +"minecraft:navigation.walk": { + "can_path_over_lava": true, + "avoid_water": true, + "can_sink": false, + "can_walk_in_lava": true +} +``` + +trader_llama + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_damage_blocks": true +} +``` + +vex + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true +} +``` + +villager + +```json +"minecraft:navigation.walk": { + "is_amphibious": true, + "can_path_over_water": true, + "can_pass_doors": true, + "can_open_doors": true, + "can_walk": true, + "avoid_water": true +} +``` + +villager_v2 + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "can_pass_doors": true, + "can_open_doors": true, + "avoid_water": true +} +``` + +vindicator + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true +} +``` + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "can_pass_doors": true, + "can_break_doors": true +} +``` + +wandering_trader + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "can_pass_doors": true, + "can_open_doors": false, + "avoid_water": true +} +``` + +warden + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "can_path_over_lava": true, + "avoid_damage_blocks": true +} +``` + +witch + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_water": false +} +``` + +wither + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_water": true +} +``` + +wither_skeleton + +```json +"minecraft:navigation.walk": { + "is_amphibious": true, + "avoid_sun": true, + "avoid_water": true +} +``` + +wolf + +```json +"minecraft:navigation.walk": { + "can_path_over_water": true, + "avoid_damage_blocks": true +} +``` + +zoglin + +```json +"minecraft:navigation.walk": { + "is_amphibious": true, + "can_path_over_water": false, + "avoid_water": true, + "avoid_damage_blocks": true +} +``` + +zombie + +```json +"minecraft:navigation.walk": { + "is_amphibious": true, + "can_pass_doors": true, + "can_walk": true, + "can_break_doors": true +} +``` + +zombie_horse + +```json +"minecraft:navigation.walk": { + "is_amphibious": true, + "avoid_water": true +} +``` + +zombie_pigman + +```json +"minecraft:navigation.walk": { + "is_amphibious": true, + "can_pass_doors": true, + "can_open_doors": true, + "avoid_water": true, + "avoid_portals": true +} +``` + +zombie_villager + +```json +"minecraft:navigation.walk": { + "is_amphibious": true, + "can_pass_doors": true, + "can_break_doors": true, + "avoid_sun": false +} +``` + +```json +"minecraft:navigation.walk": { + "is_amphibious": true, + "can_pass_doors": true, + "can_open_doors": true, + "avoid_water": true, + "avoid_sun": true +} +``` + +zombie_villager_v2 + +```json +"minecraft:navigation.walk": { + "is_amphibious": true, + "can_pass_doors": true, + "can_break_doors": true, + "avoid_sun": false +} +``` + +```json +"minecraft:navigation.walk": { + "is_amphibious": true, + "can_pass_doors": true, + "can_open_doors": true, + "avoid_water": true, + "avoid_sun": true +} +``` + +## npc + +npc + +```json +"minecraft:npc": { + "npc_data": { + "portrait_offsets": { + "translate": [ + -7, + 50, + 0 + ], + "scale": [ + 1.75, + 1.75, + 1.75 + ] + }, + "picker_offsets": { + "translate": [ + 0, + 20, + 0 + ], + "scale": [ + 1.7, + 1.7, + 1.7 + ] + }, + "skin_list": [ + { + "variant": 0 + }, + { + "variant": 1 + }, + { + "variant": 2 + }, + { + "variant": 3 + }, + { + "variant": 4 + }, + { + "variant": 5 + }, + { + "variant": 6 + }, + { + "variant": 7 + }, + { + "variant": 8 + }, + { + "variant": 9 + }, + { + "variant": 10 + }, + { + "variant": 11 + }, + { + "variant": 12 + }, + { + "variant": 13 + }, + { + "variant": 14 + }, + { + "variant": 15 + }, + { + "variant": 16 + }, + { + "variant": 17 + }, + { + "variant": 18 + }, + { + "variant": 19 + }, + { + "variant": 25 + }, + { + "variant": 26 + }, + { + "variant": 27 + }, + { + "variant": 28 + }, + { + "variant": 29 + }, + { + "variant": 30 + }, + { + "variant": 31 + }, + { + "variant": 32 + }, + { + "variant": 33 + }, + { + "variant": 34 + }, + { + "variant": 20 + }, + { + "variant": 21 + }, + { + "variant": 22 + }, + { + "variant": 23 + }, + { + "variant": 24 + }, + { + "variant": 35 + }, + { + "variant": 36 + }, + { + "variant": 37 + }, + { + "variant": 38 + }, + { + "variant": 39 + }, + { + "variant": 40 + }, + { + "variant": 41 + }, + { + "variant": 42 + }, + { + "variant": 43 + }, + { + "variant": 44 + }, + { + "variant": 50 + }, + { + "variant": 51 + }, + { + "variant": 52 + }, + { + "variant": 53 + }, + { + "variant": 54 + }, + { + "variant": 45 + }, + { + "variant": 46 + }, + { + "variant": 47 + }, + { + "variant": 48 + }, + { + "variant": 49 + }, + { + "variant": 55 + }, + { + "variant": 56 + }, + { + "variant": 57 + }, + { + "variant": 58 + }, + { + "variant": 59 + } + ] + } +} +``` + +## on_death + +ender_dragon + +```json +"minecraft:on_death": { + "event": "minecraft:start_death", + "target": "self" +} +``` + +## on_friendly_anger + +panda + +```json +"minecraft:on_friendly_anger": { + "event": "minecraft:on_anger", + "target": "self" +} +``` + +polar_bear + +```json +"minecraft:on_friendly_anger": { + "event": "minecraft:on_anger", + "target": "self" +} +``` + +trader_llama + +```json +"minecraft:on_friendly_anger": { + "event": "minecraft:defend_wandering_trader", + "target": "self" +} +``` + +## on_hurt + +blaze + +```json +"minecraft:on_hurt": { + "event": "minecraft:on_hurt_event", + "target": "self" +} +``` + +ender_crystal + +```json +"minecraft:on_hurt": { + "event": "minecraft:crystal_explode", + "target": "self" +} +``` + +pillager + +```json +"minecraft:on_hurt": { + "event": "minecraft:ranged_mode", + "target": "self" +} +``` + +```json +"minecraft:on_hurt": { + "event": "minecraft:ranged_mode", + "target": "self" +} +``` + +```json +"minecraft:on_hurt": { + "event": "minecraft:ranged_mode", + "target": "self" +} +``` + +## on_hurt_by_player + +blaze + +```json +"minecraft:on_hurt_by_player": { + "event": "minecraft:on_hurt_event", + "target": "self" +} +``` + +pillager + +```json +"minecraft:on_hurt_by_player": { + "event": "minecraft:ranged_mode", + "target": "self" +} +``` + +```json +"minecraft:on_hurt_by_player": { + "event": "minecraft:ranged_mode", + "target": "self" +} +``` + +```json +"minecraft:on_hurt_by_player": { + "event": "minecraft:ranged_mode", + "target": "self" +} +``` + +## on_start_landing + +ender_dragon + +```json +"minecraft:on_start_landing": { + "event": "minecraft:start_land", + "target": "self" +} +``` + +## on_start_takeoff + +ender_dragon + +```json +"minecraft:on_start_takeoff": { + "event": "minecraft:start_fly", + "target": "self" +} +``` + +## on_target_acquired + +bee + +```json +"minecraft:on_target_acquired": { + "event": "attacked", + "target": "self" +} +``` + +cave_spider + +```json +"minecraft:on_target_acquired": { + "event": "minecraft:become_angry" +} +``` + +dolphin + +```json +"minecraft:on_target_acquired": { + "event": "become_angry", + "target": "self" +} +``` + +```json +"minecraft:on_target_acquired": {} +``` + +drowned + +```json +"minecraft:on_target_acquired": { + "event": "minecraft:has_target", + "target": "self" +} +``` + +enderman + +```json +"minecraft:on_target_acquired": { + "event": "minecraft:become_angry", + "target": "self" +} +``` + +hoglin + +```json +"minecraft:on_target_acquired": { + "event": "become_angry_event", + "target": "self" +} +``` + +llama + +```json +"minecraft:on_target_acquired": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "target", + "value": "wolf" + }, + { + "test": "has_component", + "subject": "target", + "operator": "!=", + "value": "minecraft:is_tamed" + } + ] + }, + "event": "minecraft:mad_at_wolf", + "target": "self" +} +``` + +magma_cube + +```json +"minecraft:on_target_acquired": { + "event": "minecraft:become_aggressive", + "target": "self" +} +``` + +panda + +```json +"minecraft:on_target_acquired": { + "event": "minecraft:on_scared", + "target": "self" +} +``` + +```json +"minecraft:on_target_acquired": { + "event": "minecraft:become_angry", + "target": "self" +} +``` + +```json +"minecraft:on_target_acquired": {} +``` + +piglin + +```json +"minecraft:on_target_acquired": { + "event": "become_angry_event", + "target": "self" +} +``` + +piglin_brute + +```json +"minecraft:on_target_acquired": { + "event": "become_angry_event", + "target": "self" +} +``` + +polar_bear + +```json +"minecraft:on_target_acquired": { + "event": "minecraft:on_scared", + "target": "self" +} +``` + +```json +"minecraft:on_target_acquired": { + "event": "minecraft:on_anger", + "target": "self" +} +``` + +silverfish + +```json +"minecraft:on_target_acquired": { + "event": "minecraft:become_angry", + "target": "self" +} +``` + +slime + +```json +"minecraft:on_target_acquired": { + "event": "minecraft:become_aggressive", + "target": "self" +} +``` + +spider + +```json +"minecraft:on_target_acquired": { + "event": "minecraft:become_angry" +} +``` + +```json +"minecraft:on_target_acquired": { + "event": "minecraft:become_angry" +} +``` + +trader_llama + +```json +"minecraft:on_target_acquired": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "target", + "value": "wolf" + }, + { + "test": "has_component", + "subject": "target", + "operator": "!=", + "value": "minecraft:is_tamed" + } + ] + }, + "event": "minecraft:mad_at_wolf", + "target": "self" +} +``` + +vindicator + +```json +"minecraft:on_target_acquired": { + "event": "minecraft:become_aggro", + "target": "self" +} +``` + +wolf + +```json +"minecraft:on_target_acquired": {} +``` + +```json +"minecraft:on_target_acquired": { + "event": "minecraft:become_angry", + "target": "self" +} +``` + +zombie_pigman + +```json +"minecraft:on_target_acquired": { + "event": "minecraft:become_angry", + "target": "self" +} +``` + +## on_target_escape + +creeper + +```json +"minecraft:on_target_escape": { + "event": "minecraft:stop_exploding", + "target": "self" +} +``` + +```json +"minecraft:on_target_escape": {} +``` + +```json +"minecraft:on_target_escape": {} +``` + +dolphin + +```json +"minecraft:on_target_escape": { + "target": "self" +} +``` + +drowned + +```json +"minecraft:on_target_escape": { + "event": "minecraft:lost_target", + "target": "self" +} +``` + +llama + +```json +"minecraft:on_target_escape": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "target", + "value": "wolf" + }, + { + "test": "has_component", + "subject": "target", + "operator": "!=", + "value": "minecraft:is_tamed" + } + ] + }, + "event": "minecraft:on_calm", + "target": "self" +} +``` + +magma_cube + +```json +"minecraft:on_target_escape": { + "event": "minecraft:become_calm", + "target": "self" +} +``` + +panda + +```json +"minecraft:on_target_escape": { + "event": "minecraft:on_calm", + "target": "self" +} +``` + +pillager + +```json +"minecraft:on_target_escape": { + "event": "minecraft:calm", + "target": "self" +} +``` + +```json +"minecraft:on_target_escape": { + "event": "minecraft:calm", + "target": "self" +} +``` + +slime + +```json +"minecraft:on_target_escape": { + "event": "minecraft:become_calm", + "target": "self" +} +``` + +trader_llama + +```json +"minecraft:on_target_escape": { + "filters": { + "all_of": [ + { + "test": "is_family", + "subject": "target", + "value": "wolf" + }, + { + "test": "has_component", + "subject": "target", + "operator": "!=", + "value": "minecraft:is_tamed" + } + ] + }, + "event": "minecraft:on_calm", + "target": "self" +} +``` + +vindicator + +```json +"minecraft:on_target_escape": { + "event": "minecraft:stop_aggro", + "target": "self" +} +``` + +## on_wake_with_owner + +cat + +```json +"minecraft:on_wake_with_owner": { + "event": "minecraft:pet_slept_with_owner", + "target": "self" +} +``` + +## out_of_control + +boat + +```json +"minecraft:out_of_control": {} +``` + +```json +"minecraft:out_of_control": {} +``` + +chest_boat + +```json +"minecraft:out_of_control": {} +``` + +```json +"minecraft:out_of_control": {} +``` + +## peek + +shulker + +```json +"minecraft:peek": { + "on_open": { + "event": "minecraft:on_open" + }, + "on_close": { + "event": "minecraft:on_close" + }, + "on_target_open": { + "event": "minecraft:on_open" + } +} +``` + +## persist_sit + +camel + +```json +"minecraft:persist_sit": {} +``` + +## persistent + +armor_stand + +```json +"minecraft:persistent": {} +``` + +ender_dragon + +```json +"minecraft:persistent": {} +``` + +evocation_illager + +```json +"minecraft:persistent": {} +``` + +```json +"minecraft:persistent": {} +``` + +iron_golem + +```json +"minecraft:persistent": {} +``` + +npc + +```json +"minecraft:persistent": {} +``` + +pillager + +```json +"minecraft:persistent": {} +``` + +ravager + +```json +"minecraft:persistent": {} +``` + +sniffer + +```json +"minecraft:persistent": {} +``` + +snow_golem + +```json +"minecraft:persistent": {} +``` + +trader_llama + +```json +"minecraft:persistent": {} +``` + +villager + +```json +"minecraft:persistent": {} +``` + +villager_v2 + +```json +"minecraft:persistent": {} +``` + +vindicator + +```json +"minecraft:persistent": {} +``` + +witch + +```json +"minecraft:persistent": {} +``` + +wither + +```json +"minecraft:persistent": {} +``` + +## physics + +allay + +```json +"minecraft:physics": { + "has_gravity": false +} +``` + +area_effect_cloud + +```json +"minecraft:physics": { + "has_collision": false +} +``` + +armor_stand + +```json +"minecraft:physics": {} +``` + +arrow + +```json +"minecraft:physics": {} +``` + +axolotl + +```json +"minecraft:physics": {} +``` + +bat + +```json +"minecraft:physics": {} +``` + +bee + +```json +"minecraft:physics": {} +``` + +blaze + +```json +"minecraft:physics": {} +``` + +boat + +```json +"minecraft:physics": {} +``` + +camel + +```json +"minecraft:physics": {} +``` + +cat + +```json +"minecraft:physics": {} +``` + +cave_spider + +```json +"minecraft:physics": {} +``` + +chest_boat + +```json +"minecraft:physics": {} +``` + +chest_minecart + +```json +"minecraft:physics": {} +``` + +chicken + +```json +"minecraft:physics": {} +``` + +command_block_minecart + +```json +"minecraft:physics": {} +``` + +cow + +```json +"minecraft:physics": {} +``` + +creeper + +```json +"minecraft:physics": {} +``` + +dolphin + +```json +"minecraft:physics": {} +``` + +donkey + +```json +"minecraft:physics": {} +``` + +drowned + +```json +"minecraft:physics": {} +``` + +egg + +```json +"minecraft:physics": {} +``` + +elder_guardian + +```json +"minecraft:physics": {} +``` + +enderman + +```json +"minecraft:physics": {} +``` + +endermite + +```json +"minecraft:physics": {} +``` + +ender_crystal + +```json +"minecraft:physics": {} +``` + +ender_dragon + +```json +"minecraft:physics": { + "has_gravity": false, + "has_collision": false +} +``` + +ender_pearl + +```json +"minecraft:physics": {} +``` + +evocation_illager + +```json +"minecraft:physics": {} +``` + +eye_of_ender_signal + +```json +"minecraft:physics": {} +``` + +fireball + +```json +"minecraft:physics": {} +``` + +fireworks_rocket + +```json +"minecraft:physics": {} +``` + +cod + +```json +"minecraft:physics": { + "has_gravity": false +} +``` + +fishing_hook + +```json +"minecraft:physics": {} +``` + +fox + +```json +"minecraft:physics": {} +``` + +frog + +```json +"minecraft:physics": {} +``` + +ghast + +```json +"minecraft:physics": {} +``` + +glow_squid + +```json +"minecraft:physics": {} +``` + +goat + +```json +"minecraft:physics": {} +``` + +guardian + +```json +"minecraft:physics": {} +``` + +hoglin + +```json +"minecraft:physics": {} +``` + +hopper_minecart + +```json +"minecraft:physics": {} +``` + +horse + +```json +"minecraft:physics": {} +``` + +husk + +```json +"minecraft:physics": {} +``` + +iron_golem + +```json +"minecraft:physics": {} +``` + +lingering_potion + +```json +"minecraft:physics": {} +``` + +llama + +```json +"minecraft:physics": {} +``` + +llama_spit + +```json +"minecraft:physics": {} +``` + +magma_cube + +```json +"minecraft:physics": {} +``` + +minecart + +```json +"minecraft:physics": {} +``` + +mooshroom + +```json +"minecraft:physics": {} +``` + +mule + +```json +"minecraft:physics": {} +``` + +npc + +```json +"minecraft:physics": {} +``` + +ocelot + +```json +"minecraft:physics": {} +``` + +panda + +```json +"minecraft:physics": {} +``` + +parrot + +```json +"minecraft:physics": {} +``` + +phantom + +```json +"minecraft:physics": { + "has_gravity": false +} +``` + +pig + +```json +"minecraft:physics": {} +``` + +piglin + +```json +"minecraft:physics": {} +``` + +piglin_brute + +```json +"minecraft:physics": {} +``` + +pillager + +```json +"minecraft:physics": {} +``` + +player + +```json +"minecraft:physics": { + "push_towards_closest_space": true +} +``` + +polar_bear + +```json +"minecraft:physics": {} +``` + +pufferfish + +```json +"minecraft:physics": { + "has_gravity": false +} +``` + +rabbit + +```json +"minecraft:physics": {} +``` + +ravager + +```json +"minecraft:physics": {} +``` + +salmon + +```json +"minecraft:physics": { + "has_gravity": false +} +``` + +sheep + +```json +"minecraft:physics": {} +``` + +shulker + +```json +"minecraft:physics": {} +``` + +shulker_bullet + +```json +"minecraft:physics": { + "has_collision": false +} +``` + +silverfish + +```json +"minecraft:physics": {} +``` + +skeleton + +```json +"minecraft:physics": {} +``` + +skeleton_horse + +```json +"minecraft:physics": {} +``` + +slime + +```json +"minecraft:physics": {} +``` + +small_fireball + +```json +"minecraft:physics": {} +``` + +sniffer + +```json +"minecraft:physics": {} +``` + +snowball + +```json +"minecraft:physics": {} +``` + +snow_golem + +```json +"minecraft:physics": {} +``` + +spider + +```json +"minecraft:physics": {} +``` + +splash_potion + +```json +"minecraft:physics": {} +``` + +squid + +```json +"minecraft:physics": {} +``` + +stray + +```json +"minecraft:physics": {} +``` + +strider + +```json +"minecraft:physics": {} +``` + +tadpole + +```json +"minecraft:physics": {} +``` + +thrown_trident + +```json +"minecraft:physics": {} +``` + +tnt + +```json +"minecraft:physics": {} +``` + +tnt_minecart + +```json +"minecraft:physics": {} +``` + +trader_llama + +```json +"minecraft:physics": {} +``` + +tripod_camera + +```json +"minecraft:physics": {} +``` + +tropicalfish + +```json +"minecraft:physics": { + "has_gravity": false +} +``` + +turtle + +```json +"minecraft:physics": {} +``` + +vex + +```json +"minecraft:physics": { + "has_gravity": false, + "has_collision": false +} +``` + +villager + +```json +"minecraft:physics": {} +``` + +villager_v2 + +```json +"minecraft:physics": {} +``` + +vindicator + +```json +"minecraft:physics": {} +``` + +wandering_trader + +```json +"minecraft:physics": {} +``` + +warden + +```json +"minecraft:physics": {} +``` + +witch + +```json +"minecraft:physics": {} +``` + +wither + +```json +"minecraft:physics": {} +``` + +wither_skeleton + +```json +"minecraft:physics": {} +``` + +wither_skull + +```json +"minecraft:physics": {} +``` + +wither_skull_dangerous + +```json +"minecraft:physics": {} +``` + +wolf + +```json +"minecraft:physics": {} +``` + +xp_bottle + +```json +"minecraft:physics": {} +``` + +xp_orb + +```json +"minecraft:physics": {} +``` + +zoglin + +```json +"minecraft:physics": {} +``` + +zombie + +```json +"minecraft:physics": {} +``` + +zombie_horse + +```json +"minecraft:physics": {} +``` + +zombie_pigman + +```json +"minecraft:physics": {} +``` + +zombie_villager + +```json +"minecraft:physics": {} +``` + +zombie_villager_v2 + +```json +"minecraft:physics": {} +``` + +## player.exhaustion + +player + +```json +"minecraft:player.exhaustion": { + "value": 0, + "max": 20 +} +``` + +## player.experience + +player + +```json +"minecraft:player.experience": { + "value": 0, + "max": 1 +} +``` + +## player.level + +player + +```json +"minecraft:player.level": { + "value": 0, + "max": 24791 +} +``` + +## player.saturation + +player + +```json +"minecraft:player.saturation": { + "value": 5, + "max": 20 +} +``` + +## preferred_path + +iron_golem + +```json +"minecraft:preferred_path": { + "max_fall_blocks": 1, + "jump_cost": 5, + "default_block_cost": 1.5, + "preferred_path_blocks": [ + { + "cost": 0, + "blocks": [ + "grass_path" + ] + }, + { + "cost": 1, + "blocks": [ + "cobblestone", + "stone", + "stonebrick", + "sandstone", + "mossy_cobblestone", + "stone_slab", + "stone_slab2", + "stone_slab3", + "stone_slab4", + "double_stone_slab", + "double_stone_slab2", + "double_stone_slab3", + "double_stone_slab4", + "wooden_slab", + "double_wooden_slab", + "planks", + "brick_block", + "nether_brick", + "red_nether_brick", + "end_bricks", + "red_sandstone", + "stained_glass", + "glass", + "glowstone", + "prismarine", + "emerald_block", + "diamond_block", + "lapis_block", + "gold_block", + "redstone_block", + "purple_glazed_terracotta", + "white_glazed_terracotta", + "orange_glazed_terracotta", + "magenta_glazed_terracotta", + "light_blue_glazed_terracotta", + "yellow_glazed_terracotta", + "lime_glazed_terracotta", + "pink_glazed_terracotta", + "gray_glazed_terracotta", + "silver_glazed_terracotta", + "cyan_glazed_terracotta", + "blue_glazed_terracotta", + "brown_glazed_terracotta", + "green_glazed_terracotta", + "red_glazed_terracotta", + "black_glazed_terracotta" + ] + }, + { + "cost": 50, + "blocks": [ + "bed", + "lectern", + "composter", + "grindstone", + "blast_furnace", + "smoker", + "fletching_table", + "cartography_table", + "brewing_stand", + "smithing_table", + "cauldron", + "barrel", + "loom", + "stonecutter" + ] + } + ] +} +``` + +villager_v2 + +```json +"minecraft:preferred_path": { + "max_fall_blocks": 1, + "jump_cost": 5, + "default_block_cost": 1.5, + "preferred_path_blocks": [ + { + "cost": 0, + "blocks": [ + "grass_path" + ] + }, + { + "cost": 1, + "blocks": [ + "cobblestone", + "stone", + "stonebrick", + "sandstone", + "mossy_cobblestone", + "stone_slab", + "stone_slab2", + "stone_slab3", + "stone_slab4", + "double_stone_slab", + "double_stone_slab2", + "double_stone_slab3", + "double_stone_slab4", + "wooden_slab", + "double_wooden_slab", + "planks", + "brick_block", + "nether_brick", + "red_nether_brick", + "end_bricks", + "red_sandstone", + "stained_glass", + "glass", + "glowstone", + "prismarine", + "emerald_block", + "diamond_block", + "lapis_block", + "gold_block", + "redstone_block", + "purple_glazed_terracotta", + "white_glazed_terracotta", + "orange_glazed_terracotta", + "magenta_glazed_terracotta", + "light_blue_glazed_terracotta", + "yellow_glazed_terracotta", + "lime_glazed_terracotta", + "pink_glazed_terracotta", + "gray_glazed_terracotta", + "silver_glazed_terracotta", + "cyan_glazed_terracotta", + "blue_glazed_terracotta", + "brown_glazed_terracotta", + "green_glazed_terracotta", + "red_glazed_terracotta", + "black_glazed_terracotta" + ] + }, + { + "cost": 50, + "blocks": [ + "bed", + "lectern", + "composter", + "grindstone", + "blast_furnace", + "smoker", + "fletching_table", + "cartography_table", + "brewing_stand", + "smithing_table", + "cauldron", + "barrel", + "loom", + "stonecutter" + ] + } + ] +} +``` + +```json +"minecraft:preferred_path": { + "max_fall_blocks": 1, + "jump_cost": 20, + "default_block_cost": 3, + "preferred_path_blocks": [ + { + "cost": 0, + "blocks": [ + "grass_path" + ] + }, + { + "cost": 1, + "blocks": [ + "cobblestone", + "stone", + "stonebrick", + "sandstone", + "mossy_cobblestone", + "stone_slab", + "stone_slab2", + "stone_slab3", + "stone_slab4", + "double_stone_slab", + "double_stone_slab2", + "double_stone_slab3", + "double_stone_slab4", + "wooden_slab", + "double_wooden_slab", + "planks", + "brick_block", + "nether_brick", + "red_nether_brick", + "end_bricks", + "red_sandstone", + "stained_glass", + "glass", + "glowstone", + "prismarine", + "emerald_block", + "diamond_block", + "lapis_block", + "gold_block", + "redstone_block", + "purple_glazed_terracotta", + "white_glazed_terracotta", + "orange_glazed_terracotta", + "magenta_glazed_terracotta", + "light_blue_glazed_terracotta", + "yellow_glazed_terracotta", + "lime_glazed_terracotta", + "pink_glazed_terracotta", + "gray_glazed_terracotta", + "silver_glazed_terracotta", + "cyan_glazed_terracotta", + "blue_glazed_terracotta", + "brown_glazed_terracotta", + "green_glazed_terracotta", + "red_glazed_terracotta", + "black_glazed_terracotta" + ] + }, + { + "cost": 50, + "blocks": [ + "bed", + "lectern", + "composter", + "grindstone", + "blast_furnace", + "smoker", + "fletching_table", + "cartography_table", + "brewing_stand", + "smithing_table", + "cauldron", + "barrel", + "loom", + "stonecutter" + ] + } + ] +} +``` + +warden + +```json +"minecraft:preferred_path": { + "max_fall_blocks": 20 +} +``` + +## projectile + +arrow + +```json +"minecraft:projectile": { + "on_hit": { + "impact_damage": { + "damage": [ + 1, + 4 + ], + "knockback": true, + "semi_random_diff_damage": false, + "destroy_on_hit": true + }, + "stick_in_ground": { + "shake_time": 0.35 + }, + "arrow_effect": {} + }, + "hit_sound": "bow.hit", + "power": 1.6, + "gravity": 0.05, + "uncertainty_base": 16, + "uncertainty_multiplier": 4, + "anchor": 1, + "should_bounce": true, + "offset": [ + 0, + -0.1, + 0 + ] +} +``` + +```json +"minecraft:projectile": { + "on_hit": { + "impact_damage": { + "damage": [ + 1, + 5 + ], + "knockback": true, + "semi_random_diff_damage": false, + "destroy_on_hit": true + }, + "stick_in_ground": { + "shake_time": 0.35 + }, + "arrow_effect": {} + }, + "hit_sound": "bow.hit", + "power": 1.6, + "gravity": 0.05, + "uncertainty_base": 16, + "uncertainty_multiplier": 4, + "anchor": 1, + "should_bounce": true, + "offset": [ + 0, + -0.1, + 0 + ] +} +``` + +```json +"minecraft:projectile": { + "on_hit": { + "impact_damage": { + "damage": 1, + "knockback": true, + "semi_random_diff_damage": true, + "destroy_on_hit": true, + "max_critical_damage": 10, + "min_critical_damage": 9, + "power_multiplier": 0.97 + }, + "stick_in_ground": { + "shake_time": 0.35 + }, + "arrow_effect": {} + }, + "hit_sound": "bow.hit", + "power": 5.0, + "gravity": 0.05, + "uncertainty_base": 1, + "uncertainty_multiplier": 0, + "anchor": 1, + "should_bounce": true, + "offset": [ + 0, + -0.1, + 0 + ] +} +``` + +```json +"minecraft:projectile": { + "on_hit": { + "impact_damage": { + "damage": [ + 3, + 6 + ], + "knockback": true, + "semi_random_diff_damage": false, + "destroy_on_hit": true + }, + "stick_in_ground": { + "shake_time": 0.35 + }, + "arrow_effect": {} + }, + "hit_sound": "bow.hit", + "power": 1.6, + "gravity": 0.05, + "uncertainty_base": 16, + "uncertainty_multiplier": 4, + "anchor": 1, + "should_bounce": true, + "offset": [ + 0, + -0.1, + 0 + ] +} +``` + +dragon_fireball + +```json +"minecraft:projectile": { + "on_hit": { + "spawn_aoe_cloud": { + "radius": 6.0, + "radius_on_use": 0, + "potion": 23, + "particle": "dragonbreath", + "duration": 120, + "color": [ + 220, + 0, + 239 + ], + "affect_owner": false, + "reapplication_delay": 20 + }, + "remove_on_hit": {} + }, + "power": 1.3, + "gravity": 0.0, + "inertia": 1, + "anchor": 2, + "offset": [ + 0, + 0.5, + 0 + ], + "semi_random_diff_damage": true, + "uncertainty_base": 10.0, + "reflect_on_hurt": true, + "hit_sound": "explode" +} +``` + +egg + +```json +"minecraft:projectile": { + "on_hit": { + "impact_damage": { + "damage": 0, + "knockback": true, + "destroy_on_hit": true + }, + "spawn_chance": { + "first_spawn_chance": 8, + "second_spawn_chance": 32, + "first_spawn_count": 1, + "second_spawn_count": 4, + "spawn_definition": "minecraft:chicken", + "spawn_baby": true + }, + "remove_on_hit": {}, + "particle_on_hit": { + "particle_type": "iconcrack", + "num_particles": 6, + "on_entity_hit": true, + "on_other_hit": true + } + }, + "power": 1.5, + "gravity": 0.03, + "angle_offset": 0.0 +} +``` + +ender_pearl + +```json +"minecraft:projectile": { + "on_hit": { + "teleport_owner": {}, + "spawn_chance": { + "first_spawn_percent_chance": 5.0, + "first_spawn_count": 1, + "spawn_definition": "minecraft:endermite" + }, + "remove_on_hit": {} + }, + "power": 1.5, + "gravity": 0.025, + "angle_offset": 0.0, + "inertia": 1, + "liquid_inertia": 1 +} +``` + +```json +"minecraft:projectile": { + "on_hit": { + "teleport_owner": {}, + "remove_on_hit": {} + }, + "power": 1.5, + "gravity": 0.025, + "angle_offset": 0.0, + "inertia": 1, + "liquid_inertia": 1 +} +``` + +fireball + +```json +"minecraft:projectile": { + "on_hit": { + "impact_damage": { + "damage": 6, + "knockback": false, + "semi_random_diff_damage": false + }, + "definition_event": { + "affect_projectile": true, + "event_trigger": { + "event": "minecraft:explode", + "target": "self" + } + } + }, + "power": 1.6, + "gravity": 0.0, + "inertia": 1, + "liquid_inertia": 1, + "uncertainty_base": 0, + "uncertainty_multiplier": 0, + "anchor": 2, + "offset": [ + 0, + -1.5, + 0 + ], + "reflect_on_hurt": true, + "catch_fire": true +} +``` + +fishing_hook + +```json +"minecraft:projectile": { + "on_hit": { + "stick_in_ground": {} + } +} +``` + +lingering_potion + +```json +"minecraft:projectile": { + "on_hit": { + "douse_fire": {}, + "spawn_aoe_cloud": { + "radius": 3.0, + "radius_on_use": -0.5, + "duration": 30, + "reapplication_delay": 40 + }, + "remove_on_hit": {} + }, + "power": 0.5, + "gravity": 0.05, + "angle_offset": -20.0, + "hit_sound": "glass" +} +``` + +llama_spit + +```json +"minecraft:projectile": { + "on_hit": { + "impact_damage": { + "damage": 1, + "knockback": false + }, + "remove_on_hit": {} + }, + "power": 1.5, + "gravity": 0.06, + "inertia": 1, + "uncertainty_base": 10, + "uncertainty_multiplier": 4, + "anchor": 1, + "offset": [ + 0, + -0.1, + 0 + ], + "reflect_on_hurt": true +} +``` + +shulker_bullet + +```json +"minecraft:projectile": { + "on_hit": { + "impact_damage": { + "damage": 4, + "knockback": true, + "should_bounce": true + }, + "mob_effect": { + "effect": "levitation", + "durationeasy": 200, + "durationnormal": 200, + "durationhard": 200, + "amplifier": 0 + }, + "remove_on_hit": {}, + "particle_on_hit": { + "particle_type": "largeexplode", + "on_other_hit": true + } + }, + "hit_sound": "bullet.hit", + "destroyOnHurt": true, + "crit_particle_on_hurt": true, + "power": 1.6, + "gravity": 0.05, + "uncertainty_base": 16, + "uncertainty_multiplier": 4, + "anchor": 1, + "offset": [ + 0, + -0.1, + 0 + ], + "homing": true +} +``` + +small_fireball + +```json +"minecraft:projectile": { + "on_hit": { + "impact_damage": { + "damage": 5, + "knockback": true, + "catch_fire": true, + "semi_random_diff_damage": false + }, + "catch_fire": { + "fire_affected_by_griefing": true + }, + "remove_on_hit": {} + }, + "power": 1.3, + "gravity": 0.0, + "inertia": 1, + "liquid_inertia": 1, + "anchor": 2, + "offset": [ + 0, + 0.5, + 0 + ], + "semi_random_diff_damage": true, + "uncertainty_base": 10.0, + "reflect_on_hurt": true +} +``` + +snowball + +```json +"minecraft:projectile": { + "on_hit": { + "impact_damage": { + "filter": "blaze", + "damage": 3, + "knockback": true + }, + "remove_on_hit": {}, + "particle_on_hit": { + "particle_type": "snowballpoof", + "num_particles": 6, + "on_entity_hit": true, + "on_other_hit": true + } + }, + "anchor": 1, + "power": 1.5, + "gravity": 0.03, + "angle_offset": 0.0, + "offset": [ + 0, + -0.1, + 0 + ] +} +``` + +splash_potion + +```json +"minecraft:projectile": { + "on_hit": { + "douse_fire": {}, + "thrown_potion_effect": {}, + "remove_on_hit": {} + }, + "power": 0.5, + "gravity": 0.05, + "angle_offset": -20.0, + "hit_sound": "glass" +} +``` + +thrown_trident + +```json +"minecraft:projectile": { + "on_hit": { + "impact_damage": { + "damage": 8, + "knockback": true, + "semi_random_diff_damage": false, + "destroy_on_hit": false + }, + "stick_in_ground": { + "shake_time": 0 + } + }, + "liquid_inertia": 0.99, + "hit_sound": "item.trident.hit", + "hit_ground_sound": "item.trident.hit_ground", + "power": 4, + "gravity": 0.1, + "uncertainty_base": 1, + "uncertainty_multiplier": 0, + "stop_on_hurt": true, + "anchor": 1, + "should_bounce": true, + "multiple_targets": false, + "offset": [ + 0, + -0.1, + 0 + ] +} +``` + +wither_skull + +```json +"minecraft:projectile": { + "on_hit": { + "definition_event": { + "affect_projectile": true, + "event_trigger": { + "event": "minecraft:explode", + "target": "self" + } + }, + "mob_effect": { + "effect": "wither", + "durationeasy": 0, + "durationnormal": 200, + "durationhard": 800, + "amplifier": 1 + } + }, + "power": 1.2, + "gravity": 0.0, + "uncertainty_base": 7.5, + "uncertainty_multiplier": 1, + "shoot_sound": "bow", + "hit_sound": "bow.hit", + "anchor": 1, + "offset": [ + 0, + -0.1, + 0 + ], + "inertia": 1.0, + "liquid_inertia": 1.0, + "shoot_target": false +} +``` + +wither_skull_dangerous + +```json +"minecraft:projectile": { + "on_hit": { + "definition_event": { + "affect_projectile": true, + "event_trigger": { + "event": "minecraft:explode", + "target": "self" + } + }, + "mob_effect": { + "effect": "wither", + "durationeasy": 0, + "durationnormal": 200, + "durationhard": 800, + "amplifier": 1 + } + }, + "power": 0.6, + "gravity": 0.0, + "uncertainty_base": 7.5, + "uncertainty_multiplier": 1, + "shoot_sound": "bow", + "hit_sound": "bow.hit", + "anchor": 1, + "offset": [ + 0, + -0.1, + 0 + ], + "is_dangerous": true, + "inertia": 1.0, + "liquid_inertia": 1.0, + "shoot_target": false, + "reflect_on_hurt": true +} +``` + +xp_bottle + +```json +"minecraft:projectile": { + "on_hit": { + "grant_xp": { + "minXP": 3, + "maxXP": 11 + }, + "remove_on_hit": {} + }, + "power": 0.5, + "gravity": 0.05, + "angle_offset": -20.0, + "hit_sound": "glass" +} +``` + +## pushable + +allay + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +armor_stand + +```json +"minecraft:pushable": { + "is_pushable": false, + "is_pushable_by_piston": true +} +``` + +arrow + +```json +"minecraft:pushable": { + "is_pushable": false, + "is_pushable_by_piston": true +} +``` + +axolotl + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +bee + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +blaze + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +boat + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +camel + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +```json +"minecraft:pushable": { + "is_pushable": false, + "is_pushable_by_piston": true +} +``` + +cat + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +cave_spider + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +chest_boat + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +chest_minecart + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +chicken + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +command_block_minecart + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +cow + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +creeper + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +dolphin + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +donkey + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +drowned + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +egg + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +elder_guardian + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +enderman + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +endermite + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +ender_crystal + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +ender_pearl + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +evocation_illager + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +eye_of_ender_signal + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +fireball + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +fireworks_rocket + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +cod + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +fishing_hook + +```json +"minecraft:pushable": { + "is_pushable": false, + "is_pushable_by_piston": true +} +``` + +fox + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +frog + +```json +"minecraft:pushable": {} +``` + +ghast + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +glow_squid + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +goat + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +guardian + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +hoglin + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +hopper_minecart + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +horse + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +husk + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +iron_golem + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +lingering_potion + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +llama + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +llama_spit + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +magma_cube + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +minecart + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +mooshroom + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +mule + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +ocelot + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +panda + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +parrot + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +phantom + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +pig + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +piglin + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +piglin_brute + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +pillager + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +player + +```json +"minecraft:pushable": { + "is_pushable": false, + "is_pushable_by_piston": true +} +``` + +polar_bear + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +pufferfish + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +rabbit + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +ravager + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +salmon + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +sheep + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +silverfish + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +skeleton + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +skeleton_horse + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +slime + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +small_fireball + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +sniffer + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +snowball + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +snow_golem + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +spider + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +splash_potion + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +squid + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +stray + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +strider + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +tadpole + +```json +"minecraft:pushable": {} +``` + +thrown_trident + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +tnt + +```json +"minecraft:pushable": { + "is_pushable": false, + "is_pushable_by_piston": true +} +``` + +tnt_minecart + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +trader_llama + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +tropicalfish + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +turtle + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +villager + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +villager_v2 + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +vindicator + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +wandering_trader + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +warden + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +witch + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +wither + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +wither_skeleton + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +wither_skull + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +wither_skull_dangerous + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +wolf + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +xp_bottle + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +xp_orb + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +zoglin + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +zombie + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +zombie_horse + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +zombie_pigman + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +zombie_villager + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +zombie_villager_v2 + +```json +"minecraft:pushable": { + "is_pushable": true, + "is_pushable_by_piston": true +} +``` + +## raid_trigger + +player + +```json +"minecraft:raid_trigger": { + "triggered_event": { + "event": "minecraft:remove_raid_trigger", + "target": "self" + } +} +``` + +## rail_movement + +chest_minecart + +```json +"minecraft:rail_movement": {} +``` + +command_block_minecart + +```json +"minecraft:rail_movement": {} +``` + +hopper_minecart + +```json +"minecraft:rail_movement": {} +``` + +minecart + +```json +"minecraft:rail_movement": {} +``` + +tnt_minecart + +```json +"minecraft:rail_movement": {} +``` + +## rail_sensor + +command_block_minecart + +```json +"minecraft:rail_sensor": { + "check_block_types": true, + "eject_on_activate": false, + "eject_on_deactivate": false, + "tick_command_block_on_activate": true, + "tick_command_block_on_deactivate": false, + "on_deactivate": { + "event": "minecraft:command_block_deactivate" + } +} +``` + +```json +"minecraft:rail_sensor": { + "check_block_types": false, + "eject_on_activate": false, + "eject_on_deactivate": false, + "tick_command_block_on_activate": true, + "tick_command_block_on_deactivate": false, + "on_activate": { + "event": "minecraft:command_block_activate" + } +} +``` + +hopper_minecart + +```json +"minecraft:rail_sensor": { + "on_activate": { + "event": "minecraft:hopper_deactivate" + } +} +``` + +```json +"minecraft:rail_sensor": { + "on_deactivate": { + "event": "minecraft:hopper_activate" + } +} +``` + +minecart + +```json +"minecraft:rail_sensor": { + "eject_on_activate": true +} +``` + +tnt_minecart + +```json +"minecraft:rail_sensor": {} +``` + +```json +"minecraft:rail_sensor": {} +``` + +```json +"minecraft:rail_sensor": { + "on_activate": { + "filters": { + "all_of": [ + { + "test": "is_game_rule", + "domain": "tntexplodes", + "operator": "==", + "value": true + } + ] + }, + "event": "minecraft:on_prime" + } +} +``` + +## ravager_blocked + +ravager + +```json +"minecraft:ravager_blocked": { + "knockback_strength": 3.0, + "reaction_choices": [ + { + "weight": 1, + "value": { + "event": "minecraft:become_stunned", + "target": "self" + } + }, + { + "weight": 1 + } + ] +} +``` + +## rideable + +boat + +```json +"minecraft:rideable": { + "seat_count": 2, + "passenger_max_width": 1.375, + "interact_text": "action.interact.ride.boat", + "pull_in_entities": true, + "seats": [ + { + "position": [ + 0.0, + -0.2, + 0.0 + ], + "min_rider_count": 0, + "max_rider_count": 1, + "rotate_rider_by": -90, + "lock_rider_rotation": 90 + }, + { + "position": [ + 0.2, + -0.2, + 0.0 + ], + "min_rider_count": 2, + "max_rider_count": 2, + "rotate_rider_by": "query.has_any_family('blaze', 'creeper', 'enderman', 'illager', 'magmacube', 'piglin', 'player', 'skeleton', 'slime', 'villager', 'wandering_trader', 'witch', 'zombie', 'zombie_pigman') ? -90 : 0", + "lock_rider_rotation": 90 + }, + { + "position": [ + -0.6, + -0.2, + 0.0 + ], + "min_rider_count": 2, + "max_rider_count": 2, + "rotate_rider_by": "query.has_any_family('blaze', 'creeper', 'enderman', 'illager', 'magmacube', 'piglin', 'player', 'skeleton', 'slime', 'villager', 'wandering_trader', 'witch', 'zombie', 'zombie_pigman') ? -90 : 0", + "lock_rider_rotation": 90 + } + ] +} +``` + +```json +"minecraft:rideable": { + "seat_count": 2, + "passenger_max_width": 1.375, + "interact_text": "action.interact.ride.boat", + "pull_in_entities": true, + "seats": [ + { + "position": [ + 0.0, + -0.2, + 0.0 + ], + "min_rider_count": 0, + "max_rider_count": 1, + "rotate_rider_by": -90, + "lock_rider_rotation": 90 + }, + { + "position": [ + 0.2, + -0.2, + 0.0 + ], + "min_rider_count": 2, + "max_rider_count": 2, + "rotate_rider_by": "query.has_any_family('blaze', 'creeper', 'enderman', 'illager', 'magmacube', 'piglin', 'player', 'skeleton', 'slime', 'villager', 'wandering_trader', 'witch', 'zombie', 'zombie_pigman') ? -90 : 0", + "lock_rider_rotation": 90 + }, + { + "position": [ + -0.6, + -0.2, + 0.0 + ], + "min_rider_count": 2, + "max_rider_count": 2, + "rotate_rider_by": "query.has_any_family('blaze', 'creeper', 'enderman', 'illager', 'magmacube', 'piglin', 'player', 'skeleton', 'slime', 'villager', 'wandering_trader', 'witch', 'zombie', 'zombie_pigman') ? -90 : 0", + "lock_rider_rotation": 90 + } + ] +} +``` + +```json +"minecraft:rideable": { + "seat_count": 2, + "passenger_max_width": 1.375, + "interact_text": "action.interact.ride.boat", + "pull_in_entities": true, + "seats": [ + { + "position": [ + 0.0, + 0.1, + 0.0 + ], + "min_rider_count": 0, + "max_rider_count": 1, + "rotate_rider_by": -90, + "lock_rider_rotation": 90 + }, + { + "position": [ + 0.2, + 0.1, + 0.0 + ], + "min_rider_count": 2, + "max_rider_count": 2, + "rotate_rider_by": "query.has_any_family('blaze', 'creeper', 'enderman', 'illager', 'magmacube', 'piglin', 'player', 'skeleton', 'slime', 'villager', 'wandering_trader', 'witch', 'zombie', 'zombie_pigman') ? -90 : 0", + "lock_rider_rotation": 90 + }, + { + "position": [ + -0.6, + 0.1, + 0.0 + ], + "min_rider_count": 2, + "max_rider_count": 2, + "rotate_rider_by": "query.has_any_family('blaze', 'creeper', 'enderman', 'illager', 'magmacube', 'piglin', 'player', 'skeleton', 'slime', 'villager', 'wandering_trader', 'witch', 'zombie', 'zombie_pigman') ? -90 : 0", + "lock_rider_rotation": 90 + } + ] +} +``` + +camel + +```json +"minecraft:rideable": { + "seat_count": 2, + "crouching_skip_interact": true, + "pull_in_entities": true, + "family_types": [ + "player" + ], + "interact_text": "action.interact.ride.horse", + "seats": [ + { + "min_rider_count": 0, + "max_rider_count": 2, + "position": [ + 0.0, + 1.905, + 0.5 + ] + }, + { + "min_rider_count": 1, + "max_rider_count": 2, + "position": [ + 0.0, + 1.905, + -0.5 + ] + } + ] +} +``` + +cat + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "zombie" + ], + "seats": { + "position": [ + 0.0, + 0.35, + 0.0 + ] + } +} +``` + +cave_spider + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "zombie" + ], + "seats": { + "position": [ + 0.0, + 0.3, + 0.0 + ] + } +} +``` + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "skeleton" + ], + "seats": { + "position": [ + 0.0, + 0.3, + -0.1 + ] + } +} +``` + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "skeleton" + ], + "seats": { + "position": [ + 0.0, + 0.3, + -0.1 + ] + } +} +``` + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "skeleton" + ], + "seats": { + "position": [ + 0.0, + 0.25, + -0.1 + ] + } +} +``` + +chest_boat + +```json +"minecraft:rideable": { + "seat_count": 1, + "passenger_max_width": 1.375, + "interact_text": "action.interact.ride.boat", + "pull_in_entities": true, + "seats": [ + { + "position": [ + 0.2, + -0.2, + 0.0 + ], + "min_rider_count": 0, + "max_rider_count": 1, + "rotate_rider_by": "query.has_any_family('blaze', 'creeper', 'enderman', 'illager', 'magmacube', 'piglin', 'player', 'skeleton', 'slime', 'villager', 'wandering_trader', 'witch', 'zombie', 'zombie_pigman') ? -90 : 0", + "lock_rider_rotation": 90 + } + ] +} +``` + +```json +"minecraft:rideable": { + "seat_count": 1, + "passenger_max_width": 1.375, + "interact_text": "action.interact.ride.boat", + "pull_in_entities": true, + "seats": [ + { + "position": [ + 0.2, + -0.2, + 0.0 + ], + "min_rider_count": 0, + "max_rider_count": 1, + "rotate_rider_by": "query.has_any_family('blaze', 'creeper', 'enderman', 'illager', 'magmacube', 'piglin', 'player', 'skeleton', 'slime', 'villager', 'wandering_trader', 'witch', 'zombie', 'zombie_pigman') ? -90 : 0", + "lock_rider_rotation": 90 + } + ] +} +``` + +```json +"minecraft:rideable": { + "seat_count": 1, + "passenger_max_width": 1.375, + "interact_text": "action.interact.ride.boat", + "pull_in_entities": true, + "seats": [ + { + "position": [ + 0.2, + 0.1, + 0.0 + ], + "min_rider_count": 0, + "max_rider_count": 1, + "rotate_rider_by": "query.has_any_family('blaze', 'creeper', 'enderman', 'illager', 'magmacube', 'piglin', 'player', 'skeleton', 'slime', 'villager', 'wandering_trader', 'witch', 'zombie', 'zombie_pigman') ? -90 : 0", + "lock_rider_rotation": 90 + } + ] +} +``` + +chicken + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "zombie" + ], + "seats": { + "position": [ + 0.0, + 0.4, + 0.0 + ] + } +} +``` + +cow + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "zombie" + ], + "seats": { + "position": [ + 0.0, + 1.105, + 0.0 + ] + } +} +``` + +donkey + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "player", + "zombie" + ], + "interact_text": "action.interact.mount", + "seats": { + "position": [ + 0.0, + 0.925, + -0.2 + ] + } +} +``` + +```json +"minecraft:rideable": { + "seat_count": 1, + "crouching_skip_interact": true, + "family_types": [ + "player" + ], + "interact_text": "action.interact.ride.horse", + "seats": { + "position": [ + 0.0, + 0.925, + -0.2 + ] + } +} +``` + +hoglin + +```json +"minecraft:rideable": { + "seat_count": 3, + "family_types": [ + "piglin" + ], + "seats": [ + { + "position": [ + 0.0, + 0.9, + -0.3 + ], + "lock_rider_rotation": 0 + }, + { + "position": [ + 0.0, + 2.4, + -0.3 + ], + "lock_rider_rotation": 0 + }, + { + "position": [ + 0.0, + 3.9, + -0.3 + ], + "lock_rider_rotation": 0 + } + ] +} +``` + +horse + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "player", + "zombie" + ], + "interact_text": "action.interact.mount", + "seats": { + "position": [ + 0.0, + 1.1, + -0.2 + ] + } +} +``` + +```json +"minecraft:rideable": { + "seat_count": 1, + "crouching_skip_interact": true, + "family_types": [ + "player" + ], + "interact_text": "action.interact.ride.horse", + "seats": { + "position": [ + 0.0, + 1.1, + -0.2 + ] + } +} +``` + +husk + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "zombie" + ], + "seats": { + "position": [ + 0.0, + 1.1, + -0.35 + ], + "lock_rider_rotation": 0 + } +} +``` + +llama + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "player" + ], + "interact_text": "action.interact.mount", + "seats": { + "position": [ + 0.0, + 1.17, + -0.3 + ] + } +} +``` + +```json +"minecraft:rideable": { + "seat_count": 1, + "crouching_skip_interact": true, + "family_types": [ + "player" + ], + "interact_text": "action.interact.ride.horse", + "seats": { + "position": [ + 0.0, + 1.17, + -0.3 + ] + } +} +``` + +minecart + +```json +"minecraft:rideable": { + "seat_count": 1, + "interact_text": "action.interact.ride.minecart", + "pull_in_entities": true, + "seats": { + "position": [ + 0.0, + -0.2, + 0.0 + ] + } +} +``` + +mooshroom + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "zombie" + ], + "seats": { + "position": [ + 0.0, + 1.105, + 0.0 + ] + } +} +``` + +mule + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "player", + "zombie" + ], + "interact_text": "action.interact.mount", + "seats": { + "position": [ + 0.0, + 0.975, + -0.2 + ] + } +} +``` + +```json +"minecraft:rideable": { + "seat_count": 1, + "crouching_skip_interact": true, + "family_types": [ + "player" + ], + "interact_text": "action.interact.ride.horse", + "seats": { + "position": [ + 0.0, + 0.975, + -0.2 + ] + } +} +``` + +ocelot + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "zombie" + ], + "seats": { + "position": [ + 0.0, + 0.35, + 0.0 + ] + } +} +``` + +panda + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "zombie" + ], + "seats": { + "position": [ + 0.0, + 1.105, + 0.0 + ] + } +} +``` + +pig + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "zombie" + ], + "seats": { + "position": [ + 0.0, + 0.63, + 0.0 + ] + } +} +``` + +```json +"minecraft:rideable": { + "seat_count": 1, + "interact_text": "action.interact.ride.horse", + "family_types": [ + "player" + ], + "seats": { + "position": [ + 0.0, + 0.63, + 0.0 + ] + } +} +``` + +player + +```json +"minecraft:rideable": { + "seat_count": 2, + "family_types": [ + "parrot_tame" + ], + "pull_in_entities": true, + "seats": [ + { + "position": [ + 0.4, + -0.2, + -0.1 + ], + "min_rider_count": 0, + "max_rider_count": 0, + "lock_rider_rotation": 0 + }, + { + "position": [ + -0.4, + -0.2, + -0.1 + ], + "min_rider_count": 1, + "max_rider_count": 2, + "lock_rider_rotation": 0 + } + ] +} +``` + +ravager + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "pillager", + "vindicator", + "evocation_illager" + ], + "seats": { + "position": [ + 0.0, + 2.1, + -0.3 + ] + } +} +``` + +sheep + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "zombie" + ], + "seats": { + "position": [ + 0.0, + 0.9, + 0.0 + ] + } +} +``` + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "zombie" + ], + "seats": { + "position": [ + 0.0, + 0.975, + 0.0 + ] + } +} +``` + +skeleton_horse + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "player", + "skeleton", + "zombie" + ], + "interact_text": "action.interact.ride.horse", + "seats": { + "position": [ + 0.0, + 1.2, + -0.2 + ] + } +} +``` + +```json +"minecraft:rideable": {} +``` + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "player", + "skeleton", + "zombie" + ], + "interact_text": "action.interact.ride.horse", + "seats": { + "position": [ + 0.0, + 1.2, + -0.2 + ] + } +} +``` + +spider + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "zombie" + ], + "seats": { + "position": [ + 0.0, + 0.54, + -0.1 + ] + } +} +``` + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "skeleton" + ], + "seats": { + "position": [ + 0.0, + 0.54, + 0.0 + ] + } +} +``` + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "skeleton" + ], + "seats": { + "position": [ + 0.0, + 0.54, + 0.0 + ] + } +} +``` + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "skeleton" + ], + "seats": { + "position": [ + 0.0, + 0.54, + 0.0 + ] + } +} +``` + +strider + +```json +"minecraft:rideable": { + "seat_count": 1, + "crouching_skip_interact": true, + "family_types": [ + "player" + ], + "interact_text": "action.interact.ride.strider", + "seats": { + "position": [ + 0.0, + 1.6, + -0.2 + ] + } +} +``` + +```json +"minecraft:rideable": { + "seat_count": 1, + "crouching_skip_interact": true, + "family_types": [ + "player", + "zombie_pigman" + ], + "interact_text": "action.interact.ride.strider", + "seats": { + "position": [ + 0.0, + 1.65, + -0.2 + ] + } +} +``` + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "strider" + ], + "seats": { + "position": [ + 0.0, + 1.6, + 0.0 + ] + } +} +``` + +trader_llama + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "player" + ], + "interact_text": "action.interact.mount", + "seats": { + "position": [ + 0.0, + 1.17, + -0.3 + ] + } +} +``` + +```json +"minecraft:rideable": { + "seat_count": 1, + "crouching_skip_interact": true, + "family_types": [ + "player" + ], + "interact_text": "action.interact.ride.horse", + "seats": { + "position": [ + 0.0, + 1.17, + -0.3 + ] + } +} +``` + +wolf + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "zombie" + ], + "seats": { + "position": [ + 0.0, + 0.675, + -0.1 + ] + } +} +``` + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "zombie" + ], + "seats": { + "position": [ + 0.0, + 0.675, + -0.1 + ] + } +} +``` + +zombie + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "zombie" + ], + "seats": { + "position": [ + 0.0, + 1.1, + -0.35 + ], + "lock_rider_rotation": 0 + } +} +``` + +zombie_horse + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "zombie" + ], + "interact_text": "action.interact.ride.horse", + "seats": { + "position": [ + 0.0, + 1.2, + -0.2 + ] + } +} +``` + +zombie_pigman + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "zombie" + ], + "seats": { + "position": [ + 0.0, + 1.1, + -0.35 + ], + "lock_rider_rotation": 0 + } +} +``` + +zombie_villager + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "zombie" + ], + "seats": { + "position": [ + 0.0, + 1.1, + -0.35 + ] + } +} +``` + +zombie_villager_v2 + +```json +"minecraft:rideable": { + "seat_count": 1, + "family_types": [ + "zombie" + ], + "seats": { + "position": [ + 0.0, + 1.1, + -0.35 + ] + } +} +``` + +## scale + +axolotl + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +bee + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +camel + +```json +"minecraft:scale": { + "value": 0.45 +} +``` + +cat + +```json +"minecraft:scale": { + "value": 0.4 +} +``` + +```json +"minecraft:scale": { + "value": 0.8 +} +``` + +chicken + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +cow + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +dolphin + +```json +"minecraft:scale": { + "value": 0.65 +} +``` + +drowned + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +cod + +```json +"minecraft:scale": { + "value": 1.0 +} +``` + +fox + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +glow_squid + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +goat + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +hoglin + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +husk + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +llama + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +mooshroom + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +ocelot + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +```json +"minecraft:scale": { + "value": 1 +} +``` + +panda + +```json +"minecraft:scale": { + "value": 1.0 +} +``` + +```json +"minecraft:scale": { + "value": 0.4 +} +``` + +pig + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +piglin + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +polar_bear + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +pufferfish + +```json +"minecraft:scale": { + "value": 1.2 +} +``` + +rabbit + +```json +"minecraft:scale": { + "value": 0.6 +} +``` + +```json +"minecraft:scale": { + "value": 0.4 +} +``` + +```json +"minecraft:scale": { + "value": 0.6 +} +``` + +salmon + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +```json +"minecraft:scale": { + "value": 1 +} +``` + +```json +"minecraft:scale": { + "value": 1.5 +} +``` + +sheep + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +sniffer + +```json +"minecraft:scale": { + "value": 0.45 +} +``` + +squid + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +strider + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +trader_llama + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +tropicalfish + +```json +"minecraft:scale": { + "value": 1.3 +} +``` + +turtle + +```json +"minecraft:scale": { + "value": 0.16 +} +``` + +villager + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +villager_v2 + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +wither_skeleton + +```json +"minecraft:scale": { + "value": 1.2 +} +``` + +wolf + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +zoglin + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +zombie + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +zombie_pigman + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +zombie_villager + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +zombie_villager_v2 + +```json +"minecraft:scale": { + "value": 0.5 +} +``` + +## scale_by_age + +donkey + +```json +"minecraft:scale_by_age": { + "start_scale": 0.5, + "end_scale": 1.0 +} +``` + +horse + +```json +"minecraft:scale_by_age": { + "start_scale": 0.5, + "end_scale": 1.0 +} +``` + +mule + +```json +"minecraft:scale_by_age": { + "start_scale": 0.5, + "end_scale": 1.0 +} +``` + +skeleton_horse + +```json +"minecraft:scale_by_age": { + "start_scale": 0.5, + "end_scale": 1.0 +} +``` + +zombie_horse + +```json +"minecraft:scale_by_age": { + "start_scale": 0.5, + "end_scale": 1.0 +} +``` + +## scheduler + +fox + +```json +"minecraft:scheduler": { + "min_delay_secs": 0, + "max_delay_secs": 0, + "scheduled_events": [ + { + "filters": [ + { + "test": "is_sleeping", + "value": true + } + ], + "event": "minecraft:ambient_sleep" + }, + { + "filters": { + "all_of": [ + { + "test": "is_daytime", + "value": false + }, + { + "test": "distance_to_nearest_player", + "operator": ">", + "value": 16 + } + ] + }, + "event": "minecraft:ambient_night" + }, + { + "filters": { + "all_of": [ + { + "test": "is_sleeping", + "value": false + }, + { + "any_of": [ + { + "test": "is_daytime", + "value": true + }, + { + "test": "distance_to_nearest_player", + "operator": "<=", + "value": 16 + } + ] + } + ] + }, + "event": "minecraft:ambient_normal" + } + ] +} +``` + +villager_v2 + +```json +"minecraft:scheduler": { + "min_delay_secs": 0, + "max_delay_secs": 10, + "scheduled_events": [ + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 0 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 8000 + } + ] + }, + "event": "minecraft:schedule_work_pro_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 8000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 10000 + } + ] + }, + "event": "minecraft:schedule_gather_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 10000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 11000 + } + ] + }, + "event": "minecraft:schedule_work_pro_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 11000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 12000 + } + ] + }, + "event": "minecraft:schedule_home_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 12000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 24000 + } + ] + }, + "event": "minecraft:schedule_bed_villager" + } + ] +} +``` + +```json +"minecraft:scheduler": { + "min_delay_secs": 0, + "max_delay_secs": 10, + "scheduled_events": [ + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 0 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 8000 + } + ] + }, + "event": "minecraft:schedule_wander_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 8000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 10000 + } + ] + }, + "event": "minecraft:schedule_gather_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 10000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 11000 + } + ] + }, + "event": "minecraft:schedule_wander_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 11000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 12000 + } + ] + }, + "event": "minecraft:schedule_home_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 12000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 24000 + } + ] + }, + "event": "minecraft:schedule_bed_villager" + } + ] +} +``` + +```json +"minecraft:scheduler": { + "min_delay_secs": 0, + "max_delay_secs": 10, + "scheduled_events": [ + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 0 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 11000 + } + ] + }, + "event": "minecraft:schedule_play_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 11000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 12000 + } + ] + }, + "event": "minecraft:schedule_home_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 12000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 24000 + } + ] + }, + "event": "minecraft:schedule_bed_villager" + } + ] +} +``` + +```json +"minecraft:scheduler": { + "min_delay_secs": 0, + "max_delay_secs": 10, + "scheduled_events": [ + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 2000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 13000 + } + ] + }, + "event": "minecraft:schedule_wander_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 13000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 14000 + } + ] + }, + "event": "minecraft:schedule_home_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 14000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 24000 + } + ] + }, + "event": "minecraft:schedule_bed_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 0 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 2000 + } + ] + }, + "event": "minecraft:schedule_bed_villager" + } + ] +} +``` + +```json +"minecraft:scheduler": { + "min_delay_secs": 0, + "max_delay_secs": 10, + "scheduled_events": [ + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 0 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 8000 + } + ] + }, + "event": "minecraft:schedule_work_fisher" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 8000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 10000 + } + ] + }, + "event": "minecraft:schedule_gather_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 10000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 11000 + } + ] + }, + "event": "minecraft:schedule_work_fisher" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 11000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 12000 + } + ] + }, + "event": "minecraft:schedule_home_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 12000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 24000 + } + ] + }, + "event": "minecraft:schedule_bed_villager" + } + ] +} +``` + +```json +"minecraft:scheduler": { + "min_delay_secs": 0, + "max_delay_secs": 10, + "scheduled_events": [ + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 0 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 8000 + } + ] + }, + "event": "minecraft:schedule_work_librarian" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 8000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 10000 + } + ] + }, + "event": "minecraft:schedule_gather_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 10000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 11000 + } + ] + }, + "event": "minecraft:schedule_work_librarian" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 11000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 12000 + } + ] + }, + "event": "minecraft:schedule_home_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 12000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 24000 + } + ] + }, + "event": "minecraft:schedule_bed_villager" + } + ] +} +``` + +```json +"minecraft:scheduler": { + "min_delay_secs": 0, + "max_delay_secs": 10, + "scheduled_events": [ + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 0 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 8000 + } + ] + }, + "event": "minecraft:schedule_work_farmer" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 8000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 10000 + } + ] + }, + "event": "minecraft:schedule_gather_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 10000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 11000 + } + ] + }, + "event": "minecraft:schedule_work_farmer" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 11000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 12000 + } + ] + }, + "event": "minecraft:schedule_home_villager" + }, + { + "filters": { + "all_of": [ + { + "test": "hourly_clock_time", + "operator": ">=", + "value": 12000 + }, + { + "test": "hourly_clock_time", + "operator": "<", + "value": 24000 + } + ] + }, + "event": "minecraft:schedule_bed_villager" + } + ] +} +``` + +## shareables + +drowned + +```json +"minecraft:shareables": { + "singular_pickup": true, + "items": [ + { + "item": "minecraft:nautilus_shell", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:trident", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:netherite_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:diamond_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:iron_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:stone_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:golden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:wooden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:netherite_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:turtle_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:skull:0", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:skull:1", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:carved_pumpkin", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:netherite_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + } + ] +} +``` + +fox + +```json +"minecraft:shareables": { + "all_items": true, + "all_items_max_amount": 1, + "items": [ + { + "item": "minecraft:apple", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:appleEnchanted", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:baked_potato", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:beef", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:beetroot", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:beetroot_soup", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:bread", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:carrot", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:chicken", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:chorus_fruit", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:clownfish", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:cooked_beef", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:cooked_chicken", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:cooked_fish", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:cooked_porkchop", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:cooked_rabbit", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:cooked_salmon", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:cookie", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:dried_kelp", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:fish", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:golden_apple", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:golden_carrot", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:melon", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:mushroom_stew", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:muttonCooked", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:muttonRaw", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:poisonous_potato", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:porkchop", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:potato", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:pufferfish", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:pumpkin_pie", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:rabbit", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:rabbit_stew", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:rotten_flesh", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:salmon", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:spider_eye", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:sweet_berries", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:glow_berries", + "priority": 0, + "max_amount": 1 + }, + { + "item": "minecraft:suspicious_stew", + "priority": 0, + "max_amount": 1 + } + ] +} +``` + +husk + +```json +"minecraft:shareables": { + "singular_pickup": true, + "items": [ + { + "item": "minecraft:netherite_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:golden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:stone_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:wooden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:turtle_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:skull:0", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:skull:1", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:carved_pumpkin", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:netherite_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + } + ] +} +``` + +piglin + +```json +"minecraft:shareables": { + "items": [ + { + "item": "minecraft:golden_sword", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_axe", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_hoe", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_pickaxe", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_shovel", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_rail", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_helmet", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_chestplate", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_leggings", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_boots", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_apple", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:appleEnchanted", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:golden_carrot", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:gold_block", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:gold_nugget", + "priority": 2, + "stored_in_inventory": true + }, + { + "item": "minecraft:raw_gold", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:gold_ore", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:nether_gold_ore", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:deepslate_gold_ore", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:raw_gold_block", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:gilded_blackstone", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:horsearmorgold", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:crossbow", + "priority": 2 + }, + { + "item": "minecraft:porkchop", + "consume_item": true, + "priority": 3, + "max_amount": 64 + }, + { + "item": "minecraft:cooked_porkchop", + "consume_item": true, + "priority": 3, + "max_amount": 64 + }, + { + "item": "minecraft:netherite_helmet", + "priority": 3 + }, + { + "item": "minecraft:diamond_helmet", + "priority": 4 + }, + { + "item": "minecraft:iron_helmet", + "priority": 5 + }, + { + "item": "minecraft:chainmail_helmet", + "priority": 6 + }, + { + "item": "minecraft:leather_helmet", + "priority": 7 + }, + { + "item": "minecraft:skull:0", + "want_amount": 1, + "surplus_amount": 1, + "priority": 8 + }, + { + "item": "minecraft:skull:1", + "want_amount": 1, + "surplus_amount": 1, + "priority": 8 + }, + { + "item": "minecraft:skull:2", + "want_amount": 1, + "surplus_amount": 1, + "priority": 8 + }, + { + "item": "minecraft:skull:3", + "want_amount": 1, + "surplus_amount": 1, + "priority": 8 + }, + { + "item": "minecraft:skull:4", + "want_amount": 1, + "surplus_amount": 1, + "priority": 8 + }, + { + "item": "minecraft:skull:5", + "want_amount": 1, + "surplus_amount": 1, + "priority": 8 + }, + { + "item": "minecraft:carved_pumpkin", + "want_amount": 1, + "surplus_amount": 1, + "priority": 8 + }, + { + "item": "minecraft:turtle_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 8 + }, + { + "item": "minecraft:netherite_chestplate", + "priority": 3 + }, + { + "item": "minecraft:diamond_chestplate", + "priority": 4 + }, + { + "item": "minecraft:iron_chestplate", + "priority": 5 + }, + { + "item": "minecraft:chainmail_chestplate", + "priority": 6 + }, + { + "item": "minecraft:leather_chestplate", + "priority": 7 + }, + { + "item": "minecraft:elytra", + "priority": 7 + }, + { + "item": "minecraft:netherite_leggings", + "priority": 3 + }, + { + "item": "minecraft:diamond_leggings", + "priority": 4 + }, + { + "item": "minecraft:iron_leggings", + "priority": 5 + }, + { + "item": "minecraft:chainmail_leggings", + "priority": 6 + }, + { + "item": "minecraft:leather_leggings", + "priority": 7 + }, + { + "item": "minecraft:netherite_boots", + "priority": 3 + }, + { + "item": "minecraft:diamond_boots", + "priority": 4 + }, + { + "item": "minecraft:iron_boots", + "priority": 5 + }, + { + "item": "minecraft:chainmail_boots", + "priority": 6 + }, + { + "item": "minecraft:bell", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:clock", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:speckled_melon", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:light_weighted_pressure_plate", + "priority": 2, + "admire": true, + "pickup_limit": 1, + "stored_in_inventory": true + }, + { + "item": "minecraft:leather_boots", + "priority": 7 + }, + { + "item": "minecraft:netherite_sword", + "priority": 3 + }, + { + "item": "minecraft:diamond_sword", + "priority": 4 + }, + { + "item": "minecraft:iron_sword", + "priority": 5 + }, + { + "item": "minecraft:stone_sword", + "priority": 6 + }, + { + "item": "minecraft:wooden_sword", + "priority": 7 + }, + { + "item": "minecraft:shield", + "priority": 7 + }, + { + "item": "minecraft:gold_ingot", + "priority": 1, + "pickup_limit": 1, + "admire": true, + "barter": true + } + ] +} +``` + +pillager + +```json +"minecraft:shareables": { + "items": [ + { + "item": "minecraft:banner:15", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + } + ] +} +``` + +skeleton + +```json +"minecraft:shareables": { + "items": [ + { + "item": "minecraft:netherite_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:stone_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:wooden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:bow", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:netherite_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:turtle_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:skull:0", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:skull:1", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:carved_pumpkin", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:netherite_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + } + ] +} +``` + +stray + +```json +"minecraft:shareables": { + "items": [ + { + "item": "minecraft:netherite_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:stone_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:wooden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:bow", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:netherite_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:turtle_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:skull:0", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:skull:1", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:carved_pumpkin", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:netherite_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + } + ] +} +``` + +villager + +```json +"minecraft:shareables": { + "items": [ + { + "item": "minecraft:bread", + "want_amount": 3, + "surplus_amount": 6, + "stored_in_inventory": true + }, + { + "item": "minecraft:carrot", + "want_amount": 60, + "surplus_amount": 4, + "stored_in_inventory": true + }, + { + "item": "minecraft:potato", + "want_amount": 60, + "surplus_amount": 24, + "stored_in_inventory": true + }, + { + "item": "minecraft:beetroot", + "want_amount": 60, + "surplus_amount": 24, + "stored_in_inventory": true + }, + { + "item": "minecraft:wheat_seeds", + "want_amount": 64, + "surplus_amount": 64, + "stored_in_inventory": true, + "pickup_only": true + }, + { + "item": "minecraft:beetroot_seeds", + "want_amount": 64, + "surplus_amount": 64, + "stored_in_inventory": true, + "pickup_only": true + }, + { + "item": "minecraft:wheat", + "want_amount": 45, + "surplus_amount": 18, + "craft_into": "minecraft:bread", + "stored_in_inventory": true + } + ] +} +``` + +```json +"minecraft:shareables": { + "items": [ + { + "item": "minecraft:bread", + "want_amount": 3, + "surplus_amount": 6, + "stored_in_inventory": true + }, + { + "item": "minecraft:carrot", + "want_amount": 12, + "surplus_amount": 24, + "stored_in_inventory": true + }, + { + "item": "minecraft:potato", + "want_amount": 12, + "surplus_amount": 24, + "stored_in_inventory": true + }, + { + "item": "minecraft:beetroot", + "want_amount": 12, + "surplus_amount": 24, + "stored_in_inventory": true + } + ] +} +``` + +villager_v2 + +```json +"minecraft:shareables": { + "items": [ + { + "item": "minecraft:bread", + "want_amount": 3, + "surplus_amount": 6, + "stored_in_inventory": true + }, + { + "item": "minecraft:carrot", + "want_amount": 60, + "surplus_amount": 24, + "stored_in_inventory": true + }, + { + "item": "minecraft:potato", + "want_amount": 60, + "surplus_amount": 24, + "stored_in_inventory": true + }, + { + "item": "minecraft:beetroot", + "want_amount": 60, + "surplus_amount": 24, + "stored_in_inventory": true + }, + { + "item": "minecraft:wheat_seeds", + "want_amount": 64, + "surplus_amount": 64, + "stored_in_inventory": true, + "pickup_only": true + }, + { + "item": "minecraft:beetroot_seeds", + "want_amount": 64, + "surplus_amount": 64, + "stored_in_inventory": true, + "pickup_only": true + }, + { + "item": "minecraft:torchflower_seeds", + "want_amount": 64, + "surplus_amount": 64, + "stored_in_inventory": true, + "pickup_only": true + }, + { + "item": "minecraft:pitcher_pod", + "want_amount": 64, + "surplus_amount": 64, + "stored_in_inventory": true, + "pickup_only": true + }, + { + "item": "minecraft:bone_meal", + "want_amount": 64, + "surplus_amount": 64, + "stored_in_inventory": true + }, + { + "item": "minecraft:wheat", + "want_amount": 45, + "surplus_amount": 18, + "craft_into": "minecraft:bread", + "stored_in_inventory": true + } + ] +} +``` + +```json +"minecraft:shareables": { + "items": [ + { + "item": "minecraft:bread", + "want_amount": 3, + "surplus_amount": 6, + "stored_in_inventory": true + }, + { + "item": "minecraft:carrot", + "want_amount": 60, + "surplus_amount": 24, + "stored_in_inventory": true + }, + { + "item": "minecraft:potato", + "want_amount": 60, + "surplus_amount": 24, + "stored_in_inventory": true + }, + { + "item": "minecraft:beetroot", + "want_amount": 60, + "surplus_amount": 24, + "stored_in_inventory": true + }, + { + "item": "minecraft:wheat_seeds", + "want_amount": 64, + "surplus_amount": 64, + "stored_in_inventory": true, + "pickup_only": true + }, + { + "item": "minecraft:beetroot_seeds", + "want_amount": 64, + "surplus_amount": 64, + "stored_in_inventory": true, + "pickup_only": true + }, + { + "item": "minecraft:wheat", + "want_amount": 45, + "surplus_amount": 18, + "craft_into": "minecraft:bread", + "stored_in_inventory": true + } + ] +} +``` + +```json +"minecraft:shareables": { + "items": [ + { + "item": "minecraft:bread", + "want_amount": 3, + "surplus_amount": 6, + "stored_in_inventory": true + }, + { + "item": "minecraft:carrot", + "want_amount": 12, + "surplus_amount": 24, + "stored_in_inventory": true + }, + { + "item": "minecraft:potato", + "want_amount": 12, + "surplus_amount": 24, + "stored_in_inventory": true + }, + { + "item": "minecraft:beetroot", + "want_amount": 12, + "surplus_amount": 24, + "stored_in_inventory": true + } + ] +} +``` + +wither_skeleton + +```json +"minecraft:shareables": { + "items": [ + { + "item": "minecraft:netherite_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:stone_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:wooden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:wooden_shovel", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:stone_shovel", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:golden_shovel", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:iron_shovel", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:diamond_shovel", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:netherite_shovel", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:wooden_pickaxe", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:stone_pickaxe", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:golden_pickaxe", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:iron_pickaxe", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:diamond_pickaxe", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:netherite_pickaxe", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:wooden_axe", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:stone_axe", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:golden_axe", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:iron_axe", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:diamond_axe", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:netherite_axe", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:wooden_hoe", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:stone_hoe", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:golden_hoe", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:iron_hoe", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:diamond_hoe", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:netherite_hoe", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:netherite_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:turtle_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:skull:0", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:skull:1", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:carved_pumpkin", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:netherite_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + } + ] +} +``` + +zombie + +```json +"minecraft:shareables": { + "singular_pickup": true, + "items": [ + { + "item": "minecraft:netherite_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:stone_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:wooden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:turtle_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:skull:0", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:skull:1", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:carved_pumpkin", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:netherite_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + } + ] +} +``` + +zombie_pigman + +```json +"minecraft:shareables": { + "items": [ + { + "item": "minecraft:netherite_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:iron_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:stone_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:golden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:wooden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:netherite_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:turtle_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:skull:0", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:skull:1", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:carved_pumpkin", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:netherite_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + } + ] +} +``` + +zombie_villager + +```json +"minecraft:shareables": { + "singular_pickup": true, + "items": [ + { + "item": "minecraft:netherite_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:stone_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:wooden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:turtle_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:skull:0", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:skull:1", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:carved_pumpkin", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:netherite_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + } + ] +} +``` + +zombie_villager_v2 + +```json +"minecraft:shareables": { + "singular_pickup": true, + "items": [ + { + "item": "minecraft:netherite_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:stone_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:wooden_sword", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:turtle_helmet", + "want_amount": 1, + "surplus_amount": 1, + "priority": 6 + }, + { + "item": "minecraft:skull:0", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:skull:1", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:carved_pumpkin", + "want_amount": 1, + "surplus_amount": 1, + "priority": 7 + }, + { + "item": "minecraft:netherite_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_chestplate", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_leggings", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + }, + { + "item": "minecraft:netherite_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 0 + }, + { + "item": "minecraft:diamond_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 1 + }, + { + "item": "minecraft:iron_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 2 + }, + { + "item": "minecraft:chainmail_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 3 + }, + { + "item": "minecraft:golden_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 4 + }, + { + "item": "minecraft:leather_boots", + "want_amount": 1, + "surplus_amount": 1, + "priority": 5 + } + ] +} +``` + +## shooter + +blaze + +```json +"minecraft:shooter": { + "def": "minecraft:small_fireball" +} +``` + +drowned + +```json +"minecraft:shooter": { + "def": "minecraft:thrown_trident" +} +``` + +ender_dragon + +```json +"minecraft:shooter": { + "type": "dragonfireball", + "def": "minecraft:dragon_fireball" +} +``` + +ghast + +```json +"minecraft:shooter": { + "def": "minecraft:fireball" +} +``` + +llama + +```json +"minecraft:shooter": { + "def": "minecraft:llama_spit" +} +``` + +piglin + +```json +"minecraft:shooter": { + "def": "minecraft:arrow" +} +``` + +pillager + +```json +"minecraft:shooter": { + "def": "minecraft:arrow" +} +``` + +shulker + +```json +"minecraft:shooter": { + "def": "minecraft:shulker_bullet" +} +``` + +skeleton + +```json +"minecraft:shooter": { + "def": "minecraft:arrow" +} +``` + +```json +"minecraft:shooter": { + "def": "minecraft:arrow" +} +``` + +snow_golem + +```json +"minecraft:shooter": { + "def": "minecraft:snowball" +} +``` + +stray + +```json +"minecraft:shooter": { + "def": "minecraft:arrow", + "aux_val": 19 +} +``` + +```json +"minecraft:shooter": { + "def": "minecraft:arrow", + "aux_val": 19 +} +``` + +trader_llama + +```json +"minecraft:shooter": { + "def": "minecraft:llama_spit" +} +``` + +witch + +```json +"minecraft:shooter": { + "power": 0.75, + "def": "minecraft:splash_potion", + "aux_val": 23, + "sound": "throw", + "projectiles": [ + { + "def": "minecraft:splash_potion", + "aux_val": 17, + "filters": { + "all_of": [ + { + "test": "target_distance", + "subject": "self", + "value": 8.0, + "operator": ">=" + }, + { + "none_of": [ + { + "test": "has_mob_effect", + "subject": "other", + "value": "slowness" + } + ] + } + ] + } + }, + { + "def": "minecraft:splash_potion", + "aux_val": 25, + "filters": { + "all_of": [ + { + "test": "actor_health", + "subject": "other", + "value": 8, + "operator": ">=" + }, + { + "none_of": [ + { + "test": "has_mob_effect", + "subject": "other", + "value": "poison" + } + ] + } + ] + } + }, + { + "def": "minecraft:splash_potion", + "aux_val": 34, + "filters": { + "all_of": [ + { + "test": "target_distance", + "subject": "self", + "value": 3, + "operator": "<=" + }, + { + "none_of": [ + { + "test": "has_mob_effect", + "subject": "other", + "value": "weakness" + } + ] + } + ] + }, + "chance": 0.25 + } + ], + "magic": true +} +``` + +## sittable + +cat + +```json +"minecraft:sittable": {} +``` + +ocelot + +```json +"minecraft:sittable": {} +``` + +parrot + +```json +"minecraft:sittable": {} +``` + +wolf + +```json +"minecraft:sittable": {} +``` + +## skin_id + +villager_v2 + +```json +"minecraft:skin_id": { + "value": 0 +} +``` + +```json +"minecraft:skin_id": { + "value": 1 +} +``` + +```json +"minecraft:skin_id": { + "value": 2 +} +``` + +```json +"minecraft:skin_id": { + "value": 3 +} +``` + +```json +"minecraft:skin_id": { + "value": 4 +} +``` + +```json +"minecraft:skin_id": { + "value": 5 +} +``` + +zombie_villager_v2 + +```json +"minecraft:skin_id": { + "value": 0 +} +``` + +```json +"minecraft:skin_id": { + "value": 1 +} +``` + +```json +"minecraft:skin_id": { + "value": 2 +} +``` + +```json +"minecraft:skin_id": { + "value": 3 +} +``` + +```json +"minecraft:skin_id": { + "value": 4 +} +``` + +```json +"minecraft:skin_id": { + "value": 5 +} +``` + +## spawn_entity + +chicken + +```json +"minecraft:spawn_entity": { + "entities": { + "min_wait_time": 300, + "max_wait_time": 600, + "spawn_sound": "plop", + "spawn_item": "egg", + "filters": { + "test": "rider_count", + "subject": "self", + "operator": "==", + "value": 0 + } + } +} +``` + +ocelot + +```json +"minecraft:spawn_entity": { + "entities": { + "filters": [ + { + "test": "random_chance", + "value": 7 + } + ], + "min_wait_time": 0, + "max_wait_time": 0, + "num_to_spawn": 2, + "single_use": true, + "spawn_entity": "minecraft:ocelot", + "spawn_event": "minecraft:entity_born", + "spawn_method": "born", + "spawn_sound": "" + } +} +``` + +sniffer + +```json +"minecraft:spawn_entity": { + "entities": { + "min_wait_time": 0, + "max_wait_time": 0, + "spawn_sound": "plop", + "spawn_item": "sniffer_egg", + "spawn_item_event": { + "event": "on_egg_spawned", + "target": "self" + }, + "single_use": true + } +} +``` + +wandering_trader + +```json +"minecraft:spawn_entity": { + "entities": [ + { + "min_wait_time": 0, + "max_wait_time": 0, + "spawn_entity": "trader_llama", + "spawn_event": "minecraft:from_wandering_trader", + "single_use": true, + "num_to_spawn": 2, + "should_leash": true + } + ] +} +``` + +## spell_effects + +player + +```json +"minecraft:spell_effects": { + "add_effects": [ + { + "effect": "bad_omen", + "duration": 6000, + "visible": false, + "display_on_screen_animation": true + } + ] +} +``` + +```json +"minecraft:spell_effects": {} +``` + +```json +"minecraft:spell_effects": { + "remove_effects": "bad_omen" +} +``` + +zombie_villager + +```json +"minecraft:spell_effects": { + "add_effects": [ + { + "effect": "strength", + "duration": 100 + }, + { + "effect": "heal", + "duration": 100 + } + ], + "remove_effects": "weakness" +} +``` + +zombie_villager_v2 + +```json +"minecraft:spell_effects": { + "add_effects": [ + { + "effect": "strength", + "duration": 100 + }, + { + "effect": "heal", + "duration": 100 + } + ], + "remove_effects": "weakness" +} +``` + +## strength + +llama + +```json +"minecraft:strength": { + "value": 1, + "max": 5 +} +``` + +```json +"minecraft:strength": { + "value": 2, + "max": 5 +} +``` + +```json +"minecraft:strength": { + "value": 3, + "max": 5 +} +``` + +```json +"minecraft:strength": { + "value": 4, + "max": 5 +} +``` + +```json +"minecraft:strength": { + "value": 5, + "max": 5 +} +``` + +trader_llama + +```json +"minecraft:strength": { + "value": 1, + "max": 5 +} +``` + +```json +"minecraft:strength": { + "value": 2, + "max": 5 +} +``` + +```json +"minecraft:strength": { + "value": 3, + "max": 5 +} +``` + +```json +"minecraft:strength": { + "value": 4, + "max": 5 +} +``` + +```json +"minecraft:strength": { + "value": 5, + "max": 5 +} +``` + +## suspect_tracking + +warden + +```json +"minecraft:suspect_tracking": {} +``` + +## tameable + +cat + +```json +"minecraft:tameable": { + "probability": 0.33, + "tame_items": [ + "fish", + "salmon" + ], + "tame_event": { + "event": "minecraft:on_tame", + "target": "self" + } +} +``` + +parrot + +```json +"minecraft:tameable": { + "probability": 0.33, + "tame_items": [ + "wheat_seeds", + "pumpkin_seeds", + "melon_seeds", + "beetroot_seeds", + "pitcher_pod", + "torchflower_seeds" + ], + "tame_event": { + "event": "minecraft:on_tame", + "target": "self" + } +} +``` + +wolf + +```json +"minecraft:tameable": { + "probability": 0.33, + "tame_items": "bone", + "tame_event": { + "event": "minecraft:on_tame", + "target": "self" + } +} +``` + +## tamemount + +donkey + +```json +"minecraft:tamemount": { + "min_temper": 0, + "max_temper": 100, + "feed_text": "action.interact.feed", + "ride_text": "action.interact.mount", + "feed_items": [ + { + "item": "wheat", + "temper_mod": 3 + }, + { + "item": "sugar", + "temper_mod": 3 + }, + { + "item": "apple", + "temper_mod": 3 + }, + { + "item": "golden_carrot", + "temper_mod": 5 + }, + { + "item": "golden_apple", + "temper_mod": 10 + }, + { + "item": "appleEnchanted", + "temper_mod": 10 + } + ], + "auto_reject_items": [ + { + "item": "horsearmorleather" + }, + { + "item": "horsearmoriron" + }, + { + "item": "horsearmorgold" + }, + { + "item": "horsearmordiamond" + }, + { + "item": "saddle" + } + ], + "tame_event": { + "event": "minecraft:on_tame", + "target": "self" + } +} +``` + +horse + +```json +"minecraft:tamemount": { + "min_temper": 0, + "max_temper": 100, + "feed_text": "action.interact.feed", + "ride_text": "action.interact.mount", + "feed_items": [ + { + "item": "wheat", + "temper_mod": 3 + }, + { + "item": "sugar", + "temper_mod": 3 + }, + { + "item": "apple", + "temper_mod": 3 + }, + { + "item": "golden_carrot", + "temper_mod": 5 + }, + { + "item": "golden_apple", + "temper_mod": 10 + }, + { + "item": "appleEnchanted", + "temper_mod": 10 + } + ], + "auto_reject_items": [ + { + "item": "horsearmorleather" + }, + { + "item": "horsearmoriron" + }, + { + "item": "horsearmorgold" + }, + { + "item": "horsearmordiamond" + }, + { + "item": "saddle" + } + ], + "tame_event": { + "event": "minecraft:on_tame", + "target": "self" + } +} +``` + +llama + +```json +"minecraft:tamemount": { + "min_temper": 0, + "max_temper": 30, + "feed_text": "action.interact.feed", + "ride_text": "action.interact.mount", + "feed_items": [ + { + "item": "wheat", + "temper_mod": 3 + }, + { + "item": "hay_block", + "temper_mod": 6 + } + ], + "tame_event": { + "event": "minecraft:on_tame", + "target": "self" + } +} +``` + +mule + +```json +"minecraft:tamemount": { + "min_temper": 0, + "max_temper": 100, + "feed_text": "action.interact.feed", + "ride_text": "action.interact.mount", + "feed_items": [ + { + "item": "wheat", + "temper_mod": 3 + }, + { + "item": "sugar", + "temper_mod": 3 + }, + { + "item": "apple", + "temper_mod": 3 + }, + { + "item": "golden_carrot", + "temper_mod": 5 + }, + { + "item": "golden_apple", + "temper_mod": 10 + }, + { + "item": "appleEnchanted", + "temper_mod": 10 + } + ], + "auto_reject_items": [ + { + "item": "horsearmorleather" + }, + { + "item": "horsearmoriron" + }, + { + "item": "horsearmorgold" + }, + { + "item": "horsearmordiamond" + }, + { + "item": "saddle" + } + ], + "tame_event": { + "event": "minecraft:on_tame", + "target": "self" + } +} +``` + +trader_llama + +```json +"minecraft:tamemount": { + "min_temper": 0, + "max_temper": 30, + "feed_text": "action.interact.feed", + "ride_text": "action.interact.mount", + "feed_items": [ + { + "item": "wheat", + "temper_mod": 3 + }, + { + "item": "hay_block", + "temper_mod": 6 + } + ], + "auto_reject_items": [ + { + "item": "horsearmorleather" + }, + { + "item": "horsearmoriron" + }, + { + "item": "horsearmorgold" + }, + { + "item": "horsearmordiamond" + }, + { + "item": "saddle" + } + ], + "tame_event": { + "event": "minecraft:on_tame", + "target": "self" + } +} +``` + +## target_nearby_sensor + +blaze + +```json +"minecraft:target_nearby_sensor": { + "inside_range": 2.0, + "outside_range": 3.0, + "must_see": true, + "on_inside_range": { + "event": "switch_to_melee", + "target": "self" + }, + "on_outside_range": { + "event": "switch_to_ranged", + "target": "self" + } +} +``` + +creeper + +```json +"minecraft:target_nearby_sensor": { + "inside_range": 2.5, + "outside_range": 6.0, + "must_see": true, + "on_inside_range": { + "event": "minecraft:start_exploding", + "target": "self" + }, + "on_outside_range": { + "event": "minecraft:stop_exploding", + "target": "self" + }, + "on_vision_lost_inside_range": { + "event": "minecraft:stop_exploding", + "target": "self" + } +} +``` + +```json +"minecraft:target_nearby_sensor": {} +``` + +```json +"minecraft:target_nearby_sensor": {} +``` + +drowned + +```json +"minecraft:target_nearby_sensor": { + "inside_range": 3.0, + "outside_range": 5.0, + "on_inside_range": { + "event": "minecraft:switch_to_melee", + "target": "self" + }, + "on_outside_range": { + "event": "minecraft:switch_to_ranged", + "target": "self" + } +} +``` + +guardian + +```json +"minecraft:target_nearby_sensor": { + "inside_range": 3.0, + "outside_range": 4.0, + "on_inside_range": { + "event": "minecraft:target_too_close", + "target": "self" + } +} +``` + +```json +"minecraft:target_nearby_sensor": { + "inside_range": 3.0, + "outside_range": 4.0, + "on_inside_range": { + "event": "minecraft:target_too_close", + "target": "self" + } +} +``` + +## teleport + +enderman + +```json +"minecraft:teleport": { + "random_teleports": true, + "max_random_teleport_time": 30, + "random_teleport_cube": [ + 32, + 32, + 32 + ], + "target_distance": 16, + "target_teleport_chance": 0.05, + "light_teleport_chance": 0.05 +} +``` + +## timer + +allay + +```json +"minecraft:timer": { + "looping": false, + "time": 3, + "time_down_event": { + "event": "pickup_item_delay_complete" + } +} +``` + +bee + +```json +"minecraft:timer": { + "looping": false, + "time": [ + 20, + 50 + ], + "randomInterval": true, + "time_down_event": { + "event": "stop_panicking_after_fire", + "target": "self" + } +} +``` + +```json +"minecraft:timer": { + "looping": false, + "time": [ + 10, + 60 + ], + "randomInterval": true, + "time_down_event": { + "event": "perish_event", + "target": "self" + } +} +``` + +```json +"minecraft:timer": { + "looping": true, + "time": 5, + "time_down_event": { + "event": "calmed_down", + "target": "self" + } +} +``` + +```json +"minecraft:timer": { + "looping": true, + "time": 180, + "time_down_event": { + "event": "find_flower_timeout" + } +} +``` + +```json +"minecraft:timer": { + "looping": false, + "time": 180, + "time_down_event": { + "event": "find_hive_timeout", + "target": "self" + } +} +``` + +```json +"minecraft:timer": { + "looping": false, + "time": [ + 5, + 20 + ], + "randomInterval": true, + "time_down_event": { + "event": "find_hive_event", + "target": "self" + } +} +``` + +boat + +```json +"minecraft:timer": { + "looping": false, + "time": 3, + "time_down_event": { + "event": "minecraft:sink", + "target": "self" + } +} +``` + +chest_boat + +```json +"minecraft:timer": { + "looping": false, + "time": 3, + "time_down_event": { + "event": "minecraft:sink", + "target": "self" + } +} +``` + +guardian + +```json +"minecraft:timer": { + "time": [ + 1, + 3 + ], + "looping": false, + "time_down_event": { + "event": "minecraft:target_far_enough", + "target": "self" + } +} +``` + +hoglin + +```json +"minecraft:timer": { + "looping": false, + "time": 15, + "time_down_event": { + "event": "become_zombie_event" + } +} +``` + +husk + +```json +"minecraft:timer": { + "looping": false, + "time": 30, + "time_down_event": { + "event": "minecraft:convert_to_zombie" + } +} +``` + +piglin + +```json +"minecraft:timer": { + "looping": false, + "time": 15, + "time_down_event": { + "event": "become_zombie_event" + } +} +``` + +piglin_brute + +```json +"minecraft:timer": { + "looping": false, + "time": 15, + "time_down_event": { + "event": "become_zombie_event" + } +} +``` + +player + +```json +"minecraft:timer": { + "time": [ + 0.0, + 0.0 + ], + "looping": false, + "time_down_event": { + "event": "minecraft:clear_add_bad_omen", + "target": "self" + } +} +``` + +pufferfish + +```json +"minecraft:timer": { + "looping": false, + "time": 2, + "randomInterval": false, + "time_down_event": { + "event": "minecraft:on_half_puff" + } +} +``` + +```json +"minecraft:timer": { + "looping": false, + "time": 2, + "randomInterval": false, + "time_down_event": { + "event": "minecraft:on_normal_puff" + } +} +``` + +```json +"minecraft:timer": { + "looping": false, + "time": 0.01, + "randomInterval": false, + "time_down_event": { + "event": "minecraft:on_full_puff" + } +} +``` + +```json +"minecraft:timer": { + "looping": false, + "time": 3, + "randomInterval": false, + "time_down_event": { + "event": "minecraft:on_deflate" + } +} +``` + +ravager + +```json +"minecraft:timer": { + "looping": false, + "time": 2, + "time_down_event": { + "event": "minecraft:start_roar" + } +} +``` + +skeleton + +```json +"minecraft:timer": { + "looping": false, + "time": 20, + "time_down_event": { + "event": "become_stray_event" + } +} +``` + +wandering_trader + +```json +"minecraft:timer": { + "looping": false, + "random_time_choices": [ + { + "weight": 50, + "value": 2400 + }, + { + "weight": 50, + "value": 3600 + } + ], + "time_down_event": { + "event": "minecraft:start_despawn", + "target": "self" + } +} +``` + +zombie + +```json +"minecraft:timer": { + "looping": false, + "time": 30, + "time_down_event": { + "event": "minecraft:convert_to_drowned" + } +} +``` + +## trade_resupply + +villager_v2 + +```json +"minecraft:trade_resupply": {} +``` + +## trade_table + +villager + +```json +"minecraft:trade_table": { + "display_name": "entity.villager.farmer", + "table": "trading/farmer_trades.json", + "convert_trades_economy": true +} +``` + +```json +"minecraft:trade_table": { + "display_name": "entity.villager.fisherman", + "table": "trading/fisherman_trades.json", + "convert_trades_economy": true +} +``` + +```json +"minecraft:trade_table": { + "display_name": "entity.villager.shepherd", + "table": "trading/shepherd_trades.json", + "convert_trades_economy": true +} +``` + +```json +"minecraft:trade_table": { + "display_name": "entity.villager.fletcher", + "table": "trading/fletcher_trades.json", + "convert_trades_economy": true +} +``` + +```json +"minecraft:trade_table": { + "display_name": "entity.villager.librarian", + "table": "trading/librarian_trades.json", + "convert_trades_economy": true +} +``` + +```json +"minecraft:trade_table": { + "display_name": "entity.villager.cartographer", + "table": "trading/cartographer_trades.json", + "convert_trades_economy": true +} +``` + +```json +"minecraft:trade_table": { + "display_name": "entity.villager.cleric", + "table": "trading/cleric_trades.json", + "convert_trades_economy": true +} +``` + +```json +"minecraft:trade_table": { + "display_name": "entity.villager.armor", + "table": "trading/armorer_trades.json", + "convert_trades_economy": true +} +``` + +```json +"minecraft:trade_table": { + "display_name": "entity.villager.weapon", + "table": "trading/weapon_smith_trades.json", + "convert_trades_economy": true +} +``` + +```json +"minecraft:trade_table": { + "display_name": "entity.villager.tool", + "table": "trading/tool_smith_trades.json", + "convert_trades_economy": true +} +``` + +```json +"minecraft:trade_table": { + "display_name": "entity.villager.butcher", + "table": "trading/butcher_trades.json", + "convert_trades_economy": true +} +``` + +```json +"minecraft:trade_table": { + "display_name": "entity.villager.leather", + "table": "trading/leather_worker_trades.json", + "convert_trades_economy": true +} +``` + +## trail + +snow_golem + +```json +"minecraft:trail": { + "block_type": "minecraft:snow_layer", + "spawn_filter": { + "test": "is_temperature_value", + "operator": "<", + "value": 0.81 + } +} +``` + +## transformation + +hoglin + +```json +"minecraft:transformation": { + "into": "minecraft:zoglin", + "transformation_sound": "converted_to_zombified", + "keep_level": true +} +``` + +husk + +```json +"minecraft:transformation": { + "into": "minecraft:zombie", + "transformation_sound": "convert_to_drowned", + "drop_equipment": true, + "delay": { + "value": 15 + } +} +``` + +```json +"minecraft:transformation": { + "into": "minecraft:zombie", + "transformation_sound": "convert_to_drowned", + "drop_equipment": true, + "delay": { + "value": 15 + } +} +``` + +mooshroom + +```json +"minecraft:transformation": { + "into": "minecraft:cow" +} +``` + +pig + +```json +"minecraft:transformation": { + "into": "minecraft:pig_zombie", + "delay": 0.5 +} +``` + +piglin + +```json +"minecraft:transformation": { + "into": "minecraft:zombie_pigman", + "transformation_sound": "converted_to_zombified", + "keep_level": true, + "drop_inventory": true, + "preserve_equipment": true +} +``` + +piglin_brute + +```json +"minecraft:transformation": { + "into": "minecraft:zombie_pigman", + "transformation_sound": "converted_to_zombified", + "keep_level": true, + "preserve_equipment": true +} +``` + +skeleton + +```json +"minecraft:transformation": { + "into": "minecraft:stray", + "transformation_sound": "convert_to_stray", + "keep_level": true, + "drop_inventory": true, + "preserve_equipment": true +} +``` + +stray + +```json +"minecraft:transformation": { + "into": "minecraft:skeleton", + "delay": 0.5 +} +``` + +tadpole + +```json +"minecraft:transformation": { + "into": "minecraft:frog", + "transformation_sound": "convert_to_frog" +} +``` + +villager + +```json +"minecraft:transformation": { + "into": "minecraft:witch", + "delay": 0.5 +} +``` + +```json +"minecraft:transformation": { + "into": "minecraft:villager_v2", + "keep_level": true +} +``` + +```json +"minecraft:transformation": { + "into": "minecraft:zombie_villager" +} +``` + +villager_v2 + +```json +"minecraft:transformation": { + "into": "minecraft:witch", + "delay": 0.5 +} +``` + +```json +"minecraft:transformation": { + "into": "minecraft:zombie_villager_v2", + "keep_level": true +} +``` + +zombie + +```json +"minecraft:transformation": { + "into": "minecraft:drowned", + "transformation_sound": "convert_to_drowned", + "drop_equipment": true, + "delay": { + "value": 15 + } +} +``` + +```json +"minecraft:transformation": { + "into": "minecraft:drowned", + "transformation_sound": "convert_to_drowned", + "drop_equipment": true, + "delay": { + "value": 15 + } +} +``` + +zombie_villager + +```json +"minecraft:transformation": { + "into": "minecraft:zombie_villager_v2", + "keep_level": false +} +``` + +```json +"minecraft:transformation": { + "into": "minecraft:villager", + "begin_transform_sound": "remedy", + "transformation_sound": "unfect", + "delay": { + "value": 100, + "block_assist_chance": 0.01, + "block_radius": 4, + "block_chance": 0.3, + "block_types": [ + "minecraft:bed", + "minecraft:iron_bars" + ] + } +} +``` + +zombie_villager_v2 + +```json +"minecraft:transformation": { + "into": "minecraft:villager_v2", + "begin_transform_sound": "remedy", + "transformation_sound": "unfect", + "drop_equipment": true, + "keep_level": true, + "delay": { + "value": 100, + "block_assist_chance": 0.01, + "block_radius": 4, + "block_chance": 0.3, + "block_types": [ + "minecraft:bed", + "minecraft:iron_bars" + ] + } +} +``` + +## trust + +fox + +```json +"minecraft:trust": {} +``` + +## trusting + +ocelot + +```json +"minecraft:trusting": { + "probability": 0.33, + "trust_items": [ + "fish", + "salmon" + ], + "trust_event": { + "event": "minecraft:on_trust", + "target": "self" + } +} +``` + +## type_family + +allay + +```json +"minecraft:type_family": { + "family": [ + "allay", + "mob" + ] +} +``` + +armor_stand + +```json +"minecraft:type_family": { + "family": [ + "armor_stand", + "inanimate", + "mob" + ] +} +``` + +axolotl + +```json +"minecraft:type_family": { + "family": [ + "axolotl", + "mob" + ] +} +``` + +bat + +```json +"minecraft:type_family": { + "family": [ + "bat", + "mob" + ] +} +``` + +bee + +```json +"minecraft:type_family": { + "family": [ + "bee", + "mob", + "arthropod" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "bee", + "mob", + "arthropod", + "pacified" + ] +} +``` + +blaze + +```json +"minecraft:type_family": { + "family": [ + "blaze", + "monster", + "mob" + ] +} +``` + +boat + +```json +"minecraft:type_family": { + "family": [ + "boat", + "inanimate" + ] +} +``` + +camel + +```json +"minecraft:type_family": { + "family": [ + "camel", + "mob" + ] +} +``` + +cat + +```json +"minecraft:type_family": { + "family": [ + "cat", + "mob" + ] +} +``` + +cave_spider + +```json +"minecraft:type_family": { + "family": [ + "cavespider", + "monster", + "arthropod", + "mob" + ] +} +``` + +chest_boat + +```json +"minecraft:type_family": { + "family": [ + "boat", + "inanimate" + ] +} +``` + +chest_minecart + +```json +"minecraft:type_family": { + "family": [ + "minecart", + "inanimate" + ] +} +``` + +chicken + +```json +"minecraft:type_family": { + "family": [ + "chicken", + "mob" + ] +} +``` + +command_block_minecart + +```json +"minecraft:type_family": { + "family": [ + "minecart", + "inanimate" + ] +} +``` + +cow + +```json +"minecraft:type_family": { + "family": [ + "cow", + "mob" + ] +} +``` + +creeper + +```json +"minecraft:type_family": { + "family": [ + "creeper", + "monster", + "mob" + ] +} +``` + +dolphin + +```json +"minecraft:type_family": { + "family": [ + "dolphin", + "mob" + ] +} +``` + +donkey + +```json +"minecraft:type_family": { + "family": [ + "donkey", + "mob" + ] +} +``` + +drowned + +```json +"minecraft:type_family": { + "family": [ + "drowned", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +elder_guardian + +```json +"minecraft:type_family": { + "family": [ + "guardian_elder", + "monster", + "mob" + ] +} +``` + +enderman + +```json +"minecraft:type_family": { + "family": [ + "enderman", + "monster", + "mob" + ] +} +``` + +endermite + +```json +"minecraft:type_family": { + "family": [ + "endermite", + "arthropod", + "monster", + "lightweight", + "mob" + ] +} +``` + +ender_dragon + +```json +"minecraft:type_family": { + "family": [ + "dragon", + "mob" + ] +} +``` + +evocation_illager + +```json +"minecraft:type_family": { + "family": [ + "evocation_illager", + "monster", + "illager", + "mob" + ] +} +``` + +cod + +```json +"minecraft:type_family": { + "family": [ + "cod", + "fish" + ] +} +``` + +fox + +```json +"minecraft:type_family": { + "family": [ + "fox", + "lightweight", + "mob" + ] +} +``` + +frog + +```json +"minecraft:type_family": { + "family": [ + "frog", + "mob" + ] +} +``` + +ghast + +```json +"minecraft:type_family": { + "family": [ + "ghast", + "monster", + "mob" + ] +} +``` + +glow_squid + +```json +"minecraft:type_family": { + "family": [ + "squid", + "mob" + ] +} +``` + +goat + +```json +"minecraft:type_family": { + "family": [ + "goat", + "animal" + ] +} +``` + +guardian + +```json +"minecraft:type_family": { + "family": [ + "guardian", + "monster", + "mob" + ] +} +``` + +hoglin + +```json +"minecraft:type_family": { + "family": [ + "hoglin", + "hoglin_baby", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "hoglin", + "hoglin_adult", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "hoglin", + "hoglin_adult", + "hoglin_huntable", + "mob" + ] +} +``` + +hopper_minecart + +```json +"minecraft:type_family": { + "family": [ + "minecart", + "inanimate" + ] +} +``` + +horse + +```json +"minecraft:type_family": { + "family": [ + "horse", + "mob" + ] +} +``` + +husk + +```json +"minecraft:type_family": { + "family": [ + "husk", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +iron_golem + +```json +"minecraft:type_family": { + "family": [ + "irongolem", + "mob" + ] +} +``` + +lightning_bolt + +```json +"minecraft:type_family": { + "family": [ + "lightning" + ] +} +``` + +llama + +```json +"minecraft:type_family": { + "family": [ + "llama", + "mob" + ] +} +``` + +magma_cube + +```json +"minecraft:type_family": { + "family": [ + "magmacube", + "monster", + "mob" + ] +} +``` + +minecart + +```json +"minecraft:type_family": { + "family": [ + "minecart", + "inanimate" + ] +} +``` + +mooshroom + +```json +"minecraft:type_family": { + "family": [ + "mushroomcow", + "mob" + ] +} +``` + +mule + +```json +"minecraft:type_family": { + "family": [ + "mule", + "mob" + ] +} +``` + +npc + +```json +"minecraft:type_family": { + "family": [ + "npc", + "mob" + ] +} +``` + +ocelot + +```json +"minecraft:type_family": { + "family": [ + "ocelot", + "mob" + ] +} +``` + +panda + +```json +"minecraft:type_family": { + "family": [ + "panda" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "panda", + "panda_aggressive", + "mob" + ] +} +``` + +parrot + +```json +"minecraft:type_family": { + "family": [ + "parrot_wild", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "parrot_tame", + "mob" + ] +} +``` + +phantom + +```json +"minecraft:type_family": { + "family": [ + "phantom", + "undead", + "monster", + "mob" + ] +} +``` + +pig + +```json +"minecraft:type_family": { + "family": [ + "pig", + "mob" + ] +} +``` + +piglin + +```json +"minecraft:type_family": { + "family": [ + "piglin", + "piglin_hunter", + "monster" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "piglin", + "monster" + ] +} +``` + +piglin_brute + +```json +"minecraft:type_family": { + "family": [ + "piglin", + "adult_piglin", + "piglin_brute", + "monster" + ] +} +``` + +pillager + +```json +"minecraft:type_family": { + "family": [ + "pillager", + "monster", + "illager", + "mob" + ] +} +``` + +player + +```json +"minecraft:type_family": { + "family": [ + "player" + ] +} +``` + +polar_bear + +```json +"minecraft:type_family": { + "family": [ + "polarbear", + "mob" + ] +} +``` + +pufferfish + +```json +"minecraft:type_family": { + "family": [ + "pufferfish", + "fish" + ] +} +``` + +rabbit + +```json +"minecraft:type_family": { + "family": [ + "rabbit", + "lightweight", + "mob" + ] +} +``` + +ravager + +```json +"minecraft:type_family": { + "family": [ + "monster", + "ravager", + "mob" + ] +} +``` + +salmon + +```json +"minecraft:type_family": { + "family": [ + "salmon", + "fish" + ] +} +``` + +sheep + +```json +"minecraft:type_family": { + "family": [ + "sheep", + "mob" + ] +} +``` + +shulker + +```json +"minecraft:type_family": { + "family": [ + "shulker", + "monster", + "mob" + ] +} +``` + +silverfish + +```json +"minecraft:type_family": { + "family": [ + "silverfish", + "monster", + "lightweight", + "mob", + "arthropod" + ] +} +``` + +skeleton + +```json +"minecraft:type_family": { + "family": [ + "skeleton", + "undead", + "monster", + "mob" + ] +} +``` + +skeleton_horse + +```json +"minecraft:type_family": { + "family": [ + "skeletonhorse", + "undead", + "mob" + ] +} +``` + +slime + +```json +"minecraft:type_family": { + "family": [ + "slime", + "monster", + "mob" + ] +} +``` + +sniffer + +```json +"minecraft:type_family": { + "family": [ + "sniffer", + "mob" + ] +} +``` + +snow_golem + +```json +"minecraft:type_family": { + "family": [ + "snowgolem", + "mob" + ] +} +``` + +spider + +```json +"minecraft:type_family": { + "family": [ + "spider", + "monster", + "mob", + "arthropod" + ] +} +``` + +squid + +```json +"minecraft:type_family": { + "family": [ + "squid", + "mob" + ] +} +``` + +stray + +```json +"minecraft:type_family": { + "family": [ + "stray", + "skeleton", + "monster", + "mob", + "undead" + ] +} +``` + +strider + +```json +"minecraft:type_family": { + "family": [ + "strider", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "strider", + "strider_baby", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "strider", + "strider_adult", + "mob" + ] +} +``` + +tadpole + +```json +"minecraft:type_family": { + "family": [ + "tadpole", + "mob" + ] +} +``` + +tnt + +```json +"minecraft:type_family": { + "family": [ + "tnt", + "inanimate" + ] +} +``` + +tnt_minecart + +```json +"minecraft:type_family": { + "family": [ + "minecart", + "inanimate" + ] +} +``` + +trader_llama + +```json +"minecraft:type_family": { + "family": [ + "trader_llama", + "llama", + "mob" + ] +} +``` + +tripod_camera + +```json +"minecraft:type_family": { + "family": [ + "tripodcamera", + "inanimate", + "mob" + ] +} +``` + +tropicalfish + +```json +"minecraft:type_family": { + "family": [ + "tropicalfish", + "fish" + ] +} +``` + +turtle + +```json +"minecraft:type_family": { + "family": [ + "turtle", + "baby_turtle", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "turtle", + "mob" + ] +} +``` + +vex + +```json +"minecraft:type_family": { + "family": [ + "vex", + "monster", + "mob" + ] +} +``` + +villager + +```json +"minecraft:type_family": { + "family": [ + "villager", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "peasant", + "farmer", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "peasant", + "fisherman", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "peasant", + "shepherd", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "peasant", + "fletcher", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "librarian", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "cartographer", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "priest", + "cleric", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "blacksmith", + "armorer", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "blacksmith", + "weaponsmith", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "blacksmith", + "toolsmith", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "artisan", + "butcher", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "artisan", + "leatherworker", + "mob" + ] +} +``` + +villager_v2 + +```json +"minecraft:type_family": { + "family": [ + "villager", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "peasant", + "unskilled", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "peasant", + "farmer", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "peasant", + "fisherman", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "peasant", + "shepherd", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "peasant", + "fletcher", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "librarian", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "cartographer", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "priest", + "cleric", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "blacksmith", + "armorer", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "blacksmith", + "weaponsmith", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "blacksmith", + "toolsmith", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "artisan", + "butcher", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "artisan", + "leatherworker", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "artisan", + "stone_mason", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "villager", + "peasant", + "nitwit", + "mob" + ] +} +``` + +vindicator + +```json +"minecraft:type_family": { + "family": [ + "vindicator", + "monster", + "illager", + "mob" + ] +} +``` + +wandering_trader + +```json +"minecraft:type_family": { + "family": [ + "wandering_trader", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "wandering_trader", + "wandering_trader_despawning", + "mob" + ] +} +``` + +warden + +```json +"minecraft:type_family": { + "family": [ + "warden", + "monster", + "mob" + ] +} +``` + +witch + +```json +"minecraft:type_family": { + "family": [ + "witch", + "monster", + "mob" + ] +} +``` + +wither + +```json +"minecraft:type_family": { + "family": [ + "wither", + "skeleton", + "monster", + "undead", + "mob" + ] +} +``` + +wither_skeleton + +```json +"minecraft:type_family": { + "family": [ + "wither", + "monster", + "undead", + "skeleton", + "mob" + ] +} +``` + +wolf + +```json +"minecraft:type_family": { + "family": [ + "wolf", + "mob" + ] +} +``` + +xp_orb + +```json +"minecraft:type_family": { + "family": [ + "inanimate" + ] +} +``` + +zoglin + +```json +"minecraft:type_family": { + "family": [ + "zoglin", + "zoglin_baby", + "undead", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "zoglin", + "zoglin_adult", + "undead", + "mob" + ] +} +``` + +zombie + +```json +"minecraft:type_family": { + "family": [ + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +zombie_horse + +```json +"minecraft:type_family": { + "family": [ + "zombiehorse", + "undead", + "mob" + ] +} +``` + +zombie_pigman + +```json +"minecraft:type_family": { + "family": [ + "zombie_pigman", + "undead", + "monster", + "mob" + ] +} +``` + +zombie_villager + +```json +"minecraft:type_family": { + "family": [ + "farmer", + "zombie", + "zombie_villager", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "fisherman", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "shepherd", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "fletcher", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "librarian", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "cartographer", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "cleric", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "armorer", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "weaponsmith", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "toolsmith", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "butcher", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "leatherworker", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +zombie_villager_v2 + +```json +"minecraft:type_family": { + "family": [ + "unskilled", + "zombie", + "zombie_villager", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "nitwit", + "zombie", + "zombie_villager", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "farmer", + "zombie", + "zombie_villager", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "fisherman", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "shepherd", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "fletcher", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "librarian", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "cartographer", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "cleric", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "armorer", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "weaponsmith", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "toolsmith", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "butcher", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "leatherworker", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +```json +"minecraft:type_family": { + "family": [ + "stone_mason", + "zombie_villager", + "zombie", + "undead", + "monster", + "mob" + ] +} +``` + +## underwater_movement + +axolotl + +```json +"minecraft:underwater_movement": { + "value": 0.2 +} +``` + +dolphin + +```json +"minecraft:underwater_movement": { + "value": 0.15 +} +``` + +drowned + +```json +"minecraft:underwater_movement": { + "value": 0.06 +} +``` + +```json +"minecraft:underwater_movement": { + "value": 0.08 +} +``` + +elder_guardian + +```json +"minecraft:underwater_movement": { + "value": 0.3 +} +``` + +cod + +```json +"minecraft:underwater_movement": { + "value": 0.1 +} +``` + +frog + +```json +"minecraft:underwater_movement": { + "value": 0.15 +} +``` + +guardian + +```json +"minecraft:underwater_movement": { + "value": 0.12 +} +``` + +pufferfish + +```json +"minecraft:underwater_movement": { + "value": 0.13 +} +``` + +salmon + +```json +"minecraft:underwater_movement": { + "value": 0.12 +} +``` + +skeleton_horse + +```json +"minecraft:underwater_movement": { + "value": 0.08 +} +``` + +tadpole + +```json +"minecraft:underwater_movement": { + "value": 0.1 +} +``` + +tropicalfish + +```json +"minecraft:underwater_movement": { + "value": 0.12 +} +``` + +turtle + +```json +"minecraft:underwater_movement": { + "value": 0.06 +} +``` + +```json +"minecraft:underwater_movement": { + "value": 0.12 +} +``` + +## variable_max_auto_step + +camel + +```json +"minecraft:variable_max_auto_step": { + "base_value": 1.5625, + "controlled_value": 1.5625, + "jump_prevented_value": 0.5625 +} +``` + +enderman + +```json +"minecraft:variable_max_auto_step": { + "base_value": 1.0625, + "jump_prevented_value": 0.5625 +} +``` + +## variant + +axolotl + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 2 +} +``` + +```json +"minecraft:variant": { + "value": 3 +} +``` + +```json +"minecraft:variant": { + "value": 4 +} +``` + +cat + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 2 +} +``` + +```json +"minecraft:variant": { + "value": 3 +} +``` + +```json +"minecraft:variant": { + "value": 4 +} +``` + +```json +"minecraft:variant": { + "value": 5 +} +``` + +```json +"minecraft:variant": { + "value": 6 +} +``` + +```json +"minecraft:variant": { + "value": 7 +} +``` + +```json +"minecraft:variant": { + "value": 8 +} +``` + +```json +"minecraft:variant": { + "value": 9 +} +``` + +```json +"minecraft:variant": { + "value": 10 +} +``` + +fox + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +frog + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 2 +} +``` + +goat + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +horse + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 2 +} +``` + +```json +"minecraft:variant": { + "value": 3 +} +``` + +```json +"minecraft:variant": { + "value": 4 +} +``` + +```json +"minecraft:variant": { + "value": 5 +} +``` + +```json +"minecraft:variant": { + "value": 6 +} +``` + +husk + +```json +"minecraft:variant": { + "value": 2 +} +``` + +llama + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 2 +} +``` + +```json +"minecraft:variant": { + "value": 3 +} +``` + +magma_cube + +```json +"minecraft:variant": { + "value": 4 +} +``` + +```json +"minecraft:variant": { + "value": 2 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +mooshroom + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +panda + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 2 +} +``` + +```json +"minecraft:variant": { + "value": 3 +} +``` + +```json +"minecraft:variant": { + "value": 4 +} +``` + +```json +"minecraft:variant": { + "value": 5 +} +``` + +```json +"minecraft:variant": { + "value": 6 +} +``` + +parrot + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 2 +} +``` + +```json +"minecraft:variant": { + "value": 3 +} +``` + +```json +"minecraft:variant": { + "value": 4 +} +``` + +piglin + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +piglin_brute + +```json +"minecraft:variant": { + "value": 1 +} +``` + +pillager + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +pufferfish + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 2 +} +``` + +rabbit + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 2 +} +``` + +```json +"minecraft:variant": { + "value": 3 +} +``` + +```json +"minecraft:variant": { + "value": 4 +} +``` + +```json +"minecraft:variant": { + "value": 5 +} +``` + +shulker + +```json +"minecraft:variant": { + "value": 5 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 4 +} +``` + +```json +"minecraft:variant": { + "value": 3 +} +``` + +```json +"minecraft:variant": { + "value": 6 +} +``` + +```json +"minecraft:variant": { + "value": 8 +} +``` + +```json +"minecraft:variant": { + "value": 2 +} +``` + +```json +"minecraft:variant": { + "value": 12 +} +``` + +```json +"minecraft:variant": { + "value": 10 +} +``` + +```json +"minecraft:variant": { + "value": 13 +} +``` + +```json +"minecraft:variant": { + "value": 14 +} +``` + +```json +"minecraft:variant": { + "value": 9 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 7 +} +``` + +```json +"minecraft:variant": { + "value": 16 +} +``` + +```json +"minecraft:variant": { + "value": 15 +} +``` + +```json +"minecraft:variant": { + "value": 11 +} +``` + +slime + +```json +"minecraft:variant": { + "value": 4 +} +``` + +```json +"minecraft:variant": { + "value": 2 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +trader_llama + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 2 +} +``` + +```json +"minecraft:variant": { + "value": 3 +} +``` + +tropicalfish + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +villager + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 2 +} +``` + +```json +"minecraft:variant": { + "value": 3 +} +``` + +```json +"minecraft:variant": { + "value": 3 +} +``` + +```json +"minecraft:variant": { + "value": 3 +} +``` + +```json +"minecraft:variant": { + "value": 4 +} +``` + +```json +"minecraft:variant": { + "value": 4 +} +``` + +villager_v2 + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 2 +} +``` + +```json +"minecraft:variant": { + "value": 3 +} +``` + +```json +"minecraft:variant": { + "value": 4 +} +``` + +```json +"minecraft:variant": { + "value": 5 +} +``` + +```json +"minecraft:variant": { + "value": 6 +} +``` + +```json +"minecraft:variant": { + "value": 7 +} +``` + +```json +"minecraft:variant": { + "value": 8 +} +``` + +```json +"minecraft:variant": { + "value": 9 +} +``` + +```json +"minecraft:variant": { + "value": 10 +} +``` + +```json +"minecraft:variant": { + "value": 11 +} +``` + +```json +"minecraft:variant": { + "value": 12 +} +``` + +```json +"minecraft:variant": { + "value": 13 +} +``` + +```json +"minecraft:variant": { + "value": 14 +} +``` + +vindicator + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +zombie_villager + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 1 +} +``` + +```json +"minecraft:variant": { + "value": 2 +} +``` + +```json +"minecraft:variant": { + "value": 3 +} +``` + +```json +"minecraft:variant": { + "value": 3 +} +``` + +```json +"minecraft:variant": { + "value": 3 +} +``` + +```json +"minecraft:variant": { + "value": 4 +} +``` + +```json +"minecraft:variant": { + "value": 4 +} +``` + +zombie_villager_v2 + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +```json +"minecraft:variant": { + "value": 0 +} +``` + +## vibration_damper + +warden + +```json +"minecraft:vibration_damper": {} +``` + +## vibration_listener + +allay + +```json +"minecraft:vibration_listener": {} +``` + +warden + +```json +"minecraft:vibration_listener": {} +``` + +## water_movement + +panda + +```json +"minecraft:water_movement": { + "drag_factor": 0.98 +} +``` + +polar_bear + +```json +"minecraft:water_movement": { + "drag_factor": 0.98 +} +``` + +turtle + +```json +"minecraft:water_movement": { + "drag_factor": 0.9 +} +``` + diff --git a/docs/wiki/3-实体/3-文档/vusr-full.md b/docs/wiki/3-实体/3-文档/vusr-full.md new file mode 100644 index 00000000..24b154b3 --- /dev/null +++ b/docs/wiki/3-实体/3-文档/vusr-full.md @@ -0,0 +1,4500 @@ +--- +title: Vanilla 可用 Spawn Rules - 完整 +category: Documentation +mentions: + - MedicalJewel105 +hidden: true +--- + +# Vanilla 可用 Spawn Rules - 完整 + + + +本页面由 [Wiki Content Generator](https://github.com/Bedrock-OSS/bedrock-wiki-content-generator) 创建。 如果有问题,请在 [Bedrock OSS](https://www.google.com/search?q=https://discord.gg/XjV87YN) Discord 服务器上联系我们。 +包含所有示例。 命名空间 `minecraft` 和一些格式已被删除,以加快页面加载速度。 *上次更新于 1.20.10* + +## biome_filter + +axolotl + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "lush_caves" +} +``` + +bat + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "animal" +} +``` + +bee + +```json +"minecraft:biome_filter": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "plains" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "sunflower_plains" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "flower_forest" + } +] +``` + +chicken + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "animal" +} +``` + +cod + +```json +"minecraft:biome_filter": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "ocean" + }, + { + "test": "has_biome_tag", + "operator": "!=", + "value": "warm" + } +] +``` + +cow + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "animal" +} +``` + +creeper + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "monster" +} +``` + +dolphin + +```json +"minecraft:biome_filter": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "ocean" + }, + { + "test": "has_biome_tag", + "operator": "!=", + "value": "frozen" + } +] +``` + +donkey + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "plains" +} +``` + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "meadow" +} +``` + +drowned + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "ocean" +} +``` + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "river" +} +``` + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "dripstone_caves" +} +``` + +enderman + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "monster" +} +``` + +```json +"minecraft:biome_filter": { + "all_of": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "nether" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "spawn_endermen" + } + ] +} +``` + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "warped_forest" +} +``` + +```json +"minecraft:biome_filter": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "the_end" + } +] +``` + +fox + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "taiga" +} +``` + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "grove" +} +``` + +frog + +```json +"minecraft:biome_filter": { + "any_of": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "swamp" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "mangrove_swamp" + } + ] +} +``` + +ghast + +```json +"minecraft:biome_filter": { + "all_of": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "nether" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "spawn_ghast" + } + ] +} +``` + +goat + +```json +"minecraft:biome_filter": { + "any_of": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "snowy_slopes" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "jagged_peaks" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "frozen_peaks" + } + ] +} +``` + +hoglin + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "crimson_forest" +} +``` + +horse + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "plains" +} +``` + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "savanna" +} +``` + +husk + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "desert" +} +``` + +llama + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "extreme_hills" +} +``` + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "savanna" +} +``` + +magma_cube + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "spawn_magma_cubes" +} +``` + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "spawn_many_magma_cubes" +} +``` + +mooshroom + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "mooshroom_island" +} +``` + +ocelot + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "jungle" +} +``` + +panda + +```json +"minecraft:biome_filter": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "jungle" + }, + { + "test": "has_biome_tag", + "operator": "!=", + "value": "bamboo" + } +] +``` + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "bamboo" +} +``` + +parrot + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "jungle" +} +``` + +phantom + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "monster" +} +``` + +pig + +```json +"minecraft:biome_filter": { + "any_of": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "animal" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "cherry_grove" + } + ] +} +``` + +piglin + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "spawn_piglin" +} +``` + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "spawn_few_piglins" +} +``` + +pillager_patrol + +```json +"minecraft:biome_filter": { + "all_of": [ + { + "test": "has_biome_tag", + "operator": "!=", + "value": "mooshroom_island" + }, + { + "test": "has_biome_tag", + "operator": "!=", + "value": "nether" + }, + { + "test": "has_biome_tag", + "operator": "!=", + "value": "the_end" + } + ] +} +``` + +```json +"minecraft:biome_filter": { + "all_of": [ + { + "test": "has_biome_tag", + "operator": "!=", + "value": "mooshroom_island" + }, + { + "test": "has_biome_tag", + "operator": "!=", + "value": "nether" + }, + { + "test": "has_biome_tag", + "operator": "!=", + "value": "the_end" + } + ] +} +``` + +```json +"minecraft:biome_filter": { + "all_of": [ + { + "test": "has_biome_tag", + "operator": "!=", + "value": "mooshroom_island" + }, + { + "test": "has_biome_tag", + "operator": "!=", + "value": "nether" + }, + { + "test": "has_biome_tag", + "operator": "!=", + "value": "the_end" + } + ] +} +``` + +polar_bear + +```json +"minecraft:biome_filter": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "frozen" + }, + { + "test": "has_biome_tag", + "operator": "!=", + "value": "ocean" + } +] +``` + +```json +"minecraft:biome_filter": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "frozen" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "ocean" + } +] +``` + +pufferfish + +```json +"minecraft:biome_filter": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "ocean" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "warm" + } +] +``` + +rabbit + +```json +"minecraft:biome_filter": { + "any_of": [ + { + "all_of": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "taiga" + }, + { + "test": "has_biome_tag", + "operator": "!=", + "value": "mega" + } + ] + }, + { + "test": "is_snow_covered", + "operator": "==", + "value": true + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "desert" + } + ] +} +``` + +```json +"minecraft:biome_filter": { + "any_of": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "flower_forest" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "grove" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "snowy_slopes" + } + ] +} +``` + +```json +"minecraft:biome_filter": { + "any_of": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "meadow" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "cherry_grove" + } + ] +} +``` + +salmon + +```json +"minecraft:biome_filter": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "ocean" + }, + { + "test": "has_biome_tag", + "operator": "!=", + "value": "warm" + } +] +``` + +```json +"minecraft:biome_filter": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "river" + } +] +``` + +sheep + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "animal" +} +``` + +```json +"minecraft:biome_filter": { + "any_of": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "meadow" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "cherry_grove" + } + ] +} +``` + +skeleton + +```json +"minecraft:biome_filter": { + "any_of": [ + { + "all_of": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "monster" + }, + { + "test": "has_biome_tag", + "operator": "!=", + "value": "frozen" + } + ] + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "soulsand_valley" + } + ] +} +``` + +slime + +```json +"minecraft:biome_filter": { + "any_of": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "monster" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "swamp" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "mangrove_swamp" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "frozen" + } + ] +} +``` + +spider + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "monster" +} +``` + +squid + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "ocean" +} +``` + +```json +"minecraft:biome_filter": { + "any_of": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "river" + } + ] +} +``` + +stray + +```json +"minecraft:biome_filter": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "frozen" + }, + { + "test": "has_biome_tag", + "operator": "!=", + "value": "ocean" + } +] +``` + +```json +"minecraft:biome_filter": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "frozen" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "ocean" + } +] +``` + +strider + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "nether" +} +``` + +tropicalfish + +```json +"minecraft:biome_filter": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "ocean" + }, + { + "any_of": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "warm" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "lukewarm" + } + ] + } +] +``` + +```json +"minecraft:biome_filter": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "ocean" + }, + { + "any_of": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "warm" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "lukewarm" + } + ] + } +] +``` + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "lush_caves" +} +``` + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "lush_caves" +} +``` + +```json +"minecraft:biome_filter": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "mangrove_swamp" + } +] +``` + +turtle + +```json +"minecraft:biome_filter": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "beach" + }, + { + "test": "has_biome_tag", + "operator": "==", + "value": "warm" + } +] +``` + +witch + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "monster" +} +``` + +wolf + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "taiga" +} +``` + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "grove" +} +``` + +```json +"minecraft:biome_filter": { + "all_of": [ + { + "test": "has_biome_tag", + "operator": "==", + "value": "forest" + }, + { + "test": "has_biome_tag", + "operator": "!=", + "value": "mutated" + }, + { + "test": "has_biome_tag", + "operator": "!=", + "value": "birch" + }, + { + "test": "has_biome_tag", + "operator": "!=", + "value": "roofed" + }, + { + "test": "has_biome_tag", + "operator": "!=", + "value": "mountain" + } + ] +} +``` + +zombie + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "monster" +} +``` + +zombie_pigman + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "spawn_zombified_piglin" +} +``` + +```json +"minecraft:biome_filter": { + "test": "has_biome_tag", + "operator": "==", + "value": "spawn_few_zombified_piglins" +} +``` + +## brightness_filter + +bat + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 4, + "adjust_for_weather": true +} +``` + +bee + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +chicken + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +cow + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +creeper + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 7, + "adjust_for_weather": true +} +``` + +donkey + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +drowned + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 7, + "adjust_for_weather": true +} +``` + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 7, + "adjust_for_weather": true +} +``` + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 7, + "adjust_for_weather": true +} +``` + +enderman + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 7, + "adjust_for_weather": true +} +``` + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 7, + "adjust_for_weather": true +} +``` + +fox + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +goat + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +horse + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +husk + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 7, + "adjust_for_weather": true +} +``` + +llama + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +mooshroom + +```json +"minecraft:brightness_filter": { + "min": 9, + "max": 15, + "adjust_for_weather": false +} +``` + +ocelot + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +panda + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +parrot + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +phantom + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 7, + "adjust_for_weather": true +} +``` + +pig + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +pillager_patrol + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 7, + "adjust_for_weather": false +} +``` + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 7, + "adjust_for_weather": false +} +``` + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 7, + "adjust_for_weather": false +} +``` + +polar_bear + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +rabbit + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +sheep + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +skeleton + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 7, + "adjust_for_weather": true +} +``` + +spider + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 7, + "adjust_for_weather": true +} +``` + +stray + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 7, + "adjust_for_weather": true +} +``` + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 7, + "adjust_for_weather": true +} +``` + +turtle + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +witch + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 7, + "adjust_for_weather": true +} +``` + +wolf + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +```json +"minecraft:brightness_filter": { + "min": 7, + "max": 15, + "adjust_for_weather": false +} +``` + +zombie + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 7, + "adjust_for_weather": true +} +``` + +zombie_pigman + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 11, + "adjust_for_weather": true +} +``` + +```json +"minecraft:brightness_filter": { + "min": 0, + "max": 11, + "adjust_for_weather": true +} +``` + +## delay_filter + +pillager_patrol + +```json +"minecraft:delay_filter": { + "min": 600, + "max": 660, + "identifier": "minecraft:pillager_patrol_easy", + "spawn_chance": 20 +} +``` + +```json +"minecraft:delay_filter": { + "min": 600, + "max": 660, + "identifier": "minecraft:pillager_patrol_normal", + "spawn_chance": 20 +} +``` + +```json +"minecraft:delay_filter": { + "min": 600, + "max": 660, + "identifier": "minecraft:pillager_patrol_hard", + "spawn_chance": 20 +} +``` + +## density_limit + +axolotl + +```json +"minecraft:density_limit": { + "underground": 5 +} +``` + +bat + +```json +"minecraft:density_limit": { + "surface": 5 +} +``` + +cod + +```json +"minecraft:density_limit": { + "surface": 20 +} +``` + +creeper + +```json +"minecraft:density_limit": { + "surface": 5 +} +``` + +dolphin + +```json +"minecraft:density_limit": { + "surface": 5, + "underground": 0 +} +``` + +drowned + +```json +"minecraft:density_limit": { + "surface": 5 +} +``` + +```json +"minecraft:density_limit": { + "surface": 2 +} +``` + +```json +"minecraft:density_limit": { + "surface": 2 +} +``` + +ghast + +```json +"minecraft:density_limit": { + "surface": 0, + "underground": 2 +} +``` + +phantom + +```json +"minecraft:density_limit": { + "surface": 5 +} +``` + +pufferfish + +```json +"minecraft:density_limit": { + "surface": 3 +} +``` + +salmon + +```json +"minecraft:density_limit": { + "surface": 10 +} +``` + +```json +"minecraft:density_limit": { + "surface": 4 +} +``` + +squid + +```json +"minecraft:density_limit": { + "surface": 4 +} +``` + +```json +"minecraft:density_limit": { + "surface": 2 +} +``` + +strider + +```json +"minecraft:density_limit": { + "surface": 3 +} +``` + +tropicalfish + +```json +"minecraft:density_limit": { + "surface": 20 +} +``` + +```json +"minecraft:density_limit": { + "surface": 20 +} +``` + +```json +"minecraft:density_limit": { + "underground": 20 +} +``` + +```json +"minecraft:density_limit": { + "underground": 20 +} +``` + +```json +"minecraft:density_limit": { + "surface": 20 +} +``` + +## difficulty_filter + +creeper + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +drowned + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +enderman + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +ghast + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +hoglin + +```json +"minecraft:difficulty_filter": { + "min": "peaceful", + "max": "hard" +} +``` + +husk + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +magma_cube + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +phantom + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +piglin + +```json +"minecraft:difficulty_filter": { + "min": "peaceful", + "max": "hard" +} +``` + +```json +"minecraft:difficulty_filter": { + "min": "peaceful", + "max": "hard" +} +``` + +pillager_patrol + +```json +"minecraft:difficulty_filter": { + "max": "easy" +} +``` + +```json +"minecraft:difficulty_filter": { + "min": "normal", + "max": "normal" +} +``` + +```json +"minecraft:difficulty_filter": { + "min": "hard" +} +``` + +skeleton + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +slime + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +spider + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +stray + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +strider + +```json +"minecraft:difficulty_filter": { + "min": "peaceful", + "max": "hard" +} +``` + +witch + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +zombie + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +zombie_pigman + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +```json +"minecraft:difficulty_filter": { + "min": "easy", + "max": "hard" +} +``` + +## disallow_spawns_in_bubble + +axolotl + +```json +"minecraft:disallow_spawns_in_bubble": {} +``` + +## distance_filter + +cod + +```json +"minecraft:distance_filter": { + "min": 12, + "max": 32 +} +``` + +pillager_patrol + +```json +"minecraft:distance_filter": { + "min": 24, + "max": 48 +} +``` + +```json +"minecraft:distance_filter": { + "min": 24, + "max": 48 +} +``` + +```json +"minecraft:distance_filter": { + "min": 24, + "max": 48 +} +``` + +pufferfish + +```json +"minecraft:distance_filter": { + "min": 12, + "max": 32 +} +``` + +salmon + +```json +"minecraft:distance_filter": { + "min": 12, + "max": 32 +} +``` + +```json +"minecraft:distance_filter": { + "min": 12, + "max": 32 +} +``` + +tropicalfish + +```json +"minecraft:distance_filter": { + "min": 12, + "max": 32 +} +``` + +```json +"minecraft:distance_filter": { + "min": 12, + "max": 32 +} +``` + +```json +"minecraft:distance_filter": { + "min": 12, + "max": 32 +} +``` + +```json +"minecraft:distance_filter": { + "min": 12, + "max": 32 +} +``` + +```json +"minecraft:distance_filter": { + "min": 12, + "max": 32 +} +``` + +## height_filter + +bat + +```json +"minecraft:height_filter": { + "min": -63, + "max": 63 +} +``` + +cod + +```json +"minecraft:height_filter": { + "min": 0, + "max": 64 +} +``` + +dolphin + +```json +"minecraft:height_filter": { + "min": 0, + "max": 64 +} +``` + +glow_squid + +```json +"minecraft:height_filter": { + "min": -64, + "max": 30 +} +``` + +pufferfish + +```json +"minecraft:height_filter": { + "min": 0, + "max": 64 +} +``` + +salmon + +```json +"minecraft:height_filter": { + "min": 0, + "max": 64 +} +``` + +```json +"minecraft:height_filter": { + "min": 50, + "max": 64 +} +``` + +stray + +```json +"minecraft:height_filter": { + "min": 60, + "max": 66 +} +``` + +tropicalfish + +```json +"minecraft:height_filter": { + "min": 0, + "max": 64 +} +``` + +```json +"minecraft:height_filter": { + "min": 50, + "max": 64 +} +``` + +```json +"minecraft:height_filter": { + "min": 0, + "max": 64 +} +``` + +turtle + +```json +"minecraft:height_filter": { + "min": 60, + "max": 67 +} +``` + +## herd + +axolotl + +```json +"minecraft:herd": { + "min_size": 4, + "max_size": 6, + "event": "minecraft:entity_born", + "event_skip_count": 2 +} +``` + +bat + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 2 +} +``` + +bee + +```json +"minecraft:herd": { + "min_size": 1, + "max_size": 1 +} +``` + +chicken + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 4 +} +``` + +cod + +```json +"minecraft:herd": { + "min_size": 4, + "max_size": 7 +} +``` + +cow + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 3 +} +``` + +dolphin + +```json +"minecraft:herd": { + "min_size": 3, + "max_size": 5 +} +``` + +donkey + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 6 +} +``` + +```json +"minecraft:herd": { + "min_size": 1, + "max_size": 2 +} +``` + +drowned + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 4 +} +``` + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 4 +} +``` + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 4 +} +``` + +enderman + +```json +"minecraft:herd": { + "min_size": 1, + "max_size": 2 +} +``` + +```json +"minecraft:herd": { + "min_size": 1, + "max_size": 1 +} +``` + +```json +"minecraft:herd": { + "min_size": 1, + "max_size": 1 +} +``` + +```json +"minecraft:herd": { + "min_size": 4, + "max_size": 4 +} +``` + +fox + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 4, + "event": "minecraft:entity_born", + "event_skip_count": 2 +} +``` + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 4, + "event": "minecraft:entity_born", + "event_skip_count": 2 +} +``` + +frog + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 5 +} +``` + +glow_squid + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 4 +} +``` + +goat + +```json +"minecraft:herd": { + "min_size": 1, + "max_size": 3 +} +``` + +hoglin + +```json +"minecraft:herd": { + "min_size": 4, + "max_size": 4 +} +``` + +horse + +```json +"minecraft:herd": [ + { + "min_size": 2, + "max_size": 6, + "event": "minecraft:make_white" + }, + { + "min_size": 2, + "max_size": 6, + "event": "minecraft:make_creamy" + }, + { + "min_size": 2, + "max_size": 6, + "event": "minecraft:make_chestnut" + }, + { + "min_size": 2, + "max_size": 6, + "event": "minecraft:make_brown" + }, + { + "min_size": 2, + "max_size": 6, + "event": "minecraft:make_black" + }, + { + "min_size": 2, + "max_size": 6, + "event": "minecraft:make_gray" + }, + { + "min_size": 2, + "max_size": 6, + "event": "minecraft:make_darkbrown" + } +] +``` + +```json +"minecraft:herd": [ + { + "min_size": 2, + "max_size": 6, + "event": "minecraft:make_white" + }, + { + "min_size": 2, + "max_size": 6, + "event": "minecraft:make_creamy" + }, + { + "min_size": 2, + "max_size": 6, + "event": "minecraft:make_chestnut" + }, + { + "min_size": 2, + "max_size": 6, + "event": "minecraft:make_brown" + }, + { + "min_size": 2, + "max_size": 6, + "event": "minecraft:make_black" + }, + { + "min_size": 2, + "max_size": 6, + "event": "minecraft:make_gray" + }, + { + "min_size": 2, + "max_size": 6, + "event": "minecraft:make_darkbrown" + } +] +``` + +husk + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 4 +} +``` + +llama + +```json +"minecraft:herd": { + "min_size": 4, + "max_size": 6 +} +``` + +```json +"minecraft:herd": { + "min_size": 4, + "max_size": 4 +} +``` + +magma_cube + +```json +"minecraft:herd": { + "min_size": 1, + "max_size": 4 +} +``` + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 5 +} +``` + +mooshroom + +```json +"minecraft:herd": { + "min_size": 4, + "max_size": 8 +} +``` + +ocelot + +```json +"minecraft:herd": { + "min_size": 1, + "max_size": 2 +} +``` + +panda + +```json +"minecraft:herd": { + "min_size": 1, + "max_size": 2 +} +``` + +```json +"minecraft:herd": { + "min_size": 1, + "max_size": 2 +} +``` + +parrot + +```json +"minecraft:herd": { + "min_size": 1, + "max_size": 2 +} +``` + +pig + +```json +"minecraft:herd": { + "min_size": 1, + "max_size": 3 +} +``` + +piglin + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 4 +} +``` + +```json +"minecraft:herd": { + "min_size": 4, + "max_size": 4 +} +``` + +pillager_patrol + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 5, + "initial_event": "minecraft:promote_to_patrol_captain", + "initial_event_count": 1, + "event": "minecraft:spawn_as_patrol_follower", + "event_skip_count": 1 +} +``` + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 5, + "initial_event": "minecraft:promote_to_patrol_captain", + "initial_event_count": 1, + "event": "minecraft:spawn_as_patrol_follower", + "event_skip_count": 1 +} +``` + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 5, + "initial_event": "minecraft:promote_to_patrol_captain", + "initial_event_count": 1, + "event": "minecraft:spawn_as_patrol_follower", + "event_skip_count": 1 +} +``` + +polar_bear + +```json +"minecraft:herd": { + "min_size": 1, + "max_size": 2, + "event": "minecraft:entity_born", + "event_skip_count": 1 +} +``` + +```json +"minecraft:herd": { + "min_size": 1, + "max_size": 2, + "event": "minecraft:entity_born", + "event_skip_count": 1 +} +``` + +pufferfish + +```json +"minecraft:herd": { + "min_size": 3, + "max_size": 5 +} +``` + +rabbit + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 3 +} +``` + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 3 +} +``` + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 6 +} +``` + +salmon + +```json +"minecraft:herd": { + "min_size": 3, + "max_size": 5 +} +``` + +```json +"minecraft:herd": { + "min_size": 3, + "max_size": 5 +} +``` + +sheep + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 3 +} +``` + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 4 +} +``` + +skeleton + +```json +"minecraft:herd": { + "min_size": 1, + "max_size": 2 +} +``` + +squid + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 4 +} +``` + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 4 +} +``` + +stray + +```json +"minecraft:herd": { + "min_size": 1, + "max_size": 2 +} +``` + +```json +"minecraft:herd": { + "min_size": 1, + "max_size": 2 +} +``` + +strider + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 4 +} +``` + +tropicalfish + +```json +"minecraft:herd": [ + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_anenonme" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_black_tang" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_blue_dory" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_butterfly_fish" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_cichlid" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_clownfish" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_cc_betta" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_dog_fish" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_e_red_snapper" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_goat_fish" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_moorish_idol" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_ornate_butterfly" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_parrot_fish" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_queen_angel_fish" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_red_cichlid" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_red_lipped_benny" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_red_snapper" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_threadfin" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_tomato_clown" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_triggerfish" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_yellow_tang" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_yellow_tail_parrot" + } +] +``` + +```json +"minecraft:herd": { + "min_size": 1, + "max_size": 3 +} +``` + +```json +"minecraft:herd": [ + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_anenonme" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_black_tang" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_blue_dory" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_butterfly_fish" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_cichlid" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_clownfish" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_cc_betta" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_dog_fish" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_e_red_snapper" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_goat_fish" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_moorish_idol" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_ornate_butterfly" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_parrot_fish" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_queen_angel_fish" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_red_cichlid" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_red_lipped_benny" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_red_snapper" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_threadfin" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_tomato_clown" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_triggerfish" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_yellow_tang" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_yellow_tail_parrot" + } +] +``` + +```json +"minecraft:herd": { + "min_size": 1, + "max_size": 3 +} +``` + +```json +"minecraft:herd": [ + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_anenonme" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_black_tang" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_blue_dory" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_butterfly_fish" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_cichlid" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_clownfish" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_cc_betta" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_dog_fish" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_e_red_snapper" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_goat_fish" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_moorish_idol" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_ornate_butterfly" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_parrot_fish" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_queen_angel_fish" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_red_cichlid" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_red_lipped_benny" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_red_snapper" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_threadfin" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_tomato_clown" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_triggerfish" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_yellow_tang" + }, + { + "min_size": 3, + "max_size": 5, + "event": "minecraft:become_yellow_tail_parrot" + } +] +``` + +turtle + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 6 +} +``` + +wolf + +```json +"minecraft:herd": { + "min_size": 4, + "max_size": 4 +} +``` + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 4 +} +``` + +```json +"minecraft:herd": { + "min_size": 4, + "max_size": 4 +} +``` + +zombie + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 4 +} +``` + +zombie_pigman + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 4 +} +``` + +```json +"minecraft:herd": { + "min_size": 2, + "max_size": 4 +} +``` + +## mob_event_filter + +pillager_patrol + +```json +"minecraft:mob_event_filter": { + "event": "minecraft:pillager_patrols_event" +} +``` + +```json +"minecraft:mob_event_filter": { + "event": "minecraft:pillager_patrols_event" +} +``` + +```json +"minecraft:mob_event_filter": { + "event": "minecraft:pillager_patrols_event" +} +``` + +## permute_type + +pillager_patrol + +```json +"minecraft:permute_type": [ + { + "weight": 100, + "entity_type": "minecraft:pillager" + } +] +``` + +```json +"minecraft:permute_type": [ + { + "weight": 100, + "entity_type": "minecraft:pillager" + } +] +``` + +```json +"minecraft:permute_type": [ + { + "weight": 100, + "entity_type": "minecraft:pillager" + } +] +``` + +zombie + +```json +"minecraft:permute_type": [ + { + "weight": 95 + }, + { + "weight": 5, + "entity_type": "minecraft:zombie_villager_v2" + } +] +``` + +## player_in_village_filter + +pillager_patrol + +```json +"minecraft:player_in_village_filter": { + "distance": 48, + "village_border_tolerance": 32 +} +``` + +```json +"minecraft:player_in_village_filter": { + "distance": 48, + "village_border_tolerance": 32 +} +``` + +```json +"minecraft:player_in_village_filter": { + "distance": 48, + "village_border_tolerance": 32 +} +``` + +## spawn_event + +stray + +```json +"minecraft:spawn_event": { + "event": "change_to_skeleton" +} +``` + +```json +"minecraft:spawn_event": { + "event": "change_to_skeleton" +} +``` + +## spawns_lava + +strider + +```json +"minecraft:spawns_lava": {} +``` + +## spawns_on_block_filter + +axolotl + +```json +"minecraft:spawns_on_block_filter": "minecraft:clay" +``` + +chicken + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + +cow + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + +donkey + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + +goat + +```json +"minecraft:spawns_on_block_filter": [ + "minecraft:stone", + "minecraft:snow", + "minecraft:powder_snow", + "minecraft:snow_layer", + "minecraft:packed_ice", + "minecraft:gravel" +] +``` + +horse + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + +llama + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + +ocelot + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + +panda + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + +parrot + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + +pig + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + +polar_bear + +```json +"minecraft:spawns_on_block_filter": "minecraft:ice" +``` + +rabbit + +```json +"minecraft:spawns_on_block_filter": [ + "minecraft:grass", + "minecraft:snow", + "minecraft:sand", + "minecraft:snow_layer" +] +``` + +```json +"minecraft:spawns_on_block_filter": [ + "minecraft:grass", + "minecraft:snow", + "minecraft:sand", + "minecraft:snow_layer" +] +``` + +```json +"minecraft:spawns_on_block_filter": [ + "minecraft:grass", + "minecraft:snow", + "minecraft:sand", + "minecraft:snow_layer" +] +``` + +sheep + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + +turtle + +```json +"minecraft:spawns_on_block_filter": "minecraft:sand" +``` + +wolf + +```json +"minecraft:spawns_on_block_filter": [ + "minecraft:grass", + "minecraft:podzol", + "minecraft:dirt" +] +``` + +```json +"minecraft:spawns_on_block_filter": [ + "minecraft:grass", + "minecraft:podzol", + "minecraft:dirt" +] +``` + +```json +"minecraft:spawns_on_block_filter": "minecraft:grass" +``` + +## spawns_on_block_prevented_filter + +hoglin + +```json +"minecraft:spawns_on_block_prevented_filter": [ + "minecraft:nether_wart_block", + "minecraft:shroomlight" +] +``` + +magma_cube + +```json +"minecraft:spawns_on_block_prevented_filter": [ + "minecraft:nether_wart_block", + "minecraft:shroomlight" +] +``` + +```json +"minecraft:spawns_on_block_prevented_filter": [ + "minecraft:nether_wart_block", + "minecraft:shroomlight" +] +``` + +piglin + +```json +"minecraft:spawns_on_block_prevented_filter": [ + "minecraft:nether_wart_block", + "minecraft:shroomlight" +] +``` + +```json +"minecraft:spawns_on_block_prevented_filter": [ + "minecraft:nether_wart_block", + "minecraft:shroomlight" +] +``` + +skeleton + +```json +"minecraft:spawns_on_block_prevented_filter": [ + "minecraft:nether_wart_block", + "minecraft:shroomlight" +] +``` + +zombie_pigman + +```json +"minecraft:spawns_on_block_prevented_filter": [ + "minecraft:nether_wart_block", + "minecraft:shroomlight" +] +``` + +```json +"minecraft:spawns_on_block_prevented_filter": [ + "minecraft:nether_wart_block", + "minecraft:shroomlight" +] +``` + +## spawns_on_surface + +bee + +```json +"minecraft:spawns_on_surface": {} +``` + +chicken + +```json +"minecraft:spawns_on_surface": {} +``` + +cod + +```json +"minecraft:spawns_on_surface": {} +``` + +cow + +```json +"minecraft:spawns_on_surface": {} +``` + +creeper + +```json +"minecraft:spawns_on_surface": {} +``` + +dolphin + +```json +"minecraft:spawns_on_surface": {} +``` + +donkey + +```json +"minecraft:spawns_on_surface": {} +``` + +```json +"minecraft:spawns_on_surface": {} +``` + +drowned + +```json +"minecraft:spawns_on_surface": {} +``` + +```json +"minecraft:spawns_on_surface": {} +``` + +```json +"minecraft:spawns_on_surface": {} +``` + +enderman + +```json +"minecraft:spawns_on_surface": {} +``` + +```json +"minecraft:spawns_on_surface": {} +``` + +fox + +```json +"minecraft:spawns_on_surface": {} +``` + +```json +"minecraft:spawns_on_surface": {} +``` + +frog + +```json +"minecraft:spawns_on_surface": {} +``` + +goat + +```json +"minecraft:spawns_on_surface": {} +``` + +horse + +```json +"minecraft:spawns_on_surface": {} +``` + +```json +"minecraft:spawns_on_surface": {} +``` + +husk + +```json +"minecraft:spawns_on_surface": {} +``` + +llama + +```json +"minecraft:spawns_on_surface": {} +``` + +```json +"minecraft:spawns_on_surface": {} +``` + +mooshroom + +```json +"minecraft:spawns_on_surface": {} +``` + +ocelot + +```json +"minecraft:spawns_on_surface": {} +``` + +panda + +```json +"minecraft:spawns_on_surface": {} +``` + +```json +"minecraft:spawns_on_surface": {} +``` + +parrot + +```json +"minecraft:spawns_on_surface": {} +``` + +phantom + +```json +"minecraft:spawns_on_surface": {} +``` + +pig + +```json +"minecraft:spawns_on_surface": {} +``` + +pillager_patrol + +```json +"minecraft:spawns_on_surface": {} +``` + +```json +"minecraft:spawns_on_surface": {} +``` + +```json +"minecraft:spawns_on_surface": {} +``` + +polar_bear + +```json +"minecraft:spawns_on_surface": {} +``` + +```json +"minecraft:spawns_on_surface": {} +``` + +pufferfish + +```json +"minecraft:spawns_on_surface": {} +``` + +rabbit + +```json +"minecraft:spawns_on_surface": {} +``` + +```json +"minecraft:spawns_on_surface": {} +``` + +```json +"minecraft:spawns_on_surface": {} +``` + +salmon + +```json +"minecraft:spawns_on_surface": {} +``` + +```json +"minecraft:spawns_on_surface": {} +``` + +sheep + +```json +"minecraft:spawns_on_surface": {} +``` + +```json +"minecraft:spawns_on_surface": {} +``` + +skeleton + +```json +"minecraft:spawns_on_surface": {} +``` + +slime + +```json +"minecraft:spawns_on_surface": {} +``` + +spider + +```json +"minecraft:spawns_on_surface": {} +``` + +squid + +```json +"minecraft:spawns_on_surface": {} +``` + +```json +"minecraft:spawns_on_surface": {} +``` + +stray + +```json +"minecraft:spawns_on_surface": {} +``` + +```json +"minecraft:spawns_on_surface": {} +``` + +tropicalfish + +```json +"minecraft:spawns_on_surface": {} +``` + +```json +"minecraft:spawns_on_surface": {} +``` + +```json +"minecraft:spawns_on_surface": {} +``` + +turtle + +```json +"minecraft:spawns_on_surface": {} +``` + +witch + +```json +"minecraft:spawns_on_surface": {} +``` + +wolf + +```json +"minecraft:spawns_on_surface": {} +``` + +```json +"minecraft:spawns_on_surface": {} +``` + +```json +"minecraft:spawns_on_surface": {} +``` + +zombie + +```json +"minecraft:spawns_on_surface": {} +``` + +## spawns_underground + +axolotl + +```json +"minecraft:spawns_underground": {} +``` + +bat + +```json +"minecraft:spawns_underground": {} +``` + +creeper + +```json +"minecraft:spawns_underground": {} +``` + +enderman + +```json +"minecraft:spawns_underground": {} +``` + +```json +"minecraft:spawns_underground": {} +``` + +```json +"minecraft:spawns_underground": {} +``` + +ghast + +```json +"minecraft:spawns_underground": {} +``` + +glow_squid + +```json +"minecraft:spawns_underground": {} +``` + +hoglin + +```json +"minecraft:spawns_underground": {} +``` + +magma_cube + +```json +"minecraft:spawns_underground": {} +``` + +```json +"minecraft:spawns_underground": {} +``` + +piglin + +```json +"minecraft:spawns_underground": {} +``` + +```json +"minecraft:spawns_underground": {} +``` + +skeleton + +```json +"minecraft:spawns_underground": {} +``` + +slime + +```json +"minecraft:spawns_underground": {} +``` + +spider + +```json +"minecraft:spawns_underground": {} +``` + +stray + +```json +"minecraft:spawns_underground": {} +``` + +strider + +```json +"minecraft:spawns_underground": {} +``` + +tropicalfish + +```json +"minecraft:spawns_underground": {} +``` + +```json +"minecraft:spawns_underground": {} +``` + +witch + +```json +"minecraft:spawns_underground": {} +``` + +zombie + +```json +"minecraft:spawns_underground": {} +``` + +zombie_pigman + +```json +"minecraft:spawns_underground": {} +``` + +```json +"minecraft:spawns_underground": {} +``` + +## spawns_underwater + +axolotl + +```json +"minecraft:spawns_underwater": {} +``` + +cod + +```json +"minecraft:spawns_underwater": {} +``` + +dolphin + +```json +"minecraft:spawns_underwater": {} +``` + +drowned + +```json +"minecraft:spawns_underwater": {} +``` + +```json +"minecraft:spawns_underwater": {} +``` + +```json +"minecraft:spawns_underwater": {} +``` + +glow_squid + +```json +"minecraft:spawns_underwater": {} +``` + +guardian + +```json +"minecraft:spawns_underwater": {} +``` + +pufferfish + +```json +"minecraft:spawns_underwater": {} +``` + +salmon + +```json +"minecraft:spawns_underwater": {} +``` + +```json +"minecraft:spawns_underwater": {} +``` + +squid + +```json +"minecraft:spawns_underwater": {} +``` + +```json +"minecraft:spawns_underwater": {} +``` + +tropicalfish + +```json +"minecraft:spawns_underwater": {} +``` + +```json +"minecraft:spawns_underwater": {} +``` + +```json +"minecraft:spawns_underwater": {} +``` + +```json +"minecraft:spawns_underwater": {} +``` + +```json +"minecraft:spawns_underwater": {} +``` + +## weight + +axolotl + +```json +"minecraft:weight": { + "default": 10 +} +``` + +bat + +```json +"minecraft:weight": { + "default": 10 +} +``` + +bee + +```json +"minecraft:weight": { + "default": 10 +} +``` + +chicken + +```json +"minecraft:weight": { + "default": 10 +} +``` + +cod + +```json +"minecraft:weight": { + "default": 75 +} +``` + +cow + +```json +"minecraft:weight": { + "default": 8 +} +``` + +creeper + +```json +"minecraft:weight": { + "default": 100 +} +``` + +dolphin + +```json +"minecraft:weight": { + "default": 7 +} +``` + +donkey + +```json +"minecraft:weight": { + "default": 1 +} +``` + +```json +"minecraft:weight": { + "default": 1 +} +``` + +drowned + +```json +"minecraft:weight": { + "default": 100 +} +``` + +```json +"minecraft:weight": { + "default": 5 +} +``` + +```json +"minecraft:weight": { + "default": 100 +} +``` + +enderman + +```json +"minecraft:weight": { + "default": 10 +} +``` + +```json +"minecraft:weight": { + "default": 6 +} +``` + +```json +"minecraft:weight": { + "default": 10 +} +``` + +```json +"minecraft:weight": { + "default": 10 +} +``` + +fox + +```json +"minecraft:weight": { + "default": 8 +} +``` + +```json +"minecraft:weight": { + "default": 8 +} +``` + +frog + +```json +"minecraft:weight": { + "default": 10 +} +``` + +ghast + +```json +"minecraft:weight": { + "default": 40 +} +``` + +glow_squid + +```json +"minecraft:weight": { + "default": 10 +} +``` + +goat + +```json +"minecraft:weight": { + "default": 5 +} +``` + +hoglin + +```json +"minecraft:weight": { + "default": 20 +} +``` + +horse + +```json +"minecraft:weight": { + "default": 4 +} +``` + +```json +"minecraft:weight": { + "default": 1 +} +``` + +husk + +```json +"minecraft:weight": { + "default": 240 +} +``` + +llama + +```json +"minecraft:weight": { + "default": 5 +} +``` + +```json +"minecraft:weight": { + "default": 8 +} +``` + +magma_cube + +```json +"minecraft:weight": { + "default": 10 +} +``` + +```json +"minecraft:weight": { + "default": 100 +} +``` + +mooshroom + +```json +"minecraft:weight": { + "default": 8 +} +``` + +ocelot + +```json +"minecraft:weight": { + "default": 30 +} +``` + +panda + +```json +"minecraft:weight": { + "default": 10 +} +``` + +```json +"minecraft:weight": { + "default": 40 +} +``` + +parrot + +```json +"minecraft:weight": { + "default": 40 +} +``` + +phantom + +```json +"minecraft:weight": { + "default": 100 +} +``` + +pig + +```json +"minecraft:weight": { + "default": 10 +} +``` + +piglin + +```json +"minecraft:weight": { + "default": 5 +} +``` + +```json +"minecraft:weight": { + "default": 15 +} +``` + +polar_bear + +```json +"minecraft:weight": { + "default": 1 +} +``` + +```json +"minecraft:weight": { + "default": 5 +} +``` + +pufferfish + +```json +"minecraft:weight": { + "default": 25 +} +``` + +rabbit + +```json +"minecraft:weight": { + "default": 4 +} +``` + +```json +"minecraft:weight": { + "default": 4 +} +``` + +```json +"minecraft:weight": { + "default": 2 +} +``` + +salmon + +```json +"minecraft:weight": { + "default": 26 +} +``` + +```json +"minecraft:weight": { + "default": 16 +} +``` + +sheep + +```json +"minecraft:weight": { + "default": 12 +} +``` + +```json +"minecraft:weight": { + "default": 2 +} +``` + +skeleton + +```json +"minecraft:weight": { + "default": 80 +} +``` + +slime + +```json +"minecraft:weight": { + "default": 100 +} +``` + +spider + +```json +"minecraft:weight": { + "default": 100 +} +``` + +squid + +```json +"minecraft:weight": { + "default": 8 +} +``` + +```json +"minecraft:weight": { + "default": 8 +} +``` + +stray + +```json +"minecraft:weight": { + "default": 120 +} +``` + +```json +"minecraft:weight": { + "default": 120 +} +``` + +strider + +```json +"minecraft:weight": { + "default": 20 +} +``` + +tropicalfish + +```json +"minecraft:weight": { + "default": 75 +} +``` + +```json +"minecraft:weight": { + "default": 25 +} +``` + +```json +"minecraft:weight": { + "default": 75 +} +``` + +```json +"minecraft:weight": { + "default": 25 +} +``` + +```json +"minecraft:weight": { + "default": 25 +} +``` + +turtle + +```json +"minecraft:weight": { + "default": 8 +} +``` + +witch + +```json +"minecraft:weight": { + "default": 5 +} +``` + +wolf + +```json +"minecraft:weight": { + "default": 8 +} +``` + +```json +"minecraft:weight": { + "default": 8 +} +``` + +```json +"minecraft:weight": { + "default": 5 +} +``` + +zombie + +```json +"minecraft:weight": { + "default": 100 +} +``` + +zombie_pigman + +```json +"minecraft:weight": { + "default": 100 +} +``` + +```json +"minecraft:weight": { + "default": 1 +} +``` + +## world_age_filter + +pillager_patrol + +```json +"minecraft:world_age_filter": { + "min": 6000 +} +``` + +```json +"minecraft:world_age_filter": { + "min": 6000 +} +``` + +```json +"minecraft:world_age_filter": { + "min": 6000 +} +``` + diff --git a/docs/wiki/4-Json-UI/1-基础/best-practices.md b/docs/wiki/4-Json-UI/1-基础/best-practices.md new file mode 100644 index 00000000..164e88db --- /dev/null +++ b/docs/wiki/4-Json-UI/1-基础/best-practices.md @@ -0,0 +1,155 @@ +--- +title: 最佳实践 +category: 通用指南 +nav_order: 2 +tags: + - 指南 +mentions: + - LukasPAH + - SmokeyStack + - TheItsNameless + - ThomasOrs +--- + +# 最佳实践 + + + +:::tip 提示 +本文内容假定您已对JSON-UI系统有一定了解。如果您是JSON-UI的新手,请务必先阅读[JSON-UI介绍](/json-ui/json-ui-intro)和[JSON-UI文档](/json-ui/json-ui-documentation)。 +::: + +## 最大化兼容性并减少UI崩溃的可能性 + +JSON-UI与其他附加包系统不同,因为**JSON-UI没有版本控制**。随着Mojang更新和修复JSON-UI系统,您对UI所做的任何修改都可能失效。幸运的是,您可以通过以下几种方法在Mojang更新原版UI时保持自定义UI的稳定性。 + +### 仅修改必要内容 +最有效的防崩溃策略是只修改需要调整的部分。例如若只需要禁用经验条阴影,正确做法应是在资源包中向`hud_screen.json`文件添加: + +```json +{ + "progress_text_label": { + "shadow": false + } +} +``` + +这种极简修改方式能显著降低未来更新导致UI崩溃的风险,同时保持文件整洁并大幅缩小体积。**若您将整个原版UI文件复制到资源包中进行修改,说明您错误理解了JSON-UI的工作机制**。 + +### 善用修改策略 +使用[wiki文档中的修改策略](/json-ui/json-ui-intro#modifications)能有效降低更新风险。例如在HUD中添加自定义元素时,推荐使用修改数组操作而非直接插入控件: + +::: code-group +```json [正确做法] +{ + "root_panel": { + "modifications": [ + { + "array_name": "controls", + "operation": "insert_front", + "value": [ + { + "custom_ui@namespace.custom_ui": {} + } + ] + } + ] + } +} +``` +::: + +这种策略性合并方式能提升与其他资源包的兼容性,并减少因原版控件结构调整导致的崩溃风险。 + +### 避免修改深层嵌套控件 +修改嵌套层级过深的控件容易引发问题。推荐优先修改基础元素定义,必要时使用斜杠语法定位子控件: + +::: code-group +```json [推荐修改方式] +{ + "panel_with_label_and_bg/bg_image": { + "size": ["100%c", "100%c"] + }, + "panel_with_label_and_bg/bg_image/label": { + "layer": -5 + } +} +``` +::: + +### 使用单一入口点 +合并自定义UI时建议集中到单个入口点。例如将多个自定义控件统一插入`root_panel`: + +::: code-group +```json [优化后] +{ + "root_panel": { + "modifications": [ + { + "array_name": "controls", + "operation": "insert_front", + "value": [ + {"custom_ui_1@ns1.control1": {}}, + {"custom_ui_2@ns1.control2": {}} + ] + } + ] + } +} +``` +::: + +### 避免使用原版命名空间 +开发大规模UI修改时,建议创建自定义[命名空间](/json-ui/json-ui-intro#namespaces)并使用前缀(如`wiki:namespace`)来防止命名冲突。通过`element@namespace.element`语法引用其他命名空间的元素。 + +## 性能优化指南 + +JSON-UI是仅次于实体的性能消耗大户。以下策略可帮助提升UI性能表现: + +### 减少操作符使用 +[操作符](/json-ui/json-ui-intro#using-operators)会显著增加计算开销。优化示例: + +```json +"$var": "(-2 * $number)" // 优于 "(2 * (-1 * $number))" +``` + +### 精简绑定数量 +每个[绑定](/json-ui/json-ui-intro#bindings)都会产生性能开销。建议: +- 移除无效绑定 +- 合并相似功能绑定 +- 避免重复绑定相同数据 + +### 优化控件结构 +通过以下方式减少控件数量: +1. 删除无用控件或添加`"ignored": true` +2. 合并相似控件 +3. 使用条件渲染替代多个独立控件 + +::: code-group +```json [优化前] +// 5个独立图像控件 +"image_1@image_template": { + "$texture": "textures/ui/example_1", + "$binding_text": "1" +} +... +``` +```json [优化后] +// 单个动态图像控件 +"image": { + "type": "image", + "texture": "#texture", + "bindings": [ + { + "binding_type": "view", + "source_property_name": "('textures/ui/example_' + #hud_title_text_string)", + "target_property_name": "#texture" + } + ] +} +``` +::: + +**注意**:`"visible": false`不会阻止控件计算,应优先使用`"ignored": true`彻底禁用控件。 + +通过系统性优化,可显著提升UI响应速度并降低资源消耗,为玩家提供更流畅的游戏体验。 \ No newline at end of file diff --git a/docs/wiki/4-Json-UI/1-基础/json-ui-intro.md b/docs/wiki/4-Json-UI/1-基础/json-ui-intro.md new file mode 100644 index 00000000..eb8a3b4d --- /dev/null +++ b/docs/wiki/4-Json-UI/1-基础/json-ui-intro.md @@ -0,0 +1,837 @@ +--- +title: JSON UI 入门指南 +category: 通用 +nav_order: 1 +tags: + - guide +mentions: + - sermah + - KalmeMarq + - SirLich + - solvedDev + - Joelant05 + - GTB3NW + - stirante + - MedicalJewel105 + - r4isen1920 + - shanewolf38 + - LeGend077 + - mark-wiemer + - TheItsNameless + - ThomasOrs +--- + +# JSON UI 入门指南 + + + +## 简介 + +:::warning +JSON UI 已进入弃用阶段,推荐使用 [Ore UI](https://github.com/Mojang/ore-ui) 替代。请注意,任何使用 JSON UI 的附加包将在未来几年内失效。 +::: + +:::tip +本文概述了 JSON UI 的基础知识。如需更详细的文档,请查阅 [JSON UI 文档](/json-ui/json-ui-documentation)。 +::: + +游戏用户界面采用数据驱动模式,支持自定义修改。通过 JSON UI 系统,我们可以调整用户界面的渲染方式及部分交互行为。所有原版 UI 文件均存储在 `RP/ui/...` 文件夹中。 + +JSON UI 可能包含以下文件类型: + +### 系统文件 + +这些是 JSON UI 的内置文件: + +- `_global_variables.json` - 存储全局变量定义 +- `_ui_defs.json` - 管理 UI 文件引用清单 + +### 屏幕文件 + +用于定义特定界面布局的文件: + +- `hud_screen.json` - 显示包含快捷栏等游戏元素的 HUD 界面 +- `inventory_screen.json` - 玩家背包界面 +- 其他屏幕文件 + +### 模板文件 + +存储可复用 UI 组件的文件: + +- `ui_common.json` - 包含通用组件(如设置界面的按钮模板) +- `ui_template_*.json` - 模块化组织的组件集合 + +## UI 定义文件 + +`_ui_defs.json` 通过数组形式引用所有 JSON UI 文件。 + +例如新增 `RP/ui/button.json` 和 `RP/my_ui/main_menu.json` 时,应如下配置: + +::: code-group +```json [RP/ui/_ui_defs.json] +{ + "ui_defs": ["ui/button.json", "my_ui/main_menu.json"] +} +``` +::: + +- 必须包含从资源包根目录开始的完整文件路径(包括 `.json` 扩展名) +- 只需声明自建文件,无需包含原版或其他第三方文件 +- 支持非 `RP/ui/...` 路径的文件引用 +- 可使用非 `.json` 扩展名,但文件内容必须为合法 JSON + +## 全局变量 + +在 `_global_variables.json` 中定义变量 `"$info_text_color"`: + +::: code-group +```json [RP/ui/_global_variables.json] +{ + "$info_text_color": [0.8, 0.8, 0.8] +} +``` +::: + +其他 UI 文件可调用此变量: + +::: code-group +```json [vanilla/my_ui/file1.json] +{ + "some_info": { + ... + "text": "Hey", + "color": "$info_text_color" + } +} +``` + +```json [vanilla/my_ui/file2.json] +{ + "info": { + ... + "text": "Information", + "color": "$info_text_color" + } +} +``` +::: + +- 支持定义多个变量(逗号分隔) +- 全局变量为单向常量,不可跨文件修改 + +## 命名空间 + +命名空间是 UI 文件的唯一标识符,用于跨文件引用元素。每个命名空间必须具有唯一名称。 + +示例命名空间 `one` 中的元素: + +::: code-group +```json [vanilla/ui/file_a.json] +{ + "namespace": "one", + "foobar": {...} +} +``` +::: + +在命名空间 `two` 中引用: + +::: code-group +```json [vanilla/ui/file_b.json] +{ + "namespace": "two", + "fizzbuzz@one.foobar": {...} +} +``` +::: + +跨命名空间引用格式: +```json +"[元素名称]@[命名空间].[被引用元素]" +``` + +## 屏幕系统 + +屏幕文件包含游戏在特定场景调用的界面布局(如背包界面)。每个屏幕文件必须包含根元素供游戏直接访问。 + +屏幕文件具有数据访问隔离特性。 + +## UI 元素 + +UI 元素是 JSON UI 的基本组成单元,每个命名空间内的元素名称必须唯一。 + +示例文本元素: + +::: code-group +```json [vanilla/ui/example_file.json] +{ + "test_element": { + "type": "label", + "text": "Hello World" + } +} +``` +::: + +### 元素类型 + +常用元素类型 (`type` 属性值): + +- `label` - 文本对象 +- `image` - 图像渲染 +- `button` - 交互按钮 +- `panel` - 层叠容器 +- `stack_panel` - 流式布局容器 +- `grid` - 网格模板渲染 +- `factory` - 动态元素生成器 +- `custom` - 自定义渲染器 +- `screen` - 根屏幕元素 + +## 动画系统 + +使用 `anim_type` 属性创建动画元素,可通过 `anims` 数组应用于其他元素。 + +示例动画元素: + +::: code-group +```json [vanilla/ui/example_file.json] +{ + "namespace": "example_nm", + + "anim_size": { + "anim_type": "size", + "easing": "linear", + "from": [ "100%", 27 ], + "to": [ "100% + 3px", 30 ], + "duration": 1.25 + }, + + "anim_alpha": { + "anim_type": "alpha", + "easing": "linear", + "from": 1, + "to": 0.5, + "duration": 2 + }, + + "test_animated_element": { + ... + "anims": [ + "@example_nm.anim_size", + "@example_nm.anim_alpha" + ] + } +} +``` +::: + +### 动画类型 + +支持动画类型 (`anim_type`): + +- `alpha` - 透明度动画 +- `offset` - 位移动画 +- `size` - 尺寸动画 +- `flip_book` - 翻页动画 +- `uv` - UV 贴图动画 +- `color` - 颜色过渡 +- `wait` - 等待延时 +- `aseprite_flip_book` - 精灵表动画 +- `clip` - 裁剪动画 + +## 操作符系统 + +支持在属性中使用运算符,结合 `$变量` 和 `#绑定` 实现动态计算。 + +| 运算符 | 符号 | 示例 | +|----------------------|------|----------------------------------------------------------------------| +| 加法 | + | `"100% + 420px"` `($text + ' my')` | +| 减法 | - | `"100% - 69px"` `($index - 13)` | +| 乘法 | * | `($var * 9)` | +| 除法 | / | `(#value / 2)` | +| 等于 | = | `($var = 'text')` | +| 大于 | > | `(#value > 13)` | +| 小于 | < | `($var < 4)` | +| 大于等于 | >= | `(#value >= 2)` | +| 小于等于 | <= | `(#value <= 2)` | +| 逻辑与 | and | `($cond1 and $cond2)` | +| 逻辑或 | or | `($condA or $condB)` | +| 逻辑非 | not | `(not #flag)` | + +## 变量系统 + +除全局变量外,支持在元素内定义局部变量。 + +### 变量定义 + +使用 `$` 前缀定义变量,支持多种数据类型: + +::: code-group +```json [vanilla/ui/example_file.json] +{ + "test_element": { + // 定义变量 + "$array_var": [10, 10], + "$str_var": "foobar", + + // 使用变量 + "size": "$array_var", + "text": "$str_var", + + // 动态引用模板 + "controls": [ + { "foobar@$str_var": {} } + ] + } +} +``` +::: + +### 变量继承 + +支持通过元素继承覆盖变量: + +::: code-group +```json [vanilla/ui/example_file.json] +{ + "base_element": { + "$var1": 1, + "$var2": false + }, + + "derived_element@base_element": { + "$var1": 2 // 覆盖父元素变量 + } +} +``` +::: + +## 数据绑定 + +通过 `bindings` 实现数据源与元素的动态关联。 + +### 简单绑定 + +::: code-group +```json [vanilla/ui/example_file.json] +{ + "label": { + "type": "label", + "text": "#hardtext", + "bindings": [ + { + "binding_name": "#hardtext" + } + ] + } +} +``` +::: + +### 重定向绑定 + +::: code-group +```json [vanilla/ui/example_file.json] +{ + "label": { + "type": "label", + "text": "#display_text", + "bindings": [ + { + "binding_name": "#source_data", + "binding_name_override": "#display_text" + } + ] + } +} +``` +::: + +### 跨元素绑定 + +::: code-group +```json +{ + "status_panel": { + "bindings": [ + { + "binding_type": "view", + "source_control_name": "my_toggle", + "source_property_name": "#state", + "target_property_name": "#visible" + } + ] + } +} +``` +::: + +## 条件渲染 + +通过变量和绑定实现动态显示控制。 + +### 变量条件 + +::: code-group +```json [vanilla/ui/hud_screen.json] +{ + "hud_actionbar_text/actionbar_message": { + "$atext": "$actionbar_text", + "visible": "(not ($atext = 'hello world'))" + } +} +``` +::: + +### 工厂条件 + +::: code-group +```json [vanilla/ui/hud_screen.json] +{ + "conditional_image": { + "type": "image", + "texture": "textures/ui/Black", + "$atext": "$actionbar_text", + "visible": "($atext = 'show_image')" + }, + + "image_factory": { + "type": "panel", + "factory": { + "name": "hud_actionbar_text_factory", + "control_ids": { + "hud_actionbar_text": "conditional_image@hud.conditional_image" + } + } + } +} +``` +::: + +通过结合操作符系统,可实现复杂的条件逻辑判断,为界面交互提供灵活的控制能力。 + +::: code-group +```json [vanilla/ui/hud_screen.json] +``` +::: + +### 使用绑定的条件渲染 + +根据上文提到的操作栏示例,你可能会认为标题也使用变量。但实际情况并非如此。标题使用绑定(bindings)来获取数据,如下所示。 + +::: code-group +```json [vanilla/ui/hud_screen.json] +{ +... + "hud_title_text": { + "type": "stack_panel", + "orientation": "vertical", // 垂直排列 + "offset": [ 0, -19 ], // 位置偏移 + "layer": 1, // 渲染层级 + "alpha": "@hud.anim_title_text_alpha_in", // 透明度动画 + "propagate_alpha": true, // 透明度继承 + "controls": [ // 子控件集合 + { + "title_frame": { + "type": "panel", // 面板类型 + "size": [ "100%", "100%cm" ], // 尺寸设置 + "controls": [ + { + "title_background": { + "type": "image", // 图像类型 + "size": [ "100%sm + 30px", "100%sm + 6px" ], // 动态尺寸计算 + "texture": "textures/ui/hud_tip_text_background", // 纹理路径 + "alpha": "@hud.anim_title_background_alpha_in" // 背景透明度动画 + } + }, + { + "title": { + "type": "label", // 文本标签类型 + "anchor_from": "top_middle", // 锚点起始位置 + "anchor_to": "top_middle", // 锚点目标位置 + "color": "$title_command_text_color", // 文字颜色变量 + "text": "#text", // 文本内容绑定 + "layer": 1, // 渲染层级 + "localize": false, // 关闭本地化 + "font_size": "extra_large", // 超大字号 + "variables": [ // 条件变量组 + { + "requires": "(not $title_shadow)", // 无阴影条件 + "$show_shadow": false // 关闭阴影显示 + }, + { + "requires": "$title_shadow", // 启用阴影条件 + "$show_shadow": true // 启用阴影显示 + } + ], + "shadow": "$show_shadow", // 阴影状态绑定 + "text_alignment": "center", // 文本居中 + "offset": [ 0, 6 ], // 位置微调 + "bindings": [ // 数据绑定组 + { + "binding_name": "#hud_title_text_string", // 原始绑定名 + "binding_name_override": "#text", // 覆盖目标属性 + "binding_type": "global" // 全局绑定类型 + } + ] + } + } + ] + } + } + ] + } +... +} +``` +::: + +我们需要在文本组件中添加另一个绑定对象来控制可见性。注意`#visible`属性会通过绑定直接控制元素可见性。以下示例将不会渲染"hello world"标题,但会显示其他所有标题。可在游戏中输入`/title @s title hello world`观察效果。 + +::: code-group +```json [vanilla/ui/hud_screen.json] +{ +... + "hud_title_text": { + "type": "stack_panel", + "orientation": "vertical", + "offset": [ 0, -19 ], + "layer": 1, + "alpha": "@hud.anim_title_text_alpha_in", + "propagate_alpha": true, + "controls": [ + { + "title_frame": { + "type": "panel", + "size": [ "100%", "100%cm" ], + "controls": [ + { + "title_background": { + "type": "image", + "size": [ "100%sm + 30px", "100%sm + 6px" ], + "texture": "textures/ui/hud_tip_text_background", + "alpha": "@hud.anim_title_background_alpha_in" + } + }, + { + "title": { + "type": "label", + "anchor_from": "top_middle", + "anchor_to": "top_middle", + "color": "$title_command_text_color", + "text": "#text", + "layer": 1, + "localize": false, + "font_size": "extra_large", + "variables": [ + { + "requires": "(not $title_shadow)", + "$show_shadow": false + }, + { + "requires": "$title_shadow", + "$show_shadow": true + } + ], + "shadow": "$show_shadow", + "text_alignment": "center", + "offset": [ 0, 6 ], + "bindings": [ + { + "binding_name": "#hud_title_text_string", + "binding_name_override": "#text", + "binding_type": "global" + }, + { + "binding_type": "view", // 将此设为视图绑定 + "source_property_name": "(not (#text = 'hello world'))", // 当标题文本不等于"hello world"时触发 + "target_property_name": "#visible" // 根据条件覆盖可见性属性 + } + ] + } + } + ] + } + } + ] + } +... +} +``` +::: + +在资源包中使用非侵入式UI文件修改时,应保持如下格式: + +::: code-group +```json [RP/ui/hud_screen.json] +{ + "hud_title_text/title_frame/title": { + "modifications": [ + { + "array_name": "bindings", // 目标数组名 + "operation": "insert_back", // 末尾插入操作 + "value": { // 新增绑定对象 + "binding_type": "view", + "source_property_name": "(not (#text = 'hello world'))", + "target_property_name": "#visible" + } + } + ] + } +} +``` +::: + +下面是一个更复杂的条件渲染示例。16x16的黑色图片仅在标题文本等于"hello world"时显示。虽然在此案例中不需要使用标题工厂(title factory),但如需使用UI动画则建议采用。 + +::: code-group +```json [RP/ui/hud_screen.json] +{ + "black_conditional_image": { + "type": "image", + "texture": "textures/ui/Black", // 黑色纹理 + "size": [16, 16], // 固定尺寸 + "layer": 10, // 较高渲染层级 + "bindings": [ + { + "binding_name": "#hud_title_text_string" // 标题文本绑定 + }, + { + "binding_type": "view", + "source_property_name": "(#hud_title_text_string = 'hello world')", // 条件判断 + "target_property_name": "#visible" // 可见性控制 + } + ] + }, + + "black_conditional_image_factory": { + "type": "panel", + "factory": { + "name": "hud_title_text_factory", // 使用标题工厂 + "control_ids": { + "hud_title_text": "black_conditional_image@hud.black_conditional_image" // 控件ID映射 + } + } + }, + + "root_panel": { + "modifications": [ + { + "array_name": "controls", // 根面板控件数组 + "operation": "insert_front", // 前置插入 + "value": { + "black_conditional_image_factory@hud.black_conditional_image_factory": {} // 工厂实例 + } + } + ] + } +} +``` +::: + +## 字符串格式化 + +使用`%.#s`格式可以从字符串中截取指定长度的部分,其中`#`代表字符数量。示例: + +```json +{ + "label_element": { + "type": "label", + "text": "#text", // 文本绑定 + "layer": 2, + "bindings": [ + { + "binding_type": "global", + "binding_name": "#hud_title_text_string" // 全局标题绑定 + }, + { + "binding_type": "view", + "source_property_name": "('%.3s' * #hud_title_text_string)", // 截取前3个字符 + "target_property_name": "#text" // 输出结果 + } + ] + } +} +``` + +假设变量`"$var": "abcdefghijklmn"`,则: +- `'%.5s' * $var` 返回 `abcde` +- `$var - ('%.7s' * $var)` 返回 `hijklm` + +注意该格式的使用场景较为有限。 + +## 按钮映射 + +`button_mappings`允许重新定义控件输入与按钮行为的对应关系,支持键鼠、触屏和手柄输入。 + +按钮元素配置示例: + +```json +{ + "sample_button@common.button": { + "$pressed_button_name": "button_id", // 按钮ID变量 + "button_mappings": [ + { + "to_button_id": "$pressed_button_name", + "mapping_type": "pressed" // 按压映射 + }, + { + "from_button_id": "button.menu_ok", // 来源按钮 + "to_button_id": "$pressed_button_name", // 目标按钮 + "mapping_type": "focused" // 焦点状态映射 + }, + { + "from_button_id": "button.menu_select", // 选择按钮 + "to_button_id": "$pressed_button_name", + "mapping_type": "pressed" + }, + { + "from_button_id": "button.menu_up", // 上方向键 + "to_button_id": "$pressed_button_name", + "mapping_type": "global" // 全局映射 + } + ] + } +} +``` + +### 映射类型 + +定义按钮映射的作用范围: + +- `focused` - 控件获得焦点时生效 +- `pressed` - 控件被点击/按压时生效 +- `global` - 控件存在时全局生效 + +条件触发示例: +```json +{ + "sample_button@common.button": { + "$pressed_button_name": "button_id", + "button_mappings": [ + // 鼠标悬停时触发 + { + "from_button_id": "button.menu_ok", + "to_button_id": "$pressed_button_name", + "mapping_type": "focused" + }, + // 点击时触发 + { + "from_button_id": "button.menu_select", + "to_button_id": "$pressed_button_name", + "mapping_type": "pressed" + }, + // 全局响应上方向键 + { + "from_button_id": "button.menu_up", + "to_button_id": "$pressed_button_name", + "mapping_type": "global" + } + ] + } +} +``` + +### 常用按钮ID + +**键鼠映射表:** +| 按钮ID | 说明 | +|-----------------------------|---------------| +| `button.menu_select` | 鼠标左键 | +| `button.menu_secondary_select` | 鼠标右键 | +| `button.menu_ok` | 回车键 | +| `button.menu_exit` | ESC键 | +| `button.menu_cancel` | ESC键 | +| `button.menu_up` | 上方向键 | +| `button.menu_down` | 下方向键 | +| `button.menu_left` | 左方向键 | +| `button.menu_right` | 右方向键 | +| `button.menu_autocomplete` | Tab键 | + +**手柄映射表:** +| 按钮ID | 说明 | +|-----------------------------|-------------| +| `button.controller_select` | X/A键 | +| `button.menu_secondary_select` | Y键 | +| `button.menu_exit` | B键 | +| `button.menu_cancel` | B键 | +| `button.menu_up` | 方向键上 | +| `button.menu_down` | 方向键下 | +| `button.menu_left` | 方向键左 | +| `button.menu_right` | 方向键右 | + +建议在设计UI时兼容多种输入设备。 + +## 修改操作 + +使用`modifications`属性可以非侵入式地修改现有JSON UI元素,提升资源包兼容性。 + +| 操作类型 | 描述 | +|------------------|-----------------------| +| `insert_back` | 在数组末尾插入 | +| `insert_front` | 在数组开头插入 | +| `insert_after` | 在目标元素后插入 | +| `insert_before` | 在目标元素前插入 | +| `move_back` | 移动元素到数组末尾 | +| `move_front` | 移动元素到数组开头 | +| `move_after` | 移动元素到目标之后 | +| `move_before` | 移动元素到目标之前 | +| `swap` | 交换两个元素位置 | +| `replace` | 替换目标元素 | +| `remove` | 移除目标元素 | + +### 操作示例 + +#### 首尾操作 +```json +// 在控件列表开头插入新元素 +{ + "array_name": "controls", + "operation": "insert_front", + "value": [{"foo@example.bar": {}}] +} + +// 将现有元素移至末尾 +{ + "array_name": "controls", + "operation": "move_back", + "value": [{"foo@example.bar": {}}] +} +``` + +#### 相对定位操作 +```json +// 在指定绑定后插入新绑定 +{ + "array_name": "bindings", + "operation": "insert_after", + "where": {"binding_name": "#example_binding_2"}, + "value": [{"binding_name": "#my_binding_1"}] +} + +// 移动绑定到指定位置前 +{ + "array_name": "bindings", + "operation": "move_before", + "where": {"binding_name": "#example_binding_1"}, + "target": {"binding_name": "#example_binding_2"} +} +``` + +#### 替换与删除 +```json +// 替换现有绑定 +{ + "array_name": "bindings", + "operation": "replace", + "where": {"binding_name": "#example_binding_1"}, + "value": {"binding_name": "#replacement_binding"} +} + +// 删除指定绑定 +{ + "array_name": "bindings", + "operation": "remove", + "where": {"binding_name": "#example_binding_1"} +} +``` \ No newline at end of file diff --git a/docs/wiki/4-Json-UI/2-巧思案例/add-hud-elements.md b/docs/wiki/4-Json-UI/2-巧思案例/add-hud-elements.md new file mode 100644 index 00000000..8ebaabdb --- /dev/null +++ b/docs/wiki/4-Json-UI/2-巧思案例/add-hud-elements.md @@ -0,0 +1,89 @@ +--- +title: 添加HUD元素 +category: 教程 +tags: + - 初学者 +mentions: + - shanewolf38 + - SmokeyStack +--- + +# 添加HUD元素 + + + +在本教程中,你将学习如何向HUD界面添加元素。 + +## 概述 + +HUD界面在游戏中大部分时间都会显示,为玩家提供关键信息。很多时候你需要在界面上添加元素,比如在完成特定事件后弹出文字、显示玩家体力的耐力条、显示玩家速度的时速表等等! + +要将创建的元素添加到HUD界面,需要使用`modification`参数在`root_panel`中添加新的`control`(界面元素)。Root_panel是一个面板类型的元素,包含了HUD界面上几乎所有显示的元素。 + +## 单个元素添加 + +下面这段代码会在屏幕顶部创建一个显示黑色方块的图像元素,在屏幕右上角创建显示文字"HUD文本"的标签元素,并通过修改`root_panel`将它们添加到HUD界面。 + +::: code-group +```json [RP/ui/hud_screen.json] +"hud_square": { + "type": "image", + "texture": "textures/ui/Black", // 原版纹理 + "anchor_from": "top_middle", + "anchor_to": "top_middle", + "size": [ 64, 64 ], + "offset": [ 0, 4 ] +}, + +"hud_text": { + "type": "label", + "text": "HUD文本", + "anchor_from": "top_right", + "anchor_to": "top_right", + "offset": [ -4, 4 ] +}, + +"root_panel": { + "modifications": [ + { + "array_name": "controls", + "operation": "insert_front", + "value": [ + { "hud_square@hud.hud_square": {} }, + { "hud_text@hud.hud_text": {} } + ] + } + ] +}, +``` + +需要添加到HUD界面上的所有元素都列举在root_panel的`modifications`->`value`部分。在添加元素时使用的命名空间标识(例如`@hud.hud_square`)可以根据实际模块进行调整。比如当`hud_square`元素是创建在`scoreboard`命名空间的scoreboards.json界面文件中时,添加时应使用`@scoreboard.hud_square`。 + +## 组合元素添加 + +出于组织结构考虑,通常不建议将大量元素直接逐个添加到根面板中。以下代码将之前定义的`hud_square`和`hud_text`元素(示例中未展示)包裹在名为`hud_elements_panel`的面板元素中,然后将该面板整体添加到HUD的根面板。最终效果与单个元素添加方式相同。 + +::: code-group +```json [RP/ui/hud_screen.json] +"hud_elements_panel": { + "type": "panel", + "controls": [ + { "hud_square@hud_square": {} }, + { "hud_text@hud_text": {} } + ] +}, + +"root_panel": { + "modifications": [ + { + "array_name": "controls", + "operation": "insert_front", + "value": [ + { "hud_elements_panel@hud.hud_elements_panel": {} } + ] + } + ] +}, +``` + +此处`hud_elements_panel`没有直接定义尺寸参数,因此将继承其父元素(`root_panel`)的尺寸。这使得子元素的锚点定位、百分比尺寸等效果能相对于HUD屏幕进行适配。 \ No newline at end of file diff --git a/docs/wiki/4-Json-UI/2-巧思案例/aseprite-animations.md b/docs/wiki/4-Json-UI/2-巧思案例/aseprite-animations.md new file mode 100644 index 00000000..cc7cd70e --- /dev/null +++ b/docs/wiki/4-Json-UI/2-巧思案例/aseprite-animations.md @@ -0,0 +1,64 @@ +--- +title: Aseprite动画 +category: 教程 +mentions: + - TheDataLioness + - shanewolf38 + - TheItsNameless + - LeGend077 + - stirante +--- + +# Aseprite动画 + + + +## Aseprite简介 + +[Aseprite](https://www.aseprite.org/) 是一款付费像素艺术软件,专门用于轻松创建皮肤和资源包。它提供丰富的工具、详尽的文档和教程,适合不同水平的艺术家使用。 + +[LibreSprite](https://libresprite.github.io/) 是Aseprite的免费开源替代品。它基于Aseprite最后一个开源许可版本进行分支开发,本教程中的操作同样适用于LibreSprite。 + +## 在Aseprite中创建动画 + +假设你有一组按数字1到5顺序命名的"frameimage"系列帧图像。导入第一张图像后,Aseprite会自动识别同名但编号不同的其他图片,将它们按正确顺序排列并创建动画。 + + + +使用`箭头键`在帧间导航,`Enter键`控制动画的播放/暂停。按下`Tab键`可打开时间轴选择单帧,右键点击时间轴上的帧可设置各种参数。 + +通过快捷键`Ctrl + E`或菜单`文件 -> 导出到精灵表`进行导出操作。在输出设置中选择输出文件和JSON数据格式,出现包含哈希(Hash)和数组(Array)两种选项的下拉菜单时,请确保选择数组(Array)模式,否则会导致异常。 + +最终将生成两个文件:SpriteSheet图像和JSON文件。请确保这两个文件主文件名相同且扩展名不同。 + +## 在JSON-UI中使用Aseprite动画 + +`aseprite_flip_book`动画类型专用于`image`类型元素的`uv`属性配置。 + +::: code-group +```json [RP/ui/example_file.json] +{ + "image_element": { // 此处为动画元素 + "type": "image", + "texture": "textures/ui/my_sprite_file", + "uv_size": [32, 32], + "uv": "@example_namespace.image_uv_animation" + }, + + "image_uv_animation": { // 此处为动画控制参数 + "anim_type": "aseprite_flip_book", + "initial_uv": [0, 0] + } +} +``` +::: + +将`texture`字段设置为导出文件的路径(不包含扩展名)。`uv_size`字段应设置为单帧的宽高尺寸。 \ No newline at end of file diff --git a/docs/wiki/4-Json-UI/2-巧思案例/preserve-title-texts.md b/docs/wiki/4-Json-UI/2-巧思案例/preserve-title-texts.md new file mode 100644 index 00000000..a0d71c3e --- /dev/null +++ b/docs/wiki/4-Json-UI/2-巧思案例/preserve-title-texts.md @@ -0,0 +1,78 @@ +--- +title: 保留标题文本 +category: 教程分类 +tags: + - 中级 +mentions: + - shanewolf38 + - SmokeyStack +--- + +# 保留标题文本 + + + +在本教程中,您将学习如何保存绑定数据并根据含有特定字符串的标题更新界面元素。 + +## 概述 + +标题是向UI系统传递数据的常用方法。当标题包含特定字符串时才更新相关数据元素,而忽略所有不含该字符串的标题数据非常有用。尽管本教程以标题为例,但该方法适用于所有通过绑定传递的数据(如副标题、玩家记分板名称等)。 + +要保存特定字符串,我们需要组合使用 `visibility_changed` 绑定更新条件和 `source_control_name`,从而仅在包含特定字符串时更新绑定,并将该绑定传递给另一个元素。 + +## 标题指令 + +以下代码创建了一个标签元素,当将其添加到根面板时,可以在屏幕显示包含字符串"update"的标题(显示文本中会移除"update"部分)。后续传入的标题信息只有包含"update"时才会更新显示文本。 + +::: code-group +```json [RP/ui/hud_screen.json] +"preserved_title_display": { + "$update_string": "update", // 标题必须包含此字符串才触发元素更新 + "type": "label", + "text": "#text", + "controls": [ + { + "data_control": { + "type": "panel", + "size": [ 0, 0 ], + "bindings": [ + { + "binding_name": "#hud_title_text_string" // 读取当前标题字符串 + }, + { + "binding_name": "#hud_title_text_string", + "binding_name_override": "#preserved_text", // 元素可见性变化时更新#preserved_text + "binding_condition": "visibility_changed" + }, + // 当包含更新字符的标题传入后,元素会短暂可见后立即隐藏 + { + "binding_type": "view", + "source_property_name": "(not (#hud_title_text_string = #preserved_text) and not ((#hud_title_text_string - $update_string) = #hud_title_text_string))", + "target_property_name": "#visible" + } + ] + } + } + ], + "bindings": [ + { + "binding_type": "view", + "source_control_name": "data_control", // 从"data_control"子元素读取绑定 + //"resolve_sibling_scope": true, // 当"data_control"与绑定调用元素为同级时需启用 + "source_property_name": "(#preserved_text - $update_string)", // 从显示文本中移除更新字符串 + "target_property_name": "#text" + } + ] +}, +``` + +变量 `$update_string` 定义了触发元素更新的标题必须包含的特定字符串。子元素 `data_control` 用于在标题包含更新字符串时存储标题文本。`data_control` 必须是要传递保留文本元素的子级或同级元素,因为其可见性变化会触发文本保存。该元素的三个绑定分别实现: +1. 首绑定:持续追踪当前标题文本 +2. 次绑定:在元素可见性变化时将当前标题保存至 `#preserved_text` +3. 末绑定:当传入含更新字符串的标题时短暂显示元素后立即隐藏 + +在 `data_control` 元素的第三个绑定中,需同时满足两个条件才可见: +1. `not (#hud_title_text_string = #preserved_text)` - 当前标题与保存标题不一致时成立 +2. `not ((#hud_title_text_string - $update_string)` - 当前标题含有更新字符串时成立 + +当含有更新字符串且与已存文本不同的标题传入时,两条件同时触发,元素更新数据后立即重新隐藏自身。 \ No newline at end of file diff --git a/docs/wiki/4-Json-UI/2-巧思案例/string-to-number.md b/docs/wiki/4-Json-UI/2-巧思案例/string-to-number.md new file mode 100644 index 00000000..5abed0c3 --- /dev/null +++ b/docs/wiki/4-Json-UI/2-巧思案例/string-to-number.md @@ -0,0 +1,80 @@ +--- +title: 字符串转数值 +category: 教程 +tags: + - 中级 +mentions: + - shanewolf38 + - SmokeyStack + - ThomasOrs +--- + +# 字符串转数值 + + + +在本教程中,您将学习如何将数字字符串转换为数值,以及如何将数值转换为文本字符串。 + +## 概述 + +在许多情况下会有文本字符串通过标题、操作栏、记分板或其他来源传递到用户界面中。当我们希望根据输入的字符串动态调整UI元素时,能够进行数字比较就显得非常重要。但类似于"34"或"89"这样的数值型字符串通常会被视为普通文本,既无法与数值进行比较,也难以直接作为运算数据使用。此时我们需要将这类字符串转换为数值。 + +要实现字符串到数值的转换,我们可以利用乘法运算特性。任何包含数字的字符串与数值相乘,或者通过去除字符串中的非数字部分,都能使游戏引擎将该值作为数值而非字符串处理。 + +## 字符串转数值 + +以下代码创建了一个标签元素,当添加到主面板时,可在记分板侧栏的最高分值处于100-999范围内时显示该数值。 + +::: code-group +```json [RP/ui/hud_screen.json] +"string_to_number": { + "type": "label", + "text": "#player_score_sidebar", + "bindings": [ + { + "binding_name": "#player_score_sidebar", + "binding_type": "collection", + "binding_collection_name": "scoreboard_scores" + }, + { + "binding_type": "view", + "source_property_name": "(#player_score_sidebar * 1)", // 将分数从字符串转换为数值 + "target_property_name": "#score" + }, + { + "binding_type": "view", + "source_property_name": "((#score > 99) and (#score < 1000))", // 仅在100-999范围内可见 + "target_property_name": "#visible" + } + ] +} +``` + +第一个绑定从记分板侧栏读取最大数值(该绑定值以字符串形式固定传输),第二个绑定通过将分数乘以1将其转换为数值(也可以通过减法操作去除字符串中的文本),第三个绑定设置元素仅在分数大于99且小于1000时可见。 + +**注意:** 如果需要将数值识别为浮点类型而非整数,可在等式运算中引入浮点变量或绑定,例如除以1.0(必须通过变量或绑定实现——直接插入浮点数无法生效)。这在处理`#clip-ratio`绑定时尤为实用。 + +## 数值转字符串 + +以下代码创建了一个标签元素,当添加到主面板时,可将"Strength: #"格式标题中的数字部分单独显示。 + +::: code-group +```json [RP/ui/hud_screen.json] +"number_to_string": { + "type": "label", + "text": "#text", + "bindings": [ + { + "binding_type": "global", + "binding_name": "#hud_title_text_string" + }, + { + "binding_type": "view", + "source_property_name": "('§z' + (#hud_title_text_string - 'strength: '))", + "target_property_name": "#text" + } + ] +} +``` + +当使用标题、副标题等方式传递包含数字的文本时,此方法可单独显示数值。通过减法运算去除多余文本后,需在数值前添加文本使其转换为字符串类型(`text`参数无法直接读取纯数值型绑定)。此例中的括号并非必需,主要用于区分数值转换操作。添加的`§z`字符是无效的Minecraft格式代码,既不显示也不影响标签颜色参数。若需要去除显示中无法通过减法处理的文本,推荐将元素嵌套在设置`"clips_children": true`和适当尺寸的容器面板中实现遮挡效果。 \ No newline at end of file diff --git a/docs/wiki/4-Json-UI/3-文档/json-ui-documentation.md b/docs/wiki/4-Json-UI/3-文档/json-ui-documentation.md new file mode 100644 index 00000000..ceb888de --- /dev/null +++ b/docs/wiki/4-Json-UI/3-文档/json-ui-documentation.md @@ -0,0 +1,2067 @@ +--- +title: JSON UI Documentation +category: Documentation +nav_order: 1 +mentions: + - KalmeMarq + - SirLich + - solvedDev + - Joelant05 + - GTB3NW + - stirante + - sermah + - MedicalJewel105 + - tinedpakgamer + - LeGend077 + - TheDataLioness + - shanewolf38 + - JosiahDZD + - Tcbdxh + - inotflying + - TheItsNameless + - SmokeyStack + - Gotemba912 +--- + +# JSON UI Documentation + +## UI Elements + +### Element Types + +| Name | Description | Allowed Properties | +| ---------------- | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| panel | A container, like `
` in HTML | [Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout)
[Data Binding](/json-ui/json-ui-documentation#data-binding) | +| stack_panel | Similar to `panel` but stacks its children depending on `orientation` property value | [Stack Panel](/json-ui/json-ui-documentation#stack-panel)
[Collection](/json-ui/json-ui-documentation#collection)
[Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout)
[Data Binding](/json-ui/json-ui-documentation#data-binding) | +| collection_panel | Similar to `stack_panel`, but does not have the `orientation` property | [Collection](/json-ui/json-ui-documentation#collection)
[Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout)
[Data Binding](/json-ui/json-ui-documentation#data-binding) | +| grid | Grid of elements | [Grid](/json-ui/json-ui-documentation#grid)
[Collection](/json-ui/json-ui-documentation#collection)
[Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout)
[Data Binding](/json-ui/json-ui-documentation#data-binding) | +| label | Text element | [Text](/json-ui/json-ui-documentation#text)
[Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout)
[Data Binding](/json-ui/json-ui-documentation#data-binding) | +| image | Sprite element. Draws a texture. | [Sprite](/json-ui/json-ui-documentation#sprite)
[Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout)
[Data Binding](/json-ui/json-ui-documentation#data-binding) | +| input_panel | A `panel` that accepts input | [Input](/json-ui/json-ui-documentation#input)
[Focus](/json-ui/json-ui-documentation#focus)
[Sound](/json-ui/json-ui-documentation#sound)
[Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout)
[Data Binding](/json-ui/json-ui-documentation#data-binding) | +| button | A button and it can have 4 states (default, hover, pressed and locked) | [Button](/json-ui/json-ui-documentation#button)
[Input](/json-ui/json-ui-documentation#input)
[Focus](/json-ui/json-ui-documentation#focus)
[Sound](/json-ui/json-ui-documentation#sound)
[Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout)
[Data Binding](/json-ui/json-ui-documentation#data-binding) | +| toggle | A toggle and it has 2 states (checked or unchecked). Each state has a hover and locked variant | [Toggle](/json-ui/json-ui-documentation#toggle)
[Input](/json-ui/json-ui-documentation#input)
[Focus](/json-ui/json-ui-documentation#focus)
[Sound](/json-ui/json-ui-documentation#sound)
[Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout)
[Data Binding](/json-ui/json-ui-documentation#data-binding) | +| dropdown | A toggle for dropdown purposes | [Dropdown](/json-ui/json-ui-documentation#dropdown)
[Toggle](/json-ui/json-ui-documentation#toggle)
[Input](/json-ui/json-ui-documentation#input)
[Focus](/json-ui/json-ui-documentation#focus)
[Sound](/json-ui/json-ui-documentation#sound)
[Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout)
[Data Binding](/json-ui/json-ui-documentation#data-binding) | +| slider | Range input element | [Slider](/json-ui/json-ui-documentation#slider)
[Input](/json-ui/json-ui-documentation#input)
[Focus](/json-ui/json-ui-documentation#focus)
[Sound](/json-ui/json-ui-documentation#sound)
[Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout)
[Data Binding](/json-ui/json-ui-documentation#data-binding) | +| slider_box | The slider button that you use to change the slider value | [Slider Box](/json-ui/json-ui-documentation#slider-box)
[Input](/json-ui/json-ui-documentation#input)
[Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout)
[Data Binding](/json-ui/json-ui-documentation#data-binding) | +| edit_box | Text field element. By default it's single-lined | [Text Edit](/json-ui/json-ui-documentation#text-edit)
[Button](/json-ui/json-ui-documentation#button)
[Input](/json-ui/json-ui-documentation#input)
[Focus](/json-ui/json-ui-documentation#focus)
[Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout)
[Data Binding](/json-ui/json-ui-documentation#data-binding) | +| scroll_view | Creates a scrolling panel element | [Scroll View](/json-ui/json-ui-documentation#scroll-view)
[Input](/json-ui/json-ui-documentation#input)
[Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout)
[Data Binding](/json-ui/json-ui-documentation#data-binding) | +| scrollbar_track | The scrollbar track | [Input](/json-ui/json-ui-documentation#input)
[Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout) | +| scrollbar_box | The scrollbar "thumb"/button. The draggable scrolling handle. By default is oriented vertically | [Input](/json-ui/json-ui-documentation#input)
[Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout) | +| factory | A element generator | [Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout) | +| screen | Screen element | [Screen](/json-ui/json-ui-documentation#screen) [Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout)
[Data Binding](/json-ui/json-ui-documentation#data-binding) | +| custom | Special renderer element that is created in the code because it's too complex for JSON UI | [Custom Render](/json-ui/json-ui-documentation#custom-render)
[Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout)
[Data Binding](/json-ui/json-ui-documentation#data-binding) | +| selection_wheel | | [Selection Wheel](/json-ui/json-ui-documentation#selection-wheel)
[Input](/json-ui/json-ui-documentation#input)
[Focus](/json-ui/json-ui-documentation#focus)
[Sound](/json-ui/json-ui-documentation#sound)
[Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout)
[Data Binding](/json-ui/json-ui-documentation#data-binding) | + +#### Legacy Element Types (No longer work) + +| Name | Description | Allowed Properties | +| -------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| tab | The way tabs were made before the addition of toggles | [Tab](/json-ui/json-ui-documentation#tab-legacy)
[Button](/json-ui/json-ui-documentation#button)
[Input](/json-ui/json-ui-documentation#input)
[Focus](/json-ui/json-ui-documentation#focus)
[Sound](/json-ui/json-ui-documentation#sound)
[Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout)
[Data Binding](/json-ui/json-ui-documentation#data-binding) | +| carousel_label | | [Carousel Text](/json-ui/json-ui-documentation#carousel-text-legacy)
[Text](/json-ui/json-ui-documentation#text)
[Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout)
[Data Binding](/json-ui/json-ui-documentation#data-binding) | +| grid_item | A `panel` but specifically to be an item/child of a grid | [Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout)
[Data Binding](/json-ui/json-ui-documentation#data-binding) | +| scrollbar | | [Input](/json-ui/json-ui-documentation#input)
[Focus](/json-ui/json-ui-documentation#focus)
[Control](/json-ui/json-ui-documentation#control)
[Layout](/json-ui/json-ui-documentation#layout)
[Data Binding](/json-ui/json-ui-documentation#data-binding) | + +## Properties + +### Control + +| Property Name | Type | Default Value | Description | +| ------------------------- | :------------------: | :-----------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| visible | boolean | `true` | If the UI element should be visible | +| enabled | boolean | `true` | If true and if the UI element or any of its children have the locked state then they will be in the locked | +| layer | int | `0` | Z-Index/Layer (like zindex in CSS) relative to parent element. Higher layers will render above | +| alpha | float | `1.0` | Alpha/transparency of the element. It will only affect the UI element. Its children will be unaffected. If you want the alpha to apply for both the parent and children also use `propagate_alpha` | +| propagate_alpha | boolean | `false` | If `alpha` should not only apply to the parent if possible but also all its children | +| clips_children | boolean | `false` | Cuts off visually and interactively everything beyond the bounderies of the UI element | +| allow_clipping | boolean | `true` | If `clips_children` works in the UI element. Otherwise, it won't have any effect | +| clip_offset | Vector [x, y] | `[0, 0]` | Offset from the start of the clipping | +| clip_state_change_event | string | | | +| enable_scissor_test | boolean | | [https://www.khronos.org/opengl/wiki/Scissor_Test](https://www.khronos.org/opengl/wiki/Scissor_Test) | +| property_bag | object | | [Property bag](/json-ui/json-ui-documentation#property-bag) contains properties/variables that are more related with the data than the actually structure and look of the UI element | +| selected | boolean | | If the text box is selected by default | +| use_child_anchors | boolean | `false` | Use the `anchor_from` and`anchor_to` of the child of the UI element | +| controls | array | | For adding children to the element | +| anims | string[] | | Array of the animation names | +| disable_anim_fast_forward | boolean | | | +| animation_reset_name | string | | | +| ignored | boolean | `false` | If the UI element should be ignored | +| variables | array or object | | A bunch of conditions that change the variables values | +| modifications | array | | Allows to modify the UI files of resource packs below (vanilla being the most bottom one) | +| grid_position | Vector [row, column] | | Position that the control will take inside the grid. This also allows to modify specific grid items of a hardcoded grid | +| collection_index | int | | Index that the control takes in the collection | + +#### Legacy (no longer works) + +| Property Name | Type | Default Value | Description | +| ------------- | :------: | :-----------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| z_order | int | 0 | First version of the `layer` property | +| scroll_report | string[] | | Array of the name of the controls to notify when content inside of the scroll panel changes | +| alignment | enum | | Possible values:
`top_left`
`top_middle`
`top_right`
`left_middle`
`center`
`right_middle`
`bottom_left`
`bottom_middle`
`bottom_right` | + +### Layout + +| Property Name | Type | Default Value | Description | +| -------------------------- | :--------------------: | :----------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| size | Vector [width, height] | `["default", "default"]` | Size of the UI element.
Possible values:
`"default"` (Default value which is `"100%"`)
`0` (Number of pixels)
`"0px"` (Number of pixels. It's the same as 0 but it's put inside a string with px at the end. It's used when you want to sum or subtract a percentage based value with a specific number of pixels. (e.g. `"75% + 12px"`))
`"0%"` (Percentage of relative to the parent element)
`"0%c"` (Percentage of the total width/height of the element children)
`"0%cm"` (Percentage of the width/height of the biggest visible child of that element)
`"0%sm"` (Percentage of the width/height of the sibling element)
`"0%y"` (Percentage of the element height)
`"0%x"` (Percentage of the element width)
`"fill"` (Expands to the remaining width/height of the parent element) | +| max_size | Vector [width, height] | `["default", "default"]` | Maximum size of the UI element can have | +| min_size | Vector [width, height] | `["default", "default"]` | Minimum size of the UI element can have | +| offset | Vector [x, y] | `[0, 0]` | Position of the UI element relative to the parent UI element. It's TopLeft based meaning the coordinates [0, 0] start at the top left of the screen.
`10`- pixels
`"10px"` - pixels
`"50%"` - Width/height of the parent element
`"50%x"` - Width of the element
`"50%y"` - Height of the element | +| anchor_from | enum | `center` | Anchor point in the parent element.
Possible values:
`top_left`
`top_middle`
`top_right`
`left_middle`
`center`
`right_middle`
`bottom_left`
`bottom_middle`
`bottom_right` | +| anchor_to | enum | `center` | Anchor point in the element.
Possible values:
`top_left`
`top_middle`
`top_right`
`left_middle`
`center`
`right_middle`
`bottom_left`
`bottom_middle`
`bottom_right` | +| inherit_max_sibling_width | boolean | `false` | Use the maximum width of the sibling element | +| inherit_max_sibling_height | boolean | `false` | Use the maximum height of the sibling element | +| use_anchored_offset | boolean | | | +| contained | boolean | | | +| draggable | enum | | Makes the element draggable through cursor. The element should be able to accept input in order to be draggable (`input_panel`, `button`, etc.) and must have the required button mappings.
Possible values: `vertical`, `horizontal` and `both` | +| follows_cursor | boolean | `false` | Follows the cursor | + +### Data Binding + +| Property Name | Type | Default Value | Description | +| ------------- | :---------------------------------------------------------------------------------------: | :-----------: | -------------------------------------------------- | +| bindings | Vector of [binding object](/json-ui/json-ui-documentation#data-binding-array-object) | | Bind and work with hardcoded values in the element | + + +#### Data Binding Array Object + +Data Binding allows to bind hardcoded values/variables to an element property. + +| Property Name | Type | Default Value | Description | +| ------------------------- | :-----: | :-----------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ignored | boolean | `false` | If binding should be ignored | +| binding_type | enum | | Possible values:
`global`
`view`
`collection`
`collection_details`
`none` | +| binding_name | string | | Stores the value of the data binding name or condition with it | +| binding_name_override | string | | Name of the UI element property that will apply the stored value in `binding_name` | +| binding_collection_name | string | | Name of the collection of items to be used | +| binding_collection_prefix | string | | | +| binding_condition | enum | | Condition for the data binding to happen.
Possible values:
`always`
`always_when_visible`
`visible`
`once`
`none`
`visibility_changed` | +| source_control_name | string | | Name of the UI element to observe its property values | +| source_property_name | string | | Store the value of the property value of the UI element refered in `source_control_name` | +| target_property_name | string | | The UI element property that the stored value in `source_property_name` will be applied to | +| resolve_sibling_scope | boolean | | If `true`, allows the selection of a sibling element in the same control instead of its child, for `source_control_name` | + +### Stack Panel + +| Property Name | Type | Default Value | Description | +| ------------- | :---: | :-----------: | ---------------------------------------------------------------------------------------------------------- | +| orientation | enum | `vertical` | Direction the elements stack inside `stack_panel`.
Possible values:
`vertical`
`horizontal` | + +### Grid + +| Property Name | Type | Default Value | Description | +| ------------------------- | :--------------------: | ------------- | ----------------------------------------------------------------------------------------------------------------------------------- | +| grid_dimensions | Vector [rows, columns] | | Number of columns and rows the grid has | +| maximum_grid_items | int | | Maximum number of items the grid will generate | +| grid_dimension_binding | string | | Binding name for grid dimensions | +| grid_rescaling_type | enum | | Grid rescaling orientation.
Possible values:
`vertical`
`horizontal`
`none` | +| grid_fill_direction | enum | | Possible values:
`vertical`
`horizontal`
`none` | +| grid_item_template | string | | An element capable of handling collections
(e.g. `"common.container_item"`, `"container_items"`, `"inventory_items"` and etc.) | +| precached_grid_item_count | int | | | + +### Text + +| Property Name | Type | Default Value | Description | +| ----------------------- | :--------------: | :---------------: | --------------------------------------------------------------------------------------------------------------------- | +| text | string | | Text content | +| color | Vector [r, g, b] | `[1.0, 1.0, 1.0]` | Text color. RGB value from 0.0 to 1.0 | +| locked_color | Vector [r, g, b] | | Text color when a parent has `enabled: false` | +| shadow | boolean | `false` | Text shadow | +| hide_hyphen | boolean | `false` | Hide hyphen caused by word breaking | +| notify_on_ellipses | string[] | | Array of names of the controls to notify when text gets or loses ellipses | +| enable_profanity_filter | boolean | `false` | If "bad" words should be censored | +| locked_alpha | float | | Alpha/transparency of label when a parent has `enabled: false` | +| font_size | enum | `normal` | Size of the text.
Possible values:
`small`
`normal`
`large`
`extra_large` | +| font_scale_factor | float | `1.0` | Scale of the text | +| localize | boolean | `false` | If ```text``` should be able to be translated | +| line_padding | number | | Space between lines | +| font_type | enum | `default` | Font of the text.
Possible values:
`default`
`rune`
`unicode`
`smooth`
`MinecraftTen`
or any other custom font | +| backup_font_type | enum | `default` | Font used if `font_type` didn't work | +| text_alignment | enum | | Text alignment direction. If it's not defined it will adjust automatically based on `anchor_from` and ```anchor_to``` | + +#### Legacy (no longer works) + +| Property Name | Type | Default Value | Description | +| ------------- | :-----: | :-----------: | ------------------------------------------------------------------- | +| wrap | boolean | `false` | Break text into lines if text is bigger than width of the element | +| clip | boolean | `false` | | + +
+ +Use of `notify_on_ellipses`. Mostly used with hardcoded texts. + +RP/ui/example_file.json + +```json +{ + "label": { + ... + "notify_on_ellipses": [ + "my_button" + ] + }, + + "my_button": { + ... + "bindings": [ + { + "binding_type": "view", + "source_property_name": "#using_ellipses", + "target_property_name": "#visible" + } + ] + } +} +``` + +### Sprite + +| Property Name | Type | Default Value | Description | +| --------------------------- | :-------------------------------------------: | :-----------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| texture | string | | Image path starting from pack root. (e.g. `"textures/ui/White"`) | +| allow_debug_missing_texture | boolean | `true` | Display the missing_texture if the texture is not found | +| uv | Vector [u, v] | | Start position of the texture mapping | +| uv_size | Vector [width, height] | | Size of the texture mapping | +| texture_file_system | string |`InUserPackage`| Source to get the texture.
Possible values:
`InUserPackage`
`InAppPackage`
`RawPath`
`RawPersistent`
`InSettingsDir`
`InExternalDir`
`InServerPackage`
`InDataDir`
`InUserDir`
`InWorldDir`
`StoreCache`
Usage is Unknown | +| nineslice_size | int, Vector [x, y] or Vector [x0, y0, x1, y1] | | 9-slice. A method that divides an texture into 9 pieces. When resized the corners will stay in place and the rest will stretch | +| tiled | boolean or enum | | If the texture will tile when the size of the UI element is bigger than the texture size.
Possible values:
`true`/`false`
`x`
`y` | +| tiled_scale | Vector [sX, sY] | `false` | Scale of the tile textures | +| clip_direction | enum | | Start point position for the `clip_ratio`. If `down`, the image will begin to appear from the bottom.
Possible values:
`left`
`right`
`up`
`down`
`center` | +| clip_ratio | float | | How much to clip. From 0.0 to 1.0 | +| clip_pixelperfect | boolean | | If the clip should try to be the most pixel accurate possible | +| keep_ratio | boolean | `true` | Keep ratio when resizing image | +| bilinear | boolean | `false` | Use the bilinear function when resizing the image | +| fill | boolean | `false` | Scratch the image to the size | +| $fit_to_width | boolean | | | +| zip_folder | string | | | +| grayscale | boolean | `false` | Render image in black and white | +| force_texture_reload | boolean | | Reload image when the texture path is changed | +| base_size | Vector [width, height] | | | + +To use clipping, bind a `#*_ratio` binding name to a `#clip-ratio` property with binding condition `"always"`. Progress arrow and fuel images in furnace UI work like this. + +### Input + +| Property Name | Type | Default Value | Description | +| ---------------------------------- | :-----------------------------------------------------------------------------------------: | :-----------: | ----------- | +| button_mappings | Vector of [mapping object](/json-ui/json-ui-documentation#button-mapping-array-object) | | | +| modal | boolean | | | +| inline_modal | boolean | | | +| always_listen_to_input | boolean | | | +| always_handle_pointer | boolean | | | +| always_handle_controller_direction | boolean | | | +| hover_enabled | boolean | | | +| prevent_touch_input | boolean | | | +| consume_event | boolean | | | +| consume_hover_events | boolean | | | +| gesture_tracking_button | string | | | + +#### Button Mapping Array Object + +| Property Name | Type | Default Value | Description | +| -------------------------------- | :-----: | :-----------: | ---------------------------------------------------------------------------------- | +| ignored | boolean | `false` | If mapping should be ignored | +| from_button_id | string | | ID of the action that fires the event | +| to_button_id | string | | ID of the action to be executed when event is fired | +| mapping_type | enum | | Possible values:
`global`
`pressed`
`double_pressed`
`focused` | +| scope | enum | | Possible values:
`view`
`controller` | +| input_mode_condition | enum | | Possible values:
`not_gaze`
`not_gamepad`
`gamepad_and_not_gaze` | +| ignore_input_scope | boolean | | | +| consume_event | boolean | | | +| handle_select | boolean | | | +| handle_deselect | boolean | | | +| button_up_right_of_first_refusal | boolean | | | + +### Focus + +| Property Name | Type | Default Value | Description | +| ---------------------------- | :-----------------------------------------------------------------------------------------------------------: | :-----------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| default_focus_precedence | int | | | +| focus_enabled | boolean | | If the arrow keys or controller can focus the element | +| focus_wrap_enabled | boolean | | | +| focus_magnet_enabled | boolean | | | +| focus_identifier | string | | Focus identifier for this element | +| focus_change_down | string | | Identifier (`focus_identifier`) of the focusable element that will recieve focus when on button.menu_down. If you want to prevent the focus to escape from the bottom use `FOCUS_OVERRIDE_STOP` | +| focus_change_up | string | | Identifier (`focus_identifier`) of the focusable element that will recieve focus when on button.menu_up. If you want to prevent the focus to escape from the top use `FOCUS_OVERRIDE_STOP` | +| focus_change_left | string | | Identifier (`focus_identifier`) of the focusable element that will recieve focus when on button.menu_left. If you want to prevent the focus to escape from the left use `FOCUS_OVERRIDE_STOP` | +| focus_change_right | string | | Identifier (`focus_identifier`) of the focusable element that will recieve focus when on button.menu_right. If you want to prevent the focus to escape from the right use `FOCUS_OVERRIDE_STOP` | +| focus_mapping | array | | | +| focus_container | boolean | | | +| use_last_focus | boolean | | | +| focus_navigation_mode_left | enum | | Possible values: `none`
`stop`
`custom`
`contained` | +| focus_navigation_mode_right | enum | | Possible values: `none`
`stop`
`custom`
`contained` | +| focus_navigation_mode_down | enum | | Possible values: `none`
`stop`
`custom`
`contained` | +| focus_navigation_mode_up | enum | | Possible values: `none`
`stop`
`custom`
`contained` | +| focus_container_custom_left | Vector of [focus container custom object](/json-ui/json-ui-documentation#focus-container-custom-array-object) | | | +| focus_container_custom_right | Vector of [focus container custom object](/json-ui/json-ui-documentation#focus-container-custom-array-object) | | | +| focus_container_custom_down | Vector of [focus container custom object](/json-ui/json-ui-documentation#focus-container-custom-array-object) | | | +| focus_container_custom_up | Vector of [focus container custom object](/json-ui/json-ui-documentation#focus-container-custom-array-object) | | | + + +#### Focus Container Custom Array Object + +| Property Name | Type | Description | +| -------------------------- | :----: | ------------------------------------------------------------------------------------------------------------------------------ | +| other_focus_container_name | string | Name of the UI control that will receive focus when on button.menu_left, button.menu_right, button.menu_up or button.menu_down | +| focus_id_inside | string | Identifier (`focus_identifier`) of the focusable child control of the `other_focus_container_name` that will recieve the focus | + +RP/ui/example_file.json + +```json +... +{ + "other_panel": { + ... + "focus_container": true, + "controls": [ + ... + ] + } +}, +{ + "input_panel": { + ... + "focus_container_custom_up": [ + { + "other_focus_container_name": "other_panel" // name of the object that will receive focus when the focus of this container ends on `button.menu_up` + } + ] + } +} +... +``` + +### Button + +| Property Name | Type | Default Value | Description | +| --------------- | :----: | :-----------: | -------------------------------------------------------------------------- | +| default_control | string | | Name of the child control that will be displayed only in the default state | +| hover_control | string | | Name of the child control that will be displayed only in the hover state | +| pressed_control | string | | Name of the child control that will be displayed only in the pressed state | +| locked_control | string | | Name of the child control that will be displayed only in the locked state | + +### Toggle + +| Property Name | Type | Default Value | Description | +| ------------------------------ | :-----: | :-----------: | ----------------------------------------------------------------------------------------- | +| radio_toggle_group | boolean | | | +| toggle_name | string | | Identifier for the toggle group it belongs to. It can be a custom one. | +| toggle_default_state | boolean | | | +| toggle_group_forced_index | int | | Index of the toggle in its group | +| toggle_group_default_selected | int | | Index of the default toggle of the its group | +| reset_on_focus_lost | boolean | | | +| toggle_on_hover | string | | | +| toggle_on_button | string | | | +| toggle_off_button | string | | | +| enable_directional_toggling | boolean | | | +| toggle_grid_collection_name | string | | Name of the collection the toggle belongs to | +| checked_control | string | | Name of the child control that will be displayed only in the checked state | +| unchecked_control | string | | Name of the child control that will be displayed only in the unchecked state | +| checked_hover_control | string | | Name of the child control that will be displayed only in the checked hover state | +| unchecked_hover_control | string | | Name of the child control that will be displayed only in the unchecked hover state | +| checked_locked_control | string | | Name of the child control that will be displayed only in the checked locked state | +| unchecked_locked_control | string | | Name of the child control that will be displayed only in the unchecked locked state | +| checked_locked_hover_control | string | | Name of the child control that will be displayed only in the checked locked hover state | +| unchecked_locked_hover_control | string | | Name of the child control that will be displayed only in the unchecked locked hover state | +### HardCoded Toggles + +In some screens,navigation tab group has its mapping default selected tabs,such as settings or inventory. +I guess these values are right. +```json +$search_index - $construction_index +$survival_layout_index - $construction_index +$recipe_book_layout_index - $equipment_index +$creative_layout_index - $items_index +`````` +And there are some must toggles in setting and inventory,even though you can not get a warning without dev version and open the assert diagnosis,they exactly esist and controlled by a function called *ScreenView::_passViewCommand::::()::::operator()*,when you totally modify these screens,you may meet this assertion. + +For example,in setting that is accessibility and in inventory,the construction,equipment,items and nature tabs are must. +### Dropdown + +| Property Name | Type | Default Value | Description | +| ------------------------ | :----: | :-----------: | -------------------------------------------------------------------- | +| dropdown_name | string | | Identifier for the dropdown | +| dropdown_content_control | string | | Name of the child control that will behave as the root content panel | +| dropdown_area | string | | Name of the child control that will behave as the inside content | + +### Sound + +| Property Name | Type | Description | +| ------------- | :------------------------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------- | +| sound_name | string | Name of the sound defined in the `RP/sounds/sound_definitions.json` file that plays when the pressed event is fired | +| sound_volume | float | Volume of the sound | +| sound_pitch | float | Pitch of the sound | +| sounds | Vector of [sound object](/json-ui/json-ui-documentation#sound-array-object) | Array of the sounds to play when the pressed event is fired | + +#### Sound Array Object + +| Property Name | Type | Description | +| ------------------------- | :----: | ------------------------------------------------------------------------------------------------------------------- | +| sound_name | string | Name of the sound defined in the `RP/sounds/sound_definitions.json` file that plays when the pressed event is fired | +| sound_volume | float | Volume of the sound | +| sound_pitch | float | Pitch of the sound | +| min_seconds_between_plays | float | Seconds of wait before the sound can be played again | + + +### Collection + +| Property Name | Type | Description | +| --------------- | :----: | --------------------------------- | +| collection_name | string | Name of the collection to be used | + +### Text Edit + +| Property Name | Type | Default Value | Description | +| ---------------------------------- | :-----: | :-----------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| text_box_name | string | | Identifier for text box | +| text_edit_box_grid_collection_name | string | | Name of the collection the `edit_box` belongs to | +| constrain_to_rect | boolean | | | +| enabled_newline | boolean | | Allows multiline text | +| text_type | enum | | Type of characters that the user is allowed to type in th text field.
Possible values:
`ExtendedASCII`
`IdentifierChars`
`NumberChars` | +| max_length | int | | Maximum number of characters allow in the text field | +| text_control | string | | Name of the child control that will be used for displaying the text | +| place_holder_control | string | | Name of the child control that will be used for display the placeholder text | +| can_be_deselected | boolean | | | +| always_listening | boolean | | | +| virtual_keyboard_buffer_control | string | | | + +### Slider + +| Property Name | Type | Default Value | Description | +| ---------------------------- | :-----: | :-----------: | ------------------------------------------------------------------------------------------------------------ | +| slider_track_button | string | | ID of the action for the slider track | +| slider_small_decrease_button | string | | ID of the action for the decrease slider | +| slider_small_increase_button | string | | ID of the action for the increase slider | +| slider_steps | int | | nHow many steps (or values) does the slider have | +| slider_direction | enum | | Orientation of the slider movement.
Possible values:
`vertical`
`horizontal` | +| slider_timeout | number | | | +| slider_collection_name | string | | Name of the collection the slider belongs to | +| slider_name | string | | Identifier for the slider | +| slider_select_on_hover | boolean | | Focus slider when it's hovered | +| slider_selected_button | string | | ID of the action for when the slider is selected | +| slider_deselected_button | string | | ID of the action for when the slider is deselected | +| slider_box_control | string | | Name of the child control that will behave as the slider thumb | +| background_control | string | | Name of the child control that will behave as the slider background | +| background_hover_control | string | | Name of the child control that will behave as the slider background on hover | +| progress_control | string | | Name of the child control that will behave as the slider background overlay for the slider progress | +| progress_hover_control | string | | Name of the child control that will behave as the slider background overlay for the slider progress on hover | + +### Slider Box + +| Property Name | Type | Default Value | Description | +| --------------- | :----: | :-----------: | --------------------------------------------------------------------- | +| default_control | string | | Name of the child control that will be displayed in the default state | +| hover_control | string | | Name of the child control that will be displayed in the hover state | +| locked_control | string | | Name of the child control that will be displayed in the locked state | + +### Scroll View + +| Property Name | Type | Default Value | Description | +| -------------------------- | :-----: | :-----------: | ------------------------------------------------------------------------------------------------- | +| scrollbar_track_button | string | | ID of the action for the track button | +| scrollbar_touch_button | string | | ID of the action for the touch input | +| scroll_speed | number | | Scrolling speed | +| gesture_control_enabled | boolean | | | +| always_handle_scrolling | boolean | | | +| touch_mode | boolean | | | +| scrollbar_box | string | | Name of child UI element or nested UI element that will behave as the scrollbar thumb. | +| scrollbar_track | string | | Name of child UI element or nested UI element that will behave as the scrollbar track | +| scroll_view_port | string | | Name of child UI element that will behave as the view port | +| scroll_content | string | | Name of child UI element that will behave as the content root parent | +| scroll_box_and_track_panel | string | | Name of child UI element that will contain the scrollbox and track controls | +| jump_to_bottom_on_update | boolean | | Jump to the bottom when the scrolling panel has an update. For example, adds more children to it. | + +### Custom Render + +| Property Name | Type | Description | +| ------------- | :---: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| renderer | enum | Possible values:
`hover_text_renderer`
`3d_structure_renderer`
`splash_text_renderer`
`ui_holo_cursor`
`trial_time_renderer`
`panorama_renderer`
`actor_portrait_renderer`
`banner_pattern_renderer`
`live_player_renderer`
`web_view_renderer`
`hunger_renderer`
`bubbles_renderer`
`mob_effects_renderer`
`cursor_renderer`
`progress_indicator_renderer`
`camera_renderer`
`horse_jump_renderer`
`armor_renderer`
`horse_heart_renderer`
`heart_renderer`
`hotbar_cooldown_renderer`
`hotbar_renderer`
`hud_player_renderer`
`live_horse_renderer`
`holographic_postrenderer`
`enchanting_book_renderer`
`debug_screen_renderer`
`gradient_renderer`
`paper_doll_renderer`
`name_tag_renderer`
`flying_item_renderer`
`inventory_item_renderer`
`credits_renderer`
`vignette_renderer`
`progress_bar_renderer`
`debug_overlay_renderer`
`background_renderer`
`bohr_model_renderer`
`experience_renderer` (Legacy, no longer works)
`menu_background_renderer` (Legacy, no longer works) | + + +#### Renderers + +| Renderer Name | Description | +| ----------------------------- | -------------------------------------------------------------------------------------------------------------- | +| `flying_item_renderer` | The flying item when you change an item from a slot to another | +| `inventory_item_renderer` | Renders an item icon. It only work in screens when ingame | +| `credits_renderer` | The credits and end poem | +| `vignette_renderer` | A vignette | +| `name_tag_renderer` | It's something like the playername above the player head or the name above animals when used a nametag on them | +| `paper_doll_renderer` | A skin model | +| `debug_screen_renderer` | The debug text that appears on the beta/preview versions | +| `enchanting_book_renderer` | The enchantment table book. It opens when there's an item to be enchanted | +| `gradient_renderer` | Draws a gradient | +| `live_horse_renderer` | The horse/donkey/llama... model | +| `live_player_renderer` | The player model | +| `hud_player_renderer` | The player model that imitates what the player is doing | +| `hotbar_renderer` | Gets the hotbar slot image for each slot | +| `hotbar_cooldown_renderer` | Draws the item cooldown | +| `heart_renderer` | Draws the player health | +| `horse_heart_renderer` | Draws the horse/donkey/... health | +| `armor_renderer` | Draws the player armor | +| `horse_jump_renderer` | Draws the horse jumping progress bar | +| `hunger_renderer` | Draws the player hunger | +| `bubbles_renderer` | Draws the respiration bubbles | +| `mob_effects_renderer` | Draws the effects that are applied to the player | +| `cursor_renderer` | Draws the crosshair in the center of the screen | +| `progress_indicator_renderer` | Not used | +| `camera_renderer` | Used for the camera item | +| `web_view_renderer` | Shows a website view | +| `banner_pattern_renderer` | Renders a banner | +| `actor_portrait_renderer` | Draws an portrait | +| `trial_time_renderer` | In the trial version of the game it renders the time left to be able to use the world | +| `progress_bar_renderer` | Draws a progress bar. It has more than one type | +| `3d_structure_renderer` | Renders the structure block structure | +| `splash_text_renderer` | Gets and renders a random splash text from the `splashes.json` file | +| `hover_text_renderer` | Draws a tooltip | +| `ui_holo_cursor` | | +| `panorama_renderer` | It's not the panoramas that appear behind the menus. It's the panorama of the worlds on the store. | + + +#### Specific Properties + +| Property Name | Type | Renderer | Description | +| -------------------- | :-----------------: | --------------------------------------------- | ------------------------------------------------------------- | +| gradient_direction | enum | `gradient_renderer` | Possible values:
`vertical`
`horizontal` | +| color1 | Vector [r, g, b, a] | `gradient_renderer` | | +| color2 | Vector [r, g, b, a] | `gradient_renderer` | | +| text_color | Vector [r, g, b, a] | `name_tag_renderer` | | +| background_color | Vector [r, g, b, a] | `name_tag_renderer` | | +| primary_color | Vector [r, g, b, a] | `progress_bar_renderer` | | +| secondary_color | Vector [r, g, b, a] | `progress_bar_renderer` | | +| camera_tilt_degrees | number | `paper_doll_renderer` | | +| starting_rotation | number | `paper_doll_renderer` | | +| use_selected_skin | boolean | `paper_doll_renderer` | | +| use_uuid | boolean | `paper_doll_renderer` | | +| use_skin_gui_scale | boolean | `paper_doll_renderer` | | +| use_player_paperdoll | boolean | `paper_doll_renderer` | | +| rotation | enum | `paper_doll_renderer` and `panorama_renderer` | Possible values:
`auto`
`gesture_x`
`custom_y` | +| end_event | string | `credits_renderer` | | + +### Screen + +| Property Name | Type | Description | +| ----------------------------------- | :-----: | ------------------------------------------------------------------------- | +| render_only_when_topmost | boolean | Only render the screen if it's the most top screen in the screen stack | +| screen_not_flushable | boolean | | +| always_accepts_input | boolean | | +| render_game_behind | boolean | Doesn't prevent screen below of being able to receive input from the user | +| absorbs_input | boolean | | +| is_showing_menu | boolean | | +| is_modal | boolean | It's a screen modal | +| should_steal_mouse | boolean | Captures the cursor and hides it | +| low_frequency_rendering | boolean | Uses less memory to render the screen | +| screen_draws_last | boolean | It's the last screen to be drawn/rendered | +| vr_mode | boolean | | +| force_render_below | boolean | Renders bottom screens below current screen in the screen stack | +| send_telemetry | boolean | | +| close_on_player_hurt | boolean | Close the screen is the player takes damage | +| cache_screen | boolean | | +| load_screen_immediately | boolean | | +| gamepad_cursor | boolean | | +| gamepad_cursor_deflection_mode | boolean | | +| should_be_skipped_during_automation | boolean | | + +### Selection Wheel + +| Property Name | Type | Description | +| ------------------------- | :------: | ----------- | +| inner_radius | number | | +| outer_radius | number | | +| state_controls | string[] | | +| slice_count | integer | | +| button_name | string | | +| iterate_left_button_name | string | | +| iterate_right_button_name | string | | +| initial_button_slice | integer | | + +### TTS +| Property Name | Type | Description | +| ----------------------------------- | :-----: | ------------------------------------------------------------------------------------------ | +| tts_name | string | | +| tts_control_header | string | | +| tts_section_header | string | | +| tts_control_type_order_priority | integer | | +| tts_index_priority | integer | | +| tts_toggle_on | string | Use by the `toggle` type | +| tts_toggle_off | string | Use by the `toggle` type | +| tts_override_control_value | string | | +| tts_inherit_siblings | boolean | | +| tts_value_changed | string | | +| ttsSectionContainer | boolean | | +| tts_ignore_count | boolean | | +| tts_skip_message | boolean | | +| tts_value_order_priority | integer | | +| tts_play_on_unchanged_focus_control | boolean | | +| tts_ignore_subsections | boolean | | +| text_tts | string | | +| use_priority | boolean | If the `priority` property will be use to determine the TTS priority of each child control | +| priority | boolean | Order/index of priority that the element has on TTS | + +### Tab (Legacy) + +| Property Name | Type | Default Value | Description | +| ------------- | :----: | :-----------: | --------------------------------------------------------- | +| tab_index | int | | ID of tab in its group | +| tab_group | int | | ID of the group the tab belongs to | +| tab_control | string | | Name of the control that will show when the tab is active | + +### Carousel Text (Legacy) + +| Property Name | Type | Default Value | Description | +| ------------- | :------------------: | :-----------: | ------------------------------- | +| always_rotate | boolean | | | +| rotate_speed | number | | | +| hover_color | Vector [r, g, b, a], | | `color` when element is hovered | +| hover_alpha | float | | `alpha` when element is hovered | +| pressed_color | Vector [r, g, b, a], | | `color` when element is pressed | +| pressed_alpha | float | | `alpha` when element is pressed | + +## Properties Additional Information + +### Anchor Properties + +Anchors allows the elements to align to a certain point where position, size, scale, animations, etc will take as the point for transformation. +In JSON UI, there's two properties `anchor_from` and `anchor_to` that together achieve this. + +Most people use them by giving them the same value: + +RP/ui/example_file.json + +```json +{ + "element": { + "anchor_from": "top_left", + "anchor_to": "top_left" + } +} +``` + + + +However, what happens when they have different values? Let's look at happens when `anchor_from: center` and `anchor_from: top_left`. It's the best example to demonstrate what's really happening. + +RP/ui/example_file.json + +```json +{ + "element": { + "anchor_from": "center", + "anchor_to": "top_left" + } +} +``` + + + +The top left point of the element is in the center point of the parent element. + +Another example: + + + +The blue box top left point is in the top middle point of the parent element. As for the black box, the right midde point is in the center of the parent. + + +Basically `anchor_to` is the anchor point in the element that will be attached to the `anchor_from` in the parent element. + +### Variables Property + +| Name | Type | Description | +| ---------- | :----: | ----------- | +| `requires` | string | condition | + +
+ +If you only have one variable to use, you should just use `"variables": {}` + +RP/ui/example_file.json + +```json +{ + "element": { + ... + "size": "$el_size", + "$el_size|default": ["100%", 20], + "variables": { + "requires": "$var_condition", + "$el_size": ["100%", 30] + } + } +} +``` + +If you have multiple variables use `"variables": [{}]` + +RP/ui/example_file.json + +```json +{ + "element": { + ... + "size": "$el_size", + "offset": "$el_offset", + "$el_offset|default": [0, 40], + "$el_size|default": ["100%", 20], + "variables": [ + { + "requires": "$var_condition", + "$el_size": ["100%", 30] + }, + { + "requires": "$other_var_condition", + "$el_offset": [0, 15], + "$el_size": ["90%", 35] + } + ] + } +} +``` + +## Property Bag + +| Name | Type | Requirements | Description | +| ---------------------------------- | :-----------------: | ---------------------------------------------------- | --------------------------------------------------------------- | +| #filtered_light_multiplier | float | type[custom]
renderer[inventory_item_renderer] | | +| #banner_patterns | string | type[custom]
renderer[inventory_item_renderer] | | +| #banner_colors | string | type[custom]
renderer[inventory_item_renderer] | | +| #item_id_aux | int | type[custom]
renderer[inventory_item_renderer] | | +| #item_custom_color | int | type[custom]
renderer[inventory_item_renderer] | | +| #disabled_filter_visible | boolean | type[custom]
renderer[inventory_item_renderer] | | +| #item_pickup_time | float | type[custom]
renderer[inventory_item_renderer] | | +| #look_at_cursor | boolean | type[custom]
renderer[hud_player_renderer] | | +| entity_type | enum | type[custom]
renderer[paper_doll_renderer] | Possible values:
`player`
`npc` | +| #skin_idx | int | type[custom]
renderer[paper_doll_renderer] | | +| #player_uuid | string | type[custom]
renderer[paper_doll_renderer] | | +| #skin_rotation | boolean | type[custom]
renderer[paper_doll_renderer] | | +| #custom_rot_y | float | type[custom]
renderer[paper_doll_renderer] | | +| #gesture_delta_source | string | type[custom]
renderer[paper_doll_renderer] | | +| #gesture_mouse_delta_x | string | type[custom]
renderer[paper_doll_renderer] | | +| #pack_id | int | type[custom]
renderer[paper_doll_renderer] | | +| #force_skin_update | string | type[custom]
renderer[paper_doll_renderer] | | +| #progress_bar_visible | boolean | type[custom]
renderer[paper_doll_renderer] | | +| #progress_bar_total_amount | float | type[custom]
renderer[progress_bar_renderer] | | +| #progress_bar_current_amount | float | type[custom]
renderer[progress_bar_renderer] | | +| is_durability | boolean | type[custom]
renderer[progress_bar_renderer] | | +| round_value | boolean | type[custom]
renderer[progress_bar_renderer] | | +| #hover_text | string | type[custom]
renderer[hover_text_renderer] | | +| #open | boolean | type[custom]
renderer[enchanting_book_renderer] | | +| flying_item_count | int | type[custom]
renderer[flying_item_renderer] | | +| flying_item_id_aux | int | type[custom]
renderer[flying_item_renderer] | | +| flying_item_custom_color | int | type[custom]
renderer[flying_item_renderer] | | +| flying_item_origin_position_x | float | type[custom]
renderer[flying_item_renderer] | | +| flying_item_origin_position_y | float | type[custom]
renderer[flying_item_renderer] | | +| flying_item_origin_scale | float | type[custom]
renderer[flying_item_renderer] | | +| flying_item_destination_position_x | float | type[custom]
renderer[flying_item_renderer] | | +| flying_item_destination_position_y | float | type[custom]
renderer[flying_item_renderer] | | +| flying_item_destination_scale | float | type[custom]
renderer[flying_item_renderer] | | +| flying_item_banner_patterns | string | type[custom]
renderer[flying_item_renderer] | | +| flying_item_banner_colors | string | type[custom]
renderer[flying_item_renderer] | | +| #use_heart_offset | boolean | type[custom]
renderer[armor_renderer] | | +| opacity_override | float | type[custom]
renderer[vignette_renderer] | | +| #playername | string | type[custom]
renderer[name_tag_renderer] | | +| #x_padding | number | type[custom]
renderer[name_tag_renderer] | | +| #entity_id | string or int | type[custom]
renderer[live_horse_renderer] | | +| #hyperlink | string | type[button] | | +| #anchored_offset_value_x | number | `use_anchored_offset` property | | +| #anchored_offset_value_y | number | `use_anchored_offset` property | | +| #size_binding_x | number | `use_anchored_offset` property | | +| #size_binding_y | number | `use_anchored_offset` property | | +| #has_focus | boolean | type[custom]
renderer[3d_structure_renderer] | | +| #block_position | Vector [x, y, z] | type[custom]
renderer[3d_structure_renderer] | | +| #top_right_block | Vector [x, y, z] | type[custom]
renderer[3d_structure_renderer] | | +| #bottom_left_block | Vector [x, y, z] | type[custom]
renderer[3d_structure_renderer] | | +| #include_entities | boolean | type[custom]
renderer[3d_structure_renderer] | | +| #remove_blocks | boolean | type[custom]
renderer[3d_structure_renderer] | | +| #include_players | boolean | type[custom]
renderer[3d_structure_renderer] | | +| #slider_steps | number | type[slider] | | +| #slider_value | number | type[slider] | | +| #property_field | string | type[edit_box] | | +| #hover_slice | int | type[selection_wheel] | | +| #toggle_state | boolean | type[toggle] | | +| #start_selected | boolean | | | +| #tts_dialog_title | string | | | +| #tts_dialog_body | string | | | +| force_update | boolean | | | +| #sub_command | string | | | +| #panel_title | string | | | +| #index | int | | | +| #collection_prefix | string | | | +| #collection_name | string | | | +| #visible | boolean | | | +| #common | Vector [r, g, b, a] | | | +| #uncommon | Vector [r, g, b, a] | | | +| #rare | Vector [r, g, b, a] | | | +| #epic | Vector [r, g, b, a] | | | +| #legendary | Vector [r, g, b, a] | | | +| reset_group | enum | | Possible values:
`video`
`audio`
`accessibility` | +| #text | string | | | +| timer_duration | number | | | +| #should_host | boolean | | | +| is_local | boolean | | | +| #is_left | boolean | | | +| #is_skins | boolean | | | +| #is_featured | boolean | | | +| #image_name | string | | | +| #is_dropdown | boolean | | | +| #timer_field_count_to_show | number | | | +| #owned_incompatible_prompt_color | Vector [r, g, b] | | | +| #modal_title_text | string | | | +| #modal_label_text | string | | | +| #buttons_visible | boolean | | | +| #no_buttons_visible | boolean | | | +| #single_button_visible | boolean | | | +| #two_buttons_visible | boolean | | | +| is_fixed_inventory | boolean | | | +| experimental_radio_button_state | string | | | +| classic_radio_button_state | string | | | + +## Animations + +| Animation Property Name | Type | Description | +| ------------------------- | :-----------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| anim_type | enum | Possible values:
`alpha`
`clip`
`color`
`flip_book`
`offset`
`size`
`uv`
`wait`
`aseprite_flip_book` | +| duration | number | | +| next | string | | +| destroy_at_end | string | | +| play_event | string | | +| end_event | string | | +| start_event | string | | +| reset_event | string | | +| easing | enum | Possible values:
`linear`
`spring`
`in_quad`
`out_quad`
`in_out_quad`
`in_cubic`
`out_cubic`
`in_out_cubic`
`in_quart`
`out_quart`
`in_out_quart`
`in_quint`
`out_quint`
`in_out_quint`
`in_sine`
`out_sine`
`in_out_sine`
`in_expo`
`out_expo`
`in_out_expo`
`in_circ`
`out_circ`
`in_out_circ`
`in_bounce`
`out_bounce`
`in_out_bounce`
`in_back`
`out_back`
`in_out_back`
`in_elastic`
`out_elastic`
`in_out_elastic` | +| from | | | +| to | | | +| initial_uv | Vector [u, v] | | +| fps | int | Frames per second | +| frame_count | int | | +| frame_step | number | | +| reversible | boolean | | +| resettable | boolean | | +| scale_from_starting_alpha | boolean | | +| activated | boolean | | + +For more information about the `aseprite_flip_book` animation type, please see our page on [Aseprite Animations](/json-ui/aseprite-animations) + +## Global Variables + +| Variable | Note | +| -------------------------------------- | ----------------------------------------------------------------------------------------- | +| $store_disabled | | +| $game_pad | There's a controller connected to the device | +| $mouse | There's a mouse connected to the device | +| $touch | | +| $trial | It's in the trial version of the game | +| $build_platform_UWP | | +| $win10_edition | | +| $ignore_add_servers | | +| $disable_gamertag_controls | | +| $console_edition | | +| $osx_edition | | +| $pocket_edition | | +| $education_edition | | +| $world_archive_support | | +| $file_picking_supported | | +| $desktop_screen | If the classic UI is selected | +| $pocket_screen | If the pocket UI is selected | +| $is_holographic | | +| $gear_vr | | +| $oculus_rift | | +| $is_living_room_mode | | +| $is_reality_mode | | +| $realms_beta | | +| $fire_tv | | +| $is_ios | | +| $apple_tv | | +| $is_windows_10_mobile | | +| $image_picking_not_supported | | +| $pre_release | | +| $ios | | +| $is_console | | +| $can_quit | | +| $is_settopbox | | +| $microsoft_os | | +| $apple_os | | +| $google_os | | +| $nx_os | | +| $horizontal_safezone_size | | +| $vertical_safezone_size | | +| $can_splitscreen | | +| $is_secondary_client | | +| $multiplayer_requires_live_gold | | +| $xbox_one | | +| $is_pregame | If it's a out-game screen. It's in-game when you are playing in a world, server or realms | +| $is_win10_arm | | +| $vibration_supported | | +| $is_mobile_vr | | +| $is_xboxlive_enabled | | +| $device_must_be_removed_for_xbl_signin | | +| $is_publish | It's public and not a developer version | +| $is_desktop | | +| $is_ps4 | | +| $is_on_3p_server | | +| $ignore_3rd_party_servers | | +| $is_berwick | | + +## Hardcoded Hyperlinks + +`#hyperlink` doesn't allow custom urls. These are the ones that will work: + +- `http://education.minecraft.net/eula` +- `http://pocketbeta.minecraft.net/p/how-to-join-and-leave-beta.html` +- `http://aka.ms/minecraftrealmsfb` +- `http://aka.ms/minecraftrealmsterms` +- `http://aka.ms/minecraftfb` +- `http://aka.ms/minecraftedusupport` +- `https://aka.ms/blockxboxmessages` +- `http://aka.ms/minecraftfbbeta` +- `https://minecraft.net/attribution` +- `http://aka.ms/mcedulogs` +- `https://minecraft.net/licensed-content/` +- `https://education.minecraft.net/eula` +- `https://aka.ms/mcedulogs` +- `https://aka.ms/minecraftrealmsterms` +- `https://aka.ms/minecraftfb` +- `https://aka.ms/minecraftfbbeta` +- `https://aka.ms/minecraftedusupport` +- `https://itunes.apple.com/us/app/minecraft/id479516143?mt=8` +- `https://account.xbox.com/Settings` +- `https://aka.ms/meeterms` +- `https://aka.ms/privacy` +- `https://aka.ms/MCBanned` +- `https://aka.ms/MCMultiplayerHelp` +- `https://aka.ms/meeeula` +- `https://aka.ms/mee_privacy` +- `https://www.minecraft.net/attribution/?hideChrome` +- `https://aka.ms/switchattribution` +- `https://www.minecraft.net/licensed-content/?hideChrome` +- `https://aka.ms/switchcontent` +- `https://social.xbox.com/changegamertag` + +## Hardcoded Button IDs + +Some of them only work in specific screens. + +### Buttons IDs: + +- `button.menu_exit` +- `button.menu_cancel` (`Escape` key or Controller `B`) +- `button.menu_inventory_cancel` (`Open Inventory` keybinding) +- `button.menu_ok` (`Enter` key) +- `button.menu_select` (Mouse click) +- `button.controller_select` (Controller `X`) +- `button.menu_secondary_select` +- `button.controller_secondary_select` +- `button.controller_secondary_select_left` +- `button.controller_secondary_select_right` (Controller `R3`) +- `button.controller_start` +- `button.menu_up` (`Arrow Up` key) +- `button.menu_down` (`Arrow Down` key) +- `button.menu_left` (`Arrow Left` key) +- `button.menu_right` (`Arrow Right` key) +- `button.menu_tab_left` (`Menu Tab Left` keybinding or Controller `Left Bumper`) +- `button.menu_tab_right` (`Menu Tab Right` keybinding or Controller `Right Bumper`) +- `button.menu_alternate_tab_left` +- `button.menu_alternate_tab_right` +- `button.menu_autocomplete` (Uses `Tab` key) +- `button.menu_autocomplete_back` +- `button.controller_autocomplete` +- `button.controller_autocomplete_back` +- `button.menu_textedit_up` (Uses `Arrow Up` key) +- `button.menu_textedit_down` (Uses `Arrow Down` key) +- `button.controller_textedit_up` +- `button.controller_textedit_down` +- `button.menu_auto_place` +- `button.menu_inventory_drop` (`Drop Item` keybinding) +- `button.menu_inventory_drop_all` (`Drop Item` + `Control` key) +- `button.menu_clear` +- `button.chat` (`Open Chat` keybinding) +- `button.mobeffects` (`Mob Effects` keybinding) +- `key.emote` (`Emote` keybinding) +- `button.slot1` (Emote Wheel) (`1` key) +- `button.slot2` (Emote Wheel) (`2` key) +- `button.slot3` (Emote Wheel) (`3` key) +- `button.slot4` (Emote Wheel) (`4` key) +- `button.slot5` (Emote Wheel) (`5` key) +- `button.slot6` (Emote Wheel) (`6` key) +- `button.inventory_right` (`Mouse Wheel Up`) +- `button.inventory_left` (`Mouse Wheel Down`) +- `button.scoreboard` +- `button.hide_gui` (`F1` key) +- `button.hide_tooltips` +- `button.hide_paperdoll` +- `button.slot0` +- `button.slot1` (`1` key) +- `button.slot2` (`2` key) +- `button.slot3` (`3` key) +- `button.slot4` (`4` key) +- `button.slot5` (`5` key) +- `button.slot6` (`6` key) +- `button.slot7` (`7` key) +- `button.slot8` (`8` key) +- `button.slot9` (`9` key) +- `button.menu_vr_realign` +- `any` (literally the name of it) + +### Specific Screen Button IDs: + +#### Settings (`ui/settings_screen.json`) + +- `button.open_content_log_history` +- `button.clear_content_log_files` +- `button.clear_msa_token_button` +- `button.terms_and_conditions_popup` +- `button.credits` +- `button.unlink_msa` +- `button.attribute_popup` +- `button.licensed_content` +- `button.font_license` +- `button.tos_hyperlink` +- `button.privpol_hyperlink` +- `button.tos_popup` +- `button.privpol_popup` +- `button.binding_button` +- `button.reset_binding` +- `button.reset_keyboard_bindings` +- `button.view_account_errors` + +#### Book (`ui/book_screen.json`) + +- `button.prev_page` +- `button.next_page` +- `button.book_exit` + +#### Chat (`ui/chat_screen.json`) + +- `button.send` +- `button.chat_autocomplete` +- `button.chat_autocomplete_back` +- `button.chat_previous_message` +- `button.chat_next_message` +- `button.chat_menu_cancel` + +#### Command Block (`ui/command_block_screen.json`) + +- `command_block.input_minimize` +- `button.chat_autocomplete` +- `button.chat_autocomplete_back` + +#### Comment (`ui/comment_screen.json`) + +- `button.comment_options_close` +- `button.comment_feed_options_close` +- `button.close_comments` +- `button.comment_next_button` +- `button.comment_prev_button` + +#### Credits (`ui/credits_screen.json`) + +- `button.show_skip` + +#### Death Menu (`ui/death_screen.json`) + +- `button.respawn_button` +- `button.main_menu_button` + +#### Emote Wheel (`ui/emote_screen_wheel.json`) + +- `button.rebind_mode` +- `button.dressing_room` +- `button.emote_selected` +- `button.select_emote_slot_0` +- `button.select_emote_slot_1` +- `button.select_emote_slot_2` +- `button.select_emote_slot_3` +- `button.select_emote_slot_4` +- `button.select_emote_slot_5` +- `button.iterate_selection_left` +- `button.iterate_selection_right` + +#### Feed (`ui/feed_screen.json`) + +- `button.feed_image` +- `button.newpost` +- `button.add_screenshot` +- `button.feed_comment` +- `button.feed_prev_button` +- `button.feed_next_button` +- `button.feed_new_post_close` +- `button.feed_options_close` +- `button.close_feed` + +#### Game Menu (`ui/pause_screen.json`) + +- `button.to_profile_or_skins_screen` +- `button.player_profile_card` +- `button.menu_continue` +- `button.menu_server_store` +- `button.screenshot` +- `button.menu_how_to_play` +- `button.menu_feedback` +- `button.menu_permission` +- `button.menu_invite_players` +- `button.menu_quit` +- `button.menu_feed` +- `button.pause_focus_filler` + +#### In Bed (`ui/in_bed_screen.json`) + +- `button.wake_up_button` + +#### Invite (`ui/invite_screen.json`) + +- `button.add_friend` +- `button.add_member` +- `button.send_invites` + +#### Manage Feed (`ui/manage_feed_screen.json`) + +- `button.manage_feed_prev_button` +- `button.manage_feed_next_button` +- `button.manage_feed_ignore` +- `button.manage_feed_delete` +- `button.close_manage_feed` + +#### Anvil (`ui/anvil_screen.json`) + +- `button.anvil_take_all_place_all` +- `button.anvil_coalesce_stack` + +#### Cartography Table (`ui/cartography_screen.json`) + +- `button.cartography_result_take_all_place_all` + +#### Enchanting Table (`ui/enchanting_table_screen.json`) + +- `button.enchant` + +#### Grindstone (`ui/grindstone_screen.json`) + +- `button.grindstone_take_all_place_all` +- `button.grindstone_coalesce_stack` + +#### Loom (`ui/loom_screen.json`) + +- `button.loom_result_take_all_place_all` +- `button.pattern_select` + +#### Villager Trade (`ui/trade_screen.json`) + +- `button.cycle_recipe_left` +- `button.cycle_recipe_right` +- `button.trade_take_all_place_all` +- `button.trade_take_half_place_one` +- `button.trade_coalesce_stack` + +#### Play (`ui/play_screen.json`) + +- `button.menu_sign_in_to_view_realms` +- `button.menu_realms_world_item_edit` +- `button.menu_realms_feed` +- `button.menu_realms_world_item_remove` +- `button.menu_network_world_item` +- `button.menu_network_server_world_edit` +- `button.connect_to_third_party_server` +- `button.view_third_party_server_offers` +- `button.description_read_toggle` +- `button.news_read_toggle` +- `button.local_world_upload` +- `button.menu_start_local_world` +- `button.convert_legacy_world` +- `button.menu_local_world_item_edit` +- `button.menu_legacy_world_item_delete` +- `button.import_beta_retail_local_world` +- `button.import_beta_retail_legacy_world` +- `button.menu_network_add_friend` +- `button.menu_network_join_by_code` +- `button.menu_quick_play` +- `button.new_world_upload` +- `button.menu_local_world_create` +- `button.create_on_realms_button` +- `button.archived_world_upload` +- `button.menu_import_level` +- `button.menu_sync_legacy_worlds` +- `button.realms_warning_more_info` +- `button.menu_realm_world_trial` +- `button.menu_realm_nintendo_first_realm_purchase_button` +- `button.no_local_worlds_launch_help` +- `button.menu_network_join_by_code_popup_join` +- `button.join_server_anyway` +- `button.cancel_join_server` + +### Others + +- `button.try_menu_exit` +- `button.close_dialog` +- `button.menu_play` +- `$play_button_target` (**hardcoded**) +- `button.menu_store` +- `button.menu_achievements` +- `button.menu_settings` +- `button.signin` +- `button.menu_skins` +- `button.to_profile_screen` +- `button.menu_courses` +- `button.menu_tutorial` +- `button.featured_world` +- `button.switch_accounts` +- `button.launch_editions` +- `button.edu_feedback` +- `button.edu_resources` +- `button.menu_buy_game` +- `button.menu_invite_notification` +- `button.search` +- `button.hotbar_inventory_button` +- `button.select_offer` +- `button.action_button` +- `button.create_realm` +- `button.switch_accounts` +- `button.hotbar_select` +- `button.hotbar_ok` +- `button.slot_pressed` +- `button.hotbar_inventory_left` +- `button.hotbar_inventory_right` +- `button.hide_gui_all` +- `button.hide_tooltips_hud` +- `button.hide_paperdoll_hud` +- `button.slot_1` +- `button.slot_2` +- `button.slot_3` +- `button.slot_4` +- `button.slot_5` +- `button.slot_6` +- `button.slot_7` +- `button.slot_8` +- `button.slot_9` +- `button.slot_0` +- `button.chat` +- `button.menu_continue` +- `user_confirm_dialog.escape` +- `user_confirm_dialog.left_button` +- `user_confirm_dialog.middle_button` +- `user_confirm_dialog.rightcancel_button` +- `button.view_skin` +- `button.delete_action` +- `button.exit_student` +- `button.play_video` +- `button.menu_store_error` +- `button.left_panel_tab_increment` +- `button.left_panel_tab_decrement` +- `button.right_panel_tab_increment` +- `button.right_panel_tab_decrement` +- `button.layout_increment` +- `button.layout_decrement` +- `button.is_hovered` +- `button.container_take_all_place_all` +- `button.container_take_half_place_one` +- `button.container_auto_place` +- `button.coalesce_stack` +- `button.shape_drawing` +- `button.destroy_selection` +- `button.clear_selected_recipe` +- `button.clear_hotbar_or_remove_one` +- `button.clear_hotbar_or_drop` +- `button.container_reset_held` +- `button.container_auto_place` +- `button.container_slot_hovered` +- `button.button_hovered` +- `button.shift_pane_focus` +- `button.focus_left` +- `button.focus_right` +- `button.filter_toggle_hovered` +- `button.drop_one` +- `button.cursor_drop_one` +- `button.drop_all` +- `button.cursor_drop_all` +- `button.search_bar_clear` +- `button.search_bar_selected` +- `button.search_bar_deselected` +- `button.menu_leave_screen` +- `button.turn_doll` +- `button.select_skin` +- `button.skin_hovered` +- `button.skin_unhovered` +- `button.leave` +- `button.leave_on_device` +- `button.text_edit_box_selected` +- `button.text_edit_box_deselected` +- `button.text_edit_box_hovered` +- `button.text_edit_box_clear` +- `button.help` +- `button.menu_open_uri` +- `button.no_interaction` +- `button.copy_to_clipboard` +- ... + +## Hardcoded Collection Names + +All of them only in specific screens. + +### Screen specific: + +#### Book (`ui/book_screen.json`) + +- `book_pages` +- `pick_collection` + +#### Bundle Purchase Warning (`ui/bundle_purchase_warning_screen.json`) + +- `owned_list` +- `unowned_list` + +#### Chat (`ui/chat_screen.json`) + +- `auto_complete` +- `font_colors` +- `host_main_collection` +- `players_collection` +- `host_teleport_collection` +- `host_time_collection` +- `host_weather_collection` + +#### Choose Realm (`ui/choose_realm_screen.json`) + +- `realms_collection` + +#### Coin Purchase (`ui/coin_purchase_screen.json`) + +- `coin_purchase_grid` + +#### Comment (`ui/comment_screen.json`) + +- `comment_collection` + +#### Content Log History (`ui/content_log_history_screen.json`) + +- `content_log_message` + +#### Create World Upsell (`ui/create_world_upsell_screen.json`) + +- `world_list` +- `realm_list` + +#### Custom Templates (`ui/custom_templates_screen.json`) + +- `templates_collection` + +#### Feed (`ui/feed_screen.json`) + +- `feed_collection` + +#### HUD (`ui/hud_screen.json`) + +- `boss_bars` +- `chat_text_grid` +- `hotbar_items` +- `scoreboard_players` +- `scoreboard_scores` +- `left_helper_collection` +- `right_helper_collection` + +#### Invite (`ui/invite_screen.json`) + +- `online_platform_friends` +- `online_linked_account_friends` +- `online_xbox_live_friends` +- `offline_platform_friends` +- `offline_linked_account_friends` +- `offline_xbox_live_friends` + +#### Manage Feed (`ui/manage_feed_screen.json`) + +- `manage_feed_collection` + +#### Manifest Validation (`manifest_validation_screen.json`) + +- `pack_errors` + +#### Mob Effects (`ui/mob_effects_screen.json`) + +- `mob_effects_collection` + +#### Game Menu (`ui/pause_screen.json`) + +- `players_collection` + +#### PDP (`ui/pdp_screen.json`) + +- `factory_collection` +- `ratings_star_collection` + +#### Permissions (`ui/permissions_screen.json`) + +- `players_collection` - it's also used in `pause_screen.json` +- `permissions_collection` + +#### Persona (`ui/persona_screen.json`) + +- `color_collection` +- `skin_pack_in_grid_item` +- `persona_featured_skin_pack_collection` +- `body_size_collection` +- `arm_size_collection` +- `category_featured_collection` +- `main_featured_collection` +- `profile_featured_collection` +- `custom_section_collection` +- `featured_collection` +- `foobar_collection` +- `emote_collection` + +#### Play (`ui/play_screen.json`) + +- `friends_network_worlds` +- `cross_platform_friends_network_worlds` +- `lan_network_worlds` +- `personal_realms` +- `friends_realms` +- `servers_network_worlds` +- `third_party_server_network_worlds` +- `server_screenshot_collection` +- `server_games_collection` +- `local_worlds` +- `legacy_worlds` +- `beta_retail_local_worlds` +- `personal_realms` +- `loading_personal_realms` +- `friends_realms` +- `loading_friends_realms` + +#### Portfolio (`ui/portfolio_screen.json`) + +- `photos` + +#### Progress (`ui/progress_screen.json`) + +- `required_resourcepacks` +- `optional_resourcepacks` + +#### Realms Pending Invitations (`ui/realms_pending_invitations_screen.json`) + +- `pending_invites_collection` + +#### Realms Settings (`ui/realms_settings_screen.json`) + +- `additional_realms_subscriptions_collection` +- `realms_branch_collection` +- `realms_backup_collection` +- `members_collection` +- `invited_friends_collection` +- `uninvited_friends_collection` +- `blocked_players_collection` + +#### Screenshot Picker (`ui/screenshot_picker_screen.json`) + +- `screenshotpicker_collection` + +#### Server Form (`ui/server_form.json`) + +- `custom_form` +- `form_buttons` +- `custom_dropdown` + +#### Settings (`ui/settings_screen.json`) + +- `keyboard_standard_collection` +- `keyboard_full_collection` +- `gamepad_collection` +- `languages` +- `realms_plus_subscriptions_collection` +- `additional_realms_subscriptions_collection` +- `#selected_pack_items_global` +- `#available_pack_items_global` +- `#realms_pack_items_global` +- `#unowned_pack_items_global` +- `#invalid_pack_items_global` +- `#selected_pack_items_level` +- `#available_pack_items_level` +- `#realms_pack_items_level` +- `#unowned_pack_items_level` +- `#invalid_pack_items_level` +- `#selected_pack_items_addon` +- `#available_pack_items_addon` +- `#realms_pack_items_addon` +- `#unowned_pack_items_addon` +- `#invalid_pack_items_addon` +- `experimental_toggles` +- `world_panel` +- `world_template_panel` +- `resource_panel` +- `behavior_panel` +- `skin_panel` +- `cache_panel` +- `dependent_packs_panel` +- `dependency_panel` + +#### Structure Block (`ui/structure_editor_screen.json`) + +- `save_size_grid` +- `save_offset_grid` +- `load_offset_grid` +- `export_size_grid` +- `export_offset_grid` + +#### Seed Picker (`ui/ugc_viewer_screen.json`) + +- `ugc_items` + +#### World Templates (`ui/world_templates_screen.json`) + +- `world_templates` +- `realms_plus_templates` +- `custom_world_templates` +- `#suggested_offers_collection` + +#### Anvil (`ui/anvil_screen.json`) + +- `anvil_input_items` +- `anvil_material_items` +- `anvil_result_items` + +#### Beacon (`ui/beacon_screen.json`) + +- `beacon_payment_items` +- `speed` +- `haste` +- `resist` +- `jump` +- `strength` +- `regen` +- `extra` +- `confirm` +- `cancel` + +#### Brewing Stand (`ui/brewing_stand_screen.json`) + +- `brewing_fuel_item` +- `brewing_input_item` +- `brewing_result_items` + +#### Cartography Table (`ui/cartography_screen.json`) + +- `cartography_input_items` +- `cartography_additional_items` +- `cartography_result_items` + +#### Enchanting Table (`ui/enchanting_table_screen.json`) + +- `enchanting_input_items` +- `enchanting_lapis_items` +- `#enchant_buttons` + +#### Furnace (`ui/furnace_screen.json`) + +- `furnace_ingredient_items` +- `furnace_fuel_items` +- `furnace_output_items` + +#### Gridstone (`ui/grindstone_screen.json`) + +- `grindstone_input_items` +- `grindstone_additional_items` +- `grindstone_result_items` + +#### Horse (`ui/horse_screen.json`) + +- `horse_equip_items` + +#### Inventory (`ui/inventory_screen.json` and `ui/inventory_screen_pocket.json`) + +- `armor_items` +- `offhand_items` +- `crafting_input_items` +- `crafting_output_items` +- `recipe_book` + +#### Loom (`ui/loom_screen.json`) + +- `loom_input_items` +- `loom_dye_items` +- `loom_material_items` +- `loom_result_items` +- `patterns` + +#### Smithing Table (`ui/smithing_table_screen.json`) + +- `smithing_table_input_items` +- `smithing_table_material_items` +- `smithing_table_result_items` + +#### Stonecutter (`ui/stonecutter_screen.json`) + +- `stonecutter_input_items` +- `stonecutter_result_items` +- `stones` + +#### Villager Trade 2 (`ui/trade_2_screen.json`) + +- `trade2_ingredient1_item` +- `trade2_ingredient2_item` +- `trade2_result_item` +- `trade_item_1` +- `trade_item_2` +- `sell_item` +- `trades` +- `trade_tiers` + +## Hardcoded Binding Names + +Some of them only work in specific screens. + +### Screen specific: + +#### Account Transfer Error (`ui/account_transfer_error_screen.json`) + +- `#error_title_text` +- `#error_number_label` +- `#error_number` +- `#correlation_id_label` +- `#correlation_id` + +#### Add External Server (`ui/add_external_server_screen.json`) + +- `#play_button_enabled` +- `#play_button_disabled` +- `#save_button_enabled` +- `#save_button_disabled` + +#### Adhoc In Progress (`ui/adhoc_in_progress_screen.json`) + +- `#adhoc_title` + +#### Authentication (`ui/authentication_screen.json`) + +- `#sign_in_visible` +- `#sign_in_ios_visible` +- `#sign_in_button_visible` +- `#sign_in_ios_buttons_visible` +- `#authentication_message` +- `#confirm_button_enabled` +- `#edu_store_visible` +- `#edu_store_purchase_info` +- `#asking_to_buy_visible` +- `#confirming_purchase_visible` +- `#demo_choice_visible` +- `#eula_visible` +- `#popup_text` +- `#popup_message_student_text` +- `#popup_message_student_visible` +- `#generic_popup_link_visible` +- `#trial_purchase_link_visible` +- `#show_popup_dismiss_button` + +#### Book (`ui/book_screen.json`) + +- `#screenshot_path` +- `#is_photo_page` +- `#is_text_page` +- `#pick_grid_dimensions` +- `#page_number` +- `#title_text_box_item_name` +- `#author_editable` +- `#author_text_box_item_name` +- `#editable` +- `#viewing` +- `#signing` +- `#picking` +- `#exporting` +- `#page_visible` +- `#pick_item_visible` +- `#close_button_visible` +- `#edit_controls_active` +- `#finalize_button_enabled` + +#### Braze (`ui/braze_screen.json`) + +- `#image_texture` + +#### Bundle Purchase Warning (`ui/bundle_purchase_warning_screen.json`) + +- `#banner_visible` +- `#offer_title` +- `#keyart_path` +- `#keyart_texture_file_system` + +#### Chat (`ui/chat_screen.json`) + +- `#keyboard_being_use` +- `#keyboard_button_focus_override_up` +- `#keyboard_button_focus_override_down` +- `#keyboard_button_visible` +- `#send_button_visible` +- `#send_button_accessibility_text` +- `#chat_visible` +- `#message_text_box_content` +- `#text_edit_box_focus_override_up` +- `#text_edit_box_focus_override_down` +- `#auto_complete_item` +- `#auto_complete_text` +- `#get_grid_size` +- `#chat_title_text` +- `#chat_typeface_visible` + +#### Choose Realm (`ui/choose_realm_screen.json`) + +- `#realms_grid_dimension` +- `#world_button_focus_identifier` +- `#ten_player_button_visible` +- `#two_player_button_visible` +- `#realms_world_player_count` +- `#realms_game_online` +- `#realms_game_unavailable` +- `#realms_game_offline` + +#### Coin Purchase (`ui/coin_purchase_screen.json`) + +- `#bonus_coins` +- `#coins_without_bonus` +- `#coin_offer_texture_name` +- `#coin_offer_texture_file_system` +- `#bonus_coins_visible` +- `#price_text` +- `#coins_required_for_purchase` +- `#show_missing_coins` +- `#coin_offer_size` +- `#has_coin_offers` +- `#coin_loading_visible` + +#### Command Block (`ui/command_block_screen.json`) + +- `#maximized_input_visible` +- `#block_type_icon_texture` +- `#close_button_visible_binding_name` +- `#command_impulse_mode` +- `#command_chain_mode` +- `#command_repeat_mode` +- `#block_type_dropdown_toggle_label` +- `#block_type_dropdown_label_color_binding` +- `#block_type_dropdown_enabled` +- `#command_conditional_mode` +- `#command_unconditional_mode` +- `#condition_dropdown_toggle_label` +- `#condition_dropdown_enabled` +- `#command_always_on_mode` +- `#command_needs_redstone_mode` +- `#redstone_dropdown_enabled` +- `#command_hover_note` +- `#execute_on_first_tick_enabled` +- `#command_tick_delay` +- `#command_text_edit` +- `#command_output_text` +- `#previous_block_type_text` +- `#previous_block_type_text_color` +- `#previous_condition_mode_text` +- `#previous_redstone_mode_text` +- `#minimize_button_visible_binding_name` + +#### Comment (`ui/comment_screen.json`) + +- `#report_to_club_button_visible_feeditem` +- `#report_to_enforcement_button_visible_feeditem` +- `#delete_button_visible_feeditem` +- `#report_to_club_button_visible_comment` +- `#report_to_enforcement_button_visible_comment` +- `#delete_button_visible_comment` +- `#comment_buttons_visible` +- `#feed_comment_page_collection_length` +- `#comment_content` +- `#is_author_linked_account` +- `#content` +- `#text_visible` +- `#likes_and_comments` +- `#screenshot_texture` +- `#screenshot_texture_source` +- `#textpost_content` +- `#textpost_visible` +- `#comment_text_box` +- `#comment_platform_tag` +- `#comment_gamertag` +- `#likes_and_time_since_comment_post` +- `#author_gamertag` +- `#time_since_feed_post` +- `#author_platform_tag` +- `#author_gamertag` + +#### Confirm MSA Unlink (`ui/confirm_msa_unlink_screen.json`) + +- `#unlink_warning_text` +- `#unlink_consequences_acknowledged` +- `#confirm_0` +- `#confirm_0_enabled` +- `#confirm_1` +- `#confirm_1_enabled` +- `#confirm_2` +- `#confirm_2_enabled` +- `#confirm_3` +- `#confirm_3_enabled` + +#### Content Log History (`ui/content_log_history_screen.json`) + +- `#content_log_text` +- `#messages_size` + +#### Create World Upsell (`ui/create_world_upsell.json`) + +- `#realm_button_text` +- `#realm_trial_available` + +#### Anvil (`ui/anvil_screen.json`) + +- `#cost_text` +- `#cost_text_green` +- `#cost_text_red` + +#### Beacon (`ui/beacon_screen.json`) + +- `#supports_netherite` +- `#extra_image_selection` + +#### Brewing Stand (`ui/brewing_stand_screen.json`) + +- `#empty_bottle_image_visible` +- `#empty_fuel_image_visible` +- `#brewing_bubbles_ratio` +- `#brewing_fuel_ratio` +- `#brewing_arrow_ratio` + +#### Cartography Table (`ui/cartography_screen.json`) + +- `#is_none_mode` +- `#is_clone_mode` +- `#is_rename_mode` +- `#is_basic_map_mode` +- `#is_locator_map_mode` +- `#is_extend_mode` +- `#is_locked_mode` +- `#output_description` + +#### Enchanting Table (`ui/enchanting_table_screen.json`) + +- `#selectable_dust_is_visible` +- `#unselectable_dust_is_visible` +- `#runes` +- `#cost` +- `#unselectable_button_visibility` +- `#selectable_button_visibility` +- `#show_selected_button_highlight` +- `#active_enchant` +- `#inactive_enchant` +- `#input_item_id` +- `#output_item_id` +- `#enchant_hint` +- `#player_level_color` +- `#player_level_info` +- `#enchant_error` + +#### Furnace (`ui/furnace_screen.json`) + +- `#furnace_arrow_ratio` +- `#furnace_flame_ratio` +- `#output_name` + +#### Horse (`ui/horse_screen.json`) + +- `#entity_id` +- `#equip_grid_dimensions` +- `#inv_grid_dimensions` +- `#sadle_slot_centered` +- `#has_saddle_slot` +- `#has_armor_slot` +- `#has_only_armor_slot` +- `#has_only_carpet_slot` +- `#has_armor_and_saddle_slot` +- `#has_carpet_and_saddle_slot` +- `#is_chested` +- `#renderer_tab_toggle` +- `#chest_tab_toggle` + +#### Loom (`ui/loom_screen.json`) + +- `#pattern_cell_background_texture` +- `#container_cell_background_texture` +- `#empty_image_visible` +- `#banner_patterns` +- `#banner_colors` +- `#pattern_selector_total_items` +- `#result_patterns` +- `#result_colors` +- `#is_right_tab_loom` +- `#is_left_tab_patterns` + +#### Stonecutter (`ui/stonecutter_screen.json`) + +- `#stone_cell_background_texture` +- `#container_cell_background_texture` +- `#item_stack_count` +- `#stone_selector_total_items` +- `#has_input_item` +- `#is_right_tab_stonecutter` +- `#is_left_tab_stones` + +#### Death (`ui/death_screen.json`) + +- `#death_reason_text` +- `#respawn_visible` +- `#quit_enabled` +- `#quit_visible` +- `#buttons_and_deathmessage_visible` + +#### Villager Trade2 (`ui/trade2_screen.json`) + +- `#name_label` +- `#trade_cell_background_texture` +- `#trade_item_count` +- `#single_slash_visible` +- `#double_slash_visible` +- `#second_trade_item_count` +- `#trade_price_different` +- `#trade_cross_out_visible` +- `#padding_around_sell_item` +- `#trade_possible` +- `#trade_toggle_state` +- `#trade_toggle_enabled` +- `#trade_tier_total` +- `#tier_name` +- `#is_tier_unlocked` +- `#is_left_tab_trade` +- `#show_level` +- `#tier_visible` +- `#trade_selector_total` +- `#has_second_buy_item` +- `#exp_bar_visible` +- `#exp_progress` +- `#exp_possible_progress` +- `#trade_details_button_1_visible` +- `#trade_details_button_2_visible` +- `#enchantment_details_button_visible` +- `#item_valid` + +### Value depends on the screen it is in: + +- `#title_text` +- `#body_text` +- `#hover_text` +- `#cross_out_icon` +- `#is_left_tab_inventory` +- `#selected_hover_text` + +### Others: + +- `#tts_dialog_body` +- `#button_enabled` +- `#using_touch` +- `#close_button_visible` + +## Settings + +### Sliders + +| Name | Slider Name | Value Binding Name | TTS Value (`tts_value_changed`) | Slider Text | Enabled Binding Name | +| ------------------------- | ------------------------------- | -------------------------------- | ------------------------------- | --------------------------------------------- | ---------------------------------------- | +| Brightness | `gamma` | `#gamma` | `#gamma_text_value` | `#gamma_slider_label` | `#gamma_enabled` | +| Brightness (VR) | `vr_gamma` | `#vr_gamma` | `#vr_gamma_text_value` | `#vr_gamma_slider_label` | `#vr_gamma_enabled` | +| HUD Opacity | `interface_opacity` | `#interface_opacity` | `#interface_opacity_text_value` | `#interface_opacity_slider_label` | `#interface_opacity_enabled` | +| HUD Opacity (Splitscreen) | `splitscreen_interface_opacity` | `#splitscreen_interface_opacity` | `#interface_opacity_text_value` | `#splitscreen_interface_opacity_slider_label` | `#splitscreen_interface_opacity_enabled` | +| Field Of View | `field_of_view` | `#field_of_view` | `#field_of_view_text_value` | `#field_of_view_slider_label` | `#field_of_view_enabled` | + +### Toggles + +| Name | Toggle Name | State Binding Name | Enabled Binding Name | +| --------------------------------------- | ------------------------------------- | -------------------------------------- | ---------------------------------------------- | +| Invert Y Axis (Mouse) | `keyboard_mouse_invert_y_axis` | `#keyboard_mouse_invert_y_axis` | `#keyboard_mouse_invert_y_axis_enabled` | +| Auto Jump (Mouse) | `keyboard_mouse_autojump` | `#keyboard_mouse_autojump` | `#keyboard_mouse_autojump_enabled` | +| Show Full Keyboard Options | `keyboard_show_full_keyboard_options` | `#keyboard_show_full_keyboard_options` | `#keyboard_show_full_keyboard_options_enabled` | +| Hide Keyboard Tooltips | `hide_keyboard_tooltips` | `#hide_keyboard_tooltips` | `#hide_keyboard_tooltips_enabled` | +| Content File Log | `content_log_file` | `#content_log_file` | `#content_log_file_enabled` | +| Content Gui Log | `content_log_gui` | `#content_log_gui` | `#content_log_gui_enabled` | +| Use SSO | `ad_use_single_sign_on` | `#ad_use_single_sign_on` | | +| Auto Update OFF | `#auto_update_mode_off` | `#auto_update_mode_off` | | +| Auto Update ON with Cellular | `#auto_update_mode_on_with_cellular` | `#auto_update_mode_on_with_cellular` | | +| Auto Update on WiFi Only | `#auto_update_mode_on_wifi_only` | `#auto_update_mode_on_wifi_only` | | +| Auto Update Enabled | `auto_update_enabled` | `#auto_update_enabled` | | +| Cross Platform Enabled | `crossplatform_toggle` | `#crossplatform_toggle` | `#crossplatform_toggle_enabled` | +| Allow Cellular Data | `allow_cellular_data` | `#allow_cellular_data` | `#allow_cellular_data_enabled` | +| Websocket Encryption | `websocket_encryption` | `#websocket_encryption` | `#websocket_encryption_enabled` | +| Only Trusted Skins Allowed | `only_trusted_skins_allowed` | `#only_trusted_skins_allowed` | `#only_trusted_skins_allowed_enabled` | +| Storage Location External | `#storage_location_radio_external` | `#storage_location_radio_external` | `#file_storage_location_enabled` | +| Storage Location App | `#storage_location_radio_package` | `#storage_location_radio_package` | `#file_storage_location_enabled` | +| First Person Perspective | `#thirdperson_radio_first` | `#thirdperson_radio_first` | `#third_person_dropdown_enabled` | +| Third Person Back Perspective | `#thirdperson_radio_third_back` | `#thirdperson_radio_third_back` | `#third_person_dropdown_enabled` | +| Third Person Front Perspective | `#thirdperson_radio_third_front` | `#thirdperson_radio_third_front` | `#third_person_dropdown_enabled` | +| Fullscreen | `full_screen` | `#full_screen` | `#full_screen_enabled` | +| Hide Hand | `hide_hand` | `#hide_hand` | `#hide_hand_enabled` | +| Hide Hand (VR) | `vr_hide_hand` | `#vr_hide_hand` | `#vr_hide_hand_enabled` | +| Hide Paperdoll | `hide_paperdoll` | `#hide_paperdoll` | `#hide_paperdoll_enabled` | +| Hide HUD | `hide_hud` | `#hide_hud` | `#hide_hud_enabled` | +| Hide HUD (VR) | `vr_hide_hud` | `#vr_hide_hud` | `#vr_hide_hud_enabled` | +| Screen Animations | `screen_animations` | `#screen_animations` | `#screen_animations_enabled` | +| Split Screen Horizontally | `#split_screen_radio_horizontal` | `#split_screen_radio_horizontal` | `#split_screen_dropdown_enabled` | +| Split Screen Vertically | `#split_screen_radio_vertical` | `#split_screen_radio_vertical` | `#split_screen_dropdown_enabled` | +| Show Auto Save Icon | `show_auto_save_icon` | `#show_auto_save_icon` | `#show_auto_save_icon_enabled` | +| Outline Selection | `classic_box_selection` | `#classic_box_selection` | `#classic_box_selection_enabled` | +| Outline Selection (VR) | `vr_classic_box_selection` | `#vr_classic_box_selection` | `#vr_classic_box_selection_enabled` | +| Show Players Names Ingame | `ingame_player_names` | `#ingame_player_names` | `#ingame_player_names_enabled` | +| Show Players Names Ingame (Splitscreen) | `splitscreen_ingame_player_names` | `#splitscreen_ingame_player_names` | `#splitscreen_ingame_player_names_enabled` | +| View Bobbing | `view_bobbing` | `#view_bobbing` | `#view_bobbing_enabled` | +| Camera Shake | `camera_shake` | `#camera_shake` | `#camera_shake_enabled` | +| Fancy Leaves | `transparent_leaves` | `#transparent_leaves` | `#transparent_leaves_enabled` | +| Fancy Leaves (VR) | `vr_transparent_leaves` | `#vr_transparent_leaves` | `#vr_transparent_leaves_enabled` | +| Fancy Bubbles | `bubble_particles` | `#bubble_particles` | `#bubble_particles_enabled` | +| Render Clouds | `render_clouds` | `#render_clouds` | `#render_clouds_enabled` | +| Fancy Clouds | `fancy_skies` | `#fancy_skies` | `#fancy_skies_enabled` | +| Smooth Lighting | `smooth_lighting` | `#smooth_lighting` | `#smooth_lighting_enabled` | +| Smooth Lighting (VR) | `graphics_toggle` | `#graphics_toggle` | `#graphics_toggle_enabled` | +| Graphics | `graphics_toggle` | `#graphics_toggle` | `#graphics_toggle_enabled` | +| Field of View | `field_of_view_toggle` | `#field_of_view_toggle` | `#field_of_view_toggle_enabled` | +| Classic UI Profile | `#ui_profile_radio_classic` | `#ui_profile_radio_classic` | `#ui_profile_dropdown_enabled` | +| Pocket UI Profile | `#ui_profile_radio_pocket` | `#ui_profile_radio_pocket` | `#ui_profile_dropdown_enabled` | +| Texel Anti-Aliasing | `texel_aa` | `#texel_aa` | `#texel_aa_enabled` | +| 3D Rendering (VR) | `vr_3d_rendering` | `#vr_3d_rendering` | `#vr_3d_rendering_enabled` | +| Mirror Texture (VR) | `vr_mirror_texture` | `#vr_mirror_texture` | `#vr_mirror_texture_enabled` | +| Hand Pointer Visible (VR) | `vr_hand_pointer` | `#vr_hand_pointer` | `#vr_hand_pointer_enabled` | +| Hands Visible (VR) | `vr_hands_visible` | `#vr_hands_visible` | `#vr_hands_visible_enabled` | +| Enable Auto TTS | `enable_auto_text_to_speech` | `#enable_auto_text_to_speech` | `#enable_auto_text_to_speech_enabled` | +| Enable UI TTS | `enable_ui_text_to_speech` | `#enable_ui_text_to_speech` | `#enable_ui_text_to_speech_enabled` | +| Enable Chat TTS | `enable_chat_text_to_speech` | `#enable_chat_text_to_speech` | `#enable_chat_text_to_speech_enabled` | +| Enable Open Chat Message | `enable_open_chat_message` | `#enable_open_chat_message` | `#enable_open_chat_message_enabled` | +| Camera Shake | `camera_shake` | `#camera_shake` | `#camera_shake_enabled` | +| Languages (Collection) | `languages` | `#language_initial_selected` | | + +## Item ID Aux (`#item_id_aux`) + +| Name | ID | Aux Values | +| ----------------- | :--: | :--------: | +| diamond | 306 | 20054016 | +| emerald | 519 | 34013184 | +| gold_ingot | 308 | 20185088 | +| iron_ingot | 307 | 20119552 | +| netherite_ingot | 616 | 40370176 | +| banner | 574 | 37617664 | +| saddle | 373 | 24444928 | +| cartography_table | -200 | -13107200 | +| chest | 54 | 3538944 | +| crafting_table | 58 | 3801088 | +| loom | -204 | -13369344 | +| stonecutter_block | -197 | -12910592 | + +#### How to calculate block item aux value: + +Aux = ID \* 65536 + +ID = Aux / 65536 +65536 = Aux / ID + +Get all Item IDs [here](https://docs.microsoft.com/en-us/minecraft/creator/reference/content/addonsreference/examples/addonitems). diff --git a/docs/wiki/bedrock-wiki-mirror.md b/docs/wiki/bedrock-wiki-mirror.md new file mode 100644 index 00000000..e27873f4 --- /dev/null +++ b/docs/wiki/bedrock-wiki-mirror.md @@ -0,0 +1,7 @@ +--- +hidden: true +--- + +:::details 本页面镜像自
[BedrockWiki](https://wiki.bedrock.dev) +根据原始项目协议授权。本文经过AI翻译处理,如有内容遗漏,可以提交PR进行补充。 +::: \ No newline at end of file diff --git a/entities/vuc-full b/entities/vuc-full new file mode 100644 index 00000000..e69de29b diff --git a/package-lock.json b/package-lock.json index 18ccf52f..a92fb0c3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "gray-matter": "^4.0.3", "marked": "^15.0.7", "mermaid": "^11.5.0", + "openai": "^4.87.4", "vitepress": "^1.6.3", "vitepress-plugin-mermaid": "^2.0.17", "vue": "^3.5.13" @@ -1709,6 +1710,17 @@ "undici-types": "~6.20.0" } }, + "node_modules/@types/node-fetch": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.0" + } + }, "node_modules/@types/trusted-types": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", @@ -2003,6 +2015,19 @@ "url": "https://github.com/sponsors/antfu" } }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, "node_modules/acorn": { "version": "8.14.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", @@ -2016,6 +2041,19 @@ "node": ">=0.4.0" } }, + "node_modules/agentkeepalive": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", + "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, "node_modules/algoliasearch": { "version": "5.21.0", "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.21.0.tgz", @@ -2051,6 +2089,13 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, "node_modules/birpc": { "version": "0.2.19", "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.2.19.tgz", @@ -2074,6 +2119,20 @@ "node": ">=8" } }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/ccount": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", @@ -2135,6 +2194,19 @@ "chevrotain": "^11.0.0" } }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/comma-separated-tokens": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", @@ -2772,6 +2844,16 @@ "robust-predicates": "^3.0.2" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -2819,6 +2901,21 @@ "url": "https://dotenvx.com" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/emoji-regex-xs": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz", @@ -2839,6 +2936,55 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/esbuild": { "version": "0.25.1", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz", @@ -2902,6 +3048,16 @@ "dev": true, "license": "MIT" }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/exsolve": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.4.tgz", @@ -2972,6 +3128,43 @@ "tabbable": "^6.2.0" } }, + "node_modules/form-data": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/form-data-encoder": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", + "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==", + "dev": true, + "license": "MIT" + }, + "node_modules/formdata-node": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", + "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "node-domexception": "1.0.0", + "web-streams-polyfill": "4.0.0-beta.3" + }, + "engines": { + "node": ">= 12.20" + } + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -2987,6 +3180,55 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -3013,6 +3255,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gray-matter": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", @@ -3036,6 +3291,48 @@ "dev": true, "license": "MIT" }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hast-util-to-html": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", @@ -3092,6 +3389,16 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -3314,6 +3621,16 @@ "node": ">= 18" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/mdast-util-to-hast": { "version": "13.2.0", "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", @@ -3483,6 +3800,29 @@ "node": ">=8.6" } }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/minisearch": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-7.1.2.tgz", @@ -3555,6 +3895,47 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/non-layered-tidy-tree-layout": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz", @@ -3575,6 +3956,54 @@ "regex-recursion": "^6.0.2" } }, + "node_modules/openai": { + "version": "4.87.4", + "resolved": "https://registry.npmjs.org/openai/-/openai-4.87.4.tgz", + "integrity": "sha512-lsfM20jZY4A0lNexfoUAkfmrEXxaTXvv8OKYicpeAJUNHObpRgkvC7pxPgMnB6gc9ID8OCwzzhEhBpNy69UR7w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/node": "^18.11.18", + "@types/node-fetch": "^2.6.4", + "abort-controller": "^3.0.0", + "agentkeepalive": "^4.2.1", + "form-data-encoder": "1.7.2", + "formdata-node": "^4.3.2", + "node-fetch": "^2.6.7" + }, + "bin": { + "openai": "bin/cli" + }, + "peerDependencies": { + "ws": "^8.18.0", + "zod": "^3.23.8" + }, + "peerDependenciesMeta": { + "ws": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, + "node_modules/openai/node_modules/@types/node": { + "version": "18.19.80", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.80.tgz", + "integrity": "sha512-kEWeMwMeIvxYkeg1gTc01awpwLbfMRZXdIhwRcakd/KlK53jmRC26LqcbIt7fnAQTu5GzlnWmzA3H6+l1u6xxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/openai/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true, + "license": "MIT" + }, "node_modules/package-manager-detector": { "version": "0.2.11", "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.11.tgz", @@ -4036,6 +4465,13 @@ "node": ">=8.0" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", @@ -4884,6 +5320,34 @@ } } }, + "node_modules/web-streams-polyfill": { + "version": "4.0.0-beta.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", + "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", diff --git a/package.json b/package.json index 1594e28a..c70e9876 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "gray-matter": "^4.0.3", "marked": "^15.0.7", "mermaid": "^11.5.0", + "openai": "^4.87.4", "vitepress": "^1.6.3", "vitepress-plugin-mermaid": "^2.0.17", "vue": "^3.5.13" diff --git a/scripts/ai-translate.mjs b/scripts/ai-translate.mjs new file mode 100644 index 00000000..4741656e --- /dev/null +++ b/scripts/ai-translate.mjs @@ -0,0 +1,238 @@ +import fs from 'fs/promises'; +import path from 'path'; +import dotenv from 'dotenv'; +import OpenAI from 'openai'; +import { fileURLToPath } from 'url'; +import { createInterface } from 'readline'; + +// 加载环境变量 +dotenv.config(); + +// 检查环境变量是否存在 +const requiredEnvVars = ['OPENAI_API_KEY', 'OPENAI_BASE_URL', 'OPENAI_MODEL']; +const missingEnvVars = requiredEnvVars.filter(varName => !process.env[varName]); + +if (missingEnvVars.length > 0) { + console.error(`❌ 缺少必要的环境变量: ${missingEnvVars.join(', ')}`); + console.error('请在.env文件中设置这些变量'); + process.exit(1); +} + +// 初始化OpenAI客户端 +const openai = new OpenAI({ + apiKey: process.env.OPENAI_API_KEY, + baseURL: process.env.OPENAI_BASE_URL +}); + +const model = process.env.OPENAI_MODEL || 'gpt-4-turbo'; + +// 获取命令行参数(相对路径) +const args = process.argv.slice(2); + +if (args.length !== 1) { + console.error('❌ 请提供要翻译的目录的相对路径'); + console.error('用法: node ai-translate.mjs <目录相对路径>'); + process.exit(1); +} + +// 获取脚本所在目录的绝对路径 +const scriptDir = path.dirname(fileURLToPath(import.meta.url)); +// 计算目标目录的绝对路径 +const targetDir = path.resolve(scriptDir, '..', args[0]); + +async function findMarkdownFiles(dir) { + const files = []; + + // 检测文本是否包含中文的函数 + function containsChinese(text) { + // 匹配中文字符的正则表达式 + const chineseRegex = /[\u4e00-\u9fa5]/; + return chineseRegex.test(text); + } + + async function traverse(currentDir) { + const entries = await fs.readdir(currentDir, { withFileTypes: true }); + + for (const entry of entries) { + const fullPath = path.join(currentDir, entry.name); + + if (entry.isDirectory()) { + await traverse(fullPath); + } else if (entry.isFile() && entry.name.endsWith('.md')) { + try { + // 读取文件内容 + const content = await fs.readFile(fullPath, 'utf-8'); + + // 如果文件不包含中文,则添加到待翻译列表 + if (!containsChinese(content)) { + files.push(fullPath); + } else { + console.log(`⏭️ 跳过已包含中文的文件: ${path.relative(targetDir, fullPath)}`); + } + } catch (error) { + console.error(`❌ 读取文件 ${fullPath} 时出错:`, error.message); + } + } + } + } + + await traverse(dir); + return files; +} +async function translateMarkdown(filePath) { + try { + console.log(`🔄 正在处理文件: ${path.relative(targetDir, filePath)}`); + + // 读取Markdown内容 + const content = await fs.readFile(filePath, 'utf-8'); + + // 创建翻译提示 + const prompt = `你是一位专业的Minecraft基岩版文档翻译者,需要结合给出的原始英文文档,准确翻译为简体中文,保留所有的vitepress特性和组件。在翻译时,尽量保证概念传达的准确性,但是同时需要满足中文母语者的生活自然语序和语法和词语,阅读时需要尽量轻松和容易。 +翻译要求: +- 包括头部的matter yml内容,也需要对应翻译。 +- 在开头根据matter yml的title字段,添加h1大标题(如果没有的话就不用添加) +- 不需要翻译代码,但是需要翻译代码块中的注释。 +- 部分在开发时遇到的专有词汇,需要考虑是否需要保留英文原文。比如:Tick、Component、Entity、Block、Item等 +- 组件需要被替换为另一种表达形式,使用::: code-group :::包裹(别忘了末尾的:::),例子: +::: code-group +\`\`\`json [原始CodeHeader的值] +xxx +\`\`\` +::: + +以下为待翻译内容: +${content}`; + + console.log(`🧠 开始翻译,请耐心等待...`); + + // 使用OpenAI API进行流式翻译 + const stream = await openai.chat.completions.create({ + model: model, + messages: [ + { + role: "system", + content: "你是一个专业的Markdown文档翻译助手,能够准确地将英文Markdown内容翻译成简体中文,同时保持原有格式和结构。" + }, + { + role: "user", + content: prompt + } + ], + stream: true, + max_tokens: 8 * 1024, + response_format: { type: "text" }, + }); + + let translatedContent = ''; + let reasoningContent = ''; + + for await (const chunk of stream) { + // 提取思考过程和内容(如果有的话) + const reasoning = chunk.choices[0]?.delta?.reasoning_content || ''; + const content = chunk.choices[0]?.delta?.content || ''; + + if (reasoning) { + process.stdout.write(reasoning); + reasoningContent += reasoning; + } + + if (content) { + process.stdout.write(content); + translatedContent += content; + } + } + + // 将翻译后的内容写入文件 + await fs.writeFile(filePath, translatedContent.trim(), 'utf-8'); + console.log(`\n✅ 文件翻译完成: ${path.relative(targetDir, filePath)}`); + + return true; + } catch (error) { + console.error(`\n❌ 翻译 ${path.relative(targetDir, filePath)} 时出错:`); + console.error(error.message); + return false; + } +} + +async function promptForConfirmation(message) { + const rl = createInterface({ + input: process.stdin, + output: process.stdout + }); + + return new Promise(resolve => { + rl.question(message, answer => { + rl.close(); + resolve(answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes'); + }); + }); +} + +async function main() { + try { + console.log(`🔍 正在扫描目录: ${targetDir}`); + + // 检查目录是否存在 + try { + await fs.access(targetDir); + } catch (error) { + console.error(`❌ 指定的目录不存在: ${targetDir}`); + process.exit(1); + } + + // 查找所有Markdown文件 + const markdownFiles = await findMarkdownFiles(targetDir); + + if (markdownFiles.length === 0) { + console.log(`⚠️ 在 ${targetDir} 中没有找到Markdown文件`); + process.exit(0); + } + + console.log(`🔎 找到 ${markdownFiles.length} 个Markdown文件`); + markdownFiles.forEach((file, index) => { + console.log(` ${index + 1}. ${path.relative(targetDir, file)}`); + }); + + // 请求确认 + const confirmed = await promptForConfirmation(`⚠️ 此操作将翻译并覆盖以上文件。确认继续吗? (y/n): `); + + if (!confirmed) { + console.log('❌ 操作已取消'); + process.exit(0); + } + + console.log('🚀 开始翻译...'); + + // 逐个翻译文件 + let successful = 0; + let failed = 0; + + for (let i = 0; i < markdownFiles.length; i++) { + const file = markdownFiles[i]; + console.log(`\n[${i + 1}/${markdownFiles.length}] 处理文件: ${path.relative(targetDir, file)}`); + + const success = await translateMarkdown(file); + + if (success) { + successful++; + } else { + failed++; + } + } + + console.log('\n📊 翻译统计:'); + console.log(`✅ 成功: ${successful} 个文件`); + console.log(`❌ 失败: ${failed} 个文件`); + + if (failed > 0) { + process.exit(1); + } + } catch (error) { + console.error('❌ 发生错误:'); + console.error(error); + process.exit(1); + } +} + +// 通过node指令手动执行,因为需要带参数:node scripts/ai-translate.mjs <目录相对路径> +main(); \ No newline at end of file diff --git a/scripts/sidebar.ts b/scripts/sidebar.ts index f98751fe..95bcfadb 100644 --- a/scripts/sidebar.ts +++ b/scripts/sidebar.ts @@ -1,6 +1,7 @@ import fs from 'fs/promises'; import path from 'path'; import fg from 'fast-glob'; +import matter from 'gray-matter' // 定义侧边栏项目接口 interface SidebarItem { @@ -34,9 +35,16 @@ const CATEGORY_MAP: Record = { * 从名称中提取排序数字 * 例如:'0-概述' 返回 0,'1-基础' 返回 1 */ -function extractOrderNumber(name: string): number { +function extractOrderNumber(name: string, matterData: any): number { const match = name.match(/^(\d+)-/); - return match ? parseInt(match[1], 10) : Number.MAX_SAFE_INTEGER; // 没有数字前缀的排在最后 + if (match) { + return parseInt(match[1], 10); + } else if (matterData.order) { + return parseInt(matterData.order); + } else if (matterData.nav_order) { + return parseInt(matterData.nav_order); + } + return Number.MAX_SAFE_INTEGER; } /** @@ -54,6 +62,14 @@ async function generateSidebar(): Promise> { const segments = relativePath.split(path.sep); const categoryKey = segments[0]; + // 读取文件内容,然后通过matter读取头部信息 + const fileContent = await fs.readFile(filePath, 'utf-8'); + const { data: matterData } = matter(fileContent); + + if (matterData.hidden) { + continue; + } + // 使用映射表获取显示名称 const categoryName = CATEGORY_MAP[categoryKey] || categoryKey; @@ -77,11 +93,11 @@ async function generateSidebar(): Promise> { link = `/${segment}`; } - const order = extractOrderNumber(segment); // 提取排序号 + const order = extractOrderNumber(segment, matterData); // 提取排序号 if (isLast) { // 添加最终文件项 - const title = await getTitleFromFile(filePath); + const title = await getTitleFromFile(filePath, matterData); // 添加 activeMatch 以支持更精确的高亮匹配 const activeMatch = `^${link}(?:/|$)`; currentLevel.push({ text: title, link, order, activeMatch }); @@ -158,25 +174,14 @@ function sortSidebarItems(items: SidebarItem[]): void { /** * 从文件 Frontmatter 或文件名提取标题 */ -async function getTitleFromFile(filePath: string): Promise { - try { - const content = await fs.readFile(filePath, 'utf-8'); - // 寻找 title 在 frontmatter 中的位置 - const frontmatterMatch = content.match(/^---\s*[\s\S]*?title:\s*(.*?)[\r\n][\s\S]*?---/); - - if (frontmatterMatch && frontmatterMatch[1]) { - // 清理标题(移除引号等) - return frontmatterMatch[1].trim().replace(/['"]/g, ''); - } - - // 如果没有 frontmatter title,从文件名获取 - const basename = path.basename(filePath, '.md'); - // 普通文件,移除数字前缀和连字符 - return basename.replace(/^\d+-\s*/, '').replace(/-/g, ' '); - } catch (error) { - console.error(`读取文件失败: ${filePath}`, error); - return path.basename(filePath, '.md'); +async function getTitleFromFile(filePath: string, matterData: any): Promise { + if (matterData.title) { + return matterData.title.trim().replace(/['"]/g, ''); } + // 如果没有 frontmatter title,从文件名获取 + const basename = path.basename(filePath, '.md'); + // 普通文件,移除数字前缀和连字符 + return basename.replace(/^\d+-\s*/, '').replace(/-/g, ' '); } export default generateSidebar;