---
name: "BIS_fnc_music"
type: function
status: ok
groups: ["Sound"]
arma3_since: "0.50"
locality: {"argument": null, "effect": null, "server_exec": false}
source: https://community.bistudio.com/wiki/BIS_fnc_music
revid: 351904
updated: 2024-01-23T11:34:10Z
---

# BIS_fnc_music

*Function · Sound · Arma 3 v0.50 · introduced in Arma 2: Operation Arrowhead v1.50*

## Description

Randomly play provided tracks defined in [CfgMusic](../topics/Description.ext.md#cfgmusic) and does a 3 seconds [fade out](../commands/fadeMusic.md). This function takes [accTime](../commands/accTime.md) into account. See also [BIS_fnc_jukebox](../functions/BIS_fnc_jukebox.md).

> [!NOTE]
> The function stores the script handle in the `BIS_fnc_music_spawn` variable that can be used to stop the function; see [#Example 3](../functions/BIS_fnc_music.md#example-3) for its usage example.

## Syntax

```sqf
[tracklist, delay] call BIS_fnc_music
```

**Parameters:**

- `tracklist`: [Array](../topics/Array.md) of [String](../topics/String.md)s - (Optional, default all game musics) a list of [CfgMusic](../topics/Description.ext.md#cfgmusic) classes
- `delay`: [Number](../topics/Number.md) - (Optional, default 3) delay in seconds between tracks

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

## Examples

### Example 1

```sqf
[["myMusic1", "myMusic2"], 1] call BIS_fnc_music; // play the two musics in a random order
```

### Example 2

```sqf
[] call BIS_fnc_music; // play all game tracks randomly
```

### Example 3

```sqf
[] call BIS_fnc_music;
private _startingPos = getPosWorld player;
private _timeLimit = time + 30;
waitUntil { sleep 1; getPosWorld player distance _startingPos > 50 || time > _timeLimit };
if (!isNil "BIS_fnc_music_spawn") then { terminate BIS_fnc_music_spawn };
playMusic "";
```

## See also

[playMusic](../commands/playMusic.md) · [BIS_fnc_jukebox](../functions/BIS_fnc_jukebox.md)

<sub>Source: [BI Community Wiki — BIS fnc music](https://community.bistudio.com/wiki/BIS_fnc_music) (revision 351904).</sub>
