-- Made by 2slipperyydev aka sharkiesgamer

-- // Setup
local player = game.Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")

-- Create ScreenGui
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "TeleportGui"
screenGui.Parent = playerGui
screenGui.ResetOnSpawn = false

-- Main Frame
local Frame = Instance.new("Frame")
Frame.Name = "MainFrame"
Frame.Parent = screenGui
Frame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
Frame.BackgroundTransparency = 0.3
Frame.BorderSizePixel = 0
Frame.Position = UDim2.new(0.347, 0, 0.3, 0)
Frame.Size = UDim2.new(0, 300, 0, 300)

local UICorner = Instance.new("UICorner")
UICorner.Parent = Frame

-- Title Label
local Title = Instance.new("TextLabel")
Title.Parent = Frame
Title.BackgroundTransparency = 1
Title.Position = UDim2.new(0.166, 0, 0, 0)
Title.Size = UDim2.new(0, 200, 0, 30)
Title.Font = Enum.Font.FredokaOne
Title.Text = "Select or Type a Player Name:"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.TextSize = 15
Title.TextWrapped = true

-- Text Box
local TextBox = Instance.new("TextBox")
TextBox.Parent = Frame
TextBox.BackgroundColor3 = Color3.fromRGB(59, 59, 59)
TextBox.BorderSizePixel = 0
TextBox.Position = UDim2.new(0.1667, 0, 0.1, 0)
TextBox.Size = UDim2.new(0, 200, 0, 35)
TextBox.Font = Enum.Font.SourceSans
TextBox.PlaceholderText = "Enter Player Name..."
TextBox.Text = ""
TextBox.TextColor3 = Color3.fromRGB(255, 255, 255)
TextBox.TextSize = 16

-- Player List Scrolling Frame
local ScrollFrame = Instance.new("ScrollingFrame")
ScrollFrame.Parent = Frame
ScrollFrame.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
ScrollFrame.BorderSizePixel = 0
ScrollFrame.Position = UDim2.new(0.1667, 0, 0.25, 0)
ScrollFrame.Size = UDim2.new(0, 200, 0, 120)
ScrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
ScrollFrame.ScrollBarThickness = 6
ScrollFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y

local UIListLayout = Instance.new("UIListLayout")
UIListLayout.Parent = ScrollFrame
UIListLayout.Padding = UDim.new(0, 5)
UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder

-- Teleport Button
local TeleportButton = Instance.new("TextButton")
TeleportButton.Parent = Frame
TeleportButton.BackgroundColor3 = Color3.fromRGB(0, 85, 0)
TeleportButton.BorderSizePixel = 0
TeleportButton.Position = UDim2.new(0.1667, 0, 0.72, 0)
TeleportButton.Size = UDim2.new(0, 200, 0, 40)
TeleportButton.Font = Enum.Font.FredokaOne
TeleportButton.Text = "Teleport"
TeleportButton.TextColor3 = Color3.fromRGB(0, 0, 0)
TeleportButton.TextSize = 20

-- Open/Close Button
local OpenClose = Instance.new("TextButton")
OpenClose.Name = "OpenClose"
OpenClose.Parent = screenGui
OpenClose.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
OpenClose.BackgroundTransparency = 0.85
OpenClose.BorderSizePixel = 0
OpenClose.Position = UDim2.new(0.1117, 0, 0.4597, 0)
OpenClose.Size = UDim2.new(0, 40, 0, 40)
OpenClose.Font = Enum.Font.FredokaOne
OpenClose.Text = "Open & Close"
OpenClose.TextColor3 = Color3.fromRGB(85, 170, 255)
OpenClose.TextSize = 10
OpenClose.TextWrapped = true

local UICorner2 = Instance.new("UICorner")
UICorner2.Parent = OpenClose

-- Credits Label
local CreditLabel = Instance.new("TextLabel")
CreditLabel.Parent = Frame
CreditLabel.BackgroundColor3 = Color3.fromRGB(0, 35, 106)
CreditLabel.BorderSizePixel = 0
CreditLabel.Position = UDim2.new(0.083, 0, 0.9, 0)
CreditLabel.Size = UDim2.new(0, 250, 0, 20)
CreditLabel.Font = Enum.Font.FredokaOne
CreditLabel.Text = "Made by 2slipperyydev aka sharkiesgamer"
CreditLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
CreditLabel.TextSize = 12

-- Function to refresh player list
local function refreshPlayerList()
	for _, child in ipairs(ScrollFrame:GetChildren()) do
		if child:IsA("TextButton") then
			child:Destroy()
		end
	end

	for _, p in ipairs(game.Players:GetPlayers()) do
		if p ~= player then
			local playerBtn = Instance.new("TextButton")
			playerBtn.Parent = ScrollFrame
			playerBtn.BackgroundColor3 = Color3.fromRGB(70, 70, 70)
			playerBtn.Size = UDim2.new(1, -5, 0, 25)
			playerBtn.Font = Enum.Font.FredokaOne
			playerBtn.Text = p.Name
			playerBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
			playerBtn.TextSize = 16
			playerBtn.MouseButton1Click:Connect(function()
				TextBox.Text = p.Name
			end)
		end
	end
end

game.Players.PlayerAdded:Connect(refreshPlayerList)
game.Players.PlayerRemoving:Connect(refreshPlayerList)
task.spawn(function()
	while true do
		task.wait(3)
		refreshPlayerList()
	end
end)
refreshPlayerList()

-- Teleport Logic
TeleportButton.MouseButton1Click:Connect(function()
	local targetName = TextBox.Text
	local targetPlayer = game.Players:FindFirstChild(targetName)
	if not targetPlayer then
		Title.Text = "⚠️ Player not found!"
		return
	end
	if not targetPlayer.Character or not targetPlayer.Character:FindFirstChild("HumanoidRootPart") then
		Title.Text = "⚠️ Target not loaded!"
		return
	end
	local char = player.Character or player.CharacterAdded:Wait()
	local humanoid = char:FindFirstChildOfClass("Humanoid")
	local hrp = char:FindFirstChild("HumanoidRootPart")
	if humanoid and hrp then
		humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
		task.wait(0.1)
		hrp.CFrame = targetPlayer.Character.HumanoidRootPart.CFrame
		Title.Text = "✅ Teleported to " .. targetName .. "!"
	else
		Title.Text = "⚠️ Teleport failed!"
	end
end)

-- Draggable Main Frame
do
	local UIS = game:GetService("UserInputService")
	local dragging, dragInput, dragStart, startPos

	local function update(input)
		local delta = input.Position - dragStart
		Frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X,
			startPos.Y.Scale, startPos.Y.Offset + delta.Y)
	end

	Frame.InputBegan:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
			dragging = true
			dragStart = input.Position
			startPos = Frame.Position
			input.Changed:Connect(function()
				if input.UserInputState == Enum.UserInputState.End then
					dragging = false
				end
			end)
		end
	end)

	Frame.InputChanged:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
			dragInput = input
		end
	end)

	UIS.InputChanged:Connect(function(input)
		if input == dragInput and dragging then
			update(input)
		end
	end)
end

-- Draggable Open/Close Button
do
	local UIS = game:GetService("UserInputService")
	local dragging, dragInput, dragStart, startPos

	local function update(input)
		local delta = input.Position - dragStart
		OpenClose.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X,
			startPos.Y.Scale, startPos.Y.Offset + delta.Y)
	end

	OpenClose.InputBegan:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
			dragging = true
			dragStart = input.Position
			startPos = OpenClose.Position
			input.Changed:Connect(function()
				if input.UserInputState == Enum.UserInputState.End then
					dragging = false
				end
			end)
		end
	end)

	OpenClose.InputChanged:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
			dragInput = input
		end
	end)

	UIS.InputChanged:Connect(function(input)
		if input == dragInput and dragging then
			update(input)
		end
	end)
end

-- Open/Close functionality
local isOpen = true
OpenClose.MouseButton1Click:Connect(function()
	isOpen = not isOpen
	Frame.Visible = isOpen
end)

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: