this is a troll script fro obby towers that have the hug
Key RequiredUniversal

this is a troll script fro obby towers that have the hug

Universal Scriptimakerandomscriptsimakerandomscripts 1.5K views 5.1K executesUpdated May 2, 2026
Unrated
00
Lua Script•190 lines (6317 chars)
-- Hug Troll Script with GUI
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")

local player = Players.LocalPlayer
local cooldowns = {}

-- Settings
local hugRange = 8
local teleportDistance = 5000
local cooldownTime = 5 -- seconds

-- =====================
--        GUI
-- =====================
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "HugTrollGUI"
screenGui.ResetOnSpawn = false
screenGui.Parent = player.PlayerGui

local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 220, 0, 180)
mainFrame.Position = UDim2.new(0, 20, 0.5, -90)
mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Draggable = true
mainFrame.Parent = screenGui

-- Corner rounding
Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0, 10)

-- Title bar
local titleBar = Instance.new("Frame")
titleBar.Size = UDim2.new(1, 0, 0, 35)
titleBar.BackgroundColor3 = Color3.fromRGB(255, 75, 75)
titleBar.BorderSizePixel = 0
titleBar.Parent = mainFrame
Instance.new("UICorner", titleBar).CornerRadius = UDim.new(0, 10)

local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, 0, 1, 0)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "🤗 Hug Troller"
titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
titleLabel.TextScaled = true
titleLabel.Font = Enum.Font.GothamBold
titleLabel.Parent = titleBar

-- Status label
local statusLabel = Instance.new("TextLabel")
statusLabel.Size = UDim2.new(1, 0, 0, 30)
statusLabel.Position = UDim2.new(0, 0, 0, 45)
statusLabel.BackgroundTransparency = 1
statusLabel.Text = "Status: OFF"
statusLabel.TextColor3 = Color3.fromRGB(255, 80, 80)
statusLabel.TextScaled = true
statusLabel.Font = Enum.Font.Gotham
statusLabel.Parent = mainFrame

-- Toggle button
local toggleBtn = Instance.new("TextButton")
toggleBtn.Size = UDim2.new(0.8, 0, 0, 40)
toggleBtn.Position = UDim2.new(0.1, 0, 0, 85)
toggleBtn.BackgroundColor3 = Color3.fromRGB(255, 75, 75)
toggleBtn.Text = "Enable"
toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleBtn.TextScaled = true
toggleBtn.Font = Enum.Font.GothamBold
toggleBtn.BorderSizePixel = 0
toggleBtn.Parent = mainFrame
Instance.new("UICorner", toggleBtn).CornerRadius = UDim.new(0, 8)

-- Cooldown label
local cooldownLabel = Instance.new("TextLabel")
cooldownLabel.Size = UDim2.new(1, 0, 0, 25)
cooldownLabel.Position = UDim2.new(0, 0, 0, 135)
cooldownLabel.BackgroundTransparency = 1
cooldownLabel.Text = "Cooldown: " .. cooldownTime .. "s"
cooldownLabel.TextColor3 = Color3.fromRGB(180, 180, 180)
cooldownLabel.TextScaled = true
cooldownLabel.Font = Enum.Font.Gotham
cooldownLabel.Parent = mainFrame

-- Cooldown buttons
local minusBtn = Instance.new("TextButton")
minusBtn.Size = UDim2.new(0, 30, 0, 25)
minusBtn.Position = UDim2.new(0, 10, 0, 148)
minusBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
minusBtn.Text = "-"
minusBtn.TextColor3 = Color3.fromRGB(255,255,255)
minusBtn.TextScaled = true
minusBtn.Font = Enum.Font.GothamBold
minusBtn.BorderSizePixel = 0
minusBtn.Parent = mainFrame
Instance.new("UICorner", minusBtn).CornerRadius = UDim.new(0, 6)

local plusBtn = Instance.new("TextButton")
plusBtn.Size = UDim2.new(0, 30, 0, 25)
plusBtn.Position = UDim2.new(1, -40, 0, 148)
plusBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
plusBtn.Text = "+"
plusBtn.TextColor3 = Color3.fromRGB(255,255,255)
plusBtn.TextScaled = true
plusBtn.Font = Enum.Font.GothamBold
plusBtn.BorderSizePixel = 0
plusBtn.Parent = mainFrame
Instance.new("UICorner", plusBtn).CornerRadius = UDim.new(0, 6)

-- =====================
--       LOGIC
-- =====================
local enabled = false

local function updateCooldownLabel()
    cooldownLabel.Text = "Cooldown: " .. cooldownTime .. "s"
end

minusBtn.MouseButton1Click:Connect(function()
    if cooldownTime > 1 then
        cooldownTime = cooldownTime - 1
        updateCooldownLabel()
    end
end)

plusBtn.MouseButton1Click:Connect(function()
    cooldownTime = cooldownTime + 1
    updateCooldownLabel()
end)

toggleBtn.MouseButton1Click:Connect(function()
    enabled = not enabled
    if enabled then
        toggleBtn.Text = "Disable"
        toggleBtn.BackgroundColor3 = Color3.fromRGB(75, 200, 75)
        statusLabel.Text = "Status: ON"
        statusLabel.TextColor3 = Color3.fromRGB(75, 255, 75)
    else
        toggleBtn.Text = "Enable"
        toggleBtn.BackgroundColor3 = Color3.fromRGB(255, 75, 75)
        statusLabel.Text = "Status: OFF"
        statusLabel.TextColor3 = Color3.fromRGB(255, 80, 80)
    end
end)

local function getRandomFarPosition(root)
    local angle = math.random() * 2 * math.pi
    local dist = teleportDistance + math.random(0, 2000)
    local x = root.Position.X + math.cos(angle) * dist
    local z = root.Position.Z + math.sin(angle) * dist
    local y = math.random(50, 200)
    return Vector3.new(x, y, z)
end

local function trollTeleport(targetPlayer, myRoot)
    local targetChar = targetPlayer.Character
    if not targetChar then return end
    local targetRoot = targetChar:FindFirstChild("HumanoidRootPart")
    if not targetRoot then return end
    targetRoot.CFrame = CFrame.new(getRandomFarPosition(myRoot))
    print("Trolled " .. targetPlayer.Name)
end

RunService.Heartbeat:Connect(function()
    if not enabled then return end
    local character = player.Character
    if not character then return end
    local rootPart = character:FindFirstChild("HumanoidRootPart")
    if not rootPart then return end

    for _, otherPlayer in ipairs(Players:GetPlayers()) do
        if otherPlayer == player then continue end
        local otherChar = otherPlayer.Character
        if not otherChar then continue end
        local otherRoot = otherChar:FindFirstChild("HumanoidRootPart")
        if not otherRoot then continue end

        local distance = (rootPart.Position - otherRoot.Position).Magnitude
        if distance <= hugRange then
            local now = tick()
            if not cooldowns[otherPlayer.Name] or now - cooldowns[otherPlayer.Name] > cooldownTime then
                cooldowns[otherPlayer.Name] = now
                trollTeleport(otherPlayer, rootPart)
            end
        end
    end
end)

print("Hug Troll GUI loaded!")

Features & Information

it has a gui with enable and cd

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts