local UIS = game:GetService("UserInputService") local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local Debris = game:GetService("Debris") local player = Players.LocalPlayer local mouse = player:GetMouse() local teleportEnabled = false local MAX_HEIGHT = 300 local MIN_HEIGHT = -20 -------------------------------------------------- -- UI -------------------------------------------------- local gui = Instance.new("ScreenGui") gui.Name = "TeleportUI" gui.ResetOnSpawn = false gui.Parent = player:WaitForChild("PlayerGui") local frame = Instance.new("Frame") frame.Size = UDim2.new(0,300,0,120) frame.Position = UDim2.new(0.5,-150,0.1,0) frame.BackgroundColor3 = Color3.fromRGB(20,20,25) frame.BackgroundTransparency = 0.15 frame.BorderSizePixel = 0 frame.Parent = gui Instance.new("UICorner",frame).CornerRadius = UDim.new(0,14) local stroke = Instance.new("UIStroke") stroke.Color = Color3.fromRGB(90,90,120) stroke.Thickness = 2 stroke.Parent = frame local title = Instance.new("TextLabel") title.Size = UDim2.new(1,0,0,40) title.BackgroundTransparency = 1 title.Text = "Teleport System" title.Font = Enum.Font.GothamBold title.TextSize = 22 title.TextColor3 = Color3.new(1,1,1) title.Parent = frame local toggle = Instance.new("TextButton") toggle.Size = UDim2.new(0.8,0,0,40) toggle.Position = UDim2.new(0.1,0,0.5,-10) toggle.BackgroundColor3 = Color3.fromRGB(60,60,70) toggle.Text = "Enable Teleport" toggle.Font = Enum.Font.GothamBold toggle.TextColor3 = Color3.new(1,1,1) toggle.TextSize = 18 toggle.Parent = frame Instance.new("UICorner",toggle).CornerRadius = UDim.new(0,10) local indicator = Instance.new("Frame") indicator.Size = UDim2.new(0,14,0,14) indicator.Position = UDim2.new(1,-24,0,13) indicator.BackgroundColor3 = Color3.fromRGB(255,80,80) indicator.Parent = frame Instance.new("UICorner",indicator).CornerRadius = UDim.new(1,0) -------------------------------------------------- -- MOBILE BUTTON -------------------------------------------------- local mobileButton = Instance.new("TextButton") mobileButton.Size = UDim2.new(0,120,0,50) mobileButton.Position = UDim2.new(1,-140,1,-70) mobileButton.BackgroundColor3 = Color3.fromRGB(40,40,50) mobileButton.Text = "Teleport" mobileButton.TextColor3 = Color3.new(1,1,1) mobileButton.TextScaled = true mobileButton.Font = Enum.Font.GothamBold mobileButton.Parent = gui Instance.new("UICorner",mobileButton).CornerRadius = UDim.new(0,12) -------------------------------------------------- -- DRAGGABLE UI -------------------------------------------------- local dragging = false local dragStart local startPos frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = frame.Position end end) frame.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) UIS.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then 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 end) -------------------------------------------------- -- UI UPDATE -------------------------------------------------- local function updateUI() if teleportEnabled then toggle.Text = "Disable Teleport" TweenService:Create(toggle,TweenInfo.new(.25),{ BackgroundColor3 = Color3.fromRGB(70,170,120) }):Play() indicator.BackgroundColor3 = Color3.fromRGB(70,255,120) else toggle.Text = "Enable Teleport" TweenService:Create(toggle,TweenInfo.new(.25),{ BackgroundColor3 = Color3.fromRGB(60,60,70) }):Play() indicator.BackgroundColor3 = Color3.fromRGB(255,80,80) end end -------------------------------------------------- -- TELEPORT EFFECT -------------------------------------------------- local function teleportEffect(position) local anchor = Instance.new("Part") anchor.Anchored = true anchor.CanCollide = false anchor.Transparency = 1 anchor.Size = Vector3.new(1,1,1) anchor.Position = position anchor.Parent = workspace local sound = Instance.new("Sound") sound.SoundId = "rbxassetid://5066021887" sound.Volume = 1 sound.Parent = anchor sound:Play() local ripple = Instance.new("Part") ripple.Anchored = true ripple.CanCollide = false ripple.Shape = Enum.PartType.Cylinder ripple.Material = Enum.Material.Neon ripple.Color = Color3.fromRGB(0,170,255) ripple.Transparency = 0.3 ripple.Size = Vector3.new(1,0.2,1) ripple.CFrame = CFrame.new(position) * CFrame.Angles(math.rad(90),0,0) ripple.Parent = workspace TweenService:Create( ripple, TweenInfo.new(.6), {Size = Vector3.new(20,0.2,20),Transparency = 1} ):Play() Debris:AddItem(ripple,1) Debris:AddItem(anchor,1) end -------------------------------------------------- -- SAFE TELEPORT -------------------------------------------------- local function getSafePosition(hitPosition) if hitPosition.Y > MAX_HEIGHT then return nil end if hitPosition.Y < MIN_HEIGHT then return nil end local rayOrigin = hitPosition + Vector3.new(0,50,0) local rayDirection = Vector3.new(0,-200,0) local params = RaycastParams.new() params.FilterDescendantsInstances = {player.Character} params.FilterType = Enum.RaycastFilterType.Blacklist local result = workspace:Raycast(rayOrigin,rayDirection,params) if result then return result.Position end return nil end -------------------------------------------------- -- TOGGLE INPUTS -------------------------------------------------- toggle.MouseButton1Click:Connect(function() teleportEnabled = not teleportEnabled updateUI() end) mobileButton.MouseButton1Click:Connect(function() teleportEnabled = not teleportEnabled updateUI() end) UIS.InputBegan:Connect(function(input,gp) if gp then return end if input.KeyCode == Enum.KeyCode.P then teleportEnabled = not teleportEnabled updateUI() end end) -------------------------------------------------- -- CLICK / TAP TELEPORT -------------------------------------------------- mouse.Button1Down:Connect(function() if not teleportEnabled 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 hit = mouse.Hit.Position local safePos = getSafePosition(hit) if safePos then teleportEffect(hrp.Position) hrp.CFrame = CFrame.new(safePos + Vector3.new(0,3,0)) teleportEffect(safePos) end end)