local OrionLib =
loadstring(game:HttpGet(('https://raw.githubusercontent.com/shlexware/Orion/main/
source')))()
local Window = OrionLib:MakeWindow({Name = "Fight in a school]", HidePremium =
false, SaveConfig = true, ConfigFolder = "OrionTest"})
local plr = game.Players.LocalPlayer
local char = plr.Character
local style = plr.leaderstats.Class
local fixjp = false
local basics = Window:MakeTab({
      Name = "Basics",
      Icon = "rbxassetid://4483345998",
      PremiumOnly = false
})
local autofarm = Window:MakeTab({
      Name = "Auto farms",
      Icon = "rbxassetid://4483345998",
      PremiumOnly = false
})
local anims = Window:MakeTab({
      Name = "Animations",
      Icon = "rbxassetid://4483345998",
      PremiumOnly = false
})
local editfight = Window:MakeTab({
      Name = "Combat",
      Icon = "rbxassetid://4483345998",
      PremiumOnly = false
})
local fightstyle = Window:MakeTab({
      Name = "Styles",
      Icon = "rbxassetid://4483345998",
      PremiumOnly = false
})
local customs = Window:MakeTab({
      Name = "Custom Characters",
      Icon = "rbxassetid://4483345998",
      PremiumOnly = false
})
local Credit = Window:MakeTab({
      Name = "Credits",
      Icon = "rbxassetid://4483345998",
      PremiumOnly = false
})
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local higherDistance = 1
local   behindDistance = 1
local   maxTimeAtPlayer = 10
local   currentTween = nil
local   movementEnabled = false
local   speed = 80
local   teleportToLowHPPlayers = false
local   lowHPThreshold = 50
local   attackRange = 10
local   attackCooldown = 1
local   attacking = false
local   attackingCooldown = false
local backupLocation = Vector3.new(-49.46563720703125, 36.55503463745117,
58.66801834106445)
local function moveToHigher(targetPlayer)
    local character = Players.LocalPlayer.Character
    if not character then return end
      local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
      if not humanoidRootPart then return end
      local targetCharacter = targetPlayer.Character
      if not targetCharacter then return end
    local targetHumanoidRootPart =
targetCharacter:FindFirstChild("HumanoidRootPart")
    if not targetHumanoidRootPart then return end
    local higherPosition = targetHumanoidRootPart.Position + Vector3.new(0,
higherDistance, 0)
    local moveToPosition = CFrame.new(higherPosition)
      local distance = (higherPosition - humanoidRootPart.Position).Magnitude
      local time = distance / speed
      local tweenInfo = TweenInfo.new(time, Enum.EasingStyle.Linear)
      if currentTween then
          currentTween:Cancel()
      end
      currentTween = TweenService:Create(humanoidRootPart, tweenInfo, {
          CFrame = moveToPosition
      })
      currentTween:Play()
    spawn(function()
         wait(maxTimeAtPlayer)
         if currentTween and currentTween.PlaybackState ==
Enum.PlaybackState.Playing then
             currentTween:Cancel()
         end
    end)
      currentTween.Completed:Wait()
end
local function moveToBehind(targetPlayer)
    local character = Players.LocalPlayer.Character
    if not character then return end
      local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
      if not humanoidRootPart then return end
      local targetCharacter = targetPlayer.Character
      if not targetCharacter then return end
    local targetHumanoidRootPart =
targetCharacter:FindFirstChild("HumanoidRootPart")
    if not targetHumanoidRootPart then return end
    local direction = (humanoidRootPart.Position -
targetHumanoidRootPart.Position).unit
    local behindPosition = targetHumanoidRootPart.Position - direction *
behindDistance
    local moveToPosition = CFrame.new(behindPosition)
      local distance = (behindPosition - humanoidRootPart.Position).Magnitude
      local time = distance / speed
      local tweenInfo = TweenInfo.new(time, Enum.EasingStyle.Linear)
      if currentTween then
          currentTween:Cancel()
      end
      currentTween = TweenService:Create(humanoidRootPart, tweenInfo, {
          CFrame = moveToPosition
      })
      currentTween:Play()
    spawn(function()
         wait(maxTimeAtPlayer)
         if currentTween and currentTween.PlaybackState ==
Enum.PlaybackState.Playing then
             currentTween:Cancel()
         end
    end)
      currentTween.Completed:Wait()
end
local function findNearestLowHPPlayer()
    local nearestPlayer = nil
    local closestDistance = math.huge
    for _, player in ipairs(Players:GetPlayers()) do
        if player ~= Players.LocalPlayer and player.Character and
player.Character:FindFirstChildOfClass("Humanoid") then
            local humanoid = player.Character:FindFirstChildOfClass("Humanoid")
            if humanoid.Health > 0 and humanoid.Health <= lowHPThreshold then
                local distance =
(player.Character:FindFirstChild("HumanoidRootPart").Position -
Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart").Position).Magnitud
e
                        if distance < closestDistance then
                            closestDistance = distance
                            nearestPlayer = player
                        end
                  end
            end
      end
      return nearestPlayer
end
local function moveToBackupLocation()
    local character = Players.LocalPlayer.Character
    if not character then return end
      local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
      if not humanoidRootPart then return end
      local moveToPosition = CFrame.new(backupLocation)
      local distance = (backupLocation - humanoidRootPart.Position).Magnitude
      local time = distance / speed
      local tweenInfo = TweenInfo.new(time, Enum.EasingStyle.Linear)
      if currentTween then
          currentTween:Cancel()
      end
      currentTween = TweenService:Create(humanoidRootPart, tweenInfo, {
          CFrame = moveToPosition
      })
      currentTween:Play()
    spawn(function()
         wait(maxTimeAtPlayer)
         if currentTween and currentTween.PlaybackState ==
Enum.PlaybackState.Playing then
             currentTween:Cancel()
         end
    end)
      currentTween.Completed:Wait()
end
local function loopMoveToBehindLowHP()
    while movementEnabled and teleportToLowHPPlayers do
        local nearestLowHPPlayer = findNearestLowHPPlayer()
        if nearestLowHPPlayer then
             moveToBehind(nearestLowHPPlayer)
        else
             moveToBackupLocation()
             wait(1) -- Adjust this delay as needed
        end
    end
end
local function startMovementLoop()
      if not movementEnabled then
          movementEnabled = true
          if teleportToLowHPPlayers then
              loopMoveToBehindLowHP()
          end
      end
end
local function stopMovementLoop()
    movementEnabled = false
    if currentTween then
        currentTween:Cancel()
    end
end
local function onCharacterAdded(character)
    character.Humanoid.Died:Connect(function()
         stopMovementLoop()
         character:WaitForChild("HumanoidRootPart", 10).CFrame = CFrame.new(0, 0, 0)
         wait(5) -- Adjust this delay as needed
         startMovementLoop()
    end)
end
Players.LocalPlayer.CharacterAdded:Connect(onCharacterAdded)
autofarm:AddToggle({
    Name = "Teleport to Low HP Players",
    Default = false,
    Callback = function(value)
        teleportToLowHPPlayers = value
        if value then
             startMovementLoop()
        else
             stopMovementLoop()
        end
    end
})
autofarm:AddSlider({
    Name = "Low HP Threshold",
    Min = 1,
    Max = 100,
    Default = 50,
    Color = Color3.fromRGB(255, 255, 255),
    Increment = 1,
    ValueName = "HP",
    Callback = function(value)
        lowHPThreshold = value
    end
})
autofarm:AddSlider({
    Name = "Distance Above",
    Min = 0,
    Max = 10,
    Default = 1,
    Color = Color3.fromRGB(255, 255, 255),
    Increment = 1,
     ValueName = "Above",
     Callback = function(value)
         higherDistance = value
     end
})
autofarm:AddSlider({
    Name = "Distance Behind",
    Min = 0,
    Max = 10,
    Default = 1,
    Color = Color3.fromRGB(255, 255, 255),
    Increment = 1,
    ValueName = "Behind",
    Callback = function(value)
        behindDistance = value
    end
})
Players.LocalPlayer.CharacterAdded:Connect(function(character)
    character:WaitForChild("Humanoid").Died:Connect(function()
        local humanoidRootPart = character:WaitForChild("HumanoidRootPart", 10)
        if currentTween then
            currentTween:Cancel()
        end
        humanoidRootPart.CFrame = CFrame.new(0, 0, 0)
         if movementEnabled then
             startMovementLoop()
         end
         if noclipEnabled then
             toggleNoclip()
         end
     end)
end)
Players.PlayerAdded:Connect(function(player)
     player.CharacterAdded:Connect(function(character)
          character:WaitForChild("Humanoid").Died:Connect(function()
               local humanoidRootPart = character:WaitForChild("HumanoidRootPart", 10)
               if currentTween then
                   currentTween:Cancel()
               end
               humanoidRootPart.CFrame = CFrame.new(0, 0, 0)
          end)
     end)
end)
basics:AddButton({
      Name = "Enable jumping",
      Default = false,
      Callback = function(Value)
            char.Humanoid.UseJumpPower = true
     end
})
basics:AddButton({
      Name = "Money spoof",
      Default = false,
      Callback = function(Value)
            plr.leaderstats["Lunch Money"].Value = 9999999
      end
})
basics:AddButton({
      Name = "Respect spoof",
      Default = false,
      Callback = function(Value)
            plr.leaderstats.Respect.Value = 9999999
      end
})
basics:AddButton({
      Name = "Kill spoof",
      Default = false,
      Callback = function(Value)
            plr.leaderstats.Kills.Value = 9999999
      end
})
basics:AddSlider({
      Name = "Walkspeed",
      Min = 0,
      Max = 250,
      Default = 13,
      Color = Color3.fromRGB(255,255,255),
      Increment = 1,
      ValueName = "WS",
      Callback = function(Value)
            char.Humanoid.WalkSpeed = Value
      end
})
basics:AddSlider({
      Name = "JumpPower",
      Min = 0,
      Max = 250,
      Default = 20,
      Color = Color3.fromRGB(255,255,255),
      Increment = 1,
      ValueName = "JP",
      Callback = function(Value)
            char.Humanoid.JumpPower = Value
      end
})
customs:AddButton({
      Name = "muhammad ali",
      Default = false,
      Callback = function(Value)
        plr.Backpack.Fight:SetAttribute("Speed", 2.3)
        plr.Server.Current_Weapon.Value = "dvvdv"
        style.Value = "Heavy Hitter"
      end
})
customs:AddButton({
      Name = "Mike Tyson",
      Default = false,
      Callback = function(Value)
        plr.Backpack.Fight:SetAttribute("Speed", 2.1)
            plr.Server.Current_Weapon.Value = "dvvdv"
        style.Value = "Heavy Hitter"
      end
})
customs:AddButton({
      Name = "Pressure Point",
      Default = false,
      Callback = function(Value)
        plr.Backpack.Fight:SetAttribute("Speed", 2.5)
        plr.Server.Current_Weapon.Value = "dvvdv"
        style.Value = "Bones"
      end
})
anims:AddButton({
      Name = "Default",
      Default = false,
      Callback = function(Value)
    plr.Server.Current_Weapon.Value = "dvvdv"
      end
})
anims:AddButton({
      Name = "Bat",
      Default = false,
      Callback = function(Value)
    plr.Server.Current_Weapon.Value = "Bat"
      end
})
anims:AddButton({
      Name = "Shank",
      Default = false,
      Callback = function(Value)
    plr.Server.Current_Weapon.Value = "Shank"
      end
})
fightstyle:AddButton({
      Name = "Peak A Boo",
      Default = false,
      Callback = function(Value)
            style.Value = "Peak A Boo"
     end
})
fightstyle:AddButton({
      Name = "Ninja",
      Default = false,
      Callback = function(Value)
            style.Value = "Ninja"
      end
})
fightstyle:AddButton({
      Name = "Aggressive",
      Default = false,
      Callback = function(Value)
            style.Value = "Aggressive"
      end
})
fightstyle:AddButton({
      Name = "Heavy Hitter",
      Default = false,
      Callback = function(Value)
            style.Value = "Heavy Hitter"
      end
})
fightstyle:AddButton({
      Name = "Kicker",
      Default = false,
      Callback = function(Value)
            style.Value = "Kicker"
      end
})
fightstyle:AddButton({
      Name = "Philly",
      Default = false,
      Callback = function(Value)
            style.Value = "Philly"
      end
})
fightstyle:AddButton({
      Name = "Bones",
      Default = false,
      Callback = function(Value)
            style.Value = "Bones"
      end
})
fightstyle:AddButton({
      Name = "Striker",
      Default = false,
      Callback = function(Value)
            style.Value = "Striker"
      end
})
fightstyle:AddButton({
      Name = "Boxer",
      Default = false,
      Callback = function(Value)
            style.Value = "Boxer"
      end
})
fightstyle:AddButton({
      Name = "Slap Boxer",
      Default = false,
      Callback = function(Value)
            style.Value = "Slap Boxer"
      end
})
fightstyle:AddButton({
      Name = "SAVAGE",
      Default = false,
      Callback = function(Value)
            style.Value = "SAVAGE"
      end
})
fightstyle:AddButton({
      Name = "CRASH OUT",
      Default = false,
      Callback = function(Value)
            style.Value = "CRASH OUT"
      end
})
fightstyle:AddButton({
      Name = "Muay Thai",
      Default = false,
      Callback = function(Value)
            style.Value = "Muay Thai"
      end
})
fightstyle:AddButton({
      Name = "Hitman",
      Default = false,
      Callback = function(Value)
            style.Value = "Hitman"
      end
})
fightstyle:AddButton({
      Name = "Hawk",
      Default = false,
      Callback = function(Value)
            style.Value = "Hawk"
      end
})
fightstyle:AddButton({
      Name = "Compound V",
      Default = false,
      Callback = function(Value)
            style.Value = "Compound V"
      end
})
Credit:AddParagraph("Discord","https://discord.gg/GJS3mCDCgk")
Credit:AddParagraph("Contributes","Thank Trackvpn on dc
(https://discord.gg/W43NeMuq) ")
Credit:AddParagraph("Wanna help make the script?","Add jania1/4x2x0 on dc")
Credit:AddParagraph("Change Log","Added spoofs/ Autofarm")
Credit:AddButton({
      Name = "Destroy",
      Default = false,
      Callback = function(Value)
            OrionLib:Destroy()
      end
})
editfight:AddButton({
      Name = "Disable fight shiftlock",
      Default = false,
      Callback = function(Value)
            local fight = plr.Backpack:FindFirstChild("Fight")
        fight.Style.Name = "disabledd lalalal"
      end
})
local Players = game:GetService("Players")
local function toggleFastHits()
    local enabled = false
    local speed = 1 -- Default speed
    local function changeSpeed()
        while enabled do
            local fightTool =
game.Players.LocalPlayer.Backpack:FindFirstChild("Fight")
            if fightTool then
                fightTool:SetAttribute("Speed", speed)
            end
            wait(1)
            speed = (speed == 2) and 3 or 2
        end
    end
     local function onCharacterAdded(character)
         character:WaitForChild("Humanoid").Died:Connect(function()
             enabled = false
               if game.Players.LocalPlayer.Character then
                   enabled = true
                   changeSpeed()
               end
           end)
     end
     changeSpeed()
      if game.Players.LocalPlayer.Character then
          onCharacterAdded(game.Players.LocalPlayer.Character)
      end
      game.Players.LocalPlayer.CharacterAdded:Connect(onCharacterAdded)
      return function(value)
          enabled = value
          if enabled then
              changeSpeed()
          end
      end
end
editfight:AddToggle({
    Name = "Fast Hits Toggle",
    Default = false,
    Callback = toggleFastHits()
})
local function adjustSize(object, size)
    if object then
        object.Size = size
    end
end
local function adjustVisibility(object, isVisible)
    if object then
        object.Transparency = isVisible and 0 or 1
    end
end
local function findObjectAtPath(parent, path)
    local parts = path:split(".")
    local currentObject = parent
    for _, part in ipairs(parts) do
        if currentObject then
             currentObject = currentObject:FindFirstChild(part)
        else
             return nil
        end
    end
    return currentObject
end
local function addAllDimensionsSlider(group, partName, pathPrefix)
    editfight:AddSlider({
            Name = partName .. ' Resize',
            Min = 0,
            Max = 7,
            Default = 0.7,
            Color = Color3.fromRGB(255,255,255),
            Increment = 1,
            ValueName = "WS",
            Callback = function(Value)
            local partPath = pathPrefix .. partName
            local part = findObjectAtPath(game, partPath)
            adjustSize(part, Vector3.new(Value, Value, Value))
        end
    })
end
local function addVisibilityToggle(group, partName, pathPrefix)
    editfight:AddToggle({
            Name = partName .. ' Visibility',
            Default = true,
            Callback = function(Value)
            local partPath = pathPrefix .. partName
            local part = findObjectAtPath(game, partPath)
            adjustVisibility(part, Value)
        end
    })
end
local playerName = game.Players.LocalPlayer.Name
addAllDimensionsSlider(allDimensionsSettings, 'RightHand', "Workspace.Live." ..
playerName .. ".")
addVisibilityToggle(allDimensionsSettings, 'RightHand', "Workspace.Live." ..
playerName .. ".")
addAllDimensionsSlider(allDimensionsSettings, 'LeftHand', "Workspace.Live." ..
playerName .. ".")
addVisibilityToggle(allDimensionsSettings, 'LeftHand', "Workspace.Live." ..
playerName .. ".")
loadstring(game:HttpGet(('https://raw.githubusercontent.com/EdgeIY/infiniteyield/
master/source'),true))()
-- LocalScript placed in StarterPlayerScripts
-- Replace these with your Animation Asset IDs
local ANIMATION_ID_1 = "rbxassetid://120763222024641" -- Animation for 'Y'
local ANIMATION_ID_2 = "rbxassetid://85034347911052" -- Animation for 'F1'
local ANIMATION_ID_3 = "rbxassetid://119797830122478" -- Animation for 'H'
local ANIMATION_ID_4 = "rbxassetid://17740594848" -- Animation for 'B'
local ANIMATION_ID_5 = "rbxassetid://18681913411" -- Animation for 'R'
local ANIMATION_ID_6 = "rbxassetid://18149335682" -- Animation for 'N'
local ANIMATION_ID_7 = "rbxassetid://18954159936" -- Animation for 'X'
local ANIMATION_ID_8 = "rbxassetid://17704531001" -- Animation for 'C'
local ANIMATION_ID_9 = "rbxassetid://18449056925"   -- Animation for 'Z'
-- Get the Local Player
local player = game:GetService("Players").LocalPlayer
local UserInputService = game:GetService("UserInputService")
-- Variables to Track Animation and Speed States
local isPlaying = {}
local animationTracks = {}
local speedBoostEnabled = false -- Tracks if speed boost is on or off
local defaultWalkSpeed = 16 -- Default walk speed
local boostedWalkSpeed = 100 -- Boosted walk speed
-- Function to Set Up Animations on the Character
local function setupAnimations(character)
    local humanoid = character:WaitForChild("Humanoid")
      local function createAnimation(id)
          local anim = Instance.new("Animation")
          anim.AnimationId = id
          return humanoid:LoadAnimation(anim)
      end
      animationTracks = {
          Y = createAnimation(ANIMATION_ID_1),
          F1 = createAnimation(ANIMATION_ID_2),
          H = createAnimation(ANIMATION_ID_3),
          B = createAnimation(ANIMATION_ID_4),
          R = createAnimation(ANIMATION_ID_5),
          N = createAnimation(ANIMATION_ID_6),
          X = createAnimation(ANIMATION_ID_7),
          C = createAnimation(ANIMATION_ID_8),
          Z = createAnimation(ANIMATION_ID_9),
      }
      -- Make all animations looped
      for _, track in pairs(animationTracks) do
          track.Looped = true
      end
end
-- Ensure animations are set up when the player spawns
if player.Character then
    setupAnimations(player.Character)
end
player.CharacterAdded:Connect(setupAnimations)
-- Function to Stop All Animations
local function stopAllAnimations()
    for _, track in pairs(animationTracks) do
        if track.IsPlaying then
            track:Stop()
        end
    end
    for key in pairs(isPlaying) do
        isPlaying[key] = false
    end
end
-- Function to Stop Only the 'Z' Animation
local function stopZAnimation()
    if animationTracks.Z.IsPlaying then
        animationTracks.Z:Stop()
        isPlaying.Z = false
    end
end
-- Function to Toggle Speed Boost
local function toggleSpeedBoost()
    local character = player.Character
    if not character then return end
      local humanoid = character:FindFirstChildOfClass("Humanoid")
      if not humanoid then return end
      if speedBoostEnabled then
           humanoid.WalkSpeed = defaultWalkSpeed   -- Reset to default speed
           speedBoostEnabled = false
      else
           humanoid.WalkSpeed = boostedWalkSpeed   -- Set to boosted speed
           speedBoostEnabled = true
      end
end
-- Input Handling for Keybinds
UserInputService.InputBegan:Connect(function(input, gameProcessed)
    if gameProcessed then return end
      local keyMap = {
          [Enum.KeyCode.Y] = "Y",
          [Enum.KeyCode.F1] = "F1",
          [Enum.KeyCode.H] = "H",
          [Enum.KeyCode.B] = "B",
          [Enum.KeyCode.R] = "R",
          [Enum.KeyCode.N] = "N",
          [Enum.KeyCode.X] = "X",
          [Enum.KeyCode.C] = "C",
          [Enum.KeyCode.Z] = "Z"
      }
      -- Check if a valid animation key was pressed
      local key = keyMap[input.KeyCode]
      if key and animationTracks[key] then
          if isPlaying[key] then
               stopAllAnimations()
          else
               stopAllAnimations()
               animationTracks[key]:Play()
               isPlaying[key] = true
          end
      elseif input.KeyCode == Enum.KeyCode.Backquote then -- Grave key (` or ~)
          stopZAnimation() -- Stop only the 'Z' animation
      elseif input.KeyCode == Enum.KeyCode.X then -- Toggle speed boost with 'X'
          toggleSpeedBoost()
      end
end)
OrionLib:Init()