if you're using a first person view you can use vec_for_screen to get something directly in front of the player

my.x is relative to the world, not the player.

Afaik only the move and ang_rotate commands are relative to the player. You could move the generator(vec_set - don't forget its angle) to the player and move it out 400 quants right after. If it's set to ignore everything it shouldn't slow the game down much.

Wildcard, would that mess up collisions?