Slap Tower Script (2025 Update) – Auto Coin Farm, Anti-Slap, No Pass & More

by Usama Ali
Current image: Slap Tower Script

Slap Tower

Introduction

Slap Tower is a fast-paced Roblox game where players collect slaps, dodge obstacles, climb stages, and outplay everyone on the tower. To make progression smoother, this updated 2025 Slap Tower Script gives you access to powerful tools such as Auto Coin Farm, Anti-Slap, No Pass, Auto Button Press, Slap Grabber, and much more.
This script is safe, tested, and works with most popular executors.

Game Overview

In Slap Tower, your goal is to climb to the top while avoiding hazards, collecting special slaps, unlocking items, and moving through stages efficiently.
However, farming coins or collecting slaps can be slow manually. Scripts help automate repetitive tasks, give quality-of-life advantages, and make progression far easier and faster.

Why Use Scripts for Slap Tower?

  • Auto Coin Farming – Collect coins instantly without searching around the map.
  • Anti-Slap Protection – Prevent unwanted ragdoll effects and slap knockbacks.
  • Bridge No Pass Bypass – Automate bridge activations for smooth progress.
  • Grab All Slaps – Pull all slap collectibles to your character instantly.
  • Time Saver – Reduced grinding = faster progression.

Slap Tower Useful GUI Script

This all-in-one GUI script includes Auto Coin Farm, Anti-Slap, Bridge No Pass, Slap Grabber, Bridge Button Press, Teleports, Rejoin Tool, Honey Slap Claim, and more

Script (loadstring)

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

local LocalPlayer = Players.LocalPlayer

local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "theusefulgui"
ScreenGui.ResetOnSpawn = false -- Essential for keeping GUI on death

pcall(function()
    ScreenGui.Parent = game:GetService("CoreGui")
end)
if not ScreenGui.Parent then
    ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
end

-- Main Container
local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 550, 0, 350)
MainFrame.Position = UDim2.new(0.5, -275, 0.5, -175)
MainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 35)
MainFrame.BorderSizePixel = 0
MainFrame.ClipsDescendants = true
MainFrame.Parent = ScreenGui

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

-- Shadow
local Shadow = Instance.new("ImageLabel")
Shadow.AnchorPoint = Vector2.new(0.5, 0.5)
Shadow.BackgroundTransparency = 1
Shadow.Position = UDim2.new(0.5, 0, 0.5, 0)
Shadow.Size = UDim2.new(1, 30, 1, 30)
Shadow.ZIndex = -1
Shadow.Image = "rbxassetid://6014261993"
Shadow.ImageColor3 = Color3.fromRGB(0, 0, 0)
Shadow.ImageTransparency = 0.4
Shadow.Parent = MainFrame

-- Sidebar
local Sidebar = Instance.new("Frame")
Sidebar.Name = "Sidebar"
Sidebar.Size = UDim2.new(0, 150, 1, 0)
Sidebar.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
Sidebar.BorderSizePixel = 0
Sidebar.Parent = MainFrame

local SidebarCorner = Instance.new("UICorner")
SidebarCorner.CornerRadius = UDim.new(0, 6)
SidebarCorner.Parent = Sidebar

-- Sidebar Title
local Title = Instance.new("TextLabel")
Title.Text = "The Useful <b>Gui ™</b>"
Title.RichText = true
Title.Size = UDim2.new(1, -20, 0, 45)
Title.Position = UDim2.new(0, 15, 0, 0)
Title.BackgroundTransparency = 1
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.Font = Enum.Font.GothamBold
Title.TextSize = 16
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.Parent = Sidebar

-- Tab Container
local TabContainer = Instance.new("Frame")
TabContainer.Size = UDim2.new(1, 0, 1, -50)
TabContainer.Position = UDim2.new(0, 0, 0, 50)
TabContainer.BackgroundTransparency = 1
TabContainer.Parent = Sidebar

local TabLayout = Instance.new("UIListLayout")
TabLayout.Padding = UDim.new(0, 5)
TabLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
TabLayout.SortOrder = Enum.SortOrder.LayoutOrder
TabLayout.Parent = TabContainer

-- Content Area
local ContentArea = Instance.new("Frame")
ContentArea.Name = "ContentArea"
ContentArea.Size = UDim2.new(1, -150, 1, -45)
ContentArea.Position = UDim2.new(0, 150, 0, 45)
ContentArea.BackgroundTransparency = 1
ContentArea.ClipsDescendants = true
ContentArea.Parent = MainFrame

local Controls = Instance.new("Frame")
Controls.Size = UDim2.new(0, 60, 0, 45)
Controls.Position = UDim2.new(1, -65, 0, 0)
Controls.BackgroundTransparency = 1
Controls.Parent = MainFrame

local function CreateControlBtn(Name, IconID, OffsetX)
    local Btn = Instance.new("ImageButton")
    Btn.Name = Name
    Btn.Size = UDim2.new(0, 20, 0, 20)
    Btn.Position = UDim2.new(1, OffsetX, 0.5, -10)
    Btn.BackgroundTransparency = 1
 
    Btn.Image = "rbxassetid://" .. IconID
    Btn.ImageColor3 = Color3.fromRGB(150, 150, 150)
    Btn.Parent = Controls
    
    Btn.MouseEnter:Connect(function()
        TweenService:Create(Btn, TweenInfo.new(0.2), {ImageColor3 = Color3.fromRGB(255, 255, 255)}):Play()
    end)
    
    Btn.MouseLeave:Connect(function()
        TweenService:Create(Btn, TweenInfo.new(0.2), {ImageColor3 = Color3.fromRGB(150, 150, 150)}):Play()
    end)
    return Btn
end

local MinBtn = CreateControlBtn("Min", "3926305904", -50)
MinBtn.ImageRectOffset = Vector2.new(724, 724)
MinBtn.ImageRectSize = Vector2.new(36, 36)

local CloseBtn = CreateControlBtn("Close", "3926305904", -25)
CloseBtn.ImageRectOffset = Vector2.new(284, 4)
CloseBtn.ImageRectSize = Vector2.new(24, 24)

local isMinimized = false
MinBtn.MouseButton1Click:Connect(function()
    isMinimized = not isMinimized
    if isMinimized then
        TabContainer.Visible = false
        ContentArea.Visible = false
        TweenService:Create(MainFrame, TweenInfo.new(0.4, Enum.EasingStyle.Quart), {Size = UDim2.new(0, 550, 0, 45)}):Play()
        TweenService:Create(Shadow, TweenInfo.new(0.4), {ImageTransparency = 1}):Play()
        TweenService:Create(Sidebar, TweenInfo.new(0.4), {BackgroundColor3 = Color3.fromRGB(30, 30, 35)}):Play()
    else
        TweenService:Create(MainFrame, TweenInfo.new(0.4, Enum.EasingStyle.Quart), {Size = UDim2.new(0, 550, 0, 350)}):Play()
  
        TweenService:Create(Shadow, TweenInfo.new(0.4), {ImageTransparency = 0.4}):Play()
        TweenService:Create(Sidebar, TweenInfo.new(0.4), {BackgroundColor3 = Color3.fromRGB(20, 20, 25)}):Play()
        task.wait(0.3)
        TabContainer.Visible = true
        ContentArea.Visible = true
    end
end)

local function MakeDraggable(Frame)
    local dragging, dragInput, dragStart, startPos
    Frame.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = true
            dragStart = input.Position
            startPos = Frame.Position
            input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end)
        end
    end)
    Frame.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then dragInput = input end end)
    UserInputService.InputChanged:Connect(function(input)
        if input == dragInput and dragging then
     
            local delta = input.Position - dragStart
            TweenService:Create(Frame, TweenInfo.new(0.05), {Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)}):Play()
        end
    end)
end
MakeDraggable(MainFrame)

local Tabs = {}
local FirstPage = nil

local function CreateTab(Name, IconID)
    local TabBtn = Instance.new("TextButton")
    TabBtn.Size = UDim2.new(0.85, 0, 0, 32)
    TabBtn.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
    TabBtn.BackgroundTransparency = 1
    TabBtn.Text = "        " .. Name
    TabBtn.TextColor3 = Color3.fromRGB(150, 150, 150)
    TabBtn.Font = Enum.Font.GothamMedium
    TabBtn.TextSize = 13
    TabBtn.TextXAlignment = Enum.TextXAlignment.Left
    TabBtn.AutoButtonColor = false
    TabBtn.Parent = TabContainer
    
    Instance.new("UICorner", TabBtn).CornerRadius = UDim.new(0, 6)
    
    local Icon = Instance.new("ImageLabel")
    Icon.Size = UDim2.new(0, 18, 0, 18)
    Icon.Position = UDim2.new(0, 90, 0.5, -9)
    Icon.BackgroundTransparency = 1
    Icon.Image = "rbxassetid://" .. IconID
    Icon.ImageColor3 = Color3.fromRGB(150, 150, 150)
    Icon.Parent = TabBtn
    
    local Page = Instance.new("ScrollingFrame")
    Page.Size = UDim2.new(1, -20, 1, 0)
    Page.Position = UDim2.new(0, 10, 0, 0)
    Page.BackgroundTransparency = 1
    Page.ScrollBarThickness = 2
    Page.Visible = false
    Page.Parent = ContentArea
    
    local UIList = Instance.new("UIListLayout")
    UIList.Padding = UDim.new(0, 6)
    UIList.SortOrder = Enum.SortOrder.LayoutOrder
    UIList.Parent = Page
 
    local Pad = Instance.new("UIPadding")
    Pad.PaddingTop = UDim.new(0, 5)
    Pad.Parent = Page
    
    TabBtn.MouseButton1Click:Connect(function()
        for _, t in pairs(Tabs) do
            TweenService:Create(t.Btn, TweenInfo.new(0.3), {BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(150,150,150)}):Play()
            TweenService:Create(t.Icon, TweenInfo.new(0.3), {ImageColor3 = Color3.fromRGB(150,150,150)}):Play()
            t.Page.Visible = false
         end
        TweenService:Create(TabBtn, TweenInfo.new(0.3), {BackgroundTransparency = 0.9, TextColor3 = Color3.fromRGB(255,255,255)}):Play()
        TweenService:Create(Icon, TweenInfo.new(0.3), {ImageColor3 = Color3.fromRGB(255,255,255)}):Play()
        Page.Visible = true
    end)
    
    table.insert(Tabs, {Btn = TabBtn, Icon = Icon, Page = Page})
    if FirstPage == nil then FirstPage = {Btn = TabBtn, Icon = Icon, Page = Page} end
    return Page
end

local function AddButton(Page, Text, Callback)
    local Btn = Instance.new("TextButton")
    Btn.Size = UDim2.new(1, -5, 0, 32)
    Btn.BackgroundColor3 = Color3.fromRGB(40, 40, 45)
    Btn.Text = Text
    Btn.TextColor3 = Color3.fromRGB(255, 255, 255)
    Btn.Font = Enum.Font.Gotham
    Btn.TextSize = 13
    Btn.AutoButtonColor = false
    Btn.Parent = Page
    Instance.new("UICorner", Btn).CornerRadius = UDim.new(0, 4)
    
    Btn.MouseButton1Click:Connect(function()
        TweenService:Create(Btn, TweenInfo.new(0.1), {Size = UDim2.new(1, -7, 0, 30)}):Play()
        task.wait(0.1)
      
        TweenService:Create(Btn, TweenInfo.new(0.1), {Size = UDim2.new(1, -5, 0, 32)}):Play()
        Callback()
    end)
end

local function AddToggle(Page, Text, Callback)
    local Frame = Instance.new("Frame")
    Frame.Size = UDim2.new(1, -5, 0, 32)
    Frame.BackgroundColor3 = Color3.fromRGB(40, 40, 45)
    Frame.Parent = Page
    Instance.new("UICorner", Frame).CornerRadius = UDim.new(0, 4)
    
    local Label = Instance.new("TextLabel")
    Label.Text = Text
    Label.Size = UDim2.new(0.7, 0, 1, 0)
    Label.Position = UDim2.new(0, 10, 0, 0)
  
    Label.BackgroundTransparency = 1
    Label.TextColor3 = Color3.fromRGB(255, 255, 255)
    Label.Font = Enum.Font.Gotham
    Label.TextSize = 13
    Label.TextXAlignment = Enum.TextXAlignment.Left
    Label.Parent = Frame
    
    local ToggleBtn = Instance.new("TextButton")
    ToggleBtn.Text = ""
    ToggleBtn.Size = UDim2.new(0, 34, 0, 18)
    ToggleBtn.Position = UDim2.new(1, -44, 0.5, -9)
    ToggleBtn.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
    ToggleBtn.AutoButtonColor = false
    ToggleBtn.Parent = Frame
    Instance.new("UICorner", ToggleBtn).CornerRadius = UDim.new(1, 0)
 
    local Dot = Instance.new("Frame")
    Dot.Size = UDim2.new(0, 14, 0, 14)
    Dot.Position = UDim2.new(0, 2, 0.5, -7)
    Dot.BackgroundColor3 = Color3.fromRGB(150, 150, 150)
    Dot.Parent = ToggleBtn
    Instance.new("UICorner", Dot).CornerRadius = UDim.new(1, 0)
    
    local Toggled = false
    ToggleBtn.MouseButton1Click:Connect(function()
        Toggled = not Toggled
        if Toggled then
            TweenService:Create(ToggleBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(60, 60, 220)}):Play()
            TweenService:Create(Dot, TweenInfo.new(0.2), {Position = UDim2.new(1, -16, 0.5, -7), BackgroundColor3 = Color3.fromRGB(255, 255, 255)}):Play()
        else
            TweenService:Create(ToggleBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(25, 25, 30)}):Play()
            TweenService:Create(Dot, TweenInfo.new(0.2), {Position = UDim2.new(0, 2, 0.5, -7), BackgroundColor3 = Color3.fromRGB(150, 150, 150)}):Play()
        end
        Callback(Toggled)
    end)
end

local AntiSlapConnections = {}

local function ClearAntiSlap()
    for _, c in pairs(AntiSlapConnections) do
        c:Disconnect()
    end
    AntiSlapConnections = {}
end

local function HandleAntiSlapObject(obj, character)
    if obj:IsA("BodyAngularVelocity") then
        obj:Destroy()
    elseif obj:IsA("BodyGyro")
        and obj.MaxTorque ~= Vector3.new(8999999488, 8999999488, 8999999488)
        and obj.D ~= 500
        and obj.D ~= 50
        and obj.P ~= 90000 then
        obj:Destroy()
    elseif obj:IsA("BodyVelocity")
        and obj.MaxForce ~= Vector3.new(8999999488, 8999999488, 8999999488)
        and obj.Velocity ~= Vector3.new(0, 0, 0) then
        obj:Destroy()
    end
    if character and character:FindFirstChild("Humanoid") then
        character.Humanoid.Sit = false
        character.Humanoid.PlatformStand = false
    end
end

local function ScanCharacterForSlap(char)
    ClearAntiSlap()
    
    for _, obj in ipairs(char:GetDescendants()) do
        HandleAntiSlapObject(obj, char)
    end
    table.insert(AntiSlapConnections, char.DescendantAdded:Connect(function(obj)
        HandleAntiSlapObject(obj, char)
    end))
end

local firstPartPos = Vector3.new(33.4529037, 165.803314, 33.7354202)
local secondPartPos = Vector3.new(33.4529037, 165.803314, 59.7354202)

-- Function to find part by approximate position
local function getPartByPos(pos)
    for _, obj in ipairs(workspace:GetChildren()) do
        if obj:IsA("BasePart") and (obj.Position - pos).Magnitude < 0.01 then
            return obj
        end
    end
    return nil
end

local function touchPart(part)
    if part then
        local originalCFrame = part.CFrame
        part.CanCollide = false  -- prevent ragdolling/pushing
        local fake = part:Clone()
        fake.Parent = workspace
        fake.CanCollide = false
        part.Transparency = 1
        part.CFrame = LocalPlayer.Character.HumanoidRootPart.CFrame --
        task.wait(0.02)
        part.CFrame = originalCFrame
        part.Transparency = 0
        fake:Destroy()
    end
end

-- // 7. TAB SETUP \\ --
local IconHome = "10888331510"
local HomeTab = CreateTab("Main", IconHome)

-- [1] Toggle Coin Farm
AddToggle(HomeTab, "Coin Farm", function(state)
    _G.Coin = state
    if state then
        task.spawn(function()
            while _G.Coin do
                local char = LocalPlayer.Character
                local hrp = char and char:FindFirstChild("HumanoidRootPart")
                if hrp then
                    for i,v in ipairs(workspace:GetChildren()) do
                        if v.Name == "Token" and v:IsA("MeshPart") then
                            v.Transparency = 1
                            v.CFrame = hrp.CFrame
                            task.wait(0.03)
                        end
                    end
                end
                task.wait()
            end
        end)
    end
end)

-- [2] Toggle Anti-Slap
AddToggle(HomeTab, "Anti-Slap", function(state)
    if state then
        if LocalPlayer.Character then
            ScanCharacterForSlap(LocalPlayer.Character)
        end
        table.insert(AntiSlapConnections, LocalPlayer.CharacterAdded:Connect(ScanCharacterForSlap))
    else
        ClearAntiSlap()
    end
end)

-- [NEW] Toggle NoPass Pro
AddToggle(HomeTab, "Bridge No Pass", function(state)
    _G.NoPass = state
    if state then
        task.spawn(function()
            while _G.NoPass do
                local firstPart = getPartByPos(firstPartPos)
                local secondPart = getPartByPos(secondPartPos)
                local gudock = workspace:FindFirstChild("Gudock")
               
                if firstPart and firstPart.Transparency ~= 0 then
                    if secondPart then
                        touchPart(secondPart)
                    end
                    if gudock then
                        touchPart(gudock)
                    end
                end
                task.wait(0.2) -- checks every 0.2 seconds
            end
        end)
    end
end)

-- Grab All Slaps
AddButton(HomeTab, "Grab All Slaps", function()
    local player = game.Players.LocalPlayer
    local char = player.Character or player.CharacterAdded:Wait()
    local hrp = char:WaitForChild("HumanoidRootPart")

    for _, model in ipairs(workspace:GetChildren()) do
        if model:IsA("Model") and model.Name == "Slap" then
            for _, part in ipairs(model:GetChildren()) do
                if part:IsA("BasePart") then
                    local originalCFrame = part.CFrame
                    local visualClone = part:Clone()
                    visualClone.CanCollide = false
                    visualClone.Transparency = 1
                    visualClone.CFrame = originalCFrame
                    visualClone.Parent = model
                    part.CFrame = hrp.CFrame
                    task.wait(0.01)
                    part.CFrame = originalCFrame
                    visualClone:Destroy()
                end
            end
        end
    end
end)

-- Press Bridge Button (Method 1)
AddButton(HomeTab, "Press Bridge Button", function()
    local button = workspace:FindFirstChild("Gudock")
    local hrp = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
    if button and hrp then
        firetouchinterest(hrp, button, 0)
        firetouchinterest(hrp, button, 1)
    end
end)

-- Press Bridge Button (Method 2)
AddButton(HomeTab, "Press Bridge Button (2nd Method)", function()
    local button = workspace:FindFirstChild("Gudock")
    local hrp = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
    if button and hrp then
        local OC = button.CFrame
        local replacement = button:Clone()
        button.Transparency = 1
        button.CanCollide = false
        button.CFrame = hrp.CFrame
        task.wait(0.01)
        button.CFrame = OC
        button.Transparency = 0
        replacement:Destroy()
    end
end)

-- Go To Bridge
AddButton(HomeTab, "Go To Bridge", function()
    local hrp = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
    if hrp then
        hrp.CFrame = CFrame.new(34, 169, 95)
    end
end)

-- Rejoin Server
AddButton(HomeTab, "Rejoin Server", function()
    if #Players:GetPlayers() <= 1 then
        LocalPlayer:Kick("\nRejoining...")
        task.wait()
        TeleportService:Teleport(game.PlaceId, LocalPlayer)
    else
        TeleportService:TeleportToPlaceInstance(game.PlaceId, game.JobId, LocalPlayer)
    end
end)

AddButton(HomeTab, "Get Honey Slap (Exclusive)", function()
    game:GetService("ReplicatedStorage").HoneyEventClaim:FireServer()
end)

-- // 8. CLEANUP ON CLOSE \\ --
CloseBtn.MouseButton1Click:Connect(function()
    -- 1. Stop Coin Farm
    _G.Coin = false

    -- Stop NoPass
    _G.NoPass = false
    
    -- 2. Stop Anti-Slap
    ClearAntiSlap()
    
    -- 3. Kill GUI
    ScreenGui:Destroy()
end)

-- Init
if FirstPage then
    FirstPage.Btn.BackgroundTransparency = 0.9
    FirstPage.Btn.TextColor3 = Color3.fromRGB(255, 255, 255)
    FirstPage.Icon.ImageColor3 = Color3.fromRGB(255, 255, 255)
    FirstPage.Page.Visible = true]

Features Table

FeatureDescription
Auto Coin FarmAutomatically collects coins by pulling tokens to your character.
Anti-SlapPrevents ragdolling, knockback, and slap forces.
Bridge No PassAuto-bypasses bridge transparency phases.
Grab All SlapsInstantly collects all slap models nearby.
Auto Bridge ButtonAutomatically presses bridge button (two methods).
Teleport to BridgeMoves your character directly to bridge checkpoint.
Honey Slap ClaimInstantly grants Honey Slap reward.
Rejoin ServerQuickly rejoin the same or new server.
Smooth UIAnimated, draggable, collapsible GUI.

Script Comparison Table

CategoryDetails
Key Required No key needed
Best ForFarming, bypassing mechanics, collecting slaps
Mobile Friendly✔ Yes (with supported mobile executors)
Rating⭐⭐⭐⭐⭐ 9.6/10

Requirements

  • A working Roblox script executor (Fluxus, ScriptWare, Delta, Arceus X NG, Codex, etc.).
  • Stable internet connection.
  • Join a Slap Tower server.
  • Disable antivirus if executor fails to open.
  • Optional: Private server for safer farming.

How to Use (Quick Steps)

  1. Launch Roblox and join Slap Tower.
  2. Open your executor.
  3. Copy and paste the full script above.
  4. Execute it.
  5. The GUI will appear — toggle features you want.
  6. Enjoy faster progress and automated tools.

FAQs

1. Is the Slap Tower script safe?

Yes, this script is tested and safe, but always use trusted executors.

2. Can I get banned for using this?

While script detection is uncommon, there is always some risk. Use at your own discretion.

3. Does this work on mobile?

Yes, works on mobile executors like Arceus X, Delta, Codex Mobile.

4. Will the script receive updates?

Most features work on every patch, but GUI updates may be released when the game updates.

5. Why is the script not loading?

Your executor may be outdated or not compatible update it or switch to a better one.

Searching for your next favorite script? We’ve got you covered

You may also like