---
name: "remoteControl"
type: command
status: ok
groups: ["Remote Control"]
arma3_since: "0.50"
locality: {"argument": "local", "effect": "global", "server_exec": false}
source: https://community.bistudio.com/wiki/remoteControl
revid: 373364
updated: 2025-04-30T13:23:33Z
---

# remoteControl

*Command · Remote Control · Arma 3 v0.50 · introduced in Arma 2 v1.00*

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

## Description

Switches on remote control of the unit. The command was Global Argument prior to Arma 3 v2.14). For more info see Remote Control Tutorial.

If the drone is remote it will get transferred to the player's PC.

> [!NOTE]
> See also [remoteControlled](../commands/remoteControlled.md), [isRemoteControlling](../commands/isRemoteControlling.md), and [#Example 4](../commands/remoteControl.md#example-4) for a getter workaround for earlier game versions.

> [!WARNING]
> Always use [switchCamera](../commands/switchCamera.md) first (when needed) before using [remoteControl](../commands/remoteControl.md) as doing it after may lead to unpredictable results.

## Syntax

```sqf
who remoteControl whom
```

**Parameters:**

- `who`: [Object](../topics/Object.md) - controlling unit
- `whom`: [Object](../topics/Object.md) - controlled unit

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

## Examples

### Example 1

Set player remote control of driver:

```sqf
driver UAV switchCamera "Internal"; // switchCamera required
player remoteControl driver UAV;
// sometimes switchCamera is not needed
player remoteControl driver UAV;
```

### Example 2

Return control to player: 

> [!IMPORTANT]
> This method will not work if unit is dead, use the method in Example 3 instead

```sqf
objNull remoteControl driver UAV;
```

### Example 3

Arma 3 v2.14 Return control to player:

```sqf
player remoteControl objNull;
```

### Example 4

A dirty hack to return controlling unit because of the absence of dedicated getter:

```sqf
SQF_fnc_remoteControlledBy =
{
    params ["_obj"];
    if (!isNull objectParent _obj) exitWith { UAVControl _obj select 0 };
    private _res = [objNull];
    isNil
    {
        private _pos = getPosWorld _obj;
        private _dirUp = [vectorDirVisual _obj, vectorUpVisual _obj];
        private _anim = animationState _obj;
        private _dummy = "PaperCar" createVehicleLocal [0,0,0];
        _obj moveInAny _dummy;
        _res = uavControl _dummy;
        _obj setPosWorld _pos;
        _obj setVectorDirAndUp _dirUp;
        _obj switchMove _anim;
        deleteVehicle _dummy;
    };
    _res select 0
};
```

Usage (could be scheduled or unscheduled):

```sqf
0 spawn
{
    player remoteControl bob;
    systemChat str (bob call SQF_fnc_remoteControlledBy); // B Alpha 1-1:1 (KK)
    objNull remoteControl bob;
    systemChat str (bob call SQF_fnc_remoteControlledBy); // <NULL-object>
};
```

## See also

[switchCamera](../commands/switchCamera.md) · [selectPlayer](../commands/selectPlayer.md) · [UAVControl](../commands/UAVControl.md) · [remoteControlled](../commands/remoteControlled.md) · [isRemoteControlling](../commands/isRemoteControlling.md) · [cameraOn](../commands/cameraOn.md) · [focusOn](../commands/focusOn.md)

## Community notes

**TeRp** — 2009-06-04

You must use [switchCamera](../commands/switchCamera.md) in order to remote control a unit.

You can only [remoteControl](../commands/remoteControl.md) characters, e.g. if yo want to remote control a car, you have to add a driver and use

```sqf
player remoteControl driver someVehicle
```

---

**Lou Montana** — 2010-01-25

**Arma 2 v1.05**:
- You can remoteControl multiple units at the same time.
- It is not needed to [switchCamera](../commands/switchCamera.md) to the unit to be able to control it - it is needed to be able to fire with.
- The switchCamera is fixed : the player can't change internal/external/optics view.
- Do not think about it like a [selectPlayer](../commands/selectPlayer.md): it is used to give the control to **the vehicle role the unit is in**.
- [switchCamera](../commands/switchCamera.md) to the **vehicle** the unit is in; the camera will go depending the role you are remoteControlling.
- The AI driver won't follow your vehicle move orders.
- If the player dies, the death screen will appear, not automatically turning back to the player.
- If you want to stop the remote control, use objNull as remote controller.
- Example:

```sqf
player remoteControl driver jeep1;        // will remoteControl it, you still will have full control of the player
jeep1 switchCamera "internal";            // fix the camera to the vehicle and not to driver jeep1!
waitUntil { !(alive jeep1) || !(alive player) };
objNull remoteControl driver jeep1;        // removes the remoteControlling
player switchCamera "internal";            // returns to the player
```

---

**thedawnofallwars** — 2020-09-17

Far and away the easiest way to check the unit remote controlling an AI through Zeus' Remote Control module is using BIS_fnc_moduleRemoteControl_owner
This will return the unit in question which you can then run name on to find the controller's name.

```sqf
private _name = "-";
_who = _unit getVariable ["BIS_fnc_moduleRemoteControl_owner", objNull];
if (!isNull _who) then
{
    _name = name _who;
};
```

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