{
	"credit": "Created by Skaliber for Caelesti",
	"texture": "./textures/skeleton.png",
	"textureSize": [64, 64],
	"models": [
		{
			"part": "head",
			"id": "head",
			"invertAxis": "xy",
			"translate": [0, -24, 0]
		},
		{
			"part": "headwear",
			"id": "headwear",
			"invertAxis": "xy",
			"translate": [0, -24, 0]
		},
		{
			"part": "body",
			"id": "body",
			"invertAxis": "xy",
			"translate": [0, -24, 0],
			"submodels": [
				{
					"id": "rotate",
					"invertAxis": "xy",
					"translate": [0, 0, 0],
					"submodels": [
						{
							"id": "translate",
							"invertAxis": "xy",
							"translate": [0, 0, 0],
							"submodels": [
								{
									"id": "physics_body",
									"invertAxis": "xy",
									"translate": [0, 18, 0],
									"boxes": [
										{"coordinates": [-4, -6, -2, 8, 2, 4], "textureOffset": [0, 20]},
										{"coordinates": [-1, -4, 0, 2, 8, 2], "textureOffset": [0, 26]},
										{"coordinates": [-4, 4, -2, 8, 2, 4], "textureOffset": [0, 14]},
										{"coordinates": [-4, 2, 0, 8, 1, 2], "textureOffset": [8, 26]},
										{"coordinates": [-4, 0, 0, 8, 1, 2], "textureOffset": [8, 26]},
										{"coordinates": [2, 0, -2, 2, 1, 2], "textureOffset": [8, 32]},
										{"coordinates": [2, 2, -2, 2, 1, 2], "textureOffset": [8, 32]},
										{"coordinates": [-4, 2, -2, 2, 1, 2], "textureOffset": [8, 29]},
										{"coordinates": [-4, 0, -2, 2, 1, 2], "textureOffset": [8, 29]},
										{"coordinates": [-2, 1, -3, 4, 4, 1], "textureOffset": [8, 35]}
									]
								},
								{
									"id": "head2",
									"invertAxis": "xy",
									"translate": [0, 24, 0],
									"submodels": [
										{
											"id": "physics_head",
											"invertAxis": "xy",
											"translate": [0, 4, 0],
											"boxes": [
												{"coordinates": [-4, -2, -4, 8, 6, 8], "textureOffset": [0, 0]},
												{"coordinates": [-3, -4, -4, 6, 2, 7], "textureOffset": [32, 16]},
												{"coordinates": [3, 1, -2, -2, -2, -2], "textureOffset": [26, 33]},
												{"coordinates": [-1, 1, -2, -2, -2, -2], "textureOffset": [26, 33]},
												{"coordinates": [1, -1, -3, -2, -1, -1], "textureOffset": [24, 35]},
												{"coordinates": [-4, -4, -4, 8, 8, 8], "textureOffset": [32, 0], "sizeAdd": 0.5}
											]
										}
									]
								},
								{
									"id": "left_arm2",
									"invertAxis": "xy",
									"mirrorTexture": "u",
									"translate": [-5, 22, 0],
									"submodels": [
										{
											"id": "physics_left_arm",
											"invertAxis": "xy",
											"mirrorTexture": "u",
											"translate": [0, -4, 0],
											"boxes": [
												{"coordinates": [-1, -6, -1, 2, 12, 2], "textureOffset": [32, 25]}
											]
										}
									]
								},
								{
									"id": "right_arm2",
									"invertAxis": "xy",
									"translate": [5, 22, 0],
									"submodels": [
										{
											"id": "physics_right_arm",
											"invertAxis": "xy",
											"translate": [0, -4, 0],
											"boxes": [
												{"coordinates": [-1, -6, -1, 2, 12, 2], "textureOffset": [32, 25]}
											]
										}
									]
								},
								{
									"id": "left_leg2",
									"invertAxis": "xy",
									"mirrorTexture": "u",
									"translate": [-2, 12, 0.1],
									"submodels": [
										{
											"id": "physics_left_leg",
											"invertAxis": "xy",
											"mirrorTexture": "u",
											"translate": [0, -6, -0.1],
											"boxes": [
												{"coordinates": [-1, -6, -1, 2, 12, 2], "textureOffset": [40, 25]}
											]
										}
									]
								},
								{
									"id": "right_leg2",
									"invertAxis": "xy",
									"translate": [2, 12, 0.1],
									"submodels": [
										{
											"id": "physics_right_leg",
											"invertAxis": "xy",
											"translate": [0, -6, -0.1],
											"boxes": [
												{"coordinates": [-1, -6, -1, 2, 12, 2], "textureOffset": [40, 25]}
											]
										}
									]
								}
							]
						}
					]
				}
			],
			"animations": [
				{
					"rotate.rz": "if(death_time > 0, -torad(min(sqrt((death_time - 1) / 20 * 1.6), 1) * 90), 0)",
					"translate.ty": "if(death_time > 0 && !is_in_water, frac(pos_y) * 16, 0)",
					"render.shadow_opacity": "if(death_time == 0, 1, (20 - death_time) / 20)",
					"render.shadow_size": 0.5
				},
				{
					"head2.rx": "head.rx",
					"head2.ry": "head.ry",
					"left_arm2.rx": "left_arm.rx",
					"left_arm2.ry": "left_arm.ry",
					"left_arm2.rz": "left_arm.rz",
					"right_arm2.rx": "right_arm.rx",
					"right_arm2.ry": "right_arm.ry",
					"right_arm2.rz": "right_arm.rz",
					"left_leg2.rx": "left_leg.rx",
					"left_leg2.ry": "left_leg.ry",
					"left_leg2.rz": "left_leg.rz",
					"right_leg2.rx": "right_leg.rx",
					"right_leg2.ry": "right_leg.ry",
					"right_leg2.rz": "right_leg.rz"
				},
				{
					"var.deltatime": "frame_time * 20",
					"var.a": "if(is_in_water, 0.1, 1)"
				},
				{
					"var.position_check_head_y": "var.position_head_y + var.velocity_head_tyz * sin(head2.rx + var.velocity_angle_head) * var.deltatime",
					"var.position_check_head_z": "var.position_head_z + var.velocity_head_tyz * cos(head2.rx + var.velocity_angle_head) * var.deltatime",
					"var.position_check_left_arm_y": "var.position_left_arm_y + var.velocity_left_arm_tyz * sin(left_arm2.rx + var.velocity_angle_left_arm) * var.deltatime",
					"var.position_check_left_arm_z": "var.position_left_arm_z + var.velocity_left_arm_tyz * cos(left_arm2.rx + var.velocity_angle_left_arm) * var.deltatime",
					"var.position_check_right_arm_y": "var.position_right_arm_y + var.velocity_right_arm_tyz * sin(right_arm2.rx + var.velocity_angle_right_arm) * var.deltatime",
					"var.position_check_right_arm_z": "var.position_right_arm_z + var.velocity_right_arm_tyz * cos(right_arm2.rx + var.velocity_angle_right_arm) * var.deltatime",
					"var.position_check_left_leg_y": "var.position_left_leg_y + var.velocity_left_leg_tyz * sin(left_leg2.rx + var.velocity_angle_left_leg) * var.deltatime",
					"var.position_check_left_leg_z": "var.position_left_leg_z + var.velocity_left_leg_tyz * cos(left_leg2.rx + var.velocity_angle_left_leg) * var.deltatime",
					"var.position_check_right_leg_y": "var.position_right_leg_y + var.velocity_right_leg_tyz * sin(right_leg2.rx + var.velocity_angle_right_leg) * var.deltatime",
					"var.position_check_right_leg_z": "var.position_right_leg_z + var.velocity_right_leg_tyz * cos(right_leg2.rx + var.velocity_angle_right_leg) * var.deltatime"
				},
				{
					"var.floor_head": "if(is_in_water || sqrt(var.position_check_head_y * var.position_check_head_y + var.position_check_head_z * var.position_check_head_z) * sin(-head2.rx + atan2(var.position_check_head_y, var.position_check_head_z)) <= 20 + 4 * sin(head2.rx + pi / 2), 1, 0.5)",
					"var.floor_body": "if(is_in_water || var.position_body_y + var.velocity_body_ty * var.deltatime <= 14, 1, 0.5)",
					"var.floor_left_arm": "if(is_in_water || sqrt(var.position_check_left_arm_y * var.position_check_left_arm_y + var.position_check_left_arm_z * var.position_check_left_arm_z) * sin(-left_arm2.rx + atan2(var.position_check_left_arm_y, var.position_check_left_arm_z)) <= 20 + -6 * sin(left_arm2.rx + pi / 2), 1, 0.5)",
					"var.floor_right_arm": "if(is_in_water || sqrt(var.position_check_right_arm_y * var.position_check_right_arm_y + var.position_check_right_arm_z * var.position_check_right_arm_z) * sin(-right_arm2.rx + atan2(var.position_check_right_arm_y, var.position_check_right_arm_z)) <= 20 + -6 * sin(right_arm2.rx + pi / 2), 1, 0.5)",
					"var.floor_left_leg": "if(is_in_water || sqrt(var.position_check_left_leg_y * var.position_check_left_leg_y + var.position_check_left_leg_z * var.position_check_left_leg_z) * sin(-left_leg2.rx + atan2(var.position_check_left_leg_y, var.position_check_left_leg_z)) <= 8 + -6 * sin(left_leg2.rx + pi / 2), 1, 0.5)",
					"var.floor_right_leg": "if(is_in_water || sqrt(var.position_check_right_leg_y * var.position_check_right_leg_y + var.position_check_right_leg_z * var.position_check_right_leg_z) * sin(-right_leg2.rx + atan2(var.position_check_right_leg_y, var.position_check_right_leg_z)) <= 8 + -6 * sin(right_leg2.rx + pi / 2), 1, 0.5)"
				},
				{
					"var.velocity_head_tx": "if(death_time > 0, var.floor_head * var.velocity_head_tx - var.first_frame * (random() - 0.5) * if(is_in_water, 2, 4), 0)",
					"var.velocity_head_ty": "if(death_time > 0, if(var.floor_head == 1, 1, -var.floor_head) * var.velocity_head_ty + var.a * var.deltatime - var.first_frame * random() * if(is_in_water, 1, 2), 0)",
					"var.velocity_head_tz": "if(death_time > 0, var.floor_head * var.velocity_head_tz - var.first_frame * (random() - 0.5) * if(is_in_water, 2, 4), 0)",
					"var.velocity_head_rx": "if(death_time > 0, var.floor_head * var.velocity_head_rx - var.first_frame * (random() - 0.5) * if(is_in_water, 0.5, 1), 0)",
					"var.velocity_head_ry": "if(death_time > 0, var.floor_head * var.velocity_head_ry - var.first_frame * (random() - 0.5) * if(is_in_water, 0.5, 1), 0)",
					"var.velocity_head_tyz": "sqrt(var.velocity_head_ty * var.velocity_head_ty + var.velocity_head_tz * var.velocity_head_tz)",
					"var.velocity_angle_head": "atan2(var.velocity_head_ty, var.velocity_head_tz)"
				},
				{
					"var.position_head_x": "var.position_head_x + var.velocity_head_tx * var.deltatime",
					"var.position_head_y": "var.position_head_y + var.velocity_head_tyz * sin(head2.rx + var.velocity_angle_head) * var.deltatime",
					"var.position_head_z": "var.position_head_z + var.velocity_head_tyz * cos(head2.rx + var.velocity_angle_head) * var.deltatime",
					"var.rotation_head_x": "var.rotation_head_x + var.velocity_head_rx * var.deltatime",
					"var.rotation_head_y": "var.rotation_head_y + var.velocity_head_ry * var.deltatime"
				},
				{
					"physics_head.tx": "var.position_head_x",
					"physics_head.ty": "-4 + var.position_head_y",
					"physics_head.tz": "var.position_head_z",
					"physics_head.rx": "var.rotation_head_x",
					"physics_head.ry": "var.rotation_head_y"
				},
				{
					"var.velocity_body_tx": "if(death_time > 0, var.floor_body * var.velocity_body_tx - var.first_frame * (random() -0.5) * if(is_in_water, 2, 4), 0)",
					"var.velocity_body_ty": "if(death_time > 0, if(var.floor_body == 1, 1, -var.floor_body) * var.velocity_body_ty + var.a * var.deltatime - var.first_frame * random() * if(is_in_water, 1, 2), 0)",
					"var.velocity_body_tz": "if(death_time > 0, var.floor_body * var.velocity_body_tz - var.first_frame * (random() -0.5) * if(is_in_water, 2, 4), 0)",
					"var.velocity_body_rx": "if(death_time > 0, var.floor_body * var.velocity_body_rx - var.first_frame * (random() -0.5) * if(is_in_water, 0.5, 1), 0)",
					"var.velocity_body_ry": "if(death_time > 0, var.floor_body * var.velocity_body_ry - var.first_frame * (random() -0.5) * if(is_in_water, 0.5, 1), 0)"
				},
				{
					"var.position_body_x": "var.position_body_x + var.velocity_body_tx * var.deltatime",
					"var.position_body_y": "var.position_body_y + var.velocity_body_ty * var.deltatime",
					"var.position_body_z": "var.position_body_z + var.velocity_body_tz * var.deltatime",
					"var.rotation_body_x": "var.rotation_body_x + var.velocity_body_rx * var.deltatime",
					"var.rotation_body_y": "var.rotation_body_y + var.velocity_body_ry * var.deltatime"
				},
				{
					"physics_body.tx": "var.position_body_x",
					"physics_body.ty": "-18 + var.position_body_y",
					"physics_body.tz": "var.position_body_z",
					"physics_body.rx": "var.rotation_body_x",
					"physics_body.ry": "var.rotation_body_y"
				},
				{
					"var.velocity_left_arm_tx": "if(death_time > 0, var.floor_left_arm * var.velocity_left_arm_tx - var.first_frame * (random() - 0.5) * if(is_in_water, 2, 4), 0)",
					"var.velocity_left_arm_ty": "if(death_time > 0, if(var.floor_left_arm == 1, 1, -var.floor_left_arm) * var.velocity_left_arm_ty + var.a * var.deltatime - var.first_frame * random() * if(is_in_water, 1, 2), 0)",
					"var.velocity_left_arm_tz": "if(death_time > 0, var.floor_left_arm * var.velocity_left_arm_tz - var.first_frame * (random() - 0.5) * if(is_in_water, 2, 4), 0)",
					"var.velocity_left_arm_rx": "if(death_time > 0, var.floor_left_arm * var.velocity_left_arm_rx - var.first_frame * (random() - 0.5) * if(is_in_water, 0.5, 1), 0)",
					"var.velocity_left_arm_ry": "if(death_time > 0, var.floor_left_arm * var.velocity_left_arm_ry - var.first_frame * (random() - 0.5) * if(is_in_water, 0.5, 1), 0)",
					"var.velocity_left_arm_tyz": "sqrt(var.velocity_left_arm_ty * var.velocity_left_arm_ty + var.velocity_left_arm_tz * var.velocity_left_arm_tz)",
					"var.velocity_angle_left_arm": "atan2(var.velocity_left_arm_ty, var.velocity_left_arm_tz)"
				},
				{
					"var.position_left_arm_x": "var.position_left_arm_x + var.velocity_left_arm_tx * var.deltatime",
					"var.position_left_arm_y": "var.position_left_arm_y + var.velocity_left_arm_tyz * sin(left_arm2.rx + var.velocity_angle_left_arm) * var.deltatime",
					"var.position_left_arm_z": "var.position_left_arm_z + var.velocity_left_arm_tyz * cos(left_arm2.rx + var.velocity_angle_left_arm) * var.deltatime",
					"var.rotation_left_arm_x": "var.rotation_left_arm_x + var.velocity_left_arm_rx * var.deltatime",
					"var.rotation_left_arm_y": "var.rotation_left_arm_y + var.velocity_left_arm_ry * var.deltatime"
				},
				{
					"physics_left_arm.tx": "var.position_left_arm_x",
					"physics_left_arm.ty": "4 + var.position_left_arm_y",
					"physics_left_arm.tz": "var.position_left_arm_z",
					"physics_left_arm.rx": "var.rotation_left_arm_x",
					"physics_left_arm.ry": "var.rotation_left_arm_y"
				},
				{
					"var.velocity_right_arm_tx": "if(death_time > 0, var.floor_right_arm * var.velocity_right_arm_tx - var.first_frame * (random() - 0.5) * if(is_in_water, 2, 4), 0)",
					"var.velocity_right_arm_ty": "if(death_time > 0, if(var.floor_right_arm == 1, 1, -var.floor_right_arm) * var.velocity_right_arm_ty + var.a * var.deltatime - var.first_frame * random() * if(is_in_water, 1, 2), 0)",
					"var.velocity_right_arm_tz": "if(death_time > 0, var.floor_right_arm * var.velocity_right_arm_tz - var.first_frame * (random() - 0.5) * if(is_in_water, 2, 4), 0)",
					"var.velocity_right_arm_rx": "if(death_time > 0, var.floor_right_arm * var.velocity_right_arm_rx - var.first_frame * (random() - 0.5) * if(is_in_water, 0.5, 1), 0)",
					"var.velocity_right_arm_ry": "if(death_time > 0, var.floor_right_arm * var.velocity_right_arm_ry - var.first_frame * (random() - 0.5) * if(is_in_water, 0.5, 1), 0)",
					"var.velocity_right_arm_tyz": "sqrt(var.velocity_right_arm_ty * var.velocity_right_arm_ty + var.velocity_right_arm_tz * var.velocity_right_arm_tz)",
					"var.velocity_angle_right_arm": "atan2(var.velocity_right_arm_ty, var.velocity_right_arm_tz)"
				},
				{
					"var.position_right_arm_x": "var.position_right_arm_x + var.velocity_right_arm_tx * var.deltatime",
					"var.position_right_arm_y": "var.position_right_arm_y + var.velocity_right_arm_tyz * sin(right_arm2.rx + var.velocity_angle_right_arm) * var.deltatime",
					"var.position_right_arm_z": "var.position_right_arm_z + var.velocity_right_arm_tyz * cos(right_arm2.rx + var.velocity_angle_right_arm) * var.deltatime",
					"var.rotation_right_arm_x": "var.rotation_right_arm_x + var.velocity_right_arm_rx * var.deltatime",
					"var.rotation_right_arm_y": "var.rotation_right_arm_y + var.velocity_right_arm_ry * var.deltatime"
				},
				{
					"physics_right_arm.tx": "var.position_right_arm_x",
					"physics_right_arm.ty": "4 + var.position_right_arm_y",
					"physics_right_arm.tz": "var.position_right_arm_z",
					"physics_right_arm.rx": "var.rotation_right_arm_x",
					"physics_right_arm.ry": "var.rotation_right_arm_y"
				},
				{
					"var.velocity_left_leg_tx": "if(death_time > 0, var.floor_left_leg * var.velocity_left_leg_tx - var.first_frame * (random() - 0.5) * if(is_in_water, 2, 4), 0)",
					"var.velocity_left_leg_ty": "if(death_time > 0, if(var.floor_left_leg == 1, 1, -var.floor_left_leg) * var.velocity_left_leg_ty + var.a * var.deltatime - var.first_frame * random() * if(is_in_water, 1, 2), 0)",
					"var.velocity_left_leg_tz": "if(death_time > 0, var.floor_left_leg * var.velocity_left_leg_tz - var.first_frame * (random() - 0.5) * if(is_in_water, 2, 4), 0)",
					"var.velocity_left_leg_rx": "if(death_time > 0, var.floor_left_leg * var.velocity_left_leg_rx - var.first_frame * (random() - 0.5) * if(is_in_water, 0.5, 1), 0)",
					"var.velocity_left_leg_ry": "if(death_time > 0, var.floor_left_leg * var.velocity_left_leg_ry - var.first_frame * (random() - 0.5) * if(is_in_water, 0.5, 1), 0)",
					"var.velocity_left_leg_tyz": "sqrt(var.velocity_left_leg_ty * var.velocity_left_leg_ty + var.velocity_left_leg_tz * var.velocity_left_leg_tz)",
					"var.velocity_angle_left_leg": "atan2(var.velocity_left_leg_ty, var.velocity_left_leg_tz)"
				},
				{
					"var.position_left_leg_x": "var.position_left_leg_x + var.velocity_left_leg_tx * var.deltatime",
					"var.position_left_leg_y": "var.position_left_leg_y + var.velocity_left_leg_tyz * sin(left_leg2.rx + var.velocity_angle_left_leg) * var.deltatime",
					"var.position_left_leg_z": "var.position_left_leg_z + var.velocity_left_leg_tyz * cos(left_leg2.rx + var.velocity_angle_left_leg) * var.deltatime",
					"var.rotation_left_leg_x": "var.rotation_left_leg_x + var.velocity_left_leg_rx * var.deltatime",
					"var.rotation_left_leg_y": "var.rotation_left_leg_y + var.velocity_left_leg_ry * var.deltatime"
				},
				{
					"physics_left_leg.tx": "var.position_left_leg_x",
					"physics_left_leg.ty": "6 + var.position_left_leg_y",
					"physics_left_leg.tz": "var.position_left_leg_z",
					"physics_left_leg.rx": "var.rotation_left_leg_x",
					"physics_left_leg.ry": "var.rotation_left_leg_y"
				},
				{
					"var.velocity_right_leg_tx": "if(death_time > 0, var.floor_right_leg * var.velocity_right_leg_tx - var.first_frame * (random() - 0.5) * if(is_in_water, 2, 4), 0)",
					"var.velocity_right_leg_ty": "if(death_time > 0, if(var.floor_right_leg == 1, 1, -var.floor_right_leg) * var.velocity_right_leg_ty + var.a * var.deltatime - var.first_frame * random() * if(is_in_water, 1, 2), 0)",
					"var.velocity_right_leg_tz": "if(death_time > 0, var.floor_right_leg * var.velocity_right_leg_tz - var.first_frame * (random() - 0.5) * if(is_in_water, 2, 4), 0)",
					"var.velocity_right_leg_rx": "if(death_time > 0, var.floor_right_leg * var.velocity_right_leg_rx - var.first_frame * (random() - 0.5) * if(is_in_water, 0.5, 1), 0)",
					"var.velocity_right_leg_ry": "if(death_time > 0, var.floor_right_leg * var.velocity_right_leg_ry - var.first_frame * (random() - 0.5) * if(is_in_water, 0.5, 1), 0)",
					"var.velocity_right_leg_tyz": "sqrt(var.velocity_right_leg_ty * var.velocity_right_leg_ty + var.velocity_right_leg_tz * var.velocity_right_leg_tz)",
					"var.velocity_angle_right_leg": "atan2(var.velocity_right_leg_ty, var.velocity_right_leg_tz)"
				},
				{
					"var.position_right_leg_x": "var.position_right_leg_x + var.velocity_right_leg_tx * var.deltatime",
					"var.position_right_leg_y": "var.position_right_leg_y + var.velocity_right_leg_tyz * sin(right_leg2.rx + var.velocity_angle_right_leg) * var.deltatime",
					"var.position_right_leg_z": "var.position_right_leg_z + var.velocity_right_leg_tyz * cos(right_leg2.rx + var.velocity_angle_right_leg) * var.deltatime",
					"var.rotation_right_leg_x": "var.rotation_right_leg_x + var.velocity_right_leg_rx * var.deltatime",
					"var.rotation_right_leg_y": "var.rotation_right_leg_y + var.velocity_right_leg_ry * var.deltatime"
				},
				{
					"physics_right_leg.tx": "var.position_right_leg_x",
					"physics_right_leg.ty": "6 + var.position_right_leg_y",
					"physics_right_leg.tz": "var.position_right_leg_z",
					"physics_right_leg.rx": "var.rotation_right_leg_x",
					"physics_right_leg.ry": "var.rotation_right_leg_y"
				},
				{
					"var.first_frame": "if(death_time > 0, 0, 1)"
				}
			]
		},
		{
			"part": "left_arm",
			"id": "left_arm",
			"invertAxis": "xy",
			"mirrorTexture": "u",
			"translate": [5, -22, 0]
		},
		{
			"part": "right_arm",
			"id": "right_arm",
			"invertAxis": "xy",
			"translate": [-5, -22, 0]
		},
		{
			"part": "left_leg",
			"id": "left_leg",
			"invertAxis": "xy",
			"mirrorTexture": "u",
			"translate": [2, -12, -0.1]
		},
		{
			"part": "right_leg",
			"id": "right_leg",
			"invertAxis": "xy",
			"translate": [-2, -12, -0.1]
		}
	]
}