---
name: "Remote Control Tutorial"
type: topic
source: https://community.bistudio.com/wiki/Remote_Control_Tutorial
revid: 347150
updated: 2023-09-02T14:58:56Z
---

# Remote Control Tutorial

**Remote Control** allows a player (remote-controller) to take control of another unit (drone, or remote-controlled) that is different from the [local](../commands/local.md) [player](../commands/player.md) unit.

- only a [human player](../commands/isPlayer.md) can remote-control another unit.
- players cannot remote-control other players.
- only one unit can be controlled at the same time; remote control has to be terminated before controlling another unit.
- when a player takes control of a unit that is controlled by another player, the unit is transferred to the new owner and the previous player control is terminated.

The remote control is handled [locally](../commands/local.md), which is why it is important that all arguments for [remoteControl](../commands/remoteControl.md), [remoteControlled](../commands/remoteControlled.md) and [isRemoteControlling](../commands/isRemoteControlling.md) commands are [Local argument](../topics/Multiplayer_Scripting.md#locality) local.
Exception is [remoteControl](../commands/remoteControl.md)'s *target* argument, for which locality [Global argument](../topics/Multiplayer_Scripting.md#locality) does not matter, in which case the unit will be moved to the controlling player machine's locality.
When the player is controlling the unit, the unit is [local](../commands/local.md) to player.

### How To

#### Take Control

Executing [remoteControl](../commands/remoteControl.md) transfers the movement control. In order to take full control, the camera also has to be transferred - using [switchCamera](../commands/switchCamera.md) and ideally *before* [remoteControl](../commands/remoteControl.md) usage;
the point of view and the firing control are then transferred.
In some cases [remoteControl](../commands/remoteControl.md) is enough and the [cameraOn](../commands/cameraOn.md) transfer happens automatically.

```sqf
otherUnit switchCamera "INTERNAL";
player remoteControl otherUnit;
```

#### Obtain Remote Control Information (Arma 3 v2.14)

The [remoteControlled](../commands/remoteControlled.md) command works for both cases and can return either the player controlling the provided UAV or the UAV controlled by the provided player, depending on the argument used.

> [!NOTE]
> Before Arma 3 v2.14 and [remoteControlled](../commands/remoteControlled.md), see [remoteControl](../commands/remoteControl.md) examples for a workaround.

##### Get the Remote Controller

```sqf
private _drone = remoteControlled player;
```

##### Get the Remote Controlled Unit

```sqf
private _player = remoteControlled _drone;
```

#### Ensure Proper Disconnection

Remote Control termination can automatically transfer the camera back to the player but might need to be forced in some cases.

When player controls a unit and the unit dies, the control stays with that unit.
After a short time, the dead unit is removed from its group.
This will make [remoteControlled](../commands/remoteControlled.md) on this unit return [objNull](../commands/objNull.md), but [isRemoteControlling](../commands/isRemoteControlling.md) for the controlling player will still return [true](../commands/true.md) and the player will remain stuck in remote control mode.
To exit this mode, the following can be used:

```sqf
player remoteControl objNull;
switchCamera player; // if needed

// remote control can also be terminated when only the drone is known
objNull remoteControl _drone;
```

### See Also

- [Multiplayer Scripting - Locality](../topics/Multiplayer_Scripting.md#locality)
- [local](../commands/local.md)
- Command Group: Remote Control

<sub>Source: [BI Community Wiki — Remote Control Tutorial](https://community.bistudio.com/wiki/Remote_Control_Tutorial) (revision 347150).</sub>
