The main problem you had is this:
A trigger happens !. It is not 'running top down' on its dedicated place in the events sheet. It runs when it is triggered by 'the happening' that it is designed to catch.
So, 'on key pressed' runs when the key is pressed. Instantly. When you press the key very fast, that event starts even running before the previous run of that event is completed.
Result: it runs several times in 1 tick, starting to pile up in that one event. Spawning under the same conditions. All on 1 position.
So, i figured, the best option is to sync the 'on key pressed' with the amount of ticks the system can swallow / sec. At a ratio 1 to 1.
To accomplish this, i use a global variable. I set it to 1 when the key is pressed. At the same time i only allow the 'on key pressed' run its actions when that global = 0. So, after the first press, the global = 1, and can not be executed again till that global = 0 again.
If i set that global = 0 in a new event. (in event 7), the 'on key pressed' can therefor only run its actions (and sub events) ONCE every tick. Now everything (creation, physics, position calculations) runs in SYNC.
This is ofcours not perfect, players on faster machine can spawn faster.