INSANE wall hop tower😈 Script – HUB SLAP TROLL (Keyless) - Verified script for INSANE wall hop tower😈
Key Required

INSANE wall hop tower😈 Script – HUB SLAP TROLL (Keyless)

INSANE wall hop tower😈ItzzmeVentozItzzmeVentoz 781 views 2.1K executesUpdated Oct 20, 2026
Unrated
00
Lua Script•577 lines (16741 chars)
local WindUI = loadstring(game:HttpGet("https://github.com/Footagesus/WindUI/releases/latest/download/main.lua"))()

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UIS = game:GetService("UserInputService")
local SoundService = game:GetService("SoundService")
local lp = Players.LocalPlayer
local Camera = workspace.CurrentCamera

local S = {
    AutoSlap = false,
    SlapRange = 15,
    SpamDelay = 0.6,
    InfSlapTool = false,
    RemoteDelay = 0.1,
    SlapAll = false,
    Spin = false,
    SpinSpeed = 20,
    InfJump = false,
    SpeedHack = false,
    SpeedValue = 60,
    BHop = false,
    TrollSomeone = false,
    TrollTarget = nil,
    TrollDelay = 0.6,
}

local BHopSoundId = "rbxassetid://9114890978"
local BHopMax = 150
local BHopMultiplier = 1.3
local BHopResetTime = 0.4

local slapConn = nil
local remoteConn = nil
local slapAllThread = nil
local trollFollowConn = nil
local trollSlapThread = nil
local spinConn = nil
local jumpConn = nil
local speedConn = nil
local bhopConn = nil
local spinAngle = 0
local lastSlap = 0
local bhopSpeed = 16
local lastJumpTime = 0
local jumpSound = nil

local Window = WindUI:CreateWindow({
    Title = "INSANE wallhop tower",
    Icon = "hand",
    Author = "TG: @ventozzz",
    Folder = "InsaneWallHop",
    Size = UDim2.fromOffset(500, 540),
    Transparent = true,
    Theme = "Dark",
    Resizable = true,
})

local MainTab = Window:Tab({ Title = "Main", Icon = "hand" })
local MovementTab = Window:Tab({ Title = "Movement", Icon = "wind" })
local TrollTab = Window:Tab({ Title = "Troll", Icon = "troll" })

local remote = game:GetService("ReplicatedStorage"):WaitForChild("GetSlap")

local function getGloves()
    local gloves = {}
    local backpack = lp:FindFirstChild("Backpack")
    if backpack then
        for _, item in ipairs(backpack:GetChildren()) do
            if item:IsA("Tool") then table.insert(gloves, item) end
        end
    end
    local char = lp.Character
    if char then
        for _, item in ipairs(char:GetChildren()) do
            if item:IsA("Tool") then table.insert(gloves, item) end
        end
    end
    return gloves
end

local function equipGlove(glove)
    local char = lp.Character
    if not char then return end
    local hum = char:FindFirstChildOfClass("Humanoid")
    if not hum then return end
    if glove and glove.Parent then
        pcall(function() hum:EquipTool(glove) end)
    end
end

local function slapTarget(targetChar)
    if not targetChar then return end
    local myChar = lp.Character
    if not myChar then return end
    local myRoot = myChar:FindFirstChild("HumanoidRootPart")
    local tRoot = targetChar:FindFirstChild("HumanoidRootPart")
    if not myRoot or not tRoot then return end

    local gloves = getGloves()
    if #gloves == 0 then return end
    equipGlove(gloves[math.random(1, #gloves)])

    RunService.Heartbeat:Wait()
    RunService.Heartbeat:Wait()

    local tool = lp.Character and lp.Character:FindFirstChildOfClass("Tool")
    if tool then
        pcall(function() tool:Activate() end)
    end

    pcall(function()
        remote:FireServer(targetChar)
    end)
end

local function getNearestPlayer()
    local myRoot = lp.Character and lp.Character:FindFirstChild("HumanoidRootPart")
    if not myRoot then return nil end
    local best, bestDist = nil, S.SlapRange
    for _, plr in ipairs(Players:GetPlayers()) do
        if plr == lp then continue end
        local char = plr.Character
        if not char then continue end
        local hum = char:FindFirstChildOfClass("Humanoid")
        local root = char:FindFirstChild("HumanoidRootPart")
        if not hum or not root or hum.Health <= 0 then continue end
        local dist = (myRoot.Position - root.Position).Magnitude
        if dist < bestDist then
            best, bestDist = char, dist
        end
    end
    return best
end

local function doSlap()
    local now = tick()
    if now - lastSlap < S.SpamDelay then return end
    lastSlap = now
    local target = getNearestPlayer()
    if not target then return end
    slapTarget(target)
end

local function startAutoSlap()
    if slapConn then slapConn:Disconnect() end
    slapConn = RunService.Heartbeat:Connect(function()
        if not S.AutoSlap then return end
        doSlap()
    end)
end

local function stopAutoSlap()
    if slapConn then slapConn:Disconnect() slapConn = nil end
end

local function startInfSlapTool()
    if remoteConn then pcall(function() task.cancel(remoteConn) end) end
    remoteConn = task.spawn(function()
        while S.InfSlapTool do
            pcall(function() remote:FireServer() end)
            task.wait(S.RemoteDelay)
        end
    end)
end

local function stopInfSlapTool()
    S.InfSlapTool = false
    if remoteConn then
        pcall(function() task.cancel(remoteConn) end)
        remoteConn = nil
    end
end

local function startSpin()
    local char = lp.Character
    if not char then return end
    local hum = char:FindFirstChildOfClass("Humanoid")
    if hum then hum.AutoRotate = false end
    spinAngle = 0
    if spinConn then spinConn:Disconnect() end
    spinConn = RunService.RenderStepped:Connect(function(dt)
        if not S.Spin then return end
        local c = lp.Character
        if not c then return end
        local root = c:FindFirstChild("HumanoidRootPart")
        if not root then return end
        spinAngle = spinAngle + dt * S.SpinSpeed
        root.CFrame = CFrame.new(root.Position) * CFrame.Angles(0, spinAngle, 0)
    end)
end

local function stopSpin()
    if spinConn then spinConn:Disconnect() spinConn = nil end
    local char = lp.Character
    if char then
        local hum = char:FindFirstChildOfClass("Humanoid")
        if hum then hum.AutoRotate = true end
    end
end

local function startInfJump()
    if jumpConn then jumpConn:Disconnect() end
    jumpConn = UIS.JumpRequest:Connect(function()
        local char = lp.Character
        if not char then return end
        local hum = char:FindFirstChildOfClass("Humanoid")
        if not hum then return end
        hum:ChangeState(Enum.HumanoidStateType.Jumping)
    end)
end

local function stopInfJump()
    if jumpConn then jumpConn:Disconnect() jumpConn = nil end
end

local function startSpeed()
    if speedConn then speedConn:Disconnect() end
    speedConn = RunService.Heartbeat:Connect(function()
        local char = lp.Character
        if not char then return end
        local hum = char:FindFirstChildOfClass("Humanoid")
        local root = char:FindFirstChild("HumanoidRootPart")
        if not hum or not root then return end
        local md = hum.MoveDirection
        if md.Magnitude < 0.1 then return end
        local dir = Vector3.new(md.X, 0, md.Z).Unit
        root.AssemblyLinearVelocity = Vector3.new(dir.X * S.SpeedValue, root.AssemblyLinearVelocity.Y, dir.Z * S.SpeedValue)
    end)
end

local function stopSpeed()
    if speedConn then speedConn:Disconnect() speedConn = nil end
end

local function playJumpSound()
    if not jumpSound then
        jumpSound = Instance.new("Sound")
        jumpSound.Name = "BHopSound"
        jumpSound.Parent = SoundService
    end
    jumpSound.SoundId = BHopSoundId
    jumpSound.Volume = 1
    jumpSound.PlaybackSpeed = 1
    jumpSound:Play()
end

local function startBHop()
    if bhopConn then bhopConn:Disconnect() end
    bhopSpeed = 16
    lastJumpTime = 0

    bhopConn = RunService.Heartbeat:Connect(function()
        if not S.BHop then return end
        local char = lp.Character
        if not char then return end
        local hum = char:FindFirstChildOfClass("Humanoid")
        local root = char:FindFirstChild("HumanoidRootPart")
        if not hum or not root then return end

        local onGround = hum.FloorMaterial ~= Enum.Material.Air
        local now = tick()

        if onGround then
            if lastJumpTime > 0 and now - lastJumpTime > BHopResetTime then
                bhopSpeed = 16
            end
            hum:ChangeState(Enum.HumanoidStateType.Jumping)
            lastJumpTime = now
            playJumpSound()
        end

        local md = hum.MoveDirection
        if md.Magnitude > 0.1 then
            local dir = Vector3.new(md.X, 0, md.Z).Unit
            root.AssemblyLinearVelocity = Vector3.new(
                dir.X * bhopSpeed,
                root.AssemblyLinearVelocity.y,
                dir.Z * bhopSpeed
            )
        end

        if not onGround and lastJumpTime > 0 and now - lastJumpTime < BHopResetTime then
            bhopSpeed = bhopSpeed * BHopMultiplier
            if bhopSpeed > BHopMax then bhopSpeed = BHopMax end
            lastJumpTime = 0
        end
    end)
end

local function stopBHop()
    if bhopConn then bhopConn:Disconnect() bhopConn = nil end
    bhopSpeed = 16
    if jumpSound then jumpSound:Stop() end
end

local function startSlapAll()
    if slapAllThread then
        pcall(function() task.cancel(slapAllThread) end)
    end
    slapAllThread = task.spawn(function()
        local endTime = tick() + 8
        while S.SlapAll and tick() < endTime do
            pcall(function() remote:FireServer() end)
            task.wait(0.05)
        end

        while S.SlapAll do
            for _, plr in ipairs(Players:GetPlayers()) do
                if not S.SlapAll then return end
                if plr == lp then continue end
                local char = plr.Character
                if not char then continue end
                local hum = char:FindFirstChildOfClass("Humanoid")
                if not hum or hum.Health <= 0 then continue end

                local startFollow = tick()
                while S.SlapAll and tick() - startFollow < 1 do
                    local myChar = lp.Character
                    local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")
                    local tChar = plr.Character
                    local tRoot = tChar and tChar:FindFirstChild("HumanoidRootPart")
                    if myRoot and tRoot then
                        pcall(function() myRoot:SetNetworkOwner(lp) end)
                        local back = tRoot.CFrame.LookVector * -3
                        myRoot.CFrame = CFrame.new(tRoot.Position + back, tRoot.Position)
                        myRoot.AssemblyLinearVelocity = Vector3.zero
                        myRoot.AssemblyAngularVelocity = Vector3.zero
                    end
                    RunService.Heartbeat:Wait()
                end

                if not S.SlapAll then return end

                local gloves = getGloves()
                if #gloves > 0 then
                    equipGlove(gloves[math.random(1, #gloves)])
                    RunService.Heartbeat:Wait()
                    RunService.Heartbeat:Wait()
                    local tool = lp.Character and lp.Character:FindFirstChildOfClass("Tool")
                    if tool then
                        pcall(function() tool:Activate() end)
                    end
                    pcall(function() remote:FireServer(char) end)
                end
                task.wait(0.3)
            end
            task.wait(0.3)
        end
    end)
end

local function stopSlapAll()
    S.SlapAll = false
    if slapAllThread then
        pcall(function() task.cancel(slapAllThread) end)
        slapAllThread = nil
    end
end

local function startTrollSomeone()
    if trollFollowConn then trollFollowConn:Disconnect() end
    if trollSlapThread then pcall(function() task.cancel(trollSlapThread) end) end

    trollFollowConn = RunService.RenderStepped:Connect(function()
        if not S.TrollSomeone then return end
        local target = S.TrollTarget
        if not target or not target.Parent then return end
        local char = target.Character
        if not char then return end
        local root = char:FindFirstChild("HumanoidRootPart")
        local myChar = lp.Character
        local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")
        if not root or not myRoot then return end

        pcall(function() myRoot:SetNetworkOwner(lp) end)
        local back = root.CFrame.LookVector * -3
        myRoot.CFrame = CFrame.new(root.Position + back, root.Position)
        myRoot.AssemblyLinearVelocity = Vector3.zero
        myRoot.AssemblyAngularVelocity = Vector3.zero
    end)

    trollSlapThread = task.spawn(function()
        while S.TrollSomeone do
            task.wait(S.TrollDelay)
            if not S.TrollSomeone then return end
            local target = S.TrollTarget
            if not target or not target.Parent then continue end
            local char = target.Character
            if not char then continue end
            local hum = char:FindFirstChildOfClass("Humanoid")
            if not hum or hum.Health <= 0 then continue end
            slapTarget(char)
        end
    end)
end

local function stopTrollSomeone()
    S.TrollSomeone = false
    if trollFollowConn then trollFollowConn:Disconnect() trollFollowConn = nil end
    if trollSlapThread then
        pcall(function() task.cancel(trollSlapThread) end)
        trollSlapThread = nil
    end
end

local selectedPlayerName = nil

local playerDropdown = TrollTab:Dropdown({
    Title = "Troll Player",
    Values = {},
    Multi = false,
    Default = "",
    Callback = function(selected)
        selectedPlayerName = selected
        for _, plr in ipairs(Players:GetPlayers()) do
            if plr.Name == selected then
                S.TrollTarget = plr
                break
            end
        end
    end
})

TrollTab:Button({
    Title = "Refresh Player List",
    Callback = function()
        local names = {}
        for _, plr in ipairs(Players:GetPlayers()) do
            if plr ~= lp then
                table.insert(names, plr.Name)
            end
        end
        if #names == 0 then names = { "no players" } end
        pcall(function()
            playerDropdown:Refresh(names)
        end)
    end
})

TrollTab:Toggle({
    Title = "Troll Player",
    Default = false,
    Callback = function(v)
        S.TrollSomeone = v
        if v then startTrollSomeone() else stopTrollSomeone() end
    end
})

TrollTab:Slider({
    Title = "Troll Delay",
    Min = 0.2,
    Max = 3,
    Default = 0.6,
    Callback = function(v) S.TrollDelay = v end
})

MainTab:Toggle({
    Title = "Auto Slap",
    Default = false,
    Callback = function(v)
        S.AutoSlap = v
        if v then startAutoSlap() else stopAutoSlap() end
    end
})

MainTab:Slider({
    Title = "Slap Range",
    Min = 5,
    Max = 50,
    Default = 15,
    Callback = function(v) S.SlapRange = v end
})

MainTab:Slider({
    Title = "Slap Delay",
    Min = 0.2,
    Max = 3,
    Default = 0.6,
    Callback = function(v) S.SpamDelay = v end
})

MainTab:Toggle({
    Title = "Inf Slap Tool",
    Default = false,
    Callback = function(v)
        S.InfSlapTool = v
        if v then startInfSlapTool() else stopInfSlapTool() end
    end
})

MainTab:Slider({
    Title = "Remote Delay",
    Min = 0.05,
    Max = 1,
    Default = 0.1,
    Callback = function(v) S.RemoteDelay = v end
})

MovementTab:Toggle({
    Title = "Spin",
    Default = false,
    Callback = function(v)
        S.Spin = v
        if v then startSpin() else stopSpin() end
    end
})

MovementTab:Slider({
    Title = "Spin Speed",
    Min = 1,
    Max = 100,
    Default = 20,
    Callback = function(v) S.SpinSpeed = v end
})

MovementTab:Toggle({
    Title = "Infinite Jump",
    Default = false,
    Callback = function(v)
        S.InfJump = v
        if v then startInfJump() else stopInfJump() end
    end
})

MovementTab:Toggle({
    Title = "Speed Hack",
    Default = false,
    Callback = function(v)
        S.SpeedHack = v
        if v then startSpeed() else stopSpeed() end
    end
})

MovementTab:Slider({
    Title = "Speed",
    Min = 18,
    Max = 150,
    Default = 60,
    Callback = function(v) S.SpeedValue = v end
})

MovementTab:Toggle({
    Title = "BHop",
    Default = false,
    Callback = function(v)
        S.BHop = v
        if v then startBHop() else stopBHop() end
    end
})

TrollTab:Toggle({
    Title = "Slap All",
    Default = false,
    Callback = function(v)
        S.SlapAll = v
        if v then startSlapAll() else stopSlapAll() end
    end
})

TrollTab:Button({
    Title = "Stop Slap All",
    Callback = function()
        stopSlapAll()
    end
})

lp.CharacterAdded:Connect(function()
    task.wait(0.5)
    if S.AutoSlap then startAutoSlap() end
    if S.InfSlapTool then startInfSlapTool() end
    if S.Spin then startSpin() end
    if S.InfJump then startInfJump() end
    if S.SpeedHack then startSpeed() end
    if S.BHop then startBHop() end
    if S.TrollSomeone then startTrollSomeone() end
end)

How to Execute INSANE wall hop tower😈 Script – HUB SLAP TROLL (Keyless)

Step 1: Copy Code: Click the Copy Code button in the viewer above to grab the clean Lua loadstring.

Step 2: Launch Executor: Open a compatible, unpatched executor. If you need one, check our Roblox Executors Directory.

Step 3: Join Experience: Launch Roblox and join INSANE wall hop tower😈.

Step 4: Attach & Run: Attach/inject your executor into the Roblox process, paste the code into the script tab, and press Execute.

Created By

ItzzmeVentoz
ItzzmeVentoz
Script Creator
View Author Profile

Roblox Experience

Active Players:386
Play on Roblox

Features & Information

Execute INSANE wall hop tower😈 Script – HUB SLAP TROLL (Keyless). Key system required, created by ItzzmeVentoz, updated Oct 20, 2026. Tested and working on supported executors.
#Roblox#ArceusX#Delta#Free#no key

Script Changelog (1)

@ItzzmeVentozOct 20, 2026

Create script

Community Comments (0)

No comments yet for this script.

Frequently Asked Questions

How do I execute INSANE wall hop tower😈 Script – HUB SLAP TROLL (Keyless) in Roblox?

To run INSANE wall hop tower😈 Script – HUB SLAP TROLL (Keyless), copy the Lua loadstring from the code viewer above, launch Roblox and join INSANE wall hop tower😈, attach a working executor (such as Potassium, Solara, or Delta from our Executors directory), paste the code into your executor console, and click Execute.

Is INSANE wall hop tower😈 Script – HUB SLAP TROLL (Keyless) keyless or does it require an access key?

INSANE wall hop tower😈 Script – HUB SLAP TROLL (Keyless) requires an access key. You can retrieve the official key directly using the Get Script Key link provided above.

Is INSANE wall hop tower😈 Script – HUB SLAP TROLL (Keyless) currently safe and working?

This script is active and operational. Always test scripts using a secondary (alt) Roblox account to safeguard your main profile against anti-cheat bans.