You could "cheat" and simply make your projectile do the work for you...
1. Bullet hits enemy/player
--- set bullet invisible
--- set instance variable HasHit to "true"
2. Bullet variable "HasHit" is true AND is not overlapping enemy/player
--- create blood splatter (at angle of bullet)
--- destroy bullet
So basically the bullet doesn't destroy itself until it's gone in AND out again from an enemy, creating a blood splatter on entry AND exit if you want.
I'm sure there's some genius mathematical solution to this - but I'm a creative thinker not a mathematician - so that's probably how I'd do it. The bullet is already travelling at a given angle and velocity, so why not use that data and positioning? Faster bullets could create bigger splatters, or whatever... there's a load of ways to use existing data as random variables