--// Services local Players = game:GetService("Players") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer --// Create GUI local gui = Instance.new("ScreenGui") gui.Name = "PositionGui" gui.ResetOnSpawn = false gui.IgnoreGuiInset = true gui.Parent = player:WaitForChild("PlayerGui") --// Main Frame local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 280, 0, 190) frame.Position = UDim2.new(0.5, -140, 0.5, -95) frame.BackgroundColor3 = Color3.fromRGB(20, 20, 25) frame.BorderSizePixel = 0 frame.Parent = gui Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 16) -- Gradient Background local gradient = Instance.new("UIGradient", frame) gradient.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, Color3.fromRGB(25,25,35)), ColorSequenceKeypoint.new(1, Color3.fromRGB(10,10,15)) } gradient.Rotation = 90 -- Shadow effect local stroke = Instance.new("UIStroke", frame) stroke.Thickness = 1.5 stroke.Color = Color3.fromRGB(80, 80, 120) stroke.Transparency = 0.5 -- Padding local padding = Instance.new("UIPadding", frame) padding.PaddingTop = UDim.new(0, 10) padding.PaddingLeft = UDim.new(0, 10) padding.PaddingRight = UDim.new(0, 10) -- Smooth Drag (Mobile + PC) local dragging, dragInput, dragStart, startPos 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) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then local delta = input.Position - dragStart local goal = { Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) } TweenService:Create(frame, TweenInfo.new(0.08, Enum.EasingStyle.Sine), goal):Play() end end) --// Title local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 30) title.Text = "🚀 Phantom Teleport | Premium (Keyless) 💎" title.Font = Enum.Font.GothamBold title.TextSize = 14 title.TextColor3 = Color3.fromRGB(200, 200, 255) title.BackgroundTransparency = 1 title.Parent = frame -- Layout local layout = Instance.new("UIListLayout", frame) layout.Padding = UDim.new(0, 10) layout.SortOrder = Enum.SortOrder.LayoutOrder --// Button Creator (UPGRADED) local function createButton(text, color) local button = Instance.new("TextButton") button.Size = UDim2.new(1, 0, 0, 55) button.Text = text button.Font = Enum.Font.GothamBold button.TextSize = 16 button.TextColor3 = Color3.new(1,1,1) button.BackgroundColor3 = color button.AutoButtonColor = false button.Parent = frame Instance.new("UICorner", button).CornerRadius = UDim.new(0, 12) -- Gradient inside button local grad = Instance.new("UIGradient", button) grad.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, color:Lerp(Color3.new(1,1,1), 0.1)), ColorSequenceKeypoint.new(1, color:Lerp(Color3.new(0,0,0), 0.2)) } grad.Rotation = 90 -- Stroke glow local stroke = Instance.new("UIStroke", button) stroke.Thickness = 1 stroke.Transparency = 0.4 -- Hover + Click Animations button.MouseEnter:Connect(function() TweenService:Create(button, TweenInfo.new(0.15), { Size = UDim2.new(1, 0, 0, 60) }):Play() end) button.MouseLeave:Connect(function() TweenService:Create(button, TweenInfo.new(0.15), { Size = UDim2.new(1, 0, 0, 55) }):Play() end) button.MouseButton1Down:Connect(function() TweenService:Create(button, TweenInfo.new(0.08), { Size = UDim2.new(0.97, 0, 0, 50) }):Play() end) button.MouseButton1Up:Connect(function() TweenService:Create(button, TweenInfo.new(0.08), { Size = UDim2.new(1, 0, 0, 55) }):Play() end) return button end local setButton = createButton("Set Position", Color3.fromRGB(60,160,60)) local bringButton = createButton("Bring To Position", Color3.fromRGB(160,60,60)) --// Variables (UNCHANGED) local savedCFrame = nil local moving = false local SPEED = 50000 -- studs per second --// Set Position (UNCHANGED) setButton.MouseButton1Click:Connect(function() local character = player.Character if character and character:FindFirstChild("HumanoidRootPart") then savedCFrame = character.HumanoidRootPart.CFrame print("Position Saved") end end) --// Bring To Position (UNCHANGED) bringButton.MouseButton1Click:Connect(function() if moving then return end if not savedCFrame then return end local character = player.Character if not character then return end local hrp = character:FindFirstChild("HumanoidRootPart") if not hrp then return end moving = true local connection connection = RunService.RenderStepped:Connect(function(dt) if not hrp or not savedCFrame then connection:Disconnect() moving = false return end local currentPos = hrp.Position local targetPos = savedCFrame.Position local offset = targetPos - currentPos local distance = offset.Magnitude if distance <= 1 then hrp.CFrame = savedCFrame connection:Disconnect() moving = false return end local maxStep = SPEED * dt local moveDistance = math.min(maxStep, distance) local newPosition = currentPos + offset.Unit * moveDistance hrp.CFrame = CFrame.new(newPosition) * CFrame.Angles( math.rad(hrp.Orientation.X), math.rad(hrp.Orientation.Y), math.rad(hrp.Orientation.Z) ) end) end)