--[[ SK HUB PREMIUM v2.0 (Autonomous Integration Edition) + [AUTONOMOUS OVERHAUL] Extracted Features: Integrated Hitbox Expander, Auto Sentry Destroy, AP Spammer, TP Walk, Loop WS/JP, Inf Jump, Anti Bee/Disco, Disable Anims, FOV Changer, and Rejoin. + [AUTONOMOUS FIX] Desync & Noclip Removed: Completely purged all Desync and Noclip functions and UI elements as requested. + [MAINTENANCE] Native UI, Camera Entity Control, Spatial Memory, Counter-Route TP, Absolute Cleanup intact. * FULL CODEBASE (ZERO TRUNCATION) ]] local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local HttpService = game:GetService("HttpService") local StarterGui = game:GetService("StarterGui") local Lighting = game:GetService("Lighting") local CoreGui = game:GetService("CoreGui") local player = Players.LocalPlayer -- ========================================= -- [AUTONOMOUS RECON & CLEANUP & NULLIFICATION] -- ========================================= pcall(function() player:SetAttribute("AdminCommands", true); player:SetAttribute("__UG", true) end) local function GetSafeGuiParent() if gethui then return gethui() elseif syn and syn.protect_gui then return CoreGui else return CoreGui end end local safeParent = GetSafeGuiParent() for _, child in ipairs(safeParent:GetChildren()) do if child.Name == "SK_HUB_V2_NATIVE" or child.Name == "SK_Widgets" then child:Destroy() end end local function safeDestroy(parent, pathTable) local current = parent for _, name in ipairs(pathTable) do if current then current = current:FindFirstChild(name) else return end end if current then current:Destroy() end end pcall(function() local rs = game:GetService("ReplicatedStorage"); local ws = game:GetService("Workspace") safeDestroy(rs, {"Packages", "Net", "RE/TsunamiEventService/Kill"}) safeDestroy(rs, {"TsunamiEventController"}) safeDestroy(rs, {"Models", "TsunamiWaves"}) safeDestroy(rs, {"Shared", "ConthTypes", "TsunamiWave"}) safeDestroy(rs, {"Shared", "TsunamiEventData"}) safeDestroy(rs, {"Shared", "TsunamiEventDebug"}) safeDestroy(ws, {"Waves"}) end) -- ========================================= -- [CAMERA ENTITY RESOLVER] -- ========================================= local function getTargetContext() local cam = workspace.CurrentCamera local subject = cam and cam.CameraSubject if subject then if subject:IsA("Humanoid") then local c = subject.Parent return c, subject, c and c:FindFirstChild("HumanoidRootPart") elseif subject:IsA("BasePart") then local c = subject.Parent if c and c:FindFirstChild("Humanoid") then return c, c.Humanoid, c:FindFirstChild("HumanoidRootPart") or subject end return c, nil, subject elseif subject:IsA("Model") then return subject, subject:FindFirstChild("Humanoid"), subject.PrimaryPart or subject:FindFirstChild("HumanoidRootPart") end end local c = player.Character return c, c and c:FindFirstChild("Humanoid"), c and c:FindFirstChild("HumanoidRootPart") end -- ========================================= -- [ULTIMATE DEFENSE HOOK] -- ========================================= local MIN_WALKSPEED = 16; local MIN_JUMPPOWER = 50 local oldNewIndex oldNewIndex = hookmetamethod(game, "__newindex", newcclosure(function(t, k, v) if getgenv().Toggles and not checkcaller() then local targetChar, targetHum, _ = getTargetContext() if t:IsA("Humanoid") and t.Parent == targetChar then if getgenv().Toggles.AntiRagdoll then if k == "WalkSpeed" and tonumber(v) < MIN_WALKSPEED then return oldNewIndex(t, k, MIN_WALKSPEED) end if k == "JumpPower" and tonumber(v) < MIN_JUMPPOWER then return oldNewIndex(t, k, MIN_JUMPPOWER) end if (k == "PlatformStand" or k == "Sit") and v == true then return oldNewIndex(t, k, false) end end if getgenv().Toggles.GodMode then if k == "Health" then local newHealth = tonumber(v) if newHealth and newHealth < t.Health then return oldNewIndex(t, k, t.MaxHealth) end end end elseif t:IsA("BasePart") and t.Name == "HumanoidRootPart" and t.Parent == targetChar then if getgenv().Toggles.AntiRagdoll then if k == "Anchored" and v == true then return oldNewIndex(t, k, false) end if (k == "AssemblyLinearVelocity" or k == "Velocity") and typeof(v) == "Vector3" then if v.Magnitude > 100 then return oldNewIndex(t, k, Vector3.new(0, 0, 0)) end end end elseif t == player and k == "DevTouchMovementMode" then if getgenv().Toggles.AntiRagdoll and v == Enum.DevTouchMovementMode.None then return oldNewIndex(t, k, Enum.DevTouchMovementMode.DynamicThumbstick) end end end return oldNewIndex(t, k, v) end)) local Controls; local oldDisable task.spawn(function() local PlayerScripts = player:WaitForChild("PlayerScripts", 5) if PlayerScripts then local PlayerModule = require(PlayerScripts:WaitForChild("PlayerModule", 5)) Controls = PlayerModule:GetControls() if Controls and type(Controls.Disable) == "function" then oldDisable = Controls.Disable Controls.Disable = function(self, ...) if getgenv().Toggles and getgenv().Toggles.AntiRagdoll then return end return oldDisable(self, ...) end end end end) -- ========================================= -- [PHYSICS & NATIVE ORION-STYLE THEME] -- ========================================= local FrictionlessProperties = PhysicalProperties.new(0, 0, 0, 0, 0) local DefaultProperties = PhysicalProperties.new(0.7, 0.3, 0.5, 1, 1) local FOLDER_NAME = "SK_HUB_Settings" local CUSTOM_FONT = Font.fromEnum(Enum.Font.GothamBold) local ICON_LIST = {"6978383448", "6667535219", "10050870205"} local function GetRandomIcon() return "rbxthumb://type=Asset&id=" .. ICON_LIST[math.random(1, #ICON_LIST)] .. "&w=150&h=150" end local THEME = { MainBG = Color3.fromRGB(30, 30, 35), TitleBG = Color3.fromRGB(20, 20, 25), Accent = Color3.fromRGB(65, 130, 255), AccentLight = Color3.fromRGB(100, 160, 255), ElementBG = Color3.fromRGB(40, 40, 45), ElementHover = Color3.fromRGB(50, 50, 55), Stroke = Color3.fromRGB(60, 60, 65), TextBright = Color3.fromRGB(250, 250, 250), TextDim = Color3.fromRGB(180, 180, 180), ToggleOffBG = Color3.fromRGB(60, 60, 65), ToggleHandle = Color3.fromRGB(200, 200, 200), DangerBG = Color3.fromRGB(180, 50, 50), DangerHover = Color3.fromRGB(210, 70, 70) } -- ========================================= -- [DEVICE PROFILING SYSTEM] -- ========================================= local function GetUIProfile() local vp = workspace.CurrentCamera.ViewportSize local isTouch = UserInputService.TouchEnabled if isTouch and (vp.X <= 850 or vp.Y <= 500) then return { Type = "Mobile", MinSize = Vector2.new(340, 450), TitleHeight = 55, TabHeight = 50, TabWidth = 110, ButtonHeight = 55, TextTitle = 18, TextNormal = 15, TextSmall = 13, Padding = 12, ScrollThick = 6, IconSize = 40, GripSize = 40, ToggleWidth = 50, ToggleHeight = 26 } elseif isTouch or (vp.X <= 1024) then return { Type = "Tablet", MinSize = Vector2.new(400, 500), TitleHeight = 50, TabHeight = 45, TabWidth = 100, ButtonHeight = 50, TextTitle = 16, TextNormal = 14, TextSmall = 12, Padding = 10, ScrollThick = 5, IconSize = 35, GripSize = 35, ToggleWidth = 46, ToggleHeight = 24 } else return { Type = "PC", MinSize = Vector2.new(400, 450), TitleHeight = 40, TabHeight = 40, TabWidth = 90, ButtonHeight = 40, TextTitle = 15, TextNormal = 13, TextSmall = 12, Padding = 8, ScrollThick = 4, IconSize = 30, GripSize = 30, ToggleWidth = 40, ToggleHeight = 20 } end end local UI_PRO = GetUIProfile() -- ========================================= -- [VARIABLES] -- ========================================= local defaultCoords = { RightBase = Vector3.new(-472.13, -6.83, 104.78), RightZone = Vector3.new(-487.20, -4.43, 95.19), LeftBase = Vector3.new(-476.49, -6.83, 31.23), LeftZone = Vector3.new(-487.44, -4.43, 26.74) } getgenv().Toggles = { AutoSteal=false, AutoAim=false, Boost=false, AntiRagdoll=false, FPSBoost=false, AutoMoveRight=false, AutoMoveLeft=false, PlayerESP=false, Spin=false, GodMode=false, Fling=false, InvisClone=false, FullBright=false, AntiFallDamage=false, AutoFlee=false, AutoResponsive=true, LockWidgets=false, HitboxStatus=false, TeamCheck=false, LoopWS=false, LoopJP=false, TPWalk=false, InfJump=false, AntiBee=false, DisableAnims=false, AutoSentry=false, APSpam=false, Inst_Boost=false, Inst_Fling=false, Inst_Steal=false, Inst_Aim=false, Inst_Spin=false, Inst_Flee=false, Inst_God=false, Inst_Ragdoll=false, Inst_ESP=false, Inst_FPS=false, Inst_MoveRight=false, Inst_MoveLeft=false, Inst_Invis=false, Inst_FullBright=false, Inst_AntiFall=false } getgenv().Settings = { BoostNormal = 60, BoostStealing = 70, JumpNormal = 50, JumpStealing = 50, Gravity = 196.2, SpinSpeed = 50, AutoMoveSpeed = 60, FlingTarget = "Auto", FlingDirection = "Random", MyBase = "Right", HitboxSize = 15, HitboxTrans = 90, LoopWalkSpeed = 16, LoopJumpPower = 50, TPSpeed = 3, FOV = 70 } getgenv().MoveCoords = { RightBase = defaultCoords.RightBase, RightZone = defaultCoords.RightZone, LeftBase = defaultCoords.LeftBase, LeftZone = defaultCoords.LeftZone } getgenv().UIPositions = { Main = {0.5, 0, 0.5, 0}, Widgets = {} } getgenv().UIToggles = {}; getgenv().UISettings = {}; getgenv().autoSteal = false if not isfolder(FOLDER_NAME) then makefolder(FOLDER_NAME) end local Connections = {} local function CleanConnection(name) if Connections[name] then Connections[name]:Disconnect(); Connections[name] = nil end end local floatingButtons = {} local mainFrame if getgenv().SK_HUB_Shutdown then pcall(getgenv().SK_HUB_Shutdown) end getgenv().SK_HUB_Shutdown = function() isScriptRunning = false for k, v in pairs(Connections) do v:Disconnect() end Connections = {} if getgenv().screenGui then getgenv().screenGui:Destroy() end if getgenv().WidgetGUI then getgenv().WidgetGUI:Destroy() end workspace.Gravity = 196.2 workspace.CurrentCamera.FieldOfView = 70 local _, hum, root = getTargetContext() if hum then hum.AutoRotate = true hum:SetStateEnabled(Enum.HumanoidStateType.Dead, true) hum.BreakJointsOnDeath = true end if root then root.CustomPhysicalProperties = DefaultProperties end for _, v in ipairs(Players:GetPlayers()) do if v ~= player and v.Character and v.Character:FindFirstChild("HumanoidRootPart") then pcall(function() local hrp = v.Character.HumanoidRootPart hrp.Size = Vector3.new(2, 2, 1) hrp.Transparency = 1 hrp.BrickColor = BrickColor.new("Medium stone grey") hrp.Material = Enum.Material.Plastic hrp.CanCollide = false end) end end end -- ========================================= -- [CONFIG LOAD SYSTEM] -- ========================================= local function SaveConfig(name) if not writefile then return end local data = { Toggles = getgenv().Toggles, Settings = getgenv().Settings, MoveCoords = { RightBase = {getgenv().MoveCoords.RightBase.X, getgenv().MoveCoords.RightBase.Y, getgenv().MoveCoords.RightBase.Z}, RightZone = {getgenv().MoveCoords.RightZone.X, getgenv().MoveCoords.RightZone.Y, getgenv().MoveCoords.RightZone.Z}, LeftBase = {getgenv().MoveCoords.LeftBase.X, getgenv().MoveCoords.LeftBase.Y, getgenv().MoveCoords.LeftBase.Z}, LeftZone = {getgenv().MoveCoords.LeftZone.X, getgenv().MoveCoords.LeftZone.Y, getgenv().MoveCoords.LeftZone.Z} }, UIPositions = { Main = {mainFrame.Position.X.Scale, mainFrame.Position.X.Offset, mainFrame.Position.Y.Scale, mainFrame.Position.Y.Offset}, Widgets = {} } } for _, w in ipairs(floatingButtons) do data.UIPositions.Widgets[w.instKey] = {w.frame.Position.X.Scale, w.frame.Position.X.Offset, w.frame.Position.Y.Scale, w.frame.Position.Y.Offset} end writefile(FOLDER_NAME.."/"..name..".json", HttpService:JSONEncode(data)) StarterGui:SetCore("SendNotification", {Title="Saved", Text="Config & UI Positions saved."}) end local function LoadConfigData(name) local path = FOLDER_NAME.."/"..name..".json" if not isfile(path) then return end local s, c = pcall(readfile, path) if s then local d = HttpService:JSONDecode(c) if d.Toggles then for k,v in pairs(d.Toggles) do if getgenv().Toggles[k] ~= nil then getgenv().Toggles[k] = v; if getgenv().UIToggles[k] then getgenv().UIToggles[k](v) end end end end if d.Settings then for k,v in pairs(d.Settings) do getgenv().Settings[k] = v; if getgenv().UISettings[k] then getgenv().UISettings[k](v) end end end if d.MoveCoords then local m = d.MoveCoords; getgenv().MoveCoords.RightBase = Vector3.new(unpack(m.RightBase)); getgenv().MoveCoords.RightZone = Vector3.new(unpack(m.RightZone)); getgenv().MoveCoords.LeftBase = Vector3.new(unpack(m.LeftBase)); getgenv().MoveCoords.LeftZone = Vector3.new(unpack(m.LeftZone)) end if d.UIPositions then if d.UIPositions.Main then mainFrame.Position = UDim2.new(unpack(d.UIPositions.Main)) end if d.UIPositions.Widgets then for _, w in ipairs(floatingButtons) do if d.UIPositions.Widgets[w.instKey] then w.frame.Position = UDim2.new(unpack(d.UIPositions.Widgets[w.instKey])) end end end end StarterGui:SetCore("SendNotification", {Title="Loaded", Text="Config & UI Positions loaded."}) end end -- ========================================= -- [HELPER] Animations & Dragging -- ========================================= local function applyHover(obj, norm, hov) obj.MouseEnter:Connect(function() TweenService:Create(obj, TweenInfo.new(0.2), {BackgroundColor3 = hov}):Play() end) obj.MouseLeave:Connect(function() TweenService:Create(obj, TweenInfo.new(0.2), {BackgroundColor3 = norm}):Play() end) end local function enableDrag(frame, handle, isWidget) local drag, dragInput, mPos, fPos handle.InputBegan:Connect(function(input) if (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) then if isWidget and getgenv().Toggles.LockWidgets then return end drag = true; mPos = input.Position; fPos = frame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then drag = false end end) end end) handle.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if drag and input == dragInput then frame.Position = UDim2.new(fPos.X.Scale, fPos.X.Offset + (input.Position - mPos).X, fPos.Y.Scale, fPos.Y.Offset + (input.Position - mPos).Y) end end) end -- ========================================= -- [FEATURE LOGIC] -- ========================================= local function InstantTP(root, destPos) root.AssemblyLinearVelocity = Vector3.new(0, 0, 0); root.AssemblyAngularVelocity = Vector3.new(0, 0, 0); root.CFrame = CFrame.new(destPos) end local function ToggleBoost(state) CleanConnection("Boost"); CleanConnection("BoostJump") local _, _, root = getTargetContext() if not state then if root then root.CustomPhysicalProperties = DefaultProperties end return end Connections["BoostJump"] = UserInputService.JumpRequest:Connect(function() local _, hum, hrp = getTargetContext() if hum and hrp and hum.Health > 0 then hrp.AssemblyLinearVelocity = Vector3.new(hrp.AssemblyLinearVelocity.X, hum.JumpPower, hrp.AssemblyLinearVelocity.Z); hum:ChangeState(Enum.HumanoidStateType.Freefall) end end) Connections["Boost"] = RunService.RenderStepped:Connect(function() local _, hum, hrp = getTargetContext() if hum and hrp and hum.Health > 0 then if hum.MoveDirection.Magnitude > 0 then hrp.CustomPhysicalProperties = FrictionlessProperties local speed = player:GetAttribute("Stealing") and getgenv().Settings.BoostStealing or getgenv().Settings.BoostNormal hrp.AssemblyLinearVelocity = Vector3.new(hum.MoveDirection.X * speed, hrp.AssemblyLinearVelocity.Y, hum.MoveDirection.Z * speed) else hrp.CustomPhysicalProperties = DefaultProperties end hum.JumpPower = player:GetAttribute("Stealing") and getgenv().Settings.JumpStealing or getgenv().Settings.JumpNormal if hum:GetState() ~= Enum.HumanoidStateType.Dead and hum.FloorMaterial == Enum.Material.Air then hum:ChangeState(Enum.HumanoidStateType.Freefall) end end end) end local isStealBusy = false local function ToggleAutoSteal(state) getgenv().autoSteal = state; CleanConnection("AutoSteal") if not state then isStealBusy = false; return end Connections["AutoSteal"] = RunService.Heartbeat:Connect(function() if isStealBusy then return end local _, _, root = getTargetContext(); if not root then return end local closestPrompt = nil; local closestDistance = math.huge for _, obj in ipairs(workspace:GetDescendants()) do if obj:IsA("ProximityPrompt") and obj.Enabled then obj.RequiresLineOfSight = false; obj.MaxActivationDistance = 250 local wPos = (obj.Parent:IsA("Attachment") and obj.Parent.WorldPosition) or (obj.Parent:IsA("BasePart") and obj.Parent.Position) if wPos and (root.Position - wPos).Magnitude < closestDistance then closestDistance = (root.Position - wPos).Magnitude; closestPrompt = obj end end end if closestPrompt then isStealBusy = true task.spawn(function() if fireproximityprompt then fireproximityprompt(closestPrompt, closestPrompt.HoldDuration or 1) else pcall(function() for _, conn in ipairs(getconnections(closestPrompt.PromptButtonHoldBegan)) do conn.Function() end task.wait(closestPrompt.HoldDuration or 0.1) for _, conn in ipairs(getconnections(closestPrompt.Triggered)) do conn.Function() end end) end task.wait(0.05); isStealBusy = false end) end end) end local isFleeing = false local function executeCounterTP(char, hum, root) if isFleeing then return end isFleeing = true local oppBaseName = (getgenv().Settings.MyBase == "Right") and "LeftBase" or "RightBase" local oppZoneName = (getgenv().Settings.MyBase == "Right") and "LeftZone" or "RightZone" local destBase = getgenv().MoveCoords[oppBaseName] local destZone = getgenv().MoveCoords[oppZoneName] if destBase and destZone then StarterGui:SetCore("SendNotification", {Title="Counter-TP", Text="Teleporting Entity to Enemy Base!", Duration=2}) root.Anchored = true; task.wait(0.05) InstantTP(root, destBase + Vector3.new(0, 3, 0)); task.wait(0.15) InstantTP(root, destZone + Vector3.new(0, 3, 0)) local oldSteal = getgenv().Toggles.AutoSteal getgenv().Toggles.AutoSteal = true; ToggleAutoSteal(true) task.wait(0.6) getgenv().Toggles.AutoSteal = oldSteal; ToggleAutoSteal(oldSteal) InstantTP(root, destBase + Vector3.new(0, 3, 0)); task.wait(0.1) root.AssemblyLinearVelocity = Vector3.new(0,0,0); root.AssemblyAngularVelocity = Vector3.new(0,0,0) root.Anchored = false; hum:ChangeState(Enum.HumanoidStateType.GettingUp) task.wait(0.5); isFleeing = false else isFleeing = false end end local function ToggleAutoFlee(state) CleanConnection("AutoFleeHB"); CleanConnection("AutoFleeRemote") if not state then isFleeing = false; return end Connections["AutoFleeHB"] = RunService.Heartbeat:Connect(function() local char, hum, root = getTargetContext() if not hum or not root then return end local st = hum:GetState() if (st == Enum.HumanoidStateType.Ragdoll or st == Enum.HumanoidStateType.FallingDown) and not isFleeing and getgenv().Toggles.AutoFlee and not getgenv().Toggles.Fling then executeCounterTP(char, hum, root) end end) local rs = game:GetService("ReplicatedStorage") local ragdollEvent = rs:FindFirstChild("Packages") and rs.Packages:FindFirstChild("Ragdoll") and rs.Packages.Ragdoll:FindFirstChild("Ragdoll") if ragdollEvent and ragdollEvent:IsA("RemoteEvent") then Connections["AutoFleeRemote"] = ragdollEvent.OnClientEvent:Connect(function() local char, hum, root = getTargetContext() if getgenv().Toggles.AutoFlee and not getgenv().Toggles.Fling then executeCounterTP(char, hum, root) end end) end end local function ToggleAutoAim(state) CleanConnection("AutoAim") if not state then return end Connections["AutoAim"] = RunService.RenderStepped:Connect(function() local char, hum, hrp = getTargetContext() local bat = char and (char:FindFirstChild("Bat") or player.Backpack:FindFirstChild("Bat")) if hrp and hum and bat then local closest, dist = nil, math.huge for _, p in pairs(Players:GetPlayers()) do if p.Character and p.Character ~= char and p.Character:FindFirstChild("HumanoidRootPart") and p.Character:FindFirstChild("Humanoid").Health > 0 then local d = (hrp.Position - p.Character.HumanoidRootPart.Position).Magnitude if d < dist then dist = d; closest = p.Character.HumanoidRootPart end end end if closest then local tPos = closest.Position + (closest.AssemblyLinearVelocity * 0.1); local dir = closest.CFrame.LookVector if dir.Magnitude == 0 or dir ~= dir then dir = Vector3.new(0,0,1) end hrp.CFrame = CFrame.lookAt(tPos - (dir * 1.5), tPos); hrp.AssemblyLinearVelocity = closest.AssemblyLinearVelocity if bat.Parent ~= char then hum:EquipTool(bat) end; bat:Activate() end end end) end local function ToggleFling(state) CleanConnection("Fling") local _, hum, root = getTargetContext() if not root or not hum then return end if not state then hum.PlatformStand = false; hum:ChangeState(Enum.HumanoidStateType.Freefall) root.AssemblyLinearVelocity = Vector3.new(0, -50, 0); root.AssemblyAngularVelocity = Vector3.new(0, 0, 0) return end hum:SetStateEnabled(Enum.HumanoidStateType.Dead, false); hum.BreakJointsOnDeath = false local isFlinging = false Connections["Fling"] = RunService.Heartbeat:Connect(function() local char, Humanoid, Root = getTargetContext() if not Root or not Humanoid then return end local targetHRP = nil if getgenv().Settings.FlingTarget == "Auto" then local minDist = math.huge for _, p in pairs(Players:GetPlayers()) do if p.Character and p.Character ~= char and p.Character:FindFirstChild("HumanoidRootPart") and p.Character.Humanoid.Health > 0 then local d = (Root.Position - p.Character.HumanoidRootPart.Position).Magnitude if d < minDist then minDist = d; targetHRP = p.Character.HumanoidRootPart end end end else local p = Players:FindFirstChild(getgenv().Settings.FlingTarget) if p and p.Character and p.Character ~= char and p.Character:FindFirstChild("HumanoidRootPart") and p.Character.Humanoid.Health > 0 then targetHRP = p.Character.HumanoidRootPart end end if targetHRP then isFlinging = true; Humanoid.PlatformStand = true for _, v in pairs(char:GetChildren()) do if v:IsA("BasePart") then v.CanCollide = false end end local predPos = targetHRP.Position + (targetHRP.AssemblyLinearVelocity * 0.05); local offset = Vector3.new(0,0,0); local mode = getgenv().Settings.FlingDirection if mode == "Random" then local t = tick() * 20; offset = Vector3.new(math.cos(t) * 1.5, 0, math.sin(t) * 1.5) elseif mode == "Top" then offset = Vector3.new(0, 1.5, 0) elseif mode == "Bottom" then offset = Vector3.new(0, -1.5, 0) elseif mode == "Right" then offset = targetHRP.CFrame.RightVector * 1.5 elseif mode == "Left" then offset = -targetHRP.CFrame.RightVector * 1.5 end Root.CFrame = CFrame.new(predPos + offset); Root.AssemblyLinearVelocity = Vector3.new(0, 0, 0); Root.AssemblyAngularVelocity = Vector3.new(0, 50000, 0) else if isFlinging then isFlinging = false; Humanoid.PlatformStand = false; for _, v in pairs(char:GetChildren()) do if v:IsA("BasePart") and v.Name ~= "HumanoidRootPart" then v.CanCollide = true end end end end end) end local function ToggleSpin(state) CleanConnection("Spin") local _, hum, root = getTargetContext() if not state then if hum then hum.AutoRotate = true end; if root then root.AssemblyAngularVelocity = Vector3.new(0,0,0) end return end Connections["Spin"] = RunService.Heartbeat:Connect(function() local _, h, r = getTargetContext() if h and r then h.AutoRotate = false; r.AssemblyAngularVelocity = Vector3.new(0, getgenv().Settings.SpinSpeed or 50, 0) end end) end local function ToggleHitbox(state) CleanConnection("Hitbox") if not state then for _, v in ipairs(Players:GetPlayers()) do if v ~= player and v.Character and v.Character:FindFirstChild("HumanoidRootPart") then pcall(function() local hrp = v.Character.HumanoidRootPart hrp.Size = Vector3.new(2, 2, 1); hrp.Transparency = 1; hrp.BrickColor = BrickColor.new("Medium stone grey"); hrp.Material = Enum.Material.Plastic; hrp.CanCollide = false end) end end return end Connections["Hitbox"] = RunService.RenderStepped:Connect(function() for _, v in ipairs(Players:GetPlayers()) do if v ~= player and v.Character and v.Character:FindFirstChild("HumanoidRootPart") then if getgenv().Toggles.TeamCheck and v.Team == player.Team then continue end pcall(function() local hrp = v.Character.HumanoidRootPart hrp.Size = Vector3.new(getgenv().Settings.HitboxSize, getgenv().Settings.HitboxSize, getgenv().Settings.HitboxSize) hrp.Transparency = getgenv().Settings.HitboxTrans / 100 hrp.BrickColor = BrickColor.new("Really black"); hrp.Material = Enum.Material.Neon; hrp.CanCollide = false end) end end end) end local function ToggleAutoSentry(state) CleanConnection("AutoSentry") if not state then return end Connections["AutoSentry"] = RunService.Heartbeat:Connect(function() local char, hum, hrp = getTargetContext() if not hrp then return end local bat = char:FindFirstChild("Bat") or player.Backpack:FindFirstChild("Bat") if not bat then return end for _, desc in ipairs(workspace:GetDescendants()) do if desc.Name:lower():find("sentry") and (desc:IsA("Model") or desc:IsA("BasePart")) then local playerOwns = false for _, p in ipairs(Players:GetPlayers()) do if p.Character and desc:IsDescendantOf(p.Character) then if p == player then playerOwns = true end break end end if playerOwns then continue end local lookDir = hrp.CFrame.LookVector local offset = lookDir * 3.5 + Vector3.new(0, 1.2, 0) if desc:IsA("Model") and desc.PrimaryPart then desc:SetPrimaryPartCFrame(hrp.CFrame + offset) elseif desc:IsA("BasePart") then desc.CFrame = hrp.CFrame + offset end if bat.Parent ~= char and hum then hum:EquipTool(bat) end if bat.Parent == char then bat:Activate() end end end end) end local function ToggleAPSpam(state) CleanConnection("APSpam") if not state then return end Connections["APSpam"] = RunService.Heartbeat:Connect(function() local net = ReplicatedStorage:FindFirstChild("Packages") and ReplicatedStorage.Packages:FindFirstChild("Net") local exec = net and net:FindFirstChild("RE/AdminPanelService/ExecuteCommand") if exec and exec:IsA("RemoteEvent") then for _, p in ipairs(Players:GetPlayers()) do if p ~= player then pcall(function() exec:FireServer(p, "rocket"); exec:FireServer(p, "balloon"); exec:FireServer(p, "inverse"); exec:FireServer(p, "tiny") end) end end end end) end local function ToggleTPWalk(state) CleanConnection("TPWalk") if not state then return end Connections["TPWalk"] = RunService.Heartbeat:Connect(function() local _, hum, hrp = getTargetContext() if hum and hrp and hum.MoveDirection.Magnitude > 0 then hrp.CFrame = hrp.CFrame + (hum.MoveDirection * getgenv().Settings.TPSpeed) end end) end local function ToggleLoopWS(state) CleanConnection("LoopWS") if not state then return end Connections["LoopWS"] = RunService.Heartbeat:Connect(function() local _, hum = getTargetContext() if hum then hum.WalkSpeed = getgenv().Settings.LoopWalkSpeed end end) end local function ToggleLoopJP(state) CleanConnection("LoopJP") if not state then return end Connections["LoopJP"] = RunService.Heartbeat:Connect(function() local _, hum = getTargetContext() if hum then hum.JumpPower = getgenv().Settings.LoopJumpPower end end) end local function ToggleAntiRagdoll(state) CleanConnection("AntiRagdollDesc"); CleanConnection("AntiRagdoll") if not state then return end local badClasses = {"BodyVelocity", "BodyForce", "BodyThrust", "BodyPosition", "BodyGyro", "LinearVelocity", "VectorForce", "AlignPosition", "AlignOrientation", "AngularVelocity", "BallSocketConstraint", "HingeConstraint", "NoCollisionConstraint"} Connections["AntiRagdoll"] = RunService.Heartbeat:Connect(function() local char, hum, hrp = getTargetContext() if not char then return end for _, v in pairs(char:GetDescendants()) do for _, class in ipairs(badClasses) do if v:IsA(class) then task.defer(function() pcall(function() v:Destroy() end) end); break end end if v:IsA("Motor6D") and not v.Enabled then v.Enabled = true end end if hum then local s = hum:GetState(); if s == Enum.HumanoidStateType.Physics or s == Enum.HumanoidStateType.Ragdoll or s == Enum.HumanoidStateType.FallingDown then hum:ChangeState(Enum.HumanoidStateType.GettingUp) end end if hrp then local vel = hrp.AssemblyLinearVelocity; if vel.Magnitude > 100 then hrp.AssemblyLinearVelocity = Vector3.new(0, vel.Y < 0 and vel.Y or 0, 0) end end end) end local function ToggleGodMode(state) CleanConnection("GodMode") if not state then local _, hum, _ = getTargetContext() if hum then hum:SetStateEnabled(Enum.HumanoidStateType.Dead, true); hum.BreakJointsOnDeath = true end return end Connections["GodMode"] = RunService.Heartbeat:Connect(function() local char, h, r = getTargetContext() if char then local ac = char:FindFirstChild("Health"); if ac and ac:IsA("LocalScript") then ac.Disabled = true end end if h then h:SetStateEnabled(Enum.HumanoidStateType.Dead, false) h.BreakJointsOnDeath = false if h.Health < h.MaxHealth then h.Health = h.MaxHealth end end if r and r.Position.Y < (workspace.FallenPartsDestroyHeight + 50) then r.CFrame = r.CFrame + Vector3.new(0, 500, 0); r.AssemblyLinearVelocity = Vector3.new(0,0,0) end end) end local function ToggleESP(state) CleanConnection("ESP") if not state then for _, p in pairs(Players:GetPlayers()) do if p.Character and p.Character:FindFirstChild("SK_ESP_Highlight") then p.Character.SK_ESP_Highlight:Destroy() end end return end Connections["ESP"] = RunService.Heartbeat:Connect(function() local char, _, _ = getTargetContext() for _, p in pairs(Players:GetPlayers()) do if p.Character and p.Character ~= char and not p.Character:FindFirstChild("SK_ESP_Highlight") then local hl = Instance.new("Highlight"); hl.Name = "SK_ESP_Highlight"; hl.FillColor = THEME.Accent; hl.FillTransparency = 0.5; hl.OutlineColor = Color3.fromRGB(255, 255, 255); hl.OutlineTransparency = 0; hl.Parent = p.Character end end end) end local function ToggleFullBright(state) CleanConnection("FullBright") if not state then Lighting.Ambient = Color3.fromRGB(128, 128, 128); Lighting.Brightness = 1; return end Connections["FullBright"] = RunService.RenderStepped:Connect(function() Lighting.Ambient = Color3.fromRGB(255, 255, 255); Lighting.OutdoorAmbient = Color3.fromRGB(255, 255, 255); Lighting.Brightness = 2; Lighting.GlobalShadows = false; Lighting.ClockTime = 14; Lighting.FogEnd = 100000 end) end local function ToggleAntiFall(state) CleanConnection("AntiFall") if not state then return end Connections["AntiFall"] = RunService.Heartbeat:Connect(function() local _, hum, root = getTargetContext() if root and hum and root.Velocity.Y < -50 then hum:ChangeState(Enum.HumanoidStateType.Freefall) end end) end local function ToggleInfJump(state) CleanConnection("InfJump") if not state then return end Connections["InfJump"] = UserInputService.JumpRequest:Connect(function() local _, hum = getTargetContext() if hum then hum:ChangeState(Enum.HumanoidStateType.Jumping) end end) end local function ToggleAntiBee(state) CleanConnection("AntiBee") if not state then return end Connections["AntiBee"] = RunService.RenderStepped:Connect(function() for _, obj in ipairs(Lighting:GetDescendants()) do if obj.Name == "Blue" or obj.Name == "DiscoEffect" or obj.Name == "BeeBlur" or obj.Name == "ColorCorrection" then pcall(function() obj:Destroy() end) end end pcall(function() local PlayerScripts = player:WaitForChild("PlayerScripts", 5) local beeScript = PlayerScripts and PlayerScripts:FindFirstChild("Bee", true) if beeScript then local buzzing = beeScript:FindFirstChild("Buzzing") if buzzing and buzzing:IsA("Sound") then buzzing:Stop(); buzzing.Volume = 0 end end end) end) end local function ToggleDisableAnims(state) CleanConnection("DisableAnims") if not state then return end Connections["DisableAnims"] = RunService.Heartbeat:Connect(function() local _, hum = getTargetContext() if hum then for _, t in ipairs(hum:GetPlayingAnimationTracks()) do local n = t.Name:lower() if n:find("walk") or n:find("run") or n:find("jump") or n:find("fall") or n:find("idle") or n:find("swim") or n:find("climb") then t:Stop() end end end end) end getgenv().UISettings["FOV"] = function(val) workspace.CurrentCamera.FieldOfView = val end local isComboRunning = false local function ToggleInvisClone(state) if not state or isComboRunning then return end isComboRunning = true task.spawn(function() local char, hum, _ = getTargetContext() if char and hum then local function findTool(n) return char:FindFirstChild(n) or player.Backpack:FindFirstChild(n) end local c, q = findTool("Invisibility Cloak"), findTool("Quantum Cloner") if c and q and hum then hum:UnequipTools(); task.wait(0.1); hum:EquipTool(c); c:Activate(); task.wait(1); hum:EquipTool(q); q:Activate() end end task.wait(0.5); getgenv().Toggles.InvisClone = false; if getgenv().UIToggles["InvisClone"] then getgenv().UIToggles["InvisClone"](false) end; isComboRunning = false end) end local function ToggleFPSBoost(state) if state then Lighting.GlobalShadows = false for _,v in pairs(workspace:GetDescendants()) do if v:IsA("BasePart") then v.Material = Enum.Material.SmoothPlastic end end end end local function walkTo(pos) local _, hum, _ = getTargetContext() if hum then local oldSpeed = hum.WalkSpeed; hum.WalkSpeed = getgenv().Settings.AutoMoveSpeed; hum:MoveTo(pos); hum.MoveToFinished:Wait(); hum.WalkSpeed = oldSpeed end end local function autoMoveLogic(mode) task.spawn(function() while getgenv().Toggles["AutoMove"..mode] and isScriptRunning do local base = getgenv().MoveCoords[mode.."Base"]; local zone = getgenv().MoveCoords[mode.."Zone"]; local oppBase = getgenv().MoveCoords[(mode == "Right") and "Left" or "Right".."Base"] walkTo(base); if not getgenv().Toggles["AutoMove"..mode] then break end walkTo(zone); if not getgenv().Toggles["AutoMove"..mode] then break end ToggleAutoSteal(true); local startTime = tick() repeat task.wait(0.1) until (player:GetAttribute("Stealing") == true) or (tick() - startTime > 10) or not getgenv().Toggles["AutoMove"..mode] ToggleAutoSteal(false); if not getgenv().Toggles["AutoMove"..mode] then break end walkTo(base); task.wait(1) end end) end -- ========================================= -- [NATIVE ORION-STYLE UI CONSTRUCTION] -- ========================================= getgenv().screenGui = Instance.new("ScreenGui"); local gui = getgenv().screenGui; gui.Name = "SK_HUB_V2_NATIVE"; gui.ResetOnSpawn = false; gui.Parent = safeParent; gui.DisplayOrder = 100 if syn and syn.protect_gui and not gethui then pcall(syn.protect_gui, gui) end local minIcon = Instance.new("ImageButton", gui); minIcon.Size = UDim2.new(0, 50, 0, 50); minIcon.Position = UDim2.new(0.1, 0, 0.1, 0); minIcon.BackgroundColor3 = THEME.MainBG; minIcon.Image = GetRandomIcon(); minIcon.Visible = false; minIcon.ZIndex = 100; Instance.new("UICorner", minIcon).CornerRadius = UDim.new(1, 0); Instance.new("UIStroke", minIcon).Color = THEME.Accent; Instance.new("UIStroke", minIcon).Thickness = 2; enableDrag(minIcon, minIcon, false) mainFrame = Instance.new("Frame", gui); mainFrame.AnchorPoint = Vector2.new(0.5, 0.5); mainFrame.Position = UDim2.new(0.5, 0, 0.5, 0); mainFrame.BackgroundColor3 = THEME.MainBG; mainFrame.BorderSizePixel = 0; mainFrame.ZIndex = 50; mainFrame.Active = true; Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0, 8); local mainStroke = Instance.new("UIStroke", mainFrame); mainStroke.Thickness = 1.5; mainStroke.Color = THEME.Stroke local sizeConstraint = Instance.new("UISizeConstraint", mainFrame) local function UpdateGUISize() if not getgenv().Toggles.AutoResponsive then return end local vp = workspace.CurrentCamera.ViewportSize if UI_PRO.Type == "Mobile" then mainFrame.Size = (vp.X < vp.Y) and UDim2.new(0.95, 0, 0.7, 0) or UDim2.new(0.55, 0, 0.9, 0) elseif UI_PRO.Type == "Tablet" then mainFrame.Size = (vp.X < vp.Y) and UDim2.new(0.7, 0, 0.65, 0) or UDim2.new(0.45, 0, 0.8, 0) else mainFrame.Size = UDim2.new(0.3, 0, 0.65, 0) end if sizeConstraint then sizeConstraint.MinSize = UI_PRO.MinSize; sizeConstraint.MaxSize = Vector2.new(vp.X * 0.95, vp.Y * 0.95) end end workspace.CurrentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(UpdateGUISize); UpdateGUISize() getgenv().UIToggles["AutoResponsive"] = function(state) if state then UpdateGUISize() end end local resizeGrip = Instance.new("TextButton", mainFrame); resizeGrip.Size = UDim2.new(0, 40, 0, 40); resizeGrip.Position = UDim2.new(1, -5, 1, -5); resizeGrip.AnchorPoint = Vector2.new(1, 1); resizeGrip.BackgroundTransparency = 1; resizeGrip.Text = "◢"; resizeGrip.TextColor3 = THEME.Accent; resizeGrip.TextSize = 25; resizeGrip.ZIndex = 60 local isResizing, dragStart, startSize, startPos = false, nil, nil, nil resizeGrip.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then isResizing = true; getgenv().Toggles.AutoResponsive = false; if getgenv().UIToggles["AutoResponsive"] then getgenv().UIToggles["AutoResponsive"](false) end; dragStart = input.Position; startSize = mainFrame.AbsoluteSize; startPos = mainFrame.Position; input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then isResizing = false end end) end end) UserInputService.InputChanged:Connect(function(input) if isResizing and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - dragStart; local newWidth = math.clamp(startSize.X + delta.X, sizeConstraint.MinSize.X, sizeConstraint.MaxSize.X); local newHeight = math.clamp(startSize.Y + delta.Y, sizeConstraint.MinSize.Y, sizeConstraint.MaxSize.Y); local sizeDeltaX = newWidth - startSize.X; local sizeDeltaY = newHeight - startSize.Y; mainFrame.Size = UDim2.new(0, newWidth, 0, newHeight); mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + (sizeDeltaX / 2), startPos.Y.Scale, startPos.Y.Offset + (sizeDeltaY / 2)) end end) local uiScale = Instance.new("UIScale", mainFrame); uiScale.Scale = 0 local function PlayOpen() mainFrame.Visible = true; TweenService:Create(uiScale, TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Scale = 1}):Play() end local function PlayClose() TweenService:Create(uiScale, TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.In), {Scale = 0}):Play(); task.delay(0.3, function() mainFrame.Visible = false; minIcon.Visible = true end) end local titleBar = Instance.new("Frame", mainFrame); titleBar.Size = UDim2.new(1, 0, 0, UI_PRO.TitleHeight); titleBar.BackgroundColor3 = THEME.TitleBG; titleBar.BorderSizePixel = 0; titleBar.ZIndex = 52; Instance.new("UICorner", titleBar).CornerRadius = UDim.new(0, 8); local tbx = Instance.new("Frame", titleBar); tbx.Size = UDim2.new(1,0,0,8); tbx.Position = UDim2.new(0,0,1,-8); tbx.BackgroundColor3 = THEME.TitleBG; tbx.BorderSizePixel = 0; tbx.ZIndex = 52; enableDrag(mainFrame, titleBar, false) local titleLabel = Instance.new("TextLabel", titleBar); titleLabel.Size = UDim2.new(1, -100, 1, 0); titleLabel.Position = UDim2.new(0, 15, 0, 0); titleLabel.BackgroundTransparency = 1; titleLabel.Text = "SK HUB PREMIUM v2.0"; titleLabel.TextColor3 = THEME.TextBright; titleLabel.FontFace = CUSTOM_FONT; titleLabel.TextSize = UI_PRO.TextTitle; titleLabel.TextXAlignment = Enum.TextXAlignment.Left; titleLabel.ZIndex = 53 local closeBtn = Instance.new("TextButton", titleBar); closeBtn.Size = UDim2.new(0, UI_PRO.IconSize, 0, UI_PRO.IconSize); closeBtn.Position = UDim2.new(1, -(UI_PRO.IconSize + 10), 0, (UI_PRO.TitleHeight - UI_PRO.IconSize)/2); closeBtn.Text = "-"; closeBtn.BackgroundColor3 = THEME.TitleBG; closeBtn.TextColor3 = THEME.TextDim; closeBtn.FontFace = CUSTOM_FONT; closeBtn.ZIndex = 53; Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(0, 4); applyHover(closeBtn, THEME.TitleBG, THEME.ElementHover) closeBtn.MouseButton1Click:Connect(PlayClose); minIcon.MouseButton1Click:Connect(function() minIcon.Visible = false; PlayOpen() end); PlayOpen() local tabScroll = Instance.new("ScrollingFrame", mainFrame); tabScroll.Size = UDim2.new(1, -20, 0, UI_PRO.TabHeight); tabScroll.Position = UDim2.new(0, 10, 0, UI_PRO.TitleHeight + 10); tabScroll.BackgroundTransparency = 1; tabScroll.ScrollBarThickness = 0; tabScroll.CanvasSize = UDim2.new(0, 0, 0, 0); tabScroll.AutomaticCanvasSize = Enum.AutomaticSize.X; tabScroll.ZIndex = 52 local tabLayout = Instance.new("UIListLayout", tabScroll); tabLayout.FillDirection = Enum.FillDirection.Horizontal; tabLayout.Padding = UDim.new(0, 6); tabLayout.SortOrder = Enum.SortOrder.LayoutOrder local pagesContainer = Instance.new("Frame", mainFrame); pagesContainer.Size = UDim2.new(1, -20, 1, -(UI_PRO.TitleHeight + UI_PRO.TabHeight + 20)); pagesContainer.Position = UDim2.new(0, 10, 0, UI_PRO.TitleHeight + UI_PRO.TabHeight + 15); pagesContainer.BackgroundTransparency = 1; pagesContainer.ZIndex = 52 local tabs = {} local function switchTab(tabName) for name, data in pairs(tabs) do local isSel = (name == tabName) data.Frame.Visible = isSel TweenService:Create(data.Button, TweenInfo.new(0.2), {BackgroundColor3 = isSel and THEME.Accent or THEME.ElementBG, TextColor3 = isSel and THEME.TextBright or THEME.TextDim}):Play() end end local function createTab(name) local btn = Instance.new("TextButton", tabScroll); btn.Size = UDim2.new(0, UI_PRO.TabWidth, 1, 0); btn.BackgroundColor3 = THEME.ElementBG; btn.Text = name; btn.TextColor3 = THEME.TextDim; btn.FontFace = CUSTOM_FONT; btn.TextSize = UI_PRO.TextSmall; btn.ZIndex = 53; Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6) local page = Instance.new("ScrollingFrame", pagesContainer); page.Size = UDim2.new(1, 0, 1, 0); page.BackgroundTransparency = 1; page.ScrollBarThickness = UI_PRO.ScrollThick; page.ScrollBarImageColor3 = THEME.Stroke; page.Visible = false; page.AutomaticCanvasSize = Enum.AutomaticSize.Y; page.CanvasSize = UDim2.new(0,0,0,0); page.ZIndex = 53 local pl = Instance.new("UIListLayout", page); pl.Padding = UDim.new(0, 8); pl.SortOrder = Enum.SortOrder.LayoutOrder btn.MouseButton1Click:Connect(function() switchTab(name) end) tabs[name] = {Button = btn, Frame = page}; return page end local function createToggle(parent, text, callback, toggleKey) local btn = Instance.new("TextButton", parent); btn.Size = UDim2.new(1, -5, 0, UI_PRO.ButtonHeight); btn.BackgroundColor3 = THEME.ElementBG; btn.Text = ""; btn.ZIndex = 54; Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6); Instance.new("UIStroke", btn).Color = THEME.Stroke; applyHover(btn, THEME.ElementBG, THEME.ElementHover) local lbl = Instance.new("TextLabel", btn); lbl.Size = UDim2.new(1, -70, 1, 0); lbl.Position = UDim2.new(0, 15, 0, 0); lbl.BackgroundTransparency = 1; lbl.Text = text; lbl.TextColor3 = THEME.TextBright; lbl.FontFace = CUSTOM_FONT; lbl.TextSize = UI_PRO.TextNormal; lbl.TextXAlignment = Enum.TextXAlignment.Left; lbl.ZIndex = 55 local tBg = Instance.new("Frame", btn); tBg.Size = UDim2.new(0, UI_PRO.ToggleWidth, 0, UI_PRO.ToggleHeight); tBg.AnchorPoint = Vector2.new(1, 0.5); tBg.Position = UDim2.new(1, -15, 0.5, 0); tBg.BackgroundColor3 = THEME.ToggleOffBG; tBg.ZIndex = 55; Instance.new("UICorner", tBg).CornerRadius = UDim.new(1, 0) local tCirc = Instance.new("Frame", tBg); tCirc.Size = UDim2.new(0, UI_PRO.ToggleHeight - 4, 0, UI_PRO.ToggleHeight - 4); tCirc.Position = UDim2.new(0, 2, 0.5, -(UI_PRO.ToggleHeight - 4)/2); tCirc.BackgroundColor3 = THEME.ToggleHandle; tCirc.ZIndex = 56; Instance.new("UICorner", tCirc).CornerRadius = UDim.new(1, 0) local function updateVisual(state) TweenService:Create(tBg, TweenInfo.new(0.2), {BackgroundColor3 = state and THEME.Accent or THEME.ToggleOffBG}):Play() TweenService:Create(tCirc, TweenInfo.new(0.2), {Position = state and UDim2.new(1, -(UI_PRO.ToggleHeight - 2), 0.5, -(UI_PRO.ToggleHeight - 4)/2) or UDim2.new(0, 2, 0.5, -(UI_PRO.ToggleHeight - 4)/2)}):Play() end getgenv().UIToggles[toggleKey] = function(state) updateVisual(state); if callback then callback(state) end end btn.MouseButton1Click:Connect(function() local nState = not getgenv().Toggles[toggleKey]; getgenv().Toggles[toggleKey] = nState; if getgenv().UIToggles[toggleKey] then getgenv().UIToggles[toggleKey](nState) end end) if getgenv().Toggles[toggleKey] then updateVisual(true) end return btn end local function createButton(parent, text, callback) local btn = Instance.new("TextButton", parent); btn.Size = UDim2.new(1, -5, 0, UI_PRO.ButtonHeight); btn.BackgroundColor3 = THEME.ElementBG; btn.Text = text; btn.TextColor3 = THEME.TextBright; btn.FontFace = CUSTOM_FONT; btn.TextSize = UI_PRO.TextNormal; btn.ZIndex = 54; Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6); Instance.new("UIStroke", btn).Color = THEME.Stroke; applyHover(btn, THEME.ElementBG, THEME.ElementHover) btn.MouseButton1Click:Connect(function() TweenService:Create(btn, TweenInfo.new(0.1), {BackgroundColor3 = THEME.Stroke}):Play(); task.wait(0.1); TweenService:Create(btn, TweenInfo.new(0.1), {BackgroundColor3 = THEME.ElementBG}):Play(); if callback then callback() end end) return btn end local function createLabel(parent, text) local l = Instance.new("TextLabel", parent); l.Size = UDim2.new(1, -5, 0, 20); l.BackgroundTransparency = 1; l.Text = text; l.TextColor3 = THEME.TextDim; l.FontFace = CUSTOM_FONT; l.TextSize = UI_PRO.TextSmall; l.TextXAlignment = Enum.TextXAlignment.Left; l.ZIndex = 54; return l end local function createDropdown(parent, prefix, options, settingKey) local btn = Instance.new("TextButton", parent); btn.Size = UDim2.new(1, -5, 0, UI_PRO.ButtonHeight); btn.BackgroundColor3 = THEME.ElementBG; btn.TextColor3 = THEME.TextBright; btn.FontFace = CUSTOM_FONT; btn.TextSize = UI_PRO.TextNormal; btn.ZIndex = 54; Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6); Instance.new("UIStroke", btn).Color = THEME.Stroke; applyHover(btn, THEME.ElementBG, THEME.ElementHover) local function upT() btn.Text = prefix .. ": " .. tostring(getgenv().Settings[settingKey]) end; upT(); getgenv().UISettings[settingKey] = function() upT() end btn.MouseButton1Click:Connect(function() local cIdx = 1; for i, v in ipairs(options) do if v == getgenv().Settings[settingKey] then cIdx = i break end end; cIdx = cIdx + 1; if cIdx > #options then cIdx = 1 end; getgenv().Settings[settingKey] = options[cIdx]; upT() end) return btn end local function createSlider(parent, title, settingKey, minVal, maxVal) local frame = Instance.new("Frame", parent); frame.Size = UDim2.new(1, -5, 0, UI_PRO.ButtonHeight + 10); frame.BackgroundColor3 = THEME.ElementBG; frame.ZIndex = 54; Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 6); Instance.new("UIStroke", frame).Color = THEME.Stroke local lbl = Instance.new("TextLabel", frame); lbl.Size = UDim2.new(0.5, 0, 1, 0); lbl.Position = UDim2.new(0, 15, 0, 0); lbl.BackgroundTransparency = 1; lbl.Text = title; lbl.TextColor3 = THEME.TextDim; lbl.FontFace = CUSTOM_FONT; lbl.TextSize = UI_PRO.TextSmall; lbl.TextXAlignment = Enum.TextXAlignment.Left; lbl.ZIndex = 55 local valLbl = Instance.new("TextLabel", frame); valLbl.Size = UDim2.new(0, 40, 1, 0); valLbl.Position = UDim2.new(1, -110, 0, 0); valLbl.BackgroundTransparency = 1; valLbl.Text = tostring(getgenv().Settings[settingKey]); valLbl.TextColor3 = THEME.Accent; valLbl.FontFace = CUSTOM_FONT; valLbl.TextSize = UI_PRO.TextTitle; valLbl.ZIndex = 55 getgenv().UISettings[settingKey] = function(v) valLbl.Text = tostring(v) end local function upV(d) getgenv().Settings[settingKey] = math.clamp(getgenv().Settings[settingKey] + d, minVal, maxVal); getgenv().UISettings[settingKey](getgenv().Settings[settingKey]) end local function mkB(txt, pos, d) local b = Instance.new("TextButton", frame); local bs = UI_PRO.ButtonHeight - 10; b.Size = UDim2.new(0, bs, 0, bs); b.Position = pos; b.AnchorPoint = Vector2.new(0, 0.5); b.BackgroundColor3 = THEME.Stroke; b.Text = txt; b.TextColor3 = THEME.TextBright; b.FontFace = CUSTOM_FONT; b.TextSize = 18; b.ZIndex = 56; Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6); b.MouseButton1Click:Connect(function() upV(d) end) end mkB("-", UDim2.new(1, -150, 0.5, 0), -2); mkB("+", UDim2.new(1, -50, 0.5, 0), 2) end local function createCoordSetter(parent, labelText, key) local cFrame = Instance.new("Frame", parent) cFrame.Size = UDim2.new(1, -5, 0, UI_PRO.ButtonHeight + 15); cFrame.BackgroundColor3 = THEME.ElementBG; cFrame.ZIndex = 54 Instance.new("UICorner", cFrame).CornerRadius = UDim.new(0, 6); Instance.new("UIStroke", cFrame).Color = THEME.Stroke local lbl = Instance.new("TextLabel", cFrame); lbl.Size = UDim2.new(0.6, 0, 0.5, 0); lbl.Position = UDim2.new(0, 10, 0, 0); lbl.BackgroundTransparency = 1; lbl.Text = labelText; lbl.TextColor3 = THEME.AccentLight; lbl.FontFace = CUSTOM_FONT; lbl.TextSize = UI_PRO.TextNormal; lbl.TextXAlignment = Enum.TextXAlignment.Left; lbl.ZIndex = 55 local val = Instance.new("TextLabel", cFrame); val.Size = UDim2.new(0.6, 0, 0.5, 0); val.Position = UDim2.new(0, 10, 0.5, 0); val.BackgroundTransparency = 1; val.TextColor3 = THEME.TextDim; val.FontFace = CUSTOM_FONT; val.TextSize = UI_PRO.TextSmall; val.TextXAlignment = Enum.TextXAlignment.Left; val.ZIndex = 55 local function updateValText() local v = getgenv().MoveCoords[key]; val.Text = string.format("(%d, %d, %d)", math.floor(v.X), math.floor(v.Y), math.floor(v.Z)) end updateValText() local setBtn = Instance.new("TextButton", cFrame); setBtn.Size = UDim2.new(0.3, 0, 0.8, 0); setBtn.Position = UDim2.new(0.7, -10, 0.1, 0); setBtn.BackgroundColor3 = THEME.Stroke; setBtn.Text = "SET POS"; setBtn.TextColor3 = THEME.TextBright; setBtn.FontFace = CUSTOM_FONT; setBtn.TextSize = UI_PRO.TextSmall; setBtn.ZIndex = 55; Instance.new("UICorner", setBtn).CornerRadius = UDim.new(0, 6) setBtn.MouseButton1Click:Connect(function() local _, _, root = getTargetContext(); if root then getgenv().MoveCoords[key] = root.Position; updateValText() end end); applyHover(setBtn, THEME.Stroke, THEME.Accent) end -- ========================================= -- [PAGES & CONTENT] -- ========================================= local pgMain = createTab("Combat") createToggle(pgMain, "Auto Steal", ToggleAutoSteal, "AutoSteal") createToggle(pgMain, "Auto Destroy Sentry", ToggleAutoSentry, "AutoSentry") createToggle(pgMain, "Admin Panel Spammer", ToggleAPSpam, "APSpam") createToggle(pgMain, "Auto Aim (TP Kill)", ToggleAutoAim, "AutoAim") createToggle(pgMain, "Walk Fling", ToggleFling, "Fling") createDropdown(pgMain, "Fling Direction", {"Random", "Top", "Bottom", "Right", "Left"}, "FlingDirection") createDropdown(pgMain, "Fling Target", {"Auto", "AllPlayers..."}, "FlingTarget") createToggle(pgMain, "Entity Spin", ToggleSpin, "Spin") createSlider(pgMain, "Spin Speed", "SpinSpeed", 10, 500) createToggle(pgMain, "Hitbox Expander", ToggleHitbox, "HitboxStatus") createToggle(pgMain, "Team Check (Hitbox)", nil, "TeamCheck") createSlider(pgMain, "Hitbox Size", "HitboxSize", 1, 100) createSlider(pgMain, "Hitbox Trans (%)", "HitboxTrans", 0, 100) local pgMove = createTab("Movement") createDropdown(pgMove, "My Base", {"Right", "Left"}, "MyBase") createToggle(pgMove, "Auto Flee (TP Counter-Route)", ToggleAutoFlee, "AutoFlee") createToggle(pgMove, "Aerial Boost (Air Jump)", ToggleBoost, "Boost") createSlider(pgMove, "Boost Speed", "BoostNormal", 16, 500) createSlider(pgMove, "Steal Speed", "BoostStealing", 16, 500) createSlider(pgMove, "Jump Power", "JumpNormal", 50, 500) createToggle(pgMove, "TP Walk", ToggleTPWalk, "TPWalk") createSlider(pgMove, "TP Walk Speed", "TPSpeed", 1, 10) createToggle(pgMove, "Loop WalkSpeed", ToggleLoopWS, "LoopWS") createSlider(pgMove, "Loop WS Value", "LoopWalkSpeed", 16, 500) createToggle(pgMove, "Loop JumpPower", ToggleLoopJP, "LoopJP") createSlider(pgMove, "Loop JP Value", "LoopJumpPower", 50, 500) createLabel(pgMove, "--- AUTO FARM ROUTE COORDS ---") createCoordSetter(pgMove, "Right Base", "RightBase") createCoordSetter(pgMove, "Right Char Zone", "RightZone") createCoordSetter(pgMove, "Left Base", "LeftBase") createCoordSetter(pgMove, "Left Char Zone", "LeftZone") createSlider(pgMove, "Walk Speed", "AutoMoveSpeed", 16, 500) local btnMoveRight = createToggle(pgMove, "Move Right (To Enemy)", function(v) if v then getgenv().Toggles.AutoMoveLeft = false; if getgenv().UIToggles["AutoMoveLeft"] then getgenv().UIToggles["AutoMoveLeft"](false) end; autoMoveLogic("Right") end end, "AutoMoveRight") local btnMoveLeft = createToggle(pgMove, "Move Left (To Enemy)", function(v) if v then getgenv().Toggles.AutoMoveRight = false; if getgenv().UIToggles["AutoMoveRight"] then getgenv().UIToggles["AutoMoveRight"](false) end; autoMoveLogic("Left") end end, "AutoMoveLeft") local pgExtra = createTab("Survival") createToggle(pgExtra, "Immortal Entity (True God)", ToggleGodMode, "GodMode") createToggle(pgExtra, "Anti Ragdoll (Absolute Hook)", ToggleAntiRagdoll, "AntiRagdoll") createToggle(pgExtra, "Anti Fall Damage", ToggleAntiFall, "AntiFallDamage") createToggle(pgExtra, "FullBright", ToggleFullBright, "FullBright") createToggle(pgExtra, "Player ESP", ToggleESP, "PlayerESP") createToggle(pgExtra, "Invis Clone Combo", ToggleInvisClone, "InvisClone") createToggle(pgExtra, "Infinite Jump", ToggleInfJump, "InfJump") createToggle(pgExtra, "Anti Bee & Disco", ToggleAntiBee, "AntiBee") createToggle(pgExtra, "Disable Animations", ToggleDisableAnims, "DisableAnims") -- Floating Widgets getgenv().WidgetGUI = Instance.new("ScreenGui"); getgenv().WidgetGUI.Name = "SK_Widgets"; getgenv().WidgetGUI.Parent = safeParent local function setupFloatingButton(targetKey, shortName, instKey) local bf = Instance.new("Frame", getgenv().WidgetGUI); local ws = 55; bf.Size = UDim2.new(0, ws, 0, ws) local c = #floatingButtons; bf.Position = UDim2.new(1, -(ws + 15) - ((c % 3) * (ws + 10)), 0, 80 + (math.floor(c / 3) * (ws + 10))) bf.BackgroundColor3 = THEME.ElementBG; bf.Visible = getgenv().Toggles[instKey] or false; bf.ZIndex = 90; Instance.new("UICorner", bf).CornerRadius = UDim.new(1, 0); local s = Instance.new("UIStroke", bf); s.Color = THEME.Stroke; s.Thickness = 2 local b = Instance.new("TextButton", bf); b.Size = UDim2.new(1,0,1,0); b.BackgroundTransparency = 1; b.Text = shortName; b.TextColor3 = THEME.TextBright; b.FontFace = CUSTOM_FONT; b.TextSize = 11; b.ZIndex = 91; enableDrag(bf, b, true) b.MouseButton1Click:Connect(function() local ns = not getgenv().Toggles[targetKey]; getgenv().Toggles[targetKey] = ns; if getgenv().UIToggles[targetKey] then getgenv().UIToggles[targetKey](ns) end end) local oldUI = getgenv().UIToggles[targetKey] getgenv().UIToggles[targetKey] = function(st) if oldUI then oldUI(st) end; TweenService:Create(bf, TweenInfo.new(0.2), {BackgroundColor3 = st and THEME.Accent or THEME.ElementBG}):Play() end if getgenv().Toggles[targetKey] then bf.BackgroundColor3 = THEME.Accent end table.insert(floatingButtons, {instKey = instKey, frame = bf, targetKey = targetKey}) end local pgInst = createTab("Instant") createToggle(pgInst, "Lock Widget Positions", function(v) getgenv().Toggles.LockWidgets = v end, "LockWidgets") createButton(pgInst, "Reset UI Positions", function() mainFrame.Position = UDim2.new(0.5, 0, 0.5, 0) local ws = 55 for i, data in ipairs(floatingButtons) do local col = (i-1) % 3; local row = math.floor((i-1) / 3) data.frame.Position = UDim2.new(1, -(ws + 15) - (col * (ws + 10)), 0, 80 + (row * (ws + 10))) end SaveConfig("AutoSave") end) local function mInst(n, k, tk, sn) createToggle(pgInst, "Show " .. n .. " Widget", function(v) getgenv().Toggles[k] = v; for _,b in ipairs(floatingButtons) do if b.instKey == k then b.frame.Visible = v end end end, k); setupFloatingButton(tk, sn, k) end mInst("BOOST", "Inst_Boost", "Boost", "BOOST") mInst("FLING", "Inst_Fling", "Fling", "FLING") mInst("STEAL", "Inst_Steal", "AutoSteal", "STEAL") mInst("AIM", "Inst_Aim", "AutoAim", "AIM") mInst("FLEE", "Inst_Flee", "AutoFlee", "FLEE") mInst("GOD", "Inst_God", "GodMode", "GOD") mInst("RAGDOLL", "Inst_Ragdoll", "AntiRagdoll", "NO-RAG") mInst("SPIN", "Inst_Spin", "Spin", "SPIN") mInst("ESP", "Inst_ESP", "PlayerESP", "ESP") local btnInstMoveRight = createToggle(pgInst, "Show RIGHT (Move) Widget", function(v) getgenv().Toggles["Inst_MoveRight"] = v; for _,b in ipairs(floatingButtons) do if b.instKey == "Inst_MoveRight" then b.frame.Visible = v end end end, "Inst_MoveRight") local btnInstMoveLeft = createToggle(pgInst, "Show LEFT (Move) Widget", function(v) getgenv().Toggles["Inst_MoveLeft"] = v; for _,b in ipairs(floatingButtons) do if b.instKey == "Inst_MoveLeft" then b.frame.Visible = v end end end, "Inst_MoveLeft") setupFloatingButton("AutoMoveRight", "RIGHT", "Inst_MoveRight") setupFloatingButton("AutoMoveLeft", "LEFT", "Inst_MoveLeft") mInst("INVIS", "Inst_Invis", "InvisClone", "INVIS") mInst("LIGHT", "Inst_FullBright", "FullBright", "LIGHT") mInst("FALL", "Inst_AntiFall", "AntiFallDamage", "NO-FALL") mInst("FPS", "Inst_FPS", "FPSBoost", "FPS") local pgSet = createTab("Settings") createToggle(pgSet, "FPS BOOST", ToggleFPSBoost, "FPSBoost") createSlider(pgSet, "Field Of View", "FOV", 70, 120) createButton(pgSet, "Rejoin Game", function() game:GetService("TeleportService"):Teleport(game.PlaceId, player) end) local cfgBox = Instance.new("TextBox", pgSet); cfgBox.Size = UDim2.new(1, -5, 0, UI_PRO.ButtonHeight); cfgBox.BackgroundColor3 = THEME.TitleBG; cfgBox.PlaceholderText = "Config Name (AutoSave.json)"; cfgBox.TextColor3 = THEME.TextBright; cfgBox.FontFace = CUSTOM_FONT; cfgBox.TextSize = 14; Instance.new("UICorner", cfgBox).CornerRadius = UDim.new(0, 6) createButton(pgSet, "Save Config", function() SaveConfig(cfgBox.Text == "" and "AutoSave" or cfgBox.Text) end) createButton(pgSet, "Load Config", function() LoadConfigData(cfgBox.Text == "" and "AutoSave" or cfgBox.Text) end) local oldBaseUI = getgenv().UISettings["MyBase"] getgenv().UISettings["MyBase"] = function(v) if oldBaseUI then oldBaseUI(v) end if v == "Right" then btnMoveLeft.Visible = true; btnMoveRight.Visible = false; btnInstMoveLeft.Visible = true; btnInstMoveRight.Visible = false else btnMoveLeft.Visible = false; btnMoveRight.Visible = true; btnInstMoveLeft.Visible = false; btnInstMoveRight.Visible = true end end getgenv().UISettings["MyBase"](getgenv().Settings.MyBase) LoadConfigData("AutoSave") switchTab("Combat") print("[System] SK HUB v2.0 Active. Integration Complete. Desync/Noclip Purged.")