{ "format_version": "1.26.20", "minecraft:entity": { "description": { "identifier": "minecraft:villager_v2", "is_summonable": false, "is_spawnable": true }, "components": { "minecraft:annotation.open_door": {}, "minecraft:behavior.avoid_mob_type": { "entity_types": [ { "filters": { "any_of": [ { "test": "is_family", "subject": "other", "value": "zombie" }, { "test": "is_family", "subject": "other", "value": "zombie_villager" }, { "test": "is_family", "subject": "other", "value": "illager" }, { "test": "is_family", "subject": "other", "value": "vex" }, { "test": "is_family", "subject": "other", "value": "zoglin" } ] }, "max_dist": 8, "walk_speed_multiplier": 0.6, "sprint_speed_multiplier": 0.6 } ], "priority": 4 }, "minecraft:behavior.float": { "priority": 0 }, "minecraft:behavior.hide": { "duration": 30, "poi_type": "bed", "priority": 0, "speed_multiplier": 0.8 }, "minecraft:behavior.look_at_player": { "priority": 9 }, "minecraft:behavior.look_at_trading_player": { "priority": 7 }, "minecraft:behavior.move_indoors": { "priority": 6, "speed_multiplier": 0.8, "timeout_cooldown": 8 }, "minecraft:behavior.move_towards_dwelling_restriction": { "speed_multiplier": 0.6, "priority": 11 }, "minecraft:behavior.panic": { "priority": 1, "speed_multiplier": 0.6 }, "minecraft:behavior.pickup_items": { "can_pickup_to_hand_or_equipment": false, "goal_radius": 2, "priority": 4, "max_dist": 3, "speed_multiplier": 0.5 }, "minecraft:behavior.random_stroll": { "priority": 11, "speed_multiplier": 0.6 }, "minecraft:behavior.share_items": { "entity_types": [ { "filters": { "subject": "other", "test": "is_family", "value": "villager" } } ], "goal_radius": 2, "priority": 10, "max_dist": 3, "speed_multiplier": 0.5 }, "minecraft:behavior.trade_with_player": { "filters": { "all_of": [ { "all_of": [ { "test": "in_water", "value": false } ] }, { "any_of": [ { "test": "on_ground", "value": true }, { "test": "is_sleeping", "value": true } ] } ] }, "priority": 2 }, "minecraft:breathable": { "suffocate_time": 0, "total_supply": 15 }, "minecraft:can_climb": {}, "minecraft:collision_box": { "height": 1.9, "width": 0.6 }, "minecraft:conditional_bandwidth_optimization": {}, "minecraft:damage_sensor": { "triggers": [ { "deals_damage": "no", "on_damage": { "event": "become_witch", "filters": [ { "subject": "other", "test": "is_family", "value": "lightning" }, { "operator": "!=", "test": "is_difficulty", "value": "peaceful" } ] } }, { "on_damage": { "event": "become_zombie", "filters": { "all_of": [ { "test": "has_damage", "value": "fatal" } ], "any_of": [ { "subject": "other", "test": "is_family", "value": "zombie" }, { "subject": "other", "test": "is_family", "value": "husk" } ] } } } ] }, "minecraft:dweller": { "can_find_poi": true, "dwelling_type": "village", "can_migrate": true, "dweller_role": "inhabitant", "first_founding_reward": 5, "update_interval_base": 60, "update_interval_variant": 40 }, "minecraft:equipment": { "slot_drop_chance": [ { "drop_chance": 0, "slot": "slot.weapon.mainhand" } ] }, "minecraft:follow_range": { "value": 128 }, "minecraft:health": { "max": 20, "value": 20 }, "minecraft:hide": {}, "minecraft:hurt_on_condition": { "damage_conditions": [ { "cause": "lava", "damage_per_tick": 4, "filters": { "operator": "==", "test": "in_lava", "subject": "self", "value": true } } ] }, "minecraft:inventory": { "inventory_size": 8, "private": true }, "minecraft:is_hidden_when_invisible": {}, "minecraft:jump.static": {}, "minecraft:mark_variant": { "value": 0 // Villagers have the Plains biome skin by default }, "minecraft:movement": { "value": 0.5 }, "minecraft:movement.basic": {}, "minecraft:nameable": {}, "minecraft:navigation.walk": { "avoid_water": true, "can_open_doors": true, "can_pass_doors": true, "can_path_over_water": true }, "minecraft:offspring": { "offspring_pairs": { "minecraft:villager_v2": "minecraft:villager_v2" } }, "minecraft:persistent": {}, "minecraft:physics": {}, "minecraft:pushable_by_entity": { }, "minecraft:pushable_by_block": { }, "minecraft:spawn_egg_interaction": {}, "minecraft:type_family": { "family": [ "villager", "mob" ] } }, "component_groups": { "adult": { "minecraft:preferred_path": { "default_block_cost": 3, "jump_cost": 20, "preferred_path_blocks": [ { "blocks": [ "grass_path" ], "cost": 0 }, { "blocks": [ "cobblestone", "stone", "granite", "polished_granite", "diorite", "polished_diorite", "andesite", "polished_andesite", "stone_bricks", "mossy_stone_bricks", "cracked_stone_bricks", "chiseled_stone_bricks", "sandstone", "cut_sandstone", "chiseled_sandstone", "smooth_sandstone", "mossy_cobblestone", "smooth_stone_slab", "sandstone_slab", "cobblestone_slab", "brick_slab", "stone_brick_slab", "quartz_slab", "nether_brick_slab", "red_sandstone_slab", "purpur_slab", "prismarine_slab", "dark_prismarine_slab", "prismarine_brick_slab", "mossy_cobblestone_slab", "smooth_sandstone_slab", "red_nether_brick_slab", "end_stone_brick_slab", "smooth_red_sandstone_slab", "polished_andesite_slab", "andesite_slab", "diorite_slab", "polished_diorite_slab", "granite_slab", "polished_granite_slab", "mossy_stone_brick_slab", "smooth_quartz_slab", "normal_stone_slab", "cut_sandstone_slab", "cut_red_sandstone_slab", "smooth_stone_double_slab", "sandstone_double_slab", "cobblestone_double_slab", "brick_double_slab", "stone_brick_double_slab", "quartz_double_slab", "nether_brick_double_slab", "red_sandstone_double_slab", "purpur_double_slab", "prismarine_double_slab", "dark_prismarine_double_slab", "prismarine_brick_double_slab", "mossy_cobblestone_double_slab", "smooth_sandstone_double_slab", "red_nether_brick_double_slab", "end_stone_brick_double_slab", "smooth_red_sandstone_double_slab", "polished_andesite_double_slab", "andesite_double_slab", "diorite_double_slab", "polished_diorite_double_slab", "granite_double_slab", "polished_granite_double_slab", "mossy_stone_brick_double_slab", "smooth_quartz_double_slab", "normal_stone_double_slab", "cut_sandstone_double_slab", "cut_red_sandstone_double_slab", "oak_slab", "spruce_slab", "birch_slab", "jungle_slab", "acacia_slab", "dark_oak_slab", "oak_double_slab", "spruce_double_slab", "birch_double_slab", "jungle_double_slab", "acacia_double_slab", "dark_oak_double_slab", "oak_planks", "spruce_planks", "birch_planks", "jungle_planks", "acacia_planks", "dark_oak_planks", "brick_block", "nether_brick", "red_nether_brick", "end_bricks", "red_sandstone", "cut_red_sandstone", "chiseled_red_sandstone", "smooth_red_sandstone", "white_stained_glass", "orange_stained_glass", "magenta_stained_glass", "light_blue_stained_glass", "yellow_stained_glass", "lime_stained_glass", "pink_stained_glass", "gray_stained_glass", "light_gray_stained_glass", "cyan_stained_glass", "purple_stained_glass", "blue_stained_glass", "brown_stained_glass", "green_stained_glass", "red_stained_glass", "black_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": 1 }, { "blocks": [ "bed", "lectern", "composter", "grindstone", "blast_furnace", "smoker", "fletching_table", "cartography_table", "brewing_stand", "smithing_table", "cauldron", "barrel", "loom", "stonecutter" ], "cost": 50 } ], "max_fall_blocks": 1 }, "minecraft:collision_box": { "height": 1.9, "width": 0.6 } }, "become_zombie": { "minecraft:transformation": { "into": "minecraft:zombie_villager_v2", "keep_level": true } }, "armorer": { "minecraft:behavior.trade_interest": { "carried_item_switch_time": 2, "cooldown": 2, "interest_time": 45, "within_radius": 6, "priority": 5, "remove_item_time": 1 }, "minecraft:dweller": { "can_find_poi": true, "dwelling_type": "village", "can_migrate": true, "dweller_role": "inhabitant", "preferred_profession": "armorer", "first_founding_reward": 5, "update_interval_base": 60, "update_interval_variant": 40 }, "minecraft:economy_trade_table": { "cured_discount": [ -25, -20 ], "display_name": "entity.villager.armor", "max_cured_discount": [ -25, -20 ], "new_screen": true, "persist_trades": true, "table": "trading/economy_trades/armorer_trades.json" }, "minecraft:type_family": { "family": [ "villager", "blacksmith", "armorer", "mob" ] }, "minecraft:variant": { "value": 8 } }, "bed_schedule_villager": { "minecraft:behavior.sleep": { "priority": 3, "sleep_collider_height": 0.3, "sleep_collider_width": 1, "sleep_y_offset": 0.6, "speed_multiplier": 0.6, "timeout_cooldown": 10 } }, "cartographer": { "minecraft:behavior.trade_interest": { "carried_item_switch_time": 2, "cooldown": 2, "interest_time": 45, "within_radius": 6, "priority": 5, "remove_item_time": 1 }, "minecraft:dweller": { "can_find_poi": true, "dwelling_type": "village", "can_migrate": true, "dweller_role": "inhabitant", "preferred_profession": "cartographer", "first_founding_reward": 5, "update_interval_base": 60, "update_interval_variant": 40 }, "minecraft:economy_trade_table": { "cured_discount": [ -25, -20 ], "display_name": "entity.villager.cartographer", "max_cured_discount": [ -25, -20 ], "new_screen": true, "persist_trades": true, "table": "trading/economy_trades/cartographer_trades.json" }, "minecraft:type_family": { "family": [ "villager", "cartographer", "mob" ] }, "minecraft:variant": { "value": 6 } }, "basic_schedule": { "minecraft:scheduler": { "max_delay_secs": 10, "scheduled_events": [ { "event": "minecraft:schedule_wander_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 0 }, { "operator": "<", "test": "hourly_clock_time", "value": 8000 } ] } }, { "event": "minecraft:schedule_gather_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 8000 }, { "operator": "<", "test": "hourly_clock_time", "value": 10000 } ] } }, { "event": "minecraft:schedule_wander_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 10000 }, { "operator": "<", "test": "hourly_clock_time", "value": 11000 } ] } }, { "event": "minecraft:schedule_home_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 11000 }, { "operator": "<", "test": "hourly_clock_time", "value": 12000 } ] } }, { "event": "minecraft:schedule_bed_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 12000 }, { "operator": "<", "test": "hourly_clock_time", "value": 24000 } ] } } ], "min_delay_secs": 0 } }, "snow_villager": { "minecraft:mark_variant": { "value": 4 } }, "baby": { "minecraft:ageable": { "duration": 1200, "grow_up": { "event": "minecraft:ageable_grow_up", "target": "self" } }, "minecraft:behavior.take_flower": { "filters": { "all_of": [ { "test": "is_daytime", "value": true } ] }, "priority": 9 }, "minecraft:is_baby": {}, "minecraft:preferred_path": { "default_block_cost": 1.5, "jump_cost": 5, "preferred_path_blocks": [ { "blocks": [ "grass_path" ], "cost": 0 }, { "blocks": [ "cobblestone", "stone", "granite", "polished_granite", "diorite", "polished_diorite", "andesite", "polished_andesite", "stone_bricks", "mossy_stone_bricks", "cracked_stone_bricks", "chiseled_stone_bricks", "sandstone", "cut_sandstone", "chiseled_sandstone", "smooth_sandstone", "mossy_cobblestone", "smooth_stone_slab", "sandstone_slab", "cobblestone_slab", "brick_slab", "stone_brick_slab", "quartz_slab", "nether_brick_slab", "red_sandstone_slab", "purpur_slab", "prismarine_slab", "dark_prismarine_slab", "prismarine_brick_slab", "mossy_cobblestone", "smooth_sandstone_slab", "red_nether_brick_slab", "end_stone_brick_slab", "smooth_red_sandstone_slab", "polished_andesite_slab", "andesite_slab", "diorite_slab", "polished_diorite_slab", "granite_slab", "polished_granite_slab", "mossy_stone_brick_slab", "smooth_quartz_slab", "normal_stone_slab", "cut_sandstone_slab", "cut_red_sandstone_slab", "smooth_stone_double_slab", "sandstone_double_slab", "cobblestone_double_slab", "brick_double_slab", "stone_brick_double_slab", "quartz_double_slab", "nether_brick_double_slab", "red_sandstone_double_slab", "purpur_double_slab", "prismarine_double_slab", "dark_prismarine_double_slab", "prismarine_brick_double_slab", "mossy_cobblestone_double_slab", "smooth_sandstone_double_slab", "red_nether_brick_double_slab", "end_stone_brick_double_slab", "smooth_red_sandstone_double_slab", "polished_andesite_double_slab", "andesite_double_slab", "diorite_double_slab", "polished_diorite_double_slab", "granite_double_slab", "polished_granite_double_slab", "mossy_stone_brick_double_slab", "smooth_quartz_double_slab", "normal_stone_double_slab", "cut_sandstone_double_slab", "cut_red_sandstone_double_slab", "oak_slab", "spruce_slab", "birch_slab", "jungle_slab", "acacia_slab", "dark_oak_slab", "oak_double_slab", "spruce_double_slab", "birch_double_slab", "jungle_double_slab", "acacia_double_slab", "dark_oak_double_slab", "oak_planks", "spruce_planks", "birch_planks", "jungle_planks", "acacia_planks", "dark_oak_planks", "brick_block", "nether_brick", "red_nether_brick", "end_bricks", "red_sandstone", "cut_red_sandstone", "chiseled_red_sandstone", "smooth_red_sandstone", "white_stained_glass", "orange_stained_glass", "magenta_stained_glass", "light_blue_stained_glass", "yellow_stained_glass", "lime_stained_glass", "pink_stained_glass", "gray_stained_glass", "light_gray_stained_glass", "cyan_stained_glass", "purple_stained_glass", "blue_stained_glass", "brown_stained_glass", "green_stained_glass", "red_stained_glass", "black_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": 1 }, { "blocks": [ "bed", "lectern", "composter", "grindstone", "blast_furnace", "smoker", "fletching_table", "cartography_table", "brewing_stand", "smithing_table", "cauldron", "barrel", "loom", "stonecutter" ], "cost": 50 } ], "max_fall_blocks": 1 }, "minecraft:scale": { "value": 0.5 }, "minecraft:collision_box": { "height": 1.96, // 0.98/0.5 "width": 0.98 // 0.49/0.5 } }, "make_and_receive_love": { "minecraft:behavior.make_love": { "priority": 5 }, "minecraft:behavior.receive_love": { "priority": 6 } }, "behavior_non_peasant": { "minecraft:shareables": { "items": [ { "item": "minecraft:bread", "stored_in_inventory": true, "surplus_amount": 6, "want_amount": 3 }, { "item": "minecraft:carrot", "stored_in_inventory": true, "surplus_amount": 24, "want_amount": 12 }, { "item": "minecraft:potato", "stored_in_inventory": true, "surplus_amount": 24, "want_amount": 12 }, { "item": "minecraft:beetroot", "stored_in_inventory": true, "surplus_amount": 24, "want_amount": 12 } ] } }, "become_witch": { "minecraft:transformation": { "delay": 0.5, "into": "minecraft:witch" } }, "weaponsmith": { "minecraft:behavior.trade_interest": { "carried_item_switch_time": 2, "cooldown": 2, "interest_time": 45, "within_radius": 6, "priority": 5, "remove_item_time": 1 }, "minecraft:dweller": { "can_find_poi": true, "dwelling_type": "village", "can_migrate": true, "dweller_role": "inhabitant", "preferred_profession": "weaponsmith", "first_founding_reward": 5, "update_interval_base": 60, "update_interval_variant": 40 }, "minecraft:economy_trade_table": { "cured_discount": [ -25, -20 ], "display_name": "entity.villager.weapon", "max_cured_discount": [ -25, -20 ], "new_screen": true, "persist_trades": true, "table": "trading/economy_trades/weapon_smith_trades.json" }, "minecraft:type_family": { "family": [ "villager", "blacksmith", "weaponsmith", "mob" ] }, "minecraft:variant": { "value": 9 } }, "butcher": { "minecraft:behavior.trade_interest": { "carried_item_switch_time": 2, "cooldown": 2, "interest_time": 45, "within_radius": 6, "priority": 5, "remove_item_time": 1 }, "minecraft:dweller": { "can_find_poi": true, "dwelling_type": "village", "can_migrate": true, "dweller_role": "inhabitant", "preferred_profession": "butcher", "first_founding_reward": 5, "update_interval_base": 60, "update_interval_variant": 40 }, "minecraft:economy_trade_table": { "cured_discount": [ -25, -20 ], "display_name": "entity.villager.butcher", "max_cured_discount": [ -25, -20 ], "new_screen": true, "persist_trades": true, "table": "trading/economy_trades/butcher_trades.json" }, "minecraft:type_family": { "family": [ "villager", "artisan", "butcher", "mob" ] }, "minecraft:variant": { "value": 11 } }, "behavior_peasant": { "minecraft:shareables": { "items": [ { "item": "minecraft:bread", "stored_in_inventory": true, "surplus_amount": 6, "want_amount": 3 }, { "item": "minecraft:carrot", "stored_in_inventory": true, "surplus_amount": 24, "want_amount": 60 }, { "item": "minecraft:potato", "stored_in_inventory": true, "surplus_amount": 24, "want_amount": 60 }, { "item": "minecraft:beetroot", "stored_in_inventory": true, "surplus_amount": 24, "want_amount": 60 }, { "item": "minecraft:wheat_seeds", "pickup_only": true, "stored_in_inventory": true, "surplus_amount": 64, "want_amount": 64 }, { "item": "minecraft:beetroot_seeds", "pickup_only": true, "stored_in_inventory": true, "surplus_amount": 64, "want_amount": 64 }, { "craft_into": "minecraft:bread", "want_amount": 45, "item": "minecraft:wheat", "stored_in_inventory": true, "surplus_amount": 18 } ] } }, "minecraft:celebrate": { "minecraft:behavior.celebrate_survive": { "duration": 30, "fireworks_interval": { "max": 7, "min": 2 }, "on_celebration_end_event": { "event": "minecraft:stop_celebrating", "target": "self" }, "priority": 5 }, "minecraft:behavior.move_outdoors": { "priority": 2, "speed_multiplier": 0.8, "timeout_cooldown": 8 } }, "child_schedule": { "minecraft:scheduler": { "max_delay_secs": 10, "scheduled_events": [ { "event": "minecraft:schedule_play_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 0 }, { "operator": "<", "test": "hourly_clock_time", "value": 11000 } ] } }, { "event": "minecraft:schedule_home_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 11000 }, { "operator": "<", "test": "hourly_clock_time", "value": 12000 } ] } }, { "event": "minecraft:schedule_bed_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 12000 }, { "operator": "<", "test": "hourly_clock_time", "value": 24000 } ] } } ], "min_delay_secs": 0 } }, "cleric": { "minecraft:behavior.trade_interest": { "carried_item_switch_time": 2, "cooldown": 2, "interest_time": 45, "within_radius": 6, "priority": 5, "remove_item_time": 1 }, "minecraft:dweller": { "can_find_poi": true, "dwelling_type": "village", "can_migrate": true, "dweller_role": "inhabitant", "preferred_profession": "cleric", "first_founding_reward": 5, "update_interval_base": 60, "update_interval_variant": 40 }, "minecraft:economy_trade_table": { "cured_discount": [ -25, -20 ], "display_name": "entity.villager.cleric", "max_cured_discount": [ -25, -20 ], "new_screen": true, "persist_trades": true, "table": "trading/economy_trades/cleric_trades.json" }, "minecraft:type_family": { "family": [ "villager", "priest", "cleric", "mob" ] }, "minecraft:variant": { "value": 7 } }, "desert_villager": { "minecraft:mark_variant": { "value": 1 } }, "farmer": { "minecraft:behavior.trade_interest": { "carried_item_switch_time": 2, "cooldown": 2, "interest_time": 45, "within_radius": 6, "priority": 5, "remove_item_time": 1 }, "minecraft:dweller": { "can_find_poi": true, "dwelling_type": "village", "can_migrate": true, "dweller_role": "inhabitant", "preferred_profession": "farmer", "first_founding_reward": 5, "update_interval_base": 60, "update_interval_variant": 40 }, "minecraft:economy_trade_table": { "cured_discount": [ -25, -20 ], "display_name": "entity.villager.farmer", "max_cured_discount": [ -25, -20 ], "new_screen": true, "persist_trades": true, "table": "trading/economy_trades/farmer_trades.json" }, "minecraft:type_family": { "family": [ "villager", "peasant", "farmer", "mob" ] }, "minecraft:variant": { "value": 1 } }, "work_schedule_farmer": { "minecraft:behavior.fertilize_farm_block": { "priority": 8 }, "minecraft:behavior.harvest_farm_block": { "priority": 7 }, "minecraft:behavior.work_composter": { "active_time": 250, "priority": 9, "can_work_in_rain": false, "on_arrival": { "event": "minecraft:resupply_trades", "target": "self" }, "goal_cooldown": 200, "speed_multiplier": 0.5, "work_in_rain_tolerance": 100 }, "minecraft:shareables": { "items": [ { "item": "minecraft:bread", "stored_in_inventory": true, "surplus_amount": 6, "want_amount": 3 }, { "item": "minecraft:carrot", "stored_in_inventory": true, "surplus_amount": 24, "want_amount": 60 }, { "item": "minecraft:potato", "stored_in_inventory": true, "surplus_amount": 24, "want_amount": 60 }, { "item": "minecraft:beetroot", "stored_in_inventory": true, "surplus_amount": 24, "want_amount": 60 }, { "item": "minecraft:wheat_seeds", "pickup_only": true, "stored_in_inventory": true, "surplus_amount": 64, "want_amount": 64 }, { "item": "minecraft:beetroot_seeds", "pickup_only": true, "stored_in_inventory": true, "surplus_amount": 64, "want_amount": 64 }, { "item": "minecraft:torchflower_seeds", "pickup_only": true, "stored_in_inventory": true, "surplus_amount": 64, "want_amount": 64 }, { "item": "minecraft:pitcher_pod", "pickup_only": true, "stored_in_inventory": true, "surplus_amount": 64, "want_amount": 64 }, { "item": "minecraft:bone_meal", "stored_in_inventory": true, "surplus_amount": 64, "want_amount": 64 }, { "craft_into": "minecraft:bread", "want_amount": 45, "item": "minecraft:wheat", "stored_in_inventory": true, "surplus_amount": 18 } ] } }, "farmer_schedule": { "minecraft:scheduler": { "max_delay_secs": 10, "scheduled_events": [ { "event": "minecraft:schedule_work_farmer", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 0 }, { "operator": "<", "test": "hourly_clock_time", "value": 8000 } ] } }, { "event": "minecraft:schedule_gather_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 8000 }, { "operator": "<", "test": "hourly_clock_time", "value": 10000 } ] } }, { "event": "minecraft:schedule_work_farmer", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 10000 }, { "operator": "<", "test": "hourly_clock_time", "value": 11000 } ] } }, { "event": "minecraft:schedule_home_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 11000 }, { "operator": "<", "test": "hourly_clock_time", "value": 12000 } ] } }, { "event": "minecraft:schedule_bed_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 12000 }, { "operator": "<", "test": "hourly_clock_time", "value": 24000 } ] } } ], "min_delay_secs": 0 } }, "work_schedule": { "minecraft:scheduler": { "max_delay_secs": 10, "scheduled_events": [ { "event": "minecraft:schedule_work_pro_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 0 }, { "operator": "<", "test": "hourly_clock_time", "value": 8000 } ] } }, { "event": "minecraft:schedule_gather_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 8000 }, { "operator": "<", "test": "hourly_clock_time", "value": 10000 } ] } }, { "event": "minecraft:schedule_work_pro_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 10000 }, { "operator": "<", "test": "hourly_clock_time", "value": 11000 } ] } }, { "event": "minecraft:schedule_home_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 11000 }, { "operator": "<", "test": "hourly_clock_time", "value": 12000 } ] } }, { "event": "minecraft:schedule_bed_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 12000 }, { "operator": "<", "test": "hourly_clock_time", "value": 24000 } ] } } ], "min_delay_secs": 0 } }, "fisher_schedule": { "minecraft:scheduler": { "max_delay_secs": 10, "scheduled_events": [ { "event": "minecraft:schedule_work_fisher", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 0 }, { "operator": "<", "test": "hourly_clock_time", "value": 8000 } ] } }, { "event": "minecraft:schedule_gather_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 8000 }, { "operator": "<", "test": "hourly_clock_time", "value": 10000 } ] } }, { "event": "minecraft:schedule_work_fisher", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 10000 }, { "operator": "<", "test": "hourly_clock_time", "value": 11000 } ] } }, { "event": "minecraft:schedule_home_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 11000 }, { "operator": "<", "test": "hourly_clock_time", "value": 12000 } ] } }, { "event": "minecraft:schedule_bed_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 12000 }, { "operator": "<", "test": "hourly_clock_time", "value": 24000 } ] } } ], "min_delay_secs": 0 } }, "villager_skin_2": { "minecraft:skin_id": { "value": 2 } }, "fisherman": { "minecraft:behavior.trade_interest": { "carried_item_switch_time": 2, "cooldown": 2, "interest_time": 45, "within_radius": 6, "priority": 5, "remove_item_time": 1 }, "minecraft:dweller": { "can_find_poi": true, "dwelling_type": "village", "can_migrate": true, "dweller_role": "inhabitant", "preferred_profession": "fisherman", "first_founding_reward": 5, "update_interval_base": 60, "update_interval_variant": 40 }, "minecraft:economy_trade_table": { "cured_discount": [ -25, -20 ], "display_name": "entity.villager.fisherman", "max_cured_discount": [ -25, -20 ], "new_screen": true, "persist_trades": true, "table": "trading/economy_trades/fisherman_trades.json" }, "minecraft:type_family": { "family": [ "villager", "peasant", "fisherman", "mob" ] }, "minecraft:variant": { "value": 2 } }, "fletcher": { "minecraft:behavior.trade_interest": { "carried_item_switch_time": 2, "cooldown": 2, "interest_time": 45, "within_radius": 6, "priority": 5, "remove_item_time": 1 }, "minecraft:dweller": { "can_find_poi": true, "dwelling_type": "village", "can_migrate": true, "dweller_role": "inhabitant", "preferred_profession": "fletcher", "first_founding_reward": 5, "update_interval_base": 60, "update_interval_variant": 40 }, "minecraft:economy_trade_table": { "cured_discount": [ -25, -20 ], "display_name": "entity.villager.fletcher", "max_cured_discount": [ -25, -20 ], "new_screen": true, "persist_trades": true, "table": "trading/economy_trades/fletcher_trades.json" }, "minecraft:type_family": { "family": [ "villager", "peasant", "fletcher", "mob" ] }, "minecraft:variant": { "value": 4 } }, "gather_schedule_villager": { "minecraft:behavior.mingle": { "cooldown_time": 10, "duration": 30, "mingle_distance": 2, "mingle_partner_type": "minecraft:villager_v2", "priority": 7, "speed_multiplier": 0.5 } }, "home_schedule_villager": {}, // Every goal that has to do with villagers working should go here (work goals, secondary goals) // so they can be successfuly removed on schedule change "job_specific_goals": { "minecraft:behavior.explore_outskirts": {}, "minecraft:behavior.harvest_farm_block": {}, "minecraft:behavior.inspect_bookshelf": {}, "minecraft:behavior.mingle": {}, "minecraft:behavior.sleep": {}, "minecraft:behavior.work": {}, "minecraft:behavior.work_composter": {} }, "work_schedule_librarian": { "minecraft:behavior.inspect_bookshelf": { "goal_radius": 0.8, "priority": 8, "search_count": 0, "search_height": 3, "search_range": 4, "speed_multiplier": 0.6 }, "minecraft:behavior.work": { "priority": 7, "active_time": 250, "on_arrival": { "event": "minecraft:resupply_trades", "target": "self" }, "can_work_in_rain": false, "speed_multiplier": 0.5, "goal_cooldown": 200, "sound_delay_max": 200, "work_in_rain_tolerance": 100, "sound_delay_min": 100 } }, "jobless_schedule": { "minecraft:scheduler": { "max_delay_secs": 10, "scheduled_events": [ { "event": "minecraft:schedule_wander_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 2000 }, { "operator": "<", "test": "hourly_clock_time", "value": 13000 } ] } }, { "event": "minecraft:schedule_home_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 13000 }, { "operator": "<", "test": "hourly_clock_time", "value": 14000 } ] } }, { "event": "minecraft:schedule_bed_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 14000 }, { "operator": "<", "test": "hourly_clock_time", "value": 24000 } ] } }, { "event": "minecraft:schedule_bed_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 0 }, { "operator": "<", "test": "hourly_clock_time", "value": 2000 } ] } } ], "min_delay_secs": 0 } }, "librarian": { "minecraft:behavior.trade_interest": { "carried_item_switch_time": 2, "cooldown": 2, "interest_time": 45, "within_radius": 6, "priority": 5, "remove_item_time": 1 }, "minecraft:dweller": { "can_find_poi": true, "dwelling_type": "village", "can_migrate": true, "dweller_role": "inhabitant", "preferred_profession": "librarian", "first_founding_reward": 5, "update_interval_base": 60, "update_interval_variant": 40 }, "minecraft:economy_trade_table": { "cured_discount": [ -25, -20 ], "display_name": "entity.villager.librarian", "max_cured_discount": [ -25, -20 ], "new_screen": true, "persist_trades": true, "table": "trading/economy_trades/librarian_trades.json" }, "minecraft:type_family": { "family": [ "villager", "librarian", "mob" ] }, "minecraft:variant": { "value": 5 } }, "jungle_villager": { "minecraft:mark_variant": { "value": 2 } }, "leatherworker": { "minecraft:behavior.trade_interest": { "carried_item_switch_time": 2, "cooldown": 2, "interest_time": 45, "within_radius": 6, "priority": 5, "remove_item_time": 1 }, "minecraft:dweller": { "can_find_poi": true, "dwelling_type": "village", "can_migrate": true, "dweller_role": "inhabitant", "preferred_profession": "leatherworker", "first_founding_reward": 5, "update_interval_base": 60, "update_interval_variant": 40 }, "minecraft:economy_trade_table": { "cured_discount": [ -25, -20 ], "display_name": "entity.villager.leather", "max_cured_discount": [ -25, -20 ], "new_screen": true, "persist_trades": true, "table": "trading/economy_trades/leather_worker_trades.json" }, "minecraft:type_family": { "family": [ "villager", "artisan", "leatherworker", "mob" ] }, "minecraft:variant": { "value": 12 } }, "librarian_schedule": { "minecraft:scheduler": { "max_delay_secs": 10, "scheduled_events": [ { "event": "minecraft:schedule_work_librarian", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 0 }, { "operator": "<", "test": "hourly_clock_time", "value": 8000 } ] } }, { "event": "minecraft:schedule_gather_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 8000 }, { "operator": "<", "test": "hourly_clock_time", "value": 10000 } ] } }, { "event": "minecraft:schedule_work_librarian", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 10000 }, { "operator": "<", "test": "hourly_clock_time", "value": 11000 } ] } }, { "event": "minecraft:schedule_home_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 11000 }, { "operator": "<", "test": "hourly_clock_time", "value": 12000 } ] } }, { "event": "minecraft:schedule_bed_villager", "filters": { "all_of": [ { "operator": ">=", "test": "hourly_clock_time", "value": 12000 }, { "operator": "<", "test": "hourly_clock_time", "value": 24000 } ] } } ], "min_delay_secs": 0 } }, "mason": { "minecraft:behavior.trade_interest": { "carried_item_switch_time": 2, "cooldown": 2, "interest_time": 45, "within_radius": 6, "priority": 5, "remove_item_time": 1 }, "minecraft:dweller": { "can_find_poi": true, "dwelling_type": "village", "can_migrate": true, "dweller_role": "inhabitant", "preferred_profession": "mason", "first_founding_reward": 5, "update_interval_base": 60, "update_interval_variant": 40 }, "minecraft:economy_trade_table": { "cured_discount": [ -25, -20 ], "display_name": "entity.villager.mason", "max_cured_discount": [ -25, -20 ], "new_screen": true, "persist_trades": true, "table": "trading/economy_trades/stone_mason_trades.json" }, "minecraft:type_family": { "family": [ "villager", "artisan", "stone_mason", "mob" ] }, "minecraft:variant": { "value": 13 } }, "work_schedule_fisher": { "minecraft:behavior.work": { "priority": 7, "active_time": 250, "on_arrival": { "event": "minecraft:resupply_trades", "target": "self" }, "can_work_in_rain": false, "speed_multiplier": 0.5, "goal_cooldown": 200, "sound_delay_max": 200, "work_in_rain_tolerance": 100, "sound_delay_min": 100 } }, "nitwit": { "minecraft:type_family": { "family": [ "villager", "peasant", "nitwit", "mob" ] }, "minecraft:variant": { "value": 14 } }, "play_schedule_villager": { "minecraft:behavior.play": { "friend_types": [ { "filters": { "all_of": [ { "subject": "other", "test": "is_family", "value": "villager" }, { "operator": "==", "test": "is_baby", "subject": "other", "value": true } ] } } ], "priority": 8, "speed_multiplier": 0.6 } }, "savanna_villager": { "minecraft:mark_variant": { "value": 3 } }, "unskilled": { "minecraft:type_family": { "family": [ "villager", "peasant", "unskilled", "mob" ] }, "minecraft:variant": { "value": 0 } }, "shepherd": { "minecraft:behavior.trade_interest": { "carried_item_switch_time": 2, "cooldown": 2, "interest_time": 45, "within_radius": 6, "priority": 5, "remove_item_time": 1 }, "minecraft:dweller": { "can_find_poi": true, "dwelling_type": "village", "can_migrate": true, "dweller_role": "inhabitant", "preferred_profession": "shepherd", "first_founding_reward": 5, "update_interval_base": 60, "update_interval_variant": 40 }, "minecraft:economy_trade_table": { "cured_discount": [ -25, -20 ], "display_name": "entity.villager.shepherd", "max_cured_discount": [ -25, -20 ], "new_screen": true, "persist_trades": true, "table": "trading/economy_trades/shepherd_trades.json" }, "minecraft:type_family": { "family": [ "villager", "peasant", "shepherd", "mob" ] }, "minecraft:variant": { "value": 3 } }, "swamp_villager": { "minecraft:mark_variant": { "value": 5 } }, "taiga_villager": { "minecraft:mark_variant": { "value": 6 } }, "toolsmith": { "minecraft:behavior.trade_interest": { "carried_item_switch_time": 2, "cooldown": 2, "interest_time": 45, "within_radius": 6, "priority": 5, "remove_item_time": 1 }, "minecraft:dweller": { "can_find_poi": true, "dwelling_type": "village", "can_migrate": true, "dweller_role": "inhabitant", "preferred_profession": "toolsmith", "first_founding_reward": 5, "update_interval_base": 60, "update_interval_variant": 40 }, "minecraft:economy_trade_table": { "cured_discount": [ -25, -20 ], "display_name": "entity.villager.tool", "max_cured_discount": [ -25, -20 ], "new_screen": true, "persist_trades": true, "table": "trading/economy_trades/tool_smith_trades.json" }, "minecraft:type_family": { "family": [ "villager", "blacksmith", "toolsmith", "mob" ] }, "minecraft:variant": { "value": 10 } }, // A grouping of components that should never be added // however, they are here to flush out any artifact component groups // that might linger between villager job switches "trade_components": { "minecraft:behavior.trade_interest": {}, "minecraft:economy_trade_table": {} }, "trade_resupply_component_group": { "minecraft:trade_resupply": {} }, "villager_skin_0": { "minecraft:skin_id": { "value": 0 } }, "villager_skin_1": { "minecraft:skin_id": { "value": 1 } }, "work_schedule_villager": { "minecraft:behavior.work": { "priority": 7, "active_time": 250, "on_arrival": { "event": "minecraft:resupply_trades", "target": "self" }, "can_work_in_rain": false, "speed_multiplier": 0.5, "goal_cooldown": 200, "sound_delay_max": 200, "work_in_rain_tolerance": 100, "sound_delay_min": 100 } }, "villager_skin_3": { "minecraft:skin_id": { "value": 3 } }, "villager_skin_4": { "minecraft:skin_id": { "value": 4 } }, "villager_skin_5": { "minecraft:skin_id": { "value": 5 } }, "wander_schedule_villager": { "minecraft:behavior.explore_outskirts": { "max_wait_time": 10, "speed_multiplier": 0.6, "explore_dist": 6, "min_dist_from_target": 2.5, "priority": 9 } } }, "events": { "become_witch": { "add": { "component_groups": [ "become_witch" ] } }, "become_zombie": { "sequence": [ { "randomize": [ { "add": { "component_groups": [ "become_zombie" ] }, "weight": 50 }, { "weight": 50 } ], "filters": { "test": "is_difficulty", "value": "normal" } }, { "filters": { "test": "is_difficulty", "value": "hard" }, "add": { "component_groups": [ "become_zombie" ] } } ] }, "minecraft:stop_celebrating": { "remove": { "component_groups": [ "minecraft:celebrate" ] } }, "minecraft:schedule_work_fisher": { "add": { "component_groups": [ "make_and_receive_love", "work_schedule_fisher" ] }, "remove": { "component_groups": [ "home_schedule_villager", "gather_schedule_villager", "wander_schedule_villager", "bed_schedule_villager", "job_specific_goals", "play_schedule_villager" ] } }, "minecraft:become_farmer": { "add": { "component_groups": [ "farmer", "adult", "make_and_receive_love", "behavior_peasant", "farmer_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule", "job_specific_goals", "trade_components" ] } }, "minecraft:start_celebrating": { // Event must be called exactly this for village to fire it when a raid is won "add": { "component_groups": [ "minecraft:celebrate" ] } }, "minecraft:become_butcher": { "add": { "component_groups": [ "butcher", "adult", "make_and_receive_love", "behavior_non_peasant", "work_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule", "job_specific_goals", "trade_components" ] } }, "minecraft:ageable_grow_up": { "randomize": [ { "add": { "component_groups": [ "adult", "make_and_receive_love", "nitwit", "behavior_peasant", "jobless_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule" ] }, "weight": 10 }, { "add": { "component_groups": [ "adult", "make_and_receive_love", "unskilled", "behavior_peasant", "basic_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule" ] }, "weight": 90 } ] }, "minecraft:schedule_work_pro_villager": { "add": { "component_groups": [ "make_and_receive_love", "work_schedule_villager" ] }, "remove": { "component_groups": [ "home_schedule_villager", "gather_schedule_villager", "wander_schedule_villager", "bed_schedule_villager", "play_schedule_villager" ] } }, "minecraft:become_cleric": { "add": { "component_groups": [ "cleric", "adult", "make_and_receive_love", "behavior_non_peasant", "work_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule", "job_specific_goals", "trade_components" ] } }, "minecraft:become_armorer": { "add": { "component_groups": [ "armorer", "adult", "make_and_receive_love", "behavior_non_peasant", "work_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule", "job_specific_goals", "trade_components" ] } }, "minecraft:become_cartographer": { "add": { "component_groups": [ "cartographer", "adult", "make_and_receive_love", "behavior_non_peasant", "work_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule", "job_specific_goals", "trade_components" ] } }, "minecraft:become_fletcher": { "add": { "component_groups": [ "fletcher", "adult", "make_and_receive_love", "behavior_non_peasant", "work_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule", "job_specific_goals", "trade_components" ] } }, "minecraft:become_fisherman": { "add": { "component_groups": [ "fisherman", "adult", "make_and_receive_love", "behavior_non_peasant", "fisher_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule", "job_specific_goals", "trade_components" ] } }, "minecraft:become_leatherworker": { "add": { "component_groups": [ "leatherworker", "adult", "make_and_receive_love", "behavior_non_peasant", "work_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule", "job_specific_goals", "trade_components" ] } }, "minecraft:become_librarian": { "add": { "component_groups": [ "librarian", "adult", "make_and_receive_love", "behavior_non_peasant", "librarian_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule", "job_specific_goals", "trade_components" ] } }, "minecraft:become_mason": { "add": { "component_groups": [ "mason", "adult", "make_and_receive_love", "behavior_non_peasant", "work_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule", "job_specific_goals", "trade_components" ] } }, "minecraft:entity_transformed": { "sequence": [ // Transform to baby villager { "filters": { "test": "has_component", "operator": "==", "subject": "other", "value": "minecraft:is_baby" }, "add": { "component_groups": [ "baby", "child_schedule" ] } }, { // Transform to adult villager "filters": { "test": "has_component", "operator": "!=", "subject": "other", "value": "minecraft:is_baby" }, "sequence": [ // Transform to adult villager { "add": { "component_groups": [ "adult", "make_and_receive_love" ] } }, // Transform to farmer villager { "filters": { "subject": "other", "test": "is_family", "value": "farmer" }, "add": { "component_groups": [ "farmer", "behavior_peasant", "farmer_schedule" ] } }, // Transform to fisherman villager { "filters": { "subject": "other", "test": "is_family", "value": "fisherman" }, "add": { "component_groups": [ "fisherman", "behavior_peasant", "fisher_schedule" ] } }, // Transform to shepherd villager { "filters": { "subject": "other", "test": "is_family", "value": "shepherd" }, "add": { "component_groups": [ "shepherd", "behavior_peasant", "work_schedule" ] } }, // Transform to fletcher villager { "filters": { "subject": "other", "test": "is_family", "value": "fletcher" }, "add": { "component_groups": [ "fletcher", "behavior_peasant", "work_schedule" ] } }, // Transform to librarian villager { "filters": { "subject": "other", "test": "is_family", "value": "librarian" }, "add": { "component_groups": [ "librarian", "behavior_non_peasant", "librarian_schedule" ] } }, // Transform to cartographer villager { "filters": { "subject": "other", "test": "is_family", "value": "cartographer" }, "add": { "component_groups": [ "cartographer", "behavior_non_peasant", "work_schedule" ] } }, // Transform to cleric villager { "filters": { "subject": "other", "test": "is_family", "value": "cleric" }, "add": { "component_groups": [ "cleric", "behavior_non_peasant", "work_schedule" ] } }, // Transform to armorer villager { "filters": { "subject": "other", "test": "is_family", "value": "armorer" }, "add": { "component_groups": [ "armorer", "behavior_non_peasant", "work_schedule" ] } }, // Transform to weaponsmith villager { "filters": { "subject": "other", "test": "is_family", "value": "weaponsmith" }, "add": { "component_groups": [ "weaponsmith", "behavior_non_peasant", "work_schedule" ] } }, // Transform to toolsmith villager { "filters": { "subject": "other", "test": "is_family", "value": "toolsmith" }, "add": { "component_groups": [ "toolsmith", "behavior_non_peasant", "work_schedule" ] } }, // Transform to butcher villager { "filters": { "subject": "other", "test": "is_family", "value": "butcher" }, "add": { "component_groups": [ "butcher", "behavior_non_peasant", "work_schedule" ] } }, // Transform to leatherworker villager { "filters": { "subject": "other", "test": "is_family", "value": "leatherworker" }, "add": { "component_groups": [ "leatherworker", "behavior_non_peasant", "work_schedule" ] } }, // Transform to mason villager { "filters": { "subject": "other", "test": "is_family", "value": "stone_mason" }, "add": { "component_groups": [ "mason", "behavior_non_peasant", "work_schedule" ] } } ] }, { // Transform from zombie to correct villager skin (mark var already set) "filters": { "test": "is_family", "operator": "==", "subject": "other", "value": "zombie_villager" }, "sequence": [ { "filters": { "subject": "other", "test": "is_skin_id", "value": 0 }, "add": { "component_groups": [ "villager_skin_0" ] } }, { "filters": { "subject": "other", "test": "is_skin_id", "value": 1 }, "add": { "component_groups": [ "villager_skin_1" ] } }, { "filters": { "subject": "other", "test": "is_skin_id", "value": 2 }, "add": { "component_groups": [ "villager_skin_2" ] } }, { "filters": { "subject": "other", "test": "is_skin_id", "value": 3 }, "add": { "component_groups": [ "villager_skin_3" ] } }, { "filters": { "subject": "other", "test": "is_skin_id", "value": 4 }, "add": { "component_groups": [ "villager_skin_4" ] } }, { "filters": { "subject": "other", "test": "is_skin_id", "value": 5 }, "add": { "component_groups": [ "villager_skin_5" ] } }, { "filters": { "subject": "other", "test": "is_mark_variant", "value": 1 }, "add": { "component_groups": [ "desert_villager" ] } }, { "filters": { "subject": "other", "test": "is_mark_variant", "value": 2 }, "add": { "component_groups": [ "jungle_villager" ] } }, { "filters": { "subject": "other", "test": "is_mark_variant", "value": 3 }, "add": { "component_groups": [ "savanna_villager" ] } }, { "filters": { "subject": "other", "test": "is_mark_variant", "value": 4 }, "add": { "component_groups": [ "snow_villager" ] } }, { "filters": { "subject": "other", "test": "is_mark_variant", "value": 5 }, "add": { "component_groups": [ "swamp_villager" ] } }, { "filters": { "subject": "other", "test": "is_mark_variant", "value": 6 }, "add": { "component_groups": [ "taiga_villager" ] } } ] }, { // Transform from v1 - > v2 to correct villager skin (mark var not set so test biome) "filters": { "test": "is_family", "operator": "==", "subject": "other", "value": "villager" }, "sequence": [ { "randomize": [ { "add": { "component_groups": [ "villager_skin_0" ] }, "weight": 1 }, { "add": { "component_groups": [ "villager_skin_1" ] }, "weight": 1 }, { "add": { "component_groups": [ "villager_skin_2" ] }, "weight": 1 }, { "add": { "component_groups": [ "villager_skin_3" ] }, "weight": 1 }, { "add": { "component_groups": [ "villager_skin_4" ] }, "weight": 1 }, { "add": { "component_groups": [ "villager_skin_5" ] }, "weight": 1 } ] }, { "filters": { "any_of": [ { "test": "has_biome_tag", "value": "desert" }, { "test": "has_biome_tag", "value": "mesa" } ] }, "add": { "component_groups": [ "desert_villager" ] } }, { "filters": { "test": "has_biome_tag", "value": "jungle" }, "add": { "component_groups": [ "jungle_villager" ] } }, { "filters": { "test": "has_biome_tag", "value": "savanna" }, "add": { "component_groups": [ "savanna_villager" ] } }, { "filters": { "any_of": [ { "all_of": [ { "test": "has_biome_tag", "value": "cold" }, { "test": "has_biome_tag", "operator": "!=", "value": "ocean" } ] }, { "test": "has_biome_tag", "value": "frozen" } ] }, "add": { "component_groups": [ "snow_villager" ] } }, { "filters": { "any_of": [ { "test": "has_biome_tag", "value": "swamp" }, { "test": "has_biome_tag", "value": "mangrove_swamp" } ] }, "add": { "component_groups": [ "swamp_villager" ] } }, { "filters": { "all_of": [ { "any_of": [ { "test": "has_biome_tag", "value": "taiga" }, { "test": "has_biome_tag", "value": "extreme_hills" } ] }, { "test": "has_biome_tag", "operator": "!=", "value": "cold" } ] }, "add": { "component_groups": [ "taiga_villager" ] } } ] } ] }, "minecraft:become_sheperd": { "add": { "component_groups": [ "shepherd", "adult", "make_and_receive_love", "behavior_non_peasant", "work_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule", "job_specific_goals", "trade_components" ] } }, "minecraft:schedule_play_villager": { "add": { "component_groups": [ "play_schedule_villager" ] }, "remove": { "component_groups": [ "home_schedule_villager", "gather_schedule_villager", "wander_schedule_villager", "bed_schedule_villager", "job_specific_goals", "trade_resupply_component_group" ] } }, "minecraft:become_toolsmith": { "add": { "component_groups": [ "toolsmith", "adult", "make_and_receive_love", "behavior_non_peasant", "work_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule", "job_specific_goals", "trade_components" ] } }, "minecraft:spawn_from_village": { "sequence": [ { "randomize": [ { "add": { "component_groups": [ "baby", "child_schedule" ] }, "weight": 5 }, { "add": { "component_groups": [ "adult", "make_and_receive_love" ] }, "sequence": [ { "randomize": [ { "add": { "component_groups": [ "unskilled", "behavior_peasant", "basic_schedule" ] }, "weight": 90 }, { "add": { "component_groups": [ "nitwit", "behavior_peasant", "jobless_schedule" ] }, "weight": 10 } ] } ], "weight": 95 } ], "filters": { "test": "has_component", "operator": "!=", "value": "minecraft:variant" } }, { "randomize": [ { "add": { "component_groups": [ "villager_skin_0" ] }, "weight": 1 }, { "add": { "component_groups": [ "villager_skin_1" ] }, "weight": 1 }, { "add": { "component_groups": [ "villager_skin_2" ] }, "weight": 1 }, { "add": { "component_groups": [ "villager_skin_3" ] }, "weight": 1 }, { "add": { "component_groups": [ "villager_skin_4" ] }, "weight": 1 }, { "add": { "component_groups": [ "villager_skin_5" ] }, "weight": 1 } ], "filters": { "test": "has_component", "operator": "!=", "value": "minecraft:skin_id" } }, { "filters": { "any_of": [ { "test": "has_biome_tag", "value": "desert" }, { "test": "has_biome_tag", "value": "mesa" } ] }, "add": { "component_groups": [ "desert_villager" ] } }, { "filters": { "test": "has_biome_tag", "value": "jungle" }, "add": { "component_groups": [ "jungle_villager" ] } }, { "filters": { "test": "has_biome_tag", "value": "savanna" }, "add": { "component_groups": [ "savanna_villager" ] } }, { "filters": { "any_of": [ { "all_of": [ { "test": "has_biome_tag", "value": "cold" }, { "test": "has_biome_tag", "operator": "!=", "value": "ocean" } ] }, { "test": "has_biome_tag", "value": "frozen" } ] }, "add": { "component_groups": [ "snow_villager" ] } }, { "filters": { "any_of": [ { "test": "has_biome_tag", "value": "swamp" }, { "test": "has_biome_tag", "value": "mangrove_swamp" } ] }, "add": { "component_groups": [ "swamp_villager" ] } }, { "filters": { "all_of": [ { "any_of": [ { "test": "has_biome_tag", "value": "taiga" }, { "test": "has_biome_tag", "value": "extreme_hills" } ] }, { "test": "has_biome_tag", "operator": "!=", "value": "cold" } ] }, "add": { "component_groups": [ "taiga_villager" ] } } ] }, "minecraft:schedule_work_farmer": { "add": { "component_groups": [ "make_and_receive_love", "work_schedule_farmer" ] }, "remove": { "component_groups": [ "home_schedule_villager", "gather_schedule_villager", "wander_schedule_villager", "bed_schedule_villager", "job_specific_goals", "play_schedule_villager" ] } }, "minecraft:become_unskilled": { "add": { "component_groups": [ "adult", "make_and_receive_love", "unskilled", "behavior_peasant", "basic_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule", "job_specific_goals", "trade_components" ] } }, "minecraft:become_weaponsmith": { "add": { "component_groups": [ "weaponsmith", "adult", "make_and_receive_love", "behavior_non_peasant", "work_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule", "job_specific_goals", "trade_components" ] } }, "minecraft:entity_born": { "sequence": [ { "randomize": [ { "add": { "component_groups": [ "villager_skin_0" ] }, "weight": 1 }, { "add": { "component_groups": [ "villager_skin_1" ] }, "weight": 1 }, { "add": { "component_groups": [ "villager_skin_2" ] }, "weight": 1 }, { "add": { "component_groups": [ "villager_skin_3" ] }, "weight": 1 }, { "add": { "component_groups": [ "villager_skin_4" ] }, "weight": 1 }, { "add": { "component_groups": [ "villager_skin_5" ] }, "weight": 1 } ], "filters": { "test": "has_component", "operator": "!=", "value": "minecraft:skin_id" } }, { "add": { "component_groups": [ "baby", "unskilled", "child_schedule" ] } }, { "filters": { "test": "has_biome_tag", "value": "desert" }, "add": { "component_groups": [ "desert_villager" ] } }, { "filters": { "test": "has_biome_tag", "value": "jungle" }, "add": { "component_groups": [ "jungle_villager" ] } }, { "filters": { "test": "has_biome_tag", "value": "savanna" }, "add": { "component_groups": [ "savanna_villager" ] } }, { "filters": { "any_of": [ { "test": "has_biome_tag", "value": "cold" }, { "test": "has_biome_tag", "value": "frozen" } ] }, "add": { "component_groups": [ "snow_villager" ] } }, { "filters": { "any_of": [ { "test": "has_biome_tag", "value": "swamp" }, { "test": "has_biome_tag", "value": "mangrove_swamp" } ] }, "add": { "component_groups": [ "swamp_villager" ] } }, { "filters": { "test": "has_biome_tag", "value": "taiga" }, "add": { "component_groups": [ "taiga_villager" ] } } ] }, "minecraft:entity_spawned": { "sequence": [ { "randomize": [ { "add": { "component_groups": [ "villager_skin_0" ] }, "weight": 1 }, { "add": { "component_groups": [ "villager_skin_1" ] }, "weight": 1 }, { "add": { "component_groups": [ "villager_skin_2" ] }, "weight": 1 }, { "add": { "component_groups": [ "villager_skin_3" ] }, "weight": 1 }, { "add": { "component_groups": [ "villager_skin_4" ] }, "weight": 1 }, { "add": { "component_groups": [ "villager_skin_5" ] }, "weight": 1 } ], "filters": { "test": "has_component", "operator": "!=", "value": "minecraft:skin_id" } }, { "randomize": [ { "add": { "component_groups": [ "baby", "child_schedule" ] }, "weight": 5 }, { "sequence": [ { "add": { "component_groups": [ "adult", "make_and_receive_love" ] } }, { "randomize": [ { "add": { "component_groups": [ "farmer", "behavior_peasant", "basic_schedule" ] }, "weight": 1 }, { "add": { "component_groups": [ "fisherman", "behavior_peasant", "basic_schedule" ] }, "weight": 1 }, { "add": { "component_groups": [ "shepherd", "behavior_peasant", "basic_schedule" ] }, "weight": 1 }, { "add": { "component_groups": [ "fletcher", "behavior_peasant", "basic_schedule" ] }, "weight": 1 }, { "add": { "component_groups": [ "librarian", "behavior_non_peasant", "basic_schedule" ] }, "weight": 1 }, { "add": { "component_groups": [ "cartographer", "behavior_non_peasant", "basic_schedule" ] }, "weight": 1 }, { "add": { "component_groups": [ "cleric", "behavior_non_peasant", "basic_schedule" ] }, "weight": 1 }, { "add": { "component_groups": [ "armorer", "behavior_non_peasant", "basic_schedule" ] }, "weight": 1 }, { "add": { "component_groups": [ "weaponsmith", "behavior_non_peasant", "basic_schedule" ] }, "weight": 1 }, { "add": { "component_groups": [ "toolsmith", "behavior_non_peasant", "basic_schedule" ] }, "weight": 1 }, { "add": { "component_groups": [ "butcher", "behavior_non_peasant", "basic_schedule" ] }, "weight": 1 }, { "add": { "component_groups": [ "leatherworker", "behavior_non_peasant", "basic_schedule" ] }, "weight": 1 }, { "add": { "component_groups": [ "mason", "behavior_non_peasant", "basic_schedule" ] }, "weight": 1 }, { "add": { "component_groups": [ "nitwit", "behavior_peasant", "jobless_schedule" ] }, "weight": 1 } ] } ], "weight": 95 } ], "filters": { "test": "has_component", "operator": "!=", "value": "minecraft:variant" } }, { "filters": { "any_of": [ { "test": "has_biome_tag", "value": "desert" }, { "test": "has_biome_tag", "value": "mesa" } ] }, "add": { "component_groups": [ "desert_villager" ] } }, { "filters": { "test": "has_biome_tag", "value": "jungle" }, "add": { "component_groups": [ "jungle_villager" ] } }, { "filters": { "test": "has_biome_tag", "value": "savanna" }, "add": { "component_groups": [ "savanna_villager" ] } }, { "filters": { "any_of": [ { "all_of": [ { "test": "has_biome_tag", "value": "cold" }, { "test": "has_biome_tag", "operator": "!=", "value": "ocean" } ] }, { "test": "has_biome_tag", "value": "frozen" } ] }, "add": { "component_groups": [ "snow_villager" ] } }, { "filters": { "any_of": [ { "test": "has_biome_tag", "value": "swamp" }, { "test": "has_biome_tag", "value": "mangrove_swamp" } ] }, "add": { "component_groups": [ "swamp_villager" ] } }, { "filters": { "all_of": [ { "any_of": [ { "test": "has_biome_tag", "value": "taiga" }, { "test": "has_biome_tag", "value": "extreme_hills" } ] }, { "test": "has_biome_tag", "operator": "!=", "value": "cold" } ] }, "add": { "component_groups": [ "taiga_villager" ] } } ] }, "minecraft:resupply_trades": { "add": { "component_groups": [ "trade_resupply_component_group" ] } }, "minecraft:schedule_home_villager": { "add": { "component_groups": [ "make_and_receive_love", "home_schedule_villager" ] }, "remove": { "component_groups": [ "bed_schedule_villager", "wander_schedule_villager", "gather_schedule_villager", "job_specific_goals", "play_schedule_villager", "trade_resupply_component_group" ] } }, "minecraft:schedule_bed_villager": { "add": { "component_groups": [ "bed_schedule_villager" ] }, "remove": { "component_groups": [ "make_and_receive_love", "home_schedule_villager", "gather_schedule_villager", "wander_schedule_villager", "job_specific_goals", "play_schedule_villager", "trade_resupply_component_group" ] } }, "minecraft:schedule_gather_villager": { "add": { "component_groups": [ "make_and_receive_love", "gather_schedule_villager" ] }, "remove": { "component_groups": [ "bed_schedule_villager", "wander_schedule_villager", "home_schedule_villager", "job_specific_goals", "play_schedule_villager", "trade_resupply_component_group" ] } }, "minecraft:schedule_wander_villager": { "add": { "component_groups": [ "make_and_receive_love", "wander_schedule_villager" ] }, "remove": { "component_groups": [ "home_schedule_villager", "bed_schedule_villager", "wander_schedule_villager", "job_specific_goals", "play_schedule_villager", "trade_resupply_component_group" ] } }, "minecraft:schedule_work_librarian": { "add": { "component_groups": [ "make_and_receive_love", "work_schedule_librarian" ] }, "remove": { "component_groups": [ "home_schedule_villager", "gather_schedule_villager", "wander_schedule_villager", "bed_schedule_villager", "job_specific_goals", "play_schedule_villager" ] } }, "minecraft:spawn_cleric": { "add": { "component_groups": [ "cleric", "adult", "make_and_receive_love", "behavior_non_peasant", "basic_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule" ] } }, "minecraft:spawn_armorer": { "randomize": [ { "add": { "component_groups": [ "armorer", "adult", "make_and_receive_love", "behavior_non_peasant", "basic_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule" ] }, "weight": 6 }, { "add": { "component_groups": [ "weaponsmith", "adult", "make_and_receive_love", "behavior_non_peasant", "basic_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule" ] }, "weight": 6 }, { "add": { "component_groups": [ "toolsmith", "adult", "make_and_receive_love", "behavior_non_peasant", "basic_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule" ] }, "weight": 6 } ] }, "minecraft:spawn_butcher": { "randomize": [ { "add": { "component_groups": [ "butcher", "adult", "make_and_receive_love", "behavior_non_peasant", "basic_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule" ] }, "weight": 10 }, { "add": { "component_groups": [ "leatherworker", "adult", "make_and_receive_love", "behavior_non_peasant", "basic_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule" ] }, "weight": 10 } ] }, "minecraft:spawn_farmer": { "randomize": [ { "add": { "component_groups": [ "farmer", "adult", "make_and_receive_love", "behavior_peasant", "basic_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule" ] }, "weight": 5 }, { "add": { "component_groups": [ "fisherman", "adult", "make_and_receive_love", "behavior_peasant", "basic_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule" ] }, "weight": 5 }, { "add": { "component_groups": [ "shepherd", "adult", "make_and_receive_love", "behavior_peasant", "basic_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule" ] }, "weight": 5 }, { "add": { "component_groups": [ "fletcher", "adult", "make_and_receive_love", "behavior_peasant", "basic_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule" ] }, "weight": 5 }, { "add": { "component_groups": [ "mason", "adult", "make_and_receive_love", "behavior_non_peasant", "work_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule" ] }, "weight": 5 } ] }, "minecraft:spawn_librarian": { "randomize": [ { "add": { "component_groups": [ "librarian", "adult", "make_and_receive_love", "behavior_non_peasant", "basic_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule" ] }, "weight": 20 }, { "add": { "component_groups": [ "cartographer", "behavior_non_peasant", "basic_schedule" ] }, "remove": { "component_groups": [ "baby", "child_schedule" ] }, "weight": 20 } ] } } } }