AddImpulse sends actor with weird offset depended on location and rotation

Im working on my first fps game, so sory if this question is too basic. The problem is when i send bullet with addImpulse, bullet may fly with weird offset that changes depended on pawn location and rotation.

code:

FVector target = calculateSpread(bullet->speed);
bullet->bulletMesh->AddImpulse(target );
DrawDebugPoint(GetWorld(), target, 5, FColor::Blue, true, -1, 0); 

Blue dot represents target, it is where i expect my bullet will go, green circles are my bullets.

You need to convert your vectors from world to local. Show a screenshot of calculateSpread if you need help on converting