-- SKULL Hub - Ultimate Admin Panel -- LocalScript: Должен быть помещен в StarterGui local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Lighting = game:GetService("Lighting") local TweenService = game:GetService("TweenService") local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local humanoid = character:WaitForChild("Humanoid") local rootPart = character:WaitForChild("HumanoidRootPart") -- Настройки local guiEnabled = true local bigHitboxesEnabled = false local speedEnabled = false local noclipEnabled = false local flyEnabled = false local loopGotoEnabled = false local fullbrightEnabled = false local guiHidden = false local originalWalkSpeed = humanoid.WalkSpeed local originalJumpPower = humanoid.JumpPower -- Проверка на мобильное устройство и определение размера экрана local isMobile = UserInputService.TouchEnabled local viewportSize = workspace.CurrentCamera.ViewportSize -- Автоматический расчет размера GUI local function calculateGUISize() local screenWidth = viewportSize.X local screenHeight = viewportSize.Y if isMobile then -- Для мобильных устройств local width = math.min(380, screenWidth * 0.9) local height = math.min(550, screenHeight * 0.8) return UDim2.new(0, width, 0, height) else -- Для ПК local width = math.min(400, screenWidth * 0.3) local height = math.min(600, screenHeight * 0.7) return UDim2.new(0, width, 0, height) end end -- Создание основного интерфейса local screenGui = Instance.new("ScreenGui") screenGui.Name = "SKULLHub" screenGui.ResetOnSpawn = false screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = calculateGUISize() mainFrame.Position = isMobile and UDim2.new(0.5, -mainFrame.Size.Width.Offset/2, 0.5, -mainFrame.Size.Height.Offset/2) or UDim2.new(0, 10, 0, 10) mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) mainFrame.BackgroundTransparency = 0.05 mainFrame.Active = true mainFrame.Draggable = not isMobile -- На мобильных устройствах отключаем перетаскивание mainFrame.Parent = screenGui -- Создание скругленных углов local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 15) corner.Parent = mainFrame -- Добавление тени local shadow = Instance.new("ImageLabel") shadow.Name = "Shadow" shadow.Size = UDim2.new(1, 20, 1, 20) shadow.Position = UDim2.new(0, -10, 0, -10) shadow.BackgroundTransparency = 1 shadow.Image = "rbxassetid://1316045217" shadow.ImageColor3 = Color3.fromRGB(0, 0, 0) shadow.ImageTransparency = 0.8 shadow.ScaleType = Enum.ScaleType.Slice shadow.SliceCenter = Rect.new(10, 10, 118, 118) shadow.ZIndex = -1 shadow.Parent = mainFrame local titleFrame = Instance.new("Frame") titleFrame.Name = "TitleFrame" titleFrame.Size = UDim2.new(1, 0, 0, isMobile and 70 or 60) titleFrame.Position = UDim2.new(0, 0, 0, 0) titleFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20) titleFrame.BackgroundTransparency = 0.1 titleFrame.Parent = mainFrame local titleCorner = Instance.new("UICorner") titleCorner.CornerRadius = UDim.new(0, 15, 0, 0) titleCorner.Parent = titleFrame local title = Instance.new("TextLabel") title.Name = "Title" title.Size = UDim2.new(1, 0, 0.7, 0) title.Position = UDim2.new(0, 0, 0, 0) title.BackgroundTransparency = 1 title.Text = "💀 SKULL HUB" title.TextColor3 = Color3.fromRGB(255, 50, 50) title.TextSize = isMobile and 26 or 24 title.Font = Enum.Font.GothamBold title.TextStrokeTransparency = 0.7 title.TextStrokeColor3 = Color3.fromRGB(0, 0, 0) title.Parent = titleFrame local subtitle = Instance.new("TextLabel") subtitle.Name = "Subtitle" subtitle.Size = UDim2.new(1, 0, 0.3, 0) subtitle.Position = UDim2.new(0, 0, 0.7, 0) subtitle.BackgroundTransparency = 1 subtitle.Text = "Admin Panel v2.0" subtitle.TextColor3 = Color3.fromRGB(200, 200, 200) subtitle.TextSize = isMobile and 14 or 12 subtitle.Font = Enum.Font.Gotham subtitle.Parent = titleFrame -- Кнопка закрытия local closeButton = Instance.new("TextButton") closeButton.Name = "CloseButton" closeButton.Size = UDim2.new(0, 30, 0, 30) closeButton.Position = UDim2.new(1, -35, 0.5, -15) closeButton.BackgroundColor3 = Color3.fromRGB(255, 50, 50) closeButton.Text = "×" closeButton.TextColor3 = Color3.fromRGB(255, 255, 255) closeButton.TextSize = 20 closeButton.Font = Enum.Font.GothamBold closeButton.Parent = titleFrame local closeCorner = Instance.new("UICorner") closeCorner.CornerRadius = UDim.new(1, 0) closeCorner.Parent = closeButton -- Список кнопок local buttons = { {name = "Big Hitboxes", func = "toggleBigHitboxes", color = Color3.fromRGB(255, 100, 100), icon = "🔴"}, {name = "Speed", func = "toggleSpeed", color = Color3.fromRGB(100, 200, 255), icon = "⚡"}, {name = "Noclip", func = "toggleNoclip", color = Color3.fromRGB(100, 255, 150), icon = "👻"}, {name = "Fly", func = "toggleFly", color = Color3.fromRGB(255, 200, 100), icon = "🕊️"}, {name = "Loop Goto", func = "toggleLoopGoto", color = Color3.fromRGB(200, 100, 255), icon = "🌀"}, {name = "FullBright", func = "toggleFullbright", color = Color3.fromRGB(255, 255, 100), icon = "☀️"}, {name = "Hide GUI", func = "toggleHideGUI", color = Color3.fromRGB(150, 150, 150), icon = "👁️"} } local buttonInstances = {} local yOffset = isMobile and 80 or 70 -- Создание скроллинга local scrollingFrame = Instance.new("ScrollingFrame") scrollingFrame.Name = "ScrollingFrame" scrollingFrame.Size = UDim2.new(1, -20, 1, -yOffset - 10) scrollingFrame.Position = UDim2.new(0, 10, 0, yOffset) scrollingFrame.BackgroundTransparency = 1 scrollingFrame.BorderSizePixel = 0 scrollingFrame.ScrollBarThickness = isMobile and 8 or 6 scrollingFrame.CanvasSize = UDim2.new(0, 0, 0, #buttons * 60) scrollingFrame.Parent = mainFrame -- Функции local function createButton(name, func, color, icon) local buttonFrame = Instance.new("Frame") buttonFrame.Name = name .. "Frame" buttonFrame.Size = UDim2.new(1, 0, 0, isMobile and 55 or 50) buttonFrame.Position = UDim2.new(0, 0, 0, yOffset) buttonFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40) buttonFrame.BackgroundTransparency = 0.2 buttonFrame.Parent = scrollingFrame local buttonCorner = Instance.new("UICorner") buttonCorner.CornerRadius = UDim.new(0, 10) buttonCorner.Parent = buttonFrame local button = Instance.new("TextButton") button.Name = name button.Size = UDim2.new(1, 0, 1, 0) button.Position = UDim2.new(0, 0, 0, 0) button.BackgroundTransparency = 1 button.Text = "" button.ZIndex = 2 button.Parent = buttonFrame local iconLabel = Instance.new("TextLabel") iconLabel.Name = name .. "Icon" iconLabel.Size = UDim2.new(0, 40, 1, 0) iconLabel.Position = UDim2.new(0, 5, 0, 0) iconLabel.BackgroundTransparency = 1 iconLabel.Text = icon iconLabel.TextColor3 = Color3.fromRGB(255, 255, 255) iconLabel.TextSize = isMobile and 22 or 20 iconLabel.Font = Enum.Font.GothamBold iconLabel.TextXAlignment = Enum.TextXAlignment.Center iconLabel.Parent = buttonFrame local buttonLabel = Instance.new("TextLabel") buttonLabel.Name = name .. "Label" buttonLabel.Size = UDim2.new(0.6, 0, 1, 0) buttonLabel.Position = UDim2.new(0, 45, 0, 0) buttonLabel.BackgroundTransparency = 1 buttonLabel.Text = name buttonLabel.TextColor3 = Color3.fromRGB(255, 255, 255) buttonLabel.TextSize = isMobile and 18 or 16 buttonLabel.Font = Enum.Font.GothamSemibold buttonLabel.TextXAlignment = Enum.TextXAlignment.Left buttonLabel.Parent = buttonFrame local statusLabel = Instance.new("TextLabel") statusLabel.Name = name .. "Status" statusLabel.Size = UDim2.new(0, isMobile and 60 or 50, 0, 25) statusLabel.Position = UDim2.new(1, -65, 0.5, -12) statusLabel.BackgroundColor3 = Color3.fromRGB(60, 60, 60) statusLabel.Text = "OFF" statusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) statusLabel.TextSize = isMobile and 14 or 12 statusLabel.Font = Enum.Font.GothamBold statusLabel.Parent = buttonFrame local statusCorner = Instance.new("UICorner") statusCorner.CornerRadius = UDim.new(0, 6) statusCorner.Parent = statusLabel yOffset = yOffset + (isMobile and 60 or 55) local function updateButtonStatus(enabled) if enabled then statusLabel.Text = "ON" statusLabel.TextColor3 = Color3.fromRGB(100, 255, 100) statusLabel.BackgroundColor3 = Color3.fromRGB(30, 60, 30) buttonFrame.BackgroundColor3 = color iconLabel.TextColor3 = Color3.fromRGB(255, 255, 200) else statusLabel.Text = "OFF" statusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) statusLabel.BackgroundColor3 = Color3.fromRGB(60, 60, 60) buttonFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40) iconLabel.TextColor3 = Color3.fromRGB(255, 255, 255) end end button.MouseButton1Click:Connect(function() if func == "toggleBigHitboxes" then bigHitboxesEnabled = not bigHitboxesEnabled updateButtonStatus(bigHitboxesEnabled) elseif func == "toggleSpeed" then speedEnabled = not speedEnabled if speedEnabled then humanoid.WalkSpeed = 32 -- Безопасное значение для античита humanoid.JumpPower = 65 -- Безопасное значение else humanoid.WalkSpeed = originalWalkSpeed humanoid.JumpPower = originalJumpPower end updateButtonStatus(speedEnabled) elseif func == "toggleNoclip" then noclipEnabled = not noclipEnabled updateButtonStatus(noclipEnabled) elseif func == "toggleFly" then flyEnabled = not flyEnabled updateButtonStatus(flyEnabled) elseif func == "toggleLoopGoto" then loopGotoEnabled = not loopGotoEnabled updateButtonStatus(loopGotoEnabled) elseif func == "toggleFullbright" then fullbrightEnabled = not fullbrightEnabled updateButtonStatus(fullbrightEnabled) elseif func == "toggleHideGUI" then guiHidden = not guiHidden mainFrame.Visible = not guiHidden if guiHidden then buttonLabel.Text = "Show GUI" iconLabel.Text = "👁️‍🗨️" else buttonLabel.Text = "Hide GUI" iconLabel.Text = "👁️" end end end) -- Эффект при наведении button.MouseEnter:Connect(function() if not (name == "Big Hitboxes" and bigHitboxesEnabled or name == "Speed" and speedEnabled or name == "Noclip" and noclipEnabled or name == "Fly" and flyEnabled or name == "Loop Goto" and loopGotoEnabled or name == "FullBright" and fullbrightEnabled) then game:GetService("TweenService"):Create(buttonFrame, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(50, 50, 50)}):Play() end end) button.MouseLeave:Connect(function() if not (name == "Big Hitboxes" and bigHitboxesEnabled or name == "Speed" and speedEnabled or name == "Noclip" and noclipEnabled or name == "Fly" and flyEnabled or name == "Loop Goto" and loopGotoEnabled or name == "FullBright" and fullbrightEnabled) then game:GetService("TweenService"):Create(buttonFrame, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(40, 40, 40)}):Play() end end) return {frame = buttonFrame, button = button, updateStatus = updateButtonStatus} end -- Создание кнопок for _, buttonInfo in ipairs(buttons) do local buttonData = createButton(buttonInfo.name, buttonInfo.func, buttonInfo.color, buttonInfo.icon) table.insert(buttonInstances, buttonData) end -- Кнопка сброса local resetButtonData = createButton("Reset All", "resetAll", Color3.fromRGB(255, 50, 50), "🔄") screenGui.Parent = player:WaitForChild("PlayerGui") -- Обработка закрытия GUI closeButton.MouseButton1Click:Connect(function() screenGui:Destroy() print("SKULL Hub закрыт") end) -- Создание мобильного управления для полета local mobileFlightGui = Instance.new("ScreenGui") mobileFlightGui.Name = "MobileFlightControl" mobileFlightGui.ResetOnSpawn = false mobileFlightGui.Enabled = false if isMobile then local flightFrame = Instance.new("Frame") flightFrame.Name = "FlightFrame" flightFrame.Size = UDim2.new(1, 0, 1, 0) flightFrame.Position = UDim2.new(0, 0, 0, 0) flightFrame.BackgroundTransparency = 1 flightFrame.Parent = mobileFlightGui -- Джойстик для горизонтального движения local joystickFrame = Instance.new("Frame") joystickFrame.Name = "JoystickFrame" joystickFrame.Size = UDim2.new(0, 180, 0, 180) joystickFrame.Position = UDim2.new(0, 40, 1, -240) joystickFrame.BackgroundColor3 = Color3.fromRGB(0, 0, 0) joystickFrame.BackgroundTransparency = 0.6 joystickFrame.Parent = flightFrame local joystickCorner = Instance.new("UICorner") joystickCorner.CornerRadius = UDim.new(1, 0) joystickCorner.Parent = joystickFrame local joystick = Instance.new("Frame") joystick.Name = "Joystick" joystick.Size = UDim2.new(0, 70, 0, 70) joystick.Position = UDim2.new(0.5, -35, 0.5, -35) joystick.BackgroundColor3 = Color3.fromRGB(255, 50, 50) joystick.BackgroundTransparency = 0.3 joystick.Parent = joystickFrame local joystickInnerCorner = Instance.new("UICorner") joystickInnerCorner.CornerRadius = UDim.new(1, 0) joystickInnerCorner.Parent = joystick -- Кнопки для вертикального движения local upButton = Instance.new("TextButton") upButton.Name = "UpButton" upButton.Size = UDim2.new(0, 70, 0, 70) upButton.Position = UDim2.new(1, -180, 1, -300) upButton.BackgroundColor3 = Color3.fromRGB(0, 200, 0) upButton.BackgroundTransparency = 0.3 upButton.Text = "↑" upButton.TextColor3 = Color3.fromRGB(255, 255, 255) upButton.TextSize = 28 upButton.Font = Enum.Font.GothamBold upButton.Parent = flightFrame local downButton = Instance.new("TextButton") downButton.Name = "DownButton" downButton.Size = UDim2.new(0, 70, 0, 70) downButton.Position = UDim2.new(1, -180, 1, -220) downButton.BackgroundColor3 = Color3.fromRGB(200, 0, 0) downButton.BackgroundTransparency = 0.3 downButton.Text = "↓" downButton.TextColor3 = Color3.fromRGB(255, 255, 255) downButton.TextSize = 28 downButton.Font = Enum.Font.GothamBold downButton.Parent = flightFrame local buttonCorner = Instance.new("UICorner") buttonCorner.CornerRadius = UDim.new(0, 15) buttonCorner.Parent = upButton buttonCorner:Clone().Parent = downButton mobileFlightGui.Parent = player:WaitForChild("PlayerGui") end -- Переменные для управления local mobileJoystickActive = false local joystickOffset = Vector2.new(0, 0) local mobileUpPressed = false local mobileDownPressed = false -- Функция Big Hitboxes local originalSizes = {} local function updateHitboxes() if not bigHitboxesEnabled then -- Восстановление оригинальных размеров for playerName, sizes in pairs(originalSizes) do local otherPlayer = Players:FindFirstChild(playerName) if otherPlayer and otherPlayer.Character then for partName, size in pairs(sizes) do local part = otherPlayer.Character:FindFirstChild(partName) if part then part.Size = size end end end end originalSizes = {} return end for _, otherPlayer in ipairs(Players:GetPlayers()) do if otherPlayer ~= player and otherPlayer.Character then local otherChar = otherPlayer.Character if not originalSizes[otherPlayer.Name] then originalSizes[otherPlayer.Name] = {} end for _, part in ipairs(otherChar:GetChildren()) do if part:IsA("BasePart") and (part.Name == "Head" or part.Name == "Torso" or part.Name == "HumanoidRootPart") then if not originalSizes[otherPlayer.Name][part.Name] then originalSizes[otherPlayer.Name][part.Name] = part.Size end part.Size = originalSizes[otherPlayer.Name][part.Name] * 1.5 end end end end end -- Функция Noclip local noclipConnection local function setupNoclip() if noclipEnabled then if noclipConnection then noclipConnection:Disconnect() end noclipConnection = RunService.Stepped:Connect(function() if character then for _, part in ipairs(character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end end) else if noclipConnection then noclipConnection:Disconnect() noclipConnection = nil end -- Восстановление коллизии if character then for _, part in ipairs(character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = true end end end end end -- Функция Fly local flyConnection local flyVelocity local flyGyro local originalGravity local function setupFly() if flyEnabled then -- Сохраняем оригинальную гравитацию if not originalGravity then originalGravity = workspace.Gravity end -- Создание физических объектов для полета if not flyVelocity then flyVelocity = Instance.new("BodyVelocity") flyVelocity.MaxForce = Vector3.new(40000, 40000, 40000) flyVelocity.P = 1000 flyVelocity.Velocity = Vector3.new(0, 0, 0) end if not flyGyro then flyGyro = Instance.new("BodyGyro") flyGyro.MaxTorque = Vector3.new(40000, 40000, 40000) flyGyro.P = 2500 flyGyro.CFrame = rootPart.CFrame end if rootPart then flyVelocity.Parent = rootPart flyGyro.Parent = rootPart end -- Включение мобильного управления if isMobile then mobileFlightGui.Enabled = true end flyConnection = RunService.RenderStepped:Connect(function(delta) if not flyEnabled or not rootPart or not flyVelocity or not flyGyro then return end local camera = workspace.CurrentCamera flyGyro.CFrame = camera.CFrame local velocity = Vector3.new(0, 0, 0) local speed = 35 -- Безопасная скорость if isMobile then -- Мобильное управление velocity = velocity + (camera.CFrame.RightVector * joystickOffset.X * speed) velocity = velocity + (camera.CFrame.LookVector * joystickOffset.Y * speed) if mobileUpPressed then velocity = velocity + Vector3.new(0, speed, 0) end if mobileDownPressed then velocity = velocity - Vector3.new(0, speed, 0) end else -- ПК управление if UserInputService:IsKeyDown(Enum.KeyCode.W) then velocity = velocity + (camera.CFrame.LookVector * speed) end if UserInputService:IsKeyDown(Enum.KeyCode.S) then velocity = velocity - (camera.CFrame.LookVector * speed) end if UserInputService:IsKeyDown(Enum.KeyCode.A) then velocity = velocity - (camera.CFrame.RightVector * speed) end if UserInputService:IsKeyDown(Enum.KeyCode.D) then velocity = velocity + (camera.CFrame.RightVector * speed) end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then velocity = velocity + Vector3.new(0, speed, 0) end if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then velocity = velocity - Vector3.new(0, speed, 0) end end flyVelocity.Velocity = velocity end) -- Блокировка стандартного движения humanoid.PlatformStand = true else -- Отключение полета if flyConnection then flyConnection:Disconnect() flyConnection = nil end if flyVelocity then flyVelocity:Destroy() flyVelocity = nil end if flyGyro then flyGyro:Destroy() flyGyro = nil end -- Восстановление оригинальной гравитации if originalGravity then workspace.Gravity = originalGravity originalGravity = nil end -- Восстановление стандартного движения humanoid.PlatformStand = false -- Отключение мобильного управления if isMobile then mobileFlightGui.Enabled = false mobileJoystickActive = false joystickOffset = Vector2.new(0, 0) mobileUpPressed = false mobileDownPressed = false -- Сброс позиции джойстика local joystick = mobileFlightGui:FindFirstChild("FlightFrame"):FindFirstChild("JoystickFrame"):FindFirstChild("Joystick") if joystick then joystick.Position = UDim2.new(0.5, -35, 0.5, -35) end end end end -- Функция Loop Goto local loopGotoConnection local function setupLoopGoto() if loopGotoEnabled then loopGotoConnection = RunService.Heartbeat:Connect(function() local alivePlayers = {} for _, otherPlayer in ipairs(Players:GetPlayers()) do if otherPlayer ~= player and otherPlayer.Character then local humanoid = otherPlayer.Character:FindFirstChildOfClass("Humanoid") local root = otherPlayer.Character:FindFirstChild("HumanoidRootPart") if humanoid and humanoid.Health > 0 and root then table.insert(alivePlayers, otherPlayer) end end end if #alivePlayers > 0 and character and rootPart then local randomPlayer = alivePlayers[math.random(1, #alivePlayers)] local targetChar = randomPlayer.Character local targetRoot = targetChar and targetChar:FindFirstChild("HumanoidRootPart") if targetRoot then -- Телепортация rootPart.CFrame = CFrame.new(targetRoot.Position + Vector3.new(0, 2, 0)) -- Использование первого инструмента local backpack = player.Backpack local tool = backpack:FindFirstChildOfClass("Tool") if not tool then for _, child in ipairs(backpack:GetChildren()) do if child:IsA("Tool") then tool = child break end end end if tool then tool.Parent = character local activate = tool:FindFirstChild("Activate") if activate and activate:IsA("RemoteEvent") then activate:FireServer() end wait(0.1) tool.Parent = backpack end end end end) else if loopGotoConnection then loopGotoConnection:Disconnect() loopGotoConnection = nil end end end -- Функция FullBright local function setupFullbright() if fullbrightEnabled then Lighting.Brightness = 2 Lighting.GlobalShadows = false Lighting.OutdoorAmbient = Color3.fromRGB(128, 128, 128) Lighting.ClockTime = 14 else Lighting.Brightness = 1 Lighting.GlobalShadows = true Lighting.OutdoorAmbient = Color3.fromRGB(128, 128, 128) end end -- Обработка мобильного управления if isMobile then local flightFrame = mobileFlightGui:FindFirstChild("FlightFrame") if flightFrame then local joystickFrame = flightFrame:FindFirstChild("JoystickFrame") local joystick = joystickFrame and joystickFrame:FindFirstChild("Joystick") local upButton = flightFrame:FindFirstChild("UpButton") local downButton = flightFrame:FindFirstChild("DownButton") if joystickFrame and joystick then joystickFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then mobileJoystickActive = true end end) joystickFrame.InputChanged:Connect(function(input) if mobileJoystickActive and input.UserInputType == Enum.UserInputType.Touch then local touchPos = input.Position local framePos = joystickFrame.AbsolutePosition local frameSize = joystickFrame.AbsoluteSize local center = framePos + frameSize / 2 local offset = (touchPos - center) / (frameSize / 2) local magnitude = math.min(offset.Magnitude, 1) offset = offset.Unit * magnitude joystickOffset = Vector2.new(offset.X, -offset.Y) -- Инвертируем Y для интуитивного управления local joystickPos = UDim2.new( 0.5 + offset.X * 0.4, -joystick.AbsoluteSize.X / 2, 0.5 + offset.Y * 0.4, -joystick.AbsoluteSize.Y / 2 ) joystick.Position = joystickPos end end) joystickFrame.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then mobileJoystickActive = false joystickOffset = Vector2.new(0, 0) joystick.Position = UDim2.new(0.5, -35, 0.5, -35) end end) end if upButton then upButton.MouseButton1Down:Connect(function() mobileUpPressed = true upButton.BackgroundTransparency = 0.1 end) upButton.MouseButton1Up:Connect(function() mobileUpPressed = false upButton.BackgroundTransparency = 0.3 end) end if downButton then downButton.MouseButton1Down:Connect(function() mobileDownPressed = true downButton.BackgroundTransparency = 0.1 end) downButton.MouseButton1Up:Connect(function() mobileDownPressed = false downButton.BackgroundTransparency = 0.3 end) end end end -- Обновление при смене персонажа player.CharacterAdded:Connect(function(newChar) character = newChar humanoid = character:WaitForChild("Humanoid") rootPart = character:WaitForChild("HumanoidRootPart") originalWalkSpeed = humanoid.WalkSpeed originalJumpPower = humanoid.JumpPower -- Восстановление настроек if speedEnabled then humanoid.WalkSpeed = 32 humanoid.JumpPower = 65 end if noclipEnabled then wait(0.1) setupNoclip() end if flyEnabled then wait(0.5) setupFly() end end) -- Основной цикл обновления RunService.Heartbeat:Connect(function() -- Обновление хитбоксов updateHitboxes() -- Обновление noclip setupNoclip() -- Обновление fly setupFly() -- Обновление loop goto setupLoopGoto() -- Обновление fullbright setupFullbright() end) -- Горячие клавиши UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.RightShift then mainFrame.Visible = not mainFrame.Visible guiHidden = not mainFrame.Visible -- Обновление текста кнопки for _, buttonData in ipairs(buttonInstances) do if buttonData.button.Name == "Hide GUI" then local buttonLabel = buttonData.frame:FindFirstChild("Hide GUILabel") local iconLabel = buttonData.frame:FindFirstChild("Hide GUIIcon") if buttonLabel then buttonLabel.Text = guiHidden and "Show GUI" or "Hide GUI" end if iconLabel then iconLabel.Text = guiHidden and "👁️‍🗨️" or "👁️" end end end end if input.KeyCode == Enum.KeyCode.Delete then screenGui.Enabled = not screenGui.Enabled end if input.KeyCode == Enum.KeyCode.F5 then resetAllFunctions() end end) -- Функция для сброса всех функций function resetAllFunctions() bigHitboxesEnabled = false speedEnabled = false noclipEnabled = false flyEnabled = false loopGotoEnabled = false fullbrightEnabled = false -- Обновление кнопок for _, buttonData in ipairs(buttonInstances) do if buttonData.updateStatus then buttonData.updateStatus(false) end end -- Сброс настроек персонажа if humanoid then humanoid.WalkSpeed = originalWalkSpeed humanoid.JumpPower = originalJumpPower humanoid.PlatformStand = false end -- Сброс хитбоксов updateHitboxes() -- Отключение всех соединений if noclipConnection then noclipConnection:Disconnect() noclipConnection = nil end if flyConnection then flyConnection:Disconnect() flyConnection = nil end if loopGotoConnection then loopGotoConnection:Disconnect() loopGotoConnection = nil end -- Удаление физических объектов if flyVelocity then flyVelocity:Destroy() flyVelocity = nil end if flyGyro then flyGyro:Destroy() flyGyro = nil end -- Восстановление гравитации if originalGravity then workspace.Gravity = originalGravity originalGravity = nil end -- Восстановление коллизии if character then for _, part in ipairs(character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = true end end end -- Сброс освещения setupFullbright() print("Все функции SKULL Hub сброшены") end -- Назначение функции сброса на кнопку Reset resetButtonData.button.MouseButton1Click:Connect(resetAllFunctions) -- Адаптация GUI при изменении размера экрана viewportSize:GetPropertyChangedSignal("X"):Connect(function() if not isMobile then return end mainFrame.Size = calculateGUISize() mainFrame.Position = UDim2.new(0.5, -mainFrame.Size.Width.Offset/2, 0.5, -mainFrame.Size.Height.Offset/2) end) viewportSize:GetPropertyChangedSignal("Y"):Connect(function() if not isMobile then return end mainFrame.Size = calculateGUISize() mainFrame.Position = UDim2.new(0.5, -mainFrame.Size.Width.Offset/2, 0.5, -mainFrame.Size.Height.Offset/2) end) print("💀 SKULL Hub v2.0 успешно загружен!") print("📱 Адаптирован для: " .. (isMobile and "Мобильных устройств" or "ПК")) print("🔧 Горячие клавиши:") print(" RightShift - Показать/Скрыть интерфейс") print(" Delete - Включить/Выключить интерфейс") print(" F5 - Сбросить все функции")