---
name: "BIS_fnc_setPitchBank"
type: function
status: ok
groups: ["Object Manipulation"]
arma3_since: "0.50"
locality: {"argument": null, "effect": null, "server_exec": false}
source: https://community.bistudio.com/wiki/BIS_fnc_setPitchBank
revid: 328367
updated: 2022-07-13T16:00:47Z
---

# BIS_fnc_setPitchBank

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

## Description

Rotate an object, giving it the specified pitch and bank, in degrees.

**Pitch** is 0 when the object is level; 90 when pointing straight up; and -90 when pointing straight down.

**Bank** is 0 when level; 90 when the object is rolled to the right, -90 when rolled to the left, and 180 when rolled upside down.

Note that the object's **yaw** can be set with the [setDir](../commands/setDir.md) command, which should be issued before using this function, if required.

The pitch/bank can be leveled out (set to 0) by using the [setDir](../commands/setDir.md) command.

## Syntax

```sqf
[object, pitch, bank] call BIS_fnc_setPitchBank
```

**Parameters:**

- `object`: [Object](../topics/Object.md)
- `pitch`: [Number](../topics/Number.md)
- `bank`: [Number](../topics/Number.md)

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

## Examples

### Example 1

```sqf
[player, 45, -45] call BIS_fnc_setPitchBank;
```

## See also

[BIS_fnc_getPitchBank](../functions/BIS_fnc_getPitchBank.md) · [vectorDir](../commands/vectorDir.md) · [vectorUp](../commands/vectorUp.md) · [setVectorDirAndUp](../commands/setVectorDirAndUp.md)

## Community notes

**ffur2007slx2_5** — 2014-08-04

> [!NOTE]
> See also [BIS_fnc_setObjectRotation](../functions/BIS_fnc_setObjectRotation.md).

(A3 1.24) [attachTo](../commands/attachTo.md) limits [BIS_fnc_setPitchBank](../functions/BIS_fnc_setPitchBank.md), here’s an alternative function to break that limitation (code originated from bapedibupa):

```sqf
_obj attachTo [_logic,[0,0,2]];
[_obj,[120,-78,37]] call fnc_SetPitchBankYaw; // pitch: 120, bank: -78, yaw: 37
```

```sqf
fnc_SetPitchBankYaw = { 
    private ["_object","_rotations","_aroundX","_aroundY","_aroundZ","_dirX","_dirY","_dirZ","_upX","_upY","_upZ","_dir","_up","_dirXTemp",
    "_upXTemp"];
    _object = _this select 0;
    _rotations = _this select 1;
    _aroundX = _rotations select 0;
    _aroundY = _rotations select 1;
    _aroundZ = (360 - (_rotations select 2)) - 360;
    _dirX = 0;
    _dirY = 1;
    _dirZ = 0;
    _upX = 0;
    _upY = 0;
    _upZ = 1;
    if (_aroundX != 0) then { 
        _dirY = cos _aroundX;
        _dirZ = sin _aroundX;
        _upY = -sin _aroundX;
        _upZ = cos _aroundX;
    };
    if (_aroundY != 0) then { 
        _dirX = _dirZ * sin _aroundY;
        _dirZ = _dirZ * cos _aroundY;
        _upX = _upZ * sin _aroundY;
        _upZ = _upZ * cos _aroundY;
    };
    if (_aroundZ != 0) then { 
        _dirXTemp = _dirX;
        _dirX = (_dirXTemp* cos _aroundZ) - (_dirY * sin _aroundZ);
        _dirY = (_dirY * cos _aroundZ) + (_dirXTemp * sin _aroundZ);
        _upXTemp = _upX;
        _upX = (_upXTemp * cos _aroundZ) - (_upY * sin _aroundZ);
        _upY = (_upY * cos _aroundZ) + (_upXTemp * sin _aroundZ);
    };
    _dir = [_dirX,_dirY,_dirZ];
    _up = [_upX,_upY,_upZ];
    _object setVectorDirAndUp [_dir,_up];
};
```

<sub>Source: [BI Community Wiki — BIS fnc setPitchBank](https://community.bistudio.com/wiki/BIS_fnc_setPitchBank) (revision 328367).</sub>
