---
name: "directSay"
type: command
status: ok
groups: ["Radio and Chat", "Sounds"]
arma3_since: "0.50"
locality: {"argument": "global", "effect": "local", "server_exec": false}
source: https://community.bistudio.com/wiki/directSay
revid: 376774
updated: 2025-11-17T00:05:11Z
---

# directSay

*Command · Radio and Chat, Sounds · Arma 3 v0.50 · introduced in Arma 2 v1.00*

Locality: arguments **global** · effect **local**

## 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](../commands/fadeSound.md). The message is defined in CfgRadio in the [description.ext](../topics/Description.ext.md) 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](../commands/remoteExec.md)). Use [clearRadio](../commands/clearRadio.md) to clear chat history

> [!NOTE]
> When transmitting unit gets killed, transmission will be interrupted. However when receiving unit gets killed, the transmission continues to play.

## Syntax

```sqf
unit directSay radioName
```

**Parameters:**

- `unit`: [Object](../topics/Object.md) - unit to transmit
- `radioName`: [String](../topics/String.md) - class name from CfgRadio

**Returns:** [Nothing](../topics/Nothing.md)

## Examples

### Example 1

```sqf
player directSay configName selectRandom ("true" configClasses (configFile >> "CfgRadio"));
```

### Example 2

An equivalent of a ***directChat*** command:

```sqf
[player, "Hello there", 30] call {
    params ["_unit", "_text", "_distance"];
    [_unit, _text] remoteExec ["globalChat", call BIS_fnc_listPlayers select { _x distance _unit < _distance }];
};
```

A function can be made for [localisation](../commands/localize.md) purpose:

```sqf
/* TAG_fnc_globalChat */
params [
    ["_unit", objNull, [objNull]],
    ["_text", "", [""]]
];

_unit globalChat (_text call BIS_fnc_localize);
```

```sqf
// usage
[player, "STR_HelloThere"] remoteExec ["TAG_fnc_globalChat", call BIS_fnc_listPlayers select { _x distance _unit < 30 }];
```

## See also

[sideRadio](../commands/sideRadio.md) · [groupRadio](../commands/groupRadio.md) · [customRadio](../commands/customRadio.md) · [vehicleRadio](../commands/vehicleRadio.md) · [globalRadio](../commands/globalRadio.md) · [commandRadio](../commands/commandRadio.md)

## Community notes

**Killzone_Kid** — 2016-12-03

To transmit user custom sounds (see Multiplayer_Custom_Sounds_Tutorial), prefix the full filename including file extension with #.
For example if there is a custom user sound file called `MySound.ogg`, to play it on the radio use:

```sqf
player directSay "#MySound.ogg";
```

<sub>Source: [BI Community Wiki — directSay](https://community.bistudio.com/wiki/directSay) (revision 376774).</sub>
