first of all the most efficient way (not causing framerate lag during the createvehicle process) is to create these objects in the missi0on editor in a safe non playing area and name them rather than using createunit etc in a script
then initiating a script, either via an addaction on the helo or to a player, or even a trigger
something like the following placed in the init field of the helicopter
tx_1=this addaction ["Unload helo","unload.sqs"]Place the following in the INIT.sqs
INIT.sqstx_base = [obj1,obj2,obj3,obj4,obj5,obj6]
;;obj1 etc, being the names of the individual objects
and then have the following script
Unload.sqs#INIT
_veh = _this select 0
_action = _this select 2
_count = count tx_base
_pos = getpos _veh
_a = getpos _veh select 0
_b = getpos _veh select 1
_element = 0
_veh removeaction _action
#START
_2
_a = _a + 5
_b = _b + 5
tx_base select _element setpos [a,b]
_element = _element + 1
if(_element > (_count -1))then{exit}else{goto "START"}
the above system counts to see how many objects you need setpossing, eg the contents of the tx_base array
and then it loops, selecting each object in turn and then setpossing them in a slightly different position in relation to the helicopter each time, until they have all been setpoosed
You can test using different spacings
eg
_a= _a + 7
_a = _a - 6
you can keep the _b value constant, therefore spawning them in a straight line with a spacing of 5 between each object
or you can do some fancy maths
the following line setposses 1 object to the rear of a vehicle
maybe you can mess with these settings a bit
_dir = getDir _veh
_pos = [(getPos _veh select 0) + (5 * sin(_dir - 180)),(getPos _veh select 1) + (5 * cos(_dir - 180)),0]
b