You could use a detailed torus like the one in your screenshot, but that may slow the game down due to high poly count. You might be able to get away with using flat plains with circles drawn on them if you want to save FPS. But either way, here's the easiest way I can think of.
Just load a bunch of torus objects and have them spawn at regular intervals, moving each of them down each loop. If their Y position is less than 0, then hide them. Make sure to show the torus whenever it spawns. The objects would be recycled, so that after the last torus spawns, the first torus is the next to spawn.
First, you would load a bunch of torus objects-- However many you think you might need to have on the screen at any given time. Maybe you would use a certain range of object numbers for this, such as object numbers 100 to 110.
So here you load the torus objects:
for o = 100 to 110
load object "torus.x",o
next o
Then, you would need to make some sort of countdown timer. You could make it count in seconds (See the
Timer() command), but for simplicity's sake I'm going to make it go down by 1 each loop (this variable is called TorusSpawnTime in the code below). When the timer reaches 0, then the timer should go back up to its original number and a torus should spawn. But which torus? This would need to be kept track of using a variable. This variable would hold the current object number of the torus to spawn, and would increase each time a torus spawned (variable is called TorusNumber below). Once it goes over the maximum number (110 in this case), then it should reset back to the lowest number (100 in this case). To spawn a torus, simply position it to the player object's position and show the object.
So this might go before your loop:
And your loop for spawning the torus objects might look like this:
TorusSpawnTime=TorusSpawnTime-1
if TorusSpawnTime<=0
`Reset the spawn time
TorusSpawnTime=60
`Position the torus to the player and show the torus object
`"Player" is the object number of the player UFO object.
Position Object TorusNumber,Object Position X(Player),Object Position Y(Player),Object Position Z(Player)
show object TorusNumber
`Increase the torus number
TorusNumber=TorusNumber+1
`Reset the torus number if it goes past the maximum
if TorusNumber>110 then TorusNumber=100
endif
Then, each loop, simply move each torus down by some amount (5 in this case). If the torus' Y position is less than 0, then hide the torus.
for o = 100 to 110
`Move the torus down
position object o,object position x(o),object position y(o)-5,object position z(o)
`Hide the torus if it goes below y=0.
if object position y(o)<0 then hide object o
next o
Hope this helps

Guns, cinematics, stealth, items and more!