Totally not skidded script
Key RequiredUniversal

Totally not skidded script

Universal Scriptfandomfandom 561 views 780 executesUpdated Jul 25, 2026
Unrated
00
Lua Script•591 lines (19846 chars)
-- ============================================================
-- SLAP BATTLES UTILITY SCRIPT
-- Features: Hitbox Expander | Auto Slap | Walk Speed
-- ============================================================

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")

local LocalPlayer = Players.LocalPlayer
local Character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
local Mouse = LocalPlayer:GetMouse()

-- ============================================================
-- STATE
-- ============================================================

local State = {
    HitboxExpander = {
        Enabled = false,
        Size = 15,
    },
    AutoSlap = {
        Enabled = false,
        Range = 20,
        Connection = nil,
    },
    WalkSpeed = {
        Enabled = false,
        Speed = 50,
        DefaultSpeed = 16,
    },
    GUI = {
        Dragging = false,
        DragOffset = Vector2.new(0, 0),
    }
}

-- ============================================================
-- GUI CONSTRUCTION
-- ============================================================

local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "SBUtility"
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.Parent = game:GetService("CoreGui")

-- Main Frame
local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 280, 0, 340)
MainFrame.Position = UDim2.new(0.5, -140, 0.5, -170)
MainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 20)
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.Parent = ScreenGui

local MainCorner = Instance.new("UICorner")
MainCorner.CornerRadius = UDim.new(0, 10)
MainCorner.Parent = MainFrame

local MainStroke = Instance.new("UIStroke")
MainStroke.Color = Color3.fromRGB(255, 80, 80)
MainStroke.Thickness = 1.5
MainStroke.Parent = MainFrame

-- Title Bar
local TitleBar = Instance.new("Frame")
TitleBar.Name = "TitleBar"
TitleBar.Size = UDim2.new(1, 0, 0, 40)
TitleBar.Position = UDim2.new(0, 0, 0, 0)
TitleBar.BackgroundColor3 = Color3.fromRGB(255, 60, 60)
TitleBar.BorderSizePixel = 0
TitleBar.Parent = MainFrame

local TitleCorner = Instance.new("UICorner")
TitleCorner.CornerRadius = UDim.new(0, 10)
TitleCorner.Parent = TitleBar

local TitleFix = Instance.new("Frame")
TitleFix.Size = UDim2.new(1, 0, 0.5, 0)
TitleFix.Position = UDim2.new(0, 0, 0.5, 0)
TitleFix.BackgroundColor3 = Color3.fromRGB(255, 60, 60)
TitleFix.BorderSizePixel = 0
TitleFix.Parent = TitleBar

local TitleLabel = Instance.new("TextLabel")
TitleLabel.Text = "⚡ SB UTILITY"
TitleLabel.Size = UDim2.new(1, -50, 1, 0)
TitleLabel.Position = UDim2.new(0, 12, 0, 0)
TitleLabel.BackgroundTransparency = 1
TitleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
TitleLabel.TextSize = 15
TitleLabel.Font = Enum.Font.GothamBold
TitleLabel.TextXAlignment = Enum.TextXAlignment.Left
TitleLabel.Parent = TitleBar

local MinimizeBtn = Instance.new("TextButton")
MinimizeBtn.Text = "−"
MinimizeBtn.Size = UDim2.new(0, 30, 0, 30)
MinimizeBtn.Position = UDim2.new(1, -38, 0, 5)
MinimizeBtn.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
MinimizeBtn.BackgroundTransparency = 0.85
MinimizeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
MinimizeBtn.TextSize = 18
MinimizeBtn.Font = Enum.Font.GothamBold
MinimizeBtn.BorderSizePixel = 0
MinimizeBtn.Parent = TitleBar

local MinimizeCorner = Instance.new("UICorner")
MinimizeCorner.CornerRadius = UDim.new(0, 6)
MinimizeCorner.Parent = MinimizeBtn

-- Content Frame
local ContentFrame = Instance.new("Frame")
ContentFrame.Name = "ContentFrame"
ContentFrame.Size = UDim2.new(1, 0, 1, -40)
ContentFrame.Position = UDim2.new(0, 0, 0, 40)
ContentFrame.BackgroundTransparency = 1
ContentFrame.Parent = MainFrame

local ContentPadding = Instance.new("UIPadding")
ContentPadding.PaddingLeft = UDim.new(0, 14)
ContentPadding.PaddingRight = UDim.new(0, 14)
ContentPadding.PaddingTop = UDim.new(0, 12)
ContentPadding.Parent = ContentFrame

-- ============================================================
-- COMPONENT BUILDER
-- ============================================================

local function MakeToggle(parent, yPos, labelText, accentColor)
    local Container = Instance.new("Frame")
    Container.Size = UDim2.new(1, 0, 0, 38)
    Container.Position = UDim2.new(0, 0, 0, yPos)
    Container.BackgroundColor3 = Color3.fromRGB(25, 25, 32)
    Container.BorderSizePixel = 0
    Container.Parent = parent

    local ContCorner = Instance.new("UICorner")
    ContCorner.CornerRadius = UDim.new(0, 8)
    ContCorner.Parent = Container

    local Label = Instance.new("TextLabel")
    Label.Text = labelText
    Label.Size = UDim2.new(1, -60, 1, 0)
    Label.Position = UDim2.new(0, 12, 0, 0)
    Label.BackgroundTransparency = 1
    Label.TextColor3 = Color3.fromRGB(220, 220, 220)
    Label.TextSize = 13
    Label.Font = Enum.Font.GothamSemibold
    Label.TextXAlignment = Enum.TextXAlignment.Left
    Label.Parent = Container

    local ToggleBg = Instance.new("Frame")
    ToggleBg.Size = UDim2.new(0, 40, 0, 22)
    ToggleBg.Position = UDim2.new(1, -52, 0.5, -11)
    ToggleBg.BackgroundColor3 = Color3.fromRGB(50, 50, 60)
    ToggleBg.BorderSizePixel = 0
    ToggleBg.Parent = Container

    local TBCorner = Instance.new("UICorner")
    TBCorner.CornerRadius = UDim.new(1, 0)
    TBCorner.Parent = ToggleBg

    local Knob = Instance.new("Frame")
    Knob.Size = UDim2.new(0, 16, 0, 16)
    Knob.Position = UDim2.new(0, 3, 0.5, -8)
    Knob.BackgroundColor3 = Color3.fromRGB(180, 180, 180)
    Knob.BorderSizePixel = 0
    Knob.Parent = ToggleBg

    local KnobCorner = Instance.new("UICorner")
    KnobCorner.CornerRadius = UDim.new(1, 0)
    KnobCorner.Parent = Knob

    local IsOn = false
    local TweenInfo_ = TweenInfo.new(0.18, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)

    local ClickRegion = Instance.new("TextButton")
    ClickRegion.Size = UDim2.new(1, 0, 1, 0)
    ClickRegion.BackgroundTransparency = 1
    ClickRegion.Text = ""
    ClickRegion.Parent = Container

    local Callbacks = {}

    ClickRegion.MouseButton1Click:Connect(function()
        IsOn = not IsOn
        local targetKnobX = IsOn and UDim2.new(1, -19, 0.5, -8) or UDim2.new(0, 3, 0.5, -8)
        local targetBg = IsOn and accentColor or Color3.fromRGB(50, 50, 60)
        local targetKnob = IsOn and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(180, 180, 180)
        TweenService:Create(Knob, TweenInfo_, { Position = targetKnobX, BackgroundColor3 = targetKnob }):Play()
        TweenService:Create(ToggleBg, TweenInfo_, { BackgroundColor3 = targetBg }):Play()
        for _, cb in ipairs(Callbacks) do cb(IsOn) end
    end)

    return {
        Container = Container,
        OnToggle = function(cb) table.insert(Callbacks, cb) end,
        GetState = function() return IsOn end,
    }
end

local function MakeSlider(parent, yPos, labelText, minVal, maxVal, defaultVal, accentColor)
    local Container = Instance.new("Frame")
    Container.Size = UDim2.new(1, 0, 0, 56)
    Container.Position = UDim2.new(0, 0, 0, yPos)
    Container.BackgroundColor3 = Color3.fromRGB(25, 25, 32)
    Container.BorderSizePixel = 0
    Container.Parent = parent

    local ContCorner = Instance.new("UICorner")
    ContCorner.CornerRadius = UDim.new(0, 8)
    ContCorner.Parent = Container

    local HeaderRow = Instance.new("Frame")
    HeaderRow.Size = UDim2.new(1, 0, 0, 26)
    HeaderRow.Position = UDim2.new(0, 0, 0, 0)
    HeaderRow.BackgroundTransparency = 1
    HeaderRow.Parent = Container

    local Label = Instance.new("TextLabel")
    Label.Text = labelText
    Label.Size = UDim2.new(0.7, 0, 1, 0)
    Label.Position = UDim2.new(0, 12, 0, 0)
    Label.BackgroundTransparency = 1
    Label.TextColor3 = Color3.fromRGB(220, 220, 220)
    Label.TextSize = 12
    Label.Font = Enum.Font.GothamSemibold
    Label.TextXAlignment = Enum.TextXAlignment.Left
    Label.Parent = HeaderRow

    local ValueLabel = Instance.new("TextLabel")
    ValueLabel.Text = tostring(defaultVal)
    ValueLabel.Size = UDim2.new(0.3, -12, 1, 0)
    ValueLabel.Position = UDim2.new(0.7, 0, 0, 0)
    ValueLabel.BackgroundTransparency = 1
    ValueLabel.TextColor3 = accentColor
    ValueLabel.TextSize = 12
    ValueLabel.Font = Enum.Font.GothamBold
    ValueLabel.TextXAlignment = Enum.TextXAlignment.Right
    ValueLabel.Parent = HeaderRow

    local TrackBg = Instance.new("Frame")
    TrackBg.Size = UDim2.new(1, -24, 0, 6)
    TrackBg.Position = UDim2.new(0, 12, 0, 36)
    TrackBg.BackgroundColor3 = Color3.fromRGB(50, 50, 60)
    TrackBg.BorderSizePixel = 0
    TrackBg.Parent = Container

    local TrackCorner = Instance.new("UICorner")
    TrackCorner.CornerRadius = UDim.new(1, 0)
    TrackCorner.Parent = TrackBg

    local Fill = Instance.new("Frame")
    Fill.Size = UDim2.new((defaultVal - minVal) / (maxVal - minVal), 0, 1, 0)
    Fill.BackgroundColor3 = accentColor
    Fill.BorderSizePixel = 0
    Fill.Parent = TrackBg

    local FillCorner = Instance.new("UICorner")
    FillCorner.CornerRadius = UDim.new(1, 0)
    FillCorner.Parent = Fill

    local Thumb = Instance.new("Frame")
    Thumb.Size = UDim2.new(0, 14, 0, 14)
    Thumb.AnchorPoint = Vector2.new(0.5, 0.5)
    Thumb.Position = UDim2.new((defaultVal - minVal) / (maxVal - minVal), 0, 0.5, 0)
    Thumb.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
    Thumb.BorderSizePixel = 0
    Thumb.ZIndex = 3
    Thumb.Parent = TrackBg

    local ThumbCorner = Instance.new("UICorner")
    ThumbCorner.CornerRadius = UDim.new(1, 0)
    ThumbCorner.Parent = Thumb

    local CurrentVal = defaultVal
    local Dragging = false
    local Callbacks = {}

    local DragButton = Instance.new("TextButton")
    DragButton.Size = UDim2.new(1, 0, 0, 20)
    DragButton.Position = UDim2.new(0, 0, 0, 30)
    DragButton.BackgroundTransparency = 1
    DragButton.Text = ""
    DragButton.ZIndex = 5
    DragButton.Parent = Container

    local function UpdateSlider(inputX)
        local trackAbsPos = TrackBg.AbsolutePosition.X
        local trackAbsSize = TrackBg.AbsoluteSize.X
        local ratio = math.clamp((inputX - trackAbsPos) / trackAbsSize, 0, 1)
        CurrentVal = math.floor(minVal + (maxVal - minVal) * ratio)
        Fill.Size = UDim2.new(ratio, 0, 1, 0)
        Thumb.Position = UDim2.new(ratio, 0, 0.5, 0)
        ValueLabel.Text = tostring(CurrentVal)
        for _, cb in ipairs(Callbacks) do cb(CurrentVal) end
    end

    DragButton.MouseButton1Down:Connect(function()
        Dragging = true
        UpdateSlider(Mouse.X)
    end)

    UserInputService.InputChanged:Connect(function(input)
        if Dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
            UpdateSlider(input.Position.X)
        end
    end)

    UserInputService.InputEnded:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            Dragging = false
        end
    end)

    return {
        Container = Container,
        OnChange = function(cb) table.insert(Callbacks, cb) end,
        GetValue = function() return CurrentVal end,
    }
end

local function MakeSectionLabel(parent, yPos, text)
    local Label = Instance.new("TextLabel")
    Label.Text = text
    Label.Size = UDim2.new(1, 0, 0, 20)
    Label.Position = UDim2.new(0, 0, 0, yPos)
    Label.BackgroundTransparency = 1
    Label.TextColor3 = Color3.fromRGB(120, 120, 140)
    Label.TextSize = 11
    Label.Font = Enum.Font.GothamSemibold
    Label.TextXAlignment = Enum.TextXAlignment.Left
    Label.Parent = parent
    return Label
end

-- ============================================================
-- BUILD THE FEATURE PANELS
-- ============================================================

-- Section: Combat
MakeSectionLabel(ContentFrame, 0, "COMBAT")

local HitboxToggle = MakeToggle(ContentFrame, 22, "Hitbox Expander", Color3.fromRGB(255, 80, 80))
local HitboxSlider = MakeSlider(ContentFrame, 68, "Hitbox Size", 5, 50, 15, Color3.fromRGB(255, 80, 80))
local AutoSlapToggle = MakeToggle(ContentFrame, 132, "Auto Slap", Color3.fromRGB(255, 130, 60))
local AutoSlapSlider = MakeSlider(ContentFrame, 178, "Slap Range", 5, 60, 20, Color3.fromRGB(255, 130, 60))

-- Section: Movement
MakeSectionLabel(ContentFrame, 242, "MOVEMENT")
local SpeedToggle = MakeToggle(ContentFrame, 264, "Walk Speed", Color3.fromRGB(100, 180, 255))
local SpeedSlider = MakeSlider(ContentFrame, 310, "Speed Value", 16, 150, 50, Color3.fromRGB(100, 180, 255))

-- ============================================================
-- DRAG LOGIC
-- ============================================================

TitleBar.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        State.GUI.Dragging = true
        State.GUI.DragOffset = Vector2.new(
            input.Position.X - MainFrame.AbsolutePosition.X,
            input.Position.Y - MainFrame.AbsolutePosition.Y
        )
    end
end)

TitleBar.InputEnded:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        State.GUI.Dragging = false
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if State.GUI.Dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
        MainFrame.Position = UDim2.new(
            0, input.Position.X - State.GUI.DragOffset.X,
            0, input.Position.Y - State.GUI.DragOffset.Y
        )
    end
end)

-- ============================================================
-- MINIMIZE LOGIC
-- ============================================================

local Minimized = false
MinimizeBtn.MouseButton1Click:Connect(function()
    Minimized = not Minimized
    ContentFrame.Visible = not Minimized
    MainFrame.Size = Minimized and UDim2.new(0, 280, 0, 40) or UDim2.new(0, 280, 0, 390)
    MinimizeBtn.Text = Minimized and "+" or "−"
end)

-- ============================================================
-- FEATURE: HITBOX EXPANDER
-- ============================================================

local function ExpandHitboxes(size)
    for _, player in ipairs(Players:GetPlayers()) do
        if player ~= LocalPlayer and player.Character then
            local hrp = player.Character:FindFirstChild("HumanoidRootPart")
            if hrp then
                hrp.Size = Vector3.new(size, size, size)
                hrp.Transparency = 0.8
                hrp.CanCollide = false
            end
        end
    end
end

local function ResetHitboxes()
    for _, player in ipairs(Players:GetPlayers()) do
        if player ~= LocalPlayer and player.Character then
            local hrp = player.Character:FindFirstChild("HumanoidRootPart")
            if hrp then
                hrp.Size = Vector3.new(2, 2, 1)
                hrp.Transparency = 1
            end
        end
    end
end

HitboxToggle.OnToggle(function(state)
    State.HitboxExpander.Enabled = state
    if not state then ResetHitboxes() end
end)

HitboxSlider.OnChange(function(val)
    State.HitboxExpander.Size = val
end)

-- ============================================================
-- FEATURE: AUTO SLAP
-- ============================================================

local function GetClosestPlayer(range)
    local hrp = Character:FindFirstChild("HumanoidRootPart")
    if not hrp then return nil end
    local closest, closestDist = nil, range

    for _, player in ipairs(Players:GetPlayers()) do
        if player ~= LocalPlayer and player.Character then
            local otherHrp = player.Character:FindFirstChild("HumanoidRootPart")
            local hum = player.Character:FindFirstChildOfClass("Humanoid")
            if otherHrp and hum and hum.Health > 0 then
                local dist = (hrp.Position - otherHrp.Position).Magnitude
                if dist < closestDist then
                    closestDist = dist
                    closest = player
                end
            end
        end
    end
    return closest
end

local function TriggerSlap(targetPlayer)
    local tool = LocalPlayer.Backpack:FindFirstChildOfClass("Tool")
        or (Character and Character:FindFirstChildOfClass("Tool"))
    if not tool then return end

    if not Character:FindFirstChild(tool.Name) then
        humanoid = Character:FindFirstChildOfClass("Humanoid")
        if humanoid then humanoid:EquipTool(tool) end
    end

    local targetHrp = targetPlayer.Character and targetPlayer.Character:FindFirstChild("HumanoidRootPart")
    if not targetHrp then return end

    local event = tool:FindFirstChild("SlapEvent") or tool:FindFirstChildOfClass("RemoteEvent")
    if event then
        pcall(function()
            event:FireServer(targetHrp.CFrame.Position)
        end)
    end

    local localHrp = Character:FindFirstChild("HumanoidRootPart")
    if localHrp then
        localHrp.CFrame = CFrame.new(
            targetHrp.Position - (targetHrp.CFrame.LookVector * 3),
            targetHrp.Position
        )
    end
end

AutoSlapToggle.OnToggle(function(state)
    State.AutoSlap.Enabled = state
    if State.AutoSlap.Connection then
        State.AutoSlap.Connection:Disconnect()
        State.AutoSlap.Connection = nil
    end

    if state then
        State.AutoSlap.Connection = RunService.Heartbeat:Connect(function()
            if not State.AutoSlap.Enabled then return end
            local target = GetClosestPlayer(State.AutoSlap.Range)
            if target then
                TriggerSlap(target)
            end
        end)
    end
end)

AutoSlapSlider.OnChange(function(val)
    State.AutoSlap.Range = val
end)

-- ============================================================
-- FEATURE: WALK SPEED
-- ============================================================

local SpeedConnection = nil

local function ApplySpeed(speed)
    local hum = Character and Character:FindFirstChildOfClass("Humanoid")
    if hum then
        hum.WalkSpeed = speed
    end
end

local function ResetSpeed()
    ApplySpeed(State.WalkSpeed.DefaultSpeed)
end

SpeedToggle.OnToggle(function(state)
    State.WalkSpeed.Enabled = state
    if SpeedConnection then
        SpeedConnection:Disconnect()
        SpeedConnection = nil
    end

    if state then
        ApplySpeed(State.WalkSpeed.Speed)
        SpeedConnection = RunService.Heartbeat:Connect(function()
            if not State.WalkSpeed.Enabled then return end
            local hum = Character and Character:FindFirstChildOfClass("Humanoid")
            if hum and hum.WalkSpeed ~= State.WalkSpeed.Speed then
                hum.WalkSpeed = State.WalkSpeed.Speed
            end
        end)
    else
        ResetSpeed()
    end
end)

SpeedSlider.OnChange(function(val)
    State.WalkSpeed.Speed = val
    if State.WalkSpeed.Enabled then
        ApplySpeed(val)
    end
end)

-- ============================================================
-- CHARACTER RESPAWN HANDLING
-- ============================================================

LocalPlayer.CharacterAdded:Connect(function(newChar)
    Character = newChar
    newChar:WaitForChild("HumanoidRootPart")
    newChar:WaitForChild("Humanoid")
    task.wait(0.5)

    if State.WalkSpeed.Enabled then
        ApplySpeed(State.WalkSpeed.Speed)
    end
end)

-- ============================================================
-- HITBOX LOOP
-- ============================================================

RunService.Heartbeat:Connect(function()
    if State.HitboxExpander.Enabled then
        ExpandHitboxes(State.HitboxExpander.Size)
    end
end)

Players.PlayerAdded:Connect(function(player)
    player.CharacterAdded:Connect(function()
        task.wait(1)
        if State.HitboxExpander.Enabled then
            ExpandHitboxes(State.HitboxExpander.Size)
        end
    end)
end)

Features & Information

I dont know

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts