Problem with mouse.Target

Hi, i have a telekinesis power and it must get mouse.target for work when i print(target) it work and it say the target name and after i must send target to server but i don’t know why it say me nil

here is my script:

local mouse = game.Players.LocalPlayer:GetMouse()

			local SetNetworkOwner = game.ReplicatedStorage.SetNetworkOwner

			local Character = game.Players.LocalPlayer.Character

		    local RunService = game:GetService("RunService")

			InTelekinesis = true


			if mouse.Target ~= nil and mouse.Target.Locked == false then	
				target = mouse.Target.Parent.Parent
				mouse.TargetFilter = target
				RE.TelekinesisMouseMove:FireServer()
				RE.Telekinesis:FireServer(target, true)
				down = true 
			end


			mouse.Move:Connect(function()
				if down == true and target ~= nil then
					RE.TelekinesisMouseMove:FireServer(Character, mouse, target)
				end
			end) 

And this is the script in a server script

local RE = game:GetService("ReplicatedStorage")
local TelekinesisEvent = RE.TelekinesisMouseMove 

local BodyPosition = Instance.new("BodyPosition")

local stepped
local RunService = game:GetService("RunService")

TelekinesisEvent.OnServerEvent:Connect(function(Character, mouse, target)
	print(target)
	--BodyPosition.Parent = target.HumanoidRootPart
	--stepped = RunService.Heartbeat:Connect(function()
	--	BodyPosition.Position = Character:FindFirstChild("Head").Position + (mouse.Hit.Position - Character:FindFirstChild("Head").Position).Unit * 20
	--end)
end)

server print say nil but the local nil say target’s name

RemoteEvent.OnServerEvent takes 1 additional argument as the player whose client fired the RemoteEvent. In your case, TelekinesisEvent.OnServerEvent’s arguments should be (plr,Character,mouse,target).
Edit: The ‘Mouse’ object only exists within a player’s client, which means passing the mouse to the server through a RemoteEvent would basically return nil. The ‘target’ argument on the server actually received the value of ‘mouse’ on the client, which is nil. You do not need to pass the mouse object to the server because it doesn’t exist there, instead you can just pass values that you need like Mouse.Hit, mouse.Target, etc.