Big TP Script
Key RequiredUniversal

Big TP Script

Universal Scriptelersen21elersen21 130 views 1K executesUpdated Aug 9, 2026
Unrated
00
Lua Script•346 lines (10209 chars)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer
--YOU CAN CHANGE YOUR TP LOCATİON OR CAMERA LOCATİON İN THERE
local TELEPORT_OFFSET_DOWN = 4.5
local CAMERA_OFFSET_BEHIND = 5
local CAMERA_OFFSET_UP = 2
local isActive = false
local currentTarget = nil
local noClipEnabled = false
local cameraLocked = false

local function lockCamera()
	if not currentTarget or not currentTarget.Character then return end
	local targetChar = currentTarget.Character
	local targetHrp = targetChar:FindFirstChild("HumanoidRootPart")
	if not targetHrp then return end
	cameraLocked = true
	game.Workspace.CurrentCamera.CameraType = Enum.CameraType.Scriptable
	local targetCFrame = targetHrp.CFrame
	local cameraPosition = targetCFrame.Position + (targetCFrame.LookVector * -CAMERA_OFFSET_BEHIND) + Vector3.new(0, CAMERA_OFFSET_UP, 0)
	game.Workspace.CurrentCamera.CFrame = CFrame.new(cameraPosition, targetCFrame.Position)
end

local function unlockCamera()
	cameraLocked = false
	game.Workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
	local char = player.Character
	if char then
		game.Workspace.CurrentCamera.CameraSubject = char:FindFirstChild("Humanoid")
	end
end

local function setNoClip(enabled)
	local char = player.Character
	if not char then return end
	local hum = char:FindFirstChild("Humanoid")
	if hum then
		hum.PlatformStand = enabled
		hum.AutoRotate = not enabled
	end
	for _, part in ipairs(char:GetDescendants()) do
		if part:IsA("BasePart") then
			part.CanCollide = not enabled
		end
	end
	noClipEnabled = enabled
end

local function teleportToTarget()
	if not currentTarget then return end
	local char = player.Character
	if not char then return end
	local hrp = char:FindFirstChild("HumanoidRootPart")
	if not hrp then return end
	local targetChar = currentTarget.Character
	if not targetChar then return end
	local targetHrp = targetChar:FindFirstChild("HumanoidRootPart")
	if not targetHrp then return end

	setNoClip(true)

	local targetPos = targetHrp.Position
	local newPos = targetPos + Vector3.new(0, -TELEPORT_OFFSET_DOWN, 0)
	hrp.CFrame = CFrame.new(newPos, targetPos)
	hrp.AssemblyLinearVelocity = Vector3.zero
	hrp.AssemblyAngularVelocity = Vector3.zero

	if cameraLocked then
		lockCamera()
	end
end

local function resetCharacter()
	local char = player.Character
	if not char then return end
	local hum = char:FindFirstChild("Humanoid")
	if hum then
		hum.Health = 0
	end
end

local function healCharacter()
	local char = player.Character
	if not char then return end
	local hum = char:FindFirstChild("Humanoid")
	if hum then
		hum.MaxHealth = hum.MaxHealth + 1
		hum.Health = hum.MaxHealth
	end
end

local function regenCharacter()
	local char = player.Character
	if not char then return end
	local hum = char:FindFirstChild("Humanoid")
	if hum then
		if hum.Health < hum.MaxHealth then
			hum.Health = math.min(hum.Health + 1, hum.MaxHealth)
		end
	end
end

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

local toggleBtn = Instance.new("ImageButton")
toggleBtn.Size = UDim2.new(0, 45, 0, 45)
toggleBtn.Position = UDim2.new(1, -55, 0, 10)
toggleBtn.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
toggleBtn.BorderSizePixel = 0
toggleBtn.Image = "rbxassetid://6031090279"
toggleBtn.Parent = screenGui

local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 350, 0, 550)
mainFrame.Position = UDim2.new(0.5, -175, 0.5, -275)
mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
mainFrame.BorderSizePixel = 0
mainFrame.Visible = false
mainFrame.Active = true
mainFrame.Draggable = true
mainFrame.Parent = screenGui

local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 30)
title.BackgroundTransparency = 1
title.Text = "TELEPORT PANEL"
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.TextScaled = true
title.Parent = mainFrame

local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.new(0, 30, 0, 30)
closeBtn.Position = UDim2.new(1, -35, 0, 5)
closeBtn.BackgroundColor3 = Color3.fromRGB(200, 0, 0)
closeBtn.Text = "X"
closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
closeBtn.BorderSizePixel = 0
closeBtn.Parent = mainFrame
closeBtn.MouseButton1Click:Connect(function()
	mainFrame.Visible = false
end)

local teleportBtn = Instance.new("TextButton")
teleportBtn.Size = UDim2.new(0.9, 0, 0, 35)
teleportBtn.Position = UDim2.new(0.05, 0, 0.06, 0)
teleportBtn.BackgroundColor3 = Color3.fromRGB(50, 150, 255)
teleportBtn.Text = "TELEPORT"
teleportBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
teleportBtn.BorderSizePixel = 0
teleportBtn.Parent = mainFrame

local playerListFrame = Instance.new("ScrollingFrame")
playerListFrame.Size = UDim2.new(0.9, 0, 0.55, 0)
playerListFrame.Position = UDim2.new(0.05, 0, 0.14, 0)
playerListFrame.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
playerListFrame.BorderSizePixel = 0
playerListFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
playerListFrame.ScrollBarThickness = 6
playerListFrame.Parent = mainFrame

local playerListLayout = Instance.new("UIListLayout")
playerListLayout.SortOrder = Enum.SortOrder.Name
playerListLayout.Padding = UDim.new(0, 3)
playerListLayout.Parent = playerListFrame

local abilitiesFrame = Instance.new("Frame")
abilitiesFrame.Size = UDim2.new(0.9, 0, 0.2, 0)
abilitiesFrame.Position = UDim2.new(0.05, 0, 0.72, 0)
abilitiesFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
abilitiesFrame.BorderSizePixel = 0
abilitiesFrame.Parent = mainFrame
--POWER BUTTONAS ARE NOT USEFUL RİGHT NOW ONLY RESET BUTTON İS WORKİNG
local abilitiesTitle = Instance.new("TextLabel")
abilitiesTitle.Size = UDim2.new(1, 0, 0, 20)
abilitiesTitle.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
abilitiesTitle.Text = "ODD BUTTONS"
abilitiesTitle.TextColor3 = Color3.fromRGB(255, 200, 50)
abilitiesTitle.TextScaled = true
abilitiesTitle.Parent = abilitiesFrame

local healBtn = Instance.new("TextButton")
healBtn.Size = UDim2.new(0.3, 0, 0.6, 0)
healBtn.Position = UDim2.new(0.03, 0, 0.3, 0)
healBtn.BackgroundColor3 = Color3.fromRGB(50, 200, 50)
healBtn.Text = "HEAL"
healBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
healBtn.TextScaled = true
healBtn.BorderSizePixel = 0
healBtn.Parent = abilitiesFrame

healBtn.MouseButton1Click:Connect(function()
	healCharacter()
end)

local resetBtn = Instance.new("TextButton")
resetBtn.Size = UDim2.new(0.3, 0, 0.6, 0)
resetBtn.Position = UDim2.new(0.35, 0, 0.3, 0)
resetBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
resetBtn.Text = "RESET"
resetBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
resetBtn.TextScaled = true
resetBtn.BorderSizePixel = 0
resetBtn.Parent = abilitiesFrame

resetBtn.MouseButton1Click:Connect(function()
	resetCharacter()
end)

local regenBtn = Instance.new("TextButton")
regenBtn.Size = UDim2.new(0.3, 0, 0.6, 0)
regenBtn.Position = UDim2.new(0.67, 0, 0.3, 0)
regenBtn.BackgroundColor3 = Color3.fromRGB(200, 150, 50)
regenBtn.Text = "💫 +1 REGEN"
regenBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
regenBtn.TextScaled = true
regenBtn.BorderSizePixel = 0
regenBtn.Parent = abilitiesFrame

regenBtn.MouseButton1Click:Connect(function()
	regenCharacter()
end)

local function updatePlayerList()
	for _, child in ipairs(playerListFrame:GetChildren()) do
		if child:IsA("TextButton") then
			child:Destroy()
		end
	end

	local players = Players:GetPlayers()
	for _, plr in ipairs(players) do
		local btn = Instance.new("TextButton")
		btn.Size = UDim2.new(1, -10, 0, 25)
		btn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
		btn.TextColor3 = Color3.fromRGB(255, 255, 255)
		btn.BorderSizePixel = 0
		btn.Text = plr.Name .. (plr == player and " (SEN)" or "")
		btn.Parent = playerListFrame

		btn.MouseButton1Click:Connect(function()
			if plr == player then
				return
			end
			currentTarget = plr
			for _, b in ipairs(playerListFrame:GetChildren()) do
				if b:IsA("TextButton") then
					b.BackgroundColor3 = (b == btn) and Color3.fromRGB(100, 200, 100) or Color3.fromRGB(60, 60, 60)
				end
			end
		end)
	end

	task.wait(0.1)
	playerListFrame.CanvasSize = UDim2.new(0, 0, 0, playerListLayout.AbsoluteContentSize.Y + 10)
end

local teleportConnection = nil

teleportBtn.MouseButton1Click:Connect(function()
	isActive = not isActive
	if isActive then
		if not currentTarget then
			isActive = false
			return
		end
		teleportBtn.BackgroundColor3 = Color3.fromRGB(255, 50, 50)
		teleportBtn.Text = "STOP"

		setNoClip(true)
		lockCamera()

		if teleportConnection then teleportConnection:Disconnect() end
		teleportConnection = RunService.RenderStepped:Connect(function()
			if isActive and currentTarget then
				teleportToTarget()
			end
		end)
	else
		teleportBtn.BackgroundColor3 = Color3.fromRGB(50, 150, 255)
		teleportBtn.Text = "TELEPORT"
		if teleportConnection then
			teleportConnection:Disconnect()
			teleportConnection = nil
		end

		local char = player.Character
		local targetChar = currentTarget and currentTarget.Character
		if char and targetChar then
			local targetHrp = targetChar:FindFirstChild("HumanoidRootPart")
			local hrp = char:FindFirstChild("HumanoidRootPart")
			if targetHrp and hrp then
				local safePos = targetHrp.Position + Vector3.new(0, 5, 0)
				hrp.CFrame = CFrame.new(safePos)
				hrp.AssemblyLinearVelocity = Vector3.zero
				hrp.AssemblyAngularVelocity = Vector3.zero
			end
		end

		setNoClip(false)
		unlockCamera()
	end
end)

toggleBtn.MouseButton1Click:Connect(function()
	mainFrame.Visible = not mainFrame.Visible
	if mainFrame.Visible then
		updatePlayerList()
	end
end)

Players.PlayerRemoving:Connect(function(plr)
	if plr == currentTarget then
		isActive = false
		currentTarget = nil

		teleportBtn.BackgroundColor3 = Color3.fromRGB(50, 150, 255)
		teleportBtn.Text = " TELEPORT"

		if teleportConnection then
			teleportConnection:Disconnect()
			teleportConnection = nil
		end

		setNoClip(false)
		unlockCamera()
	end
end)

player.CharacterAdded:Connect(function()
	setNoClip(false)
	unlockCamera()
	if isActive then
		setNoClip(true)
		lockCamera()
	end
end)

RunService.Heartbeat:Connect(function()
	if not isActive and cameraLocked then
		unlockCamera()
	end
end)

Features & Information

that script lets you tp someones under but you cant free watch your self while tping because camera can sometimes get buggy so camera will be lock while you tping I shared it as open source so that you can easily change the location of the camera or the character (sorry if ı write somethink wrong my english not that good) ( if you cant find the panel its on right corner the black square) if you find bug you can comment it hello tofu and canavar apla

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts