Blade Ball Ball Physics

I’m hoping you mean tweening under the guidelines of lerping, and not using TweenService, since tweenservice has performance issues when used too frequently (eg if you are tweening a ball thats target is constantly moving) If I where you I would avoid utilising.

They probably use CustomPhysicalProperties to make the ball lighter, or make it completely defy gravity by enabling the Massless property.

Then, I think they just use the AssemblyLinearVelocity property to move the part, so this is all physics-based.

If it’s just teleportation, they definitely used random positioning and then tweening to that position. Who knows?

We already know that’s not happening,

I didn’t use the Δ symbol in my actual code, only in the explanation post.

1 Like

That fixed the crashing, thanks.

this is way overcomplicated. I remade their ball system and I can tell you there is no math to this extent involved or Bezier curves at all. If you wanna see mine check my posts.

the post


What did you use then? Floatcurves?

can i get the code of your system if so ?
or could you tell us how have you done it ?

Currently got my own really rough copy of it. Made it with prompting chat gpt for a few minutes.
There are a few notable things that I would need to change such as how the direction is interpolated, organizing it, and currently its all handled on the client but I have a few ideas as to how I would approach making it server sided and client rendered.

In essence if you have have made a bullet system its sort of the same, it uses a renderstepped to move the ball towards the direction of the target player, when the player parrys the ball it snaps and goes the direction the player is looking and interpolates the direction towards the target giving it that nice curved effect.


is it running on the client or the server?
also try a higher speed

As i stated, yes its all handled on the client right now.


Can you send the code or how the script works?

1 Like

This is how we did it, wow good job man

The ball does indeed use a VectorForce to negate gravity, by just setting the Y value to part.Mass * workspace.Gravity and isn’t anchored. It uses a CollisionGroup to phase through objects, either sharing a collisiongroup with the player and raycast, or using a hitbox. The (other object) LineForce it uses updates on a dependancy loop, and will do a few calculations, ex. distance & hits.


My friend @Eternity_Devs made a module for this which lets you easily remake the physics. All blade ball uses are vector3curves to make the ball move. You should check out his module he’s constantly updating it! Its called BallService.

1 Like

It uses tweens instead of velocoty

what does it use to move the ball?

nah the scripter who worked on the game says it uses vector3curves

I dont see how that is possible since it is constantly following the player and you would have to constantly update the vector3curve and doing so causes a specific time in the curve to return a different position. I’ve looked at the BallService module and its really wonky and doesn’t seem to have anywhere near the same physics as Blade Ball.

1 Like

Another option Which I don’t think a lot of people have considered is ‘bezier curves’, which would explain how the ball is able to curve etc, and then they just do some form of linear interpolation