That's exactly what I was wondering about.
Don't remember where - guess it was late lol - but I found this(haven't tested yet):
Type CollisionPointType
ObjectID as integer
X#
Y#
Z#
nX#
nY#
nZ#
EndType
Global CollisionsPoints as CollisionPointType[20]
function MultipleObjectRayCast(X1#,Y1#,Z1#,X2#,Y2#,Z2#,Radius#)
CollisionCount=0
repeat
ObjectHit=ObjectSphereCast( 0, X1#,Y1#,Z1#,X2#,Y2#,Z2#,Radius#)
if GetObjectRayCastNumHits()>0
inc CollisionCount,1
CollisionsPoints[CollisionCount].ObjectID=GetObjectRayCastHitID(0)
CollisionsPoints[CollisionCount].X#=GetObjectRayCastX(0)
CollisionsPoints[CollisionCount].Y#=GetObjectRayCastY(0)
CollisionsPoints[CollisionCount].Z#=GetObjectRayCastZ(0)
CollisionsPoints[CollisionCount].nX#=GetObjectRayCastNormalX(0)
CollisionsPoints[CollisionCount].nY#=GetObjectRayCastNormalY(0)
CollisionsPoints[CollisionCount].nZ#=GetObjectRayCastNormalZ(0)
SetObjectCollisionMode(GetObjectRayCastHitID(0),0)
endif
until ObjectHit=0
for i=1 to CollisionCount
SetObjectCollisionMode(CollisionsPoints[i].ObjectID,1)
next
endfunction CollisionCount