Mod menu
Key Required

Mod menu

(upd)Sword battlegrounds(early access)Geeorge42Geeorge42 814 views 148 executesUpdated Dec 22, 2025
3.3/ 5(3 votes)
2167% Positive
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

Community Comments (1)

Darknifus339Darknifus339Dec 22, 2025

chatgpt script ahh

More Scripts for (upd)Sword battlegrounds(early access)