What's worked for me with bullets is making about 6 spheres and cycling through them. For example, my bullets will be object numbers 10 to 15. When the key or mouse is pressed to fire bullets, I do something like this:
if mouseclick()=1
inc Bullet_Num, 1
if Bullet_Num = 7 then Bullet_Num = 1
BulletActive(Bullet_Num-1)=1
Bullet_Current = (Bullet_Num - 1) + 10
Bullet_Move = True
show object Bullet_Current
position object Bullet_Current, camera position x(), camera position y(), camera position z()
set object to camera orientation Bullet_Current
bulletpos(Bullet_Num) = 0
play sound 1
endif
rem Moves Bullets
if Bullet_Move = true
for x = 10 to 15
if BulletActive(x-10)=1
move object x, 50
BulletPos(x-9)=BulletPos(x-9)+50
endif
if bulletPos(x-9)>=1200
hide object x
BulletActive(x-10)=0
BulletPos(x-9)=0
endif
next x
endif
I hope you understand what my code is doing. I don't have time to go into detail about how it works.