Making a part go down and forward where player is facing

I want a model to go down and forward where the player is facing.
I am using this line, but it puts it inside the character

		rock:SetPrimaryPartCFrame(CFrame.new(char.HumanoidRootPart.Position, char.HumanoidRootPart.Position + player.Character.HumanoidRootPart.CFrame.LookVector) * CFrame.Angles(math.rad(-90),0,math.rad(0)))

You are setting the CFrame inside of the character because you are putting it in the player’s humanoid root part.

Offset the position you are putting the part to instead of putting it directly in the HumanoidRootPart.

Trying to offset it like this

rock:SetPrimaryPartCFrame(CFrame.new(char.HumanoidRootPart.Position + Vector3.new(0,-3,-2), char.HumanoidRootPart.Position + player.Character.HumanoidRootPart.CFrame.LookVector) * CFrame.Angles(math.rad(-90),0,math.rad(0)))

does not work because im pretty sure the z change as I look at different directions, one side it goes forward, one side it goes to the back of me, however the Y value is always down/up.

This is what I mean:
https://gyazo.com/e64bbfb26aeb2bd99dc3f15215a726d1.gif
Trying to offset it won’t make it relative to the player.

I’m not a CFrame expert but you can try continuously updating the CFrame based on the direction the player is facing. Pretty sure there is a CFrame property that makes this process more efficient.

I will investigate more.

I am using Position as you see in the line, It would be appreciated if you could help me translate this to CFrame if there is a way to do this with CFrame

I would try using CFrame:ToWorldSpcae()