getgenv().keytoclick = "Q" tool = Instance.new("Tool") tool.RequiresHandle = false tool.Name = keytoclick tool.Activated:connect(function() local vim = game:service("VirtualInputManager") vim:SendKeyEvent(true, keytoclick, false, game) end) tool.Parent = game.Players.LocalPlayer.Backpack game.StarterGui:SetCore("SendNotification", { Title = "HAHAHAHAHAHA"; Text = "Start LockingXDXDX"; }) local player = game.Players.LocalPlayer local function connectCharacterAdded() player.CharacterAdded:Connect(onCharacterAdded) end connectCharacterAdded() player.CharacterRemoving:Connect(function() tool.Parent = game.Players.LocalPlayer.Backpack end) --Made By Batonga If U Gon Skid This Pls Credit Me Some Features is buggy and some is not Auto Pred Is Decent Features is way better than the original I Will Add Camlock Next Update But Its Not Gonna Be Open Src @2024, Copyright Holder = Batonga --Script reworked by k0nkx | asainyuh and thx to haalfi for helping on Orbit local Library = loadstring(game:HttpGet("https://pastebin.com/raw/kpLzpNXc"))() local Window = Library:CreateWindow("Batonga_gui!!", Vector2.new(300, 300), Enum.KeyCode.V) local AkaliNotif = loadstring(game:HttpGet("https://raw.githubusercontent.com/Kinlei/Dynissimo/main/Scripts/AkaliNotif.lua"))() local Notify = AkaliNotif.Notify local AimingTab = Window:CreateTab("Main") local MiscTab = Window:CreateTab("Misc") local testSection = MiscTab:CreateSector("camlock", "left") testSection:AddButton( "RightClick", function() loadstring(game:HttpGet('https://raw.githubusercontent.com/BalligusapoTT/BalligusapoTT/main/Leftclickballi'))() end ) local testSection = AimingTab:CreateSector("camlock", "left") testSection:AddTextbox( "Cam Pred", 7, function(State) getgenv().PredictionVelocity = State end ) testSection:AddDropdown( "HitPart", {"Head", "HumanoidRootPart", "UpperTorso", "LowerTorso", "Penis"}, "HumanoidRootPart", false, function(Option) getgenv().AimPart = "Option" end ) testSection:AddToggle( "Smooth toggle", false, function(first) getgenv().Smoothness = first end ) testSection:AddTextbox( "Smoothness", 0.5, function(State) getgenv().SmoothnessAmount = State end ) getgenv().OldAimPart = "Head" getgenv().AimPart = "UpperTorso" getgenv().AimlockKey = "c" getgenv().AimRadius = 100 getgenv().ThirdPerson = true getgenv().FirstPerson = true getgenv().TeamCheck = false getgenv().PredictMovement = true getgenv().PredictionVelocity = 7.8 getgenv().CheckIfJumped = true getgenv().Smoothness = true getgenv().SmoothnessAmount = 0.5 local Players, Uis, RService, SGui = game:GetService"Players", game:GetService"UserInputService", game:GetService"RunService", game:GetService"StarterGui"; local Client, Mouse, Camera, CF, RNew, Vec3, Vec2 = Players.LocalPlayer, Players.LocalPlayer:GetMouse(), workspace.CurrentCamera, CFrame.new, Ray.new, Vector3.new, Vector2.new; local Aimlock, MousePressed, CanNotify = true, false, false; local AimlockTarget; local OldPre; getgenv().WorldToViewportPoint = function(P) return Camera:WorldToViewportPoint(P) end getgenv().WorldToScreenPoint = function(P) return Camera.WorldToScreenPoint(Camera, P) end getgenv().GetObscuringObjects = function(T) if T and T:FindFirstChild(getgenv().AimPart) and Client and Client.Character:FindFirstChild("Head") then local RayPos = workspace:FindPartOnRay(RNew( T[getgenv().AimPart].Position, Client.Character.Head.Position) ) if RayPos then return RayPos:IsDescendantOf(T) end end end getgenv().GetNearestTarget = function() -- Credits to whoever made this, i didnt make it, and my own mouse2plr function kinda sucks local players = {} local PLAYER_HOLD = {} local DISTANCES = {} for i, v in pairs(Players:GetPlayers()) do if v ~= Client then table.insert(players, v) end end for i, v in pairs(players) do if v.Character ~= nil then local AIM = v.Character:FindFirstChild("Head") if getgenv().TeamCheck == true and v.Team ~= Client.Team then local DISTANCE = (v.Character:FindFirstChild("Head").Position - game.Workspace.CurrentCamera.CFrame.p).magnitude local RAY = Ray.new(game.Workspace.CurrentCamera.CFrame.p, (Mouse.Hit.p - game.Workspace.CurrentCamera.CFrame.p).unit * DISTANCE) local HIT,POS = game.Workspace:FindPartOnRay(RAY, game.Workspace) local DIFF = math.floor((POS - AIM.Position).magnitude) PLAYER_HOLD[v.Name .. i] = {} PLAYER_HOLD[v.Name .. i].dist= DISTANCE PLAYER_HOLD[v.Name .. i].plr = v PLAYER_HOLD[v.Name .. i].diff = DIFF table.insert(DISTANCES, DIFF) elseif getgenv().TeamCheck == false and v.Team == Client.Team then local DISTANCE = (v.Character:FindFirstChild("Head").Position - game.Workspace.CurrentCamera.CFrame.p).magnitude local RAY = Ray.new(game.Workspace.CurrentCamera.CFrame.p, (Mouse.Hit.p - game.Workspace.CurrentCamera.CFrame.p).unit * DISTANCE) local HIT,POS = game.Workspace:FindPartOnRay(RAY, game.Workspace) local DIFF = math.floor((POS - AIM.Position).magnitude) PLAYER_HOLD[v.Name .. i] = {} PLAYER_HOLD[v.Name .. i].dist= DISTANCE PLAYER_HOLD[v.Name .. i].plr = v PLAYER_HOLD[v.Name .. i].diff = DIFF table.insert(DISTANCES, DIFF) end end end if unpack(DISTANCES) == nil then return nil end local L_DISTANCE = math.floor(math.min(unpack(DISTANCES))) if L_DISTANCE > getgenv().AimRadius then return nil end for i, v in pairs(PLAYER_HOLD) do if v.diff == L_DISTANCE then return v.plr end end return nil end Mouse.KeyDown:Connect(function(a) if not (Uis:GetFocusedTextBox()) then if a == AimlockKey and AimlockTarget == nil then pcall(function() if MousePressed ~= true then MousePressed = true end local Target;Target = GetNearestTarget() if Target ~= nil then AimlockTarget = Target end end) elseif a == AimlockKey and AimlockTarget ~= nil then if AimlockTarget ~= nil then AimlockTarget = nil end if MousePressed ~= false then MousePressed = false end end end end) RService.RenderStepped:Connect(function() if getgenv().ThirdPerson == true and getgenv().FirstPerson == true then if (Camera.Focus.p - Camera.CoordinateFrame.p).Magnitude > 1 or (Camera.Focus.p - Camera.CoordinateFrame.p).Magnitude <= 1 then CanNotify = true else CanNotify = false end elseif getgenv().ThirdPerson == true and getgenv().FirstPerson == false then if (Camera.Focus.p - Camera.CoordinateFrame.p).Magnitude > 1 then CanNotify = true else CanNotify = false end elseif getgenv().ThirdPerson == false and getgenv().FirstPerson == true then if (Camera.Focus.p - Camera.CoordinateFrame.p).Magnitude <= 1 then CanNotify = true else CanNotify = false end end if Aimlock == true and MousePressed == true then if AimlockTarget and AimlockTarget.Character and AimlockTarget.Character:FindFirstChild(getgenv().AimPart) then if getgenv().FirstPerson == true then if CanNotify == true then if getgenv().PredictMovement == true then if getgenv().Smoothness == true then --// The part we're going to lerp/smoothen \\-- local Main = CF(Camera.CFrame.p, AimlockTarget.Character[getgenv().AimPart].Position + AimlockTarget.Character[getgenv().AimPart].Velocity/PredictionVelocity) --// Making it work \\-- Camera.CFrame = Camera.CFrame:Lerp(Main, getgenv().SmoothnessAmount, Enum.EasingStyle.Elastic, Enum.EasingDirection.InOut) else Camera.CFrame = CF(Camera.CFrame.p, AimlockTarget.Character[getgenv().AimPart].Position + AimlockTarget.Character[getgenv().AimPart].Velocity/PredictionVelocity) end elseif getgenv().PredictMovement == false then if getgenv().Smoothness == true then --// The part we're going to lerp/smoothen \\-- local Main = CF(Camera.CFrame.p, AimlockTarget.Character[getgenv().AimPart].Position) --// Making it work \\-- Camera.CFrame = Camera.CFrame:Lerp(Main, getgenv().SmoothnessAmount, Enum.EasingStyle.Elastic, Enum.EasingDirection.InOut) else Camera.CFrame = CF(Camera.CFrame.p, AimlockTarget.Character[getgenv().AimPart].Position) end end end end end end if CheckIfJumped == true then if AimlockTarget and AimlockTarget.Character and AimlockTarget.Character.Humanoid.FloorMaterial == Enum.Material.Air then getgenv().AimPart = "UpperTorso" else getgenv().AimPart = getgenv().OldAimPart end end end) --]] --dont mess with he settings unless u know what ur doing local Settings = { rewrittenmain = { Enabled = true, Key = "c", DOT = true, AIRSHOT = true, NOTIF = true, AUTOPRED = false, FOV = math.huge, RESOLVER = false } } local testSection = AimingTab:CreateSector("Aimlock", "Right") testSection:AddToggle( "Enabled", Settings.rewrittenmain.Enabled, function(State) Settings.rewrittenmain.Enabled = State end ) testSection:AddTextbox( "Prediction", 0.135, function(State) getgenv().Prediction = State end ) testSection:AddTextbox( "Key", Settings.rewrittenmain.Key, function(State) Settings.rewrittenmain.Key = State end ) testSection:AddToggle( "Dot", Settings.rewrittenmain.DOT, function(State) Settings.rewrittenmain.DOT = State end ) testSection:AddToggle( "Airshot", Settings.rewrittenmain.AIRSHOT, function(State) Settings.rewrittenmain.AIRSHOT = State end ) testSection:AddToggle( "Notification", Settings.rewrittenmain.NOTIF, function(State) Settings.rewrittenmain.NOTIF = State end ) testSection:AddToggle( "Auto Prediction", Settings.rewrittenmain.AUTOPRED, function(State) Settings.rewrittenmain.AUTOPRED = State end ) testSection:AddToggle( "Resolver", Settings.rewrittenmain.RESOLVER, function(State) Settings.rewrittenmain.RESOLVER = State end ) local testSection = AimingTab:CreateSector("Orbit", "left") --you can change the section code, for example "testsection" can be changed to "FunnyCoolSection" etc. testSection:AddToggle( "Enabled", false, function(first) Settings.rewrittenmain.TargetStrafe = first end ) testSection:AddTextbox( "Distance", nil, function(State) Settings.rewrittenmain.StrafeRadius = State end ) testSection:AddTextbox( "Height", nil, function(State) Settings.rewrittenmain.StrafeHeight = State end ) testSection:AddTextbox( "Speed", nil, function(State) Settings.rewrittenmain.StrafeSpeed = State end ) local SelectedPart = "UpperTorso" local Prediction = true local PredictionValue = 0.24 local AnchorCount = 0 local MaxAnchor = 50 local CC = game:GetService"Workspace".CurrentCamera local Plr; local enabled = false local accomidationfactor = 0.12348 local mouse = game.Players.LocalPlayer:GetMouse() local placemarker = Instance.new("Part", game.Workspace) function makemarker(Parent, Adornee, Color, Size, Size2) local e = Instance.new("BillboardGui", Parent) e.Name = "PP" e.Adornee = Adornee e.Size = UDim2.new(Size, Size2, Size, Size2) e.AlwaysOnTop = Settings.rewrittenmain.DOT local a = Instance.new("Frame", e) if Settings.rewrittenmain.DOT == true then a.Size = UDim2.new(2, 2, 2) else a.Size = UDim2.new(0, 0, 0, 0) end if Settings.rewrittenmain.DOT == true then a.Transparency = 0 a.BackgroundTransparency = 0 else a.Transparency = 1 a.BackgroundTransparency = 1 end a.BackgroundColor3 = Color local g = Instance.new("UICorner", a) if Settings.rewrittenmain.DOT == false then g.CornerRadius = UDim.new(0, 0) else g.CornerRadius = UDim.new(1, 1) end return(e) end local data = game.Players:GetPlayers() function noob(player) local character repeat wait() until player.Character local handler = makemarker(guimain, player.Character:WaitForChild(SelectedPart), Color3.fromRGB(68, 214, 44), 0.3, 3) handler.Name = player.Name player.CharacterAdded:connect(function(Char) handler.Adornee = Char:WaitForChild(SelectedPart) end) spawn(function() while wait() do if player.Character then end end end) end for i = 1, #data do if data[i] ~= game.Players.LocalPlayer then noob(data[i]) end end game.Players.PlayerAdded:connect(function(Player) noob(Player) end) spawn(function() placemarker.Anchored = true placemarker.CanCollide = false if Settings.rewrittenmain.DOT == true then placemarker.Size = Vector3.new(6, 6, 6) else placemarker.Size = Vector3.new(0, 0, 0) end placemarker.Transparency = 1 if Settings.rewrittenmain.DOT then makemarker(placemarker, placemarker, Color3.fromRGB(68, 214, 44), 0.40, 0) end end) game.Players.LocalPlayer:GetMouse().KeyDown:Connect(function(k) if k == Settings.rewrittenmain.Key and Settings.rewrittenmain.Enabled then if enabled == true then enabled = false if Settings.rewrittenmain.NOTIF == true then Plr = getClosestPlayerToCursor() game.StarterGui:SetCore("SendNotification", { Title = "Lock Notification", Text = "Unlocked", Icon = "", Duration = 1, }) end else Plr = getClosestPlayerToCursor() enabled = true if Settings.rewrittenmain.NOTIF == true then game.StarterGui:SetCore("SendNotification", { Title = "Lock Notification", Text = "Locked On :"..tostring(Plr.Name); Icon = "", Duration = 1, }) end end end end) function getClosestPlayerToCursor() local closestPlayer local shortestDistance = Settings.rewrittenmain.FOV for i, v in pairs(game.Players:GetPlayers()) do if v ~= game.Players.LocalPlayer and v.Character and v.Character:FindFirstChild("Humanoid") and v.Character.Humanoid.Health ~= 0 and v.Character:FindFirstChild("HumanoidRootPart") then local pos = CC:WorldToViewportPoint(v.Character.PrimaryPart.Position) local magnitude = (Vector2.new(pos.X, pos.Y) - Vector2.new(mouse.X, mouse.Y)).magnitude if magnitude < shortestDistance then closestPlayer = v shortestDistance = magnitude end end end return closestPlayer end local pingvalue = nil; local split = nil; local ping = nil; game:GetService"RunService".Stepped:connect(function() if enabled and Plr.Character ~= nil and Plr.Character:FindFirstChild("HumanoidRootPart") then placemarker.CFrame = CFrame.new(Plr.Character.HumanoidRootPart.Position+(Plr.Character.HumanoidRootPart.Velocity*accomidationfactor)) else placemarker.CFrame = CFrame.new(0, 9999, 0) end if Settings.rewrittenmain.AUTOPRED == true then pingvalue = game:GetService("Stats").Network.ServerStatsItem["Data Ping"]:GetValueString() split = string.split(pingvalue,'(') ping = tonumber(split[1]) if ping < 130 then PredictionValue = 0.151 elseif ping < 125 then PredictionValue = 0.149 elseif ping < 110 then PredictionValue = 0.146 elseif ping < 105 then PredictionValue = 0.138 elseif ping < 90 then PredictionValue = 0.136 elseif ping < 80 then PredictionValue = 0.134 elseif ping < 70 then PredictionValue = 0.131 elseif ping < 60 then PredictionValue = 0.1229 elseif ping < 50 then PredictionValue = 0.1225 elseif ping < 40 then PredictionValue = 0.1256 end end end) local mt = getrawmetatable(game) local old = mt.__namecall setreadonly(mt, false) mt.__namecall = newcclosure(function(...) local args = {...} if enabled and getnamecallmethod() == "FireServer" and args[2] == "UpdateMousePos" and Settings.rewrittenmain.Enabled and Plr.Character ~= nil then -- args[3] = Plr.Character.HumanoidRootPart.Position+(Plr.Character.HumanoidRootPart.Velocity*accomidationfactor) --[[ if Settings.rewrittenmain.AIRSHOT == true then if game.Workspace.Players[Plr.Name].Humanoid:GetState() == Enum.HumanoidStateType.Freefall then -- Plr.Character:WaitForChild("Humanoid"):GetState() == Enum.HumanoidStateType.Freefall --// Airshot args[3] = Plr.Character.LeftFoot.Position+(Plr.Character.LeftFoot.Velocity*PredictionValue) else args[3] = Plr.Character.HumanoidRootPart.Position+(Plr.Character.HumanoidRootPart.Velocity*PredictionValue) end else args[3] = Plr.Character.HumanoidRootPart.Position+(Plr.Character.HumanoidRootPart.Velocity*PredictionValue) end ]] if Prediction == true then args[3] = Plr.Character[SelectedPart].Position+(Plr.Character[SelectedPart].Velocity*PredictionValue) else args[3] = Plr.Character[SelectedPart].Position end return old(unpack(args)) end return old(...) end) game:GetService("RunService").RenderStepped:Connect(function() if Settings.rewrittenmain.RESOVLER == true and Plr.Character ~= nil and enabled and Settings.rewrittenmain.Enabled then if Settings.rewrittenmain.AIRSHOT == true and enabled and Plr.Character ~= nil then if game.Workspace.Players[Plr.Name].Humanoid:GetState() == Enum.HumanoidStateType.Freefall then -- Plr.Character:WaitForChild("Humanoid"):GetState() == Enum.HumanoidStateType.Freefall --// Airshot --// Anchor Check if Plr.Character ~= nil and Plr.Character.HumanoidRootPart.Anchored == true then AnchorCount = AnchorCount + 1 if AnchorCount >= MaxAnchor then Prediction = false wait(2) AnchorCount = 0; end else Prediction = true AnchorCount = 0; end SelectedPart = "HumanoidRootPart" else --// Anchor Check if Plr.Character ~= nil and Plr.Character.HumanoidRootPart.Anchored == true then AnchorCount = AnchorCount + 1 if AnchorCount >= MaxAnchor then Prediction = false wait(2) AnchorCount = 0; end else Prediction = true AnchorCount = 0; end SelectedPart = "HumanoidRootPart" end else --// Anchor Check if Plr.Character ~= nil and Plr.Character.HumanoidRootPart.Anchored == true then AnchorCount = AnchorCount + 1 if AnchorCount >= MaxAnchor then Prediction = false wait(2) AnchorCount = 0; end else Prediction = true AnchorCount = 0; end SelectedPart = "HumanoidRootPart" end else SelectedPart = "HumanoidRootPart" end end) game:GetService("RunService").Stepped:connect( function() if Settings.rewrittenmain.TargetStrafe == true and enabled then local lp = game.Players.LocalPlayer.Character local targpos = Plr.Character.HumanoidRootPart.Position lp:SetPrimaryPartCFrame( CFrame.new( targpos + Vector3.new( math.cos(tick() * Settings.rewrittenmain.StrafeSpeed) * Settings.rewrittenmain.StrafeRadius, Settings.rewrittenmain.StrafeHeight, math.sin(tick() * Settings.rewrittenmain.StrafeSpeed) * Settings.rewrittenmain.StrafeRadius ) ) ) game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new( game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame.Position, Vector3.new(targpos.X, game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame.Position.Y, targpos.Z) ) game:GetService("Players").LocalPlayer.Character.Humanoid.AutoRotate = false else game:GetService("Players").LocalPlayer.Character.Humanoid.AutoRotate = true end end ) --the TargetLock getgenv().Prediction = 0.143105125985120958176 getgenv().AimPart = "UpperTorso" getgenv().Key = "Q" getgenv().DisableKey = "P" getgenv().FOV = true getgenv().ShowFOV = false getgenv().FOVSize = 55 --// Variables (Service) local Players = game:GetService("Players") local RS = game:GetService("RunService") local WS = game:GetService("Workspace") local GS = game:GetService("GuiService") local SG = game:GetService("StarterGui") --// Variables (regular) local LP = Players.LocalPlayer local Mouse = LP:GetMouse() local Camera = WS.CurrentCamera local GetGuiInset = GS.GetGuiInset local AimlockState = true local Locked local Victim local SelectedKey = getgenv().Key local SelectedDisableKey = getgenv().DisableKey --// Check if aimlock is loaded if getgenv().Loaded == true then Notify("Aimlock is already loaded!") return end getgenv().Loaded = true --// FOV Circle local fov = Drawing.new("Circle") fov.Filled = false fov.Transparency = 1 fov.Thickness = 1 fov.Color = Color3.fromRGB(255, 255, 0) fov.NumSides = 1000 --// Functions function update() if getgenv().FOV == true then if fov then fov.Radius = getgenv().FOVSize * 2 fov.Visible = getgenv().ShowFOV fov.Position = Vector2.new(Mouse.X, Mouse.Y + GetGuiInset(GS).Y) return fov end end end function WTVP(arg) return Camera:WorldToViewportPoint(arg) end function WTSP(arg) return Camera.WorldToScreenPoint(Camera, arg) end function getClosest() local closestPlayer local shortestDistance = math.huge for i, v in pairs(game.Players:GetPlayers()) do local notKO = v.Character:WaitForChild("BodyEffects")["K.O"].Value ~= true local notGrabbed = v.Character:FindFirstChild("GRABBING_COINSTRAINT") == nil if v ~= game.Players.LocalPlayer and v.Character and v.Character:FindFirstChild("Humanoid") and v.Character.Humanoid.Health ~= 0 and v.Character:FindFirstChild(getgenv().AimPart) and notKO and notGrabbed then local pos = Camera:WorldToViewportPoint(v.Character.PrimaryPart.Position) local magnitude = (Vector2.new(pos.X, pos.Y) - Vector2.new(Mouse.X, Mouse.Y)).magnitude if (getgenv().FOV) then if (fov.Radius > magnitude and magnitude < shortestDistance) then closestPlayer = v shortestDistance = magnitude end else if (magnitude < shortestDistance) then closestPlayer = v shortestDistance = magnitude end end end end return closestPlayer end --// Checks if key is down Mouse.KeyDown:Connect(function(k) SelectedKey = SelectedKey:lower() SelectedDisableKey = SelectedDisableKey:lower() if k == SelectedKey then if AimlockState == true then Locked = not Locked if Locked then Victim = getClosest() Notify("Locked onto: "..tostring(Victim.Character.Humanoid.DisplayName)) else if Victim ~= nil then Victim = nil Notify("Unlocked!") end end else Notify("Aimlock is not enabled!") end end if k == SelectedDisableKey then AimlockState = not AimlockState end end) --// Loop update FOV and loop camera lock onto target RS.RenderStepped:Connect(function() update() if AimlockState == true then if Victim ~= nil then Camera.CFrame = CFrame.new(Camera.CFrame.p, Victim.Character[getgenv().AimPart].Position + Victim.Character[getgenv().AimPart].Velocity*getgenv().Prediction) end end end) while wait() do if getgenv().AutoPrediction == true then local pingvalue = game:GetService("Stats").Network.ServerStatsItem["Data Ping"]:GetValueString() local split = string.split(pingvalue,'(') local ping = tonumber(split[1]) if ping < 225 then getgenv().Prediction = 1.4 elseif ping < 215 then getgenv().Prediction = 1.2 elseif ping < 205 then getgenv().Prediction = 1.0 elseif ping < 190 then getgenv().Prediction = 0.10 elseif ping < 180 then getgenv().Prediction = 0.12 elseif ping < 170 then getgenv().Prediction = 0.15 elseif ping < 160 then getgenv().Prediction = 0.18 elseif ping < 150 then getgenv().Prediction = 0.110 elseif ping < 140 then getgenv().Prediction = 0.113 elseif ping < 130 then getgenv().Prediction = 0.116 elseif ping < 120 then getgenv().Prediction = 0.120 elseif ping < 110 then getgenv().Prediction = 0.124 elseif ping < 105 then getgenv().Prediction = 0.127 elseif ping < 90 then getgenv().Prediction = 0.130 elseif ping < 80 then getgenv().Prediction = 0.133 elseif ping < 70 then getgenv().Prediction = 0.136 elseif ping < 60 then getgenv().Prediction = 0.140 elseif ping < 50 then getgenv().Prediction = 0.143 elseif ping < 40 then getgenv().Prediction = 0.145 elseif ping < 30 then getgenv().Prediction = 0.155 elseif ping < 20 then getgenv().Prediction = 0.157 end end end