That’s a video showing your bug, not what you want to make.
Yes, I read it. I just don’t understand what you mean by this? That’s why I am asking…
From what I understand, you want to achieve this:
Is that correct?
I was able to achieve this effect by constantly CFraming.
I don’t have your character, but all parts are connected to each other, so you can just use something like this:
local RunService = game:GetService("RunService")
local plr = game:GetService("Players").LocalPlayer
local char = plr.Character or plr.CharacterAdded:Wait() --Get the character
local cam = workspace.CurrentCamera
local speed = 2 --CFraming speed
RunService.RenderStepped:Connect(function() --Every frame do
char:SetPrimaryPartCFrame(char:GetPrimaryPartCFrame() + Vector3.new(cam.CFrame.LookVector.X * speed,0,cam.CFrame.LookVector.Z))
--^Move towards the X and Z of the camera
end)
--This is a local script
I don’t know whether your game is 2D or 3D, so I made mine with both X and Z.
Just replace speed,0,cam.CFrame.LookVector.Z with 0 if you want it only on the X.