---
name: "vectorMultiply"
type: command
status: ok
groups: ["Math - Vectors"]
arma3_since: "1.22"
locality: {"argument": null, "effect": null, "server_exec": false}
source: https://community.bistudio.com/wiki/vectorMultiply
revid: 373016
updated: 2025-03-18T15:24:19Z
---

# vectorMultiply

*Command · Math - Vectors · Arma 3 v1.22*

## Description

Multiplies an array of numbers by a scalar or another array of numbers.

> [!NOTE]
> **Since Arma 3 v2.14:** Since Arma 3 v2.14 any count of numbers is valid, if one array is larger than the other, the remaining elements are inserted without change.
>
> Before Arma 3 v2.14, the first argument had to be vector 3D, or Arma 3 v2.00 2D (Which still returned 3D result, with z coordinate defaulted to 0)

## Syntax

```sqf
numArray vectorMultiply multiplier
```

**Parameters:**

- `numArray`: [Array](../topics/Array.md) of [Number](../topics/Number.md)s - an array of any size to be multiplied with the multiplier
- `multiplier`: [Number](../topics/Number.md) or Arma 3 v2.14 [Array](../topics/Array.md) of [Number](../topics/Number.md)s

**Returns:** [Array](../topics/Array.md) of [Number](../topics/Number.md)s

## Examples

### Example 1

```sqf
_newVector = [1,2,3] vectorMultiply 3; // returns [3,6,9]
```

### Example 2

```sqf
[1,2,3,4] vectorMultiply [1,2,3,4];    // [1,4,9,16]
[1,2,3,4] vectorMultiply 2;            // [2,4,6,8]
[1,2,3,4] vectorMultiply [2];        // [2,2,3,4]
[2] vectorMultiply [1,2,3,4];        // [2,2,3,4]
[1,2,3] vectorMultiply [1,2,3,4,5];    // [1,4,9,4,5]
```

### Example 3

```sqf
private _eyePos = eyePos player;
private _eyeDir = getCameraViewDirection player;    // this is a normalized vector, i.e. its magnitude is 1
private _100mFurther = _eyeDir vectorMultiply 100;    // since _eyeDir is normalised (length = 1m), multiplying it by 100 means 100m in that direction
private _lookPos = _eyePos vectorAdd _100mFurther;    // the position where player is looking 100m ahead
```

### Example 4

```sqf
// Override firing to throw the player towards where he's aiming
player allowDamage false;
player addAction ["", {
    player setVelocity ((player weaponDirection "") vectorMultiply 20);
}, "", 0, false, true, "DefaultAction"];
```

## See also

[vectorAdd](../commands/vectorAdd.md) · [vectorDiff](../commands/vectorDiff.md) · [vectorCrossProduct](../commands/vectorCrossProduct.md) · [vectorDotProduct](../commands/vectorDotProduct.md) · [vectorMagnitude](../commands/vectorMagnitude.md) · [matrixMultiply](../commands/matrixMultiply.md)

## Community notes

**ffur2007slx2_5** — 2014-06-28

Arma 3 v1.22 Algorithm:

```sqf
Vector = [x, y, z]; scalar = a;
Result = [(x * a), (y * a), (z * a)];
```

It is recommended to use [vectorMultiply](../commands/vectorMultiply.md) instead of [BIS_fnc_vectorMultiply](../functions/BIS_fnc_vectorMultiply.md).
This is a very useful function, as it can be used with the velocity command to move an object from one position to another. (ie <vector1> to <vector2>) - ensure both positions are found using [getPosASL](../commands/getPosASL.md).

```sqf
_obj setVelocity (((getPosASL _target) vectorDiff (getPosASL _obj)) vectorMultiply 2);
```

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