Issues with the Touched event

What do you want to achieve?
I want the energy ball to have the exploison at the point of collission and then forcefield to have an effect when shot at

What is the issue?
The issue is that the impact effects of the energy ball for some reason don’t show up at the point of collission, instead they show up a bit in the air. On the other hand, the forcefield doesn’t have any effects either sometimes although it gets touched by the orb, although the orb prints that it touched the forcefield. I attached a video of both scenarios.

What solutions have you tried so far?
I couldn’t find this exact thing on the DevForum so I tried changing the BodyVelocity to BodyPosition (I know both are deprecated but I don’t know what could substitute BodyVelocity) but that didn’t work. I also tried to add wait() to maybe fix it but it didn’t work either.

There are a number of ways you could go about doing this, I’m terribly sorry if these are awful/shoddy practices though.

  1. (Assuming the touch event is set up and acted upon from the client) you could bind a touched event on the client to the forcefield, so when the projectile hits, the projectile almost acts as the ‘effect’ that the forcefield has when shot at. Any effect the forcefield needs directly could be done in this too.

  2. You could use a raycast for the projectile to follow, using its forward transform to find the intersection point in the forcefield sphere, getting an accurate point of where the projectile should be landing, then creating/doing the effects of the forcefield from there.

  3. (The shoddy solution, will be really accurate but really intensive), use .RenderStepped or :BindToRenderStep (depending on if you have multiple render steps and want to execute them in a specific order) to constantly get the position of the projectile, using some funky geometry mathematics to detect the collision of the part. Once the condition(s) (will probably be a set of if conditions) have been met, you’ll know that the projectile has collided with the forcefield, so the behavior/effects you want the forcefield to do can be done in there.

Sorry but I didn’t understand number 2 and 3 since I am not the smartest however 1 is out of the picture as these are in the server not client.