
KeylessUniversal

-- 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.")No comments yet for this script.



