> For the complete documentation index, see [llms.txt](https://ezedits.gitbook.io/ezedits/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ezedits.gitbook.io/ezedits/commands/placement/array-parameters.md).

# Array Parameters

[`//ezarray`](/ezedits/commands/placement.md#overview) and [`//ezbrush array`](/ezedits/commands/placement.md#overview) place multiple shapes along a path. The following parameters apply to these commands:

***

### Distance: <mark style="color:orange;">`-g <gap>`</mark> <a href="#distance-g" id="distance-g"></a>

Control how close all placements are by defining the gap distance between each placement.

Defaults to `0`. Meaning, in a straight line each placement comes right after another with no gap.

Positive values will increase that distance and place fewer structures in total.\
Negative values cause the placements to overlap.

<details>

<summary><mark style="color:blue;">Examples</mark></summary>

` //ezarray Clipboard`` `` `**`-g <gap>`** (with the clipboard being a default vanilla oak tree for no particular reason)

` //ezar Cl`` `` `**`-g 0`** : (default value, placements are right next to each other)

<img src="/files/GapUtQfaSVrLQcJJPfu4" alt="" data-size="original">

` //ezar Cl`` `` `**`-g 10`** : (placements are now further apart)

<img src="/files/shEOkoBDT5Y8CPmui1wg" alt="" data-size="original">

` //ezar Cl`` `` `**`-g -3`** (negative values cause placements to overlap)

<img src="/files/JiXljvEmtuV9lBlNc5vI" alt="" data-size="original">

</details>

***

### Max Vertical Offset: <mark style="color:orange;">`-y <maxOffset>`</mark> <a href="#max-vertical-offset-y" id="max-vertical-offset-y"></a>

Enables you to limit the vertical distance between neighbouring placement positions by shifting the placement position vertically.

Specifically made to generate Jump'n'Runs. For example, by doing `-y 1`, each placement position is never higher than 1 block than the previous position. This is only an upper limit in one direction though.

<sub>(Introduced in 0.14.0)</sub>

<details>

<summary><mark style="color:blue;">Examples</mark></summary>

`//ezar Cl -g 1` vs `//ezar Cl -g 1` **`-y 1`**

![](/files/YFJEVyz9JvZdjX0Z5WF6)

</details>

***

### Progressive Scaling: <mark style="color:orange;">`-q <radii>`</mark> <a href="#progressive-scaling-q" id="progressive-scaling-q"></a>

Similar to [Random Scaling](/ezedits/commands/placement/placement-parameters.md#random-scaling-o), this modifier allows scaling of the placements using relative values, e.g. 1 keeps the scale as is, 2 doubles the size, and 0.5 halfs the size.

The scaling factors are defined as a progression along the spline. This means you may specify as many comma-separated scaling factors as you like, and the spline path will smoothly interpolate through all entries.

The syntax is the same as in //ezspline: [Common Parameters](/ezedits/commands/spline/common-parameters.md#radii)

<details>

<summary><mark style="color:blue;">Examples</mark></summary>

` //ezarray Clipboard`` `` `**`-q <radii>`**

` //ezar Cl`` `` `**`-q 1`**

(default value, no scaling applied)

<img src="/files/GapUtQfaSVrLQcJJPfu4" alt="" data-size="original">

` //ezar Cl`` `` `**`-q 0.3,3`**

(placements are down-scaled by a factor of 0.3 at the beginning of the path and slowly get bigger up to triple their original size towards the end of the spline path)

<img src="/files/tBecRo3xKvF8M2WygBVo" alt="" data-size="original">

` //ezar Cl`` `` `**`-q 1.5,0.5,5.0,2.0,0.2`**

(Tree is being scaled progressively through all given values throughout the spline path)

<img src="/files/LhGiFKyoPVow7nyjmhi2" alt="" data-size="original">

` //ezar Cl`` `` `**`-q 1.5,0.5,5.0,2.0,0.2 -o 0.7,1.3`**

(Combining progressive scaling -q with [random scaling](/ezedits/commands/placement/placement-parameters.md#random-scaling-o) -o)

<img src="/files/kpRAT4XVMRKN4bWjiR9t" alt="" data-size="original">

</details>

***

### Path Parameters: <mark style="color:orange;">`-p <kbParameters>`</mark> <a href="#path-parameters-p" id="path-parameters-p"></a>

Modifies how the path is created from the input (convex selection) points.

See //ezspline documentation: [Common Parameters](/ezedits/commands/spline/common-parameters.md#kb-parameters)

***

### Spline orientation: <mark style="color:orange;">`-n <normalMode>`</mark> <a href="#spline-orientation-n" id="spline-orientation-n"></a>

Modifies how the ORTHOGONAL option for the `<primary>` and `<secondary>` arguments behave.

See //ezspline documentation: [Common Parameters](/ezedits/commands/spline/common-parameters.md#normal-mode)

<details>

<summary><mark style="color:blue;">Examples</mark></summary>

`//ezarray Clipboard Orthogonal Constant`**`-n <normalMode>`**

` //ezar Cl O C`` `` `**`-n CONSISTENT`**

(default value)

<img src="/files/6LhFTvtOtjcQ1wMCpBBy" alt="" data-size="original">

` //ezar Cl O C`` `` `**`-n UPRIGHT`**

(placements are not as tilted anymore)

<img src="/files/r6Bcmn4Iey0yuF6eo1QT" alt="" data-size="original">

</details>

***

### Snap placements to surfaces: <mark style="color:orange;">`-b`</mark> <a href="#snap-to-surfaces-b" id="snap-to-surfaces-b"></a>

By default, structures are placed along the spline path that's induced by the input (convex selection) points. This flag moves the placement positions to the nearest surface block instead, in case the position on the path is in midair or submerged in blocks.

{% hint style="info" %}
By default the maximum search range is 96 blocks. The maximum search range can be set in the config. If no surface block is found within that range, the original position will be used instead.
{% endhint %}

<details>

<summary><mark style="color:blue;">Example</mark></summary>

GIF comparing

`//ezarray Clipboard` (placements are placed along path)

` //ezarray Clipboard`` `` `**`-b`** (placements positions moved to nearest surface block)

<img src="/files/09tt9enz33cg9vrbTHzw" alt="" data-size="original">

</details>

***
