Key Required

Key Required
Mod menu
Lua Script•922 lines (32925 chars)
-- 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 - Сбросить все функции")Features & Information
Speed, fly, fb, noclip, farm(loopgoto)
open source code

chatgpt script ahh