Using Headstackk’s method (How do I replicate Real Arm movements to Fake Arms (ViewModel)? ) to create an fps viewmodel, I had ran into problems with attaching the gun to the viewmodel on the client side.
I later whittled the problem down to conflict between the server script which attached the gun to the player torso, and the local script which attached the gun to the viewmodel. However, after deleting the server sided code, the gun will occasionally fall out of the players backpack, being unable to equip it again, not to mention the guns animation is not properly playing. https://gyazo.com/bbfc34f4731bf84dea6e66ffe436b952
And yes, required handle and can collide is off.
Tool.Equipped:Connect(function() CheckConnect = true ConnectM6D:FireServer(CheckConnect) character.Torso.ToolM6D.Part1 = nil -- Remove this when testing viewmodel only ViewModelRoot.ToolM6D.Part1 = Tool.BodyAttach ViewModelRoot.ToolM6D.C0 = ViewModelRoot.ToolM6D.C0 * CFrame.new(0,0,0) trackIdle:Play() end) Tool.Unequipped:Connect(function() CheckConnect = false ConnectM6D:FireServer(CheckConnect) trackIdle:Stop() end)
game.Players.PlayerAdded:Connect(function(player) player.CharacterAdded:Connect(function() local M6D = Instance.new("Motor6D", player.Character.Torso) M6D.Name = "ToolM6D" end) end) ConnectM6D.OnServerEvent:Connect(function(player, CheckConnect) local ToolM6D = player.Character.Torso.ToolM6D local Tool = player.Character:FindFirstChildWhichIsA("Tool") if CheckConnect then ToolM6D.Part0 = player.Character.Torso ToolM6D.Part1 = Tool.BodyAttach end if not CheckConnect then ToolM6D.Part1 = nil end end)