Character levitating before ragdoll?

  1. What do you want to achieve? When ragdolling character they stay in the air for a bit before falling, I want to fix this.

  2. What is the issue?

  3. What solutions have you tried so far? I’ve tried to look for similar problems on the devforum and tried solutions but no luck.

After that, you should include more details if you have any. Try to make your topic as descriptive as possible, so that it’s easier for people to help you!

Ragdoll script:

local RagdollServerEvent = game.ReplicatedStorage:WaitForChild("Ragdoll")

RagdollServerEvent.OnServerEvent:connect(function(player,character,Hum, Direction)
	Hum:ChangeState(Enum.HumanoidStateType.FallingDown)
	for _,v in pairs(character:GetDescendants()) do
		if v:IsA("Motor6D") then
			if v.Name ~= "Root" and v.Name ~= "RootJoint" and not v.Parent:IsA("Tool") then
				local att0 = Instance.new("Attachment")
				att0.Name = "RagdollSocket"
				att0.CFrame = v.C0
				att0.Parent = v.Part0
				local att1 = Instance.new("Attachment")
				att1.Name = "RagdollSocket"
				att1.CFrame = v.C1
				att1.Parent = v.Part1

				local socket = character.RagdollJoints:FindFirstChild(v.Name)
				socket.Attachment0 = att0
				socket.Attachment1 = att1
				socket.Enabled = true

				v.Enabled = false
			end
		end
	end

	local bv = Instance.new("BodyVelocity")
	bv.MaxForce = Vector3.new(math.huge,0,math.huge)
	bv.Velocity = Direction * 50
	bv.Parent = character.HumanoidRootPart
	delay(0.1, function()
		bv:Destroy()
	end)

	character.HumanoidRootPart.CanCollide = false
	character.HumanoidRootPart.Massless = true

	local tatt0 = Instance.new("Attachment")
	tatt0.Name = "RagdollTrail"
	tatt0.Parent = character.Torso
	tatt0.Position = Vector3.new(0,1,0)

	local tatt1 = Instance.new("Attachment")
	tatt1.Name = "RagdollTrail"
	tatt1.Parent = character.Torso
	tatt1.Position = Vector3.new(0,-1,0)

	character.Trails.Stunned.Attachment0 = tatt0
	character.Trails.Stunned.Attachment1 = tatt1
	character.Trails.Stunned.Enabled = true
	delay(2.5, function()
		delay(0.5, function()
			Hum:ChangeState(Enum.HumanoidStateType.GettingUp)
			local sockets = {}
			for _,v in pairs(character:GetDescendants()) do
				if v:IsA("Motor6D") then
					v.Enabled = true
				elseif v.Name == "RagdollSocket" then 
					table.insert(sockets,v)
				elseif v.Parent.Name == "RagdollJoints" then
					v.Enabled = false
				end
			end
	
			for _,v in pairs(sockets) do v:Destroy() end
	
			character.HumanoidRootPart.CanCollide = true
			character.HumanoidRootPart.Massless = false

			Hum:SetStateEnabled(Enum.HumanoidStateType.Running, true)
			delay(0.5, function()
				Hum:SetStateEnabled(Enum.HumanoidStateType.Running, false)
			end)
	
			character.Trails.Stunned.Enabled = false
		end)
	end)
end)

(On server)

This is my first Devforum post so please inform me if im doing something wrong

Whoops… Accidentally clicked the create post button before i had a chance to send a video…

ok so i’ve somewhat managed to fix it but, the limbs fall in the ground though i believe that changing the ballsocketcontraints a bit will fix this and also, what i did to fix it was change fallingdown to physics and add Hum.PlatformStanding = true under it, although sometimes it lands vertically which isn’t nice to look at. it also still has that small lag spike if you have further solutions to this problem please still reply, but otherwise this is the solution to the biggest issue.

Also I should mention the reason it’s weaker is I changed the force for the vector of the bodyvelocity.

Ok this works almost perfectly aside from one thing, the first time you shove someone they will not get back up.

LocalScript in StarterCharacterScripts:

local RE = game.ReplicatedStorage.Ragdoll
local char = game.Players.LocalPlayer.Character
local Hum = char.Humanoid

RE.OnClientEvent:Connect(function()
	Hum:SetStateEnabled(Enum.HumanoidStateType.Running, false)
	Hum:ChangeState(Enum.HumanoidStateType.Physics)
	delay(1,function()
		Hum:ChangeState(Enum.HumanoidStateType.GettingUp)
		Hum:SetStateEnabled(Enum.HumanoidStateType.Running, true)
	end)
end)

Unfortunately I am unable to show a video as the second client is too laggy. This does not happen for the dummy though. The limbs do not stay ragdolled, I have no idea why this happens

Nevermind, turns out it was a problem with the server script, it always called for the humanoid to platformstand (Hum.PlatformStanding = true) but never set it to false, not sure why this happens only once though.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.