Yes. It should now work. The gun may be oriented or positioned incorrectly, in which you should try adjusting the GripForward, GripRight, and GripUp properties.
Alright, I rechecked the code. This in particular looks incorrect:
Character.DescendantAdded:Connect(function(Obj)
if Obj:IsA("Weld") and Obj.Name == "RightGrip" then
task.wait()
Obj.Part0 = ViewModel[Obj.Part0.Name]
end
end)
I’ve seen one DevForum post, which may have a similar issue. Try duplicating the weapon instead to the ViewModel, and weld that clone to the ViewModel’s hand, maybe?
Character.DescendantAdded:Connect(function(Obj)
if Obj:IsA("Weld") and Obj.Name == "RightGrip" then
local NewGrip = Obj:Clone()
local TargetPart = Obj.Part1:Clone()
local NewParent = ViewModel[Obj.Part0.Name]
Obj.Parent = NewParent
TargetPart = ViewModel
Obj.Part0 = NewParent
Obj.Part1 = TargetPart
end
end)
This isn’t tested. Let me know if it works or not.
I may have forgotten to add TargetPart.Parent = ViewModel.
Character.DescendantAdded:Connect(function(Obj)
if Obj:IsA("Weld") and Obj.Name == "RightGrip" then
local NewGrip = Obj:Clone()
local TargetPart = Obj.Part1:Clone()
local NewParent = ViewModel[Obj.Part0.Name]
Obj.Parent = NewParent
TargetPart.Parent = ViewModel
Obj.Part0 = NewParent
Obj.Part1 = TargetPart
end
end)
About the gun problem, I have run out of ideas. Sorry about that.
Character.DescendantAdded:Connect(function(Obj)
if Obj:IsA("Weld") and Obj.Name == "RightGrip" then
wait()
Obj.Part0 = ViewModel[Obj.Part0.Name]
end
end)
The weld is already replicated when DescendantAdded is fired. Using either task.wait() or wait() has no difference other that performance improvements.