Your main obstacle in lag ultimately won't be cycling through all the possible objects, because for that you can limit it to object that are in the area - it's a matter of clever coding for that.
Instead, you'll be confronted with the problem of terrain. Now, maybe I'm skipping ahead here a bit, but at some point, a matrix won't cut it for you as terrain and you'll want to use an object as terrain. When that happens, you will experience the problem of collision with that terrain, and not just with bullets.
Pretty much, just thinking about using polygon collision on a terrain object will bring the pc to a virtual lag-halt. The solution is Intersect Object. You can turn off the Object Collision all together with Intersect Object. Also, it's more flexible and often faster than the included collision commands.
Excluding the terrain problems, a lot of decent models are fairly high poly count as well. If you need an accurate bullet hit/miss system, you will face the same problems as listed for terrain. So, advice is to use Intersect Object and give it a shot (no pun intended

). I suspect you can check hundreds of collision possibilities before most pc's even begin to show any lag.
If you want to use object collision for bullets, just stretch out your "bullet" to be as long (or slightly longer) than it's move speed. Then simply check for collision each time you move your bullet forward. Example: If your bullet move speed is 100 (Move Object bulletID,100), then use something like; Make Object Box bulletID, .5,.5,101. Then just check for collisions (oc=Object Collision (bulletID,0).
Alternatively, moving the object multiple times during each sync happens pretty fast, so let's say you still want your bullet to move 100, but want to prevent it from getting confused if it hits 3 objects at once. The solution is to make the object smaller (maybe 1/10th the size) and move it multiple time (10x).
Make Object Box objectID,.5,.5,10.1
For i = 1 to 10
Move Object bulletID,10
oc=Object Collision(bulletID,0)
if oc>0 then 'do something because an object was hit
Next i
Note that there is no Sync in the loop. It's not needed and will run almost as fast as a single move of 100 and a sync (well 10 x 0.3miliseconds, or something like that)
Quote: "Now who's the basterd?"
"Droids don't rip your arms off when they lose." -H. Solo
REALITY II