--============================================================ -- PPBOY91 X -- ROBLOX STUDIO LOCAL SCRIPT -- -- Put this LocalScript in: -- StarterPlayer > StarterPlayerScripts -- -- AIM / ESP / BOT LOCK / SWIM / FOV / POWER / OPEN SOUND -- SWIM SPEED DEFAULT: 500 --============================================================ local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UIS = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") --============================================================ -- SETTINGS --============================================================ local AIM_ENABLED = false local BOT_LOCK_ENABLED = false local ESP_ENABLED = false local SWIM_ENABLED = false local POWER = 8 local FOV = 150 local SWIM_SPEED = 500 local TAB_LOCKED = false local GUI_OPEN = true local LockedPlayer = nil local LockedBot = nil local RainbowHue = 0 --============================================================ -- SCREEN GUI --============================================================ local GUI = Instance.new("ScreenGui") GUI.Name = "PPBOY91_X" GUI.ResetOnSpawn = false GUI.IgnoreGuiInset = true GUI.ZIndexBehavior = Enum.ZIndexBehavior.Sibling GUI.Parent = PlayerGui --============================================================ -- OPEN SOUND --============================================================ local OpenSound = Instance.new("Sound") OpenSound.Name = "OpenSound" OpenSound.SoundId = "rbxassetid://80540578165376" OpenSound.Volume = 1 OpenSound.Parent = GUI pcall(function() OpenSound:Play() end) --============================================================ -- MAIN WINDOW --============================================================ local Main = Instance.new("Frame") Main.Name = "Main" Main.Size = UDim2.fromOffset(275, 492) Main.Position = UDim2.fromOffset(15, 125) Main.BackgroundColor3 = Color3.fromRGB(25, 25, 32) Main.BorderSizePixel = 0 Main.Parent = GUI local MainCorner = Instance.new("UICorner") MainCorner.CornerRadius = UDim.new(0, 10) MainCorner.Parent = Main local MainStroke = Instance.new("UIStroke") MainStroke.Thickness = 4 MainStroke.Parent = Main --============================================================ -- TITLE --============================================================ local TitleBar = Instance.new("TextButton") TitleBar.Name = "TitleBar" TitleBar.Size = UDim2.new(1, -20, 0, 43) TitleBar.Position = UDim2.fromOffset(10, 5) TitleBar.BackgroundTransparency = 1 TitleBar.Text = "PPBOY91 X" TitleBar.TextColor3 = Color3.new(1, 1, 1) TitleBar.TextSize = 21 TitleBar.Font = Enum.Font.Arcade TitleBar.AutoButtonColor = false TitleBar.Parent = Main --============================================================ -- BUTTON CREATOR --============================================================ local function MakeButton(name, text, x, y, w, h) local Button = Instance.new("TextButton") Button.Name = name Button.Size = UDim2.fromOffset(w, h) Button.Position = UDim2.fromOffset(x, y) Button.BackgroundColor3 = Color3.fromRGB(50, 50, 62) Button.BorderSizePixel = 0 Button.Text = text Button.TextColor3 = Color3.new(1, 1, 1) Button.TextSize = 12 Button.Font = Enum.Font.Arcade Button.AutoButtonColor = false Button.Parent = Main local Corner = Instance.new("UICorner") Corner.CornerRadius = UDim.new(0, 7) Corner.Parent = Button local Stroke = Instance.new("UIStroke") Stroke.Thickness = 2 Stroke.Parent = Button return Button, Stroke end --============================================================ -- AIM --============================================================ local AimButton, AimStroke = MakeButton( "AimButton", "AIM : OFF", 10, 55, 255, 40 ) --============================================================ -- ESP --============================================================ local ESPButton, ESPStroke = MakeButton( "ESPButton", "ESP : OFF", 10, 102, 255, 40 ) --============================================================ -- BOT LOCK --============================================================ local BotButton, BotStroke = MakeButton( "BotHeadLock", "BOT HEAD LOCK : OFF", 10, 149, 255, 40 ) --============================================================ -- SWIM --============================================================ local SwimButton, SwimStroke = MakeButton( "SwimButton", "SWIM : OFF", 10, 196, 255, 40 ) --============================================================ -- FOV --============================================================ local FOVLabel = Instance.new("TextLabel") FOVLabel.Size = UDim2.fromOffset(105, 40) FOVLabel.Position = UDim2.fromOffset(10, 244) FOVLabel.BackgroundTransparency = 1 FOVLabel.Text = "FOV: 150" FOVLabel.TextColor3 = Color3.new(1, 1, 1) FOVLabel.TextSize = 13 FOVLabel.Font = Enum.Font.Arcade FOVLabel.Parent = Main local FOVMinus, FOVMinusStroke = MakeButton("FOVMinus", "-", 125, 242, 60, 40) local FOVPlus, FOVPlusStroke = MakeButton("FOVPlus", "+", 195, 242, 60, 40) --============================================================ -- POWER --============================================================ local PowerLabel = Instance.new("TextLabel") PowerLabel.Size = UDim2.fromOffset(105, 40) PowerLabel.Position = UDim2.fromOffset(10, 291) PowerLabel.BackgroundTransparency = 1 PowerLabel.Text = "POWER: 8.00" PowerLabel.TextColor3 = Color3.new(1, 1, 1) PowerLabel.TextSize = 12 PowerLabel.Font = Enum.Font.Arcade PowerLabel.Parent = Main local PowerMinus, PowerMinusStroke = MakeButton("PowerMinus", "-", 125, 289, 60, 40) local PowerPlus, PowerPlusStroke = MakeButton("PowerPlus", "+", 195, 289, 60, 40) --============================================================ -- SWIM SPEED --============================================================ local SwimSpeedLabel = Instance.new("TextLabel") SwimSpeedLabel.Size = UDim2.fromOffset(105, 40) SwimSpeedLabel.Position = UDim2.fromOffset(10, 338) SwimSpeedLabel.BackgroundTransparency = 1 SwimSpeedLabel.Text = "SWIM: 500" SwimSpeedLabel.TextColor3 = Color3.new(1, 1, 1) SwimSpeedLabel.TextSize = 11 SwimSpeedLabel.Font = Enum.Font.Arcade SwimSpeedLabel.Parent = Main local SwimMinus, SwimMinusStroke = MakeButton("SwimMinus", "-5", 125, 336, 60, 40) local SwimPlus, SwimPlusStroke = MakeButton("SwimPlus", "+5", 195, 336, 60, 40) --============================================================ -- TARGET --============================================================ local TargetButton, TargetStroke = MakeButton( "TargetButton", "TARGET : HEAD", 10, 383, 255, 40 ) --============================================================ -- STATUS --============================================================ local Status = Instance.new("TextLabel") Status.Name = "Status" Status.Size = UDim2.new(1, -20, 0, 55) Status.Position = UDim2.fromOffset(10, 430) Status.BackgroundTransparency = 1 Status.Text = "READY" Status.TextColor3 = Color3.new(1, 1, 1) Status.TextSize = 11 Status.Font = Enum.Font.Arcade Status.TextWrapped = true Status.Parent = Main --============================================================ -- FOV CIRCLE --============================================================ local FOVCircle = Instance.new("Frame") FOVCircle.Name = "RainbowFOV" FOVCircle.AnchorPoint = Vector2.new(0.5, 0.5) FOVCircle.Position = UDim2.fromScale(0.5, 0.5) FOVCircle.Size = UDim2.fromOffset(FOV * 2, FOV * 2) FOVCircle.BackgroundTransparency = 1 FOVCircle.BorderSizePixel = 0 FOVCircle.ZIndex = 2 FOVCircle.Parent = GUI local FOVCorner = Instance.new("UICorner") FOVCorner.CornerRadius = UDim.new(1, 0) FOVCorner.Parent = FOVCircle local FOVStroke = Instance.new("UIStroke") FOVStroke.Thickness = 3 FOVStroke.Parent = FOVCircle --============================================================ -- MOBILE TAB --============================================================ local Tab = Instance.new("Frame") Tab.Name = "PPBOY91Tab" Tab.Size = UDim2.fromOffset(195, 47) Tab.Position = UDim2.fromOffset(15, 70) Tab.BackgroundTransparency = 1 Tab.ZIndex = 50 Tab.Parent = GUI local Toggle = Instance.new("TextButton") Toggle.Name = "Toggle" Toggle.Size = UDim2.fromOffset(143, 47) Toggle.BackgroundColor3 = Color3.fromRGB(25, 25, 32) Toggle.BorderSizePixel = 0 Toggle.Text = "PPBOY91 X" Toggle.TextColor3 = Color3.new(1, 1, 1) Toggle.TextSize = 17 Toggle.Font = Enum.Font.Arcade Toggle.AutoButtonColor = false Toggle.ZIndex = 51 Toggle.Parent = Tab local ToggleCorner = Instance.new("UICorner") ToggleCorner.CornerRadius = UDim.new(0, 8) ToggleCorner.Parent = Toggle local ToggleStroke = Instance.new("UIStroke") ToggleStroke.Thickness = 3 ToggleStroke.Parent = Toggle --============================================================ -- LOCK BUTTON --============================================================ local LockButton = Instance.new("TextButton") LockButton.Name = "LockButton" LockButton.Size = UDim2.fromOffset(47, 47) LockButton.Position = UDim2.fromOffset(148, 0) LockButton.BackgroundColor3 = Color3.fromRGB(25, 25, 32) LockButton.BorderSizePixel = 0 LockButton.Text = "šŸ”“" LockButton.TextSize = 20 LockButton.Font = Enum.Font.Arial LockButton.AutoButtonColor = false LockButton.ZIndex = 52 LockButton.Parent = Tab local LockCorner = Instance.new("UICorner") LockCorner.CornerRadius = UDim.new(0, 8) LockCorner.Parent = LockButton local LockStroke = Instance.new("UIStroke") LockStroke.Thickness = 3 LockStroke.Parent = LockButton --============================================================ -- DRAG SYSTEM --============================================================ local function MakeDraggable(object, getPosition, setPosition) local dragging = false local dragStart local startPosition local dragInput object.InputBegan:Connect(function(input) if TAB_LOCKED then return end if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPosition = getPosition() dragInput = input end end) object.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UIS.InputChanged:Connect(function(input) if not dragging or TAB_LOCKED then return end if input ~= dragInput then return end local delta = input.Position - dragStart setPosition( UDim2.new( startPosition.X.Scale, startPosition.X.Offset + delta.X, startPosition.Y.Scale, startPosition.Y.Offset + delta.Y ) ) end) UIS.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false dragInput = nil end end) end MakeDraggable( TitleBar, function() return Main.Position end, function(position) Main.Position = position end ) MakeDraggable( Toggle, function() return Tab.Position end, function(position) Tab.Position = position end ) --============================================================ -- OPEN / CLOSE --============================================================ Toggle.Activated:Connect(function() if TAB_LOCKED then GUI_OPEN = not GUI_OPEN Main.Visible = GUI_OPEN if GUI_OPEN then pcall(function() OpenSound:Play() end) end end end) --============================================================ -- LOCK --============================================================ LockButton.Activated:Connect(function() TAB_LOCKED = not TAB_LOCKED if TAB_LOCKED then LockButton.Text = "šŸ”’" else LockButton.Text = "šŸ”“" end end) --============================================================ -- FOV --============================================================ local function UpdateFOV() FOVLabel.Text = "FOV: " .. FOV FOVCircle.Size = UDim2.fromOffset( FOV * 2, FOV * 2 ) end FOVMinus.Activated:Connect(function() FOV = math.max(25, FOV - 25) UpdateFOV() end) FOVPlus.Activated:Connect(function() FOV = math.min(400, FOV + 25) UpdateFOV() end) --============================================================ -- POWER --============================================================ local function UpdatePower() PowerLabel.Text = "POWER: " .. string.format("%.2f", POWER) end PowerMinus.Activated:Connect(function() POWER = math.max(0, POWER - 1) UpdatePower() end) PowerPlus.Activated:Connect(function() POWER = math.min(30, POWER + 1) UpdatePower() end) --============================================================ -- SWIM SPEED --============================================================ local function UpdateSwimSpeed() SwimSpeedLabel.Text = "SWIM: " .. math.floor(SWIM_SPEED) end SwimMinus.Activated:Connect(function() SWIM_SPEED = math.max( 10, SWIM_SPEED - 5 ) UpdateSwimSpeed() end) SwimPlus.Activated:Connect(function() SWIM_SPEED = math.min( 10000, SWIM_SPEED + 5 ) UpdateSwimSpeed() end) --============================================================ -- FIND CLOSEST PLAYER --============================================================ local function FindClosestPlayer() local Camera = workspace.CurrentCamera if not Camera then return nil end local Center = Camera.ViewportSize / 2 local Closest = nil local ClosestDistance = FOV for _, Player in ipairs(Players:GetPlayers()) do if Player ~= LocalPlayer then local Character = Player.Character local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid") local Head = Character and Character:FindFirstChild("Head") if Humanoid and Head and Humanoid.Health > 0 then local ScreenPosition, Visible = Camera:WorldToViewportPoint( Head.Position ) if Visible and ScreenPosition.Z > 0 then local Distance = ( Vector2.new( ScreenPosition.X, ScreenPosition.Y ) - Center ).Magnitude if Distance < ClosestDistance then ClosestDistance = Distance Closest = Player end end end end end return Closest end --============================================================ -- AIM --============================================================ local function TrackPlayerHead(dt) if not LockedPlayer then LockedPlayer = FindClosestPlayer() return end local Character = LockedPlayer.Character local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid") local Head = Character and Character:FindFirstChild("Head") local Camera = workspace.CurrentCamera if not Humanoid or not Head or Humanoid.Health <= 0 or not Camera then LockedPlayer = FindClosestPlayer() return end local Desired = CFrame.lookAt( Camera.CFrame.Position, Head.Position ) local Strength = 1 - math.exp( -POWER * 18 * dt ) Camera.CFrame = Camera.CFrame:Lerp( Desired, math.clamp( Strength, 0, 0.98 ) ) end AimButton.Activated:Connect(function() AIM_ENABLED = not AIM_ENABLED if AIM_ENABLED then LockedPlayer = FindClosestPlayer() AimButton.Text = "AIM : ON" Status.Text = "PLAYER HEAD LOCK ACTIVE" else LockedPlayer = nil AimButton.Text = "AIM : OFF" Status.Text = "READY" end end) --============================================================ -- SWIM --============================================================ local SwimAttachment local SwimVelocity local function StartSwim() local Character = LocalPlayer.Character if not Character then return end local Root = Character:FindFirstChild( "HumanoidRootPart" ) local Humanoid = Character:FindFirstChildOfClass( "Humanoid" ) if not Root or not Humanoid then return end if SwimVelocity then SwimVelocity:Destroy() end if SwimAttachment then SwimAttachment:Destroy() end SwimAttachment = Instance.new("Attachment") SwimAttachment.Name = "PPBOY91_SwimAttachment" SwimAttachment.Parent = Root SwimVelocity = Instance.new("LinearVelocity") SwimVelocity.Name = "PPBOY91_SwimVelocity" SwimVelocity.Attachment0 = SwimAttachment SwimVelocity.MaxForce = math.huge SwimVelocity.VectorVelocity = Vector3.zero SwimVelocity.Parent = Root Humanoid.AutoRotate = false Status.Text = "SWIM MODE ACTIVE" end local function StopSwim() local Character = LocalPlayer.Character local Humanoid = Character and Character:FindFirstChildOfClass( "Humanoid" ) if SwimVelocity then SwimVelocity:Destroy() SwimVelocity = nil end if SwimAttachment then SwimAttachment:Destroy() SwimAttachment = nil end if Humanoid then Humanoid.AutoRotate = true end Status.Text = "READY" end local function UpdateSwim() if not SWIM_ENABLED then return end local Character = LocalPlayer.Character local Root = Character and Character:FindFirstChild( "HumanoidRootPart" ) local Humanoid = Character and Character:FindFirstChildOfClass( "Humanoid" ) if not Root or not Humanoid or not SwimVelocity then return end local MoveDirection = Humanoid.MoveDirection local Velocity = MoveDirection * SWIM_SPEED local Vertical = 0 if UIS:IsKeyDown(Enum.KeyCode.Space) then Vertical += 1 end if UIS:IsKeyDown(Enum.KeyCode.LeftControl) then Vertical -= 1 end Velocity += Vector3.new( 0, Vertical * SWIM_SPEED, 0 ) SwimVelocity.VectorVelocity = Velocity if MoveDirection.Magnitude > 0.05 then local FlatDirection = Vector3.new( MoveDirection.X, 0, MoveDirection.Z ) if FlatDirection.Magnitude > 0.05 then Root.CFrame = CFrame.lookAt( Root.Position, Root.Position + FlatDirection ) end end end SwimButton.Activated:Connect(function() SWIM_ENABLED = not SWIM_ENABLED if SWIM_ENABLED then SwimButton.Text = "SWIM : ON" StartSwim() else SwimButton.Text = "SWIM : OFF" StopSwim() end end) --============================================================ -- ESP --============================================================ local ESP = {} local function CreateESP(Player) if Player == LocalPlayer or ESP[Player] then return end local Holder = Instance.new("Frame") Holder.Name = "ESP_" .. Player.Name Holder.BackgroundTransparency = 1 Holder.BorderSizePixel = 0 Holder.Visible = false Holder.ZIndex = 30 Holder.Parent = GUI local Info = Instance.new("TextLabel") Info.AnchorPoint = Vector2.new(0.5, 1) Info.Position = UDim2.new(0.5, 0, 0, -4) Info.Size = UDim2.fromOffset(250, 38) Info.BackgroundTransparency = 1 Info.TextColor3 = Color3.new(1, 1, 1) Info.TextStrokeTransparency = 0 Info.TextSize = 11 Info.Font = Enum.Font.Arcade Info.TextWrapped = true Info.ZIndex = 31 Info.Parent = Holder local function Line() local Object = Instance.new("Frame") Object.BorderSizePixel = 0 Object.ZIndex = 30 Object.Parent = Holder return Object end ESP[Player] = { Holder = Holder, Info = Info, Top = Line(), Bottom = Line(), Left = Line(), Right = Line() } end local function RemoveESP(Player) local Data = ESP[Player] if Data then Data.Holder:Destroy() ESP[Player] = nil end end local function UpdateESP(Player) local Data = ESP[Player] if not Data then return end if not ESP_ENABLED then Data.Holder.Visible = false return end local Character = Player.Character local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid") local Root = Character and Character:FindFirstChild("HumanoidRootPart") local Head = Character and Character:FindFirstChild("Head") local Camera = workspace.CurrentCamera if not Character or not Humanoid or not Root or not Head or not Camera or Humanoid.Health <= 0 then Data.Holder.Visible = false return end local Top = Camera:WorldToViewportPoint( Head.Position + Vector3.new(0, 1, 0) ) local Bottom = Camera:WorldToViewportPoint( Root.Position - Vector3.new(0, 3, 0) ) if Top.Z <= 0 or Bottom.Z <= 0 then Data.Holder.Visible = false return end local Height = math.abs( Bottom.Y - Top.Y ) if Height < 5 then Data.Holder.Visible = false return end local Width = math.clamp( Height * 0.48, 12, 250 ) local CenterX = (Top.X + Bottom.X) / 2 local TopY = math.min( Top.Y, Bottom.Y ) Data.Holder.Position = UDim2.fromOffset( CenterX - Width / 2, TopY ) Data.Holder.Size = UDim2.fromOffset( Width, Height ) local Thickness = 2 Data.Top.Position = UDim2.fromOffset(0, 0) Data.Top.Size = UDim2.new( 1, 0, 0, Thickness ) Data.Bottom.Position = UDim2.new( 0, 0, 1, -Thickness ) Data.Bottom.Size = UDim2.new( 1, 0, 0, Thickness ) Data.Left.Position = UDim2.fromOffset(0, 0) Data.Left.Size = UDim2.new( 0, Thickness, 1, 0 ) Data.Right.Position = UDim2.new( 1, -Thickness, 0, 0 ) Data.Right.Size = UDim2.new( 0, Thickness, 1, 0 ) local MyCharacter = LocalPlayer.Character local MyRoot = MyCharacter and MyCharacter:FindFirstChild( "HumanoidRootPart" ) local Distance = 0 if MyRoot then Distance = ( MyRoot.Position - Root.Position ).Magnitude end local HP = math.floor( Humanoid.Health + 0.5 ) local MaxHP = math.floor( Humanoid.MaxHealth + 0.5 ) Data.Info.Text = Player.DisplayName .. " @" .. Player.Name .. "\n♄ " .. HP .. "/" .. MaxHP .. " HP • " .. math.floor(Distance) .. " studs" local Rainbow = Color3.fromHSV( RainbowHue, 1, 1 ) Data.Info.TextColor3 = Rainbow Data.Top.BackgroundColor3 = Rainbow Data.Bottom.BackgroundColor3 = Rainbow Data.Left.BackgroundColor3 = Rainbow Data.Right.BackgroundColor3 = Rainbow Data.Holder.Visible = true end ESPButton.Activated:Connect(function() ESP_ENABLED = not ESP_ENABLED if ESP_ENABLED then ESPButton.Text = "ESP : ON" Status.Text = "PLAYER ESP ACTIVE" for _, Player in ipairs( Players:GetPlayers() ) do if Player ~= LocalPlayer then CreateESP(Player) end end else ESPButton.Text = "ESP : OFF" Status.Text = "READY" for Player in pairs(ESP) do RemoveESP(Player) end end end) Players.PlayerAdded:Connect(function(Player) if ESP_ENABLED then CreateESP(Player) end end) Players.PlayerRemoving:Connect(function(Player) RemoveESP(Player) if LockedPlayer == Player then LockedPlayer = nil end end) --============================================================ -- BOT LOCK --============================================================ local function FindClosestBot() local Camera = workspace.CurrentCamera if not Camera then return nil end local Center = Camera.ViewportSize / 2 local Closest = nil local ClosestDistance = FOV for _, Object in ipairs( workspace:GetDescendants() ) do if Object:IsA("Model") then local Humanoid = Object:FindFirstChildOfClass( "Humanoid" ) local Head = Object:FindFirstChild( "Head" ) local Player = Players:GetPlayerFromCharacter( Object ) if Humanoid and Head and not Player and Humanoid.Health > 0 then local ScreenPosition, Visible = Camera:WorldToViewportPoint( Head.Position ) if Visible and ScreenPosition.Z > 0 then local Distance = ( Vector2.new( ScreenPosition.X, ScreenPosition.Y ) - Center ).Magnitude if Distance < ClosestDistance then ClosestDistance = Distance Closest = Object end end end end end return Closest end local function TrackBotHead(dt) if not LockedBot then return end local Humanoid = LockedBot:FindFirstChildOfClass( "Humanoid" ) local Head = LockedBot:FindFirstChild( "Head" ) local Camera = workspace.CurrentCamera if not Humanoid or not Head or Humanoid.Health <= 0 or not Camera then LockedBot = FindClosestBot() return end local Desired = CFrame.lookAt( Camera.CFrame.Position, Head.Position ) local Strength = 1 - math.exp( -POWER * 18 * dt ) Camera.CFrame = Camera.CFrame:Lerp( Desired, math.clamp( Strength, 0, 0.98 ) ) end BotButton.Activated:Connect(function() BOT_LOCK_ENABLED = not BOT_LOCK_ENABLED if BOT_LOCK_ENABLED then LockedBot = FindClosestBot() BotButton.Text = "BOT HEAD LOCK : ON" Status.Text = "BOT HEAD LOCK ACTIVE" else LockedBot = nil BotButton.Text = "BOT HEAD LOCK : OFF" Status.Text = "READY" end end) --============================================================ -- TARGET --============================================================ TargetButton.Activated:Connect(function() TargetButton.Text = "TARGET : HEAD" Status.Text = "HEAD TARGET SELECTED" end) --============================================================ -- UPDATE LOOP --============================================================ RunService:BindToRenderStep( "PPBOY91X_Update", Enum.RenderPriority.Camera.Value + 1, function(dt) RainbowHue = (RainbowHue + 0.004) % 1 local function Rainbow(Offset) return Color3.fromHSV( (RainbowHue + Offset) % 1, 1, 1 ) end MainStroke.Color = Rainbow(0) ToggleStroke.Color = Rainbow(0.15) LockStroke.Color = Rainbow(0.30) AimStroke.Color = Rainbow(0.45) ESPStroke.Color = Rainbow(0.60) BotStroke.Color = Rainbow(0.75) SwimStroke.Color = Rainbow(0.90) FOVMinusStroke.Color = Rainbow(0.05) FOVPlusStroke.Color = Rainbow(0.20) PowerMinusStroke.Color = Rainbow(0.35) PowerPlusStroke.Color = Rainbow(0.50) SwimMinusStroke.Color = Rainbow(0.65) SwimPlusStroke.Color = Rainbow(0.80) TargetStroke.Color = Rainbow(0.95) FOVStroke.Color = Rainbow(0.10) if AIM_ENABLED then TrackPlayerHead(dt) end if BOT_LOCK_ENABLED then if not LockedBot or not LockedBot.Parent then LockedBot = FindClosestBot() end if LockedBot then TrackBotHead(dt) end end if SWIM_ENABLED then UpdateSwim() end if ESP_ENABLED then for _, Player in ipairs( Players:GetPlayers() ) do if Player ~= LocalPlayer then CreateESP(Player) UpdateESP(Player) end end end end ) --============================================================ -- INITIALIZE --============================================================ UpdateFOV() UpdatePower() UpdateSwimSpeed() print("PPBOY91 X loaded successfully.") print("SWIM SPEED: " .. SWIM_SPEED)