I’ve been making a kicking system in my game, and it works, but it doesn’t really feel very good.
Could anybody help me with this?
impulse = Hrp.CFrame.LookVector * 30
HitHrp:ApplyImpulse(impulse)
local bodyVelocity = Instance.new("BodyVelocity")
bodyVelocity.Velocity = impulse
bodyVelocity.MaxForce = Vector3.new(100000, 100000, 100000)
bodyVelocity.P = 10000
bodyVelocity.Parent = HitHrp
wait(0.1)
bodyVelocity:Destroy()
Afew things you could do to make it feel better is to;
- For dummys, give the player networkOwnership, this makes kicking more responsive and could help with the delay that happens.
- Camera shake or FOV change when kicking. This will make the kick feel like it has more impact to it, you can also do some on screen or lighting effects to make a subtle “impact frame”.
- You can try slowly decreasing the bodyVelocity’s velocity for a friction effect instead of just completely removing it after 0.1, this way they wont come to a instant stop and it would be more of a transition into a stop.
- Also
wait()
is bad practice, you should use task.wait()
its more accurate.
- Another thing, you should use a vectorForce instead of a bodyVelocity, vectorForces are just newer so there may be a difference in how they act
Definitely give the player network ownership aswell as
What you want is a very powerful impulse and a very short lifespan for the BodyVelocity, also I suggest using Debris:AddItem
I Guess Try Use Tween On Velocity Follow A Patern. And Change Pov,… Use DebrisService. Idk