Your saving each and every file to the same filename, so of course it will only be one file
Here is corrected code.
sync on:sync rate 85
dim array(20)
set camera range 1,20000
set camera fov 45
for x = 1 to 20
array(x)=x
load object "test2.x",x
position object x,1600*rnd(15),0,1600*rnd(15)
scale object x,1600,3200,1600
next x
randomize timer()
do
if spacekey()=1
for x = 1 to 20
array(x)=x
Save Object "test12_"+str$(x)+"_.dbo",x+array(x)
next x
endif
MOVE CAMERA (UPKEY() - DOWNKEY())*2.5
ROTATE CAMERA WRAPVALUE(CAMERA ANGLE X()+(MOUSEMOVEY()*1.1)), WRAPVALUE(CAMERA ANGLE Y()+(MOUSEMOVEX()*1.1)),0
text 200,200,"polys : "+str$(STATISTIC(1))
text 400,200,"fps : "+str$(screen fps())
sync
loop
-Mansoor Siddiquie