Floaty part attached with rope constantly shaking around

I’ve made a system that can make a part and attach it to your character, and as this part is meant to represent a balloon it’s meant to float upwards slightly while still staying attached to you and following you.
The part floats, but it’s extremely shaky and jumping around will make it constantly flip around: if I make the antigravity even stronger it just stays at the top unmoving, and if I make it weaker it just constantly floats in circles. Is there any way to make it float upwards “softly” and not spin as much?

Code (unnecessary parts omitted):

local newFloatyPart = Instance.new("Part")
		newFloatyPart.Parent = char
		newFloatyPart.Massless = true
		newFloatyPart.CanCollide = false
		newFloatyPart.Size = Vector3.new(4, 4, 0.001)
		newFloatyPart.Transparency = 1

		local newAttatch1 = Instance.new("Attachment")
		newAttatch1.Parent = char:WaitForChild("Head")
		newAttatch1.Position = Vector3.new(0, 1, 0)

		local newAttatch2 = Instance.new("Attachment")
		newAttatch2.Parent = newFloatyPart
		newAttatch2.Position = Vector3.new(0, -1.9, 0)

		local newRope = Instance.new("RopeConstraint") --used for a visible connection 
		newRope.Restitution = 0
		newRope.Length = 4
		newRope.Attachment0 = newAttatch1
		newRope.Attachment1 = newAttatch2
		newRope.Parent = char:WaitForChild("Head")
		newRope.Visible = true

		local bodyForce = Instance.new("BodyForce") -- used for floatiness and anti-gravity
		bodyForce.Force = Vector3.new(0, 0.7 * workspace.Gravity, 0)
		bodyForce.Parent = newFloatyPart

Video of what happens:

A couple things I’d try.
Make the newFloatyPart have a very small mass, not massless.
Make it EnableFluidForces true.

You may also want to try VectorForce instead of BodyForce since you can tune the forces inside it a bit more.

I’ve tried increasing the density and although that does make it a little more stable, if you jump around enough it’ll eventually go back to flipping around. I was trying to make both the density and the gravity extreme, but that would just make player movement very weird.

What about VectorForces would make it more tuneable? I’m new to applying forces to parts so I don’t know much about them yet.

Read up on them here: Constraints VectorForce and here: Classes VectorForce

1 Like