It sounds to me like you’re problem is that you’re spread calculation is incorrect.
What you should look at doing is getting the ‘forward’ direction of the gun barrel (it may not actually be the forward depending on how you’re setup, so substitute with whatever works - may be camera direction). You should also know the point at which all the pellets fire from (possibly a socket at the end of the barrel).
For a normal, single shot that fires straight you’d just fire from the end of the barrel in the forward direction. The forward vector should be normalised so it describes only the direction out of gun barrel.
For a spread shot you’d want to modify that forward vector (again, making sure it’s normalised) by rotating it through some degrees in whatever axis you are interested in.
You might find this easier to achieve by using the VRandCone method:
/**
* This is a version of VRandCone that handles "squished" cones, i.e. with different angle limits in the Y and Z axes.
* Assumes world Y and Z, although this could be extended to handle arbitrary rotations.
*/
static CORE_API FVector VRandCone(FVector const& Dir, float HorizontalConeHalfAngleRad, float VerticalConeHalfAngleRad);
I assume there is a blueprint node for this too, maybe earch for Random Cone and see what appears (sorry, never done this in blueprints)
To actually see what’s going wrong I strongly recommend taking advantage of the DrawDebugLine ( Blueprints: Draw Debug Line | Unreal Engine Documentation or CPP: http://api.unrealengine.com/INT/API/Runtime/Engine/DrawDebugLine/index.html ). You can actually draw a line from the the end of the gun barrel in the expected direction of the pellets so you can visually see if any of your maths is wrong