I think I found the reason why intel wont drop when not using vanilla units.
In X39_XLib_AmmoCaches.sqf on lines 68 - 77 variable _enemySideTypeOfPrefix is set to starting prefix on class name(for example I_ for RESISTANCE) and later compared with dead units using typeOf. Problem is that not vanilla units are not using this prefix, for example RHS uses rhs.
Quick fix would be to check dead unit group side. I tested only with RHS units so I dont know if it will work for CAF as well.
Old code:
_enemySide = RESISTANCE;
_enemySideTypeOfPrefix = toArray "I_";
switch(_logic getVariable "DropIntelSide") do
{
case 1:{_enemySide = WEST; _enemySideTypeOfPrefix = toArray "B_";};
case 2:{_enemySide = EAST; _enemySideTypeOfPrefix = toArray "O_";};
case 3:{_enemySide = RESISTANCE; _enemySideTypeOfPrefix = toArray "I_";};
case 4:{_enemySide = CIVILIAN; _enemySideTypeOfPrefix = toArray "C_";};
default{_enemySide = RESISTANCE; _enemySideTypeOfPrefix = toArray "I_";};
};
if(_enemySideTypeOfPrefix select 0 == _cArr select 0 && {_enemySideTypeOfPrefix select 1 == _cArr select 1}) then
New:
_enemySide = RESISTANCE;
_enemySideTypeOfPrefix = "GUER";
switch(_logic getVariable "DropIntelSide") do
{
case 1:{_enemySide = WEST; _enemySideTypeOfPrefix = "WEST";};
case 2:{_enemySide = EAST; _enemySideTypeOfPrefix = "EAST";};
case 3:{_enemySide = RESISTANCE; _enemySideTypeOfPrefix = "GUER";};
case 4:{_enemySide = CIVILIAN; _enemySideTypeOfPrefix = "CIV";};
default{_enemySide = RESISTANCE; _enemySideTypeOfPrefix = "GUER";};
};
if(str(side (group _x)) == _enemySideTypeOfPrefix)then
Link to fixed file: https://www.dropbox.com/s/475wzwk9i5jkeia/X39_XLib_AmmoCaches.sqf?dl=0