{
	"format_version": "1.10.0",
	"animations": {
        "animation.player.enderman_spawn_clock": {
            "animation_length": 1.0,
            "loop": true,
            "timeline": {
				"0.0": [
					"/function player/spawning/enderman_spawn_clock"
				]
            }
        },
		"animation.player.has_end_force": {
			"animation_length": 0.2,
			"loop": true,
			"timeline": {
				"0.0": [
					"/event entity @s[scores={CurrentForce=1..}] set_has_end_force_to_true"
				]
			}
		},
		"animation.player.no_end_force": {
			"animation_length": 0.2,
			"loop": true,
			"timeline": {
				"0.0": [
					"/event entity @s[scores={CurrentForce=..0}] set_has_end_force_to_false"
				]
			}
		},
		"animation.player.throw_delay": {
			"animation_length": 0.15,
			"loop": true
		},
		"animation.player.set_monster_nearby": {
			"animation_length": 0.2,
			"loop": true,
			"timeline": {
				"0.0": [
					"/execute as @s[tag=!MonsterNearby] if entity @e[family=monster,r=12] run event entity @s set_monster_nearby_to_true",
					"/execute as @s[tag=!MonsterNearby] if entity @e[family=monster,r=12] run tag @s add MonsterNearby",
					"/execute as @s[tag=MonsterNearby] unless entity @e[family=monster,r=12] run event entity @s set_monster_nearby_to_false",
					"/execute as @s[tag=MonsterNearby] unless entity @e[family=monster,r=12] run tag @s remove MonsterNearby"
				]
			}
		},

		"animation.player.tutorial_stage_1": {
			"animation_length": 0.1,
			"loop": true,
			"timeline": {
				"0.0": [
					"/execute as @s[rym=-135,ry=-45] run function tutorial/stage_2"
				]
			}
		},
		"animation.player.tutorial_stage_2": {
			"animation_length": 1.0,
			"loop": true,
			"timeline": {
				"0.0": [
					
				]
			}
		},
		"animation.player.tutorial_stage_3": {
			"animation_length": 1.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/titleraw @s actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.punch_guard\", \"with\":[\"\n\"] } ] }"
				]
			}
		},
		"animation.player.tutorial_stage_4_delay": {
			"animation_length": 11.0,
			"loop": false,
			"timeline": {
				"0": [ "/titleraw @s actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.dropped_gem\", \"with\":[\"\n\"] } ] }" ],
				"1.5": [ "/titleraw @s actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.dropped_gem\", \"with\":[\"\n\"] } ] }" ],
				"3": [ "/titleraw @s actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.dropped_gem\", \"with\":[\"\n\"] } ] }" ],
				"4.5": [ "/titleraw @s actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.dropped_gem\", \"with\":[\"\n\"] } ] }" ],
				"6": [ "/titleraw @s actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.dropped_gem\", \"with\":[\"\n\"] } ] }" ],
				"7.5": [ "/titleraw @s actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.dropped_gem\", \"with\":[\"\n\"] } ] }" ],
				"9.0": [ "/titleraw @s actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.dropped_gem\", \"with\":[\"\n\"] } ] }" ]
			}
		},
		"animation.player.tutorial_stage_4": {
			"animation_length": 1.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/titleraw @s actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.attract_guards\", \"with\":[\"\n\"] } ] }",
					"/execute as @s[hasitem={item=ldz:gem_vanilla,quantity=4..}] run function tutorial/stage_5"
				]
			}
		},
		"animation.player.tutorial_stage_5": {
			"animation_length": 1.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/titleraw @s actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.craft_morph\", \"with\":[\"\n\"] } ] }",
					"/execute as @s[hasitem={item=ldz:morph_vanilla}] run function tutorial/stage_6"
				]
			}
		},
		"animation.player.tutorial_stage_6": {
			"animation_length": 1.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/execute unless entity @e[type=ldz:fares_portal_dummy,r=3] run titleraw @s actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.activate_pedestal\", \"with\":[\"\n\"] } ] }"
				]
			}
		},
		"animation.player.tutorial_stage_7_delay": {
			"animation_length": 4.35,
			"loop": false,
			"timeline": {
				"0.0": [
					"/titleraw @s actionbar { \"rawtext\": [ { \"text\": \"{txt:}\" } ] }"
				]
			}
		},
		"animation.player.tutorial_stage_7": {
			"animation_length": 1.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/execute unless entity @e[type=ldz:fares_portal_dummy,r=3] run titleraw @s actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.flip_lever\", \"with\":[\"\n\"] } ] }"
				]
			}
		},
		"animation.player.tutorial_stage_8": {
			"animation_length": 1.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/execute as @s[tag=SomeCondition] run function tutorial/stage_9"
				]
			}
		},
		"animation.player.tutorial_stage_9": {
			"animation_length": 1.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/execute as @s[tag=SomeCondition] run function tutorial/stage_10"
				]
			}
		},
		"animation.player.tutorial_stage_10": {
			"animation_length": 1.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/execute as @s[tag=SomeCondition] run function tutorial/complete"
				]
			}
		},
		"animation.player.tutorial_complete": {
			"animation_length": 15.0,
			"loop": false,
			"timeline": {
				"0": [ "/titleraw @a actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.complete\", \"with\":[\"\n\"] } ] }", "/tag @s add HideElevatorHint" ],
				"1.5": [ "/titleraw @a actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.complete\", \"with\":[\"\n\"] } ] }" ],
				"3": [ "/titleraw @a actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.complete\", \"with\":[\"\n\"] } ] }" ],
				"4.5": [ "/titleraw @a actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.complete\", \"with\":[\"\n\"] } ] }" ],
				"6": [ "/titleraw @a actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.complete\", \"with\":[\"\n\"] } ] }" ],
				"7.5": [ "/titleraw @a actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.complete\", \"with\":[\"\n\"] } ] }" ],
				"9": [ "/titleraw @a actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.complete\", \"with\":[\"\n\"] } ] }" ],
				"10.5": [ "/titleraw @a actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.complete\", \"with\":[\"\n\"] } ] }" ],
				"12": [ "/titleraw @a actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.complete\", \"with\":[\"\n\"] } ] }" ],
				"13.5": [ "/titleraw @a actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.complete\", \"with\":[\"\n\"] } ] }" ],
				"14.5": [ "/titleraw @a actionbar { \"rawtext\": [ { \"translate\": \"action.tutorial.complete\", \"with\":[\"\n\"] } ] }", "/tag @s remove HideElevatorHint" ]
			}
		},
		"animation.player.softlock_check_items": {
			"animation_length": 0.05,
			"loop": true,
			"timeline": {
				"0.0": [
					"/function tutorial/softlock_check_items"
				]
			}
		},
		"animation.player.softlock_check_jail": {
			"animation_length": 1.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/function tutorial/softlock_check_jail"
				]
			}
		},
		"animation.player.anger_sending": {
			"animation_length": 2.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/function tutorial/anger_sending"
				]
			}
		},

		"animation.player.show_end_force_meter": {
			"animation_length": 5.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/execute as @s[tag=!HideEndForceUI] run function end_force/player/title_ui",
					"/execute as @s[tag=HideEndForceUI] run title @s title nothing"
				]
			}
		},

		// PASSIVE ABILITIES
		"animation.player.morph_beast_passive": {
			"animation_length": 3.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/function morph/beast_passive"
				]
			}
		},
		"animation.player.morph_charger_passive": {
			"animation_length": 3.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/function morph/charger_passive"
				]
			}
		},
		"animation.player.morph_chef_camera_shake": {
			"animation_length": 1.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/function morph/chef_camera_shake"
				]
			}
		},
		"animation.player.morph_chef_activated_cost_check": {
			"animation_length": 0.05,
			"loop": true,
			"timeline": {
				"0.0": [
					"/function morph/cost/remove_cost_tags",
					"/tag @s add cost_for_chef_morph",
					"/function morph/cost/select_cost"
				]
			}
		},
		"animation.player.morph_chiller_passive": {
			"animation_length": 0.001,
			"loop": true,
			"timeline": {
				"0.0": [
					"/function morph/chiller_passive"
				]
			}
		},
		"animation.player.morph_gardener_passive": {
			"animation_length": 0.75,
			"loop": true,
			"timeline": {
				"0.0": [
					"/function morph/gardener_passive"
				]
			}
		},
		"animation.player.morph_hydro_passive": {
			"animation_length": 3.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/function morph/hydro_passive"
				]
			}
		},
		"animation.player.morph_lord_passive": {
			"animation_length": 3.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/function morph/lord_passive"
				]
			}
		},
		"animation.player.morph_mystic_passive": {
			"animation_length": 3.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/function morph/mystic_passive"
				]
			}
		},
		"animation.player.morph_scorcher_passive": {
			"animation_length": 3.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/function morph/scorcher_passive"
				]
			}
		},
		"animation.player.morph_scourge_passive": {
			"animation_length": 1.5,
			"loop": true,
			"timeline": {
				"0.0": [
					"/particle ldz:scourge_aura ~ ~ ~",
					"/function morph/scourge_passive"
				],
				"0.3": [
					"/function morph/scourge_passive"
				],
				"0.6": [
					"/function morph/scourge_passive"
				],
				"0.9": [
					"/function morph/scourge_passive"
				],
				"1.2": [
					"/function morph/scourge_passive"
				],
				"1.5": [
					"/function morph/scourge_passive"
				]
			}
		},
		"animation.player.morph_troll_passive": {
			"animation_length": 3.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/function morph/troll_passive"
				]
			}
		},
		"animation.player.morph_vanilla_passive": {
			"animation_length": 3.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/function morph/vanilla_passive"
				]
			}
		},
		"animation.player.morph_wraith_passive": {
			"animation_length": 0.05,
			"loop": true,
			"timeline": {
				"0.0": [
					"/function morph/wraith_passive"
				]
			}
		},

		// ACTIVATED ABILITIES
		"animation.player.morph_beast_activated": {
			"animation_length": 0.6,
			"loop": false,
			"timeline": {
				"0.25": [
					"/playsound mob.ender_beast.swing @a ~ ~ ~ 0.6"
				],
				"0.30": [
					"/function morph/beast_activated"
				],
				"0.5": [
					"/tag @e[tag=BeastKnockback,c=1] remove BeastKnockback"
				]
			}
		},
		"animation.player.morph_charger_walk_cost": {
			"animation_length": 0.4,
			"loop": true,
			"timeline": {
				"0.2": [
					"/execute as @s[m=!creative] run function morph/cost/1"
				]
			}
        },
		"animation.player.morph_charger_sprint_cost": {
			"animation_length": 0.4,
			"loop": true,
			"timeline": {
				"0.2": [
					"/execute as @s[m=!creative] run function morph/cost/1"
				]
			}
		},
		"animation.player.morph_charger_walk_damage": {
			"animation_length": 0.05,
			"loop": true,
			"timeline": {
				"0.0": [
					"/function morph/charger_activated"
				]
			}
		},
		"animation.player.morph_charger_running_sfx": {
			"animation_length": 0.1,
			"loop": true,
			"timeline": {
				"0.0": [			
					"/function player/sfx_charger_idle"	
				]
			}
		},
		"animation.player.morph_charger_sprint_damage": {
			"animation_length": 0.05,
			"loop": true,
			"timeline": {
				"0.0": [
					"/function morph/charger_sprint_activated"
				]
			}
		},
		"animation.player.morph_chef_activated_cost": {
			"animation_length": 0.4,
			"loop": true,
			"timeline": {
				"0.0": [
					"/execute as @s[m=!creative] run function morph/cost/1"
				]
			}
        },
		"animation.player.morph_chef_activated": {
			"animation_length": 0.05,
			"loop": true,
			"timeline": {
				"0.0": [
					"/function morph/chef_activated"
				]
			}
		},
		"animation.player.morph_chiller_activated": {
			"animation_length": 0.75,
			"loop": false,
			"timeline": {
				"0.0": [
					"/playsound mob.ender_chiller.projectile_throw @a[r=4]",
					"/function morph/chiller_activated"
				]
			}
		},
		"animation.player.morph_gardener_activated": {
			"animation_length": 0.2,
			"loop": false,
			"timeline": {
				"0.0": [
					"/function morph/gardener_activated"
				]
			}
		},
		"animation.player.morph_hydro_activated": {
			"animation_length": 1.0,
			"loop": false,
			"timeline": {
				"0.0": [
					"/function morph/hydro_activated"
				]
			}
		},
		"animation.player.morph_lord_melee_activated": {
            "animation_length": 0.8,
            "loop": false,
            "timeline": {
                "0.25": [
					"/playsound player.morph.lord.claw @a ~ ~ ~"
                ],
                "0.35": [
                    "/function morph/lord_melee_activated"
                ]
            }
        },
        "animation.player.morph_lord_summon_activated": {
            "animation_length": 2,
            "loop": false,
            "timeline": {
                "0.0": [
                    "/execute positioned ^ ^0.8 ^ run function morph/lord_summon_activated"
                ],
                "0.3": [
                    "/execute positioned ^ ^ ^ run function morph/lord_summon_activated"
                ],
                "0.6": [
                    "/execute positioned ^ ^-0.8 ^ run function morph/lord_summon_activated"
                ]
            }
        },
        "animation.player.morph_lord_beam_cost": {
            "animation_length": 0.15,
            "loop": true,
            "timeline": {
                "0.0": [
                    "/function morph/lord_beam_cost"
                ]
            }
        },
        "animation.player.morph_lord_beam_activated": {
            "animation_length": 0.1,
            "loop": true,
            "timeline": {
                "0.0": [
                    "/function morph/lord_beam_activated"
                ]
            }
        },
        "animation.player.morph_lord_beam_sfx": {
            "animation_length": 1.25,
            "loop": true,
            "timeline": {
                "0.0": [
					"/playsound player.morph.lord.beam @a ~ ~ ~"
                ]
            }
        },
        "animation.player.morph_lord_charge_delay": {
            "animation_length": 1.5,
            "loop": false
        },
        "animation.player.morph_lord_beam_delay": {
            "animation_length": 0.8,
            "loop": false
        },
        "animation.player.morph_lord_speed": {
            "animation_length": 0.1,
            "loop": true,
            "timeline": {
                "0.0": [
                    "/effect @s[tag=!Chilled] slowness 0 0 true",
                    "/effect @s[tag=!Chilled] speed 23 0 true"
                ]
            }
        },
        "animation.player.morph_lord_slowness": {
            "animation_length": 0.1,
            "loop": true,
            "timeline": {
                "0.0": [
                    "/effect @s[tag=!Chilled] speed 0 0 true",
                    "/effect @s[tag=!Chilled] slowness 23 0 true"
                ]
            }
        },
		"animation.player.morph_mystic_charge_beam": {
			"animation_length": 1.7,
			"loop": false,
			"timeline": {
				"0.0": [
					"/playsound mob.ender_mystic.charge @a[r=5]"
				]
			}
		},
		"animation.player.morph_mystic_clear_beam": {
			"animation_length": 0.1,
			"loop": true,
			"timeline": {
				"0.0": [
					"/event entity @s set_beam_state_to_0",
					"/stopsound @a[r=13] mob.ender_mystic.beam "
				]
			}
		},
		"animation.player.morph_scorcher_activated": {
			"animation_length": 0.2,
			"loop": false,
			"timeline": {
				"0.0": [
					"/function morph/scorcher_activated"
				]
			}
		},
		"animation.player.morph_scourge_activated": {
			"animation_length": 0.2,
			"loop": false,
			"timeline": {
				"0.0": [
					"/function morph/scourge_activated"
				]
			}
		},
		"animation.player.morph_troll_activated": {
			"animation_length": 2.25,
			"loop": false,
			"timeline": {
				"0.0": [
					"/function morph/troll_activated",
					"@s add_troll_activated"
				]
			}
		},
		"animation.player.morph_vanilla_activated": {
			"animation_length": 0.25,
			"loop": false,
			"timeline": {
				"0.0": [
					"/function morph/vanilla_activated"
				],
				"0.1": [
					"/playsound player.morph.vanilla.teleport @a ~ ~ ~ 0.75",
					"/particle ldz:vanilla_teleport ~ ~ ~"
				]
			}
		},
		"animation.player.morph_wraith_activated": {
			"animation_length": 1.6,
			"loop": false,
			"timeline": {
				"0.0": [
					"/playsound mob.ender_wraith.sludge_fire @s ~ ~ ~"
				],
				"0.25": [
					"/function morph/wraith_activated"
				]
			}
		},
		"animation.player.morph.cancel_activated_cooldown": {
			"animation_length": 0.5,
			"loop": true
		},
		"animation.player.morph.beast_attack_cooldown": {
			"animation_length": 0.5,
			"loop": false,
			"timeline": {
				"0.3": [
					"/function morph/beast_attack"
				]
			}
		},
		"animation.player.morph.charger_attack_cooldown": {
			"animation_length": 0.5,
			"loop": false,
			"timeline": {
				"0.3": [
					"/function morph/charger_attack"
				]
			}
		},
		"animation.player.morph.chef_attack_cooldown": {
			"animation_length": 0.5,
			"loop": false,
			"timeline": {
				"0.3": [
					"/function morph/chef_attack"
				]
			}
		},
		"animation.player.morph.chiller_attack_cooldown": {
			"animation_length": 0.5,
			"loop": false,
			"timeline": {
				"0.3": [
					"/function morph/chiller_attack"
				]
			}
		},
		"animation.player.morph.gardener_attack_cooldown": {
			"animation_length": 0.5,
			"loop": false,
			"timeline": {
				"0.3": [
					"/function morph/gardener_attack"
				]
			}
		},
		"animation.player.morph.hydro_attack_cooldown": {
			"animation_length": 0.5,
			"loop": false,
			"timeline": {
				"0.3": [
					"/function morph/hydro_attack"
				]
			}
		},
		"animation.player.morph.lord_attack_cooldown": {
			"animation_length": 0.5,
			"loop": false,
			"timeline": {
				"0.3": [
					"/function morph/lord_attack"
				]
			}
		},
		"animation.player.morph.mystic_attack_cooldown": {
			"animation_length": 0.5,
			"loop": false,
			"timeline": {
				"0.3": [
					"/function morph/mystic_attack"
				]
			}
		},
		"animation.player.morph.scorcher_attack_cooldown": {
			"animation_length": 0.5,
			"loop": false,
			"timeline": {
				"0.3": [
					"/function morph/scorcher_attack"
				]
			}
		},
		"animation.player.morph.scourge_attack_cooldown": {
			"animation_length": 0.5,
			"loop": false,
			"timeline": {
				"0.3": [
					"/function morph/scourge_attack"
				]
			}
		},
		"animation.player.morph.troll_attack_cooldown": {
			"animation_length": 0.5,
			"loop": false,
			"timeline": {
				"0.3": [
					"/function morph/troll_attack"
				]
			}
		},
		"animation.player.morph.vanilla_attack_cooldown": {
			"animation_length": 0.5,
			"loop": false,
			"timeline": {
				"0.3": [
					"/function morph/vanilla_attack"
				]
			}
		},
		"animation.player.morph.wraith_attack_cooldown": {
			"animation_length": 0.5,
			"loop": false,
			"timeline": {
				"0.3": [
					"/function morph/wraith_attack"
				]
			}
		},
		"animation.player.tag_if_in_end": {
			"animation_length": 1.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/tag @s remove InEnd",
					"/execute in the_end if entity @p[r=1] run tag @s add InEnd"
				]
			}
		},
		"animation.player.spawn_ender_lord": {
			"animation_length": 3.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/scoreboard objectives add EnderLordSpawn",
					"/scoreboard players add .lord_spawned EnderLordSpawn 0",
					"/execute as @s[tag=InEnd] unless score .lord_spawned EnderLordSpawn matches 1 run function admin/spawn_and_tp_ender_lord"
				]
			}
		},
		"animation.player.show_hint": {
			"animation_length": 3.0,
			"loop": false,
			"timeline": {
				"0.0": [
					"/scoreboard objectives add TutorialStage dummy",
					"/scoreboard players add @s TutorialStage 0",
					"/execute if score @s[tag=!HideElevatorHint] TutorialStage matches 0 run function player/show_hint"
				],
				"1.5": [ "/execute if score @s[tag=!HideElevatorHint] TutorialStage matches 0 run function player/show_hint" ],
				"3.0": [ "/execute if score @s[tag=!HideElevatorHint] TutorialStage matches 0 run function player/show_hint" ]
			}
		},
		"animation.player.check_height": {
			"animation_length": 0.05,
			"loop": true,
			"timeline": {
				"0.0": [
					"/function player/check_height"
				]
			}
		},
		"animation.player.escape_hub_check": {
			"animation_length": 1.0,
			"loop": true,
			"timeline": {
				"0.0": [
					"/function player/left_island_check"
				]
			}
		}
	}
}