
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
| Feature | Description |
|---|---|
| Auto Coin Farm | Automatically collects coins by pulling tokens to your character. |
| Anti-Slap | Prevents ragdolling, knockback, and slap forces. |
| Bridge No Pass | Auto-bypasses bridge transparency phases. |
| Grab All Slaps | Instantly collects all slap models nearby. |
| Auto Bridge Button | Automatically presses bridge button (two methods). |
| Teleport to Bridge | Moves your character directly to bridge checkpoint. |
| Honey Slap Claim | Instantly grants Honey Slap reward. |
| Rejoin Server | Quickly rejoin the same or new server. |
| Smooth UI | Animated, draggable, collapsible GUI. |
Script Comparison Table
| Category | Details |
|---|---|
| Key Required | No key needed |
| Best For | Farming, 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)
- Launch Roblox and join Slap Tower.
- Open your executor.
- Copy and paste the full script above.
- Execute it.
- The GUI will appear — toggle features you want.
- 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.