What is the best way to cast large projectiles?

Hi all. Over the last few days I’ve been having trouble finding a way to create non laggy large projectiles.

  1. What do you want to achieve?
    I am making a game with magic, which include large projectiles like fireballs etc.

  2. What is the issue? The initial method I used was creating the fireball with body velocities on the server. This isn’t the best because when there are 20~30 people the physics just seems to stop and most projectiles in the game are either really slow or just stand still in mid air for a few seconds.

  3. What solutions have you tried so far? I cannot use raycasting, as it is for fast bullets. I’ve tried a module called Fast Cast, however it is not intended for large objects like fireballs, as the only part where the hit detection counts is on the ray.

Currently, the best method I’ve tried is replicating the projectile on each client with :FireAllClients, while the original client handles whether its hit or not, however I’m not sure how to approach this as I’ve heard using .Touched() isn’t and haven’t found a solution yet.
Is there a better way to create non-laggy large projectiles which feature hit detection?

1 Like

This albeit, might be overkill, but why not just use multiple raycasts? Raycasts are pretty cheap as long as its not crazy range (you can just make the range really short to extend to the bullet size) and boom bam done, you got a working large bullet projetcile that is moving fast while hits accurately (I think).

You can try utilizing this module:

Or just have raycasts pointing in the lookvector of the bullet and have the range be shortened to the same width of the bullet.