---
name: "BIS_fnc_sceneMiscStuff"
type: function
status: ok
groups: ["Scenes"]
arma3_since: "0.50"
locality: {"argument": null, "effect": null, "server_exec": false}
source: https://community.bistudio.com/wiki/BIS_fnc_sceneMiscStuff
revid: 379572
updated: 2026-10-31T14:00:56Z
---

# BIS_fnc_sceneMiscStuff

*Function · Scenes · Arma 3 v0.50 · introduced in Arma 2 v1.00*

Locality: executed with **spawn**

## Description

Prepares the player's surroundings for a scripted scene (cutscene) and restores them afterwards. The function:

1. fades out the music, clears the radio, disables [sentences](../commands/enableSentences.md) and waits until the camera at the player's position is preloaded (at most 6 seconds)
1. creates the game logic `BIS_sceneLogic` (broadcast with [publicVariable](../commands/publicVariable.md)) through which the scene is controlled
1. fades the screen to black (unless *skipInitBlackout*) and shows a loading screen (unless *skipLoadingScreen*)
1. hides the watch, compass, GPS and HUD, keeps the time acceleration at 1 and forces the player's first person view during the whole scene
1. waits for the scene script to set `BIS_sceneLogic`'s variable "_doTheBlackIN" to [true](../commands/true.md), then closes the loading screen, fades in and starts [BIS_fnc_sceneIntruderDetector](../functions/BIS_fnc_sceneIntruderDetector.md) (around the player)
1. waits for the scene script to set `BIS_sceneLogic`'s variable "_doTheEndOfScene" to [true](../commands/true.md), then stops the intruder detection
1. unless *skipFinalBlackout*, fades to black, sets "_endDone" to [true](../commands/true.md), shows a loading screen and waits for "_doTheBlackIN" to be [true](../commands/true.md) again
1. restores the HUD elements and time acceleration, fades in (unless *skipFinalBlackout*) and deletes `BIS_sceneLogic`

The function itself returns after the initial fade out; the rest runs in a spawned script.

If `BIS_debugScene` is [true](../commands/true.md), no blackouts are done and a manual camera is created at *cameraPositions* instead.

> [!IMPORTANT]
> - The function uses `RE` with `rFADEMUSIC` and `rTITLECUT` from the Multiplayer Framework, which must be initialised.
> - The global variable `BIS_debugScene` is read without a default value and must be defined as a [Boolean](../topics/Boolean.md).
> - No other function or script in Arma 3's functions library calls this function.

## Syntax

```sqf
[cameraPositions, skipInitBlackout, skipFinalBlackout, skipWeaponCheck, skipLoadingScreen, excludedObjects] spawn BIS_fnc_sceneMiscStuff
```

**Parameters:**

- `cameraPositions`: [Array](../topics/Array.md) - (Optional) format [cameraTarget, cameraPosition], both [Positions](../topics/Position.md); only used when `BIS_debugScene` is [true](../commands/true.md)
- `skipInitBlackout`: [Boolean](../topics/Boolean.md) - (Optional, default [false](../commands/false.md)) [true](../commands/true.md) to skip the initial fade out
- `skipFinalBlackout`: [Boolean](../topics/Boolean.md) - (Optional, default [false](../commands/false.md)) [true](../commands/true.md) to skip the fade out and fade in at the end of the scene
- `skipWeaponCheck`: [Boolean](../topics/Boolean.md) - (Optional, default [false](../commands/false.md)) stored on `BIS_sceneLogic` as "_noUseCheckTheWeapons"; it has no effect, as the weapon check code is commented out. It is forced to [true](../commands/true.md) if the player's group has fewer than 4 units
- `skipLoadingScreen`: [Boolean](../topics/Boolean.md) - (Optional, default [false](../commands/false.md)) [true](../commands/true.md) to not show a loading screen during the blackouts
- `excludedObjects`: [Array](../topics/Array.md) of [Objects](../topics/Object.md) - (Optional, default []) objects ignored by [BIS_fnc_sceneIntruderDetector](../functions/BIS_fnc_sceneIntruderDetector.md)

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

## Examples

### Example 1

```sqf
BIS_debugScene = false;
[[getPosATL sceneTarget, getPosATL sceneCamera], false, true] spawn BIS_fnc_sceneMiscStuff;
waitUntil { !isNil "BIS_sceneLogic" };

// ... set up the scene while the screen is black ...
BIS_sceneLogic setVariable ["_doTheBlackIN", true];

// ... the scene plays ...
BIS_sceneLogic setVariable ["_doTheEndOfScene", true];
```

## See also

[BIS_fnc_sceneIntruderDetector](../functions/BIS_fnc_sceneIntruderDetector.md) · [BIS_fnc_sceneCheckWeapons](../functions/BIS_fnc_sceneCheckWeapons.md)

<sub>Source: [BI Community Wiki — BIS fnc sceneMiscStuff](https://community.bistudio.com/wiki/BIS_fnc_sceneMiscStuff) (revision 379572).</sub>
