---
name: "BIS_fnc_respawnManager"
type: function
status: ok
groups: ["Respawn"]
arma3_since: "0.50"
locality: {"argument": null, "effect": null, "server_exec": false}
source: https://community.bistudio.com/wiki/BIS_fnc_respawnManager
revid: 379569
updated: 2026-10-31T13:57:22Z
---

# BIS_fnc_respawnManager

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

## Description

Respawn manager with checkpoints. Checkpoints are markers named "BIS_checkpointnr1", "BIS_checkpointnr2", ... (numbered without gaps); at least one must exist when the manager is initialised.
"Init" creates the global logic *BIS_RespawnManager* that holds the manager's data and adds "Killed" and "Respawn" event handlers to the given units:

- when a unit dies, the checkpoint nearest to it is stored for it;
- when it respawns, the new unit gets the old unit's weapons and magazines. If a vehicle named *<unitName>_Vehicle* exists, it is respawned, moved to a safe position near the stored checkpoint (see [BIS_fnc_findSafePos](../functions/BIS_fnc_findSafePos.md)) and its crew is restored.

Every mode except "Init" returns [false](../commands/false.md) while the manager is not initialised. The function is meant to be called by mission scripts; no Arma 3 script calls it.

> [!IMPORTANT]
> - This is legacy Arma 2 code: the event handlers are added through the Arma 2 Multiplayer Framework function *RE*, which is not part of Arma 3's Functions Library.
> - Parameters are passed on by [format](../commands/format.md) and [compile](../commands/compile.md): units must therefore have a [variable name](../commands/vehicleVarName.md).

## Syntax

### Syntax 1

```sqf
["Init", [respawners, safePositions], markerVisibility] call BIS_fnc_respawnManager
```

**Parameters:**

- `"Init"`: [String](../topics/String.md) - initialises the manager
- `respawners`: [Array](../topics/Array.md) of [Objects](../topics/Object.md) - respawning units
- `safePositions`: [Array](../topics/Array.md) of [Positions](../topics/Position.md) - one position per unit, used when no safe position is found for its vehicle; when empty, [8179.12, 1881.57, 0] is used for every unit
- `markerVisibility`: [String](../topics/String.md) - (Optional, default "") "", "true" or "false"; every value currently results in checkpoint marker type "EMPTY"

**Returns:** [Boolean](../topics/Boolean.md) - [false](../commands/false.md) if the manager was already initialised, otherwise [true](../commands/true.md)

### Syntax 2

```sqf
["Destroy"] call BIS_fnc_respawnManager
```

**Parameters:**

- `"Destroy"`: [String](../topics/String.md) - deletes the manager logic

**Returns:** [Boolean](../topics/Boolean.md) - [true](../commands/true.md)

### Syntax 3

```sqf
["AddCheckpoint", position, markerName] call BIS_fnc_respawnManager
```

**Parameters:**

- `"AddCheckpoint"`: [String](../topics/String.md) - creates a checkpoint marker and adds it to the list
- `position`: [Array](../topics/Array.md) format [Position](../topics/Position.md) - checkpoint position
- `markerName`: [String](../topics/String.md) - (Optional, default "") marker name; if empty, the next free "BIS_checkpointnr*N*" name is used

**Returns:** [Boolean](../topics/Boolean.md) - [true](../commands/true.md)

### Syntax 4

```sqf
["RemoveCheckpoint", markerName] call BIS_fnc_respawnManager
```

**Parameters:**

- `"RemoveCheckpoint"`: [String](../topics/String.md) - removes a checkpoint from the list and deletes its marker
- `markerName`: [String](../topics/String.md) - checkpoint marker name

**Returns:** [Boolean](../topics/Boolean.md) - [true](../commands/true.md) if removed, [false](../commands/false.md) if the marker is not a checkpoint or it is the last one

### Syntax 5

```sqf
["GetNearestCheckpoint", unit] call BIS_fnc_respawnManager
```

**Parameters:**

- `"GetNearestCheckpoint"`: [String](../topics/String.md) - returns the checkpoint stored for a unit
- `unit`: [Object](../topics/Object.md) - one of the respawning units

**Returns:** [String](../topics/String.md) - marker name of the checkpoint stored for the unit, or the first checkpoint if none is stored

## Examples

### Example 1

```sqf
// markers "BIS_checkpointnr1", "BIS_checkpointnr2" are placed in the mission
["Init", [[BIS_player1, BIS_player2], []]] call BIS_fnc_respawnManager;
["AddCheckpoint", getMarkerPos "BIS_village", "BIS_checkpointVillage"] call BIS_fnc_respawnManager;
["RemoveCheckpoint", "BIS_checkpointnr1"] call BIS_fnc_respawnManager;
```

## See also

[Arma 3: Respawn](../topics/Respawn.md) · [BIS_fnc_addRespawnPosition](../functions/BIS_fnc_addRespawnPosition.md) · [BIS_fnc_findSafePos](../functions/BIS_fnc_findSafePos.md)

<sub>Source: [BI Community Wiki — BIS fnc respawnManager](https://community.bistudio.com/wiki/BIS_fnc_respawnManager) (revision 379569).</sub>
