Rope Constraints Exert Gravity Force Even When attachment objects are Massless

I was trying to make a lantern with rope constraints and a beam that the player can carry. I was testing it, and the swinging of the rope causes untoggleable forces to be exerted on the character not allowing them to walk properly. I have made the objects massless, not collide, not query and it doesn’t change the behavior.

RopeConstraintBug.rbxl (158.7 KB)

Currently this behavior makes RopeConstraints completely unusable for use on tools such as a Flail or accessories attached to a moving rig such as my swinging chain held lantern.

Expected behavior

The rope should exert a pull force equivalent to the mass of the object it is attached to, at attachment 1 and/or 0 instead. Both of my handles are massless, so how does it make sense that forces are exerted to where it moves the character.
Character Moves with normal mass → handle object that is massless moves → the rope constraint gets tension via two ends that are massless-> calculate the pull based on the mass of the objects at both ends to get a small value that is proportional to the weight of the objects. Objects do not have to be massless, if they are they should move super easily and not exert forces unlike in my example.

Hello,

Thank you for reporting this issue. Could you try making the lantern very light (by modifying it’s density) instead of massless and let us know if you’re still seeing this issue?

1 Like

I did that, and it just made the chain move super easily and the lantern to almost float
In this example I am using a couple parts to demonstrate the issue. One part is connected the handle by a rope constraint. to swing the lantern as the player walks.


I am pretty experienced with ROBLOX and honestly, I don’t see how I could use these rope constraints for a character in the current form. I’ve tried massless and density lowering. But still the forces exerted disrupt the stance of my standard character in this basic example.
The density did affect how violently the ball disrupts the characters stance but even with a value of .0001 it still affecting waling with the object not interacting with anything and if the object is interacting the rope appears to pull the player all over the place even with little to no mass at all.
robloxapp-20241204-1745158.wmv (692.5 KB)

Have you tried making the rope a winch? Combining density lowering with Winch Force reducing may aid the problem. Then if the assembly is too floaty, you can use a VectorForce with a downward force and RelativeTo set to World

Combining Density lowering with Winch Force does do something but what is confusing is why doesn’t the winch work? The winch does manage to make the character stop moving about like before


I’m on the server changing these values I change them to a value suitable then it doesn’t work so i tried all sorts of values and this is just 20000 units high and wont come down.

Just spinning in circles. I can’t seem to get the winch to retract.


.

The main reason is that the density of the assembly is lower than air, so I’d first adjust the density of the assembly until it just barely floats, like it’s weightless, rather than being like a balloon flying up the atmosphere. Then the rope will be able to affect it more. Then use the VectorForce to give it fake gravity

I’ll get on my laptop soon to mess around with this

I tried different densities. The object works fine by itself looks fine when you equip it and just bugs out when a player moves.

This is basically what I want it to be doing
image

But instead it’s swinging everywhere
robloxapp-20241204-1845101.wmv (1.1 MB)
Again I think it’s something that should be looked at. These rope constraints are breaking the Laws of physics in fundamental ways.


.

Ooo, could you send the place file with the lantern mesh? I think there’s a workaround to this problem that I’ve used in my projects

Sorry I know this is a bug report, not a #help-and-feedback post, but I’m curious to see if the problem brought to light in this post could be addressed so that your game can get the lantern functioning properly as soon as possible

Sure It’s the same one as the original but slightly modified properties of the objects.
RopeConstraintBug.rbxl (160.4 KB)

Okay I’ve been toying around with it, and I must admit it’s tricky. I’ve personally been able to get a variety of tools involving ropes, such as balloons and lassos, to function by having a mass of approximately 0.001 paired with winch ropes and AlignPositions. They’re able to move without affecting player movement when I parent the moving part outside the character(when the assemblies are in the player their density will always affect the player to some extent), but the assemblies still have the problem of flinging out of control occasionally.

@m0bsterlobster, I see a feature that may aid this issue.

Let constraints(like springs and ropes) have a sort of “ReactionForceEnabled” property that’s toggleable, When turned off, the assembly connected to Attachment0 will, regardless of mass, not affect the assembly connected to Attachment1. (Or swap the Att0 and Att1 if I just butchered their roles)

Do you see this as being plausible? I feel would solve the problem of normal density objects hanging on ropes exerting unwanted forces on their “father” assemblies.

First, Massless does not work if all parts in a given assembly are set to be massless. An assembly must have mass (or else you’d end up with dividing by zero, creating a black hole that will suck in all of Roblox). So I stripped out the Accoutrament/Handle stuff because these instances also have awkward behavior regarding Massless, and want to minimize variables. At the end of the day we have two assemblies in your problem: the character and the lantern, and we want them connected by a Rope.
Assembly documentation
Massless documentation

The trick is to find a mass for the lantern that is both stable in the players hand, and doesn’t cause the character to move around. The ratio between AssemblyMasses must be kept low for stability -your avatar mass and lantern mass shouldn’t be much more than order of magnitude apart. At the same time if the lantern’s weight is too high, it can move the character.

On one hand, this is a limitation of the default Humanoid movement controller, since you aren’t able to customize any of its forces that might compensate for the lantern’s weight. However, it looks like I was able to find a mass that works pretty well. Lantern Assembly mass is 0.1, while the character is ~6.

Still, I noticed how the walk animation can cause the lantern to spin pretty rapidly (animations are fully kinematic - basically meaning they pull on the lantern with infinite force), and when you stop walking, it still causes the character to move around. To compensate for this, I added a LinearVelocity to the lantern with a target Velocity of (0,0,0) and a tiny MaxForce (5). This helps dampen the velocity of the lantern, letting it more quickly come to rest when you stop moving.

Here’s the final result, with changes made to the StarterCharacter. Let me know how this goes for you!
RopeConstraintBug-fix.rbxl (156.3 KB)

1 Like

I am looking at this file and I appreciate the feedback! This does appear to a require a special solution.
Currently this is how it is behaving for me.


I think there might be a different way to approach this with a ballsocketconstraint.

But while testing this with the winch enabled, along with a AlignPosition in addition to the LeftGripAttachment with a certain magnitude it leads to a neat nonintrusive behavior.

After tinkering with the properties of the align position I have found a setting that I think would work pretty well with an attachment that can be located in the handle of a accessory.
RopeConstraintBug-fixMagusArtStudios.rbxl (146.9 KB)

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