Block does not want to look at player's mouse

I want to make a tool which looks at a player’s mouse, its a block.

but when i tried to make it this is what i got:


the block does not want to look at player’s mouse.

the script:

script.Parent.Send.OnServerEvent:Connect(function(useless,pos)
	script.Parent.Grip = CFrame.lookAt(script.Parent.Handle.Position,pos)
	script.Parent.GripPos = Vector3.new(0,0,0.447)
end)

local script:

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

mouse.Move:Connect(function()
	script.Parent.Send:FireServer(mouse.Hit.p)
end)

is there a way i can reverse the cframe?

Im not too great with CFrames but im pretty sure your block is looking at what your mouse is on in the workspace, not on the screen

if you want it looking at the mouse on the screen. It sounds like some complicated math (Especially if its third person)

to get the mouse’s screen Position you’ll need to read this to get its normalised position,
https://developer.roblox.com/en-us/api-reference/property/Mouse/X

Sorry I cant be much more help

Do you need this to replicate? Because the way you have it set up right now, you’re sending tons of calls over the server/client boundary every time you move your mouse.

The only thing that could relate to this is if you grabbed the inverse of the CFrame, such as

CFrame.new(Vector3.new(1,1,1):inverse() -- as an example

What are you trying to achieve though? Like @anon25856735 said, are you trying to follow your mice position on the screen, or where it’s pointing at in workspace?

In that case, you could try something along the lines of:

mouse.Move:Connect(function()
    if mouse.Target == nil then return end
    block.CFrame = CFrame.new(block.Position, mouse.Hit.p)
end)

This would only work client sided though, i.e wouldn’t replicate.