'kay so... What I THINK is happening is that your bullet isn't configured to move opposite to its direction value somehow? Try to add the following bit of code to spawnAtDirection:
if directionVector.x ~= 0 then
n.direction = math.sign(directionVector.x)
end
You need to put this section before setting speedX, because setting direction afterwards does some weird stuff to speed I don't quite understand.
If that trick doesn't work... then I'm not sure.









