blahgui but with less buttons
Key RequiredUniversal

blahgui but with less buttons

Universal Scriptblah20180blah20180 1.1K views 328 executesUpdated Oct 12, 2025
Unrated
00
Lua Script•342 lines (12892 chars)
-- ClientTeleportAndCosmetics.lua  (LocalScript)
-- Local-only GUI with: Teleport random, Teleport to player, Spam-teleport toggle, HeadSit (local),
-- Orbit cosmetic parts (local), Minimize + Close.
-- WARNING: All actions only move your own character locally. Do NOT attempt to use this to affect others.

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer

-- track character
local char = player.Character or player.CharacterAdded:Wait()
player.CharacterAdded:Connect(function(c) char = c end)

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

local frame = Instance.new("Frame")
frame.Name = "Main"
frame.Size = UDim2.new(0, 560, 0, 220) -- wide, not tall
frame.Position = UDim2.new(0, 30, 0, 60)
frame.BackgroundColor3 = Color3.fromRGB(40, 120, 40)
frame.BorderSizePixel = 0
frame.Active = true
frame.Draggable = true
frame.Parent = screenGui
local frameCorner = Instance.new("UICorner", frame)
frameCorner.CornerRadius = UDim.new(0, 10)

-- Top bar
local top = Instance.new("Frame", frame)
top.Size = UDim2.new(1, 0, 0, 36)
top.Position = UDim2.new(0,0,0,0)
top.BackgroundTransparency = 1

local title = Instance.new("TextLabel", top)
title.Size = UDim2.new(0.6, 0, 1, 0)
title.Position = UDim2.new(0,12,0,0)
title.BackgroundTransparency = 1
title.Text = "Teleport & Cosy"
title.Font = Enum.Font.GothamBold
title.TextSize = 20
title.TextColor3 = Color3.fromRGB(255,255,255)
title.TextXAlignment = Enum.TextXAlignment.Left

-- Credits small label
local credits = Instance.new("TextLabel", top)
credits.Size = UDim2.new(0.25, 0, 1, 0)
credits.Position = UDim2.new(0.65, 0, 0, 0)
credits.BackgroundTransparency = 1
credits.Font = Enum.Font.Gotham
credits.TextSize = 14
credits.TextColor3 = Color3.fromRGB(230,230,230)
credits.Text = "made by blah20180"
credits.TextXAlignment = Enum.TextXAlignment.Center

-- Minimize and Close
local minBtn = Instance.new("TextButton", top)
minBtn.Size = UDim2.new(0, 36, 0, 28)
minBtn.Position = UDim2.new(1, -90, 0, 4)
minBtn.Text = "_"
minBtn.Font = Enum.Font.GothamBold
minBtn.TextSize = 20
minBtn.BackgroundColor3 = Color3.fromRGB(100,100,100)
minBtn.TextColor3 = Color3.fromRGB(255,255,255)
minBtn.AutoButtonColor = true
local minCorner = Instance.new("UICorner", minBtn); minCorner.CornerRadius = UDim.new(0,6)

local closeBtn = Instance.new("TextButton", top)
closeBtn.Size = UDim2.new(0, 36, 0, 28)
closeBtn.Position = UDim2.new(1, -44, 0, 4)
closeBtn.Text = "X"
closeBtn.Font = Enum.Font.GothamBold
closeBtn.TextSize = 20
closeBtn.BackgroundColor3 = Color3.fromRGB(160,40,40)
closeBtn.TextColor3 = Color3.fromRGB(255,255,255)
local closeCorner = Instance.new("UICorner", closeBtn); closeCorner.CornerRadius = UDim.new(0,6)

closeBtn.MouseButton1Click:Connect(function()
	screenGui:Destroy()
end)

local content = Instance.new("Frame", frame)
content.Size = UDim2.new(1, -24, 1, -52)
content.Position = UDim2.new(0, 12, 0, 40)
content.BackgroundTransparency = 1

-- layout: we'll put controls in two columns
local leftX = 6
local rightX = 290
local row = 6
local function place(obj, col)
    if col == "right" then
        obj.Position = UDim2.new(0, rightX, 0, row)
    else
        obj.Position = UDim2.new(0, leftX, 0, row)
    end
    row = row + 46
end

local function makeButton(text)
    local b = Instance.new("TextButton")
    b.Size = UDim2.new(0, 260, 0, 40)
    b.BackgroundColor3 = Color3.fromRGB(30,130,30)
    b.Font = Enum.Font.Gotham
    b.TextColor3 = Color3.fromRGB(255,255,255)
    b.TextSize = 16
    b.Text = text
    local c = Instance.new("UICorner", b); c.CornerRadius = UDim.new(0,6)
    b.Parent = content
    return b
end

local function makeTextbox(placeholder)
    local t = Instance.new("TextBox")
    t.Size = UDim2.new(0, 260, 0, 36)
    t.BackgroundColor3 = Color3.fromRGB(24,120,24)
    t.Font = Enum.Font.Gotham
    t.TextSize = 16
    t.PlaceholderText = placeholder
    t.TextColor3 = Color3.fromRGB(255,255,255)
    local c = Instance.new("UICorner", t); c.CornerRadius = UDim.new(0,6)
    t.Parent = content
    return t
end

-- Buttons & boxes
local teleportRandomBtn = makeButton("Teleport to Random Player (local)")
place(teleportRandomBtn, "left")

local teleportToBtn = makeButton("Teleport to Player (single, local)")
place(teleportToBtn, "left")
local teleportText = makeTextbox("Target player username")
teleportText.Position = UDim2.new(0, leftX, 0, row); row = row + 46

local spamToggleBtn = makeButton("Toggle Spam-Teleport to Player")
place(spamToggleBtn, "left")

local headsitBtn = makeButton("HeadSit (local)")
place(headsitBtn, "right")
local headsitText = makeTextbox("Target player username for HeadSit")
headsitText.Position = UDim2.new(0, rightX, 0, row); row = row + 46

local orbitToggleBtn = makeButton("Toggle Orbit Visuals Around Me")
place(orbitToggleBtn, "right")
local orbitCountBox = makeTextbox("Orbit count (default 5)")
orbitCountBox.Position = UDim2.new(0, rightX, 0, row); row = row + 46

-- Small info label
local info = Instance.new("TextLabel", content)
info.Size = UDim2.new(1, -12, 0, 40)
info.Position = UDim2.new(0, 6, 0, row)
info.BackgroundTransparency = 1
info.Font = Enum.Font.Gotham
info.TextSize = 13
info.TextColor3 = Color3.fromRGB(230,230,230)
info.Text = "All effects are local to your client. Do not use to harass others."
row = row + 46

-- Minimize behavior
local minimized = false
minBtn.MouseButton1Click:Connect(function()
    minimized = not minimized
    for _, child in ipairs(content:GetChildren()) do
        child.Visible = not minimized
    end
    frame.Size = minimized and UDim2.new(0, 560, 0, 40) or UDim2.new(0, 560, 0, 220)
end)

-- ---------- Functionality ----------
local function findPlayerByName(name)
    if not name or name == "" then return nil end
    -- try exact match first
    local p = Players:FindFirstChild(name)
    if p then return p end
    -- try case-insensitive match
    local lname = name:lower()
    for _, pl in ipairs(Players:GetPlayers()) do
        if pl.Name:lower():find(lname, 1, true) or (pl.DisplayName and pl.DisplayName:lower():find(lname,1,true)) then
            return pl
        end
    end
    return nil
end

-- Teleport local player to another player's HRP (local only)
local function teleportLocalToPlayer(targetPlayer)
    if not targetPlayer or not targetPlayer.Character then return false end
    local targetHRP = targetPlayer.Character:FindFirstChild("HumanoidRootPart")
    if not targetHRP then return false end
    -- Ensure our character exists and has HRP
    char = player.Character
    if not char then return false end
    local myHRP = char:FindFirstChild("HumanoidRootPart")
    if not myHRP then return false end
    -- Move local player slightly above the target
    myHRP.CFrame = targetHRP.CFrame * CFrame.new(0, 3, 0)
    return true
end

-- Teleport random player
teleportRandomBtn.MouseButton1Click:Connect(function()
    local list = Players:GetPlayers()
    if #list <= 1 then return end
    -- choose random other player
    local choices = {}
    for _, p in ipairs(list) do
        if p ~= player then table.insert(choices, p) end
    end
    if #choices == 0 then return end
    local target = choices[math.random(1, #choices)]
    local ok = teleportLocalToPlayer(target)
    if not ok then
        -- optional local feedback
        warn("Teleport failed.")
    end
end)

-- Teleport to player single
teleportToBtn.MouseButton1Click:Connect(function()
    local target = findPlayerByName(teleportText.Text)
    if not target then warn("Player not found: "..tostring(teleportText.Text)) return end
    teleportLocalToPlayer(target)
end)

-- Spam teleport toggle (teleport YOUR local character repeatedly to target)
local spamTeleporting = false
spamToggleBtn.MouseButton1Click:Connect(function()
    spamTeleporting = not spamTeleporting
    spamToggleBtn.Text = spamTeleporting and "Stop Spam-Teleport" or "Toggle Spam-Teleport to Player"
end)

-- HeadSit: continuously position your HRP on target's head (local-only)
local headSitting = false
local headTarget = nil
headsitBtn.MouseButton1Click:Connect(function()
    local target = findPlayerByName(headsitText.Text)
    if not target then warn("Target for HeadSit not found.") return end
    if not target.Character or not target.Character:FindFirstChild("Head") then warn("Target has no head.") return end
    headSitting = not headSitting
    headTarget = headSitting and target or nil
    headsitBtn.Text = headSitting and "Stop HeadSit" or "HeadSit (local)"
end)

-- Orbit visuals: create client-side decorative parts that orbit your HRP
local orbiting = false
local orbitParts = {}
orbitToggleBtn.MouseButton1Click:Connect(function()
    orbiting = not orbiting
    orbitToggleBtn.Text = orbiting and "Stop Orbit Visuals" or "Toggle Orbit Visuals Around Me"
    if orbiting then
        local count = math.clamp(tonumber(orbitCountBox.Text) or 5, 1, 20)
        -- create orbit parts (these are regular Parts parented to workspace; they may replicate in some environments)
        for i = 1, count do
            local p = Instance.new("Part")
            p.Size = Vector3.new(0.8,0.8,0.8)
            p.Anchored = true
            p.CanCollide = false
            p.BrickColor = BrickColor.Random()
            p.Material = Enum.Material.Neon
            p.Name = "LocalOrbitPart_"..i
            p.Parent = workspace
            table.insert(orbitParts, p)
        end
    else
        for _, p in ipairs(orbitParts) do
            if p and p.Parent then p:Destroy() end
        end
        orbitParts = {}
    end
end)

-- Main render loop for spam teleport, headsit, and orbit
local t = 0
RunService.RenderStepped:Connect(function(dt)
    -- spam teleport behavior
    if spamTeleporting then
        local target = findPlayerByName(teleportText.Text)
        if target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") and char and char:FindFirstChild("HumanoidRootPart") then
            -- teleport frequently but with a small delay between teleports (we are inside RenderStepped so do every frame;
            -- to avoid extreme update rates, teleport only every ~0.08s using accumulator)
            -- We'll implement via simple time accumulator:
            if not script:FindFirstChild("__spamTimer") then
                local marker = Instance.new("NumberValue"); marker.Name = "__spamTimer"; marker.Parent = script
                marker.Value = 0
            end
            local marker = script:FindFirstChild("__spamTimer")
            marker.Value = marker.Value + dt
            if marker.Value >= 0.08 then
                marker.Value = 0
                local tgtHRP = target.Character.HumanoidRootPart
                char.HumanoidRootPart.CFrame = tgtHRP.CFrame * CFrame.new(0, 3, 0)
            end
        end
    end

    -- HeadSit local positioning
    if headSitting and headTarget and headTarget.Character and headTarget.Character:FindFirstChild("Head") and char and char:FindFirstChild("HumanoidRootPart") then
        local head = headTarget.Character.Head
        -- place our HRP slightly above the head (visual sitting)
        local sitCFrame = head.CFrame * CFrame.new(0, 0.6, 0) * CFrame.Angles(0, math.rad(180), 0)
        char.HumanoidRootPart.CFrame = sitCFrame
        -- Optionally set Humanoid.PlatformStand = true for better visual stability (local-only)
        local humanoid = char:FindFirstChildOfClass("Humanoid")
        if humanoid then
            humanoid.PlatformStand = true
        end
    else
        -- restore PlatformStand when not head-sitting
        local humanoid = char:FindFirstChildOfClass("Humanoid")
        if humanoid and humanoid.PlatformStand then
            humanoid.PlatformStand = false
        end
    end

    -- Orbit visuals update
    if orbiting and #orbitParts > 0 and char and char:FindFirstChild("HumanoidRootPart") then
        t = t + dt * 1.5
        local center = char.HumanoidRootPart.Position
        local n = #orbitParts
        local radius = 4
        for i, p in ipairs(orbitParts) do
            local angle = t + (i-1)*(2*math.pi/n)
            local offset = Vector3.new(math.cos(angle)*radius, 1.6, math.sin(angle)*radius)
            p.Position = center + offset
            p.CFrame = CFrame.new(p.Position) * CFrame.Angles(0, angle, 0)
        end
    end
end)

-- Clean up created objects when player leaves or script is removed
player.AncestryChanged:Connect(function(_, parent)
    if not parent then
        for _, p in ipairs(orbitParts) do if p and p.Parent then p:Destroy() end end
        orbitParts = {}
    end
end)

-- Final note printed for clarity
print("Local teleport & cosmetics GUI loaded (client-only). Use responsibly.")

Features & Information

orbit teleport headsit teleport teleport to ramdom player have fun

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts