local UserInputService = game:GetService("UserInputService") local Players = game:GetService("Players") local Workspace = game:GetService("Workspace") local player = Players.LocalPlayer local mouse = player:GetMouse() local function teleportCharacter() local character = player.Character if not character then return end local rootPart = character:FindFirstChild("HumanoidRootPart") if not rootPart then return end local targetPosition = mouse.Hit.Position local currentRotation = rootPart.CFrame - rootPart.CFrame.Position local newCFrame = CFrame.new(targetPosition + Vector3.new(0, 3, 0)) * currentRotation rootPart.AssemblyLinearVelocity = Vector3.new(0, 0, 0) rootPart.AssemblyAngularVelocity = Vector3.new(0, 0, 0) rootPart.CFrame = newCFrame end UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.UserInputType == Enum.UserInputType.MouseButton1 then local ctrlDown = UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) or UserInputService:IsKeyDown(Enum.KeyCode.RightControl) if ctrlDown then teleportCharacter() end end end) player.CharacterAdded:Connect(function(newChar) character = newChar end)