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!