BallSocketConstraint arms cause the player to wiggle and move

I’ve given the player special arms through the use of BallSocketConstraints joining the edges of the torso to the edges of the arms. This change makes the player wiggle around slightly when standing still. Here’s a video: JigglyWiggler.mov - Google Drive
I understand that the physics of the arms are causing this, but how can I fix it?

1 Like

I’m not too familiar with the ball in socket constraint compared to the other constraints, but to lower the bounciness, you could raise the MaxFrictionTorque

and for other constraints like HingeConstraint, I’d setup a Servo actuator to force it back to the center positions, but BallInSocket doesn’t have that, so you could try using something like an AlignOrientation and/or an AlignPosition to also move force the arms back to the center position

idk if it works but i suggest to try enabling Massless property of arms

that’d probably make them move with more acceleration

I’m not worried about the bounce of the arms, I want to find the way the arms cause the body to move slightly. Look at the feet in my video and notice the way they shift with stud texture.

did you try what i suggest, i want to know if it’s not worked so i can suggest different things that i imagine

I put this in a disabled local script:

local plr = game.Players.LocalPlayer
local char = plr.Character or plr.CharacterAdded:Wait()

local bodyParts = {"Right Arm","Left Arm","Right Leg","Left Leg"}

game:GetService("RunService").Stepped:Connect(function()
	local pass = true
	for i, v in pairs(bodyParts) do
		if not char:FindFirstChild(v) then
			pass = false
		end
	end
	if pass then
		char["Right Arm"].CanCollide = true
		char["Left Arm"].CanCollide = true
		char["Right Leg"].CanCollide = true
		char["Left Leg"].CanCollide = true
	end
end)

Massless doesn’t seem to work. I’m pretty sure it’s the arms pulling back after moving a certain direction, the idea that every action has an equal and opposite reaction.

This doesn’t seem to work. I put it in StarterPlayer and StarterCharacter. How might the script even work if it’s disabled?

1 Like

I mean you’re supposed to enable it then disable it when they ragdoll

It still moves the character even when enabled. How does enabling collision stop the player from wiggling?

1 Like

Oh I also forgot a few other things to do in it (I’m getting it rn)

	if character:FindFirstChild("RagDollClient") and character:FindFirstChild("Humanoid") then
		character.RagDollClient.Disabled = false
		local humanoid = character.Humanoid
		humanoid.PlatformStand = true
		humanoid.WalkSpeed = 0
		humanoid.JumpPower = 0
	end

Edit: this is coming from the server right after disabling motor6Ds
Edit2: It does these if statements to look for the rag doll client and the humanoid since exploiters can just delete them and the server can error (it’s stupid but it happens and it replicates)
Edit3: Also put a delay function after that to disable the rag doll script again

All of these changes to the humanoid don’t stop the problem. WalkSpeed, JumpPower, and PlatformStand won’t do anything but limit player controls and make the player fall over.

1 Like

This is just some explosion rag doll function I use when the player gets exploded.

Also, if they’re moving around or jumping around, they should be able to fall over. But what type of game are you trying to make with this?

I’m making a system where the arms auto grab objects the player equips using constraints so that I don’t have to make a ton of animations.

1 Like

oh, then you should probably make another dev forum post about this and say what system you’re trying to make since that’ll get the answer to you faster and get more clearer answers. But you should probably use CFrame to angle the arms if you aren’t already though.