Weird ragdoll bug

There’s a weird ragdoll bug where it puts a clicky cursor where there’s no clickdetector

It’s very weird and it shouldn’t be happening but it does.

Here’s what it looks like, I haven’t been able to figure out what causes it.

2459f8de6bdde2bd1e02ee06a5a8dbab

Here’s the explorer for the zombie ragdoll, it doesn’t seem to have any effect on the zombie. I think it has to do with the constraints maybe?

d5bf6acc35928236eae704e3cf451661

But here’s also the script for it

local PhysicsService = game:GetService("PhysicsService")

-- Physics
wait(0.001)

local cleanUpTime = 60 -- change this to whatever you want

local function NewHingePart()
	local B = Instance.new("Part")
	B.TopSurface = 0 B.BottomSurface = 0
	B.Shape = "Ball"
	B.Size = Vector3.new(1, 1, 1)
	B.Transparency = 1 B.CanCollide = true
	return B
end
local function CreateJoint(j_type, p0, p1, c0, c1)
	local nj = Instance.new(j_type)
	nj.Part0 = p0 nj.part1 = p1
	if c0 ~= nil then nj.C0 = c0 end
	if c1 ~= nil then nj.C1 = c1 end
	nj.Parent = p0
end

local AttactmentData = { --Limb socket attaching to Torso
	--["AttachmentTag"] = {part_name, part_attachment, torso_attachment, relative_position}
	["RA"] = {"RightZarm", CFrame.new(0, 0.5, 0), CFrame.new(1.5, 0.5, 0), CFrame.new(1.5, 0, 0)},
	["LA"] = {"LeftZarm", CFrame.new(0, 0.5, 0), CFrame.new(-1.5, 0.5, 0), CFrame.new(-1.5, 0, 0)},
	["RL"] = {"RightZleg", CFrame.new(0, 0.5, 0), CFrame.new(0.5, -1.5, 0), CFrame.new(0.5, -2, 0)},
	["LL"] = {"LeftZleg", CFrame.new(0, 0.5, 0), CFrame.new(-0.5, -1.5, 0), CFrame.new(-0.5, -2, 0)},
}

local collision_part = Instance.new("Part")
collision_part.Name = "CP"
collision_part.TopSurface = Enum.SurfaceType.Smooth
collision_part.BottomSurface = Enum.SurfaceType.Smooth
collision_part.Size = Vector3.new(1, 1.5, 1)
collision_part.Transparency = 1

local char = script.Parent
local player = game.Players:GetPlayerFromCharacter(char)

function RagdollV3()
	char.Archivable = true
	local ragdoll = char:Clone()
	ragdoll.Archivable = false
	char.Archivable = false
	
	for _, v in ipairs(char:GetChildren()) do
		if v:IsA("BasePart") then
			PhysicsService:SetPartCollisionGroup(v, "Ragdolls")
			v.Transparency = 1
			v.CanCollide = false
			v.Anchored = true
		end
	end
	
	--set up the ragdoll
	local function scan(ch)
		for i = 1, #ch do
			scan(ch[i]:GetChildren())
			if (ch[i]:IsA("ForceField") or ch[i].Name == "HumanoidRootPart") or ((ch[i]:IsA("Weld") or ch[i]:IsA("Motor6D")) and ch[i].Name ~= "HeadWeld" and ch[i].Name ~= "AttachementWeld") then
				ch[i]:destroy()
			end
		end
	end
	
	scan(ragdoll:GetChildren())
	local function scanc(ch)
		for _, obj in pairs(ch:GetChildren()) do
			scanc(obj)
			if obj:IsA("Script") or obj:IsA("LocalScript") or ((obj:IsA("Weld") or obj:IsA("Motor6D") or obj:IsA("Motor")) and obj.Name ~= "AttachementWeld") or obj:IsA("ForceField") or (obj:IsA("Snap") and obj.Parent.Name == "Torso")
				or obj:IsA("ParticleEmitter")then
				obj:destroy()
			elseif obj:IsA("BasePart") then
				if obj.Name == "Torso" then PhysicsService:SetPartCollisionGroup(obj, "Ragdolls") end
				obj.Velocity = Vector3.new(0, 0, 0)
				obj.RotVelocity = Vector3.new(0, 0, 0)
				if obj.Parent:IsA("Accessory") then
					obj.CanCollide = false
				end
			end
		end
	end
	scanc(ragdoll)
	
	local f_head
	
	local fhum = ragdoll:FindFirstChild("Humanoid")
	fhum.Name = "FakeHumanoid"
	fhum.PlatformStand = true
	
	local Stomach = ragdoll:FindFirstChild("Stomach")
	if Stomach then
		Stomach.Velocity = Vector3.new(math.random(), 0.0000001, math.random()).unit * 5 + (Vector3.new(0, 0.15, 0))
		local Head = ragdoll:FindFirstChild("Head")
		if Head then
			local objectValue = Instance.new("ObjectValue")
			objectValue.Name = "FOCUS UP!!"
			objectValue.Value = Head
			objectValue.Parent = char
			
			CreateJoint("Weld", Stomach, Head, CFrame.new(0, 1.5, 0))
			local Face = ragdoll:FindFirstChild("Face")
			if Face then
				CreateJoint("Weld", Head, Face, CFrame.new(0, 0, 0))
			end
		end
		
		for att_tag, att_data in pairs(AttactmentData) do
			local get_limb = ragdoll:FindFirstChild(att_data[1])
			if get_limb ~= nil then
				local att1 = Instance.new("Attachment")
				att1.Name = att_tag
				att1.CFrame = att_data[2]
				att1.Parent = get_limb
				
				local att2 = Instance.new("Attachment")
				att2.Name = att_tag
				att2.CFrame = att_data[3]
				att2.Parent = Stomach
				
				local socket = Instance.new("BallSocketConstraint")
				socket.Visible = false
				socket.Name = att_tag .. "_SOCKET"
				socket.Attachment0 = att2
				socket.Attachment1 = att1
				socket.Radius = 0
				socket.Parent = Stomach
				
				get_limb.CanCollide = false
				
				local cp = collision_part:Clone()
				local cp_weld = Instance.new("Weld")
				cp_weld.C0 = CFrame.new(0, -0.25, 0)
				cp_weld.Part0 = get_limb
				cp_weld.Part1 = cp
				cp_weld.Parent = cp
				cp.Parent = ragdoll
			end
		end
	end
	ragdoll.Parent = workspace.GameStuff
	if not _G.IsTesting then
		game:GetService("Debris"):AddItem(ragdoll, cleanUpTime)
	end
	fhum.MaxHealth = 100
	fhum.Health = fhum.MaxHealth
end

char.Humanoid.Died:connect(RagdollV3)

There might be Gui where your cursor is or its just Roblox being funny.

Yeah, it’s really annoying because it prevents you from shooting more zombies. I deleted the whole thing and the cursor was still there.

Edit: I even deleted the ragdoll script and it still bugs out and there’s still a click cursor despite the humanoid being destroyed. This happened after I turned on spatial voice and hasn’t stopped happening since.

Keep in mind I’m 18 but I haven’t gotten a chance to get my ID, so I believe it has something to do with that. I couldn’t use spatial voice so now it has all sorts of weird bugs.

Still bugs despite there being no humanoid or anything there. Couldn’t find a single click detector ANYWHERE.


Instead of making the fhum the clone of a already Dead/Died Humanoid, make a new Humanoid instead. Maybe that’ll fix the problem.

local fhum = Instance.new("Humanoid, ragdoll)

Actually, I fixed it it had to do with voice chat for some reason. I’m not verified yet, my passport is expired and I have no driver’s license. I can’t do any voice chat development yet. I just turned off VoiceChatService.EnableDefaultVoice and that did the trick.