Local offset and world offset not working as expected

I’m trying to create bullets that move on the surface of a sphere, but the AddActorLocalOffset and AddActorWorldOffset are not working as expected.

Here’s a screenshot of a bullet:

The pink arrow is the actor’s forward vector while the green arrow is the world forward.

In blueprints, I try to move the bullet using AddActorLocalOffset, like this


I’m multiplying the actor’s forward vector by the bullet speed and then by the delta seconds and using the result as delta location.

When doing this, the bullet moves in a direction which is neither along the pink line or the green line.
When using AddActorWorldOffset instead, the bullet moves along the pink line, which is the LOCAL forward, not the world.
I’m quite confused about this and I know that it’s probably hard to figure out from a couple of screenshots.

Any idea?