Issue scripting RopeConstraint

The video above shows my system to rappel up a wall. When the player is high up on the wall, the system works just fine. However, when the player is low down on the wall, the rope seems to be very slow to pull the player towards it.

I’ve tried increasing the winch’s responsiveness, speed, etc. and there’s still been no change.

Enabling “PlatformStand” on the humanoid fixes this issue, but I can’t have the player in PlatformStand property enabled or else the player seems to swing freely and causes issues when they’re high up on the wall

Is there a script for the rope controls?

1 Like

Yes, here it is:

			elseif char.Torso:FindFirstChild("RappelRope") then
				local Rope = char.Torso:FindFirstChild("RappelRope")
				local Attachment1 = Rope.Attachment1
				
				if height == 0 then
					Rope.WinchTarget += 0.1
				elseif height == 1 then
					Rope.WinchTarget -= 0.1
				end
				
				if horizontal == 0 then
					if Attachment1.Position.X < Attachment1.Parent.Size.X/2 - 0.25 then
						Attachment1 = Rope.Attachment1
						Attachment1.Position += Vector3.new(0.25, 0, 0) -- D
					end
				elseif horizontal == 1 then
					if -Attachment1.Position.X < Attachment1.Parent.Size.X/2 - 0.25 then
						Attachment1.Position -= Vector3.new(0.25, 0, 0) -- A
					end
				end
			end

the variables “height” and “horizontal” are passed to this script from a RemoteEvent and control if the player moves left, right, up, or down. Attachment1 is the attachment which is on the roof. I’m simply changing the WinchTarget for the height, and the Attachment1’s position to move left and right.

Looks like the issue is WinchTarget. What are the settings of the rope?

1 Like
				local RopeConstraint = Instance.new("RopeConstraint")
				RopeConstraint.Name = "RappelRope"
				RopeConstraint.Visible = true
				RopeConstraint.Restitution = 1
				RopeConstraint.WinchForce = 1000000000
				RopeConstraint.WinchSpeed = 1000
				RopeConstraint.WinchResponsiveness = 2000
				RopeConstraint.Attachment0 = Attachment0
				RopeConstraint.Attachment1 = Attachment1
				RopeConstraint.WinchEnabled = true
				RopeConstraint.WinchTarget = (Attachment0.WorldPosition - Attachment1.WorldPosition).Magnitude
				RopeConstraint.Parent = char.Torso

Here are the settings I created when I made the rope. The only time that the WinchTarget changes is when the player moves up or down, as seen in this part of the last script:

You might want to increase the 0.1 to something higher.

It still has the same issue, it just moves the player up/down quicker when they hold W or S

It’s probably just the nature of winch on the RopeConstraint. Try disabling it and change the length directly.

The same thing happens even without the winch on