I am currently using a RodConstraint and a VectorForce to make a grapple system. To do this, I am subtracting length from the RodConstraint and setting the VectorForce every frame via Heartbeat.
Now, I am attempting to make different speeds for the grapple so that the player can speed up the grapple or slow it down. However, past a certain subtraction (about 7 I think), the RodConstraint won’t go any faster. How can I fix this? Help is much appreciated.
unfortunately, this does not work. the way the rod works is that it adjusts to its length with what I’m guessing is a capped speed. so even using a tween to reduce the length, it still gets capped at whatever max speed roblox has it as. thanks for the help though!
heres the code I used in-case you have any doubts:
local function rodTween (newSpeed)
if rodSpeed ~= newSpeed then
rodSpeed = newSpeed
local relativeSpeed = (mousepos - root.Position).Magnitude/newSpeed
rodTweenVariable = tweenService:Create(rod, TweenInfo.new(relativeSpeed, Enum.EasingStyle.Linear), {Length = 0.5})
rodTweenVariable:Play()
end
end
you can the newSpeed parameter to like 10k and it’ll have the same speed as 1k and whatnot
I found a solution! For those experiencing the same issue, I switched the RodConstraint with a RopeConstraint and then set the restitution property to a low amount (0.2) to mimic the RodConstraint. Since the rope constraint’s length can be subtracted with immediate results, this fixes my issue.