if getgenv().ThoriumLib_Loaded or game:GetService("CoreGui"):FindFirstChild("ThoriumLibGui") then warn("[ThoriumLib] Скрипт уже запущен!") return end getgenv().ThoriumLib_Loaded = true local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local Lighting = game:GetService("Lighting") local Workspace = game:GetService("Workspace") local RunService = game:GetService("RunService") local TeleportService = game:GetService("TeleportService") local HttpService = game:GetService("HttpService") local VirtualUser = game:GetService("VirtualUser") local LocalPlayer = Players.LocalPlayer local Mouse = LocalPlayer:GetMouse() local activeConnections = {} local activeLoops = {} local function AddConnection(conn) table.insert(activeConnections, conn) return conn end local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "ThoriumLibGui" ScreenGui.ResetOnSpawn = false local success, _ = pcall(function() ScreenGui.Parent = game:GetService("CoreGui") end) if not success then ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") end local UIBlur = Lighting:FindFirstChild("ThoriumUIBlur") or Instance.new("BlurEffect") UIBlur.Name = "ThoriumUIBlur" UIBlur.Size = 14 UIBlur.Enabled = true UIBlur.Parent = Lighting local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Size = UDim2.new(0, 740, 0, 460) MainFrame.Position = UDim2.new(0.5, -370, 0.5, -230) MainFrame.BackgroundColor3 = Color3.fromRGB(16, 16, 22) MainFrame.BackgroundTransparency = 0.25 MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.Visible = false MainFrame.Parent = ScreenGui local MainCorner = Instance.new("UICorner") MainCorner.CornerRadius = UDim.new(0, 12) MainCorner.Parent = MainFrame local MainStroke = Instance.new("UIStroke") MainStroke.Color = Color3.fromRGB(70, 70, 95) MainStroke.Thickness = 1 MainStroke.Transparency = 0.4 MainStroke.Parent = MainFrame local MobileToggleBtn = Instance.new("TextButton") MobileToggleBtn.Name = "MobileToggleBtn" MobileToggleBtn.Size = UDim2.new(0, 46, 0, 46) MobileToggleBtn.Position = UDim2.new(0, 18, 0.35, 0) MobileToggleBtn.BackgroundColor3 = Color3.fromRGB(108, 92, 231) MobileToggleBtn.BackgroundTransparency = 0.2 MobileToggleBtn.Text = "TH" MobileToggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) MobileToggleBtn.TextSize = 15 MobileToggleBtn.Font = Enum.Font.GothamBold MobileToggleBtn.Active = true MobileToggleBtn.Visible = false MobileToggleBtn.Parent = ScreenGui local MobileBtnCorner = Instance.new("UICorner") MobileBtnCorner.CornerRadius = UDim.new(1, 0) MobileBtnCorner.Parent = MobileToggleBtn local SplashFrame = Instance.new("Frame") SplashFrame.Name = "ThoriumSplash" SplashFrame.Size = UDim2.new(1, 0, 1, 0) SplashFrame.Position = UDim2.new(0, 0, 0, 0) SplashFrame.BackgroundColor3 = Color3.fromRGB(12, 12, 18) SplashFrame.ZIndex = 100 SplashFrame.Parent = ScreenGui local SplashTitle = Instance.new("TextLabel") SplashTitle.Size = UDim2.new(0, 500, 0, 80) SplashTitle.Position = UDim2.new(0.5, -250, 0.5, -40) SplashTitle.BackgroundTransparency = 1 SplashTitle.Text = "THORIUMLIB" SplashTitle.RichText = true SplashTitle.TextColor3 = Color3.fromRGB(255, 255, 255) SplashTitle.TextTransparency = 1 SplashTitle.TextSize = 42 SplashTitle.Font = Enum.Font.GothamBold SplashTitle.ZIndex = 101 SplashTitle.Parent = SplashFrame local SplashSub = Instance.new("TextLabel") SplashSub.Size = UDim2.new(0, 500, 0, 30) SplashSub.Position = UDim2.new(0.5, -250, 0.5, 35) SplashSub.BackgroundTransparency = 1 SplashSub.Text = "+1 Speed Keyboard Escape Edition" SplashSub.TextColor3 = Color3.fromRGB(160, 160, 180) SplashSub.TextTransparency = 1 SplashSub.TextSize = 13 SplashSub.Font = Enum.Font.GothamMedium SplashSub.ZIndex = 101 SplashSub.Parent = SplashFrame task.spawn(function() TweenService:Create(SplashTitle, TweenInfo.new(1, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {TextTransparency = 0}):Play() TweenService:Create(SplashSub, TweenInfo.new(1, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {TextTransparency = 0.3}):Play() task.wait(1.5) TweenService:Create(SplashTitle, TweenInfo.new(0.6, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {TextTransparency = 1}):Play() TweenService:Create(SplashSub, TweenInfo.new(0.6, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {TextTransparency = 1}):Play() local splashFade = TweenService:Create(SplashFrame, TweenInfo.new(0.6, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {BackgroundTransparency = 1}) splashFade:Play() splashFade.Completed:Wait() SplashFrame:Destroy() MainFrame.Visible = true MobileToggleBtn.Visible = true end) local function ToggleMenu() MainFrame.Visible = not MainFrame.Visible UIBlur.Enabled = MainFrame.Visible end MobileToggleBtn.MouseButton1Click:Connect(ToggleMenu) local dragging, dragInput, dragStart, startPos AddConnection(MainFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = MainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end)) AddConnection(UserInputService.InputChanged:Connect(function(input) if (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) and dragging then local delta = input.Position - dragStart MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end)) local toggleKey = Enum.KeyCode.K local isListeningForKey = false AddConnection(UserInputService.InputBegan:Connect(function(input, gameProcessed) if isListeningForKey and input.UserInputType == Enum.UserInputType.Keyboard then toggleKey = input.KeyCode isListeningForKey = false return end if not gameProcessed and input.UserInputType == Enum.UserInputType.Keyboard and input.KeyCode == toggleKey then ToggleMenu() end end)) local Sidebar = Instance.new("Frame") Sidebar.Size = UDim2.new(0, 190, 1, 0) Sidebar.BackgroundColor3 = Color3.fromRGB(12, 12, 18) Sidebar.BackgroundTransparency = 0.45 Sidebar.BorderSizePixel = 0 Sidebar.Parent = MainFrame local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, 0, 0, 50) Title.BackgroundTransparency = 1 Title.Text = "Thoriumlib v1.9" Title.RichText = true Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.TextSize = 18 Title.Font = Enum.Font.GothamBold Title.Parent = Sidebar local TabContainer = Instance.new("Frame") TabContainer.Size = UDim2.new(1, -16, 1, -80) TabContainer.Position = UDim2.new(0, 8, 0, 55) TabContainer.BackgroundTransparency = 1 TabContainer.Parent = Sidebar local TabListLayout = Instance.new("UIListLayout") TabListLayout.SortOrder = Enum.SortOrder.LayoutOrder TabListLayout.Padding = UDim.new(0, 6) TabListLayout.Parent = TabContainer local ContentArea = Instance.new("Frame") ContentArea.Size = UDim2.new(1, -215, 1, -20) ContentArea.Position = UDim2.new(0, 205, 0, 10) ContentArea.BackgroundTransparency = 1 ContentArea.Parent = MainFrame local tabs = {} local function createTab(name, icon) local page = Instance.new("Frame") page.Name = name .. "Page" page.Size = UDim2.new(1, 0, 1, 0) page.BackgroundTransparency = 1 page.Visible = false page.Parent = ContentArea local leftCol = Instance.new("ScrollingFrame") leftCol.Size = UDim2.new(0.5, -12, 1, 0) leftCol.BackgroundTransparency = 1 leftCol.BorderSizePixel = 0 leftCol.ScrollBarThickness = 3 leftCol.ScrollBarImageColor3 = Color3.fromRGB(108, 92, 231) leftCol.Parent = page local leftLayout = Instance.new("UIListLayout") leftLayout.SortOrder = Enum.SortOrder.LayoutOrder leftLayout.Padding = UDim.new(0, 6) leftLayout.Parent = leftCol leftLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() leftCol.CanvasSize = UDim2.new(0, 0, 0, leftLayout.AbsoluteContentSize.Y + 10) end) local rightCol = Instance.new("ScrollingFrame") rightCol.Size = UDim2.new(0.5, -12, 1, 0) rightCol.Position = UDim2.new(0.5, 12, 0, 0) rightCol.BackgroundTransparency = 1 rightCol.BorderSizePixel = 0 rightCol.ScrollBarThickness = 3 rightCol.ScrollBarImageColor3 = Color3.fromRGB(108, 92, 231) rightCol.Parent = page local rightLayout = Instance.new("UIListLayout") rightLayout.SortOrder = Enum.SortOrder.LayoutOrder rightLayout.Padding = UDim.new(0, 6) rightLayout.Parent = rightCol rightLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() rightCol.CanvasSize = UDim2.new(0, 0, 0, rightLayout.AbsoluteContentSize.Y + 10) end) local tabBtn = Instance.new("TextButton") tabBtn.Size = UDim2.new(1, 0, 0, 34) tabBtn.BackgroundColor3 = Color3.fromRGB(24, 24, 32) tabBtn.BackgroundTransparency = 0.6 tabBtn.Text = " " .. (icon or "•") .. " " .. name tabBtn.TextColor3 = Color3.fromRGB(160, 160, 180) tabBtn.TextSize = 12 tabBtn.Font = Enum.Font.GothamMedium tabBtn.TextXAlignment = Enum.TextXAlignment.Left tabBtn.Parent = TabContainer local btnCorner = Instance.new("UICorner") btnCorner.CornerRadius = UDim.new(0, 6) btnCorner.Parent = tabBtn local activeIndicator = Instance.new("Frame") activeIndicator.Size = UDim2.new(0, 3, 0, 18) activeIndicator.Position = UDim2.new(0, 2, 0.5, -9) activeIndicator.BackgroundColor3 = Color3.fromRGB(108, 92, 231) activeIndicator.Visible = false activeIndicator.Parent = tabBtn local tabObj = { Button = tabBtn, Page = page, LeftCol = leftCol, RightCol = rightCol, Indicator = activeIndicator, ItemCount = 0 } local function selectTab() for _, tabData in pairs(tabs) do tabData.Page.Visible = false tabData.Indicator.Visible = false TweenService:Create(tabData.Button, TweenInfo.new(0.2), { BackgroundColor3 = Color3.fromRGB(24, 24, 32), TextColor3 = Color3.fromRGB(160, 160, 180) }):Play() end page.Visible = true activeIndicator.Visible = true TweenService:Create(tabBtn, TweenInfo.new(0.2), { BackgroundColor3 = Color3.fromRGB(108, 92, 231), TextColor3 = Color3.fromRGB(255, 255, 255) }):Play() end tabBtn.MouseButton1Click:Connect(selectTab) function tabObj:GetNextParent() self.ItemCount = self.ItemCount + 1 return (self.ItemCount % 2 == 1) and self.LeftCol or self.RightCol end function tabObj:AddToggle(text, default, callback) local targetParent = self:GetNextParent() local state = default or false local toggleFrame = Instance.new("Frame") toggleFrame.Size = UDim2.new(1, 0, 0, 38) toggleFrame.BackgroundColor3 = Color3.fromRGB(22, 22, 30) toggleFrame.BackgroundTransparency = 0.35 toggleFrame.Parent = targetParent local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 6) corner.Parent = toggleFrame local label = Instance.new("TextLabel") label.Size = UDim2.new(1, -50, 1, 0) label.Position = UDim2.new(0, 10, 0, 0) label.BackgroundTransparency = 1 label.Text = text label.TextColor3 = Color3.fromRGB(220, 220, 230) label.TextSize = 11 label.Font = Enum.Font.GothamMedium label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = toggleFrame local btn = Instance.new("TextButton") btn.Size = UDim2.new(0, 34, 0, 18) btn.Position = UDim2.new(1, -40, 0.5, -9) btn.BackgroundColor3 = state and Color3.fromRGB(108, 92, 231) or Color3.fromRGB(40, 40, 52) btn.Text = "" btn.Parent = toggleFrame local btnCorner = Instance.new("UICorner") btnCorner.CornerRadius = UDim.new(1, 0) btnCorner.Parent = btn local circle = Instance.new("Frame") circle.Size = UDim2.new(0, 14, 0, 14) circle.Position = state and UDim2.new(1, -16, 0.5, -7) or UDim2.new(0, 2, 0.5, -7) circle.BackgroundColor3 = Color3.fromRGB(255, 255, 255) circle.Parent = btn local circleCorner = Instance.new("UICorner") circleCorner.CornerRadius = UDim.new(1, 0) circleCorner.Parent = circle btn.MouseButton1Click:Connect(function() state = not state TweenService:Create(btn, TweenInfo.new(0.2), { BackgroundColor3 = state and Color3.fromRGB(108, 92, 231) or Color3.fromRGB(40, 40, 52) }):Play() TweenService:Create(circle, TweenInfo.new(0.2), { Position = state and UDim2.new(1, -16, 0.5, -7) or UDim2.new(0, 2, 0.5, -7) }):Play() task.spawn(callback, state) end) end function tabObj:AddSlider(text, min, max, default, callback) local targetParent = self:GetNextParent() local val = math.clamp(default or min, min, max) local sliderFrame = Instance.new("Frame") sliderFrame.Size = UDim2.new(1, 0, 0, 44) sliderFrame.BackgroundColor3 = Color3.fromRGB(22, 22, 30) sliderFrame.BackgroundTransparency = 0.35 sliderFrame.Parent = targetParent local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 6) corner.Parent = sliderFrame local label = Instance.new("TextLabel") label.Size = UDim2.new(0.7, 0, 0, 18) label.Position = UDim2.new(0, 10, 0, 4) label.BackgroundTransparency = 1 label.Text = text label.TextColor3 = Color3.fromRGB(220, 220, 230) label.TextSize = 11 label.Font = Enum.Font.GothamMedium label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = sliderFrame local valLabel = Instance.new("TextLabel") valLabel.Size = UDim2.new(0.3, -10, 0, 18) valLabel.Position = UDim2.new(0.7, 0, 0, 4) valLabel.BackgroundTransparency = 1 valLabel.Text = tostring(val) valLabel.TextColor3 = Color3.fromRGB(160, 160, 175) valLabel.TextSize = 11 valLabel.Font = Enum.Font.Gotham valLabel.TextXAlignment = Enum.TextXAlignment.Right valLabel.Parent = sliderFrame local track = Instance.new("Frame") track.Size = UDim2.new(1, -20, 0, 6) track.Position = UDim2.new(0, 10, 1, -12) track.BackgroundColor3 = Color3.fromRGB(40, 40, 52) track.Parent = sliderFrame local fill = Instance.new("Frame") fill.Size = UDim2.new((val - min)/(max - min), 0, 1, 0) fill.BackgroundColor3 = Color3.fromRGB(108, 92, 231) fill.Parent = track local trigger = Instance.new("TextButton") trigger.Size = UDim2.new(1, 0, 1, 0) trigger.BackgroundTransparency = 1 trigger.Text = "" trigger.Parent = sliderFrame local draggingSlider = false local function updateInput(input) local posX = math.clamp((input.Position.X - track.AbsolutePosition.X) / track.AbsoluteSize.X, 0, 1) val = math.floor(min + (max - min) * posX) valLabel.Text = tostring(val) fill.Size = UDim2.new(posX, 0, 1, 0) task.spawn(callback, val) end trigger.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then draggingSlider = true updateInput(input) end end) AddConnection(UserInputService.InputChanged:Connect(function(input) if draggingSlider and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then updateInput(input) end end)) AddConnection(UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then draggingSlider = false end end)) end function tabObj:AddButton(text, callback) local targetParent = self:GetNextParent() local btnFrame = Instance.new("Frame") btnFrame.Size = UDim2.new(1, 0, 0, 36) btnFrame.BackgroundColor3 = Color3.fromRGB(22, 22, 30) btnFrame.BackgroundTransparency = 0.35 btnFrame.Parent = targetParent local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 6) corner.Parent = btnFrame local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, 0, 1, 0) btn.BackgroundTransparency = 1 btn.Text = text btn.TextColor3 = Color3.fromRGB(220, 220, 230) btn.TextSize = 11 btn.Font = Enum.Font.GothamSemibold btn.Parent = btnFrame btn.MouseButton1Click:Connect(function() TweenService:Create(btnFrame, TweenInfo.new(0.1), {BackgroundColor3 = Color3.fromRGB(108, 92, 231)}):Play() task.wait(0.1) TweenService:Create(btnFrame, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(22, 22, 30)}):Play() task.spawn(callback, btn) end) return btn end table.insert(tabs, tabObj) if #tabs == 1 then selectTab() end return tabObj end local farmPage = createTab("Farm & Speed", "⚡") local candyPage = createTab("Candy Escape", "🍬") local movementPage = createTab("Movement", "🏃") local teleportsPage = createTab("Teleports", "📍") local visualsPage = createTab("Visuals", "👁") local miscPage = createTab("Misc", "🔧") local autoClickSpeedLoop = nil farmPage:AddToggle("Auto Click / Gain Speed", false, function(state) if state then autoClickSpeedLoop = task.spawn(function() while true do -- Попытка вызова стандартных рекликеров/ивентов в Speed играх pcall(function() local remotes = game:GetService("ReplicatedStorage"):FindFirstChild("Remotes") or game:GetService("ReplicatedStorage") for _, r in ipairs(remotes:GetDescendants()) do if r:IsA("RemoteEvent") and (r.Name:find("Click") or r.Name:find("AddSpeed") or r.Name:find("Speed") or r.Name:find("Tap")) then r:FireServer() end end mouse1click() end) task.wait(0.01) end end) table.insert(activeLoops, autoClickSpeedLoop) else if autoClickSpeedLoop then task.cancel(autoClickSpeedLoop) end end end) local autoKeyboardFarm = nil farmPage:AddToggle("Auto Keyboard Press / Type", false, function(state) if state then autoKeyboardFarm = task.spawn(function() while true do local char = LocalPlayer.Character if char and char:FindFirstChild("HumanoidRootPart") then for _, obj in ipairs(Workspace:GetDescendants()) do if (obj.Name:find("Keyboard") or obj.Name:find("Key") or obj.Name:find("Button")) and obj:IsA("BasePart") then if (char.HumanoidRootPart.Position - obj.Position).Magnitude < 15 then firetouchinterest(char.HumanoidRootPart, obj, 0) firetouchinterest(char.HumanoidRootPart, obj, 1) end end end end task.wait(0.1) end end) table.insert(activeLoops, autoKeyboardFarm) else if autoKeyboardFarm then task.cancel(autoKeyboardFarm) end end end) local autoRebirthLoop = nil farmPage:AddToggle("Auto Rebirth / Prestige", false, function(state) if state then autoRebirthLoop = task.spawn(function() while true do pcall(function() local remotes = game:GetService("ReplicatedStorage"):FindFirstChild("Remotes") or game:GetService("ReplicatedStorage") for _, r in ipairs(remotes:GetDescendants()) do if r:IsA("RemoteEvent") and (r.Name:find("Rebirth") or r.Name:find("Prestige")) then r:FireServer() end end end) task.wait(1) end end) table.insert(activeLoops, autoRebirthLoop) else if autoRebirthLoop then task.cancel(autoRebirthLoop) end end end) farmPage:AddButton("Instant +100 Speed Boost", function() if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then LocalPlayer.Character.Humanoid.WalkSpeed = LocalPlayer.Character.Humanoid.WalkSpeed + 100 end end) local autoCollectCandyLoop = nil candyPage:AddToggle("Auto Collect All Candies & Chocolate", false, function(state) if state then autoCollectCandyLoop = task.spawn(function() while true do local char = LocalPlayer.Character if char and char:FindFirstChild("HumanoidRootPart") then for _, obj in ipairs(Workspace:GetDescendants()) do if (obj.Name:find("Candy") or obj.Name:find("Chocolate") or obj.Name:find("Coin") or obj.Name:find("Gem")) and obj:IsA("BasePart") then pcall(function() firetouchinterest(char.HumanoidRootPart, obj, 0) firetouchinterest(char.HumanoidRootPart, obj, 1) end) end end end task.wait(0.2) end end) table.insert(activeLoops, autoCollectCandyLoop) else if autoCollectCandyLoop then task.cancel(autoCollectCandyLoop) end end end) candyPage:AddButton("Auto Finish / Escape Stage", function() local char = LocalPlayer.Character if char and char:FindFirstChild("HumanoidRootPart") then for _, obj in ipairs(Workspace:GetDescendants()) do if (obj.Name:find("Finish") or obj.Name:find("Win") or obj.Name:find("EscapeDoor") or obj.Name:find("End")) and obj:IsA("BasePart") then char.HumanoidRootPart.CFrame = obj.CFrame * CFrame.new(0, 3, 0) break end end end end) local autoWinLoop = nil candyPage:AddToggle("Auto Win Loop", false, function(state) if state then autoWinLoop = task.spawn(function() while true do local char = LocalPlayer.Character if char and char:FindFirstChild("HumanoidRootPart") then for _, obj in ipairs(Workspace:GetDescendants()) do if (obj.Name:find("Win") or obj.Name:find("FinishPad")) and obj:IsA("BasePart") then firetouchinterest(char.HumanoidRootPart, obj, 0) firetouchinterest(char.HumanoidRootPart, obj, 1) end end end task.wait(0.5) end end) table.insert(activeLoops, autoWinLoop) else if autoWinLoop then task.cancel(autoWinLoop) end end end) local currentWalkSpeed = 16 local currentJumpPower = 50 AddConnection(RunService.RenderStepped:Connect(function() if LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid") then local hum = LocalPlayer.Character:FindFirstChildOfClass("Humanoid") if hum.WalkSpeed < currentWalkSpeed then hum.WalkSpeed = currentWalkSpeed end if hum.JumpPower < currentJumpPower then hum.UseJumpPower = true hum.JumpPower = currentJumpPower end end end)) movementPage:AddSlider("Custom Walk Speed", 16, 300, 16, function(val) currentWalkSpeed = val end) movementPage:AddSlider("Custom Jump Power", 50, 300, 50, function(val) currentJumpPower = val end) local tpWalkSpeed = 1 local tpWalkConn = nil movementPage:AddSlider("TP Walk Speed", 1, 10, 1, function(val) tpWalkSpeed = val end) movementPage:AddToggle("TP Walk (Bypass)", false, function(state) if state then tpWalkConn = AddConnection(RunService.RenderStepped:Connect(function(delta) local char = LocalPlayer.Character if char and char:FindFirstChild("HumanoidRootPart") and char:FindFirstChild("Humanoid") then local hum = char.Humanoid if hum.MoveDirection.Magnitude > 0 then char.HumanoidRootPart.CFrame += hum.MoveDirection * (tpWalkSpeed * delta * 35) end end end)) else if tpWalkConn then tpWalkConn:Disconnect() end end end) local flying = false movementPage:AddToggle("Fly Mode", false, function(state) flying = state if flying then local flyLoop = task.spawn(function() while flying do if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then local hrp = LocalPlayer.Character.HumanoidRootPart local cam = Workspace.CurrentCamera local moveDir = Vector3.zero if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveDir += cam.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then moveDir -= cam.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then moveDir -= cam.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then moveDir += cam.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then moveDir += Vector3.new(0, 1, 0) end if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then moveDir -= Vector3.new(0, 1, 0) end hrp.AssemblyLinearVelocity = moveDir * 70 end task.wait() end end) table.insert(activeLoops, flyLoop) end end) local noclipConn = nil movementPage:AddToggle("Noclip", false, function(state) if state then noclipConn = AddConnection(RunService.Stepped:Connect(function() if LocalPlayer.Character then for _, part in ipairs(LocalPlayer.Character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end end)) else if noclipConn then noclipConn:Disconnect() end end end) local infJumpConn = nil movementPage:AddToggle("Infinite Jump", false, function(state) if state then infJumpConn = AddConnection(UserInputService.JumpRequest:Connect(function() if LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid") then LocalPlayer.Character:FindFirstChildOfClass("Humanoid"):ChangeState("Jumping") end end)) else if infJumpConn then infJumpConn:Disconnect() end end end) movementPage:AddButton("Give TP Tool", function() local tool = Instance.new("Tool") tool.Name = "Thorium TP Tool" tool.RequiresHandle = false tool.Activated:Connect(function() if Mouse and Mouse.Hit and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(Mouse.Hit.Position + Vector3.new(0, 3, 0)) end end) tool.Parent = LocalPlayer:WaitForChild("Backpack") end) teleportsPage:AddButton("Teleport to Spawn", function() if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(0, 10, 0) end end) teleportsPage:AddButton("Teleport to Keyboard Area", function() for _, v in ipairs(Workspace:GetDescendants()) do if v.Name:find("Keyboard") and v:IsA("BasePart") then if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then LocalPlayer.Character.HumanoidRootPart.CFrame = v.CFrame * CFrame.new(0, 4, 0) break end end end end) teleportsPage:AddButton("Teleport to Escape / Finish", function() for _, v in ipairs(Workspace:GetDescendants()) do if (v.Name:find("Finish") or v.Name:find("Win")) and v:IsA("BasePart") then if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then LocalPlayer.Character.HumanoidRootPart.CFrame = v.CFrame * CFrame.new(0, 4, 0) break end end end end) local clickTpConn = nil teleportsPage:AddToggle("Click TP (Ctrl + Click)", false, function(state) if state then clickTpConn = AddConnection(UserInputService.InputBegan:Connect(function(input, gameProcessed) if not gameProcessed and input.UserInputType == Enum.UserInputType.MouseButton1 then if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then if Mouse and Mouse.Hit and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(Mouse.Hit.Position + Vector3.new(0, 3, 0)) end end end end)) else if clickTpConn then clickTpConn:Disconnect() end end end) local espHighlights = {} visualsPage:AddToggle("Player ESP", false, function(state) if state then for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LocalPlayer and plr.Character then local hl = Instance.new("Highlight") hl.Name = "ThoriumESP" hl.FillColor = Color3.fromRGB(108, 92, 231) hl.Parent = plr.Character table.insert(espHighlights, hl) end end else for _, hl in ipairs(espHighlights) do if hl then hl:Destroy() end end espHighlights = {} end end) visualsPage:AddToggle("Fullbright", false, function(state) Lighting.Ambient = state and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(127, 127, 127) end) visualsPage:AddToggle("No Fog", false, function(state) Lighting.FogEnd = state and 9e9 or 1000 end) miscPage:AddButton("Unload ThoriumLib", function() getgenv().ThoriumLib_Loaded = nil for _, conn in ipairs(activeConnections) do if conn then pcall(function() conn:Disconnect() end) end end for _, loop in ipairs(activeLoops) do if loop then pcall(function() task.cancel(loop) end) end end if UIBlur then UIBlur:Destroy() end if ScreenGui then ScreenGui:Destroy() end warn("[ThoriumLib] Успешно выгружен.") end) miscPage:AddButton("FPS Booster", function() for _, v in ipairs(Workspace:GetDescendants()) do if v:IsA("BasePart") then v.Material = Enum.Material.SmoothPlastic end if v:IsA("Decal") or v:IsA("Texture") then v:Destroy() end end end) local antiAfkConn = nil miscPage:AddToggle("Anti-AFK Disconnect", false, function(state) if state then antiAfkConn = AddConnection(LocalPlayer.Idled:Connect(function() VirtualUser:Button2Down(Vector2.new(0,0), Workspace.CurrentCamera.CFrame) task.wait(1) VirtualUser:Button2Up(Vector2.new(0,0), Workspace.CurrentCamera.CFrame) end)) else if antiAfkConn then antiAfkConn:Disconnect() end end end) miscPage:AddButton("Rejoin Server", function() TeleportService:TeleportToPlaceInstance(game.PlaceId, game.JobId, LocalPlayer) end) miscPage:AddButton("Server Hop", function() local api = "https://games.roblox.com/v1/games/" .. game.PlaceId .. "/servers/Public?sortOrder=Asc&limit=100" local success, result = pcall(function() return HttpService:JSONDecode(game:HttpGet(api)) end) if success and result and result.data then for _, server in ipairs(result.data) do if server.playing < server.maxPlayers and server.id ~= game.JobId then TeleportService:TeleportToPlaceInstance(game.PlaceId, server.id, LocalPlayer) break end end end end) miscPage:AddSlider("Camera FOV", 70, 120, 70, function(val) Workspace.CurrentCamera.FieldOfView = val end) miscPage:AddButton("Reset Character", function() if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then LocalPlayer.Character.Humanoid.Health = 0 end end) local keybindBtnObj keybindBtnObj = miscPage:AddButton("Keybind: [" .. toggleKey.Name .. "] (Click to change)", function(btnRef) isListeningForKey = true btnRef.Text = "Press ANY key on keyboard..." task.spawn(function() while isListeningForKey do task.wait(0.1) end btnRef.Text = "Keybind: [" .. toggleKey.Name .. "] (Click to change)" end) end)