local script: ```local tool = script.Parent
local target = nil
local userInputService = game:GetService("UserInputService")
local runService = game:GetService("RunService")
local connectionInputBegan = nil
local connectionInputEnded = nil
local connectGroup = nil
local userInput = nil
local serverPosition = nil
local raycastParams = RaycastParams.new()
local function raycast()
local mouse = userInputService:GetMouseLocation()
local ray = game.Workspace.CurrentCamera:ViewportPointToRay(mouse.X,mouse.Y)
local result = workspace:Raycast(ray.Origin,ray.Direction * 100,raycastParams)
if result == nil then
return ray.Origin + ray.Direction * 100
else
return result.Position , result.Instance
end
end
local function loop(deltaTime)
local position,instance = raycast()
target.Position = position
if (position - serverPosition).Magnitude > 8 then
serverPosition = position
tool.PositionEvent:FireServer(serverPosition)
end
end
local function inputEnded(input,processed)
if userInput ~= input then return end
userInput = nil
connectionInputEnded:Disconnect()
connectGroup:Disconnect()
tool.PositionEvent:FireServer(nil)
end```