Part doesn't move

The issue is with how you’re using CFrame.lookAt(). You’re passing Camera.CFrame.LookVector as the target, but lookAt() expects a position in world space, not a direction vector.LookVector is a direction (a unit vector), not a point. When you pass it directly, you’re telling the part to look at a point that’s essentially at the origin relative to its own position, which causes unexpected behavior.Here’s the fix:lualocal part = script.Parentlocal Camera = workspace.CurrentCameratask.wait(1)game:GetService("RunService").Heartbeat:Connect(function() -- Create a target point in front of the camera local targetPosition = Camera.CFrame.Position + Camera.CFrame.LookVector * 100 part.CFrame = CFrame.lookAt(part.Position, targetPosition)end)The key change: Camera.CFrame.Position + Camera.CFrame.LookVector * 100 creates an actual position 100 studs in front of the camera. Adjust that 100 value based on how far away you want the “look target” to be.Alternative approach (simpler):luapart.CFrame = part.CFrame:Lerp(Camera.CFrame, 0.1) -- Smoothly follow camera orientationThis directly matches the part’s rotation to the camera without needing to calculate a target point.Important notes:- If this is meant to be a player-controlled mechanic, use a LocalScript on the client instead of a server script. Server scripts can’t reliably access workspace.CurrentCamera (it’s client-only).- If you need server authority, use a RemoteEvent to send camera data from client to server.Which approach fits your use case better?