{"name":"directSay","operator":null,"title":"directSay","type":"command","url":"https://community.bistudio.com/wiki/directSay","revid":376774,"updated":"2025-11-17T00:05:11Z","groups":["Radio and Chat","Sounds"],"status":"ok","replaced_by":[],"games":[{"game":"arma2","name":"Arma 2","version":"1.00"},{"game":"arma2oa","name":"Arma 2: Operation Arrowhead","version":"1.50"},{"game":"tkoh","name":"Take On Helicopters","version":"1.00"},{"game":"arma3","name":"Arma 3","version":"0.50"}],"since":{"game":"arma2","name":"Arma 2","version":"1.00"},"arma3_since":"0.50","branch":null,"locality":{"argument":"global","effect":"local","server_exec":false},"exec":null,"description":"Sends given audio message to the direct channel. Command operates just like xxxxRadio commands, but the sound is played over direct channel and is independent of fadeSound. The message is defined in CfgRadio in the description.ext file or config radio protocol or a kbAddTopic. The transmission will play only on the PC where command was executed. If you need the transmission to play on all computers, you have to execute it globally (see remoteExec). Use clearRadio to clear chat history\n\n> [!NOTE]\n> When transmitting unit gets killed, transmission will be interrupted. However when receiving unit gets killed, the transmission continues to play.","syntaxes":[{"syntax":"unit directSay radioName","since":null,"effect":null,"exec":null,"params":[{"name":"unit","type":"Object","optional":false,"default":null,"description":"unit to transmit","types":["Object"],"since":null,"text":"unit: Object - unit to transmit"},{"name":"radioName","type":"String","optional":false,"default":null,"description":"class name from CfgRadio","types":["String"],"since":null,"text":"radioName: String - class name from CfgRadio"}],"returns":{"type":"Nothing","types":["Nothing"],"description":null,"text":"Nothing"},"form":"binary","operator":null,"left":{"text":"unit","types":["Object"]},"right":{"text":"radioName","types":["String"]}}],"examples":[{"text":"```sqf\nplayer directSay configName selectRandom (\"true\" configClasses (configFile >> \"CfgRadio\"));\n```","code":["player directSay configName selectRandom (\"true\" configClasses (configFile >> \"CfgRadio\"));"]},{"text":"An equivalent of a ***directChat*** command:\n\n```sqf\n[player, \"Hello there\", 30] call {\n    params [\"_unit\", \"_text\", \"_distance\"];\n    [_unit, _text] remoteExec [\"globalChat\", call BIS_fnc_listPlayers select { _x distance _unit < _distance }];\n};\n```\n\nA function can be made for localisation purpose:\n\n```sqf\n/* TAG_fnc_globalChat */\nparams [\n    [\"_unit\", objNull, [objNull]],\n    [\"_text\", \"\", [\"\"]]\n];\n\n_unit globalChat (_text call BIS_fnc_localize);\n```\n\n```sqf\n// usage\n[player, \"STR_HelloThere\"] remoteExec [\"TAG_fnc_globalChat\", call BIS_fnc_listPlayers select { _x distance _unit < 30 }];\n```","code":["[player, \"Hello there\", 30] call {\n\tparams [\"_unit\", \"_text\", \"_distance\"];\n\t[_unit, _text] remoteExec [\"globalChat\", call BIS_fnc_listPlayers select { _x distance _unit < _distance }];\n};","/* TAG_fnc_globalChat */\nparams [\n\t[\"_unit\", objNull, [objNull]],\n\t[\"_text\", \"\", [\"\"]]\n];\n\n_unit globalChat (_text call BIS_fnc_localize);","// usage\n[player, \"STR_HelloThere\"] remoteExec [\"TAG_fnc_globalChat\", call BIS_fnc_listPlayers select { _x distance _unit < 30 }];"]}],"multiplayer":null,"problems":null,"aliases":[],"see_also":["sideRadio","groupRadio","customRadio","vehicleRadio","globalRadio","commandRadio"],"notes":[{"user":"Killzone_Kid","date":"2016-12-03T21:32:00Z","text":"To transmit user custom sounds (see Multiplayer_Custom_Sounds_Tutorial), prefix the full filename including file extension with #.\nFor example if there is a custom user sound file called `MySound.ogg`, to play it on the radio use:\n\n```sqf\nplayer directSay \"#MySound.ogg\";\n```"}],"categories":["Arma 2: New Scripting Commands","Arma 2: Operation Arrowhead: Scripting Commands","Arma 2: Scripting Commands","Arma 3: Scripting Commands","Command Group: Radio and Chat","Command Group: Sounds","Introduced with Arma 2 version 1.00","Scripting Commands","Scripting Commands: Local Effect","Take On Helicopters: Scripting Commands"]}