I dunno if you have noticed this, but in the editor there is a category “Intel” that has 3 items, 2 folder type objects and 1 photo type. If you place them on the map, you will get “Take Intel” action shown, and if picked up, a notification is shown and a diary record is added. All well and good, those items are quite useless without further tweaking. All 3 are part of ZEUS DLC and I suppose were meant to work in ZEUS mode only. In the normal game, you get empty title and description and Intel is available to all sides.

So I’m going to show you how to make it work in a normal game, since being able to place clues here and there for people to find is actually quite a nice way of enhancing gameplay. So what can you do with vanilla functionality of Intel items? You can specify to which sides Intel is available. This means that listed sides will get action to pick Intel and view it. This also means that all players on listed sides will get notifications about who picked up what Intel and where.

Another nice feature is that you can specify if you want the found Intel to be available to the players on listed sides who joined the game after Intel has already been found. This would make it persistent and encourage teamwork. You can also add optional image to be displayed in diary. The image should be quite large, so it could be a photo evidence for example to accompany photo like type of Intel.

I have made a function that would spawn desired Intel at desired location. The function is for server use. It might work on clients too, but I like to limit these sort of things to server only. So here is the function:

KK_fnc_createIntelObjectServer = { if (!isServer) exitWith {}; params [ ["_intelType", 0, [0]], ["_direction", 0, [0]], ["_positionASL", [0,0,0], [[]], [3]], ["_title", "Title", [""]], ["_description", "Description", [""]], ["_texture", "", [""]], ["_recipients", [west, east, resistance, civilian], [[]]], ["_syncJIP", false, [false]], "_intelTypes", "_intel" ]; _intelTypes = [ "Intel_File1_F", "Intel_File2_F", "Intel_Photos_F" ]; if (_intelType < 0 || _intelType >= count _intelTypes) then { _intelType = floor random count _intelTypes; }; _intel = _intelTypes select _intelType createVehicle [0,0,0]; _intel setDir _direction; _intel setPosASL _positionASL; _intel setVariable ["RscAttributeOwners", _recipients, true]; if (_syncJIP) then { _intel setVariable ["recipients", _recipients, true]; }; if (_texture != "") then { _intel setVariable ["RscAttributeDiaryRecord_texture", _texture, true]; }; [ _intel, "RscAttributeDiaryRecord", [_title, _description, _texture] ] call BIS_fnc_setServerVariable; _intel };

And here is example of how to use it:

[ -1, // type: 0 - file1, 1 - file2, 2 - photo, -1 - random random 360, // direction: 0-360 of Intel object getPosASL playerServer, // position ASL of Intel object "Secret Intel", // title of Intel "GO FUCK YOURSELF!", // description of Intel "\a3\data_f\Flags\flag_armex_co.paa", // optional large image [west], // recipient sides true // sync found Intel for JIP players ] call KK_fnc_createIntelObjectServer;

There are a couple of things I would have happily tweaked about this system. There is no distance check for action on Intel item, so you can pick it up 15m away. Also, when a person picks up Intel, the map opens automatically. The problem is that map opens for every player on the side list too. Something you would definitely hate with passion when you’re aiming or driving or flying.


P.S. The credit goes to Karel Moricky who developed and kept this in secret until today ;)


Karel has already made some improvement to the Intel functionality. So now the map opens only to the player who picked Intel up, for all others simple notification is shown. The distance for Pick Up action is limited to 2 metres and you can now add scripted event handler to the Intel object:

//add photos _intel = [ 2, //photos random 360, getPosASL player, "Secret Intel with EH", "Dzertie peekchers!", "#(rgb,8,8,3)color(0,0,0,0)", //no picture [west], true ] call KK_fnc_createIntelObjectServer; //add scripted EH to trigger on pick up [ _intel, "intelObjectFound", {hint str ["found", _this]} ] call BIS_fnc_addScriptedEventHandler; //hint: ["found",[BIS_fnc_objectVar_obj5,BIS_fnc_objectVar_obj1]]

However there is still a little issue remains, the 200px tall picture in the diary is now obligatory, i.e. you cannot not have it. Even if you set texture to transparent, you will still have 200px tall separation between the entries.