How does Blue Lock: Rivals shooting system work? I wanna try to replicate it

So Blue Lock: Rivals has a shooting system, basically… just shooting the ball.

But I still don’t know how to make it, is it using LinearVelocity? ( maybe but how to make curves? ), BodyGyro? ( idk ) or :ApplyImpulse()?
Or maybe it uses tweening?

Can someone help pls :frowning:
( or just send some tips )

Try this (normal basic shooting of the ball)

local ball = game.Workspace.Ball -- Your ball object
local velocity = Instance.new("LinearVelocity")
velocity.Parent = ball
velocity.Attachment0 = ball:FindFirstChild("Attachment") 
velocity.MaxForce = math.huge
velocity.VelocityConstraintMode = Enum.VelocityConstraintMode.Vector
velocity.VectorVelocity = ball.CFrame.LookVector * 100