
KeylessUniversal

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local localPlayer = Players.LocalPlayer
local character = localPlayer.Character or localPlayer.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
-- Config
local TELEPORT_DISTANCE = 4
local TELEPORT_INTERVAL = 0.5
-- Variables
local SELECTED_PLAYERS = {}
local teleportMode = "Selected" -- "Selected", "Others", "NonFriends"
local teleportLoop
local originalCollisionStates = {}
-- Collision handling
local function setPlayerCollision(player, enable)
if not player.Character then return end
if not originalCollisionStates[player] then
originalCollisionStates[player] = {}
for _, part in ipairs(player.Character:GetDescendants()) do
if part:IsA("BasePart") then
originalCollisionStates[player][part] = part.CanCollide
end
end
end
for _, part in ipairs(player.Character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = enable and (originalCollisionStates[player][part] or false)
end
end
end
-- Target selection
local function getPlayersToTeleport()
local targets = {}
if teleportMode == "Selected" then
for _, name in ipairs(SELECTED_PLAYERS) do
local p = Players:FindFirstChild(name)
if p then table.insert(targets, p) end
end
elseif teleportMode == "Others" then
for _, p in ipairs(Players:GetPlayers()) do
if p ~= localPlayer then
table.insert(targets, p)
end
end
elseif teleportMode == "NonFriends" then
for _, p in ipairs(Players:GetPlayers()) do
if p ~= localPlayer and not localPlayer:IsFriendsWith(p.UserId) then
table.insert(targets, p)
end
end
end
return targets
end
-- Teleport function
local function teleportPlayers()
local myPosition = humanoidRootPart.Position
local myLookVector = humanoidRootPart.CFrame.LookVector
local teleportPosition = myPosition + (myLookVector * TELEPORT_DISTANCE)
teleportPosition = Vector3.new(teleportPosition.X, myPosition.Y, teleportPosition.Z)
for _, player in ipairs(getPlayersToTeleport()) do
if player.Character then
local targetHRP = player.Character:FindFirstChild("HumanoidRootPart")
if targetHRP then
setPlayerCollision(player, false)
targetHRP.CFrame = CFrame.new(teleportPosition, teleportPosition + myLookVector)
local effect = Instance.new("Part")
effect.Size = Vector3.new(1, 1, 1)
effect.Position = teleportPosition
effect.Anchored = true
effect.CanCollide = false
effect.Transparency = 0.5
effect.BrickColor = BrickColor.new("Bright blue")
effect.Parent = workspace
game:GetService("Debris"):AddItem(effect, 0.5)
end
end
end
end
-- Start/Stop Loop
local function startLoop()
if teleportLoop then teleportLoop:Disconnect() end
teleportLoop = RunService.Heartbeat:Connect(function()
if tick() % TELEPORT_INTERVAL < 0.1 then
teleportPlayers()
end
end)
end
local function stopLoop()
if teleportLoop then
teleportLoop:Disconnect()
teleportLoop = nil
end
end
-- Small Draggable Stop Button
local function createStopButton()
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "TeleportStopUI"
screenGui.Parent = localPlayer:WaitForChild("PlayerGui")
screenGui.ResetOnSpawn = false
local stopBtn = Instance.new("TextButton")
stopBtn.Size = UDim2.new(0.1, 0, 0.05, 0)
stopBtn.Position = UDim2.new(0.85, 0, 0.05, 0)
stopBtn.Text = "Stop"
stopBtn.Font = Enum.Font.SourceSansBold
stopBtn.TextScaled = true
stopBtn.BackgroundColor3 = Color3.fromRGB(170, 0, 0)
stopBtn.TextColor3 = Color3.new(1, 1, 1)
stopBtn.Parent = screenGui
Instance.new("UICorner", stopBtn).CornerRadius = UDim.new(0.2, 0)
-- Dragging logic
local dragging, dragInput, dragStart, startPos
local function update(input)
local delta = input.Position - dragStart
stopBtn.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
stopBtn.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = stopBtn.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
stopBtn.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
update(input)
end
end)
stopBtn.MouseButton1Click:Connect(function()
stopLoop()
screenGui:Destroy()
end)
end
-- Main UI
local function createSetupUI()
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "TeleportControlUI"
screenGui.Parent = localPlayer:WaitForChild("PlayerGui")
screenGui.ResetOnSpawn = false
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0.45, 0, 0.55, 0)
frame.Position = UDim2.new(0.275, 0, 0.225, 0)
frame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
frame.Parent = screenGui
Instance.new("UICorner", frame).CornerRadius = UDim.new(0.05, 0)
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0.12, 0)
title.BackgroundTransparency = 1
title.Text = "Teleport Control"
title.Font = Enum.Font.SourceSansBold
title.TextScaled = true
title.TextColor3 = Color3.new(1, 1, 1)
title.Parent = frame
-- Mode buttons
local modes = {"Selected", "Others", "NonFriends"}
for i, mode in ipairs(modes) do
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(0.8, 0, 0.1, 0)
btn.Position = UDim2.new(0.1, 0, 0.15 + (i - 1) * 0.12, 0)
btn.Text = "Mode: " .. mode
btn.Font = Enum.Font.SourceSansBold
btn.TextScaled = true
btn.BackgroundColor3 = Color3.fromRGB(70, 70, 70)
btn.TextColor3 = Color3.new(1, 1, 1)
btn.Parent = frame
Instance.new("UICorner", btn).CornerRadius = UDim.new(0.05, 0)
btn.MouseButton1Click:Connect(function()
teleportMode = mode
end)
end
-- Selected mode inputs
local numPlayersBox = Instance.new("TextBox")
numPlayersBox.Size = UDim2.new(0.8, 0, 0.1, 0)
numPlayersBox.Position = UDim2.new(0.1, 0, 0.55, 0)
numPlayersBox.PlaceholderText = "Number of players (Selected mode)"
numPlayersBox.Text = ""
numPlayersBox.TextScaled = true
numPlayersBox.Parent = frame
local usernameBoxes = {}
local function createUsernameInputs(count)
for _, box in ipairs(usernameBoxes) do box:Destroy() end
usernameBoxes = {}
for i = 1, count do
local box = Instance.new("TextBox")
box.Size = UDim2.new(0.8, 0, 0.08, 0)
box.Position = UDim2.new(0.1, 0, 0.66 + (i - 1) * 0.09, 0)
box.PlaceholderText = "Username " .. i
box.TextScaled = true
box.Parent = frame
table.insert(usernameBoxes, box)
end
end
numPlayersBox.FocusLost:Connect(function()
local num = tonumber(numPlayersBox.Text)
if num and num > 0 then
createUsernameInputs(num)
end
end)
-- Start Button
local startBtn = Instance.new("TextButton")
startBtn.Size = UDim2.new(0.8, 0, 0.1, 0)
startBtn.Position = UDim2.new(0.1, 0, 0.9, 0)
startBtn.Text = "Start Teleporting"
startBtn.Font = Enum.Font.SourceSansBold
startBtn.TextScaled = true
startBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
startBtn.TextColor3 = Color3.new(1, 1, 1)
startBtn.Parent = frame
Instance.new("UICorner", startBtn).CornerRadius = UDim.new(0.05, 0)
startBtn.MouseButton1Click:Connect(function()
if teleportMode == "Selected" then
SELECTED_PLAYERS = {}
for _, box in ipairs(usernameBoxes) do
if box.Text ~= "" then
table.insert(SELECTED_PLAYERS, box.Text)
end
end
end
screenGui:Destroy()
createStopButton()
startLoop()
end)
end
-- Clean up
Players.PlayerRemoving:Connect(function(player)
originalCollisionStates[player] = nil
end)
-- Launch UI
createSetupUI()No comments yet for this script.

![[KEYLESS] Moondiety Script | 17+ supported Games](https://scriptblox.com/images/sb/0-1753093706828.png)

