I have my own script to make arm follows the mouse kinda, but I use a custom animating method aka head stacks method I forgot the post anyway so my problem, pay attention to the gun
as you can see it doesn’t stay in the hands correctly, which is truly depressing
my code
--// Variables
local Player = game.Players.LocalPlayer
local Mouse = Player:GetMouse()
local Camera = workspace.CurrentCamera
local Character = script.Parent
local Head:Part = Character:WaitForChild("Head")
local Humanoid:Humanoid = Character:WaitForChild("Humanoid")
local Root:Part = Character:WaitForChild("HumanoidRootPart")
local CameraEnabled = true
--// Script
local function UpdateMotor(Motor:string, NewC0:CFrame)
for _,v in Character:GetDescendants() do
if v:IsA("Motor6D") and v.Name==Motor then
if not v:FindFirstChild("OriginC0") then
local oc = Instance.new("CFrameValue")
oc.Value = v.C0
oc.Name = "OriginC0"
oc.Parent = v
local oc = Instance.new("CFrameValue")
oc.Value = v.C0
oc.Name = "OriginTM"
oc.Parent = v
local oc = Instance.new("NumberValue")
oc.Value = v.CurrentAngle
oc.Name = "OriginCA"
oc.Parent = v
end
if Head.LocalTransparencyModifier~=2 then
v.C0 = NewC0
else
v.C0 = v.OriginC0.Value
end
end
end
end
game:GetService("RunService").RenderStepped:Connect(function()
if Character and CameraEnabled then
if Humanoid.Health>0 then
local x0, y0, z0 = CFrame.lookAt(Camera.CFrame.Position, Mouse.Hit.Position):ToOrientation()
UpdateMotor("Right Shoulder", CFrame.new(1, .5, 0)*CFrame.fromEulerAnglesXYZ(x0, math.rad(90), 0))
UpdateMotor("Left Shoulder", CFrame.new(-1, .5, 0)*CFrame.fromEulerAnglesXYZ(x0, math.rad(-90), 0))
UpdateMotor("BodyAttach", CFrame.new(0, 0, 0)*CFrame.fromEulerAnglesXYZ(x0, 0, 0))
end
end
end)
it’s the line that edits the bodyattach that is the “problem”