There are existing modules that are quite easy to implement that use raycasts and allow for projectiles you can see. FastCast is probably the best open source one.
It helps to deal with possible issues with .Touched events (which definitely do happen, even with projectiles that aren’t super fast). However, if I recall correctly, it uses raycasts and not shapecast/spherecast so if @LeooAi wanted to make something more accurate, they would probably need to modify the module a bit.
Also, while FastCast is simple and reliable, compared to .Touched events it is more difficult to set up. If reliable touched events don’t need to happen 100% of the time, FastCast is probably not worth the trouble.