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?
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
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?
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?
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.
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.
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.