I made this simple script for personal use to quickly scan for available model LOD selections. Arma has pretty useful selectionPosition command which returns coordinates of passed selection in model space. The problem is that if you do not know the exact name it will always return [0,0,0]. Now, you can find out LOD selection names from viewing the actual model in Oxygen provided it is not binarised. Alternatively you can open model .p3d file in notepad and look for text that resembles names of selections.

If model is not binarised you can see where the selections are on the actual model in Oxygen. So both methods are pretty thorough and you can get a lot of names. Yet there is another method, I’d call it quick and dirty method. There is another pretty useful Arma command, intersect, that returns array of model LOD selections intersecting with a set virtual line. The command can look for selections in 4 (maybe more?) different LODs – VIEW, GEOM, FIRE and IFIRE, although the last 2 seem to return identical results. Note how it does not look in memory LOD. selectionPosition on the other hand searches in memory LOD too. So if you want complete selection collection, open model in Oxygen.

vehicle player spawn { "debug_console" callExtension (typeOf _this + "#1110"); _box = boundingBoxReal _this; { _sel = []; _nsel = []; for "_i" from (_box select 0 select 2) to (_box select 1 select 2) step 0.1 do { for "_j" from (_box select 0 select 0) to (_box select 1 select 0) step 0.1 do { { _s = _x select 0; if ( _this selectionPosition _s distance [0,0,0] > 0 ) then { _sel = (_sel - [_s]) + [_s]; } else { _nsel = (_nsel - [_s]) + [_s]; }; } forEach call { _p1 = _this modeltoWorld [_j,_box select 0 select 1,_i]; _p2 = _this modelToWorld [_j,_box select 1 select 1,_i]; drawLine3D [_p1, _p2, [1,0,0,1]]; [_this, _x] intersect [_p1, _p2] }; }; }; "debug_console" callExtension (_x + ": " + str _sel + "#0100"); "debug_console" callExtension (_x + ": " + str _nsel + "#1000"); } forEach ["VIEW","GEOM","FIRE"]; "debug_console" callExtension "A"; };

Here is a simple script for finding selections with intersect command. It is meant to be copypasted in Arma 3’s debug console while in vehicle, to find out selections for that vehicle. Any other object can be used instead of vehicle player, for example nearestBuilding player, to find out building selections. The script uses boundingBoxReal and scans from back to back within the box with an interval of 1o cm. Here is the script in action:

Results are then sent to my debug_console extension. Selections that have position other than [0,0,0] are displayed in green. This is what results look like for the above tank:

selections

Enjoy,
KK