local player = game.Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local waypointPart = nil local range = 25 local function setWaypoint() if waypointPart then waypointPart:Destroy() end waypointPart = Instance.new("Part") waypointPart.Size = Vector3.new(1, 1, 1) waypointPart.Anchored = true waypointPart.CanCollide = false waypointPart.Transparency = 1 waypointPart.Position = character.PrimaryPart.Position waypointPart.Parent = workspace local billboardGui = Instance.new("BillboardGui") billboardGui.Size = UDim2.new(0, 100, 0, 50) billboardGui.AlwaysOnTop = true billboardGui.Adornee = waypointPart local textLabel = Instance.new("TextLabel") textLabel.Size = UDim2.new(1, 0, 1, 0) textLabel.Text = "WP" textLabel.TextColor3 = Color3.fromRGB(255, 255, 0) textLabel.BackgroundTransparency = 1 textLabel.TextScaled = true textLabel.Parent = billboardGui billboardGui.Parent = waypointPart end local function teleportAroundWaypoint() if waypointPart then local randomX = math.random(-range, range) local randomZ = math.random(-range, range) local targetPosition = Vector3.new( waypointPart.Position.X + randomX, waypointPart.Position.Y, waypointPart.Position.Z + randomZ ) character:SetPrimaryPartCFrame(CFrame.new(targetPosition)) end end game:GetService("UserInputService").InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.T then setWaypoint() elseif input.KeyCode == Enum.KeyCode.R then teleportAroundWaypoint() end end)