Make a part go a bit extra in one way

I’m trying to get the player character to go 5,0,0 extra, I’ve tried: LinearVelocity doesn’t work because the character can’t perform its normal movements since LinearVelocity tries to keep it at it’s goal speed, not allowing else
VectorForce I couldn’t get working, since I’m not sure how to calculate friction, and besides it keeps accelerating. My previous “solution” was setting the CFrame, but that has a lot of issue, namely clipping through walls

What movers exist, that let me: Set a goal movement as a Vector3, specify usable force, and allows other forces to be applied along with the mover itself?

i think bodyvelocity would fix your issue (Maybe i dont exactly know)

local bodyvelocity = instance.new("BodyVelocity")
bodyvelocity.Parent = Part
bodyvelocity.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
bodyvelocity.Velocity = Vector3.new(5,0,0)

-- this might work 

edit: it is deprecated though…

You could still use vector force and add a drag force.

You can calculate terminal velocity using F = ma.

Where drag force is equal to the movement force 0 = Vectorforce - drag.

can’t use infinite force, yeah its deprecated, LinearVelocity is the same thing

1 Like

I can’t have acceleration- I need instantaneous speed, and that speed to be constant
Ideally I’d use LinearVelocity someway, but its just so unfortunate that it can’t allow other movement to happen alongside it

To say a bit more, like in the first post I used to just modify CFrame directly (simply speed * deltaTime), do you know of anything that can achieve a similar effect

I think you’re looking for BasePart:ApplyImpulse.

Ok sorry y’all solved it myself, just gonna be setting AssemblyLinearVelocity manually

also roblox default humanoid controller has some sorta automatic force damping. pretty inconvenient when your tryna apply certain forces

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