Character getting randomly 1 shot during ragdoll (grab move)

So I’m having a bug where this ragdoll grab move will sometimes instantly kill a player. I assume its some weird interaction with ragdoll but I’m not sure what exactly causes it. It is not every time in fact its only pretty rarely that it happens. I’m using the ‘Perfect R6 Ragdoll’ module by no_l00p.

Here is the bit of code that uses the ragdoll:

if HitList[1] ~= nil then
				
				SoundPlayerRemote:FireServer(Assets.Sound[MoveKey].Hit, self.Character.HumanoidRootPart)
				local C0 = CFrame.new(Vector3.new(0,-1,0), self.Character["Right Arm"].Position * Vector3.new(0,1,0))
				Ragdoller:FireServer(HitList[1], true, 50)
				local GrabWeld = Welder:FireServer(self.Character["Right Arm"], HitList[1].Head, C0, CFrame.new())
				
			local ServerArgs = {
				["Module"] = module,
				["Action"] = "Grab",
				["HitList"] = HitList,
				
			}
			ActionService:InvokeServer(ServerArgs)
				local Animation = self.Character.Humanoid.Animator:LoadAnimation(Assets.Animations[MoveKey]["2"])
				Animation.Priority = Enum.AnimationPriority.Action2
				Animation:Play()
				
				Animation:GetMarkerReachedSignal("contact"):Connect(function()
				SoundPlayerRemote:FireServer(Assets.Sound[MoveKey].Slam, self.Character.HumanoidRootPart)
					local deletionofRag = coroutine.create(function()
						task.wait(1)
						Ragdoller:FireServer(HitList[1], false)
					end)
					
					coroutine.resume(deletionofRag)
					
					HitList[1].Head:FindFirstChildOfClass("Weld"):Destroy()
					
				local ServerArgs = {
					["Module"] = module,
					["Action"] = "GrabEnd",
					["HitList"] = HitList,
				}
				ActionService:InvokeServer(ServerArgs)
				
				local HitVFX = Assets.VFX.GroundImpact
				ParticlerRemote:FireServer(HitVFX, nil, self.Character.HumanoidRootPart.CFrame * CFrame.new(0,-2.9,-5), 5)
				
				local baseKB = self.Character.HumanoidRootPart.CFrame.LookVector * self.Keys[MoveKey].Knockback

				local ServerArgs = {
					["Module"] = module,
					["Action"] = "Hit",
					["HitList"] = HitList,
					["Knockback"] = Vector3.new(baseKB.X, 0, baseKB.Z),
					["BlockBreak"] = self.Keys[MoveKey].BlockBreak,
					["Damage"] = GrabData("Level", self.Player),
					["Stun"] = self.Keys[MoveKey].Stun
				}
				
				ActionService:InvokeServer(ServerArgs)
				
				end)
			end

and here is the server side:

function FistModule.Grab(Player, Args)
	
	local TargetCharacter = Args.HitList[1]
	local Character = Player.Character
	
	for i, v in ipairs(Character:getDescendants()) do
		if v:IsA("BasePart") then
			
			v.CollisionGroup = "Grabber"
			
		end
	end
	
	for i, v in ipairs(TargetCharacter:getDescendants()) do
		if v:IsA("BasePart") then
			
			v.CollisionGroup = "Grabbed"
			v.Massless = true
		end
	end
end

if any of you have experience with ragdolls or know any possible causes I really appreciate it!

1 Like

Is the RequiresNeck property set to false on the character’s humanoid? If your ragdoll service disables the neck’s Motor6D while RequiresNeck is set to true, it could kill the player.

2 Likes