{
	"format_version": "1.16.0",
	"minecraft:entity": {
		"description": {
			"identifier": "ljw:pug",
			"is_spawnable": true,
			"is_summonable": true,
			"is_experimental": false,
			"animations": {
				"armor_init": "animation.ljw_wolf.armor_init_beh",
				"wolf_armor_diamond_beh": "animation.ljw_wolf.wolf_armor_diamond_beh",
				"wolf_armor_iron_beh": "animation.ljw_wolf.wolf_armor_iron_beh",
				"wolf_armor_gold_beh": "animation.ljw_wolf.wolf_armor_gold_beh",
				"wolf_armor_obsidian_beh": "animation.ljw_wolf.wolf_armor_obsidian_beh",
				"wolf_armor_netherite_beh": "animation.ljw_wolf.wolf_armor_diamond_beh",
				"tail_wag": "animation.ljw_wolf.tail_wag_beh",
				"reset_skin_id": "animation.ljw_wolf.reset_skin_id_beh",
				
				"cont_interact": "controller.animation.ljw_wolf.interact_manager_beh",
				"cont_armor": "controller.animation.ljw_wolf.armor_manager",
				"cont_item_observer": "controller.animation.ljw_wolf.item_observer_beh",
				"cont_tail_wag": "controller.animation.ljw_wolf.tail_wag_beh",
				"cont_item_timer": "controller.animation.ljw_wolf.wolf_item_timer_beh",
				"cont_sleep": "controller.animation.ljw_wolf.sleep_manager_beh",
				"cont_sleep_observer": "controller.animation.ljw_wolf.sleep_observer_beh",
				"cont_look_at_player": "controller.animation.ljw_wolf.look_at_player_manager_beh",
				"cont_interest_observer": "controller.animation.ljw_wolf.interest_observer_beh",
				"cont_sit_observer": "controller.animation.ljw_wolf.sit_observer_beh",
				"cont_down_observer": "controller.animation.ljw_wolf.down_observer_cont_beh",
				"cont_fight_wisely": "controller.animation.ljw_wolf.fight_wisely_beh"
			},
			"scripts": {
				"animate": [
					"cont_interact",
					"cont_armor",
					"cont_item_observer",
					"cont_tail_wag",
					"cont_item_timer",
					"cont_sleep",
					"cont_sleep_observer",
					"cont_look_at_player",
					"cont_interest_observer",
					"cont_sit_observer",
					"cont_down_observer",
					"cont_fight_wisely"
				]
			}
		},
		
		"component_groups": {
			"ljw:pug_baby": {
				"minecraft:is_baby": {
				},
				
				"minecraft:scale": {
					"value":0.4
				},
			
				"minecraft:ageable": {
					"duration": 1200,
					"feedItems": [
						"chicken",
						"cooked_chicken",
						"beef",
						"cooked_beef",
						"muttonRaw",
						"muttonCooked",
						"porkchop",
						"cooked_porkchop",
						"rabbit",
						"cooked_rabbit",
						"rotten_flesh"
					],
					"grow_up": {
						"event": "minecraft:ageable_grow_up",
						"target": "self"
					}
				}
			},

			"ljw:pug_adult": {
				"minecraft:loot": {
					"table": "loot_tables/entities/wolf.json"
				},
				"minecraft:breedable": {
					"require_tame": true,
					"require_full_health": true,
					"breedsWith": {
						"mateType": "ljw:pug",
						"babyType": "ljw:pug",
						"breed_event": {
							"event": "minecraft:entity_born",
							"target": "baby"
						}
					},
					"breedItems": [
						"chicken",
						"cooked_chicken",
						"beef",
						"cooked_beef",
						"muttonRaw",
						"muttonCooked",
						"porkchop",
						"cooked_porkchop",
						"rabbit",
						"cooked_rabbit",
						"rotten_flesh"
					]
				},
		
				"minecraft:attack": {
					"damage": 4
				},
				
				"minecraft:movement": {
					"value": 0.35
				},
				
				"minecraft:scale": {
					"value":0.75
				},
				
				"minecraft:collision_box": {
					"width": 0.6,
					"height": 0.8
				}
			},
			
			"ljw:pug_angry": {
				"minecraft:angry": {
					"duration": 25,
					"broadcastAnger": true,
					"broadcastRange": 20,
					"calm_event": {
						"event": "minecraft:on_calm",
						"target": "self"
					}
				},
				"minecraft:on_target_acquired": {
				}
			},
			
			"ljw:pug_angry_tamed": {
				"minecraft:angry": {
					"duration": 60,
					"calm_event": {
						"event": "minecraft:on_calm_tamed",
						"target": "self"
					}
				},
				"minecraft:on_target_escape": {
					"event": "minecraft:on_calm_tamed",
					"target": "self"
				},
				"minecraft:behavior.look_at_target": {
					"priority": 6,
					"target_distance": 25.0,
					"probability": 1,
					"look_time": [25,25]
				}
			},
			
			"ljw:pug_calm_tamed": {
				"minecraft:behavior.tempt": {
					"priority": 4,
					"speed_multiplier": 1.25,
					"items": [
						"ljw:wolf_treat",
						"ljw:wolf_treat_honey"
					]
				},
				"minecraft:ambient_sound_interval": {
					"event_name": "ambient",
					"range": 16,
					"value": 8
				}
			},
			
			"ljw:pug_wild": {
				"minecraft:tameable": {
					"probability": 0.33,
					"tameItems": "bone",
					"tame_event": {
						"event": "minecraft:on_tame",
						"target": "self"
					}
				},
				"minecraft:behavior.avoid_mob_type": {
					"priority": 3,
					"entity_types": [
						{
							"filters": { "test": "is_family", "subject": "other", "value": "llama" },
							"max_dist": 24,
							"walk_speed_multiplier": 1.5,
							"sprint_speed_multiplier": 1.5
						}
					],
					"probability_per_strength": 0.14
				},
				"minecraft:behavior.look_at_player": {
					"priority": 6,
					"target_distance": 6.0,
					"probability": 0.02
				},
				"minecraft:behavior.nearest_attackable_target": {
					"priority": 4,
					"attack_interval": 10,
					"entity_types": [
						{
							"filters": { "other_with_families": [ "skeleton", "rabbit" ] },
							"max_dist": 16
						}
					],
					"must_see": true
				},
				"minecraft:on_target_acquired": {
					"event": "minecraft:become_angry",
					"target": "self"
				},
				"minecraft:rideable": {
					"seat_count": 1,
					"family_types": [
						"zombie"
					],
					"seats": {
						"position": [0.0, 0.675, -0.1]
					}
				},
				"minecraft:interact": {
					"interactions": [
						{
							//If this pack wasn't loaded at world creation
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "is_family", "subject": "other", "operator": "==", "value": "player" },
										{ "test": "has_component", "subject": "self", "operator": "!=", "value": "minecraft:navigation.generic" }
									]
								},
								"event": "minecraft:upgrade_wolf_wild",
								"target": "self"
							},
							"interact_text": "Enable Wolves+"
						}
					]
				}
			},
			
			"ljw:pug_following": {
				"minecraft:behavior.follow_owner": {
					"priority": 3,
					"speed_multiplier": 1.0,
					"start_distance": 10,
					"stop_distance": 2
				}
			},
			
			"ljw:pug_tame": {
				"minecraft:is_tamed": {
				},
				"minecraft:shareables": {
					"all_items": false,
					"all_items_max_amount": 1,
					"items": [
						{ "item": "minecraft:apple", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:appleEnchanted", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:baked_potato", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:beef", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:beetroot", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:beetroot_soup", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:bread", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:carrot", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:chicken", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:chorus_fruit", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:clownfish", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:cooked_beef", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:cooked_chicken", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:cooked_fish", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:cooked_porkchop", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:cooked_rabbit", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:cooked_salmon", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:dried_kelp", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:fish", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:golden_apple", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:golden_carrot", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:melon", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:mushroom_stew", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:muttonCooked", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:muttonRaw", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:porkchop", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:potato", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:pufferfish", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:pumpkin_pie", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:rabbit", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:rabbit_stew", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:rotten_flesh", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:salmon", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:sweet_berries", "priority": 1, "max_amount": 1 },
						{ "item": "minecraft:suspicious_stew", "priority": 1, "max_amount": 1 },
						{ "item": "ljw:wolf_treat", "priority": 0, "max_amount": 1 },
						{ "item": "ljw:wolf_ball", "priority": 0, "max_amount": 1 }
					]
				},
				"minecraft:behavior.pickup_items": {
					"priority": 4,
					"max_dist": 3,
					"goal_radius": 2,
					"speed_multiplier": 0.5
				},
				"minecraft:behavior.eat_carried_item": {
					"priority": 1,
					"delay_before_eating": 1
				},
				"minecraft:health": {
					"value": 20,
					"max": 20
				},
				"minecraft:color": {
					"value": 14
				},
				"minecraft:behavior.breed": {
					"priority": 4
				},
				"minecraft:sittable": {
					"sit_event": {
						"event": "minecraft:on_sit",
						"target": "self"
					},
					"stand_event": {
						"event": "minecraft:on_stand",
						"target": "self"
					}
				},
				"minecraft:behavior.avoid_mob_type": {
					"priority": 4,
					"entity_types": [
						{
							"filters": { 
								"all_of": [
									{
										"any_of": [
											{ "test" : "is_family", "subject" : "other", "value" : "monster"},
											{ "test" : "is_target", "subject" : "other", "value" : true}
										]
									},
									{ "test": "has_tag", "subject": "self", "value": "wolvesPlus_hasCriticalHealth" }
								]
							},
							"max_dist": 5,
							"walk_speed_multiplier": 1,
							"sprint_speed_multiplier": 1
						}
					]
				},
				"minecraft:behavior.owner_hurt_by_target": {
					"priority": 5,
					"entity_types": [
						{
							"filters": {
								"all_of": [
									{ "test": "has_component", "subject": "other", "operator": "not", "value": "minecraft:is_tamed" },
									{ "test": "is_skin_id", "subject": "self", "operator": "not", "value": 6 }
								]
							},
							"max_dist": 32
						}
					]
				},
				"minecraft:behavior.owner_hurt_target": {
					"priority": 5,
					"entity_types": [
						{
							"filters": {
								"all_of": [
									{ "test": "has_component", "subject": "other", "operator": "not", "value": "minecraft:is_tamed" },
									{ "test": "is_skin_id", "subject": "self", "operator": "not", "value": 6 }
								]
							},
							"max_dist": 32
						}
					]
				},
				"minecraft:behavior.nearest_prioritized_attackable_target": {
					"priority": 5,
					"attack_interval": 2,
					"reselect_targets": true,
					"target_search_height": 5,
					"entity_types": [
						{
							"filters": {
								"all_of": [
									{
										"any_of": [
											{ "test": "is_family", "subject": "other", "operator": "==", "value": "skeleton" }
										]
									},
									{ "test": "has_component", "subject": "other", "operator": "not", "value": "minecraft:is_tamed" }
								]
							},
							"max_dist": 16,
							"priority": 0
						},
						{
							"filters": {
								"all_of": [
									{ "test": "is_family", "subject": "other", "operator": "==", "value": "wolf_toy" },
									{ "test": "has_tag", "subject": "self", "operator": "!=", "value": "wolvesPlus_hasItem" },
									{ "test": "has_tag", "subject": "self", "operator": "not", "value": "wolvesPlus_isInterested" },
									{ "test": "has_tag", "subject": "self", "operator": "not", "value": "wolvesPlus_isSitting" },
									{ "test": "has_target", "subject": "self", "value": false }
								]
							},
							"max_dist": 32,
							"priority": 1
						}
					]
				},
				"minecraft:is_dyeable": {
					"interact_text": "Dye"
				},
				"minecraft:leashable": {
					"soft_distance": 4.0,
					"hard_distance": 6.0,
					"max_distance": 10.0,
					"on_leash": {
						"event": "minecraft:on_leash",
						"target": "self"
					},
					"on_unleash": {
						"event": "minecraft:on_unleash",
						"target": "self"
					}
				},
				"minecraft:preferred_path" : {
					"max_fall_blocks" : 3,
					"jump_cost" : 3,
					"default_block_cost" : 2,
					"preferred_path_blocks" : [
						{ 
							"cost" : 0,
							"blocks" : [ 
								"wool"
							]
						},
						{ 
							"cost" : 0.5,
							"blocks" : [ 
								"grass_path"
							]
						},
						{ 
							"cost" : 5,
							"blocks" : [ 
								"water"
							]
						},
						{ 
							"cost" : 50,
							"blocks" : [ 
								"acacia_pressure_plate",
								"birch_pressure_plate",
								"wooden_pressure_plate",
								"dark_oak_pressure_plate",
								"jungle_pressure_plate",
								"spruce_pressure_plate",
								"heavy_weighted_pressure_plate",
								"light_weighted_pressure_plate",
								"tripwire",
								"crafting_table",
								"lectern",
								"composter",
								"grindstone",
								"blast_furnace",
								"smoker",
								"fletching_table",
								"cartography_table",
								"brewing_stand",
								"smithing_table",
								"cauldron",
								"barrel",
								"loom",
								"stonecutter"
							]
						}
					]
				},
				"minecraft:damage_sensor": {
					"triggers": [
						{
							"cause": "lava",
							"on_damage": {
								"filters": {
									"any_of": [
										{ "test": "has_component", "subject": "self", "operator": "==", "value": "minecraft:is_stunned" }
									]
								},
								"event": "minecraft:despawn"
							},
							"deals_damage": false
						},
						{
							"cause": "fall",
							"on_damage": {
								"filters": {
									"all_of": [
										{ "test": "has_tag", "subject": "self", "operator": "==", "value": "wolvesPlus_hasAbility_fallproof" }
									]
								}
							},
							"deals_damage": false
						},
						{
							"cause": "all",
							"on_damage": {
								"filters": {
									"any_of": [
										{ "test": "is_skin_id", "subject": "self", "operator": "==", "value": 6 },
										{ "test": "has_component", "subject": "self", "operator": "==", "value": "minecraft:is_stunned" }
									]
								}
							},
							"deals_damage": false
						},
						{
							//To prevent insta-death allergic reactions to certain blocks
							"on_damage": {
								"filters": { 
									"any_of": [
										{ "test": "is_block", "subject": "block", "value": "minecraft:sweet_berry_bush" },
										{ "test": "is_block", "subject": "block", "value": "minecraft:cactus" }
									]
								}
							},
							"deals_damage": false
						},
						{
							"on_damage": {
								"filters": { "test": "has_damage", "value": "fatal" },
								"event": "minecraft:got_downed"
							},
							"deals_damage": false,
							"on_damage_sound_event": "death"
						}
					]
				},
				"minecraft:interact": {
					"interactions": [
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{
											"all_of": [
												{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "not", "value": "ljw:wolf_medkit" },
												{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "not", "value": "ljw:wolf_treat_golden" },
												{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "not", "value": "minecraft:golden_apple" }
											]
										},
										{ "test": "has_component", "value": "minecraft:is_stunned" }
									]
								}
							},
							"use_item": false,
							"interact_text": "Downed!"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{
											"any_of": [
												{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "==", "value": "ljw:wolf_medkit" },
												{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "==", "value": "ljw:wolf_treat_golden" },
												{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "==", "value": "minecraft:golden_apple" }
											]
										},
										{ "test": "has_component", "value": "minecraft:is_stunned" }
									]
								},
								"event": "minecraft:got_revived",
								"target": "self"
							},
							"use_item": true,
							"play_sounds": "ambient",
							"interact_text": "Revive"
						},
						{
							"on_interact": {
								"filters": {
									"any_of": [
										{
											"all_of": [
												{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "==", "value": "ljw:wolf_treat_reset" },
												{ "test": "is_owner", "subject": "other", "operator": "==", "value": true }
											]
										}
									]
								},
								"event": "minecraft:reset_abilities",
								"target": "self"
							},
							"use_item": true,
							"interact_text": "Reset!"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "==", "value": "ljw:wolf_treat_mini" },
										{ "test": "is_owner", "subject": "other", "operator": "==", "value": true },
										{ "test": "has_tag", "operator": "!=", "value": "wolvesPlus_hasAbility_giant" },
										{ "test": "has_tag", "operator": "!=", "value": "wolvesPlus_hasAbility_mini" },
										{ "test": "has_component", "subject": "self", "operator": "!=", "value": "minecraft:is_baby" }
									]
								},
								"event": "minecraft:on_shrink",
								"target": "self"
							},
							"use_item": true,
							"play_sounds": "eat",
							"interact_text": "Feed"
						},
						//If made giant while NOT sitting
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "==", "value": "ljw:wolf_treat_giant" },
										{ "test": "is_owner", "subject": "other", "operator": "==", "value": true },
										{ "test": "has_tag", "operator": "!=", "value": "wolvesPlus_hasAbility_giant" },
										{ "test": "has_tag", "operator": "!=", "value": "wolvesPlus_hasAbility_mini" },
										{ "test": "has_tag", "operator": "not", "value": "wolvesPlus_isSitting" },
										{ "test": "has_component", "subject": "self", "operator": "!=", "value": "minecraft:is_baby" }
									]
								},
								"event": "minecraft:on_giant",
								"target": "self"
							},
							"use_item": true,
							"play_sounds": "eat",
							"interact_text": "Feed"
						},
						//If made giant while sitting
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "==", "value": "ljw:wolf_treat_giant" },
										{ "test": "is_owner", "subject": "other", "operator": "==", "value": true },
										{ "test": "has_tag", "operator": "!=", "value": "wolvesPlus_hasAbility_giant" },
										{ "test": "has_tag", "operator": "!=", "value": "wolvesPlus_hasAbility_mini" },
										{ "test": "has_tag", "value": "wolvesPlus_isSitting" },
										{ "test": "has_component", "subject": "self", "operator": "!=", "value": "minecraft:is_baby" }
									]
								},
								"event": "minecraft:on_giant_while_sitting",
								"target": "self"
							},
							"use_item": true,
							"play_sounds": "eat",
							"interact_text": "Feed"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "==", "value": "ljw:wolf_treat_fallproof" },
										{ "test": "is_owner", "subject": "other", "operator": "==", "value": true },
										{ "test": "has_tag", "operator": "!=", "value": "wolvesPlus_hasAbility_fallproof" }
									]
								},
								"event": "minecraft:make_fallproof",
								"target": "self"
							},
							"use_item": true,
							"play_sounds": "eat",
							"interact_text": "Give Fall Immunity"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "==", "value": "ljw:wolf_treat_waterbreathing" },
										{ "test": "is_owner", "subject": "other", "operator": "==", "value": true },
										{ "test": "has_tag", "subject": "self", "operator": "!=", "value": "wolvesPlus_hasAbility_waterbreathing" }
									]
								},
								"event": "minecraft:make_waterbreathing",
								"target": "self"
							},
							"use_item": true,
							"play_sounds": "eat",
							"interact_text": "Give Water Breathing"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "==", "value": "ljw:wolf_treat_teleporting" },
										{ "test": "is_owner", "subject": "other", "operator": "==", "value": true },
										{ "test": "has_tag", "subject": "self", "operator": "!=", "value": "wolvesPlus_hasAbility_teleport" },
										{ "test": "has_tag", "operator": "not", "value": "wolvesPlus_isSitting" },
										{ "test": "has_component", "subject": "self", "operator": "!=", "value": "minecraft:is_baby" }
									]
								},
								"event": "minecraft:make_teleporting",
								"target": "self"
							},
							"use_item": true,
							"play_sounds": "eat",
							"interact_text": "Feed?"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "==", "value": "ljw:wolf_treat_resetsize" },
										{ "test": "is_owner", "subject": "other", "operator": "==", "value": true },
										{
											"any_of": [
												{ "test": "has_tag", "operator": "==", "value": "wolvesPlus_hasAbility_giant" },
												{ "test": "has_tag", "operator": "==", "value": "wolvesPlus_hasAbility_mini" }
											]
										},
										{ "test": "has_component", "subject": "self", "operator": "!=", "value": "minecraft:is_baby" }
									]
								},
								"event": "minecraft:on_restore_size",
								"target": "self"
							},
							"use_item": true,
							"play_sounds": "eat",
							"interact_text": "Restore to Normal Size"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "==", "value": "ljw:wolf_treat_honey" }
									]
								},
								"event": "minecraft:cure_effects",
								"target": "self"
							},
							"use_item": true,
							"play_sounds": "eat",
							"interact_text": "Feed"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "is_owner", "subject": "other", "operator": "==", "value": true },
										{ "test": "has_tag", "subject": "self", "operator": "==", "value": "wolvesPlus_hasAbility_waterbreathing" },
										{ "test": "has_component", "subject": "self", "operator": "!=", "value": "minecraft:behavior.random_swim" },
										{ "test": "in_water", "value": true }
									]
								},
								"event": "minecraft:enable_swimming",
								"target": "self"
							},
							"interact_text": "Dive!"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "==", "value": "bone" },
										{ "test": "is_owner", "subject": "other", "operator": "==", "value": true },
										{ "test": "has_component", "value": "minecraft:behavior.follow_owner" },
										{ "test": "has_component", "subject": "self", "operator": "!=", "value": "minecraft:is_baby" }
									]
								},
								"event": "minecraft:stop_following",
								"target": "self"
							},
							"use_item": false,
							"interact_text": "Stop Following Me"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "==", "value": "bone" },
										{ "test": "is_owner", "subject": "other", "operator": "==", "value": true },
										{ "test": "has_component", "operator": "not", "value": "minecraft:behavior.follow_owner" },
										{ "test": "has_component", "subject": "self", "operator": "!=", "value": "minecraft:is_baby" }
									]
								},
								"event": "minecraft:start_following",
								"target": "self"
							},
							"use_item": false,
							"interact_text": "Follow Me"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "==", "value": "ljw:pet_the_dog" },
										{ "test": "has_component", "subject": "self", "operator": "!=", "value": "minecraft:is_saddled" }
									]
								},
								"event": "minecraft:start_pet_the_dog",
								"target": "self"
							},
							"use_item": false,
							"interact_text": "Pet"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "==", "value": "ljw:wolf_armor_iron" },
										{ "test": "has_equipment", "subject": "self", "domain": "head", "operator": "!=", "value": "ljw:wolf_armor_iron" },
										{ "test": "is_owner", "subject": "other", "operator": "==", "value": true }
									]
								},
								"event": "minecraft:knighted_iron",
								"target": "self"
							},
							"use_item": true,
							"interact_text": "Equip"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "==", "value": "ljw:wolf_armor_gold" },
										{ "test": "has_equipment", "subject": "self", "domain": "head", "operator": "!=", "value": "ljw:wolf_armor_gold" },
										{ "test": "is_owner", "subject": "other", "operator": "==", "value": true }
									]
								},
								"event": "minecraft:knighted_gold",
								"target": "self"
							},
							"use_item": true,
							"interact_text": "Equip"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "==", "value": "ljw:wolf_armor_diamond" },
										{ "test": "has_equipment", "subject": "self", "domain": "head", "operator": "!=", "value": "ljw:wolf_armor_diamond" },
										{ "test": "is_owner", "subject": "other", "operator": "==", "value": true }
									]
								},
								"event": "minecraft:knighted_diamond",
								"target": "self"
							},
							"use_item": true,
							"interact_text": "Equip"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "==", "value": "ljw:wolf_armor_netherite" },
										{ "test": "has_equipment", "subject": "self", "domain": "head", "operator": "!=", "value": "ljw:wolf_armor_netherite" },
										{ "test": "is_owner", "subject": "other", "operator": "==", "value": true }
									]
								},
								"event": "minecraft:knighted_netherite",
								"target": "self"
							},
							"use_item": true,
							"interact_text": "Equip"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "==", "value": "ljw:wolf_jet" },
										{ "test": "has_equipment", "subject": "self", "domain": "head", "operator": "!=", "value": "ljw:wolf_jet" },
										{ "test": "is_owner", "subject": "other", "operator": "==", "value": true }
									]
								},
								"event": "minecraft:equip_wolf_jet",
								"target": "self"
							},
							"use_item": true,
							"interact_text": "Equip"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_equipment", "subject": "other", "operator": "==", "value": "ljw:wolf_armor_obsidian" },
										{ "test": "has_equipment", "subject": "self", "domain": "head", "operator": "!=", "value": "ljw:wolf_armor_obsidian" },
										{ "test": "is_owner", "subject": "other", "operator": "==", "value": true }
									]
								},
								"event": "minecraft:knighted_obsidian",
								"target": "self"
							},
							"use_item": true,
							"interact_text": "Equip"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "==", "value": "minecraft:shears" },
										{ "test": "has_tag", "subject": "self", "operator": "==", "value": "wolvesPlus_isEquipped" },
										{ "test": "is_owner", "subject": "other", "operator": "==", "value": true }
									]
								},
								"event": "minecraft:remove_armor",
								"target": "self"
							},
							"use_item": false,
							"interact_text": "Remove Equipment"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_tag", "subject": "self", "operator": "!=", "value": "wolvesPlus_hasItem" },
										{ "test": "has_equipment", "subject": "other", "operator": "==", "value": "ljw:wolf_ball" }
									]
								},
								"event": "minecraft:equip_wolf_ball",
								"target": "self"
							},
							"use_item": true,
							"interact_text": "Give"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_tag", "subject": "self", "operator": "!=", "value": "wolvesPlus_hasItem" },
										{ "test": "has_equipment", "subject": "other", "operator": "==", "value": "ljw:flying_disk" }
									]
								},
								"event": "minecraft:equip_flying_disk",
								"target": "self"
							},
							"use_item": true,
							"interact_text": "Give"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_tag", "subject": "self", "operator": "!=", "value": "wolvesPlus_hasItem" },
										{ "test": "has_equipment", "subject": "other", "operator": "==", "value": "ljw:runner_toy" }
									]
								},
								"event": "minecraft:equip_runner_toy",
								"target": "self"
							},
							"use_item": true,
							"interact_text": "Give"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{
											"any_of": [
												{ "test": "has_equipment", "subject": "self", "domain": "hand", "operator": "==", "value": "ljw:wolf_ball" },
												{ "test": "has_equipment", "subject": "self", "domain": "hand", "operator": "==", "value": "ljw:flying_disk" },
												{ "test": "has_equipment", "subject": "self", "domain": "hand", "operator": "==", "value": "ljw:runner_toy" }
											]
										},
										{ "test": "is_owner", "subject": "other", "operator": "==", "value": true },
										{ "test": "is_sneaking", "subject": "other", "operator": "==", "value": true }
									]
								},
								"event": "minecraft:dropped_toy",
								"target": "self"
							},
							"use_item": false,
							"interact_text": "Drop Toy"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_tag", "subject": "self", "value": "wolvesPlus_isSleeping" }
									]
								},
								"event": "minecraft:woken_up",
								"target": "self"
							},
							"use_item": false,
							"interact_text": "Get Up"
						},
						{
							"on_interact": {
								"filters": {
									"all_of": [
										{ "test": "has_component", "subject": "self", "operator": "not", "value": "minecraft:navigation.generic" },
										{ "test": "has_component", "subject": "self", "operator": "not", "value": "minecraft:navigation.hover" }
									]
								},
								"event": "minecraft:enable_walking",
								"target": "self"
							},
							"use_item": false,
							"interact_text": "Update"
						}
					]
				}
			},
			
			"ljw:pug_pet": {
				"minecraft:is_saddled": {
				}
			},
			
			"ljw:pug_teleporting": {
				"minecraft:skin_id": {
					"value": 11
				},
				"minecraft:teleport": {
					"randomTeleports": true,
					"maxRandomTeleportTime": 30,
					"randomTeleportCube": [ 10, 10, 10 ],
					"targetDistance": 16,
					"target_teleport_chance": 0.05,
					"lightTeleportChance": 0.05
				}
			},
			
			"ljw:pug_stop_teleporting": {
				"minecraft:skin_id": {
					"value": 15
				}
			},
			
			"ljw:pug_leashed": {
				"minecraft:behavior.move_towards_restriction": {
					"priority": 2,
					"speed_multiplier": 1.0
				}
			},
		
			"ljw:pug_waterbreathing": {
				"minecraft:breathable": {
					"breathesWater": true
				},
				"minecraft:skin_id": {
					"value": 9
				}
			},
			
			"ljw:pug_swimming_mode": {
				"minecraft:underwater_movement": {
					"value": 0.15
				},
				"minecraft:navigation.generic": { // Allows the mob to go through water
					"is_amphibious": true,
					"can_float": false,
					"can_swim": true,
					"can_walk": true,
					"can_breach": true,
					"can_sink":	true,
					"avoid_damage_blocks": true,
					"can_path_over_water": true
				},
				"minecraft:behavior.swim_idle": {
					"priority": 7
				},
				"minecraft:behavior.random_swim": { // Randomly selects points to go to, even in water
					"priority": 8,
					"speed_multiplier": 1.0,
					"xz_dist": 16,
					"y_dist": 4,
					"interval": 2.0
				},
				"minecraft:behavior.swim_wander": {
					"priority": 9,
					"speed_multiplier": 1.0,
					"interval": 10,
					"look_ahead": 2.0
				}
				
			},
			
			"ljw:pug_walking_mode": {
				"minecraft:physics": {
					"has_gravity": true
				},
				"minecraft:navigation.generic": {
					"can_float": true,
					"can_swim": false,
					"can_walk": true,
					"can_breach": true,
					"can_sink":	true,
					"avoid_damage_blocks": true,
					"can_path_over_water": false
				},
				
				"minecraft:behavior.float": {
					"priority": 0
				},
				
				"minecraft:behavior.random_stroll": {
					"priority": 8,
					"speed_multiplier": 1.0
				},
				"minecraft:behavior.leap_at_target": {
					"priority": 4,
					"target_dist": 0.4
				}
			},
			
			"ljw:pug_giant": {
				"minecraft:skin_id": {
					"value": 13
				},
				"minecraft:collision_box": {
					"width": 0.4,
					"height": 1.2
				},
				"minecraft:scale": {
					"value": 1.5
				},
				"minecraft:can_power_jump": {
				},
				"minecraft:attack": {
					"damage": 7
				}
			},
			
			"ljw:pug_normal_size": {
				"minecraft:skin_id": {
					"value": 14
				},
				"minecraft:attack": {
					"damage": 4
				}
			},
			
			"ljw:pug_mini": {
				"minecraft:skin_id": {
					"value": 12
				},
				"minecraft:collision_box": {
					"width": 0.6,
					"height": 0.4
				},
				"minecraft:loot": {
					"table": "loot_tables/entities/wolf.json"
				},
				"minecraft:scale": {
					"value":0.5
				},
				"minecraft:movement": {
					"value": 0.5
				},
				"minecraft:attack": {
					"damage": 2
				}
			},
		
			"ljw:pug_rideable": {
				"minecraft:rideable": {
					"seat_count": 1,
					"crouching_skip_interact": true,
					"family_types": [ "player" ],
					"interact_text": "action.interact.mount",
					"seats": {
						"position": [-0.05, 0.7, -0.3]
					}
				},
				"minecraft:input_ground_controlled": {
					"priority": 3
				},
				"minecraft:behavior.player_ride_tamed": {
					"priority": 3
				}
			},
			
			"ljw:pug_sleep_behavior": {
				"minecraft:behavior.lay_down": {
					"priority": 5,
					"interval": 1500,
					"random_stop_interval": 1500
				}
			},
			
			"ljw:pug_sleep_behavior_sitting": {
				"minecraft:behavior.lay_down": {
					"priority": 1,
					"interval": 1500,
					"random_stop_interval": 1500
				}
			},
			
			"ljw:pug_notice_player": {
				"minecraft:behavior.look_at_player": {
					"priority": 6,
					"target_distance": 6.0,
					"probability": 0.02
				}
			},
			
			"ljw:pug_not_sitting": {
				
			},
			
			"ljw:pug_sitting": {
				
			},
			
			"ljw:pug_hot": {
				"minecraft:is_ignited": {
				}
			},
			
			"ljw:pug_downed": {
				"minecraft:behavior.nap": {
					"priority": 0,
					"cooldown_max": 0.0,
					"mob_detect_dist": 0.0,
					"mob_detect_height": 0.0
				},
				"minecraft:is_stunned": {
				},
				"minecraft:timer": {
					"looping": false,
					"time": 300,
					"time_down_event": {
						"event": "minecraft:despawn"
					}
				},
				"minecraft:ambient_sound_interval": {
					"event_name": "ambient",
					"value": 999
				}
			},
			
			"ljw:pug_revived": {
				"minecraft:ambient_sound_interval": {
					"event_name": "ambient",
					"range": 16,
					"value": 8
				}
			},
			
			"ljw:pug_despawn": {
				"minecraft:despawn": {
				}
			},
			
			"ljw:pug_fallproof": {
				"minecraft:skin_id": {
					"value": 10
				},
				"minecraft:horse.jump_strength": {
					"value": {
						"range_min": 1.2, 
						"range_max": 1.4
					}
				}
			},
			
			"ljw:pug_not_fallproof": {
				"minecraft:horse.jump_strength": {
					"value": {
						"range_min": 0.4, 
						"range_max": 0.7
					}
				}
			},
			
			"ljw:pug_knight_iron": {
				"minecraft:skin_id": {
					"value": 1
				}
			},
			
			"ljw:pug_knight_gold": {
				"minecraft:skin_id": {
					"value": 2
				}
			},
			
			"ljw:pug_knight_diamond": {
				"minecraft:skin_id": {
					"value": 3
				}
			},
			
			"ljw:pug_with_wolf_jet": {
				"minecraft:skin_id": {
					"value": 4
				}
			},
			
			"ljw:pug_flight_mode": {
				"minecraft:movement": {
					"value": 0.3
				},
				"minecraft:can_fly": {},
				"minecraft:flying_speed": {
					"value": 0.20
				},
				"minecraft:physics": {
					"has_gravity": false
				},
				"minecraft:navigation.hover": {
					"can_path_over_water": true,
					"can_sink": false,
					"can_path_from_air": true,
					"avoid_water": true,
					"avoid_damage_blocks": true,
					"avoid_sun": false
				},
				"minecraft:behavior.random_hover": {
					"priority": 11,
					"xz_dist": 8,
					"y_dist": 8,
					"y_offset": -1,
					"interval": 1,
					"hover_height": [1, 4]
				}
			},
			
			"ljw:pug_with_ball": {
				"minecraft:skin_id": {
					"value": 5
				}
			},
			
			"ljw:pug_with_flying_disk": {
				"minecraft:skin_id": {
					"value": 18
				}
			},
			
			"ljw:pug_with_runner_toy": {
				"minecraft:skin_id": {
					"value": 19
				}
			},
			
			"ljw:pug_toy_timer": {
				"minecraft:timer": {
					"looping": false,
					"time": [5,600],
					"time_down_event": {
						"event": "minecraft:dropped_toy"
					}
				}
			},
			
			"ljw:pug_knight_obsidian": {
				"minecraft:skin_id": {
					"value": 6
				}
			},
			
			"ljw:pug_knight_obsidian_abilities": {
			
			},
			
			"ljw:pug_knight_netherite": {
				"minecraft:skin_id": {
					"value": 20
				}
			},
			
			"ljw:pug_knight_netherite_abilities": {
				"minecraft:knockback_resistance": {
					"value": 0.7
				}
			},
			
			"ljw:flag_remove_armor": {
				"minecraft:skin_id": {
					"value": 7
				}
			},
			
			"ljw:pug_unknight_iron": {
				"minecraft:spawn_entity": {
					"entities": {
						"min_wait_time": 0,
						"max_wait_time": 0,
						"spawn_item": "ljw:wolf_armor_iron",
						"single_use": true
					}
				}
			},
			
			"ljw:pug_unknight_gold": {
				"minecraft:spawn_entity": {
					"entities": {
						"min_wait_time": 0,
						"max_wait_time": 0,
						"spawn_item": "ljw:wolf_armor_gold",
						"single_use": true
					}
				}
			},
			
			"ljw:pug_unknight_diamond": {
				"minecraft:spawn_entity": {
					"entities": {
						"min_wait_time": 0,
						"max_wait_time": 0,
						"spawn_item": "ljw:wolf_armor_diamond",
						"single_use": true
					}
				}
			},
			
			"ljw:pug_remove_wolf_jet": {
				"minecraft:spawn_entity": {
					"entities": {
						"min_wait_time": 0,
						"max_wait_time": 0,
						"spawn_item": "ljw:wolf_jet",
						"single_use": true
					}
				}
			},
			
			"ljw:pug_drop_toy": {
				"minecraft:skin_id": {
					"value": 8
				}
			},
			
			"ljw:pug_spawn_ball_entity": {
				"minecraft:spawn_entity": {
					"entities": {
						"min_wait_time": 0,
						"max_wait_time": 0,
						"spawn_entity": "ljw:wolf_ball",
						"single_use": true
					}
				}
			},
			
			"ljw:pug_spawn_flying_disk_entity": {
				"minecraft:spawn_entity": {
					"entities": {
						"min_wait_time": 0,
						"max_wait_time": 0,
						"spawn_entity": "ljw:flying_disk",
						"single_use": true
					}
				}
			},
			
			"ljw:pug_spawn_runner_toy_entity": {
				"minecraft:spawn_entity": {
					"entities": {
						"min_wait_time": 0,
						"max_wait_time": 0,
						"spawn_entity": "ljw:runner_toy",
						"single_use": true
					}
				}
			},
			
			"ljw:pug_unknight_obsidian": {
				"minecraft:spawn_entity": {
					"entities": {
						"min_wait_time": 0,
						"max_wait_time": 0,
						"spawn_item": "ljw:wolf_armor_obsidian",
						"single_use": true
					}
				}
			},
			
			"ljw:pug_unknight_netherite": {
				"minecraft:spawn_entity": {
					"entities": {
						"min_wait_time": 0,
						"max_wait_time": 0,
						"spawn_item": "ljw:wolf_armor_netherite",
						"single_use": true
					}
				}
			},
			
			"ljw:pug_unknighted": {
				"minecraft:skin_id": {
					"value": 7
				}
			},
			
			"ljw:pug_null_skin_id": {
				"minecraft:skin_id": {
					"value": 0
				}
			},
			
			"ljw:pug_get_out_of_bed_flag": {
				"minecraft:skin_id": {
					"value": 16
				}
			},
			
			"ljw:pug_sitting_in_bed_flag": {
				"minecraft:skin_id": {
					"value": 17
				}
			},
			
			"ljw:pug_cure": {
				"minecraft:spell_effects": {
					"add_effects": [
						{
							"effect": "regeneration",
							"duration": 5
						}
					],
					"remove_effects": ["weakness", "fatal_poison", "poison", "slowness", "blindness", "levitation", "nausea", "wither", "hunger" ]
				}
			},
			
			"ljw:pug_reset": {
				"minecraft:transformation": {
					"into": "ljw:pug",
					"drop_equipment": true,
					"keep_owner": false
				}
			},
			
			"minecraft:dragon_transformation_electric": {
				"minecraft:transformation": {
					"into": "ljw:dragon_wolf_electric",
					"drop_equipment": true,
					"keep_owner": true
				}
			},
			
			"minecraft:dragon_transformation_ice": {
				"minecraft:transformation": {
					"into": "ljw:dragon_wolf_ice",
					"drop_equipment": true,
					"keep_owner": true
				}
			},
			
			"minecraft:dragon_transformation_fire": {
				"minecraft:transformation": {
					"into": "ljw:dragon_wolf_fire",
					"drop_equipment": true,
					"keep_owner": true
				}
			},
			
			"ljw:pug_stormy_weather": {
				"minecraft:behavior.find_cover": {
					"priority": 6,
					"speed_multiplier": 1,
					"cooldown_time": 0.0
				}
			}
			
		},
	
		"components": {
			"minecraft:nameable": {
			},
			"minecraft:scale": {
				"value":0.75
			},
			"minecraft:type_family": {
				"family": [ "wolf", "ljw_wolf", "dog", "pug" ]
			},
			"minecraft:breathable": {
				"totalSupply": 15,
				"suffocateTime": 0
			},
			"minecraft:collision_box": {
				"width": 0.6,
				"height": 0.8
			},
			"minecraft:health": {
				"value": 8,
				"max": 8
			},
			"minecraft:movement": {
				"value": 0.35
			},
			"minecraft:movement.generic": {
			},
			"minecraft:jump.static": {
			},
			"minecraft:can_climb": {
			},
			"minecraft:attack": {
				"damage": 3
			},
			"minecraft:behavior.melee_attack": {
				"priority": 5,
				"track_target": true,
				"reach_multiplier": 1.0
			},
			"minecraft:healable": {
				"items": [
					{
						"item": "porkchop",
						"heal_amount": 3
					},
					{
						"item": "cooked_porkchop",
						"heal_amount": 8
					},
					{
						"item": "fish",
						"heal_amount": 2
					},
					{
						"item": "salmon",
						"heal_amount": 2
					},
					{
						"item": "clownfish",
						"heal_amount": 1
					},
					{
						"item": "pufferfish",
						"heal_amount": 1
					},
					{
						"item": "cooked_fish",
						"heal_amount": 5
					},
					{
						"item": "cooked_salmon",
						"heal_amount": 6
					},
					{
						"item": "beef",
						"heal_amount": 3
					},
					{
						"item": "cooked_beef",
						"heal_amount": 8
					},
					{
						"item": "chicken",
						"heal_amount": 2
					},
					{
						"item": "cooked_chicken",
						"heal_amount": 6
					},
					{
						"item": "muttonRaw",
						"heal_amount": 2
					},
					{
						"item": "muttonCooked",
						"heal_amount": 6
					},
					{
						"item": "rotten_flesh",
						"heal_amount": 4
					},
					{
						"item": "rabbit",
						"heal_amount": 3
					},
					{
						"item": "cooked_rabbit",
						"heal_amount": 5
					},
					{
						"item": "rabbit_stew",
						"heal_amount": 10
					},
					{
						"item": "ljw:wolf_treat",
						"heal_amount": 5
					}
				]
			},
			"minecraft:behavior.mount_pathing": {
				"priority": 1,
				"speed_multiplier": 1.25,
				"target_dist": 0,
				"track_target": true
			},
			"minecraft:behavior.stay_while_sitting": {
				"priority": 2
			},
			"minecraft:behavior.beg": {
				"priority": 9,
				"look_distance": 8,
				"look_time": [ 2, 4 ],
				"items": [ "bone", "porkchop", "cooked_porkchop", "chicken", "cooked_chicken", 
							 "beef", "cooked_beef", "rotten_flesh", "muttonraw", "muttoncooked", "rabbit", "cooked_rabbit",
							 "ljw:wolf_treat", "ljw:wolf_treat_honey"]
			},
			"minecraft:behavior.hurt_by_target": {
				"priority": 3
			},
			"minecraft:physics": {
				"has_gravity": true
			},	
			"minecraft:preferred_path" : {
				"max_fall_blocks" : 2,
				"jump_cost" : 0,
				"default_block_cost" : 1.5,
				"preferred_path_blocks" : [
					{ 
						"cost" : 50,
						"blocks" : [ 
							"bed",
							"lectern",
							"composter",
							"grindstone",
							"blast_furnace",
							"smoker",
							"fletching_table",
							"cartography_table",
							"brewing_stand",
							"smithing_table",
							"cauldron",
							"barrel",
							"loom",
							"stonecutter"
						]
					}
				]
			},
			"minecraft:entity_sensor": {
				"sensor_range": 10,
				"require_all": true,
				"event_filters": {
					"all_of": [
						{
							"test": "is_owner",
							"operator": "not",
							"subject": "other"
						},
						{
							"test": "has_component",
							"subject": "self",
							"value": "minecraft:behavior.follow_owner"
						},
						{
							"test": "has_tag",
							"subject": "self",
							"operator": "not",
							"value": "wolvesPlus_isSitting"
						}
					]
				},
				"event": "minecraft:woken_up"
			},
			"minecraft:scheduler": {
				"min_delay_secs": 0,
				"max_delay_secs": 0,
				"scheduled_events": [
					{
						//Reset
						"filters": {
							"all_of": [
								{ 
									"any_of": [
										{ "test": "has_tag", "operator": "==", "value": "wolvesPlus_RESET" }
									] 
								}
							]
						},
						"event": "minecraft:reset_abilities"
					},
					{
						//Tamed, exiting water after swimming
						"filters": {
							"all_of": [
								{ "test": "has_component", "operator": "==", "value": "minecraft:is_tamed" },
								{ "test": "has_component", "operator": "==", "value": "minecraft:behavior.swim_idle" },
								{ "test": "on_ground", "operator": "==", "value": true },
								{ "test": "in_water", "operator": "!=", "value": true }
							]
						},
						"event": "minecraft:enable_walking"
					},
					{
						//Sleep disturbed
						"filters": {
							"all_of": [
								{ 
									"any_of": [
										{ "test": "has_target", "operator": "==", "value": true },
										{ "test": "in_water_or_rain", "operator": "==", "value": true },
										{ "test": "is_skin_id", "operator": "==", "value": 4 }
									] 
								},
								{ "test": "has_component", "operator": "==", "value": "minecraft:behavior.lay_down" },
								{ "test": "is_moving", "operator": "!=", "value": true }
							]
						},
						"event": "minecraft:cannot_sleep"
					},
					{
						//Sleep behavior
						"filters": {
							"all_of": [
								{ "test": "has_target", "operator": "!=", "value": true },
								{ "test": "in_water_or_rain", "operator": "!=", "value": true },
								{ "test": "on_ground", "operator": "==", "value": true },
								{ "test": "is_skin_id", "operator": "!=", "value": 4 },
								{ "test": "has_component", "operator": "!=", "value": "minecraft:behavior.lay_down" },
								{ "test": "is_moving", "operator": "!=", "value": true }
							]
						},
						"event": "minecraft:can_sleep"
					},
					{
						//Try not to stand in the rain
						"filters": {
							"all_of": [
								{ "test": "is_weather", "operator": "!=", "value": "clear" },
								{ "test": "has_component", "operator": "!=", "value": "minecraft:behavior.find_cover" }
							]
						},
						"event": "minecraft:stormy_weather_mode"
					},
					{
						//Revert to normal behavior in clear weather
						"filters": {
							"all_of": [
								{ "test": "is_weather", "operator": "==", "value": "clear" },
								{ "test": "has_component", "operator": "==", "value": "minecraft:behavior.find_cover" }
							]
						},
						"event": "minecraft:normal_weather_mode"
					},
					{
						"filters": {
							"all_of": [
								{
									"any_of": [
										{
											"all_of": [
												{ "test": "is_temperature_type", "operator": "==", "value": "warm" },
												{ "test": "is_underground", "operator": "!=", "value": true }
											]
										},
										{ "test": "has_biome_tag", "operator": "==", "value": "nether" }
									]
								},
								{ "test": "has_component", "operator": "!=", "value": "minecraft:is_ignited" }
							]
						},
						"event": "minecraft:temp_hot"
					},
					{
						"filters": {
							"all_of": [
								{
									"any_of": [
										{ "test": "is_temperature_type", "operator": "!=", "value": "warm" },
										{ "test": "is_underground", "operator": "==", "value": true }
									]
								},
								{ "test": "has_biome_tag", "operator": "!=", "value": "nether" },
								{ "test": "has_component", "operator": "==", "value": "minecraft:is_ignited" }
							]
						},
						"event": "minecraft:temp_cool"
					}
				]
			},
			"minecraft:pushable": {
			}
		},

		"events": {
			"minecraft:entity_spawned": {
				"sequence": [
					{
						"add": {
							"component_groups": [
								"ljw:pug_wild",
								"ljw:pug_walking_mode"
							]
						}
					},
					{
						"randomize": [
							{
								"weight": 9,
								"add": {
									"component_groups": [
										"ljw:pug_adult"
									]
								}
							},
							{
								"weight": 1,
								"add": {
									"component_groups": [
										"ljw:pug_baby"
									]
								}
							}
						]
					}
				]
			},

			"minecraft:entity_born": {
				"remove": {
				},
				"add": {
					"component_groups": [
						"ljw:pug_baby",
						"ljw:pug_tame",
						"ljw:pug_normal_size",
						"ljw:pug_walking_mode",
						"ljw:pug_calm_tamed",
						"ljw:pug_not_fallproof",
						"ljw:pug_following",
						"ljw:pug_not_sitting",
						"ljw:pug_unknighted"
					]
				}
			},
			
			"minecraft:ageable_grow_up": {
				"remove": {
					"component_groups": [
						"ljw:pug_baby"
					]
				},
				"add": {
					"component_groups": [
						"ljw:pug_adult"
					]
				}
			},

			"minecraft:ageable_set_baby": {
				"remove": {
					"component_groups": [
						"ljw:pug_adult"
					]
				},
				"add": {
					"component_groups": [
						"ljw:pug_baby"
					]
				}
			},

			"minecraft:on_tame": {
				"remove": {
					"component_groups": [
						"ljw:pug_wild"
					]
				},
				"add": {
					"component_groups": [
						"ljw:pug_calm_tamed",
						"ljw:pug_tame",
						"ljw:pug_normal_size",
						"ljw:pug_not_fallproof",
						"ljw:pug_following",
						"ljw:pug_not_sitting",
						"ljw:pug_unknighted"
					]
				}
			},
			
			"minecraft:start_following": {
				"add": {
					"component_groups": [
						"ljw:pug_following"
					]
				}
			},
				
			"minecraft:stop_following": {
				"remove": {
					"component_groups": [
						"ljw:pug_following"
					]
				}
			},
		
			"minecraft:become_angry": {
				"remove": {
					"component_groups": [
						"ljw:pug_wild"
					]
				},
				"add": {
					"component_groups": [
						"ljw:pug_angry"
					]
				}
			},
		
			"minecraft:on_calm": {
				"remove": {
					"component_groups": [
						"ljw:pug_angry"
					]
				},
				"add": {
					"component_groups": [
						"ljw:pug_wild"
					]
				}
			},
			
			"minecraft:become_angry_tamed": {
				"remove": {
					"component_groups": [
						"ljw:pug_calm_tamed"
					]
				},
				"add": {
					"component_groups": [
						"ljw:pug_angry_tamed"
					]
				}
			},
		
			"minecraft:on_calm_tamed": {
				"remove": {
					"component_groups": [
						"ljw:pug_angry_tamed"
					]
				},
				"add": {
					"component_groups": [
						"ljw:pug_calm_tamed"
					]
				}
			},

			"minecraft:on_leash": {
				"add": {
					"component_groups": [
						"ljw:pug_leashed"
					]
				}
			},
		
			"minecraft:on_unleash": {
				"remove": {
					"component_groups": [
						"ljw:pug_leashed"
					]
				}
			},
			
			"minecraft:reset_abilities": {
				"remove": {
				},
				"add": {
					"component_groups": [
						"ljw:pug_reset"
					]
				}
			},
			
			"minecraft:entity_transformed": {
				"sequence": [
					// Transform baby wolf to baby wolf
					{
						"filters": { "test": "has_component", "subject": "other", "value": "minecraft:is_baby" },
						"add": {
							"component_groups": [
								"ljw:pug_baby"
							]
						}
					},
					// Transform adult wolf to adult wolf
					{
						"filters": {	"test": "has_component",	"subject": "other", "operator": "!=", "value": "minecraft:is_baby" },
						"add": {
							"component_groups": [
								"ljw:pug_adult"
							]
						}
					},
					{
						"add": {
							"component_groups": [
								"ljw:pug_wild",
								"ljw:pug_walking_mode"
							]
						}
					}
				]
			},
			
			"minecraft:on_giant": {
				"remove": {
					"component_groups": [
						"ljw:pug_baby",
						"ljw:pug_adult",
						"ljw:pug_normal_size"
					]
				},
				"add": {
					"component_groups": [
						"ljw:pug_giant",
						"ljw:pug_rideable"
					]
				}
			},
			
			"minecraft:on_giant_while_sitting": {
				"remove": {
					"component_groups": [
						"ljw:pug_baby",
						"ljw:pug_adult",
						"ljw:pug_normal_size"
					]
				},
				"add": {
					"component_groups": [
						"ljw:pug_giant"
					]
				}
			},
		
			"minecraft:on_restore_size": {
				"remove": {
					"component_groups": [
						"ljw:pug_giant",
						"ljw:pug_mini",
						"ljw:pug_rideable"
					]
				},
				"add": {
					"component_groups": [
						"ljw:pug_adult",
						"ljw:pug_normal_size"
					]
				}
			},
		
			"minecraft:on_shrink": {
				"remove": {
					"component_groups": [
						"ljw:pug_adult",
						"ljw:pug_baby",
						"ljw:pug_normal_size"
					]
				},
				"add": {
					"component_groups": [
						"ljw:pug_mini"
					]
				}
			},
		
			"minecraft:make_fallproof": {
				"remove": {
					"component_groups": [
						"ljw:pug_not_fallproof"
					]
				},
				"add": {
					"component_groups": [
						"ljw:pug_fallproof"
					]
				}
			},
	 
			"minecraft:make_waterbreathing": {
				"add": {
					"component_groups": [
						"ljw:pug_waterbreathing"
					]
				}
			},
	 
			"minecraft:make_teleporting": {
				"add": {
					"component_groups": [
						"ljw:pug_teleporting"
					]
				}
			},
	 
			"minecraft:ageable_stop_teleporting": {
				"remove": {
					"component_groups": [
						"ljw:pug_teleporting"
					]
				}
			},
	 
			"minecraft:on_sit": {
				"add": {
					"component_groups": [
						"ljw:pug_sitting",
						"ljw:tracer_wolf_walking_mode"
					]
				},
				"remove": {
					"component_groups": [
						"ljw:pug_teleporting",
						"ljw:pug_rideable",
						"ljw:pug_not_sitting",
						"ljw:tracer_wolf_flight_mode"
					]
				}
			},
	
			"minecraft:on_stand": {
				"sequence": [
					{
						"add": {
							"component_groups": [
								"ljw:pug_not_sitting"
							]
						},
						"remove": {
							"component_groups": [
								"ljw:pug_sitting"
							]
						}
					},
					{
						"filters": { 
							"all_of": [
								{ "test": "has_component", "operator": "not", "value": "minecraft:is_stunned" },
								{ "test": "has_tag", "subject": "self", "value": "wolvesPlus_hasAbility_giant" }
							]
						},
						"add": {
							"component_groups": [
								"ljw:pug_rideable"
							]
						}
					},
					{
						"filters": { 
							"all_of": [
								{ "test": "has_equipment", "subject": "self", "domain": "head", "value": "ljw:wolf_jet" }
							]
						},
						"add": {
							"component_groups": [
								"ljw:tracer_wolf_flight_mode"
							]
						},
						"remove": {
							"component_groups": [
								"ljw:tracer_wolf_walking_mode"
							]
						}
					}
				]
			},
			
			"minecraft:enable_swimming": {
				"remove": {
					"component_groups": [
						"ljw:pug_walking_mode"
					]
				},
				"add": {
					"component_groups": [
						"ljw:pug_swimming_mode"
					]
				}
			},
			
			"minecraft:enable_walking": {
				"remove": {
					"component_groups": [
						"ljw:pug_swimming_mode"
					]
				},
				"add": {
					"component_groups": [
						"ljw:pug_walking_mode"
					]
				}
			},
			
			"minecraft:upgrade_wolf_wild": {
				"add": {
					"component_groups": [
						"ljw:pug_walking_mode"
					]
				}
			},
			
			"minecraft:upgrade_wolf_tamed": {
				"add": {
					"component_groups": [
						"ljw:pug_walking_mode",
						"ljw:pug_calm_tamed",
						"ljw:pug_normal_size",
						"ljw:pug_not_fallproof",
						"ljw:pug_following",
						"ljw:pug_unknighted"
					]
				}
			},
	
			"minecraft:start_pet_the_dog": {
				"add": {
					"component_groups": [
						"ljw:pug_pet"
					]
				}
			},
	
			"minecraft:end_pet_the_dog": {
				"remove": {
					"component_groups": [
						"ljw:pug_pet"
					]
				}
			},
	
			"minecraft:removed_iron_armor": {
				"add": {
					"component_groups": [
						"ljw:pug_unknight_iron"
					]
				}
			},
			
			"minecraft:removed_gold_armor": {
				"add": {
					"component_groups": [
						"ljw:pug_unknight_gold"
					]
				}
			},
			
			"minecraft:removed_diamond_armor": {
				"add": {
					"component_groups": [
						"ljw:pug_unknight_diamond"
					]
				}
			},
			
			"minecraft:removed_wolf_jet": {
				"add": {
					"component_groups": [
						"ljw:pug_remove_wolf_jet",
						"ljw:pug_walking_mode"
					]
				},
				"remove": {
					"component_groups": [
						"ljw:pug_flight_mode"
					]
				}
			},
			
			"minecraft:dropped_wolf_ball": {
				"remove": {
					"component_groups": [
						"ljw:pug_toy_timer"
					]
				},
				"add": {
					"component_groups": [
						"ljw:pug_drop_toy"
					]
				}
			},
			
			"minecraft:removed_obsidian_armor": {
				"remove": {
					"component_groups": [
						"ljw:pug_knight_obsidian_abilities"
					]
				},
				"add": {
					"component_groups": [
						"ljw:pug_unknight_obsidian"
					]
				}
			},
			
			"minecraft:removed_netherite_armor": {
				"remove": {
					"component_groups": [
						"ljw:pug_knight_netherite_abilities"
					]
				},
				"add": {
					"component_groups": [
						"ljw:pug_unknight_netherite"
					]
				}
			},
			
			"minecraft:knighted_iron": {
				"add": {
					"component_groups": [
						"ljw:pug_knight_iron"
					]
				}
			},
	
			"minecraft:knighted_gold": {
				"add": {
					"component_groups": [
						"ljw:pug_knight_gold"
					]
				}
			},
	
			"minecraft:knighted_diamond": {
				"add": {
					"component_groups": [
						"ljw:pug_knight_diamond"
					]
				}
			},
	
			"minecraft:knighted_netherite": {
				"add": {
					"component_groups": [
						"ljw:pug_knight_netherite",
						"ljw:pug_knight_netherite_abilities"
					]
				}
			},
	
			"minecraft:knighted_obsidian": {
				"add": {
					"component_groups": [
						"ljw:pug_knight_obsidian",
						"ljw:pug_knight_obsidian_abilities"
					]
				}
			},
	
			"minecraft:equip_wolf_jet": {
				"add": {
					"component_groups": [
						"ljw:pug_with_wolf_jet",
						"ljw:pug_flight_mode"
					]
				},
				"remove": {
					"component_groups": [
						"ljw:pug_walking_mode"
					]
				}
			},
	
			"minecraft:equip_wolf_ball": {
				"sequence": [
					//Add requested equipment
					{
						"add": {
							"component_groups": [
								"ljw:pug_with_ball"
							]
						}
					}
				]
			},
	
			"minecraft:spawn_ball_entity": {
				"add": {
					"component_groups": [
						"ljw:pug_spawn_ball_entity"
					]
				}
			},
	
			"minecraft:equip_flying_disk": {
				"sequence": [
					//Add requested equipment
					{
						"add": {
							"component_groups": [
								"ljw:pug_with_flying_disk"
							]
						}
					}
				]
			},
	
			"minecraft:spawn_flying_disk_entity": {
				"add": {
					"component_groups": [
						"ljw:pug_spawn_flying_disk_entity"
					]
				}
			},
	
			"minecraft:equip_runner_toy": {
				"sequence": [
					//Add requested equipment
					{
						"add": {
							"component_groups": [
								"ljw:pug_with_runner_toy"
							]
						}
					}
				]
			},
	
			"minecraft:spawn_runner_toy_entity": {
				"add": {
					"component_groups": [
						"ljw:pug_spawn_runner_toy_entity"
					]
				}
			},
	
			"minecraft:got_toy": {
				"add": {
					"component_groups": [
						"ljw:pug_toy_timer"
					]
				}
			},
			
			"minecraft:dropped_toy": {
				"sequence": [
					{
						"add": {
							"component_groups": [
								"ljw:pug_drop_toy"
							]
						},
						"remove": {
							"component_groups": [
								"ljw:pug_toy_timer"
							]
						}
					}
				]
			},
			
			"minecraft:unknighted": {
				"add": {
					"component_groups": [
						"ljw:pug_unknighted"
					]
				}
			},
	
			"minecraft:can_sleep": {
				"add": {
					"component_groups": [
						"ljw:pug_sleep_behavior"
					]
				}
			},
	
			"minecraft:can_sleep_sitting": {
				"add": {
					"component_groups": [
						"ljw:pug_sleep_behavior_sitting"
					]
				}
			},
	
			"minecraft:cannot_sleep": {
				"remove": {
					"component_groups": [
						"ljw:pug_sleep_behavior",
						"ljw:pug_sleep_behavior_sitting"
					]
				}
			},
	
			"minecraft:woken_up": {
				"sequence": [
					{
						"add": {
							"component_groups": [
								"ljw:pug_get_out_of_bed_flag"
							]
						}
					},
					{
						"filters": { "test": "has_tag", "subject": "self", "operator": "not", "value": "wolvesPlus_isSitting" },
						"remove": {
							"component_groups": [
								"ljw:pug_sleep_behavior"
							]
						},
						"add": {
							"component_groups": [
								"ljw:pug_sleep_behavior"
							]
						}
					},
					{
						"filters": { "test": "has_tag", "subject": "self", "value": "wolvesPlus_isSitting" },
						"remove": {
							"component_groups": [
								"ljw:pug_sleep_behavior_sitting"
							]
						},
						"add": {
							"component_groups": [
								"ljw:pug_sleep_behavior_sitting"
							]
						}
					}
				]
			},
	
			"minecraft:not_alert": {
				"remove": {
					"component_groups": [
						"ljw:pug_notice_player"
					]
				}
			},
	
			"minecraft:alert": {
				"add": {
					"component_groups": [
						"ljw:pug_notice_player"
					]
				}
			},
	
			"minecraft:cure_effects": {
				"add": {
					"component_groups": [
						"ljw:pug_cure"
					]
				}
			},
	
			"minecraft:got_downed": {
				"add": {
					"component_groups": [
						"ljw:pug_downed",
						"ljw:pug_unknighted"
					]
				},
				"remove": {
					"component_groups": [
						"ljw:pug_rideable"
					]
				}
			},
	
			"minecraft:got_revived": {
				"sequence": [
					{
						"remove": {
							"component_groups": [
								"ljw:pug_downed"
							]
						},
						"add": {
							"component_groups": [
								"ljw:pug_revived"
							]
						}
					},
					{
						"filters": { "test": "has_tag", "subject": "self", "value": "wolvesPlus_hasAbility_giant" },
						"add": {
							"component_groups": [
								"ljw:pug_rideable"
							]
						}
					}
				]
			},
	
			"minecraft:despawn": {
				"add": {
					"component_groups": [
						"ljw:pug_despawn"
					]
				}
			},
	
			"minecraft:stormy_weather_mode": {
				"add": {
					"component_groups": [
						"ljw:pug_stormy_weather"
					]
				}
			},
	
			"minecraft:normal_weather_mode": {
				"remove": {
					"component_groups": [
						"ljw:pug_stormy_weather"
					]
				}
			},
	
			"minecraft:reset_skin_id": {
				"add": {
					"component_groups": [
						"ljw:pug_null_skin_id"
					]
				}
			},
	
			"minecraft:remove_armor": {
				"add": {
					"component_groups": [
						"ljw:flag_remove_armor"
					]
				}
			},
	
			"minecraft:check_armor": {
				"sequence": [
					{
						"filters": { "test": "has_equipment", "subject": "self", "domain": "head", "value": "ljw:wolf_armor_iron" },
						"add": {
							"component_groups": [
								"ljw:pug_knight_iron"
							]
						}
					},
					{
						"filters": { "test": "has_equipment", "subject": "self", "domain": "head", "value": "ljw:wolf_armor_gold" },
						"add": {
							"component_groups": [
								"ljw:pug_knight_gold"
							]
						}
					},
					{
						"filters": { "test": "has_equipment", "subject": "self", "domain": "head", "value": "ljw:wolf_armor_diamond" },
						"add": {
							"component_groups": [
								"ljw:pug_knight_diamond"
							]
						}
					},
					{
						"filters": { "test": "has_equipment", "subject": "self", "domain": "head", "value": "ljw:wolf_armor_obsidian" },
						"add": {
							"component_groups": [
								"ljw:pug_knight_obsidian"
							]
						}
					},
					{
						"filters": { "test": "has_equipment", "subject": "self", "domain": "head", "value": "ljw:wolf_jet" },
						"add": {
							"component_groups": [
								"ljw:pug_with_wolf_jet"
							]
						}
					},
					{
						"filters": { "test": "has_equipment", "subject": "self", "domain": "head", "value": "ljw:wolf_armor_netherite" },
						"add": {
							"component_groups": [
								"ljw:pug_knight_netherite"
							]
						}
					},
					{
						"filters": {
							"none_of": [
								{ "test": "has_equipment", "subject": "self", "domain": "head", "value": "ljw:wolf_armor_iron" },
								{ "test": "has_equipment", "subject": "self", "domain": "head", "value": "ljw:wolf_armor_gold" },
								{ "test": "has_equipment", "subject": "self", "domain": "head", "value": "ljw:wolf_armor_diamond" },
								{ "test": "has_equipment", "subject": "self", "domain": "head", "value": "ljw:wolf_armor_netherite" },
								{ "test": "has_equipment", "subject": "self", "domain": "head", "value": "ljw:wolf_armor_obsidian" },
								{ "test": "has_equipment", "subject": "self", "domain": "head", "value": "ljw:wolf_jet" }
							]
						},
						"add": {
							"component_groups": [
								"ljw:pug_unknighted"
							]
						}
					}
				]
			},
	
			"minecraft:sitting_in_bed": {
				"add": {
					"component_groups": [
						"ljw:pug_sitting_in_bed"
					]
				}
			},
	
			"minecraft:temp_hot": {
				"add": {
					"component_groups": [
						"ljw:pug_hot"
					]
				}
			},
	
			"minecraft:temp_cool": {
				"remove": {
					"component_groups": [
						"ljw:pug_hot"
					]
				}
			}
		}
	}
}