// Copyright (c) JaylyMC.
// Licensed under the GPL-3.0 License.

{
  "format_version": "1.20.70",
  "minecraft:entity": {
    "description": {
      "identifier": "entity:terminator",
      "is_spawnable": true,
      "is_summonable": true,
      "is_experimental": false,
      "scripts": {
        "animate": [
          "terminator.is_sitting",
          "terminator.shield",
          "terminator.build.vertical",
          "terminator.has_target"
        ]
      },
      "animations": {
        "terminator.is_sitting": "controller.animation.terminator.is_sitting",
        "terminator.shield": "controller.animation.terminator.shield",
        "terminator.build.vertical": "controller.animation.terminator.build.vertical",
        "terminator.has_target": "controller.animation.terminator.has_target"
      },
      "properties": {
        "terminator:is_sitting": {
          "client_sync": false,
          "type": "bool",
          "default": false
        },
        "terminator:has_target": {
          "client_sync": false,
          "type": "bool",
          "default": false
        },
        "terminator:snowball_attack": {
          "client_sync": false,
          "type": "bool",
          "default": false
        },
        "terminator:is_using_shield": {
          "client_sync": true,
          "type": "bool",
          "default": false
        }
      }
    },
    "component_groups": {
      "terminator:steve_default_skin": {
        "minecraft:variant": {
          "value": 0
        }
      },
      "terminator:alex_default_skin": {
        "minecraft:variant": {
          "value": 1
        }
      },
      "terminator:steve_christmas_skin": {
        "minecraft:variant": {
          "value": 2
        }
      },
      "terminator:alex_christmas_skin": {
        "minecraft:variant": {
          "value": 3
        }
      },
      "terminator:custom_skin": {
        "minecraft:variant": {
          "value": 4
        }
      },
      "terminator:customSlim_skin": {
        "minecraft:variant": {
          "value": 5
        }
      },
      "terminator:disable_physics": {
        "minecraft:physics": {
          "has_collision": false,
          "has_gravity": false
        }
      },
      "minecraft:snowball_ranged_attack": {
        "minecraft:behavior.ranged_attack": {
          "priority": 1,
          "attack_interval_min": 0.0,
          "attack_interval_max": 0.2,
          "attack_radius": 15.0,
          "attack_radius_min": 3.0
        },
        "minecraft:shooter": {
          "def": "minecraft:snowball"
        },
        "minecraft:environment_sensor": {
          // this environment sensor include all combat mode requirements
          "triggers": [
            {
              "filters": {
                "any_of": [
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "!=",
                    "value": "minecraft:snowball"
                  },
                  {
                    "all_of": [
                      {
                        "test": "is_underwater",
                        "subject": "self",
                        "operator": "==",
                        "value": true
                      },
                      {
                        "test": "has_equipment",
                        "subject": "self",
                        "operator": "!=",
                        "value": "minecraft:trident"
                      }
                    ]
                  }
                ]
              },
              "event": "minecraft:melee_mode"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "in_water",
                    "subject": "self",
                    "operator": "==",
                    "value": false
                  },
                  {
                    "test": "has_ranged_weapon",
                    "subject": "self",
                    "operator": "==",
                    "value": true
                  },
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "==",
                    "value": "minecraft:bow"
                  }
                ]
              },
              "event": "minecraft:bow_ranged_mode"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "in_water",
                    "subject": "self",
                    "operator": "==",
                    "value": false
                  },
                  {
                    "test": "has_ranged_weapon",
                    "subject": "self",
                    "operator": "==",
                    "value": true
                  },
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "==",
                    "value": "minecraft:crossbow"
                  }
                ]
              },
              "event": "minecraft:crossbow_ranged_mode"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "==",
                    "value": "minecraft:trident"
                  }
                ]
              },
              "event": "minecraft:trident_ranged_mode"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "has_mob_effect",
                    "subject": "self",
                    "value": "bad_omen"
                  },
                  { "test": "is_in_village", "subject": "self", "value": true }
                ]
              },
              "event": "minecraft:trigger_raid"
            },
            {
              "filters": {
                "test": "has_component",
                "subject": "self",
                "operator": "!=",
                "value": "minecraft:behavior.nearest_attackable_target"
              },
              "event": "terminator:fix_default_target"
            }
          ]
        }
      },
      "terminator:break_blocks.v2": {
        // Updated module "terminator:break_blocks" from v1 to v2 in terminator addon v1.2.18.7
        // "terminator:break_blocks.v1" library archive in: https://github.com/JaylyDev/terminator/blob/2fc1edd15e370b3a2b5983b310d18ff321f8be22/BP/entities/terminator.json#L153
        "minecraft:break_blocks": {
          "breakable_blocks": [
            "acacia_button",
            "acacia_standing_sign",
            "acacia_wall_sign",
            "activator_rail",
            "amethyst_cluster",
            "ancient_debris",
            "azalea",
            "azalea_leaves",
            "azalea_leaves_flowered",
            "bamboo",
            "bamboo_sapling",
            "barrel",
            "basalt",
            "beacon",
            "bed",
            "beetroot",
            "big_dripleaf",
            "birch_button",
            "birch_standing_sign",
            "birch_wall_sign",
            "blackstone",
            "blackstone_wall",
            "blast_furnace",
            "bookshelf",
            "brewing_stand",
            "brown_mushroom",
            "cactus",
            "cake",
            "carpet",
            "carrots",
            "carved_pumpkin",
            "cauldron",
            "cave_vines",
            "cave_vines_body_with_berries",
            "cave_vines_head_with_berries",
            "chest",
            "chorus_flower",
            "chorus_plant",
            "cocoa",
            "crimson_button",
            "crimson_fungus",
            "crimson_roots",
            "crimson_standing_sign",
            "crimson_wall_sign",
            "dark_oak_button",
            "darkoak_standing_sign",
            "darkoak_wall_sign",
            "deadbush",
            "detector_rail",
            "double_plant",
            "ender_chest",
            "fire",
            "flower_pot",
            "flowering_azalea",
            "frame",
            "glass",
            "glass_pane",
            "glow_frame",
            "glow_lichen",
            "glowstone",
            "golden_rail",
            "gravel",
            "hanging_roots",
            "jungle_button",
            "jungle_standing_sign",
            "jungle_wall_sign",
            "kelp",
            "large_amethyst_bud",
            "leaves",
            "leaves2",
            "lever",
            "lit_pumpkin",
            "lit_redstone_lamp",
            "loom",
            "medium_amethyst_bud",
            "nether_sprouts",
            "nether_wart",
            "potatoes",
            "powered_comparator",
            "powered_repeater",
            "rail",
            "red_flower",
            "red_mushroom",
            "redstone_torch",
            "redstone_wire",
            "reeds",
            "sapling",
            "scaffolding",
            "sea_pickle",
            "seagrass",
            "shulker_box",
            "slime",
            "small_amethyst_bud",
            "snow_layer",
            "soul_fire",
            "soul_torch",
            "spruce_button",
            "spruce_standing_sign",
            "spruce_wall_sign",
            "stained_glass",
            "stained_glass_pane",
            "stained_hardened_clay",
            "standing_banner",
            "standing_sign",
            "stone_button",
            "sweet_berry_bush",
            "tallgrass",
            "tinted_glass",
            "tnt",
            "torch",
            "trapped_chest",
            "tripWire",
            "tripwire_hook",
            "turtle_egg",
            "twisting_vines",
            "undyed_shulker_box",
            "unlit_redstone_torch",
            "unpowered_comparator",
            "unpowered_repeater",
            "vine",
            "wall_banner",
            "wall_sign",
            "warped_button",
            "warped_fungus",
            "warped_roots",
            "warped_standing_sign",
            "warped_wall_sign",
            "waterlily",
            "web",
            "weeping_vines",
            "wheat",
            "wither_rose",
            "wooden_button",
            "yellow_flower",
            // Following blocks are added since beta 1.2.22
            "dirt",
            "stone",
            "grass",
            "sand",
            "tuff",
            "netherrack",
            "end_stone",
            "honey_block",
            "candle",
            // 1.18 blocks
            "deepslate"
          ]
        }
      },
      "in_powder_snow": {
        "minecraft:is_shaking": {},
        "minecraft:environment_sensor": {
          "triggers": [
            {
              "filters": {
                "test": "in_block",
                "subject": "self",
                "operator": "!=",
                "value": "minecraft:powder_snow"
              },
              "event": "got_out_of_powder_snow"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "has_mob_effect",
                    "subject": "self",
                    "value": "bad_omen"
                  },
                  { "test": "is_in_village", "subject": "self", "value": true }
                ]
              },
              "event": "minecraft:trigger_raid"
            },
            {
              "filters": {
                "test": "has_component",
                "subject": "self",
                "operator": "!=",
                "value": "minecraft:behavior.nearest_attackable_target"
              },
              "event": "terminator:fix_default_target"
            }
          ]
        }
      },
      "got_out_of_powder_snow_environment_sensor": {
        "minecraft:environment_sensor": {
          // this environment sensor include all combat mode requirements
          "triggers": [
            {
              "filters": {
                "any_of": [
                  {
                    "test": "has_ranged_weapon",
                    "subject": "self",
                    "operator": "==",
                    "value": false
                  },
                  {
                    "all_of": [
                      {
                        "test": "is_underwater",
                        "subject": "self",
                        "operator": "==",
                        "value": true
                      },
                      {
                        "test": "has_equipment",
                        "subject": "self",
                        "operator": "!=",
                        "value": "minecraft:trident"
                      }
                    ]
                  }
                ]
              },
              "event": "minecraft:melee_mode"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "in_water",
                    "subject": "self",
                    "operator": "==",
                    "value": false
                  },
                  {
                    "test": "has_ranged_weapon",
                    "subject": "self",
                    "operator": "==",
                    "value": true
                  },
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "==",
                    "value": "minecraft:bow"
                  }
                ]
              },
              "event": "minecraft:bow_ranged_mode"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "in_water",
                    "subject": "self",
                    "operator": "==",
                    "value": false
                  },
                  {
                    "test": "has_ranged_weapon",
                    "subject": "self",
                    "operator": "==",
                    "value": true
                  },
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "==",
                    "value": "minecraft:crossbow"
                  }
                ]
              },
              "event": "minecraft:crossbow_ranged_mode"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "==",
                    "value": "minecraft:trident"
                  }
                ]
              },
              "event": "minecraft:trident_ranged_mode"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "has_mob_effect",
                    "subject": "self",
                    "value": "bad_omen"
                  },
                  { "test": "is_in_village", "subject": "self", "value": true }
                ]
              },
              "event": "minecraft:trigger_raid"
            },
            {
              "filters": {
                "test": "has_component",
                "subject": "self",
                "operator": "!=",
                "value": "minecraft:behavior.nearest_attackable_target"
              },
              "event": "terminator:fix_default_target"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "==",
                    "value": "minecraft:snowball"
                  }
                ]
              },
              "event": "minecraft:snowball_ranged_mode"
            }
          ]
        }
      },
      "minecraft:add_bad_omen": {
        "minecraft:spell_effects": {
          "add_effects": [
            {
              "effect": "bad_omen",
              "duration": 6000,
              "display_on_screen_animation": true
            }
          ]
        },
        "minecraft:timer": {
          "time": [0.0, 0.0],
          "looping": false,
          "time_down_event": {
            "event": "minecraft:clear_add_bad_omen",
            "target": "self"
          }
        }
      },
      "minecraft:clear_bad_omen_spell_effect": {
        "minecraft:spell_effects": {}
      },
      "terminator:breedable": {
        "minecraft:behavior.breed": {},
        "minecraft:breedable": {
          "allow_sitting": false,
          "require_tame": false,
          "inherit_tamed": false,
          "breeds_with": [
            {
              "mate_type": "entity:terminator",
              "baby_type": "entity:terminator",
              "breed_event": {
                "event": "terminator:disable_respawn",
                "target": "baby"
              }
            },
            {
              "mate_type": "minecraft:player",
              "baby_type": "minecraft:player"
            }
          ],
          "breed_items": ["golden_carrot", "carrot"]
        }
      },
      "minecraft:raid_trigger": {
        "minecraft:raid_trigger": {
          "triggered_event": {
            "event": "minecraft:remove_raid_trigger",
            "target": "self"
          }
        },
        "minecraft:spell_effects": {
          "remove_effects": "bad_omen"
        }
      },
      "minecraft:can_have_equipment": {
        "minecraft:equipment": {
          "table": "loot_tables/entities/terminator_equipment.json"
        }
      },
      "terminator:find_path": {
        "minecraft:behavior.nearest_attackable_target": {
          "priority": 0,
          "must_see": false,
          "reselect_targets": true,
          "within_radius": 1024,
          "target_search_height": -1,
          "entity_types": [
            {
              "filters": {
                "all_of": [
                  { "test": "is_family", "subject": "other", "value": "dummy" },
                  {
                    "test": "int_property",
                    "subject": "other",
                    "domain": "dummy:task_type",
                    "value": 2
                  }
                ]
              },
              "max_dist": 1024,
              "must_see": false
            }
          ]
        },
        "minecraft:behavior.melee_attack": {
          "priority": 1,
          "track_target": true,
          "speed_multiplier": 1.0
        },
        "minecraft:entity_sensor": {
          "subsensors": [
            {
              "event_filters": {
                "all_of": [
                  { "test": "is_family", "subject": "other", "value": "dummy" },
                  {
                    "test": "int_property",
                    "subject": "other",
                    "domain": "dummy:task_type",
                    "value": 2
                  }
                ]
              },
              "minimum_count": 1,
              "maximum_count": 32767,
              "range": [10, 10],
              "require_all": true,
              "event": "terminator:remove_escape"
            }
          ]
        }
      },
      "terminator:find_end_portal": {
        "minecraft:behavior.move_to_block": {
          "priority": 1,
          "tick_interval": 0,
          "search_range": 1024,
          "search_height": 384,
          "start_chance": 100.0,
          "goal_radius": 1.0,
          "stay_duration": 1.0,
          "target_selection_method": "nearest",
          "target_offset": [0, 0.25, 0],
          "target_blocks": ["minecraft:end_portal"],
          "on_reach": [
            {
              "event": "terminator:disable_find_end_portal",
              "target": "self"
            }
          ],
          "on_stay_completed": [
            {
              "event": "terminator:disable_find_end_portal",
              "target": "self"
            }
          ]
        }
      },
      "terminator:find_nether_portal": {
        "minecraft:behavior.move_to_block": {
          "priority": 1,
          "tick_interval": 0,
          "search_range": 512,
          "search_height": 384,
          "start_chance": 100.0,
          "goal_radius": 1.0,
          "stay_duration": 1.0,
          "target_selection_method": "nearest",
          "target_offset": [0, 0.25, 0],
          "target_blocks": ["minecraft:portal"],
          "on_reach": [
            {
              "event": "terminator:disable_find_nether_portal",
              "target": "self"
            }
          ],
          "on_stay_completed": [
            {
              "event": "terminator:disable_find_nether_portal",
              "target": "self"
            }
          ]
        },
        "minecraft:timer": {
          "looping": true,
          "time": 180,
          "time_down_event": {
            "event": "terminator:make_nether_portal",
            "target": "self"
          }
        }
      },
      "terminator:default_attack_target": {
        // this fixes terminator's nearest attackable target behaviour after removing terminator:find_path
        // starting from v1.2.17.4, spawning entity will include this component group to fix critical issues
        "minecraft:behavior.nearest_attackable_target": {
          "priority": 0,
          "must_see": false,
          "reselect_targets": true,
          "within_radius": 1024,
          "must_see_forget_duration": 32767.0,
          "target_search_height": -1,
          "entity_types": [
            {
              "filters": {
                "all_of": [
                  {
                    "test": "is_family",
                    "subject": "other",
                    "operator": "==",
                    "value": "player"
                  },
                  {
                    "test": "is_family",
                    "subject": "other",
                    "operator": "!=",
                    "value": "terminator"
                  },
                  {
                    "test": "has_mob_effect",
                    "subject": "other",
                    "operator": "!=",
                    "value": "invisibility"
                  }
                ]
              },
              "max_dist": 1024,
              "must_see": false
            },
            {
              "filters": {
                "all_of": [
                  { "test": "is_family", "subject": "other", "value": "wolf" },
                  {
                    "test": "has_component",
                    "subject": "other",
                    "operator": "==",
                    "value": "minecraft:is_tamed"
                  },
                  {
                    "test": "has_mob_effect",
                    "subject": "other",
                    "operator": "!=",
                    "value": "invisibility"
                  }
                ]
              },
              "max_dist": 16,
              "must_see": true
            },
            {
              "filters": {
                "all_of": [
                  {
                    "any_of": [
                      {
                        "test": "is_family",
                        "subject": "other",
                        "value": "snowgolem"
                      },
                      {
                        "test": "is_family",
                        "subject": "other",
                        "value": "parrot_tame"
                      },
                      {
                        "test": "is_family",
                        "subject": "other",
                        "value": "axolotl"
                      },
                      {
                        "test": "is_family",
                        "subject": "other",
                        "value": "piglin"
                      }
                    ]
                  },
                  {
                    "test": "has_mob_effect",
                    "subject": "other",
                    "operator": "!=",
                    "value": "invisibility"
                  }
                ]
              },
              "max_dist": 16,
              "must_see": true
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "is_family",
                    "subject": "other",
                    "value": "irongolem"
                  },
                  {
                    "test": "has_mob_effect",
                    "subject": "other",
                    "operator": "!=",
                    "value": "invisibility"
                  },
                  {
                    "test": "has_equipment",
                    "domain": "head",
                    "operator": "==",
                    "value": "netherite_helmet"
                  },
                  {
                    "test": "has_equipment",
                    "domain": "feet",
                    "operator": "==",
                    "value": "netherite_boots"
                  },
                  {
                    "any_of": [
                      {
                        "test": "has_equipment",
                        "domain": "armor",
                        "operator": "==",
                        "value": "netherite_chestplate"
                      },
                      {
                        "test": "has_equipment",
                        "domain": "leg",
                        "operator": "==",
                        "value": "netherite_leggings"
                      }
                    ]
                  },
                  {
                    "any_of": [
                      {
                        "test": "has_equipment",
                        "domain": "hand",
                        "operator": "==",
                        "value": "netherite_sword"
                      },
                      {
                        "test": "has_equipment",
                        "domain": "hand",
                        "operator": "==",
                        "value": "diamond_sword"
                      },
                      {
                        "test": "has_equipment",
                        "domain": "hand",
                        "operator": "==",
                        "value": "golden_sword"
                      },
                      {
                        "test": "has_equipment",
                        "domain": "hand",
                        "operator": "==",
                        "value": "iron_sword"
                      },
                      {
                        "test": "has_equipment",
                        "domain": "hand",
                        "operator": "==",
                        "value": "stone_sword"
                      },
                      {
                        "test": "has_equipment",
                        "domain": "hand",
                        "operator": "==",
                        "value": "wooden_sword"
                      }
                    ]
                  }
                ]
              },
              "max_dist": 24,
              "must_see": true
            }
          ]
        }
      },
      "terminator:spawn_terminator": {
        "minecraft:timer": {
          "looping": false,
          "randomInterval": true,
          "time": [0, 1],
          "time_down_event": {
            "event": "terminator:force_respawn",
            "target": "self"
          }
        }
      },
      "terminator:shield": {
        "minecraft:damage_sensor": {
          "triggers": [
            { "cause": "anvil", "deals_damage": true },
            {
              "on_damage": {
                "event": "terminator:respond_shield"
              },
              "cause": "block_explosion",
              "deals_damage": false
            },
            { "cause": "charging", "deals_damage": true },
            { "cause": "contact", "deals_damage": true },
            { "cause": "drowning", "deals_damage": true },
            {
              "on_damage": {
                "event": "terminator:respond_shield"
              },
              "cause": "entity_attack",
              "deals_damage": false
            },
            {
              "on_damage": {
                "event": "terminator:respond_shield"
              },
              "cause": "entity_explosion",
              "deals_damage": false
            },
            { "cause": "fall", "deals_damage": true },
            { "cause": "falling_block", "deals_damage": true },
            { "cause": "fire", "deals_damage": true },
            { "cause": "fire_tick", "deals_damage": true },
            { "cause": "fireworks", "deals_damage": true },
            { "cause": "fly_into_wall", "deals_damage": true },
            { "cause": "freezing", "deals_damage": true },
            { "cause": "lava", "deals_damage": true },
            { "cause": "lightning", "deals_damage": true },
            { "cause": "magic", "deals_damage": true },
            { "cause": "magma", "deals_damage": true },
            { "cause": "override", "deals_damage": true },
            { "cause": "piston", "deals_damage": true },
            {
              "on_damage": {
                "event": "terminator:respond_shield"
              },
              "cause": "projectile",
              "deals_damage": false
            },
            { "cause": "stalactite", "deals_damage": true },
            { "cause": "stalagmite", "deals_damage": true },
            { "cause": "starve", "deals_damage": true },
            {
              "cause": "suffocation",
              "deals_damage": true
            },
            { "cause": "self_destruct", "deals_damage": true },
            { "cause": "temperature", "deals_damage": true },
            { "cause": "thorns", "deals_damage": true },
            { "cause": "void", "deals_damage": true },
            { "cause": "wither", "deals_damage": true }
          ]
        }
      },
      "terminator:invulnerable": {
        "minecraft:damage_sensor": {
          "triggers": [
            { "cause": "anvil", "deals_damage": false },
            { "cause": "block_explosion", "deals_damage": false },
            { "cause": "charging", "deals_damage": false },
            { "cause": "contact", "deals_damage": false },
            { "cause": "drowning", "deals_damage": false },
            {
              "on_damage": {
                "filters": {
                  "all_of": [
                    {
                      "test": "is_family",
                      "subject": "other",
                      "operator": "==",
                      "value": "player"
                    },
                    {
                      "test": "has_equipment",
                      "subject": "other",
                      "operator": "==",
                      "value": "barrier"
                    }
                  ]
                }
              },
              "cause": "entity_attack",
              "deals_damage": true
            },
            {
              "on_damage": {
                "filters": {
                  "any_of": [
                    {
                      "test": "is_family",
                      "subject": "other",
                      "operator": "==",
                      "value": "player"
                    },
                    {
                      "test": "is_family",
                      "subject": "other",
                      "operator": "==",
                      "value": "terminator"
                    }
                  ]
                }
              },
              "cause": "entity_attack",
              "deals_damage": false
            },
            { "cause": "entity_explosion", "deals_damage": false },
            { "cause": "fall", "deals_damage": false },
            { "cause": "falling_block", "deals_damage": false },
            { "cause": "fire", "deals_damage": false },
            { "cause": "fire_tick", "deals_damage": false },
            { "cause": "fireworks", "deals_damage": false },
            { "cause": "fly_into_wall", "deals_damage": false },
            { "cause": "freezing", "deals_damage": false },
            { "cause": "lava", "deals_damage": false },
            { "cause": "lightning", "deals_damage": false },
            { "cause": "magic", "deals_damage": false },
            { "cause": "magma", "deals_damage": false },
            { "cause": "override", "deals_damage": false },
            { "cause": "piston", "deals_damage": false },
            { "cause": "projectile", "deals_damage": false },
            { "cause": "stalactite", "deals_damage": false },
            { "cause": "stalagmite", "deals_damage": false },
            { "cause": "starve", "deals_damage": false },
            { "cause": "suffocation", "deals_damage": false },
            { "cause": "self_destruct", "deals_damage": false },
            { "cause": "temperature", "deals_damage": false },
            { "cause": "thorns", "deals_damage": false },
            { "cause": "void", "deals_damage": true },
            { "cause": "wither", "deals_damage": false }
          ]
        }
      },
      "shield:on_use": {
        "minecraft:timer": {
          "time": 0.125,
          "looping": false,
          "time_down_event": {
            "event": "terminator:disable_shield",
            "target": "self"
          }
        }
      },
      "minecraft:crossbow_ranged_unit": {
        "minecraft:behavior.ranged_attack": {
          "priority": 6,
          "attack_interval_min": 1,
          "attack_interval_max": 1,
          "attack_radius": 15,
          "attack_radius_min": 4,
          "speed_multiplier": 0.3034514709288858, // 1.31 (sneaking) / 4.317 (walking)
          "target_in_sight_time": 0.1
        },
        "minecraft:shooter": {
          "def": "minecraft:arrow"
        },
        "minecraft:attack_damage": {
          "value": 5
        },
        "minecraft:behavior.charge_held_item": {
          "priority": 3,
          "items": ["minecraft:arrow"]
        },
        "minecraft:environment_sensor": {
          "triggers": [
            {
              "filters": {
                "all_of": [
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "!=",
                    "value": "minecraft:trident"
                  },
                  {
                    "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
                  },
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "==",
                    "value": "minecraft:bow"
                  }
                ]
              },
              "event": "minecraft:bow_ranged_mode"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "==",
                    "value": "minecraft:trident"
                  }
                ]
              },
              "event": "minecraft:trident_ranged_mode"
            },
            {
              "filters": {
                "test": "in_block",
                "subject": "self",
                "operator": "==",
                "value": "minecraft:powder_snow"
              },
              "event": "got_in_powder_snow"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "has_mob_effect",
                    "subject": "self",
                    "value": "bad_omen"
                  },
                  { "test": "is_in_village", "subject": "self", "value": true }
                ]
              },
              "event": "minecraft:trigger_raid"
            },
            {
              "filters": {
                "test": "has_component",
                "subject": "self",
                "operator": "!=",
                "value": "minecraft:behavior.nearest_attackable_target"
              },
              "event": "terminator:fix_default_target"
            },
            {
              "filters": {
                "test": "in_nether",
                "subject": "player",
                "value": true
              },
              "event": "terminator:make_nether_portal"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "==",
                    "value": "minecraft:snowball"
                  }
                ]
              },
              "event": "minecraft:snowball_ranged_mode"
            }
          ]
        }
      },
      "minecraft:bow_ranged_attack": {
        "minecraft:behavior.ranged_attack": {
          "priority": 1,
          "attack_interval_min": 1.0, // default is 1.0
          "attack_interval_max": 3.0, // default is 3.0
          "attack_radius": 15.0,
          "speed_multiplier": 0.3034514709288858 // 1.31 (sneaking) / 4.317 (walking)
        },
        "minecraft:shooter": {
          "def": "minecraft:arrow"
        },
        "minecraft:environment_sensor": {
          "triggers": [
            {
              "filters": {
                "any_of": [
                  {
                    "all_of": [
                      {
                        "test": "is_underwater",
                        "subject": "self",
                        "operator": "==",
                        "value": true
                      },
                      {
                        "test": "has_equipment",
                        "subject": "self",
                        "operator": "!=",
                        "value": "minecraft:trident"
                      }
                    ]
                  },
                  {
                    "all_of": [
                      {
                        "test": "has_equipment",
                        "subject": "self",
                        "operator": "!=",
                        "value": "minecraft:trident"
                      },
                      {
                        "test": "has_ranged_weapon",
                        "subject": "self",
                        "operator": "==",
                        "value": false
                      }
                    ]
                  }
                ]
              },
              "event": "minecraft:melee_mode"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "==",
                    "value": "minecraft:trident"
                  }
                ]
              },
              "event": "minecraft:trident_ranged_mode"
            },
            {
              "filters": {
                "test": "in_block",
                "subject": "self",
                "operator": "==",
                "value": "minecraft:powder_snow"
              },
              "event": "got_in_powder_snow"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "has_mob_effect",
                    "subject": "self",
                    "value": "bad_omen"
                  },
                  { "test": "is_in_village", "subject": "self", "value": true }
                ]
              },
              "event": "minecraft:trigger_raid"
            },
            {
              "filters": {
                "test": "has_component",
                "subject": "self",
                "operator": "!=",
                "value": "minecraft:behavior.nearest_attackable_target"
              },
              "event": "terminator:fix_default_target"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "in_water",
                    "subject": "self",
                    "operator": "==",
                    "value": false
                  },
                  {
                    "test": "has_ranged_weapon",
                    "subject": "self",
                    "operator": "==",
                    "value": true
                  },
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "==",
                    "value": "minecraft:crossbow"
                  }
                ]
              },
              "event": "minecraft:crossbow_ranged_mode"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "==",
                    "value": "minecraft:snowball"
                  }
                ]
              },
              "event": "minecraft:snowball_ranged_mode"
            }
          ]
        }
      },
      "minecraft:melee_attack": {
        "minecraft:behavior.melee_attack": {
          "priority": 1,
          "track_target": true,
          "speed_multiplier": 1.0,
          "melee_fov": 90
        },
        "minecraft:environment_sensor": {
          "triggers": [
            {
              "filters": {
                "all_of": [
                  {
                    "test": "in_water",
                    "subject": "self",
                    "operator": "==",
                    "value": false
                  },
                  {
                    "test": "has_ranged_weapon",
                    "subject": "self",
                    "operator": "==",
                    "value": true
                  },
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "==",
                    "value": "minecraft:bow"
                  }
                ]
              },
              "event": "minecraft:bow_ranged_mode"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "in_water",
                    "subject": "self",
                    "operator": "==",
                    "value": false
                  },
                  {
                    "test": "has_ranged_weapon",
                    "subject": "self",
                    "operator": "==",
                    "value": true
                  },
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "==",
                    "value": "minecraft:crossbow"
                  }
                ]
              },
              "event": "minecraft:crossbow_ranged_mode"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "==",
                    "value": "minecraft:trident"
                  }
                ]
              },
              "event": "minecraft:trident_ranged_mode"
            },
            {
              "filters": {
                "test": "in_block",
                "subject": "self",
                "operator": "==",
                "value": "minecraft:powder_snow"
              },
              "event": "got_in_powder_snow"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "has_mob_effect",
                    "subject": "self",
                    "value": "bad_omen"
                  },
                  { "test": "is_in_village", "subject": "self", "value": true }
                ]
              },
              "event": "minecraft:trigger_raid"
            },
            {
              "filters": {
                "test": "has_component",
                "subject": "self",
                "operator": "!=",
                "value": "minecraft:behavior.nearest_attackable_target"
              },
              "event": "terminator:fix_default_target"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "==",
                    "value": "minecraft:snowball"
                  }
                ]
              },
              "event": "minecraft:snowball_ranged_mode"
            }
          ]
        }
      },
      "minecraft:trident_mode_switcher": {
        "minecraft:target_nearby_sensor": {
          "inside_range": 3.0,
          "outside_range": 4.0,
          "on_inside_range": {
            "event": "minecraft:trident_switch_to_melee",
            "target": "self"
          },
          "on_outside_range": {
            "event": "minecraft:trident_switch_to_ranged",
            "target": "self"
          }
        },
        "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:bow_ranged_mode"
            },
            {
              "filters": {
                "test": "in_block",
                "subject": "self",
                "operator": "==",
                "value": "minecraft:powder_snow"
              },
              "event": "got_in_powder_snow"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "in_water",
                    "subject": "self",
                    "operator": "==",
                    "value": false
                  },
                  {
                    "test": "has_ranged_weapon",
                    "subject": "self",
                    "operator": "==",
                    "value": true
                  },
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "==",
                    "value": "minecraft:bow"
                  }
                ]
              },
              "event": "minecraft:bow_ranged_mode"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "in_water",
                    "subject": "self",
                    "operator": "==",
                    "value": false
                  },
                  {
                    "test": "has_ranged_weapon",
                    "subject": "self",
                    "operator": "==",
                    "value": true
                  },
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "==",
                    "value": "minecraft:crossbow"
                  }
                ]
              },
              "event": "minecraft:crossbow_ranged_mode"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "!=",
                    "value": "minecraft:trident"
                  },
                  {
                    "test": "has_ranged_weapon",
                    "subject": "self",
                    "operator": "==",
                    "value": false
                  }
                ]
              },
              "event": "minecraft:melee_mode"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "has_mob_effect",
                    "subject": "self",
                    "value": "bad_omen"
                  },
                  { "test": "is_in_village", "subject": "self", "value": true }
                ]
              },
              "event": "minecraft:trigger_raid"
            },
            {
              "filters": {
                "test": "has_component",
                "subject": "self",
                "operator": "!=",
                "value": "minecraft:behavior.nearest_attackable_target"
              },
              "event": "terminator:fix_default_target"
            },
            {
              "filters": {
                "all_of": [
                  {
                    "test": "has_equipment",
                    "subject": "self",
                    "operator": "==",
                    "value": "minecraft:snowball"
                  }
                ]
              },
              "event": "minecraft:snowball_ranged_mode"
            }
          ]
        }
      },
      "minecraft:trident_ranged_attack": {
        "minecraft:shooter": {
          "def": "minecraft:thrown_trident"
        },
        "minecraft:behavior.ranged_attack": {
          "priority": 1,
          "attack_interval_min": 1.0,
          "attack_interval_max": 3.0,
          "attack_radius": 15.0,
          "speed_multiplier": 0.3034514709288858 // 1.31 (sneaking) / 4.317 (walking)
        }
      },
      "minecraft:trident_melee_attack": {
        "minecraft:behavior.melee_attack": {
          "priority": 1,
          "track_target": true,
          "speed_multiplier": 1.0,
          "melee_fov": 90
        }
      },
      "terminator:bossbar": {
        "minecraft:boss": {
          "should_darken_sky": true, // this variable does not work LMAO
          "name": "entity.entity:terminator.name",
          "hud_range": 64
        }
      }
    },
    "components": {
      // Terminator Components
      "minecraft:experience_reward": {
        "on_death": "Math.Min(query.last_hit_by_player ? (query.is_invisible ? 12 : 5) + (Math.die_roll(query.equipment_count,1,3)) : 0, 200)"
      },
      "minecraft:is_hidden_when_invisible": {},
      "minecraft:physics": {
        "has_collision": true,
        "has_gravity": true
      },
      "minecraft:loot": {
        "table": "loot_tables/empty.json"
      },
      "minecraft:nameable": {
        "always_show": true,
        "allow_name_tag_renaming": true
      },
      "minecraft:type_family": {
        "family": ["terminator", "player"]
      },
      "minecraft:equip_item": {},
      "minecraft:collision_box": {
        "width": 0.6,
        "height": 1.9
      },
      "minecraft:movement.generic": {
        "max_turn": 30
      },
      "minecraft:navigation.generic": {
        "is_amphibious": true,
        "can_pass_doors": true,
        "can_walk": true,
        "can_break_doors": true,
        "can_open_doors": true,
        "can_open_iron_doors": true,
        "can_swim": true,
        "can_path_over_water": true,
        "avoid_damage_blocks": true,
        "can_path_over_lava": true,
        "avoid_portals": false,
        "avoid_sun": false,
        "avoid_water": false,
        "can_walk_in_lava": true,
        "can_breach": false,
        "can_jump": true,
        "can_path_from_air": true,
        "can_sink": true,
        "blocks_to_avoid": [
          "minecraft:powder_snow",
          "minecraft:web",
          "minecraft:magma",
          "minecraft:lava",
          "minecraft:flowing_lava",
          "minecraft:fire",
          "minecraft:sweet_berry_bush",
          "minecraft:cactus",
          "minecraft:trapdoor",
          "minecraft:acacia_trapdoor",
          "minecraft:crimson_trapdoor",
          "minecraft:dark_oak_trapdoor",
          "minecraft:iron_trapdoor",
          "minecraft:jungle_trapdoor",
          "minecraft:spruce_trapdoor",
          "minecraft:warped_trapdoor",
          "minecraft:tnt",
          "minecraft:wither_rose",
          "minecraft:big_dripleaf",
          "minecraft:pointed_dripstone",
          "minecraft:soul_fire"
        ]
      },
      "minecraft:follow_range": {
        "value": 1024,
        "max": 1024
      },
      "minecraft:annotation.break_door": {
        "min_difficulty": "peaceful",
        "break_time": 4
      },
      "minecraft:jump.static": {
        "jump_power": 0.42
      },
      "minecraft:can_climb": {},
      "minecraft:inventory": {
        "inventory_size": 36,
        "private": true
      },
      "minecraft:movement": {
        // Walking speed: 4.317 * 0.075 = 0.323775 (walking speed is approximately 4.317 m/s)
        // Sprinting speed: (5.612 / 4.317) * 0.323775 = 0.4209 (sprinting speed is around 5.612 m/s)
        "value": [0.323775, 0.4209]
      },
      "minecraft:underwater_movement": {
        // According to https://minecraft.wiki/w/Swimming#Usage:
        // When swimming on the surface of still water, the player moves at 2.20 blocks per second (2.2 * 0.075 = 0.165)
        // If the player is partially submerged in water, the player moves at 1.97 blocks per second (1.97 * 0.075 = 0.14775)
        "value": 0.14775
      },
      "minecraft:health": {
        "value": 60,
        "max": 60
      },
      "minecraft:hurt_on_condition": {
        "damage_conditions": [
          {
            "filters": {
              "all_of": [
                {
                  "test": "in_lava",
                  "subject": "self",
                  "operator": "==",
                  "value": true
                }
              ]
            },
            "cause": "lava",
            "damage_per_tick": 4
          }
        ]
      },
      "minecraft:breathable": {
        "total_supply": 15,
        "suffocate_time": -1,
        "inhale_time": 3.75,
        "generates_bubbles": true
      },
      "minecraft:shareables": {
        "items": [
          {
            "item": "minecraft:netherite_sword",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 0,
            "stored_in_inventory": true
          }, // Weapons
          {
            "item": "minecraft:diamond_sword",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 1,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:iron_sword",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 2,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:stone_sword",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 3,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:golden_sword",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 4,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:wooden_sword",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 5,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:netherite_helmet",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 0,
            "stored_in_inventory": true
          }, // Helmets
          {
            "item": "minecraft:diamond_helmet",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 1,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:iron_helmet",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 2,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:chainmail_helmet",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 3,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:golden_helmet",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 4,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:leather_helmet",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 5,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:netherite_chestplate",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 0,
            "stored_in_inventory": true
          }, // Chestplates
          {
            "item": "minecraft:diamond_chestplate",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 1,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:iron_chestplate",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 2,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:chainmail_chestplate",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 3,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:golden_chestplate",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 4,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:leather_chestplate",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 5,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:netherite_leggings",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 0,
            "stored_in_inventory": true
          }, // Leggings
          {
            "item": "minecraft:diamond_leggings",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 1,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:iron_leggings",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 2,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:chainmail_leggings",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 3,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:golden_leggings",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 4,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:leather_leggings",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 5,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:netherite_boots",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 0,
            "stored_in_inventory": true
          }, // Boots
          {
            "item": "minecraft:diamond_boots",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 1,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:iron_boots",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 2,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:chainmail_boots",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 3,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:golden_boots",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 4,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:leather_boots",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 5,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:cobblestone",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 6,
            "stored_in_inventory": true
          }, // blocks
          {
            "item": "minecraft:dirt",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 7,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:grass",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 8,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:planks",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 9,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:log",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 10,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:log2",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 11,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:totem_of_undying",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 0,
            "stored_in_inventory": true
          }, // miscs
          {
            "item": "minecraft:shield",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 1,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:trident",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 2,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:crossbow",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 3,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:bow",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 4,
            "stored_in_inventory": true
          },
          {
            "item": "minecraft:snowball",
            "want_amount": 64,
            "surplus_amount": 64,
            "priority": 4,
            "stored_in_inventory": true
          }
        ]
      },
      "minecraft:behavior.equip_item": {},
      "minecraft:preferred_path": {
        "max_fall_blocks": 13, // 13 blocks fall damage = -5 hearts or 10 healths
        "jump_cost": 0,
        "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"
            ]
          }
        ]
      },
      "minecraft:behavior.pickup_items": {
        "priority": 2,
        "max_dist": 16,
        "goal_radius": 2,
        "speed_multiplier": 1.0,
        "can_pickup_any_item": true,
        "can_pickup_to_hand_or_equipment": true
      },
      "minecraft:behavior.hurt_by_target": {
        "priority": 3
      },
      "minecraft:behavior.stomp_turtle_egg": {
        "priority": 4,
        "speed_multiplier": 1,
        "search_range": 10,
        "search_height": 2,
        "goal_radius": 1.14,
        "interval": 20
      },
      "minecraft:behavior.avoid_mob_type": {
        "priority": 5,
        "entity_types": [
          {
            "filters": {
              "any_of": [
                {
                  "test": "is_family",
                  "subject": "other",
                  "operator": "==",
                  "value": "tnt"
                },
                {
                  "test": "is_family",
                  "subject": "other",
                  "operator": "==",
                  "value": "creeper"
                }
              ]
            },
            "max_dist": 8,
            "walk_speed_multiplier": 1.0,
            "sprint_speed_multiplier": 1.299976835765578 // 5.612 / 4.317
          }
        ]
      },
      "minecraft:behavior.avoid_block": {
        "priority": 7,
        "tick_interval": 5,
        "search_range": 8,
        "search_height": 384,
        "sprint_speed_modifier": 1.299976835765578, // 5.612 / 4.317
        "target_selection_method": "nearest",
        "target_blocks": [
          "minecraft:powder_snow",
          "minecraft:web",
          "minecraft:magma",
          "minecraft:lava",
          "minecraft:flowing_lava",
          "minecraft:fire",
          "minecraft:sweet_berry_bush",
          "minecraft:cactus",
          "minecraft:trapdoor",
          "minecraft:acacia_trapdoor",
          "minecraft:crimson_trapdoor",
          "minecraft:dark_oak_trapdoor",
          "minecraft:iron_trapdoor",
          "minecraft:jungle_trapdoor",
          "minecraft:spruce_trapdoor",
          "minecraft:warped_trapdoor",
          "minecraft:tnt",
          "minecraft:wither_rose",
          "minecraft:big_dripleaf",
          "minecraft:pointed_dripstone",
          "minecraft:soul_fire",
          "minecraft:item.soul_campfire"
        ]
      },
      "minecraft:behavior.random_stroll": {
        "priority": 8,
        "speed_multiplier": 0.6
      },
      "minecraft:behavior.look_at_player": {
        "priority": 9,
        "look_distance": 8
      },
      "minecraft:behavior.random_look_around": {
        "priority": 10
      },

      // End of terminator's priorities

      "minecraft:persistent": {},
      "minecraft:attack": {
        "damage": {
          "range_min": 1,
          "range_max": 3
        }
      },
      "minecraft:pushable": {
        "is_pushable": true,
        "is_pushable_by_piston": true
      },
      "minecraft:conditional_bandwidth_optimization": {
        "default_values": {
          "max_optimized_distance": 0,
          "max_dropped_ticks": 0,
          "use_motion_prediction_hints": true
        }
      },
      "minecraft:tick_world": {
        "never_despawn": true,
        "radius": 4
      },
      "minecraft:healable": {
        "force_use": false,
        "filters": {
          "test": "has_target",
          "subject": "self",
          "value": false
        },
        "items": [
          { "item": "apple", "heal_amount": 4 },
          { "item": "baked_potato", "heal_amount": 5 },
          { "item": "beetroot", "heal_amount": 1 },
          { "item": "beetroot_soup", "heal_amount": 6 },
          { "item": "bread", "heal_amount": 5 },
          { "item": "cake", "heal_amount": 14 },
          { "item": "carrot", "heal_amount": 3 },
          { "item": "cooked_chicken", "heal_amount": 6 },
          { "item": "cooked_cod", "heal_amount": 5 },
          { "item": "cooked_mutton", "heal_amount": 6 },
          { "item": "cooked_porkchop", "heal_amount": 8 },
          { "item": "cooked_rabbit", "heal_amount": 5 },
          { "item": "cooked_salmon", "heal_amount": 6 },
          { "item": "cookie", "heal_amount": 2 },
          { "item": "dried_kelp", "heal_amount": 1 },
          {
            "item": "appleenchanted",
            "heal_amount": 4,
            "effects": [
              {
                "name": "regeneration",
                "chance": 1.0,
                "duration": 30,
                "amplifier": 4
              },
              {
                "name": "absorption",
                "chance": 1.0,
                "duration": 120, // 2 * 60
                "amplifier": 3
              },
              {
                "name": "resistance", // damage resistance
                "chance": 1.0,
                "duration": 300,
                "amplifier": 0
              },
              {
                "name": "fire_resistance",
                "chance": 1.0,
                "duration": 300,
                "amplifier": 0
              }
            ]
          },
          {
            "item": "golden_apple",
            "heal_amount": 4,
            "effects": [
              {
                "name": "regeneration",
                "chance": 1.0,
                "duration": 5,
                "amplifier": 1
              },
              {
                "name": "absorption",
                "chance": 1.0,
                "duration": 120, // 2 * 60
                "amplifier": 0
              }
            ]
          },
          { "item": "glow_berries", "heal_amount": 2 },
          { "item": "golden_carrot", "heal_amount": 6 },
          { "item": "honey_bottle", "heal_amount": 6 },
          { "item": "melon_slice", "heal_amount": 2 },
          { "item": "mushroom_stew", "heal_amount": 6 },
          {
            "item": "poisonous_potato",
            "heal_amount": 2,
            "effects": [
              {
                "name": "poison",
                "chance": 0.6,
                "duration": 5,
                "amplifier": 0
              }
            ]
          },
          { "item": "potato", "heal_amount": 1 },
          {
            "item": "pufferfish",
            "heal_amount": 1,
            "effects": [
              {
                "name": "poison",
                "duration": 60,
                "amplifier": 3
              },
              {
                "name": "nausea", // confusion
                "duration": 15,
                "amplifier": 1
              },
              {
                "name": "hunger",
                "duration": 15,
                "amplifier": 2
              }
            ]
          },
          { "item": "pumpkin_pie", "heal_amount": 8 },
          { "item": "rabbit_stew", "heal_amount": 10 },
          { "item": "beef", "heal_amount": 3 },
          {
            "item": "chicken",
            "heal_amount": 2,
            "effects": [
              {
                "name": "hunger",
                "chance": 0.3,
                "duration": 30,
                "amplifier": 0
              }
            ]
          },
          { "item": "cod", "heal_amount": 2 },
          { "item": "mutton", "heal_amount": 2 },
          { "item": "porkchop", "heal_amount": 3 },
          { "item": "rabbit", "heal_amount": 3 },
          { "item": "salmon", "heal_amount": 2 },
          {
            "item": "rotten_flesh",
            "heal_amount": 4,
            "effects": [
              {
                "name": "hunger",
                "chance": 0.8,
                "duration": 30,
                "amplifier": 0
              }
            ]
          },
          {
            "item": "spider_eye",
            "heal_amount": 2,
            "effects": [
              {
                "name": "poison",
                "chance": 1.0,
                "duration": 5,
                "amplifier": 0
              }
            ]
          },
          { "item": "cooked_beef", "heal_amount": 8 },
          { "item": "sweet_berries", "heal_amount": 2 },
          { "item": "tropical_fish", "heal_amount": 1 }
        ] // credit: https://minecraft.wiki/w/Food#Foods
      },
      "minecraft:block_climber": {},
      "minecraft:environment_sensor": {
        "triggers": [
          {
            "filters": {
              "all_of": [
                {
                  "test": "has_equipment",
                  "subject": "self",
                  "operator": "!=",
                  "value": "minecraft:trident"
                },
                {
                  "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
                },
                {
                  "test": "has_equipment",
                  "subject": "self",
                  "operator": "==",
                  "value": "minecraft:bow"
                }
              ]
            },
            "event": "minecraft:bow_ranged_mode"
          },
          {
            "filters": {
              "all_of": [
                {
                  "test": "in_water",
                  "subject": "self",
                  "operator": "==",
                  "value": false
                },
                {
                  "test": "has_ranged_weapon",
                  "subject": "self",
                  "operator": "==",
                  "value": true
                },
                {
                  "test": "has_equipment",
                  "subject": "self",
                  "operator": "==",
                  "value": "minecraft:crossbow"
                }
              ]
            },
            "event": "minecraft:crossbow_ranged_mode"
          },
          {
            "filters": {
              "all_of": [
                {
                  "test": "has_equipment",
                  "subject": "self",
                  "operator": "==",
                  "value": "minecraft:trident"
                }
              ]
            },
            "event": "minecraft:trident_ranged_mode"
          },
          {
            "filters": {
              "test": "in_block",
              "subject": "self",
              "operator": "==",
              "value": "minecraft:powder_snow"
            },
            "event": "got_in_powder_snow"
          },
          {
            "filters": {
              "all_of": [
                {
                  "test": "has_mob_effect",
                  "subject": "self",
                  "value": "bad_omen"
                },
                { "test": "is_in_village", "subject": "self", "value": true }
              ]
            },
            "event": "minecraft:trigger_raid"
          },
          {
            "filters": {
              "test": "has_component",
              "subject": "self",
              "operator": "!=",
              "value": "minecraft:behavior.nearest_attackable_target"
            },
            "event": "terminator:fix_default_target"
          },
          {
            "filters": {
              "test": "in_nether",
              "subject": "player",
              "value": true
            },
            "event": "terminator:make_nether_portal"
          },
          {
            "filters": {
              "all_of": [
                {
                  "test": "has_equipment",
                  "subject": "self",
                  "operator": "==",
                  "value": "minecraft:snowball"
                }
              ]
            },
            "event": "minecraft:snowball_ranged_mode"
          }
        ]
      },
      "minecraft:strength": {
        "max": 36,
        "value": 1
      }
    },

    "events": {
      "minecraft:entity_spawned": {
        "sequence": [
          {
            "randomize": [
              {
                "weight": 25,
                "add": {
                  "component_groups": ["minecraft:can_have_equipment"]
                }
              },
              { "weight": 75 }
            ]
          },
          {
            "filters": {
              "test": "has_component",
              "operator": "!=",
              "value": "minecraft:variant"
            },
            "randomize": [
              {
                "weight": 50,
                "add": { "component_groups": ["terminator:steve_default_skin"] }
              },
              {
                "weight": 50,
                "add": { "component_groups": ["terminator:alex_default_skin"] }
              }
            ]
          }
        ],
        "add": {
          "component_groups": [
            "terminator:default_attack_target",
            "minecraft:melee_attack",
            "terminator:break_blocks.v2"
          ]
        }
      },
      "minecraft:gain_bad_omen": {
        "add": {
          "component_groups": ["minecraft:add_bad_omen"]
        }
      },
      "minecraft:clear_add_bad_omen": {
        "remove": {
          "component_groups": ["minecraft:add_bad_omen"]
        },
        "add": {
          "component_groups": ["minecraft:clear_bad_omen_spell_effect"]
        }
      },
      "minecraft:trigger_raid": {
        "add": {
          "component_groups": ["minecraft:raid_trigger"]
        }
      },
      "minecraft:remove_raid_trigger": {
        "remove": {
          "component_groups": ["minecraft:raid_trigger"]
        }
      },
      "terminator:escape": {
        "add": {
          "component_groups": ["terminator:find_path"]
        },
        "remove": {
          "component_groups": [
            "minecraft:bow_ranged_attack",
            "minecraft:melee_attack"
          ]
        },
        "queue_command": {
          "command": ["summon entity:dummy ~ ~ ~ ~ ~ dummy:request_pathfind"]
        }
      },
      "terminator:remove_escape": {
        "remove": {
          "component_groups": ["terminator:find_path"]
        },
        "add": {
          "component_groups": [
            "terminator:default_attack_target",
            "minecraft:melee_attack"
          ]
        }
      },
      "terminator:disable_respawn_event_randomize": {
        "randomize": [
          {
            "weight": 25,
            "add": {
              "component_groups": ["minecraft:can_have_equipment"]
            }
          },
          { "weight": 75 }
        ]
      },
      "terminator:disable_respawn_event_steve": {
        "queue_command": {
          "command": ["tag @s add disablerespawnevent"]
        },
        "add": {
          "component_groups": [
            "terminator:default_attack_target",
            "minecraft:melee_attack",
            "terminator:break_blocks.v2",
            "terminator:steve_default_skin"
          ]
        },
        "trigger": "terminator:disable_respawn_event_randomize"
      },
      "terminator:disable_respawn_event_alex": {
        "queue_command": {
          "command": ["tag @s add disablerespawnevent"]
        },
        "add": {
          "component_groups": [
            "terminator:default_attack_target",
            "minecraft:melee_attack",
            "terminator:break_blocks.v2",
            "terminator:alex_default_skin"
          ]
        },
        "trigger": "terminator:disable_respawn_event_randomize"
      },
      "terminator:disable_respawn_event_custom": {
        "queue_command": {
          "command": ["tag @s add disablerespawnevent"]
        },
        "add": {
          "component_groups": [
            "terminator:default_attack_target",
            "minecraft:melee_attack",
            "terminator:break_blocks.v2",
            "terminator:custom_skin"
          ]
        },
        "trigger": "terminator:disable_respawn_event_randomize"
      },
      "terminator:spawn_no_respawn_event_special_death_detect": {
        "queue_command": {
          "command": [
            "tag @s add disablerespawnevent",
            "tag @s add specialdeatheffect"
          ]
        },
        "trigger": "minecraft:entity_spawned"
      },
      "terminator:activate_shield": {
        "add": {
          "component_groups": ["terminator:shield"]
        }
      },
      "terminator:deactivate_shield": {
        "remove": {
          "component_groups": ["terminator:shield"]
        }
      },
      "terminator:respond_shield": {
        "queue_command": {
          "command": ["playsound item.shield.block @a ~~~"]
        },
        "set_property": {
          "terminator:is_using_shield": true
        },
        "add": {
          "component_groups": ["shield:on_use"]
        }
      },
      "terminator:disable_shield": {
        "set_property": {
          "terminator:is_using_shield": false
        },
        "remove": {
          "component_groups": ["shield:on_use"]
        }
      },
      "got_in_powder_snow": {
        "add": {
          "component_groups": ["in_powder_snow"]
        }
      },
      "got_out_of_powder_snow": {
        "remove": {
          "component_groups": ["in_powder_snow"]
        },
        "add": {
          "component_groups": ["got_out_of_powder_snow_environment_sensor"]
        }
      },
      "minecraft:melee_mode": {
        "remove": {
          "component_groups": [
            "minecraft:bow_ranged_attack",
            "minecraft:crossbow_ranged_unit",
            "minecraft:trident_mode_switcher",
            "got_out_of_powder_snow_environment_sensor",
            "minecraft:snowball_ranged_attack"
          ]
        },
        "add": {
          "component_groups": ["minecraft:melee_attack"]
        }
      },
      "minecraft:crossbow_ranged_mode": {
        "remove": {
          "component_groups": [
            "minecraft:melee_attack",
            "minecraft:bow_ranged_attack",
            "minecraft:trident_mode_switcher",
            "got_out_of_powder_snow_environment_sensor",
            "minecraft:snowball_ranged_attack"
          ]
        },
        "add": {
          "component_groups": ["minecraft:crossbow_ranged_unit"]
        }
      },
      "minecraft:bow_ranged_mode": {
        "remove": {
          "component_groups": [
            "minecraft:melee_attack",
            "minecraft:crossbow_ranged_unit",
            "minecraft:trident_mode_switcher",
            "got_out_of_powder_snow_environment_sensor",
            "minecraft:snowball_ranged_attack"
          ]
        },
        "add": {
          "component_groups": ["minecraft:bow_ranged_attack"]
        }
      },
      "minecraft:trident_ranged_mode": {
        "remove": {
          "component_groups": [
            "minecraft:melee_attack",
            "minecraft:bow_ranged_attack",
            "minecraft:crossbow_ranged_unit",
            "got_out_of_powder_snow_environment_sensor",
            "minecraft:snowball_ranged_attack"
          ]
        },
        "add": {
          "component_groups": ["minecraft:trident_mode_switcher"]
        }
      },
      "minecraft:trident_switch_to_melee": {
        "remove": {
          "component_groups": ["minecraft:trident_ranged_attack"]
        },
        "add": {
          "component_groups": ["minecraft:trident_melee_attack"]
        }
      },
      "minecraft:trident_switch_to_ranged": {
        "remove": {
          "component_groups": ["minecraft:trident_melee_attack"]
        },
        "add": {
          "component_groups": ["minecraft:trident_ranged_attack"]
        }
      },
      "minecraft:snowball_ranged_mode": {
        "remove": {
          "component_groups": [
            "minecraft:melee_attack",
            "minecraft:bow_ranged_attack",
            "minecraft:crossbow_ranged_unit",
            "got_out_of_powder_snow_environment_sensor",
            "minecraft:trident_mode_switcher"
          ]
        },
        "set_property": {
          "terminator:snowball_attack": true
        },
        "add": {
          "component_groups": ["minecraft:snowball_ranged_attack"]
        }
      },
      "terminator:fix_default_target": {
        "add": {
          "component_groups": ["terminator:default_attack_target"]
        }
      },
      "terminator:add_suffocate_alert": {
        "queue_command": {
          "command": ["tag @s add terminatorsuffocate"]
        }
      },
      "terminator:remove_suffocate_alert": {
        "queue_command": {
          "command": ["tag @s remove terminatorsuffocate"]
        }
      },
      "terminator:find_portal_to_overworld": {
        "sequence": [
          {
            "filters": {
              "test": "is_biome",
              "subject": "self",
              "operator": "==",
              "value": "the_end"
            },
            "add": {
              "component_groups": ["terminator:find_end_portal"]
            }
          },
          {
            "filters": {
              "test": "is_biome",
              "subject": "self",
              "operator": "==",
              "value": "the_end"
            },
            "add": {
              "component_groups": ["terminator:find_end_portal"]
            }
          }
        ]
      },
      "terminator:find_portal_to_nether": {
        "sequence": [
          {
            "filters": {
              "test": "is_biome",
              "subject": "self",
              "operator": "==",
              "value": "the_end"
            },
            "add": {
              "component_groups": ["terminator:find_end_portal"]
            }
          },
          {
            "filters": {
              "all_of": [
                {
                  "test": "is_biome",
                  "subject": "self",
                  "operator": "!=",
                  "value": "the_nether"
                },
                {
                  "test": "is_biome",
                  "subject": "self",
                  "operator": "!=",
                  "value": "the_end"
                }
              ]
            },
            "add": {
              "component_groups": ["terminator:find_nether_portal"]
            }
          }
        ]
      },
      "terminator:find_portal_to_the_end": {
        "sequence": [
          {
            "filters": {
              "test": "is_biome",
              "subject": "self",
              "operator": "==",
              "value": "the_nether"
            },
            "add": {
              "component_groups": ["terminator:find_nether_portal"]
            }
          },
          {
            "filters": {
              "all_of": [
                {
                  "test": "is_biome",
                  "subject": "self",
                  "operator": "!=",
                  "value": "the_nether"
                },
                {
                  "test": "is_biome",
                  "subject": "self",
                  "operator": "!=",
                  "value": "the_end"
                }
              ]
            },
            "add": {
              "component_groups": ["terminator:find_end_portal"]
            }
          }
        ]
      },
      "terminator:make_nether_portal": {
        "filters": {
          "all_of": [
            {
              "test": "is_biome",
              "subject": "self",
              "operator": "!=",
              "value": "the_end"
            }
          ]
        },
        "queue_command": {
          "command": [
            "fill ~-1 ~ ~ ~ ~2 ~ air destroy",
            "setblock ~ ~-1 ~ obsidian",
            "playsound use.stone @a ~ ~ ~",
            "setblock ~-1~-1~ obsidian",
            "playsound use.stone @a ~ ~ ~",
            "setblock ~1~~ obsidian",
            "playsound use.stone @a ~ ~ ~",
            "setblock ~-2~~ obsidian",
            "playsound use.stone @a ~ ~ ~",
            "setblock ~1~1~ obsidian",
            "playsound use.stone @a ~ ~ ~",
            "setblock ~-2~1~ obsidian",
            "playsound use.stone @a ~ ~ ~",
            "setblock ~1~2~ obsidian",
            "playsound use.stone @a ~ ~ ~",
            "setblock ~-2~2~ obsidian",
            "playsound use.stone @a ~ ~ ~",
            "setblock ~ ~3 ~ obsidian",
            "playsound use.stone @a ~ ~ ~",
            "setblock ~-1~3~ obsidian",
            "playsound use.stone @a ~ ~ ~",
            "setblock ~-1~3~ obsidian",
            "playsound use.stone @a ~ ~ ~",
            "setblock ~ ~ ~ fire",
            "playsound fire.ignite @a ~ ~ ~"
          ]
        }
      },
      "terminator:disable_find_end_portal": {
        "filters": {
          "all_of": [
            {
              "test": "is_biome",
              "subject": "self",
              "operator": "==",
              "value": "the_end"
            }
          ]
        },
        "remove": {
          "component_groups": ["terminator:find_end_portal"]
        }
      },
      "terminator:disable_find_nether_portal": {
        "filters": {
          "all_of": [
            {
              "test": "is_biome",
              "subject": "self",
              "operator": "==",
              "value": "the_nether"
            }
          ]
        },
        "remove": {
          "component_groups": ["terminator:find_nether_portal"]
        }
      },
      "terminator:disable_respawn": {
        "queue_command": {
          "command": ["tag @s add terminatordeathrequest"]
        },
        "trigger": "minecraft:entity_spawned"
      },
      "terminator:disable_physics": {
        "add": {
          "component_groups": ["terminator:disable_physics"]
        },
        "trigger": "minecraft:entity_spawned"
      },
      "terminator:enable_invulnerable": {
        "add": {
          "component_groups": ["terminator:invulnerable"]
        }
      },
      "terminator:enable_break_blocks": {
        "add": {
          "component_groups": ["terminator:break_blocks.v2"]
        }
      },
      "terminator:disable_break_blocks": {
        "remove": {
          "component_groups": ["terminator:break_blocks.v2"]
        }
      },
      "terminator:check_test:minecraft:break_blocks": {
        "sequence": [
          {
            "filters": {
              "all_of": [
                {
                  "test": "has_component",
                  "subject": "self",
                  "operator": "==",
                  "value": "minecraft:break_blocks"
                }
              ]
            },
            "queue_command": {
              "command": [
                "say §aEvent §r'check_test:minecraft:break_blocks' §apassed"
              ]
            }
          },
          {
            "filters": {
              "all_of": [
                {
                  "test": "has_component",
                  "subject": "self",
                  "operator": "!=",
                  "value": "minecraft:break_blocks"
                }
              ]
            },
            "queue_command": {
              "command": [
                "say §cEvent §r'check_test:minecraft:break_blocks' §cnot passed"
              ]
            }
          }
        ]
      },
      "terminator:check_test:minecraft:behavior.move_to_block": {
        "sequence": [
          {
            "filters": {
              "all_of": [
                {
                  "test": "has_component",
                  "subject": "self",
                  "operator": "==",
                  "value": "minecraft:behavior.move_to_block"
                }
              ]
            },
            "queue_command": {
              "command": [
                "say §aEvent §r'check_test:minecraft:behavior.move_to_block' §apassed"
              ]
            }
          },
          {
            "filters": {
              "all_of": [
                {
                  "test": "has_component",
                  "subject": "self",
                  "operator": "!=",
                  "value": "minecraft:behavior.move_to_block"
                }
              ]
            },
            "queue_command": {
              "command": [
                "say §cEvent §r'check_test:minecraft:behavior.move_to_block' §cnot passed"
              ]
            }
          }
        ]
      },
      "breedable:true": {
        "add": {
          "component_groups": ["terminator:breedable"]
        }
      },
      "terminator:disable_regeneration": {
        "queue_command": { "command": ["tag @s add terminatorNoRegeneration"] }
      },
      "terminator:christmas_skin": {
        "sequence": [
          {
            "filters": { "test": "is_variant", "operator": "==", "value": 0 },
            "add": {
              "component_groups": ["terminator:steve_christmas_skin"]
            }
          },
          {
            "filters": { "test": "is_variant", "operator": "==", "value": 1 },
            "add": {
              "component_groups": ["terminator:alex_christmas_skin"]
            }
          }
        ]
      },
      "terminator:default_skin": {
        "sequence": [
          {
            "filters": { "test": "is_variant", "operator": "==", "value": 2 },
            "add": {
              "component_groups": ["terminator:steve_default_skin"]
            }
          },
          {
            "filters": { "test": "is_variant", "operator": "==", "value": 3 },
            "add": {
              "component_groups": ["terminator:alex_default_skin"]
            }
          }
        ]
      },
      "terminator:enable_bossbar": {
        "add": {
          "component_groups": ["terminator:bossbar"]
        }
      },
      "terminator:enable_custom_skin": {
        "add": {
          "component_groups": ["terminator:custom_skin"]
        },
        "remove": {
          "component_groups": [
            "terminator:steve_default_skin",
            "terminator:steve_christmas_skin",
            "terminator:alex_default_skin",
            "terminator:alex_christmas_skin",
            "terminator:customSlim_skin"
          ]
        }
      },
      "terminator:enable_customSlim_skin": {
        "add": {
          "component_groups": ["terminator:customSlim_skin"]
        },
        "remove": {
          "component_groups": [
            "terminator:steve_default_skin",
            "terminator:steve_christmas_skin",
            "terminator:alex_default_skin",
            "terminator:alex_christmas_skin",
            "terminator:custom_skin"
          ]
        }
      },
      "terminator:switch_skin_to_alex": {
        "add": {
          "component_groups": ["terminator:alex_default_skin"]
        },
        "remove": {
          "component_groups": [
            "terminator:steve_default_skin",
            "terminator:steve_christmas_skin",
            "terminator:alex_christmas_skin",
            "terminator:custom_skin",
            "terminator:customSlim_skin"
          ]
        }
      },
      "terminator:switch_skin_to_steve": {
        "add": {
          "component_groups": ["terminator:steve_default_skin"]
        },
        "remove": {
          "component_groups": [
            "terminator:alex_default_skin",
            "terminator:alex_christmas_skin",
            "terminator:steve_christmas_skin",
            "terminator:custom_skin",
            "terminator:customSlim_skin"
          ]
        }
      },
      "terminator:spawn_disable_respawn_steve": {
        "queue_command": {
          "command": ["tag @s add terminatordeathrequest"]
        },
        "sequence": [
          {
            "randomize": [
              {
                "weight": 25,
                "add": {
                  "component_groups": ["minecraft:can_have_equipment"]
                }
              },
              { "weight": 75 }
            ]
          }
        ],
        "add": {
          "component_groups": [
            "terminator:default_attack_target",
            "minecraft:melee_attack",
            "terminator:break_blocks.v2",
            "terminator:steve_default_skin"
          ]
        }
      },
      "terminator:spawn_disable_respawn_alex": {
        "queue_command": {
          "command": ["tag @s add terminatordeathrequest"]
        },
        "sequence": [
          {
            "randomize": [
              {
                "weight": 25,
                "add": {
                  "component_groups": ["minecraft:can_have_equipment"]
                }
              },
              { "weight": 75 }
            ]
          }
        ],
        "add": {
          "component_groups": [
            "terminator:default_attack_target",
            "minecraft:melee_attack",
            "terminator:break_blocks.v2",
            "terminator:alex_default_skin"
          ]
        }
      },
      "terminator:spawn_disable_respawn_custom": {
        "queue_command": {
          "command": ["tag @s add terminatordeathrequest"]
        },
        "sequence": [
          {
            "randomize": [
              {
                "weight": 25,
                "add": {
                  "component_groups": ["minecraft:can_have_equipment"]
                }
              },
              { "weight": 75 }
            ]
          }
        ],
        "add": {
          "component_groups": [
            "terminator:default_attack_target",
            "minecraft:melee_attack",
            "terminator:break_blocks.v2",
            "terminator:custom_skin"
          ]
        }
      },
      "terminator:set_sitting_enabled": {
        "set_property": {
          "terminator:is_sitting": true
        }
      },
      "terminator:set_sitting_disabled": {
        "set_property": {
          "terminator:is_sitting": false
        }
      },
      "terminator:set_has_target": {
        "set_property": {
          "terminator:has_target": true
        }
      },
      "terminator:remove_target": {
        "set_property": {
          "terminator:has_target": false
        }
      }
    }
  }
}
