Prompt: -- Decompiled with the Synapse X Luau decompiler.

Response:
client = nil;
cPcall = nil;
Pcall = nil;
Routine = nil;
service = nil;
gTable = nil;
return function(p1)
	local l__PlayerGui__1 = service.PlayerGui;
	client.Variables.PlayerListEnabled = false;
	service.StarterGui:SetCoreGuiEnabled("PlayerList", false);
	local l__Parent__2 = script.Parent.Parent;
	local l__Drag__3 = l__Parent__2.Drag;
	local l__Frame__4 = l__Parent__2.Drag.Frame;
	gTable:Ready();
	local l__mouse__5 = service.Players.LocalPlayer:GetMouse();
	local l__X__6 = l__Drag__3.AbsoluteSize.X;
	local l__Y__7 = l__Frame__4.AbsoluteSize.Y;
	local l__LocalPlayer__1 = service.Players.LocalPlayer;
	local u2 = false;
	local u3 = l__X__6;
	local u4 = l__X__6;
	local l__List__5 = l__Parent__2.Drag.Frame.List;
	local l__FakeDragger__6 = l__Parent__2.Drag.Frame.FakeDragger;
	local function v8()
		l__Frame__4.BackgroundTransparency = 0.7;
		l__List__5.BackgroundTransparency = 1;
		l__FakeDragger__6.Visible = false;
	end;
	local function u7()
		local l__leaderstats__9 = l__LocalPlayer__1:FindFirstChild("leaderstats");
		if l__leaderstats__9 and not u2 then
			u3 = (#l__leaderstats__9:GetChildren() - 1) * 70 + 210;
			u4 = u3;
			l__Drag__3.Size = UDim2.new(0, u3, 0, 30);
			l__Drag__3.Position = UDim2.new(1, -u3, 0, 0);
		end;
		if l__leaderstats__9 then
			return true;
		end;
		return false;
	end;
	local u8 = nil;
	local l__Entry__9 = l__Parent__2.Entry;
	local u10 = {
		["1237666"] = 355277187,
		["39958537"] = 116524268,
		["66136675"] = 355858707,
		["102761590"] = 355858707,
		["6087802"] = 355858707,
		["33869774"] = 355858707,
		["60557514"] = 355858707,
		["28606349"] = 99727663,
		["64362264"] = 48094325,
		["39259729"] = 356709818,
		["68591528"] = 397876352
	};
	local u11 = l__Y__7;
	local u12 = l__Y__7;
	local function v10()
		l__List__5:ClearAllChildren();
		u7();
		local v11 = {
			Neutral = {
				Color = BrickColor.White(),
				Players = {},
				Stats = {},
				StatNames = {}
			}
		};
		local v12 = 0;
		local v13 = 0;
		local v14 = {};
		local v15 = {};
		for v16, v17 in pairs(service.Teams:GetChildren()) do
			v11[v17.Name] = {
				Color = v17.TeamColor,
				Players = {},
				Stats = {},
				StatNames = {}
			};
		end;
		local v18, v19, v20 = pairs(service.Players:GetPlayers());
		while true do
			local v21, v22 = v18(v19, v20);
			if not v21 then
				break;
			end;
			local v23 = false;
			local v24 = nil;
			if not v22.Neutral then
				for v25, v26 in pairs(v11) do
					if v26.Color == v22.TeamColor then
						v23 = true;
						v24 = v26;
						table.insert(v26.Players, v22);
					end;
				end;
			end;
			if not v23 then
				v24 = v11.Neutral;
				table.insert(v11.Neutral.Players, v22);
			end;
			local l__leaderstats__27 = v22:FindFirstChild("leaderstats");
			if l__leaderstats__27 then
				local v28, v29, v30 = pairs(l__leaderstats__27:GetChildren());
				while true do
					local v31, v32 = v28(v29, v30);
					if not v31 then
						break;
					end;
					if v24.Stats[v32.Name] and tonumber(v24.Stats[v32.Name]) and v32:IsA("IntValue") and tonumber(v32.Value) then
						v24.Stats[v32.Name] = v24.Stats[v32.Name] + tonumber(v32.Value);
					elseif not v24.Stats[v32.Name] and v32:IsA("IntValue") then
						table.insert(v24.Stats, v32.Value);
						v24.Stats[v32.Name] = v32.Value;
					else
						v24.Stats[v32.Name] = "";
					end;
					table.insert(v24.StatNames, v32.Name);
					if not v15[v32.Name] then
						table.insert(v14, v32.Name);
						v15[v32.Name] = true;
					end;
				end;
			end;
			v12 = v12 + 1;
		end;
		if u8 then
			u8:Destroy();
		end;
		u8 = l__Entry__9:Clone();
		u8.Visible = true;
		u8.Position = UDim2.new(0, 0, 0, 0);
		local l__Nameb__33 = u8:FindFirstChild("Nameb");
		if l__Nameb__33 then
			l__Nameb__33.Text = l__LocalPlayer__1.Name;
		end;
		local l__ImageLabel__34 = u8:FindFirstChild("ImageLabel");
		if l__ImageLabel__34 then
			l__ImageLabel__34.Visible = false;
		end;
		local l__Stats__35 = u8:FindFirstChild("Stats");
		if l__Stats__35 then
			l__Stats__35.Visible = true;
			local l__Stat__36 = u8.Stat;
			for v37, v38 in pairs(v14) do
				local v39 = l__Stat__36:Clone();
				v39.Visible = true;
				v39.Parent = l__Stats__35;
				v39.Text = v38;
				v39.Position = UDim2.new(0, (v37 - 1) * 70, 0, 0);
			end;
		end;
		u8.Parent = l__Drag__3;
		if #v11.Neutral.Players == 0 then
			v11.Neutral = nil;
		end;
		local v40, v41, v42 = pairs(v11);
		while true do
			local v43, v44 = v40(v41, v42);
			if not v43 then
				break;
			end;
			if #v11 > 1 then
				local v45 = l__Entry__9:Clone();
				v45.Visible = true;
				v45.Position = UDim2.new(0, 0, 0, v13 * 25);
				v45.Nameb.Text = v43;
				v45.BackgroundTransparency = 0.5;
				v45.BackgroundColor3 = v44.Color.Color;
				v45.ImageLabel.Visible = false;
				v45.Parent = l__List__5;
				if string.len(v43) > 15 then
					v45.Nameb.TextScaled = true;
				end;
				if #v44.StatNames > 0 then
					v45.Stats.Visible = true;
					v45.Stats.Size = UDim2.new(0, 70 * (#v44.Stats - 1), 1, 0);
					local l__Stat__46 = v45.Stat;
					for v47, v48 in pairs(v44.StatNames) do
						local v49 = l__Stat__46:Clone();
						v49.Parent = v45.Stats;
						v49.Visible = true;
						local v50 = v44.Stats[v48];
						if v50 and type(v50) == "number" then
							v49.Text = v50;
						else
							v49.Text = "";
						end;
						v49.Position = UDim2.new(0, (#v45.Stats:GetChildren() - 1) * 70, 0, 0);
					end;
				else
					v45.Stats.Visible = false;
				end;
				v13 = v13 + 1;
			end;
			local v51, v52, v53 = pairs(v44.Players);
			while true do
				local v54, v55 = v51(v52, v53);
				if not v54 then
					break;
				end;
				local v56 = l__Entry__9:Clone();
				v56.Visible = true;
				v56.Position = UDim2.new(0, 0, 0, v13 * 25);
				local l__ImageLabel__57 = v56:FindFirstChild("ImageLabel");
				local l__Stats__58 = v56:FindFirstChild("Stats");
				local l__Nameb__59 = v56:FindFirstChild("Nameb");
				local l__Stat__60 = v56:FindFirstChild("Stat");
				if l__Nameb__59 then
					l__Nameb__59.Text = v55.Name;
				end;
				v56.Parent = l__List__5;
				if string.len(v55.Name) > 15 then
					l__Nameb__59.TextScaled = true;
				end;
				local v61 = u10[tostring(v55.UserId)];
				if l__ImageLabel__57 then
					if v61 then
						l__ImageLabel__57.Image = "http://www.roblox.com/asset/?id=" .. v61;
						l__ImageLabel__57.Visible = true;
					elseif v55.UserId == game.CreatorId then
						l__ImageLabel__57.Image = "rbxasset://textures/ui/icon_placeowner.png";
						l__ImageLabel__57.Visible = true;
					elseif v55:IsInGroup(1200769) then
						l__ImageLabel__57.Image = "http://www.roblox.com/asset/?id=99727663";
						l__ImageLabel__57.Visible = true;
					elseif l__LocalPlayer__1:IsFriendsWith(v55.UserId) and v55 ~= l__LocalPlayer__1 then
						l__ImageLabel__57.Image = "http://www.roblox.com/asset/?id=99749771";
						l__ImageLabel__57.Visible = true;
					elseif v55.MembershipType == Enum.MembershipType.BuildersClub then
						l__ImageLabel__57.Image = "rbxasset://textures/ui/TinyBcIcon.png";
						l__ImageLabel__57.Visible = true;
					elseif v55.MembershipType == Enum.MembershipType.TurboBuildersClub then
						l__ImageLabel__57.Image = "rbxasset://textures/ui/TinyTbcIcon.png";
						l__ImageLabel__57.Visible = true;
					elseif v55.MembershipType == Enum.MembershipType.OutrageousBuildersClub then
						l__ImageLabel__57.Image = "rbxasset://textures/ui/TinyObcIcon.png";
						l__ImageLabel__57.Visible = true;
					else
						l__ImageLabel__57.Visible = false;
					end;
				end;
				local l__leaderstats__62 = v55:FindFirstChild("leaderstats");
				if l__leaderstats__62 and l__Stats__58 and l__Stat__60 then
					l__Stats__58.Visible = true;
					for v63, v64 in pairs((l__leaderstats__62:GetChildren())) do
						local v65 = l__Stat__60:Clone();
						v65.Visible = true;
						v65.Parent = l__Stats__58;
						v65.Text = v64.Value;
						v65.Position = UDim2.new(0, (#l__Stats__58:GetChildren() - 1) * 70, 0, 0);
					end;
				elseif l__Stats__58 then
					l__Stats__58.Visible = false;
				end;
				v13 = v13 + 1;
			end;
		end;
		if not u2 then
			local v66 = v13;
			if v66 > 10 then
				v66 = 10;
			end;
			local v67 = v66 * 25 + 30;
			u11 = v67;
			u12 = v67;
			l__Frame__4.Size = UDim2.new(0, u3, 0, v67);
		end;
		l__List__5.CanvasSize = UDim2.new(0, 0, 0, v13 * 20);
	end;
	l__Drag__3.Position = UDim2.new(1, -u3, 0, 0);
	v8();
	local function u13()
		l__Frame__4.BackgroundTransparency = 0;
		l__List__5.BackgroundTransparency = 0;
		l__FakeDragger__6.Visible = true;
	end;
	l__Frame__4.MouseEnter:Connect(function()
		u13();
	end);
	l__Frame__4.MouseLeave:Connect(function()
		v8();
	end);
	service.UserInputService.InputBegan:Connect(function(p2)
		if not service.UserInputService:GetFocusedTextBox() and p2.UserInputType == Enum.UserInputType.Keyboard and p2.KeyCode == Enum.KeyCode.Tab then
			if l__Drag__3.Visible then
				l__Drag__3.Visible = false;
				return;
			end;
			l__Drag__3.Visible = true;
		end;
	end);
	local u14 = false;
	local u15 = nil;
	local u16 = l__Drag__3.Position.X.Offset;
	local l__Dragger__17 = l__Parent__2.Drag.Frame.Dragger;
	l__mouse__5.Move:Connect(function(p3, p4)
		if u14 then
			u15 = u16 + l__Dragger__17.Position.X.Offset;
			u3 = u4 - l__Dragger__17.Position.X.Offset;
			u11 = u12 + (l__Dragger__17.Position.Y.Offset + 20);
			if u3 < 100 then
				u3 = 100;
			end;
			if u11 < 50 then
				u11 = 50;
			end;
			l__Frame__4.Size = UDim2.new(1, 0, 0, u11);
			l__Drag__3.Size = UDim2.new(0, u3, 0, 30);
			if u3 > 100 then
				l__Drag__3.Position = UDim2.new(l__Drag__3.Position.X.Scale, u15, l__Drag__3.Position.Y.Scale, l__Drag__3.Position.Y.Offset);
			end;
		end;
	end);
	l__Dragger__17.DragBegin:Connect(function(p5)
		u16 = l__Drag__3.Position.X.Offset;
		u14 = true;
		u2 = true;
	end);
	l__Dragger__17.DragStopped:Connect(function(p6, p7)
		u14 = false;
		u3 = l__Drag__3.AbsoluteSize.X;
		u11 = l__Frame__4.AbsoluteSize.Y;
		u15 = nil;
		u4 = u3;
		u12 = u11;
		u16 = l__Drag__3.Position.X.Offset;
		l__Dragger__17.Position = UDim2.new(0, 0, 1, -20);
	end);
	while wait(0.5) do
		v10();
	end;
end;


Prompt:
--[[
	Implementation
]]

Response:
local function isAlive()
	return maid.humanoid.Health > 0 and maid.humanoid:GetState() ~= Enum.HumanoidStateType.Dead
end

local function destroy()
	maid:destroy()
end

local function patrol()
	while isAlive() do
		if not attacking then
			local position = getRandomPointInCircle(startPosition, PATROL_RADIUS)
			maid.humanoid.WalkSpeed = PATROL_WALKSPEED
			maid.humanoid:MoveTo(position)
		end

		wait(random:NextInteger(MIN_REPOSITION_TIME, MAX_REPOSITION_TIME))
	end
end

local function isInstaceAttackable(targetInstance)
	local isAttackable = false

	local targetHumanoid = targetInstance and targetInstance.Parent and targetInstance.Parent:FindFirstChild("Humanoid")
	if not targetHumanoid then
		return false
	end

	-- Determine if they are attackable, depening on the attack mode
	local isEnemy = false
	if ATTACK_MODE == 1 then
		-- Attack characters with the SoldierEnemy tag
		if
			CollectionService:HasTag(targetInstance.Parent, "SoldierEnemy") and
			not CollectionService:HasTag(targetInstance.Parent, "SoldierFriend") then
			isEnemy = true
		end
	elseif ATTACK_MODE == 2 then
		-- Attack all humanoids without the SoldierFriend tag
		if not CollectionService:HasTag(targetInstance.Parent, "SoldierFriend") then
			isEnemy = true
		end
	elseif ATTACK_MODE == 3 then
		-- Attack all humanoids
		isEnemy = true
	end

	if isEnemy then
		local distance = (maid.humanoidRootPart.Position - targetInstance.Position).Magnitude

		if distance <= ATTACK_RADIUS then
			local ray = Ray.new(
				maid.humanoidRootPart.Position,
				(targetInstance.Parent.HumanoidRootPart.Position - maid.humanoidRootPart.Position).Unit * distance
			)

			local part = Workspace:FindPartOnRayWithIgnoreList(ray, {
				targetInstance.Parent, maid.instance,
			}, false, true)

			if
				targetInstance ~= maid.instance and
				targetInstance:IsDescendantOf(Workspace) and
				targetHumanoid.Health > 0 and
				targetHumanoid:GetState() ~= Enum.HumanoidStateType.Dead and
				not part
			then
				isAttackable = true
			end
		end
	end

	return isAttackable
end

local function fireGun()
	-- Do damage to the target
	local targetHunanoid = target.Parent:FindFirstChild("Humanoid")
	targetHunanoid:TakeDamage(ATTACK_DAMAGE)

	-- Play the firing animation
	maid.attackAnimation:Play()

	-- Play the firing sound effect
	maid.gunFireSound:Play()

	-- Muzzle flash
	local firingPositionAttachment = maid.instance.Weapon.Handle.FiringPositionAttachment
	firingPositionAttachment.FireEffect:Emit(10)
	firingPositionAttachment.PointLight.Enabled = true

	wait(0)

	firingPositionAttachment.PointLight.Enabled = false
end

local function findTargets()
	-- Do a new search region if we are not already searching through an existing search region
	if not searchingForTargets and tick() - timeSearchEnded >= SEARCH_DELAY then
		searchingForTargets = true

		-- Create a new region
		local centerPosition = maid.humanoidRootPart.Position
		local topCornerPosition = centerPosition + Vector3.new(ATTACK_RADIUS, ATTACK_RADIUS, ATTACK_RADIUS)
		local bottomCornerPosition = centerPosition + Vector3.new(-ATTACK_RADIUS, -ATTACK_RADIUS, -ATTACK_RADIUS)

		searchRegion = Region3.new(bottomCornerPosition, topCornerPosition)
		searchParts = Workspace:FindPartsInRegion3(searchRegion, maid.instance, math.huge)

		newTarget = nil
		newTargetDistance = nil

		-- Reset to defaults
		searchIndex = 1
	end

	if searchingForTargets then
		-- Search through our list of parts and find attackable humanoids
		local checkedParts = 0
		while searchingForTargets and searchIndex <= #searchParts and checkedParts < MAX_PARTS_PER_HEARTBEAT do
			local currentPart = searchParts[searchIndex]
			if currentPart and isInstaceAttackable(currentPart) then
				local character = currentPart.Parent
				local distance = (character.HumanoidRootPart.Position - maid.humanoidRootPart.Position).magnitude

				-- Determine if the charater is the closest
				if not newTargetDistance or distance < newTargetDistance then
					newTarget = character.HumanoidRootPart
					newTargetDistance = distance
				end
			end

			searchIndex = searchIndex + 1

			checkedParts = checkedParts + 1
		end

		if searchIndex >= #searchParts then
			target = newTarget
			searchingForTargets = false
			timeSearchEnded = tick()
		end
	end
end

local function attack()
	attacking = true

	local originalWalkSpeed = maid.humanoid.WalkSpeed
	maid.humanoid.WalkSpeed = 18

	maid.attackIdleAnimation:Play()

	local shotsFired = 0
	while attacking and isInstaceAttackable(target) and isAlive() do
		fireGun()

		shotsFired = (shotsFired + 1) % CLIP_CAPACITY

		if shotsFired == CLIP_CAPACITY - 1 then
			wait(RELOAD_DELAY)
		else
			wait()
		end
	end

	maid.humanoid.WalkSpeed = originalWalkSpeed

	maid.attackIdleAnimation:Stop()

	attacking = false
end


Prompt:
--[[
o2.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local Sangrando = Human.Parent.Saude.Stances.Sangrando
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Dor = Human.Parent.Saude.Variaveis.Dor
	local Caido = Human.Parent.Saude.Stances.Caido
	local Ferido = Human.Parent.Saude.Stances.Ferido

local Bandagens = Human.Parent.Saude.Kit.o2

if Human.Parent.Saude.Stances.o2.Value == false then
	if enabled.Value == false and Sangrando.Value == false and Bandagens.Value > 0 then
		enabled.Value = true

		wait(.3)

		Human.Parent.Saude.Stances.o2.Value = true
		Bandagens.Value = Bandagens.Value - 1
		Human.Health = Human.Health + 50

		wait(2)
		enabled.Value = false

	end
else
	if enabled.Value == false then
		enabled.Value = true

		wait(.3)

		Human.Parent.Saude.Stances.o2.Value = false
		Bandagens.Value = Bandagens.Value + 1

		wait(2)
		enabled.Value = false
	end
end
end)
]]--
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------

Response:
Compress_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local isdead = Human.Parent.Saude.Stances.rodeath

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local Sangrando = PlHuman.Parent.Saude.Stances.Sangrando
		local bbleeding = PlHuman.Parent.Saude.Stances.bbleeding
		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido
		local cpr = PlHuman.Parent.Saude.Stances.cpr
		local isdead = PlHuman.Parent.Saude.Stances.rodeath

		if enabled.Value == false then

		if isdead.Value == true and (Sangrando.Value == false or Human.Parent.Saude.Stances.Tourniquet.Value == true) then
		enabled.Value = true

		PlHuman.Health = PlHuman.Health + 5

		wait(0.5)

				enabled.Value = false

			end
			end

	end
end)

Bandage_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.Bandagem

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local Sangrando = PlHuman.Parent.Saude.Stances.Sangrando
		local bbleeding = PlHuman.Parent.Saude.Stances.bbleeding
		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido

		if enabled.Value == false then

		if Item.Value >= 1 and Sangrando.Value == true then
		enabled.Value = true

		wait(.3)

		local number = math.random(1, 2)

		if number == 1 then
			Sangrando.Value = false
		end

		Item.Value = Item.Value - 1

		wait(2)
		enabled.Value = false
		end

		end
	end
end)

scalpel_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.scalpel

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local Sangrando = PlHuman.Parent.Saude.Stances.Sangrando
		local cutopen = PlHuman.Parent.Saude.Stances.cutopen
		local bbleeding = PlHuman.Parent.Saude.Stances.bbleeding
		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido
		local o2 = PlHuman.Parent.Saude.Stances.o2
		local caido = PlHuman.Parent.Saude.Stances.Caido

		if enabled.Value == false and cutopen.Value == false and caido.Value == true and o2.Value == true then

		if Item.Value >= 1 then
		enabled.Value = true

		wait(.3)

		cutopen.Value = true

		wait(2)

		enabled.Value = false
		end

		end
	end
end)

suction_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.suction

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local Sangrando = PlHuman.Parent.Saude.Stances.Sangrando
		local npa = PlHuman.Parent.Saude.Stances.npa
		local etube = PlHuman.Parent.Saude.Stances.etube
		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido

	if PlHuman.Parent.Saude.Stances.cutopen.Value == true and PlHuman.Parent.Saude.Stances.o2.Value == true and PlHuman.Parent.Saude.Stances.Caido.Value == true then

		if enabled.Value == false then
			if Item.Value > 0 then
			--if Item.Value > 0 then

					enabled.Value = true

		wait(.1)

		PlHuman.Parent.Saude.Stances.suction.Value = true
		wait(3.5)

		PlHuman.Parent.Saude.Stances.suction.Value = false

		wait(0.1)
		enabled.Value = false
		end
		end
		end
		end

end)

clamp_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.clamp

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local Sangrando = PlHuman.Parent.Saude.Stances.Sangrando
		local npa = PlHuman.Parent.Saude.Stances.npa
		local etube = PlHuman.Parent.Saude.Stances.etube
		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido

	if PlHuman.Parent.Saude.Stances.cutopen.Value == true and PlHuman.Parent.Saude.Stances.o2.Value == true and PlHuman.Parent.Saude.Stances.suction.Value == true and PlHuman.Parent.Saude.Stances.Caido.Value == true then

		if enabled.Value == false then
			if Item.Value > 0 then
			--if Item.Value > 0 then

					enabled.Value = true

		wait(.1)

		PlHuman.Parent.Saude.Stances.clamped.Value = true
		wait(5.5)

		PlHuman.Parent.Saude.Stances.clamped.Value = false

		wait(0.1)
		enabled.Value = false
		end
		end
		end
		end

end)

catheter_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.catheter

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local Sangrando = PlHuman.Parent.Saude.Stances.Sangrando
		local bbleeding = PlHuman.Parent.Saude.Stances.bbleeding
		local balloonbleed = PlHuman.Parent.Saude.Stances.balloonbleed
		local balloon = PlHuman.Parent.Saude.Stances.balloon
		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido
		local cutopen = PlHuman.Parent.Saude.Stances.cutopen
		local suction = PlHuman.Parent.Saude.Stances.suction

	if PlHuman.Parent.Saude.Stances.catheter.Value == false and PlHuman.Parent.Saude.Stances.o2.Value == true and cutopen.Value == true and suction.Value == true and PlHuman.Parent.Saude.Stances.Caido.Value == true then

		if enabled.Value == false then
		if Item.Value > 0 and (Sangrando.Value == true or bbleeding.Value == true) then
		enabled.Value = true

		wait(.3)

		PlHuman.Parent.Saude.Stances.catheter.Value = true

		Item.Value = Item.Value - 1

		wait(2)
		enabled.Value = false
		end
		end
	else
		if enabled.Value == false then
		if PlHuman.Parent.Saude.Stances.balloon.Value == false then
		enabled.Value = true

		wait(.3)

		PlHuman.Parent.Saude.Stances.catheter.Value = false

		Item.Value = Item.Value + 1

		wait(2)
		enabled.Value = false
		end
		end
	end
	end
end)

balloon_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.catheter

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local Sangrando = PlHuman.Parent.Saude.Stances.Sangrando
		local bbleeding = PlHuman.Parent.Saude.Stances.bbleeding
		local balloonbleed = PlHuman.Parent.Saude.Stances.balloonbleed
		local repaired = PlHuman.Parent.Saude.Stances.repaired
		local catheter = PlHuman.Parent.Saude.Stances.catheter
		local o2l = PlHuman.Parent.Saude.Stances.o2
		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido

	if PlHuman.Parent.Saude.Stances.balloon.Value == false then

		if enabled.Value == false then
		if Item.Value > 0 and (Sangrando.Value == true or bbleeding.Value == true) and o2l.Value == true and catheter.Value == true and PlHuman.Parent.Saude.Stances.Caido.Value == true then
		enabled.Value = true

		wait(.3)

		PlHuman.Parent.Saude.Stances.balloon.Value = true
		Sangrando.Value = false
		bbleeding.Value = false

		wait(2)
		enabled.Value = false
		end
		end
	else
		if enabled.Value == false then
		if PlHuman.Parent.Saude.Stances.balloon.Value == true and repaired.Value == true then
		enabled.Value = true

		wait(.3)

		PlHuman.Parent.Saude.Stances.balloon.Value = false

		wait(2)
		enabled.Value = false
		end
		end
	end
	end
end)

prolene_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.prolene

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local Sangrando = PlHuman.Parent.Saude.Stances.Sangrando
		local bbleeding = PlHuman.Parent.Saude.Stances.bbleeding
		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido
		local o2l = PlHuman.Parent.Saude.Stances.o2
		local balloonbleed = PlHuman.Parent.Saude.Stances.balloonbleed
		local repaired = PlHuman.Parent.Saude.Stances.repaired
		local balloon = PlHuman.Parent.Saude.Stances.balloon

		if enabled.Value == false then

		if Item.Value > 0 and o2l.Value == true and balloon.Value == true and PlHuman.Parent.Saude.Stances.Caido.Value == true then
		enabled.Value = true

		wait(2)

			Sangrando.Value = false
			bbleeding.Value = false
			balloonbleed.Value = false
			repaired.Value = true
			Item.Value = Item.Value - 1

		wait(2)

				enabled.Value = false

		end

		end
	end
end)

prolene5_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.prolene5

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid
		local Sangrando = PlHuman.Parent.Saude.Stances.Sangrando
		local bbleeding = PlHuman.Parent.Saude.Stances.bbleeding
		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido
		local o2l = PlHuman.Parent.Saude.Stances.o2
		local balloonbleed = PlHuman.Parent.Saude.Stances.balloonbleed
		local repaired = PlHuman.Parent.Saude.Stances.repaired
		local balloon = PlHuman.Parent.Saude.Stances.balloon
		local clamped = PlHuman.Parent.Saude.Stances.clamped
		local surg2 = PlHuman.Parent.Saude.Stances.surg2

		if enabled.Value == false then

		if Item.Value > 0 and o2l.Value == true and clamped.Value == true and PlHuman.Parent.Saude.Stances.Caido.Value == true then

		enabled.Value = true

		wait(2)

			surg2.Value = false
			repaired.Value = true
			Item.Value = Item.Value - 1

		wait(2)

				enabled.Value = false

		end

		end
	end
end)

nylon_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.nylon

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local Sangrando = PlHuman.Parent.Saude.Stances.Sangrando
		local bbleeding = PlHuman.Parent.Saude.Stances.bbleeding
		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido
		local o2l = PlHuman.Parent.Saude.Stances.o2
		local balloonbleed = PlHuman.Parent.Saude.Stances.balloonbleed
		local repaired = PlHuman.Parent.Saude.Stances.repaired
		local balloon = PlHuman.Parent.Saude.Stances.balloon
		local catheter = PlHuman.Parent.Saude.Stances.catheter
		local cutopen = PlHuman.Parent.Saude.Stances.cutopen

		if enabled.Value == false then

		if Item.Value >= 1 and o2l.Value == true and repaired.Value == true and catheter.Value == false and cutopen.Value == true and PlHuman.Parent.Saude.Stances.Caido.Value == true then
		enabled.Value = true

		wait(2)

			repaired.Value = false
			cutopen.Value = false

		wait(2)
				Item.Value = Item.Value - 1
				enabled.Value = false

		end

		end
	end
end)

defib_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.defib

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local Sangrando = PlHuman.Parent.Saude.Stances.Sangrando
		local bbleeding = PlHuman.Parent.Saude.Stances.bbleeding
		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido
		local PlCaido = PlHuman.Parent.Saude.Stances.Caido
		local o2p = PlHuman.Parent.Saude.Stances.o2
		local isdead = PlHuman.Parent.Saude.Stances.rodeath
		local cpr = PlHuman.Parent.Saude.Stances.cpr
		local life = PlHuman.Parent.Saude.Stances.life

		if enabled.Value == false then

		if Item.Value >= 1 and o2p.Value == true and isdead.Value == true then
		enabled.Value = true

		wait(1)

			isdead.Value = false

			life.Value = true

			PlHuman.Health = PlHuman.Health + 100

		wait(1)
		enabled.Value = false

		end
	end
	end
end)

Splint_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.Splint

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local Sangrando = PlHuman.Parent.Saude.Stances.Sangrando
		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido

		if enabled.Value == false then

		if Item.Value >= 1 and Ferido.Value == true  then
		enabled.Value = true

		wait(.3)

		Ferido.Value = false

		Item.Value = Item.Value - 1

		wait(2)
		enabled.Value = false
		end

		end
	end
end)

Tourniquet_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.Tourniquet

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local Sangrando = PlHuman.Parent.Saude.Stances.Sangrando
		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido

	if PlHuman.Parent.Saude.Stances.Tourniquet.Value == false then

		if enabled.Value == false then
		if Item.Value > 0 then
		enabled.Value = true

		wait(.3)

		PlHuman.Parent.Saude.Stances.Tourniquet.Value = true

		Item.Value = Item.Value - 1

		wait(2)
		enabled.Value = false
		end
		end
	else
		if enabled.Value == false then
		if PlHuman.Parent.Saude.Stances.Tourniquet.Value == true then
		enabled.Value = true

		wait(.3)

		PlHuman.Parent.Saude.Stances.Tourniquet.Value = false

		Item.Value = Item.Value + 1

		wait(2)
		enabled.Value = false
		end
		end
	end
	end
end)

skit_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.skit

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local Sangrando = PlHuman.Parent.Saude.Stances.Sangrando
		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido

	if PlHuman.Parent.Saude.Stances.skit.Value == false then

		if enabled.Value == false then
		if Item.Value > 0 then
		enabled.Value = true

		wait(.3)

		PlHuman.Parent.Saude.Stances.skit.Value = true

		Item.Value = Item.Value - 1

		wait(2)
		enabled.Value = false
		end
		end
	else
		if enabled.Value == false then
		if PlHuman.Parent.Saude.Stances.skit.Value == true then
		enabled.Value = true

		wait(.3)

		PlHuman.Parent.Saude.Stances.skit.Value = false

		wait(2)
		enabled.Value = false
		end
		end
	end
	end
end)

npa_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.npa

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local faido = PlHuman.Parent.Saude.Stances.Caido
		local o2p = PlHuman.Parent.Saude.Stances.o2
		local nrb = PlHuman.Parent.Saude.Stances.nrb

		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido

	if PlHuman.Parent.Saude.Stances.npa.Value == false then

		if enabled.Value == false then
		if Item.Value > 0 and faido.Value == false then
		enabled.Value = true

		wait(.3)

		PlHuman.Parent.Saude.Stances.npa.Value = true

		Item.Value = Item.Value - 1

		wait(2)
		enabled.Value = false
		end
		end
	else
		if enabled.Value == false then
		if PlHuman.Parent.Saude.Stances.npa.Value == true and nrb.Value == false then
		enabled.Value = true

		wait(.3)

		PlHuman.Parent.Saude.Stances.npa.Value = false

		Item.Value = Item.Value + 1

		wait(2)
		enabled.Value = false
		end
		end
	end
	end
end)

etube_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.etube

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local faido = PlHuman.Parent.Saude.Stances.Caido
		local o2p = PlHuman.Parent.Saude.Stances.o2

		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido

	if PlHuman.Parent.Saude.Stances.etube.Value == false then

		if enabled.Value == false then
		if Item.Value > 0 and faido.Value == true then
		enabled.Value = true

		wait(.3)

		PlHuman.Parent.Saude.Stances.etube.Value = true

		Item.Value = Item.Value - 1

		wait(2)
		enabled.Value = false
		end
		end
	else
		if enabled.Value == false then
		if PlHuman.Parent.Saude.Stances.etube.Value == true and o2p.Value == false then
		enabled.Value = true

		wait(.3)

		PlHuman.Parent.Saude.Stances.etube.Value = false

		Item.Value = Item.Value + 1

		wait(2)
		enabled.Value = false
		end
		end
	end
	end
end)

nrb_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.nrb

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local faido = PlHuman.Parent.Saude.Stances.Caido
		local o2p = PlHuman.Parent.Saude.Stances.o2

		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido

	if PlHuman.Parent.Saude.Stances.nrb.Value == false and PlHuman.Parent.Saude.Stances.npa.Value == true then

		if enabled.Value == false then
		if Item.Value > 0 then
		enabled.Value = true

		wait(.3)

		PlHuman.Parent.Saude.Stances.nrb.Value = true

		Item.Value = Item.Value - 1

		wait(2)
		enabled.Value = false
		end
		end
	else
		if enabled.Value == false then
		if PlHuman.Parent.Saude.Stances.nrb.Value == true and o2p.Value == false then
		enabled.Value = true

		wait(.3)

		PlHuman.Parent.Saude.Stances.nrb.Value = false

		Item.Value = Item.Value + 1

		wait(2)
		enabled.Value = false
		end
		end
	end
	end
end)

o2_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.o2

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local Sangrando = PlHuman.Parent.Saude.Stances.Sangrando
		local npa = PlHuman.Parent.Saude.Stances.npa
		local nrb = PlHuman.Parent.Saude.Stances.nrb
		local etube = PlHuman.Parent.Saude.Stances.etube
		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido

	if PlHuman.Parent.Saude.Stances.o2.Value == false then

		if enabled.Value == false then
			if Item.Value > 0 and (nrb.Value == true or etube.Value == true) then
			--if Item.Value > 0 then

					enabled.Value = true

		wait(.3)

		PlHuman.Parent.Saude.Stances.o2.Value = true

		Item.Value = Item.Value - 1

		wait(2)
		enabled.Value = false
		end
		end
	else
		if enabled.Value == false then
		if PlHuman.Parent.Saude.Stances.o2.Value == true then
		enabled.Value = true

		wait(.3)

		PlHuman.Parent.Saude.Stances.o2.Value = false

		Item.Value = Item.Value + 1

		wait(2)
		enabled.Value = false
		end
		end
	end
	end
end)

bvm_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.bvm

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local Sangrando = PlHuman.Parent.Saude.Stances.Sangrando
		local npa = PlHuman.Parent.Saude.Stances.npa
		local etube = PlHuman.Parent.Saude.Stances.etube
		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido

	if PlHuman.Parent.Saude.Stances.o2.Value == false then

		if enabled.Value == false then
			if Item.Value > 0 and (npa.Value == true or etube.Value == true) then
			--if Item.Value > 0 then

					enabled.Value = true

		wait(.2)

		PlHuman.Parent.Saude.Stances.o2.Value = true
		wait(4.5)

		PlHuman.Parent.Saude.Stances.o2.Value = false

		wait(0.2)
		enabled.Value = false
		end
		end
		end
		end

end)

Epinephrine_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.Epinefrina
	local bbleeding = Human.Parent.Saude.Stances.bbleeding

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local Sangrando = PlHuman.Parent.Saude.Stances.Sangrando
		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido
		local PlCaido = PlHuman.Parent.Saude.Stances.Caido
		local isdead = PlHuman.Parent.Saude.Stances.rodeath
		local skit = PlHuman.Parent.Saude.Stances.skit

		if enabled.Value == false then
		--if enabled.Value == false and bbleeding.Value == false then
		if Item.Value >= 1 and PlCaido.Value == true and skit.Value == true then
		enabled.Value = true

		wait(.3)

		if Dor.Value > 0 then
		Dor.Value = Dor.Value + math.random(10,20)
		end

		if Sangrando.Value == true then
		MLs.Value = MLs.Value + math.random(10,35)
		end

		isdead.Value = false

		PlCaido.Value = false

		PlHuman.PlatformStand = false
		PlHuman.AutoRotate = true

		Item.Value = Item.Value - 1

		wait(2)
		enabled.Value = false
		end

		end
	end
end)

anesthetic_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.anesthetic
	local bbleeding = Human.Parent.Saude.Stances.bbleeding

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local Sangrando = PlHuman.Parent.Saude.Stances.Sangrando
		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido
		local PlCaido = PlHuman.Parent.Saude.Stances.Caido
		local skit = PlHuman.Parent.Saude.Stances.skit

		if enabled.Value == false then
		--if enabled.Value == false and bbleeding.Value == false then
		if Item.Value >= 1 and PlCaido.Value == false and skit.Value == true then
		enabled.Value = true

		wait(.3)

		PlCaido.Value = true
		PlHuman.PlatformStand = true
		PlHuman.AutoRotate = false

		Item.Value = Item.Value - 1

		wait(2)
		enabled.Value = false
		end

		end
	end
end)

Morphine_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.Morfina

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local Sangrando = PlHuman.Parent.Saude.Stances.Sangrando
		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido
		local PlCaido = PlHuman.Parent.Saude.Stances.Caido
		local skit = PlHuman.Parent.Saude.Stances.skit

		if enabled.Value == false then

		if Item.Value >= 1 and Dor.Value >= 1 and skit.Value == true then
		enabled.Value = true

		wait(.3)

		Dor.Value = Dor.Value - math.random(100,150)

		Item.Value = Item.Value - 1

		wait(2)
		enabled.Value = false
		end

		end
	end
end)

BloodBag_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.SacoDeSangue

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local Sangrando = PlHuman.Parent.Saude.Stances.Sangrando
		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local blood = PlHuman.Parent.Saude.Variaveis.Sangue
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido
		local PlCaido = PlHuman.Parent.Saude.Stances.Caido
		local skit = PlHuman.Parent.Saude.Stances.skit

		if enabled.Value == false then

		if Item.Value >= 1 and skit.Value == true then
		enabled.Value = true

		wait(.3)

		blood.Value = blood.Value + 2000

		Item.Value = Item.Value - 1

		wait(2)
		enabled.Value = false
		end

		end
	end
end)

drawblood_Multi.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local enabled = Human.Parent.Saude.Variaveis.Doer
	local MLs = Human.Parent.Saude.Variaveis.MLs
	local Caido = Human.Parent.Saude.Stances.Caido
	local Item = Human.Parent.Saude.Kit.SacoDeSangue

	local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

	if Caido.Value == false and target.Value ~= "N/A" then

		local player2 = game.Players:FindFirstChild(target.Value)
		local PlHuman = player2.Character.Humanoid

		local Sangrando = PlHuman.Parent.Saude.Stances.Sangrando
		local MLs = PlHuman.Parent.Saude.Variaveis.MLs
		local Dor = PlHuman.Parent.Saude.Variaveis.Dor
		local blood = PlHuman.Parent.Saude.Variaveis.Sangue
		local Ferido = PlHuman.Parent.Saude.Stances.Ferido
		local PlCaido = PlHuman.Parent.Saude.Stances.Caido
		local skit = PlHuman.Parent.Saude.Stances.skit

		if enabled.Value == false then

		if Item.Value < 10 and skit.Value == true then
		enabled.Value = true

		wait(.3)

		blood.Value = blood.Value - 2000

		Item.Value = Item.Value + 1

		wait(2)
		enabled.Value = false
		end

		end
	end
end)


Prompt: --Body parts

Response:
rArm = char:findFirstChild("Right Arm")
lArm = char:findFirstChild("Left Arm")
rLeg = char:findFirstChild("Right Leg")
lLeg = char:findFirstChild("Left Leg")
tors = char:findFirstChild("Torso")
head = char:findFirstChild("Head")


Prompt: -- ROBLOX deviation START: chalk doesn't support chaining methods. Using nested calls instead

Response:
local FAIL_COLOR = function(...)
	return chalk.bold(chalk.red(...))
end
local SNAPSHOT_ADDED = function(...)
	return chalk.bold(chalk.green(...))
end
local SNAPSHOT_UPDATED = function(...)
	return chalk.bold(chalk.green(...))
end
local SNAPSHOT_OUTDATED = function(...)
	return chalk.bold(chalk.yellow(...))
end


Prompt: --TextStuff

Response:
local Text = script.Parent
local RebirthFormule = game:GetService("ReplicatedStorage").GameProperties.RebirthFormule
local MultiplierFormule = game:GetService("ReplicatedStorage").GameProperties.MultiplierFormule
local Formula = RebirthLevel.Value + 1

Text.Text = Formula

RebirthLevel.Changed:Connect(function()
	local FormulaUpdate = RebirthLevel.Value + 1
	Text.Text = FormulaUpdate
end)


Prompt:
--[=[
	Attaches an `andThen` handler to this Promise that calls the given callback with the predefined arguments. The resolved value is discarded.

	```lua
		promise:andThenCall(someFunction, "some", "arguments")
	```

	This is sugar for

	```lua
		promise:andThen(function()
		return someFunction("some", "arguments")
		end)
	```

	@param callback (...: any) -> any
	@param ...? any -- Additional arguments which will be passed to `callback`
	@return Promise
]=]

Response:
function Promise.prototype:andThenCall(callback, ...)
	assert(type(callback) == "function", string.format(ERROR_NON_FUNCTION, "Promise:andThenCall"))
	local length, values = pack(...)
	return self:_andThen(debug.traceback(nil, 2), function()
		return callback(unpack(values, 1, length))
	end)
end


Prompt: -- Let the server know our walkspeed has changed

Response:
humanoid:GetPropertyChangedSignal("WalkSpeed"):Connect(function()
	updateWalkspeedRemote:FireServer(humanoid.WalkSpeed)
end)


Prompt:
--[=[
	An enum value used to represent the Promise's status.
	@interface Status
	@tag enum
	@within Promise
	.Started "Started" -- The Promise is executing, and not settled yet.
	.Resolved "Resolved" -- The Promise finished successfully.
	.Rejected "Rejected" -- The Promise was rejected.
	.Cancelled "Cancelled" -- The Promise was cancelled before it finished.
]=]
--[=[
	@prop Status Status
	@within Promise
	@readonly
	@tag enums
	A table containing all members of the `Status` enum, e.g., `Promise.Status.Resolved`.
]=]
--[=[
	A Promise is an object that represents a value that will exist in the future, but doesn't right now.
	Promises allow you to then attach callbacks that can run once the value becomes available (known as *resolving*),
	or if an error has occurred (known as *rejecting*).

	@class Promise
	@__index prototype
]=]

Response:
local Promise = {
	Error = Error,
	Status = makeEnum("Promise.Status", {"Started", "Resolved", "Rejected", "Cancelled"}),
	_getTime = os.clock,
	_timeEvent = game:GetService("RunService").Heartbeat,
}
Promise.prototype = {}
Promise.__index = Promise.prototype

function Promise._new(traceback, callback, parent)
	if parent ~= nil and not Promise.is(parent) then
		error("Argument #2 to Promise.new must be a promise or nil", 2)
	end

	local self = {
		-- Used to locate where a promise was created
		_source = traceback,

		_status = Promise.Status.Started,

		-- A table containing a list of all results, whether success or failure.
		-- Only valid if _status is set to something besides Started
		_values = nil,

		-- Lua doesn't like sparse arrays very much, so we explicitly store the
		-- length of _values to handle middle nils.
		_valuesLength = -1,

		-- Tracks if this Promise has no error observers..
		_unhandledRejection = true,

		-- Queues representing functions we should invoke when we update!
		_queuedResolve = {},
		_queuedReject = {},
		_queuedFinally = {},

		-- The function to run when/if this promise is cancelled.
		_cancellationHook = nil,

		-- The "parent" of this promise in a promise chain. Required for
		-- cancellation propagation upstream.
		_parent = parent,

		-- Consumers are Promises that have chained onto this one.
		-- We track them for cancellation propagation downstream.
		_consumers = setmetatable({}, MODE_KEY_METATABLE),
	}

	if parent and parent._status == Promise.Status.Started then
		parent._consumers[self] = true
	end

	setmetatable(self, Promise)

	local function resolve(...)
		self:_resolve(...)
	end

	local function reject(...)
		self:_reject(...)
	end

	local function onCancel(cancellationHook)
		if cancellationHook then
			if self._status == Promise.Status.Cancelled then
				cancellationHook()
			else
				self._cancellationHook = cancellationHook
			end
		end

		return self._status == Promise.Status.Cancelled
	end

	coroutine.wrap(function()
		local ok, _, result = runExecutor(
			self._source,
			callback,
			resolve,
			reject,
			onCancel
		)

		if not ok then
			reject(result[1])
		end
	end)()

	return self
end


Prompt:
--///////////////// Internal-Use Methods
--//////////////////////////////////////
--DO NOT REMOVE THIS. Chat must be filtered or your game will face
--moderation.

Response:
function methods:InternalApplyRobloxFilter(speakerName, message, toSpeakerName)
	if (RunService:IsServer() and not RunService:IsStudio()) then
		local fromSpeaker = self:GetSpeaker(speakerName)
		local toSpeaker = toSpeakerName and self:GetSpeaker(toSpeakerName)

		if fromSpeaker == nil then
			return nil
		end

		local fromPlayerObj = fromSpeaker:GetPlayer()
		local toPlayerObj = toSpeaker and toSpeaker:GetPlayer()

		if fromPlayerObj == nil then
			return message
		end

		local filterStartTime = tick()
		local filterRetries = 0
		while true do
			local success, message = pcall(function()
				if toPlayerObj then
					return Chat:FilterStringAsync(message, fromPlayerObj, toPlayerObj)
				else
					return Chat:FilterStringForBroadcast(message, fromPlayerObj)
				end
			end)
			if success then
				return message
			else
				warn("Error filtering message:", message)
			end
			filterRetries = filterRetries + 1
			if filterRetries > MAX_FILTER_RETRIES or (tick() - filterStartTime) > MAX_FILTER_DURATION then
				self:InternalNotifyFilterIssue()
				return nil
			end
			local backoffInterval = FILTER_BACKOFF_INTERVALS[math.min(#FILTER_BACKOFF_INTERVALS, filterRetries)]
			-- backoffWait = backoffInterval +/- (0 -> backoffInterval)
			local backoffWait = backoffInterval + ((math.random()*2 - 1) * backoffInterval)
			wait(backoffWait)
		end
	else
		--// Simulate filtering latency.
		--// There is only latency the first time the message is filtered, all following calls will be instant.
		if not StudioMessageFilteredCache[message] then
			StudioMessageFilteredCache[message] = true
			wait(0.2)
		end
		return message
	end

	return nil
end

function methods:InternalDoMessageFilter(speakerName, messageObj, channel)
	local filtersIterator = self.FilterMessageFunctions:GetIterator()

	for funcId, func, priority in filtersIterator do
		local success, errorMessage = pcall(function()
			func(speakerName, messageObj, channel)
		end)

		if not success then
			warn(string.format("DoMessageFilter Function '%s' failed for reason: %s", funcId, errorMessage))
		end
	end
end

function methods:InternalDoProcessCommands(speakerName, message, channel)
	local commandsIterator = self.ProcessCommandsFunctions:GetIterator()

	for funcId, func, priority in commandsIterator do
		local success, returnValue = pcall(function()
			local ret = func(speakerName, message, channel)
			if type(ret) ~= "boolean" then
				error("Process command functions must return a bool")
			end
			return ret
		end)

		if not success then
			warn(string.format("DoProcessCommands Function '%s' failed for reason: %s", funcId, returnValue))
		elseif returnValue then
			return true
		end
	end

	return false
end

function methods:InternalGetUniqueMessageId()
	local id = self.MessageIdCounter
	self.MessageIdCounter = id + 1
	return id
end

function methods:InternalAddSpeakerWithPlayerObject(speakerName, playerObj, fireSpeakerAdded)
	if (self.Speakers[speakerName:lower()]) then
		error("Speaker \"" .. speakerName .. "\" already exists!")
	end

	local speaker = Speaker.new(self, speakerName)
	speaker:InternalAssignPlayerObject(playerObj)
	self.Speakers[speakerName:lower()] = speaker

	if fireSpeakerAdded then
		local success, err = pcall(function() self.eSpeakerAdded:Fire(speakerName) end)
		if not success and err then
			print("Error adding speaker: " ..err)
		end
	end

	return speaker
end

function methods:InternalFireSpeakerAdded(speakerName)
	local success, err = pcall(function() self.eSpeakerAdded:Fire(speakerName) end)
	if not success and err then
		print("Error firing speaker added: " ..err)
	end
end


Prompt:
--s.Pitch = 0.7
--[[for x = 1, 50 do
s.Pitch = s.Pitch + 0.20 1.900
s:play()
wait(0.001)
end]]
--[[Chopper level 5=1.2, Chopper level 4=1.04]]

Response:
s.Volume=0
while s.Pitch<1 do
s.Pitch=s.Pitch+0.009
s:Play()
if s.Pitch>1 then
	s.Pitch=1
end
wait(-9)
end

while true do
for x = 1, 500 do
s:play()
wait(-9)
end
end


Prompt:
--////////////////////////////// Methods
--//////////////////////////////////////

Response:
local function ShallowCopy(table)
	local copy = {}
	for i, v in pairs(table) do
		copy[i] = v
	end
	return copy
end

local methods = {}

local lazyEventNames =
{
    eDestroyed = true,
	eSaidMessage = true,
	eReceivedMessage = true,
	eReceivedUnfilteredMessage = true,
	eMessageDoneFiltering = true,
	eReceivedSystemMessage = true,
	eChannelJoined = true,
	eChannelLeft = true,
	eMuted = true,
	eUnmuted = true,
	eExtraDataUpdated = true,
	eMainChannelSet = true,
	eChannelNameColorUpdated = true,
}
local lazySignalNames =
{
	Destroyed = "eDestroyed",
	SaidMessage = "eSaidMessage",
	ReceivedMessage = "eReceivedMessage",
	ReceivedUnfilteredMessage = "eReceivedUnfilteredMessage",
    RecievedUnfilteredMessage = "eReceivedUnfilteredMessage", -- legacy mispelling
	MessageDoneFiltering = "eMessageDoneFiltering",
	ReceivedSystemMessage = "eReceivedSystemMessage",
	ChannelJoined = "eChannelJoined",
	ChannelLeft = "eChannelLeft",
	Muted = "eMuted",
	Unmuted = "eUnmuted",
	ExtraDataUpdated = "eExtraDataUpdated",
	MainChannelSet = "eMainChannelSet",
	ChannelNameColorUpdated = "eChannelNameColorUpdated"
}

methods.__index = function (self, k)
	local fromMethods = rawget(methods, k)
	if fromMethods then return fromMethods end

    if lazyEventNames[k] and not rawget(self, k) then
        rawset(self, k, Instance.new("BindableEvent"))
    end
    local lazySignalEventName = lazySignalNames[k]
    if lazySignalEventName and not rawget(self, k) then
        if not rawget(self, lazySignalEventName) then
            rawset(self, lazySignalEventName, Instance.new("BindableEvent"))
        end
        rawset(self, k, rawget(self, lazySignalEventName).Event)
    end
    return rawget(self, k)
end

function methods:LazyFire(eventName, ...)
	local createdEvent = rawget(self, eventName)
	if createdEvent then
		createdEvent:Fire(...)
	end
end

function methods:SayMessage(message, channelName, extraData)
	if (self.ChatService:InternalDoProcessCommands(self.Name, message, channelName)) then return end
	if (not channelName) then return end

	local channel = self.Channels[channelName:lower()]
	if (not channel) then
		error("Speaker is not in channel \"" .. channelName .. "\"")
	end

	local messageObj = channel:InternalPostMessage(self, message, extraData)
	if (messageObj) then
		local success, err = pcall(function() self:LazyFire("eSaidMessage", messageObj, channelName) end)
		if not success and err then
			print("Error saying message: " ..err)
		end
	end

	return messageObj
end

function methods:JoinChannel(channelName)
	if (self.Channels[channelName:lower()]) then
		warn("Speaker is already in channel \"" .. channelName .. "\"")
		return
	end

	local channel = self.ChatService:GetChannel(channelName)
	if (not channel) then
		error("Channel \"" .. channelName .. "\" does not exist!")
	end

	self.Channels[channelName:lower()] = channel
	channel:InternalAddSpeaker(self)
	local success, err = pcall(function()
		self.eChannelJoined:Fire(channel.Name, channel:GetWelcomeMessageForSpeaker(self))
	end)
	if not success and err then
		print("Error joining channel: " ..err)
	end
end

function methods:LeaveChannel(channelName)
	if (not self.Channels[channelName:lower()]) then
		warn("Speaker is not in channel \"" .. channelName .. "\"")
		return
	end

	local channel = self.Channels[channelName:lower()]

	self.Channels[channelName:lower()] = nil
	channel:InternalRemoveSpeaker(self)
	local success, err = pcall(function()
		self:LazyFire("eChannelLeft", channel.Name)
		if self.PlayerObj then
			self.EventFolder.OnChannelLeft:FireClient(self.PlayerObj, channel.Name)
		end
	end)
	if not success and err then
		print("Error leaving channel: " ..err)
	end
end

function methods:IsInChannel(channelName)
	return (self.Channels[channelName:lower()] ~= nil)
end

function methods:GetChannelList()
	local list = {}
	for i, channel in pairs(self.Channels) do
		table.insert(list, channel.Name)
	end
	return list
end

function methods:SendMessage(message, channelName, fromSpeaker, extraData)
	local channel = self.Channels[channelName:lower()]
	if (channel) then
		channel:SendMessageToSpeaker(message, self.Name, fromSpeaker, extraData)

	else
		warn(string.format("Speaker '%s' is not in channel '%s' and cannot receive a message in it.", self.Name, channelName))

	end
end

function methods:SendSystemMessage(message, channelName, extraData)
	local channel = self.Channels[channelName:lower()]
	if (channel) then
		channel:SendSystemMessageToSpeaker(message, self.Name, extraData)

	else
		warn(string.format("Speaker '%s' is not in channel '%s' and cannot receive a system message in it.", self.Name, channelName))

	end
end

function methods:GetPlayer()
	return self.PlayerObj
end

function methods:SetExtraData(key, value)
	self.ExtraData[key] = value
	self:LazyFire("eExtraDataUpdated", key, value)
end

function methods:GetExtraData(key)
	return self.ExtraData[key]
end

function methods:SetMainChannel(channelName)
	local success, err = pcall(function()
		self:LazyFire("eMainChannelSet", channelName)
		if self.PlayerObj then
			self.EventFolder.OnMainChannelSet:FireClient(self.PlayerObj, channelName)
		end
	end)
	if not success and err then
		print("Error setting main channel: " ..err)
	end
end


Prompt: -- functions

Response:
function stopAllAnimations()
	local oldAnim = currentAnim

	-- return to idle if finishing an emote
	if (emoteNames[oldAnim] ~= nil and emoteNames[oldAnim] == false) then
		oldAnim = "idle"
	end

	if currentlyPlayingEmote then
		oldAnim = "idle"
		currentlyPlayingEmote = false
	end

	currentAnim = ""
	currentAnimInstance = nil
	if (currentAnimKeyframeHandler ~= nil) then
		currentAnimKeyframeHandler:disconnect()
	end

	if (currentAnimTrack ~= nil) then
		currentAnimTrack:Stop()
		currentAnimTrack:Destroy()
		currentAnimTrack = nil
	end

	-- clean up walk if there is one
	if (runAnimKeyframeHandler ~= nil) then
		runAnimKeyframeHandler:disconnect()
	end

	if (runAnimTrack ~= nil) then
		runAnimTrack:Stop()
		runAnimTrack:Destroy()
		runAnimTrack = nil
	end

	return oldAnim
end

function getHeightScale()
	if Humanoid then
		if not Humanoid.AutomaticScalingEnabled then
			return 1
		end

		local scale = Humanoid.HipHeight / HumanoidHipHeight
		if AnimationSpeedDampeningObject == nil then
			AnimationSpeedDampeningObject = script:FindFirstChild("ScaleDampeningPercent")
		end
		if AnimationSpeedDampeningObject ~= nil then
			scale = 1 + (Humanoid.HipHeight - HumanoidHipHeight) * AnimationSpeedDampeningObject.Value / HumanoidHipHeight
		end
		return scale
	end
	return 1
end

local function rootMotionCompensation(speed)
	local speedScaled = speed * 1.25
	local heightScale = getHeightScale()
	local runSpeed = speedScaled / heightScale
	return runSpeed
end

local smallButNotZero = 0.0001
local function setRunSpeed(speed)
	local normalizedWalkSpeed = 0.5 -- established empirically using current `913402848` walk animation
	local normalizedRunSpeed  = 1
	local runSpeed = rootMotionCompensation(speed)

	local walkAnimationWeight = smallButNotZero
	local runAnimationWeight = smallButNotZero
	local walkAnimationTimewarp = runSpeed/normalizedWalkSpeed
	local runAnimationTimerwarp = runSpeed/normalizedRunSpeed

	if runSpeed <= normalizedWalkSpeed then
		walkAnimationWeight = 1
	elseif runSpeed < normalizedRunSpeed then
		local fadeInRun = (runSpeed - normalizedWalkSpeed)/(normalizedRunSpeed - normalizedWalkSpeed)
		walkAnimationWeight = 1 - fadeInRun
		runAnimationWeight  = fadeInRun
		walkAnimationTimewarp = 1
		runAnimationTimerwarp = 1
	else
		runAnimationWeight = 1
	end
	currentAnimTrack:AdjustWeight(walkAnimationWeight)
	runAnimTrack:AdjustWeight(runAnimationWeight)
	currentAnimTrack:AdjustSpeed(walkAnimationTimewarp)
	runAnimTrack:AdjustSpeed(runAnimationTimerwarp)
end

function setAnimationSpeed(speed)
	if currentAnim == "walk" then
			setRunSpeed(speed)
	else
		if speed ~= currentAnimSpeed then
			currentAnimSpeed = speed
			currentAnimTrack:AdjustSpeed(currentAnimSpeed)
		end
	end
end

function keyFrameReachedFunc(frameName)
	if (frameName == "End") then
		if currentAnim == "walk" then
			if userNoUpdateOnLoop == true then
				if runAnimTrack.Looped ~= true then
					runAnimTrack.TimePosition = 0.0
				end
				if currentAnimTrack.Looped ~= true then
					currentAnimTrack.TimePosition = 0.0
				end
			else
				runAnimTrack.TimePosition = 0.0
				currentAnimTrack.TimePosition = 0.0
			end
		else
			local repeatAnim = currentAnim
			-- return to idle if finishing an emote
			if (emoteNames[repeatAnim] ~= nil and emoteNames[repeatAnim] == false) then
				repeatAnim = "idle"
			end

			if currentlyPlayingEmote then
				if currentAnimTrack.Looped then
					-- Allow the emote to loop
					return
				end

				repeatAnim = "idle"
				currentlyPlayingEmote = false
			end

			local animSpeed = currentAnimSpeed
			playAnimation(repeatAnim, 0.15, Humanoid)
			setAnimationSpeed(animSpeed)
		end
	end
end

function rollAnimation(animName)
	local roll = math.random(1, animTable[animName].totalWeight)
	local origRoll = roll
	local idx = 1
	while (roll > animTable[animName][idx].weight) do
		roll = roll - animTable[animName][idx].weight
		idx = idx + 1
	end
	return idx
end

local function switchToAnim(anim, animName, transitionTime, humanoid)
	-- switch animation
	if (anim ~= currentAnimInstance) then

		if (currentAnimTrack ~= nil) then
			currentAnimTrack:Stop(transitionTime)
			currentAnimTrack:Destroy()
		end

		if (runAnimTrack ~= nil) then
			runAnimTrack:Stop(transitionTime)
			runAnimTrack:Destroy()
			if userNoUpdateOnLoop == true then
				runAnimTrack = nil
			end
		end

		currentAnimSpeed = 1.0

		-- load it to the humanoid; get AnimationTrack
		currentAnimTrack = humanoid:LoadAnimation(anim)
		currentAnimTrack.Priority = Enum.AnimationPriority.Core

		-- play the animation
		currentAnimTrack:Play(transitionTime)
		currentAnim = animName
		currentAnimInstance = anim

		-- set up keyframe name triggers
		if (currentAnimKeyframeHandler ~= nil) then
			currentAnimKeyframeHandler:disconnect()
		end
		currentAnimKeyframeHandler = currentAnimTrack.KeyframeReached:connect(keyFrameReachedFunc)

		-- check to see if we need to blend a walk/run animation
		if animName == "walk" then
			local runAnimName = "run"
			local runIdx = rollAnimation(runAnimName)

			runAnimTrack = humanoid:LoadAnimation(animTable[runAnimName][runIdx].anim)
			runAnimTrack.Priority = Enum.AnimationPriority.Core
			runAnimTrack:Play(transitionTime)

			if (runAnimKeyframeHandler ~= nil) then
				runAnimKeyframeHandler:disconnect()
			end
			runAnimKeyframeHandler = runAnimTrack.KeyframeReached:connect(keyFrameReachedFunc)
		end
	end
end

function playAnimation(animName, transitionTime, humanoid)
	local idx = rollAnimation(animName)
	local anim = animTable[animName][idx].anim

	switchToAnim(anim, animName, transitionTime, humanoid)
	currentlyPlayingEmote = false
end

function playEmote(emoteAnim, transitionTime, humanoid)
	switchToAnim(emoteAnim, emoteAnim.Name, transitionTime, humanoid)
	currentlyPlayingEmote = true
end


Prompt: --// All global vars will be wiped/replaced except script

Response:
return function(data, env)
	if env then
		setfenv(1, env)
	end

	script.Parent.Parent:Destroy()
end


Prompt: --Aesthetics

Response:
Tune.SusVisible		= false			-- Spring Visible
Tune.WsBVisible		= false			-- Wishbone Visible
Tune.SusRadius		= .5			-- Suspension Coil Radius
Tune.SusThickness	= .2			-- Suspension Coil Thickness
Tune.SusColor		= "Bright red"	-- Suspension Color [BrickColor]
Tune.SusCoilCount	= 7				-- Suspension Coil Count
Tune.WsColor		= "Black"		-- Wishbone Color [BrickColor]
Tune.WsThickness	= .3			-- Wishbone Rod Thickness


Prompt:
--// All global vars will be wiped/replaced except script
--// All guis are autonamed client.Variables.CodeName..gui.Name
--// Be sure to update the console gui's code if you change stuff

Response:
return function(data, env)
	if env then
		setfenv(1, env)
	end

	local client, cPcall, Pcall, Routine, service, gTable =
		client, cPcall, Pcall, Routine, service, gTable

	local gui = script.Parent.Parent

	local localplayer = service.Player
	local mouse = localplayer:GetMouse()
	local playergui = service.PlayerGui

	local storedChats = client.Variables.StoredChats
	local desc = gui.Desc
	local nohide = data.KeepChat

	local function Expand(ent, point)
		ent.MouseLeave:Connect(function(x, y)
			point.Visible = false
		end)

		ent.MouseMoved:Connect(function(x, y)
			point.Text = ent.Desc.Value
			point.Size = UDim2.new(0, 10000, 0, 10000)
			local bounds = point.TextBounds.X
			local rows = math.floor(bounds / 500)
			rows = rows + 1
			if rows < 1 then
				rows = 1
			end
			local newx = 500
			if bounds < 500 then
				newx = bounds
			end
			point.Visible = true
			point.Size = UDim2.new(0, newx + 10, 0, rows * 20)
			point.Position = UDim2.new(0, x, 0, y - 40 - (rows * 20))
		end)
	end

	local function UpdateChat()
		if gui then
			local globalTab = gui.Drag.Frame.Frame.Global
			local teamTab = gui.Drag.Frame.Frame.Team
			local localTab = gui.Drag.Frame.Frame.Local
			local adminsTab = gui.Drag.Frame.Frame.Admins
			local crossTab = gui.Drag.Frame.Frame.Cross

			local entry = gui.Entry
			local tester = gui.BoundTest

			globalTab:ClearAllChildren()
			teamTab:ClearAllChildren()
			localTab:ClearAllChildren()
			adminsTab:ClearAllChildren()
			crossTab:ClearAllChildren()

			local globalNum = 0
			local teamNum = 0
			local localNum = 0
			local adminsNum = 0
			local crossNum = 0
			for i, v in pairs(storedChats) do
				local clone = entry:Clone()
				clone.Message.Text = service.MaxLen(v.Message, 100)
				clone.Desc.Value = v.Message
				Expand(clone, desc)
				if not string.match(v.Player, "%S") then
					clone.Nameb.Text = v.Player
				else
					clone.Nameb.Text = `[{v.Player}]: `
				end
				clone.Visible = true
				clone.Nameb.Font = "SourceSansBold"

				local color = v.Color or BrickColor.White()
				clone.Nameb.TextColor3 = color.Color

				tester.Text = `[{v.Player}]: `
				local naml = tester.TextBounds.X + 5
				if naml > 100 then
					naml = 100
				end

				tester.Text = v.Message
				local mesl = tester.TextBounds.X

				clone.Message.Position = UDim2.new(0, naml, 0, 0)
				clone.Message.Size = UDim2.new(1, -(naml + 10), 1, 0)
				clone.Nameb.Size = UDim2.new(0, naml, 0, 20)

				clone.Visible = false
				clone.Parent = globalTab

				local rows = math.floor((mesl + naml) / clone.AbsoluteSize.X)
				rows = rows + 1
				if rows < 1 then
					rows = 1
				end
				if rows > 3 then
					rows = 3
				end
				--rows = rows+1

				clone.Parent = nil
				clone.Visible = true

				clone.Size = UDim2.new(1, 0, 0, rows * 20)

				if v.Private then
					clone.Nameb.TextColor3 = Color3.new(0.58823529411765, 0.22352941176471, 0.69019607843137)
				end

				if v.Mode == "Global" then
					clone.Position = UDim2.new(0, 0, 0, globalNum * 20)
					globalNum = globalNum + 1
					if rows > 1 then
						globalNum = globalNum + rows - 1
					end
					clone.Parent = globalTab
				elseif v.Mode == "Team" then
					clone.Position = UDim2.new(0, 0, 0, teamNum * 20)
					teamNum = teamNum + 1
					if rows > 1 then
						teamNum = teamNum + rows - 1
					end
					clone.Parent = teamTab
				elseif v.Mode == "Local" then
					clone.Position = UDim2.new(0, 0, 0, localNum * 20)
					localNum = localNum + 1
					if rows > 1 then
						localNum = localNum + rows - 1
					end
					clone.Parent = localTab
				elseif v.Mode == "Admins" then
					clone.Position = UDim2.new(0, 0, 0, adminsNum * 20)
					adminsNum = adminsNum + 1
					if rows > 1 then
						adminsNum = adminsNum + rows - 1
					end
					clone.Parent = adminsTab
				elseif v.Mode == "Cross" then
					clone.Position = UDim2.new(0, 0, 0, crossNum * 20)
					crossNum = crossNum + 1
					if rows > 1 then
						crossNum = crossNum + rows - 1
					end
					clone.Parent = crossTab
				end
			end

			globalTab.CanvasSize = UDim2.new(0, 0, 0, ((globalNum) * 20))
			teamTab.CanvasSize = UDim2.new(0, 0, 0, ((teamNum) * 20))
			localTab.CanvasSize = UDim2.new(0, 0, 0, ((localNum) * 20))
			adminsTab.CanvasSize = UDim2.new(0, 0, 0, ((adminsNum) * 20))
			crossTab.CanvasSize = UDim2.new(0, 0, 0, ((crossNum) * 20))

			local glob = (((globalNum) * 20) - globalTab.AbsoluteWindowSize.Y)
			local tea = (((teamNum) * 20) - teamTab.AbsoluteWindowSize.Y)
			local loc = (((localNum) * 20) - localTab.AbsoluteWindowSize.Y)
			local adm = (((adminsNum) * 20) - adminsTab.AbsoluteWindowSize.Y)
			local cro = (((crossNum) * 20) - crossTab.AbsoluteWindowSize.Y)

			if glob < 0 then
				glob = 0
			end
			if tea < 0 then
				tea = 0
			end
			if loc < 0 then
				loc = 0
			end
			if adm < 0 then
				adm = 0
			end
			if cro < 0 then
				cro = 0
			end

			globalTab.CanvasPosition = Vector2.new(0, glob)
			teamTab.CanvasPosition = Vector2.new(0, tea)
			localTab.CanvasPosition = Vector2.new(0, loc)
			adminsTab.CanvasPosition = Vector2.new(0, adm)
			crossTab.CanvasPosition = Vector2.new(0, cro)
		end
	end

	if not storedChats then
		client.Variables.StoredChats = {}
		storedChats = client.Variables.StoredChats
	end

	gTable:Ready()

	local bubble = gui.Bubble
	local toggle = gui.Toggle
	local drag = gui.Drag
	local frame = gui.Drag.Frame
	local frame2 = gui.Drag.Frame.Frame
	local box = gui.Drag.Frame.Chat

	local globalTab = gui.Drag.Frame.Frame.Global
	local teamTab = gui.Drag.Frame.Frame.Team
	local localTab = gui.Drag.Frame.Frame.Local
	local adminsTab = gui.Drag.Frame.Frame.Admins
	local crossTab = gui.Drag.Frame.Frame.Cross

	local global = gui.Drag.Frame.Global
	local team = gui.Drag.Frame.Team
	local localb = gui.Drag.Frame.Local
	local admins = gui.Drag.Frame.Admins
	local cross = gui.Drag.Frame.Cross

	if not nohide then
		client.Variables.CustomChat = true
		client.Variables.ChatEnabled = false
		service.StarterGui:SetCoreGuiEnabled('Chat', false)
	else
		drag.Position = UDim2.new(0, 10, 1, -180)
	end

	local dragger = gui.Drag.Frame.Dragger
	local fakeDrag = gui.Drag.Frame.FakeDragger

	local boxFocused = false
	local mode = "Global"

	local lastChat = 0
	local lastClick = 0
	local isAdmin = client.Remote.Get("CheckAdmin")

	if not isAdmin then
		admins.BackgroundTransparency = 0.8
		admins.TextTransparency = 0.8
		cross.BackgroundTransparency = 0.8
		cross.TextTransparency = 0.8
	end

	if client.UI.Get("HelpButton") then
		toggle.Position = UDim2.new(1, -90, 1, -45)
	end

	local function openGlobal()
		globalTab.Visible = true
		teamTab.Visible = false
		localTab.Visible = false
		adminsTab.Visible = false
		crossTab.Visible = false

		global.Text = "Global"
		mode = "Global"

		global.BackgroundTransparency = 0
		team.BackgroundTransparency = 0.5
		localb.BackgroundTransparency = 0.5
		if isAdmin then
			admins.BackgroundTransparency = 0.5
			admins.TextTransparency = 0
			cross.BackgroundTransparency = 0.5
			cross.TextTransparency = 0
		else
			admins.BackgroundTransparency = 0.8
			admins.TextTransparency = 0.8
			cross.BackgroundTransparency = 0.8
			cross.TextTransparency = 0.8
		end
	end

	local function openTeam()
		globalTab.Visible = false
		teamTab.Visible = true
		localTab.Visible = false
		adminsTab.Visible = false
		crossTab.Visible = false

		team.Text = "Team"
		mode = "Team"

		global.BackgroundTransparency = 0.5
		team.BackgroundTransparency = 0
		localb.BackgroundTransparency = 0.5
		admins.BackgroundTransparency = 0.5
		if isAdmin then
			admins.BackgroundTransparency = 0.5
			admins.TextTransparency = 0
			cross.BackgroundTransparency = 0.5
			cross.TextTransparency = 0
		else
			admins.BackgroundTransparency = 0.8
			admins.TextTransparency = 0.8
			cross.BackgroundTransparency = 0.8
			cross.TextTransparency = 0.8
		end
	end

	local function openLocal()
		globalTab.Visible = false
		teamTab.Visible = false
		localTab.Visible = true
		adminsTab.Visible = false
		crossTab.Visible = false

		localb.Text = "Local"
		mode = "Local"

		global.BackgroundTransparency = 0.5
		team.BackgroundTransparency = 0.5
		localb.BackgroundTransparency = 0
		admins.BackgroundTransparency = 0.5
		if isAdmin then
			admins.BackgroundTransparency = 0.5
			admins.TextTransparency = 0
			cross.BackgroundTransparency = 0.5
			cross.TextTransparency = 0
		else
			admins.BackgroundTransparency = 0.8
			admins.TextTransparency = 0.8
			cross.BackgroundTransparency = 0.8
			cross.TextTransparency = 0.8
		end
	end

	local function openAdmins()
		globalTab.Visible = false
		teamTab.Visible = false
		localTab.Visible = false
		adminsTab.Visible = true
		crossTab.Visible = false

		admins.Text = "Admins"
		mode = "Admins"

		global.BackgroundTransparency = 0.5
		team.BackgroundTransparency = 0.5
		localb.BackgroundTransparency = 0.5
		if isAdmin then
			admins.BackgroundTransparency = 0
			admins.TextTransparency = 0
			cross.BackgroundTransparency = 0.5
			cross.TextTransparency = 0
		else
			admins.BackgroundTransparency = 0.8
			admins.TextTransparency = 0.8
			cross.BackgroundTransparency = 0.8
			cross.TextTransparency = 0.8
		end
	end

	local function openCross()
		globalTab.Visible = false
		teamTab.Visible = false
		localTab.Visible = false
		adminsTab.Visible = false
		crossTab.Visible = true

		cross.Text = "Cross"
		mode = "Cross"

		global.BackgroundTransparency = 0.5
		team.BackgroundTransparency = 0.5
		localb.BackgroundTransparency = 0.5
		if isAdmin then
			admins.BackgroundTransparency = 0.5
			admins.TextTransparency = 0
			cross.BackgroundTransparency = 0
			cross.TextTransparency = 0
		else
			admins.BackgroundTransparency = 0.8
			admins.TextTransparency = 0.8
			cross.BackgroundTransparency = 0.8
			cross.TextTransparency = 0.8
		end
	end

	local function fadeIn()
    --[[
    frame.BackgroundTransparency = 0.5
    frame2.BackgroundTransparency = 0.5
    box.BackgroundTransparency = 0.5
    for i=0.1,0.5,0.1 do
        --wait(0.1)
        frame.BackgroundTransparency = 0.5-i
        frame2.BackgroundTransparency = 0.5-i
        box.BackgroundTransparency = 0.5-i
    end-- Disabled ]]
		frame.BackgroundTransparency = 0
		frame2.BackgroundTransparency = 0
		box.BackgroundTransparency = 0
		fakeDrag.Visible = true
	end

	local function fadeOut()
    --[[
    frame.BackgroundTransparency = 0
    frame2.BackgroundTransparency = 0
    box.BackgroundTransparency = 0
    for i=0.1,0.5,0.1 do
        --wait(0.1)
        frame.BackgroundTransparency = i
        frame2.BackgroundTransparency = i
        box.BackgroundTransparency = i
    end-- Disabled ]]
		frame.BackgroundTransparency = 0.7
		frame2.BackgroundTransparency = 1
		box.BackgroundTransparency = 1
		fakeDrag.Visible = false
	end

	fadeOut()

	frame.MouseEnter:Connect(function()
		fadeIn()
	end)

	frame.MouseLeave:Connect(function()
		if not boxFocused then
			fadeOut()
		end
	end)

	toggle.MouseButton1Click:Connect(function()
		if drag.Visible then
			drag.Visible = false
			toggle.Image = "rbxassetid://417301749"--417285299"
		else
			drag.Visible = true
			toggle.Image = "rbxassetid://417301773"--417285351"
		end
	end)

	global.MouseButton1Click:Connect(function()
		openGlobal()
	end)

	team.MouseButton1Click:Connect(function()
		openTeam()
	end)

	localb.MouseButton1Click:Connect(function()
		openLocal()
	end)

	admins.MouseButton1Click:Connect(function()
		if isAdmin or tick() - lastClick > 5 then
			isAdmin = client.Remote.Get("CheckAdmin")
			if isAdmin then
				openAdmins()
			else
				admins.BackgroundTransparency = 0.8
				admins.TextTransparency = 0.8
			end
			lastClick = tick()
		end
	end)

	cross.MouseButton1Click:Connect(function()
		if isAdmin or tick() - lastClick > 5 then
			isAdmin = client.Remote.Get("CheckAdmin")
			if isAdmin then
				openCross()
			else
				cross.BackgroundTransparency = 0.8
				cross.TextTransparency = 0.8
			end
			lastClick = tick()
		end
	end)

	box.FocusLost:Connect(function(enterPressed)
		boxFocused = false
		if enterPressed and not client.Variables.Muted then
			if box.Text ~= '' and ((mode ~= "Cross" and tick() - lastChat >= 0.5) or (mode == "Cross" and tick() - lastChat >= 10)) then
				if not client.Variables.Muted then
					client.Remote.Send('ProcessCustomChat', box.Text, mode)
					lastChat = tick()
				end
			elseif not ((mode ~= "Cross" and tick() - lastChat >= 0.5) or (mode == "Cross" and tick() - lastChat >= 10)) then
				local tim
				if mode == "Cross" then
					tim = 10 - (tick() - lastChat)
				else
					tim = 0.5 - (tick() - lastChat)
				end
				tim = string.sub(tostring(tim), 1, 3)
				client.Handlers.ChatHandler("SpamBot", `Sending too fast! Please wait {tim} seconds.`, "System")
			end
			box.Text = "Click here or press the '/' key to chat"
			fadeOut()
			if mode ~= "Cross" then
				lastChat = tick()
			end
		end
	end)

	box.Focused:Connect(function()
		boxFocused = true
		if box.Text == "Click here or press the '/' key to chat" then
			box.Text = ''
		end
		fadeIn()
	end)

	if not nohide then
		service.UserInputService.InputBegan:Connect(function(InputObject)
			local textbox = service.UserInputService:GetFocusedTextBox()
			if not (textbox) and InputObject.UserInputType == Enum.UserInputType.Keyboard and InputObject.KeyCode == Enum.KeyCode.Slash then
				if box.Text == "Click here or press the '/' key to chat" then
					box.Text = ''
				end
				service.RunService.RenderStepped:Wait()
				box:CaptureFocus()
			end
		end)
	end

	local dragging = false

	local nx, ny = drag.AbsoluteSize.X, frame.AbsoluteSize.Y --450,200
	local defx, defy = nx, ny
	mouse.Move:Connect(function(x, y)
		if dragging then
			nx = math.clamp(defx + (dragger.Position.X.Offset + 20), 1, 260)
			ny = math.clamp(defy + (dragger.Position.Y.Offset + 20), 1, 100)

			frame.Size = UDim2.new(1, 0, 0, ny)
			drag.Size = UDim2.new(0, nx, 0, 30)
		end
	end)
	dragger.DragBegin:Connect(function(init)
		dragging = true
	end)
	dragger.DragStopped:Connect(function(x, y)
		dragging = false
		defx = nx
		defy = ny
		dragger.Position = UDim2.new(1, -20, 1, -20)
		UpdateChat()
	end)

	UpdateChat()


Prompt: -- Local Variables

Response:
local Storage
local RocketTemplate
local Buffer = {}
local Tool = script.Parent
local Owner = nil
local Configurations = Tool.Configuration


Prompt:
--[[
	Creates a new promise that receives the result of this promise.

	The given callbacks are invoked depending on that result.
]]

Response:
function Promise.prototype:_andThen(traceback, successHandler, failureHandler)
	self._unhandledRejection = false

	-- Create a new promise to follow this part of the chain
	return Promise._new(traceback, function(resolve, reject)
		-- Our default callbacks just pass values onto the next promise.
		-- This lets success and failure cascade correctly!

		local successCallback = resolve
		if successHandler then
			successCallback = createAdvancer(
				traceback,
				successHandler,
				resolve,
				reject
			)
		end

		local failureCallback = reject
		if failureHandler then
			failureCallback = createAdvancer(
				traceback,
				failureHandler,
				resolve,
				reject
			)
		end

		if self._status == Promise.Status.Started then
			-- If we haven't resolved yet, put ourselves into the queue
			table.insert(self._queuedResolve, successCallback)
			table.insert(self._queuedReject, failureCallback)
		elseif self._status == Promise.Status.Resolved then
			-- This promise has already resolved! Trigger success immediately.
			successCallback(unpack(self._values, 1, self._valuesLength))
		elseif self._status == Promise.Status.Rejected then
			-- This promise died a terrible death! Trigger failure immediately.
			failureCallback(unpack(self._values, 1, self._valuesLength))
		elseif self._status == Promise.Status.Cancelled then
			-- We don't want to call the success handler or the failure handler,
			-- we just reject this promise outright.
			reject(Error.new({
				error = "Promise is cancelled",
				kind = Error.Kind.AlreadyCancelled,
				context = "Promise created at\n\n" .. traceback,
			}))
		end
	end, self)
end

function Promise.prototype:andThen(successHandler, failureHandler)
	assert(
		successHandler == nil or type(successHandler) == "function",
		string.format(ERROR_NON_FUNCTION, "Promise:andThen")
	)
	assert(
		failureHandler == nil or type(failureHandler) == "function",
		string.format(ERROR_NON_FUNCTION, "Promise:andThen")
	)

	return self:_andThen(debug.traceback(nil, 2), successHandler, failureHandler)
end
Promise.prototype.AndThen = Promise.prototype.andThen
Promise.prototype.Then = Promise.prototype.andThen


Prompt: -- Returns how deep `o` is in the tree.

Response:
local function depth(o)
	local d = -1
	while o do
		o = o.Parent
		d = d + 1
	end
	return d
end

local connLookup = {}


Prompt: -- Make the chat work when the top bar is off

Response:
module.ChatOnWithTopBarOff = true
module.ScreenGuiDisplayOrder = 6 -- The DisplayOrder value for the ScreenGui containing the chat.

module.ShowFriendJoinNotification = true -- Show a notification in the chat when a players friend joins the game.


Prompt:
--[[
	Updates the emote configuration to add default and paid emotes that
	the user owns to it. Also adds these emotes to the user's
	HumanoidDescription so that they can be used by the function
	Humanoid:PlayEmote

	Parameters:
	- player - The Player whose HumanoidDescription is being updated
	- humanoidDescription - The humanoid description to used for getting and
	setting emotes
]]

Response:
function EmoteManager:updateEmotes(player, humanoidDescription)
	local ownedEmotes = self.playerOwnedEmotes[player.UserId] or {}

	-- Find emotes set by setEmotes
	local configuredEmotes = emotes.getValues()
	local externalEmotes = {}
	for emoteName, emoteInfo in pairs(configuredEmotes) do
		-- Filter out default and paid emotes from the configuredEmotes
		if defaultEmotes[emoteName] and defaultEmotes[emoteName].emote == emoteInfo.emote then
			continue
		elseif paidEmotes[emoteName] and paidEmotes[emoteName].emote == emoteInfo.emote then
			continue
		end

		externalEmotes[emoteName] = emoteInfo
	end

	local newEmoteConfig
	if serverConfig.getValues().useDefaultEmotes then
		-- Combine default emotes, paid emotes, and any emotes set via setEmotes
		newEmoteConfig = Cryo.Dictionary.join(defaultEmotes, ownedEmotes, externalEmotes)
	else
		-- Only send emotes configured by setEmotes
		newEmoteConfig = externalEmotes
	end

	-- Add default and owned emotes to the player's humanoid
	-- description so that they can be played using the PlayEmote function
	local humanoidEmotes = {}
	for emoteName, emote in pairs(newEmoteConfig) do
		-- Only add Emotes that use emote asset ids. Ignore Emotes that use
		-- animation asset ids.
		if emote.emote then
			humanoidEmotes[emoteName] = { emote.emote }
		end
	end
	humanoidDescription:SetEmotes(humanoidEmotes)

	self.playerEmoteConfig[player.UserId] = newEmoteConfig
	self.remotes.sendUpdatedEmotes:FireClient(player, newEmoteConfig)
end


Prompt:
------------------------------------------------------------------------
--
-- * used in luaK:infix(), (lparser) luaY:cond()
------------------------------------------------------------------------

Response:
function luaK:goiftrue(fs, e)
  local pc  -- pc of last jump
  self:dischargevars(fs, e)
  local k = e.k
  if k == "VK" or k == "VKNUM" or k == "VTRUE" then
    pc = self.NO_JUMP  -- always true; do nothing
  elseif k == "VFALSE" then
    pc = self:jump(fs)  -- always jump
  elseif k == "VJMP" then
    self:invertjump(fs, e)
    pc = e.info
  else
    pc = self:jumponcond(fs, e, false)
  end
  e.f = self:concat(fs, e.f, pc)  -- insert last jump in `f' list
  self:patchtohere(fs, e.t)
  e.t = self.NO_JUMP
end


Prompt: -- Existance in this list signifies that it is an emote, the value indicates if it is a looping emote

Response:
local emoteNames = { wave = false, point = false, dance1 = true, dance2 = true, dance3 = true, laugh = false, cheer = false}

function configureAnimationSet(name, fileList)
	if (animTable[name] ~= nil) then
		for _, Connection in pairs(animTable[name].Connections) do
			Connection:Disconnect()
		end
	end
	animTable[name] = {}
	animTable[name].count = 0
	animTable[name].totalWeight = 0
	animTable[name].Connections = {}

	-- check for config values
	local config = script:FindFirstChild(name)
	if (config ~= nil) then


Response:
	,EnableStatusUI = true				--- Don't disabled it...
	,RunWalkSpeed = 22
	,NormalWalkSpeed = 16
	,SlowPaceWalkSpeed = 8
	,CrouchWalkSpeed = 8
	,ProneWalksSpeed = 4

	,EnableHunger = false				--- Hunger and Thirst system
	,HungerWaitTime = 25

	,CanDrown = true 					--- Welp.. That's it

	,EnableStamina = false 				--- Weapon Sway based on stamina
	,RunValue = 1						--- Stamina consumption
	,StandRecover = .25					--- Stamina recovery while stading
	,CrouchRecover = .5					--- Stamina recovery while crouching
	,ProneRecover = 1					--- Stamina recovery while lying

	,EnableGPS = true					--- GPS shows your allies around you
	,GPSdistance = 150

	,InteractionMenuKey = Enum.KeyCode.LeftControl


Prompt:
--[[
	[How fast the body rotates.]
	[Setting to 0 negates tracking, and setting to 1 is instant rotation. 0.5 is a nice in-between that works with MseGuide on or off.]
	[Setting this any higher than 1 causes weird glitchy shaking occasionally.]
--]]

Response:
local UpdateSpeed = 0.5

local NeckOrgnC0 = Neck.C0	--[Get the base C0 to manipulate off of.]
local WaistOrgnC0 = (not IsR6 and Waist.C0)	--[Get the base C0 to manipulate off of.]


Prompt: -- << RETRIEVE MAIN FRAMEWORK >>

Response: local main = _G.HDAdminMain