Maybe from the speed of the bullet it’s clipping through parts,
Are you using BodyVelocity or Raycasting?
If you’re using BodyVelocty, try to save its last position every half a second or lower(By using heartbeat or stepped) and raycast the last position and it’s current position, if it hits something, then explode otherwise continue
while wait() do
for _, v in pairs(game.Workspace:GetDescendants()) do
if v:IsA("Part") and (v.Position - parent.Position).magnitude <= 5 then
explode()
end
end
end
I was thinking about that but I use .Velocity to propel the bullet, meaning the bullet drop is controlled by gravity so the shell doesn’t face the way its going, if you could tell me how I can make it do that I’d appreciate it. Is there a way I can send a raycast in every direction?
If you mean getting the direction of where the shell is facing you need to do this:
Using the bullet’s CFrame value, LookVector, which is the forward-direction component of the CFrame’s orientation. You would do the main part of the bullet (make sure the front face of the part is facing in the direction you want the bullet to travel in, you can do this by using a decal to see where the front is) .LookVector * TotalDistance (which I would put as 100000).
Else if you are talking about the how to make the bullet face in the direction its going:
You can use the CFrame.new function like this CFrame.new(Bullet.Position, Destination.Position), this should make the bullet face the position entered as the second parameter.