# Placement

## Overview

ezEdits provides multiple ways to quickly and precisely place clipboards, schematics, and expression-based shapes, which we refer to as 'structures'.

The relevant commands and brushes (introduced in version 0.12.0) are:

<table data-card-size="large" data-view="cards" data-full-width="false"><thead><tr><th>Command / Brush</th><th>Abbreviation</th><th>Description</th><th>Syntax</th><th>Parameters</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><mark style="color:orange;"><strong><code>//ezplace</code></strong></mark></td><td><mark style="color:orange;"><strong><code>//ezpl</code></strong></mark></td><td>Places a <strong>single</strong> structure at the <strong>player's position.</strong></td><td><code>//ezplace</code> <a href="/pages/28F2dPeECEJIm6xBEN48"><code>&#x3C;structure></code></a> <a href="/pages/xdfbYYjbTRktIbUoiO3g"><code>[&#x3C;primary>][&#x3C;secondary>]</code></a></td><td>Accepts <a data-mention href="/pages/tfXMuQhN79K0ZiqWiywS">/pages/tfXMuQhN79K0ZiqWiywS</a>.</td><td></td></tr><tr><td><mark style="color:orange;"><strong><code>//ezbrush place</code></strong></mark></td><td><mark style="color:orange;"><strong><code>//ezbr pl</code></strong></mark></td><td>Brush that places a <strong>single</strong> structure at each <strong>brush click's target</strong>.</td><td><code>//ezbrush place</code> <a href="/pages/28F2dPeECEJIm6xBEN48"><code>&#x3C;structure></code></a> <a href="/pages/xdfbYYjbTRktIbUoiO3g"><code>[&#x3C;primary>] [&#x3C;secondary>]</code></a></td><td>Accepts <a data-mention href="/pages/tfXMuQhN79K0ZiqWiywS">/pages/tfXMuQhN79K0ZiqWiywS</a>.</td><td></td></tr><tr><td><mark style="color:orange;"><strong><code>//ezscatter</code></strong></mark></td><td><mark style="color:orange;"><strong><code>//ezsc</code></strong></mark></td><td>Places <strong>multiple</strong> structures within a <strong>selected region</strong>.</td><td><code>//ezscatter</code><a href="/pages/28F2dPeECEJIm6xBEN48"><code>&#x3C;structure></code></a> <a href="/pages/xdfbYYjbTRktIbUoiO3g"><code>[&#x3C;primary>] [&#x3C;secondary>]</code></a></td><td>Accepts <a data-mention href="/pages/tfXMuQhN79K0ZiqWiywS">/pages/tfXMuQhN79K0ZiqWiywS</a> and <a data-mention href="/pages/AYiYj3gmvZxhyhGxweaU">/pages/AYiYj3gmvZxhyhGxweaU</a>.</td><td></td></tr><tr><td><mark style="color:orange;"><strong><code>//ezbrush scatter</code></strong></mark></td><td><mark style="color:orange;"><strong><code>//ezbr sc</code></strong></mark></td><td>Brush that places <strong>multiple</strong> structures in the area of each <strong>brush click's target</strong>.</td><td><code>//ezbrush scatter</code><a href="/pages/28F2dPeECEJIm6xBEN48"><code>&#x3C;structure></code></a> <a href="/pages/xdfbYYjbTRktIbUoiO3g"><code>[&#x3C;primary>] [&#x3C;secondary>]</code></a></td><td>Accepts <a data-mention href="/pages/tfXMuQhN79K0ZiqWiywS">/pages/tfXMuQhN79K0ZiqWiywS</a> and <a data-mention href="/pages/AYiYj3gmvZxhyhGxweaU">/pages/AYiYj3gmvZxhyhGxweaU</a>.</td><td></td></tr><tr><td><mark style="color:orange;"><strong><code>//ezarray</code></strong></mark></td><td><mark style="color:orange;"><strong><code>//ezar</code></strong></mark></td><td>Places <strong>multiple</strong> structures sequentially <strong>along a path</strong>.</td><td><code>//ezarray</code><a href="/pages/28F2dPeECEJIm6xBEN48"><code>&#x3C;structure></code></a> <a href="/pages/xdfbYYjbTRktIbUoiO3g"><code>[&#x3C;primary>][&#x3C;secondary>]</code></a></td><td>Accepts <a data-mention href="/pages/tfXMuQhN79K0ZiqWiywS">/pages/tfXMuQhN79K0ZiqWiywS</a> and <a data-mention href="/pages/zPCUzXPKcOp1benjuWjX">/pages/zPCUzXPKcOp1benjuWjX</a>.</td><td></td></tr><tr><td><mark style="color:orange;"><strong><code>//ezbrush array</code></strong></mark></td><td><mark style="color:orange;"><strong><code>//ezbr ar</code></strong></mark></td><td>Brush that places <strong>multiple</strong> structures along a <strong>brush stroke</strong>.</td><td><code>//ezbrush array</code><a href="/pages/28F2dPeECEJIm6xBEN48"><code>&#x3C;structure></code></a> <a href="/pages/xdfbYYjbTRktIbUoiO3g"><code>[&#x3C;primary>] [&#x3C;secondary>]</code></a></td><td>Accepts <a data-mention href="/pages/tfXMuQhN79K0ZiqWiywS">/pages/tfXMuQhN79K0ZiqWiywS</a> and <a data-mention href="/pages/zPCUzXPKcOp1benjuWjX">/pages/zPCUzXPKcOp1benjuWjX</a>.</td><td></td></tr></tbody></table>

All six commands are based on the same underlying placement method. As a result, all six commands share the same syntax and parameters.

{% hint style="info" %}
For completeness, one can also embed a structure or an array of structures into a shaped spline with the ezspline subcommand `//ezspline structure` (`//ezsp structure`). However, the structures are not "placed" as much as they are embedded into the spline path, meaning that the [alignment settings](/ezedits/commands/placement/primary+secondary-alignment.md) and the [placement parameters](/ezedits/commands/placement/placement-parameters.md) do not apply to that command. Which is why it is documented on the [splines page](/ezedits/commands/spline.md) instead.
{% endhint %}

***

## Subpage structure

This Placement wiki has multiple subpages. Below you find an overview of the subpages.

{% hint style="info" %}
We suggest reading the [**Primary+Secondary Alignment**](/ezedits/commands/placement/primary+secondary-alignment.md) page more carefully, as it covers one of the fundamental concepts of the tools. The remaining chapters can be treated as reference materials, useful for specific tasks or to delve deeper into the tool's capabilities.
{% endhint %}

* [**Available Structures**](/ezedits/commands/placement/available-structures.md)
  * Covers the [`<structure>`](/ezedits/commands/placement/available-structures.md) parameter (necessary for place/scatter/array (and ezspline structure)).
* [**Primary+Secondary Alignment**](/ezedits/commands/placement/primary+secondary-alignment.md)
  * Covers the [`[<primary>] [<secondary>]`](/ezedits/commands/placement/primary+secondary-alignment.md) parameters (available for place/scatter/array) and the accompanying flags:
    * [`[-j <snapDirections>]`](/ezedits/commands/placement/primary+secondary-alignment.md#snap-to-angles-j)
    * [`[-x]`](/ezedits/commands/placement/primary+secondary-alignment.md#perturb-secondary-x)
* [**Placement Parameters**](/ezedits/commands/placement/placement-parameters.md)
  * Covers the following flags (available for place/scatter/array):
    * [`[-s <dimensions>]`](/ezedits/commands/placement/placement-parameters.md#dimensions-s)
    * [`[-o <sizeMultiplierRange>]`](/ezedits/commands/placement/placement-parameters.md#random-scaling-o)
    * [`[-c <orientationAngle>] [-k <orientationAxis>]`](/ezedits/commands/placement/placement-parameters.md#orientation-c-k)
    * [`[-f <randomFlipsAxes>]`](/ezedits/commands/placement/placement-parameters.md#random-flips-f)
    * [`[-r <randomRotationAxis>]`](/ezedits/commands/placement/placement-parameters.md#random-rotations-r)
    * [`[-a]`](/ezedits/commands/placement/placement-parameters.md#place-air-a)
* [**Scatter Parameters**](/ezedits/commands/placement/scatter-parameters.md)
  * Covers the following flags (only available for scatter):
    * [`[-h <region>]`](/ezedits/commands/placement/scatter-parameters.md#scatter-region-h)
    * [`[-d <filterDirections>] [-e <filterThreshold>]`](/ezedits/commands/placement/scatter-parameters.md#directional-filter-d-e)
    * [`[-m <maskFilter>]`](/ezedits/commands/placement/scatter-parameters.md#mask-filter-m)
    * [`[-n <density>]`](/ezedits/commands/placement/scatter-parameters.md#density-n)
    * [`[-i <seed>]`](/ezedits/commands/placement/scatter-parameters.md#distribution-seed-i)
    * [`[-u <iterations>]`](/ezedits/commands/placement/scatter-parameters.md#uniformity-u)
    * [`[-l <coverPattern>]`](/ezedits/commands/placement/scatter-parameters.md#mask-cover-pattern-l)
    * [`[-t]`](/ezedits/commands/placement/scatter-parameters.md#trim-outside-selection-t)
* [**Array Parameters**](/ezedits/commands/placement/array-parameters.md)
  * Covers the following flags (only available for array):
    * [`[-g <gap>]`](/ezedits/commands/placement/array-parameters.md#distance-g)
    * [`[-y <maxOffset>]`](/ezedits/commands/placement/array-parameters.md#max-vertical-offset-y)
    * [`[-q <radiiMultiplier>]`](/ezedits/commands/placement/array-parameters.md#progressive-scaling-q)
    * [`[-p <kbParameters>]`](/ezedits/commands/placement/array-parameters.md#path-parameters-p)
    * [`[-n <normalMode>]`](/ezedits/commands/placement/array-parameters.md#spline-orientation-n)
    * [`[-b]`](/ezedits/commands/placement/array-parameters.md#snap-to-surfaces-b)

### Additional Parameters

* Available for place/scatter/array:
  * [`[-w <smoothblocks>]`](/ezedits/smoothblocks/smoothblocks.md)

<details>

<summary>Here are the <em>same</em> flags <em>again</em>, but in alphabetical order:</summary>

* [`[-a]`](/ezedits/commands/placement/placement-parameters.md#place-air-a)
* [`[-b]`](/ezedits/commands/placement/array-parameters.md#snap-to-surfaces-b)
* [`[-c <orientationAngle>]`](/ezedits/commands/placement/placement-parameters.md#orientation-c-k)
* [`[-d <filterDirections>]`](/ezedits/commands/placement/scatter-parameters.md#directional-filter-d-e)
* [`[-e <filterThreshold>]`](/ezedits/commands/placement/scatter-parameters.md#directional-filter-d-e)
* [`[-f <randomFlipsAxes>]`](/ezedits/commands/placement/placement-parameters.md#random-flips-f)
* [`[-g <gap>]`](/ezedits/commands/placement/array-parameters.md#distance-g)
* [`[-h <region>]`](/ezedits/commands/placement/scatter-parameters.md#scatter-region-h)
* [`[-i <seed>]`](/ezedits/commands/placement/scatter-parameters.md#distribution-seed-i)
* [`[-j <restrictedAngles>]`](/ezedits/commands/placement/primary+secondary-alignment.md#snap-to-angles-j)
* [`[-k <orientationAxis>]`](/ezedits/commands/placement/placement-parameters.md#orientation-c-k)
* [`[-l <coverPattern>]`](/ezedits/commands/placement/scatter-parameters.md#mask-cover-pattern-l)
* [`[-m <maskFilter>]`](/ezedits/commands/placement/scatter-parameters.md#mask-filter-m)
* [`[-n <density>]`](/ezedits/commands/placement/scatter-parameters.md#density-n)
* [`[-n <normalMode>]`](/ezedits/commands/placement/array-parameters.md#spline-orientation-n)
* [`[-o <sizeMultiplierRange>]`](/ezedits/commands/placement/placement-parameters.md#random-scaling-o)
* [`[-p <kbParameters>]`](/ezedits/commands/placement/array-parameters.md#path-parameters-p)
* [`[-q <radiiMultiplier>]`](/ezedits/commands/placement/array-parameters.md#progressive-scaling-q)
* [`[-r <randomRotationAxis>]`](/ezedits/commands/placement/placement-parameters.md#random-rotations-r)
* [`[-s <dimensions>]`](/ezedits/commands/placement/placement-parameters.md#dimensions-s)
* [`[-t]`](/ezedits/commands/placement/scatter-parameters.md#trim-outside-selection-t)
* [`[-u <iterations>]`](/ezedits/commands/placement/scatter-parameters.md#uniformity-u)
* [`[-w <smoothblocks>]`](/ezedits/smoothblocks/smoothblocks.md)
* [`[-x]`](/ezedits/commands/placement/primary+secondary-alignment.md#perturb-secondary-x)
* [`[-y <maxOffset>]`](/ezedits/commands/placement/array-parameters.md#max-vertical-offset-y)

</details>

***

{% hint style="warning" %}
Note for server admins: The three placement brushes spawn BlockDisplay entities (only visible to the player using their brush) to help visualise the [Alignment](/ezedits/commands/placement/primary+secondary-alignment.md) of the brushes. You may disable the visualisation entities entirely or change how often they are updated in the `config.yml` under `visualisations`.

Additionally, the command `//ezdebug removeVisualiserEntities` will remove any entities spawned by ezEdits from your world in case they got bugged somehow and were not despawned correctly, which should never happen, but there you go.
{% endhint %}

***


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ezedits.gitbook.io/ezedits/commands/placement.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
