> 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/available-structures.md).

# Available Structures

In the context of ezEdits, we call an arrangement of blocks in 3D space a "structure". Each placement command requires the user to provide a `<structure>` argument.

Currently available structures are:

***

### Common Options

The following optional parameters can be used with any structure type:

* <mark style="color:blue;">**RelativeOffset (RO)**</mark>. Defaults to `(0,0,0)`. Offsets the structure from the placement point relative to its orientation.
* <mark style="color:blue;">**WorldOffset (WO)**</mark>. Defaults to `(0,0,0)`. Offsets the structure from the placement point along world coordinates.
* <mark style="color:blue;">**OffsetJitter (OJ)**</mark>. When set, randomly multiplies the strength of RelativeOffset and WorldOffset for each placement. Value range is 1.0-\[Set Value]..1.0, so a value of 0.5 would result in a multiplier range of 0.5..1.0

Example: <mark style="color:orange;">`Shape(S:Cone,P:stone,RO:(0,1,0),WO:(0,0,2))`</mark>

***

<details>

<summary><mark style="color:blue;"><strong>Clipboard (Cl)</strong></mark></summary>

A structure based on your current WorldEdit Clipboard (//copy).

Syntax: <mark style="color:orange;">`Clipboard`</mark>

Abbr.: <mark style="color:orange;">`Cl`</mark>

Options:

* <mark style="color:blue;">**`Origin`**</mark><mark style="color:blue;">**&#x20;**</mark><mark style="color:blue;">**(O)**</mark>. Defaults to INHERENT.
  * INHERENT (I) will use the position it was copied at
  * CENTER (C) will use the geometric center of the clipboard
* <mark style="color:blue;">**`PasteMethod`**</mark><mark style="color:blue;">**&#x20;**</mark><mark style="color:blue;">**(PM**</mark><mark style="color:blue;">)</mark>. Defaults to FAST. See [#comparison-between-fast-and-smooth-pastemethod](#comparison-between-fast-and-smooth-pastemethod "mention")
  * FAST (fast): Default unaltered pasting of clipboards, like //paste
  * SMOOTHED (smooth): Applies interpolation when the placement cannot be matched into the world grid, e.g. when placing with a 45° rotated orientation. Has a slightly more smoothed look to it, which may preferred for freely rotated placements.
  * See [#comparison-between-fast-and-smooth-pastemethod](#comparison-between-fast-and-smooth-pastemethod "mention")
* <mark style="color:blue;">**`Rotation`**</mark> **(**<mark style="color:blue;">**`R`**</mark>**).** Defaults to `0`. Rotates the input shape before it is placed.
* Example: <mark style="color:orange;">`Clipboard(Origin:INHERENT,PasteMethod:SMOOTHED,Rotation:90)`</mark> <mark style="color:orange;">or</mark> <mark style="color:orange;">`Cl(O:I,PM:smooth,R:90)`</mark>

</details>

<details>

<summary><mark style="color:blue;"><strong>Schematic (Sc)</strong></mark></summary>

A structure based on a schematic file.

Syntax: <mark style="color:orange;">`Schematic(Filename:<name>,...)`</mark>

Abbr.: <mark style="color:orange;">`Sc(N:<name>,...)`</mark>

Mandatory parameters:

* <mark style="color:orange;">**`Filename`**</mark> **(**<mark style="color:orange;">**`N`**</mark>**)**. A regex pattern for specifying all filenames of the schematics you want to place.
  * For example, if you type in `Sc(N:tree_.*)` we will fetch all schematic files that match the regex `tree.*,` e.g. `tree_1`, `tree_2`, `tree_3` etc.
  * In case you use FAWE's per-player-schematics path system, in which schematics are separated into folders named after each player's UUID, you can use the shortcut `%p` to denote your own UUID and access your folder through e.g. `%p/your_schematic.schem`

Options:

* <mark style="color:blue;">**`Format`**</mark> **(**<mark style="color:blue;">**`F`**</mark>**)**. Format of the schematic file. Defaults to <mark style="color:blue;">`sponge.3`</mark> (or FAWE's fast if you're using FAWE). The default value should work for the majority of cases.
* <mark style="color:blue;">**`Origin`**</mark> **(**<mark style="color:blue;">**`O`**</mark>**)**. Defaults to <mark style="color:blue;">`INHERENT`</mark>.
  * INHERENT (I) will use the position it was copied at.
  * CENTER (C) will use the center of the clipboard's region as the origin instead.
* <mark style="color:blue;">**`PasteMethod`**</mark> **(**<mark style="color:blue;">**`PM`**</mark>). Defaults to <mark style="color:blue;">`FAST`</mark>.
  * FAST (fast): Default unaltered pasting of clipboards, like //paste
  * SMOOTHED (smooth): Applies interpolation when the placement cannot be matched into the world grid, e.g. when placing with a 45° rotated orientation. Has a slightly more smoothed look to it, which may preferred for freely rotated placements.
  * See [#comparison-between-fast-and-smooth-pastemethod](#comparison-between-fast-and-smooth-pastemethod "mention")
* <mark style="color:blue;">**`Rotation`**</mark> **(**<mark style="color:blue;">**`R`**</mark>**).** Defaults to `0`. Rotates the input shape before it is placed.

</details>

<details>

<summary><mark style="color:blue;"><strong>Shape (Sh)</strong></mark></summary>

An expression-based shape. EzEdits provides plenty of predefined ones. Material defined by a pattern.

Syntax: <mark style="color:orange;">`Shape(Shape:<shape>,Pattern:<pattern>)`</mark>

Abbr.: <mark style="color:orange;">`Sh(S:<shape>,P:<pattern>)`</mark>

Mandatory Parameters:

* <mark style="color:orange;">**`Shape`**</mark> (<mark style="color:orange;">**`S`**</mark>). Well, defines the shape of the Shape structure. Additional parameters are given within the parenthesis after. Available shapes are:
  * `Cone`

    ![](/files/mA1dihxnh5aggrtvdkJ6)
  * `Crystal([Sides:<sides>],[Extrusion:<value>])`

    ![](/files/us8fUgWwp9Y1k4ZI7xga)
  * `Cuboid`

    ![](/files/nxe58wf6ms9b2Vs1PSRw)
  * `Curl`

    ![](/files/wZZ0Nk1IShXonBfqn27t)
  * `Cylinder`

    ![](/files/OTKG3Xn5AX9XGtZ1MVGT)
  * `Ellipsoid`

    ![](/files/YflgiXAnzSOvXI2UGhg5)
  * `Fur`

    ![](/files/DEK6VL7NH6nsz2PRgunm)
  * `Heart`

    ![](/files/b970j8B2YlFVxJuUaSpX)
  * `Jellybean`

    ![](/files/fZwY1f3x7Mg5dZKATucv)
  * `Leaf`

    ![](/files/2ytDATWMwgIT1eD0fMJu)
  * `Lemon`

    ![](/files/kyQkIsTdGzOIrSeXFTlV)
  * `Onion`

    ![](/files/8EfzdSVLpdd76OzthD3x)
  * `Polygon([Sides:<sides>])`

    ![](/files/zXr9ctsa4zdrYyZJWN6J)
  * `Pyramid([Sides:<sides>])`

    ![](/files/W8ccF4rmDhmZFF8hiwdu)
  * `Supersphere(Exponent:<exponent>)`

    ![](/files/Mc6Pq8a7P51vSOyyHoIC)
  * `Tetrahedron`

    ![](/files/89xOvAWJhuWsKV1RdfcD)
  * `Torus(Thickness:<value>)`

    ![](/files/Nb1JrgBxoFB1VHTlMqDJ)
  * `=<expression>`
    * In addition to predefined shapes, you can also define your own shape with a WorldEdit expression.
    * For example, this expression will create spirals:\ <mark style="color:blue;">`Shape(S:`</mark><mark style="color:blue;">**`=x+=sin(2*pi*y)/2;z+=cos(2*pi*y)/2;x*x+z*z<0.3^2`**</mark><mark style="color:blue;">`,P:clay)`</mark>
* <mark style="color:orange;">**`Pattern`**</mark> (<mark style="color:orange;">**`P`**</mark>). The pattern which the shape should be made of.
  * Note: Commas `,` being part of the argument breaks the input parser. If you want to use a pattern that uses commas then you need to put your Pattern argument in quotes: E.g. <mark style="color:blue;">`Sh(S:Cone,Pattern:`</mark><mark style="color:blue;">**`"dirt,diamond_block"`**</mark><mark style="color:blue;">`)`</mark>

</details>

<details>

<summary><mark style="color:blue;"><strong>Expression (Ex)</strong></mark></summary>

An expression-based shape. One expression defines both the shape and the texturing.

Syntax: <mark style="color:orange;">`Expression(Expression:=<expression>,Palette:<palette>)`</mark>

Abbr.: <mark style="color:orange;">`Ex(E:=<expression>,P:<palette>)`</mark>

Mandatory Parameters:

* <mark style="color:orange;">**`Expression`**</mark> **(**<mark style="color:orange;">**`E`**</mark>**)**. Input variables are `x`, `y`, `z`, all between \[-1,1], and `seed`.
  * `x=0`,`y=0`,`z=0` is the origin of the structure.
  * If the expression f(x,y,z) evaluates as *f*≤*0*, 0 or negative, then the position will be air.
  * If it evaluates as *1>f>0*, between 0 and 1, then the according palette block is placed.
  * Otherwise, any value 1 or larger will place the last palette block.
  * `seed` is a random integer between 0 and 2147483647, different for each placement (but most importantly constant within a single placement)
* <mark style="color:orange;">**`Palette`**</mark> **(**<mark style="color:orange;">**`P`**</mark>**)**. The set of blocks of which the structure should be made of.
  * Note: Commas `,` being part of the argument breaks the input parser. If you want to use a palette that uses commas then you need to put your Palette argument in quotes: E.g. <mark style="color:blue;">`Ex(E:=y*.5+.5,Palette:`</mark><mark style="color:blue;">**`"##GlowOrange,-##GlowPurple"`**</mark><mark style="color:blue;">`)`</mark>

Example:

<mark style="color:blue;">`Ex(E:"=x*x+y*y+z*z<perlin(seed,x,y,z,1,1,.5)",P:clay)`</mark>

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

</details>

<details>

<summary><mark style="color:blue;"><strong>TexturedShape (TS)</strong></mark></summary>

An expression-based shape with an expression-based texturing. The Shape parameter defines its shape. The Palette and Texturing-Shape parameters define its material.

Syntax: <mark style="color:orange;">`TexturedShape(Shape:<shape>,TexturingShape:<shape>,Palette:<palette>)`</mark>

Abbr.: <mark style="color:orange;">`TS(S:<shape>,T:<shape>,P:<palette>)`</mark>

Mandatory Parameters:

* <mark style="color:orange;">**`Shape`**</mark> **(**<mark style="color:orange;">**`S`**</mark>**)**. See [Shape Structure](#shape-sh).
* <mark style="color:orange;">**`TexturingShape`**</mark> **(**<mark style="color:orange;">**`T`**</mark>**)**. Defines which parts of the shape are painted with which blocks of the palette. Accepts a shape, just like the Shape Parameter.
* <mark style="color:orange;">**`Palette`**</mark> **(**<mark style="color:orange;">**`P`**</mark>**)**<mark style="color:orange;">.</mark> The set of blocks of which the shape should be made of.
  * Note: Commas `,` being part of the argument breaks the input parser. If you want to use a palette that uses commas then you need to put your Palette argument in quotes: E.g. <mark style="color:blue;">`TS(S:Cone,T:=y*.5+.5;Palette:`</mark><mark style="color:blue;">**`"dirt,diamond_block"`**</mark><mark style="color:blue;">`)`</mark>

</details>

<details>

<summary><mark style="color:blue;"><strong>Icosphere (Ic)</strong></mark></summary>

(<mark style="color:red;">**`!`**</mark>) Only available if [Arceon](https://www.patreon.com/c/arcaniax/home) v0.4.9 or higher is running on your server.

A deformed icosphere. Popularised in the building community under the [Arceon Boulder](https://github.com/Brennian/Arceon-1.14/wiki/Brushes#boulder-brush).

Syntax: <mark style="color:orange;">`Icosphere(Pattern:<pattern>,Randomness:<value>,Subdivisions:<value>,Platform:<value>)`</mark>

Abbr.: <mark style="color:orange;">`Ic(P:<pattern>,R:<value>,S:<value>,PL:<value>)`</mark>

Mandatory Parameters:

* <mark style="color:orange;">**`Pattern`**</mark> (<mark style="color:orange;">**`P`**</mark>). The pattern which the shape should be made of.
  * Note: Commas `,` being part of the argument breaks the input parser. If you want to use a pattern that uses commas then you need to put your Pattern argument in quotes: E.g. <mark style="color:blue;">`Ic(P:`</mark><mark style="color:blue;">**`"dirt,diamond_block"`**</mark><mark style="color:blue;">`)`</mark>

Optional Parameters:

* <mark style="color:blue;">**`Randomness`**</mark> **(**<mark style="color:blue;">**`R`**</mark>**)**. Defines how strongly the icosphere is deformed.
  * Defaults to <mark style="color:blue;">`0.5`</mark>.
  * Accepts a value between 0 and 1:
    * 0 resulting in a perfectly uniform icosphere,
    * ![](/files/G3XVkoZChEAaCelmf0BZ)
    * 0.5 results in a fairly deformed boulder shape.
    * ![](/files/1hIZrhfI1U3Zc0fRUBXC)
    * 1 resulting in a maximally deformed boulder shape.
    * ![](/files/5DtfuzTZ3vwAFJl976e3)
    * All above examples at Subdivisions=0.
* <mark style="color:blue;">**`Subdivisions`**</mark> **(**<mark style="color:blue;">**`S`**</mark>**)**. Determines the amount of polygons used.
  * Defaults to <mark style="color:blue;">`0`</mark>.
  * Choose between 0, 1, 2, 3, 4:
    * 0 results in the most low-poly look
    * ![](/files/1hIZrhfI1U3Zc0fRUBXC)
    * 1
    * ![](/files/cxI3LA2ctnWFH5G4CyHS)
    * 2
    * ![](/files/Yidggvds1PN1yL8K4MSL)
    * 3
    * ![](/files/POqeJapKMpVhF4cAUOGk)
    * 4 results in many polygons used, but also limits the amount of randomness, resulting in a pretty spherical look even with maximum randomness as you can already see with 3 subdivisions.
  * (<mark style="color:red;">**`!`**</mark>) Large number of subdivisions have a large performance impact.
* <mark style="color:blue;">**`Platform`**</mark> **(**<mark style="color:blue;">**`PL`**</mark>**)**. Defines how mush to squash the top half of the icosphere.
  * Defaults to <mark style="color:blue;">`0.0`</mark>.
  * Accepts a value between 0 and 1

Remember: All of the given examples were rendered with equal dimensions across all three axes. Use the [dimensions parameter](/ezedits/commands/placement/placement-parameters.md#dimensions-s) to stretch and squish along the three axes.

</details>

***

### Comparison between FAST and SMOOTH PasteMethod:

[Clipboard](#clipboard-cl) and [Schematic](#schematic-sc) both have the PasteMethod parameter. Here's a comparison of both modes:

<details>

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

Let's say this is our clipboard or our schematic:

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

Here's how it would look pasted at an odd angle when using

* `PasteMethod:FAST`

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

* vs `PasteMethod:SMOOTHED`

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

Or when pasted a significantly larger size:

* `PasteMethod:FAST`

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

* vs `PasteMethod:SMOOTHED`

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

There's also an additional parameter to the SMOOTHED PasteMethod: The `FillBias`. It allows you to specify whether the tool should try to place *more* blocks or try to place *less* blocks. This could be particularly helpful for e.g., particularly thin structures.

Let's say this curved one-block thick sheet is our clipboard/schematic now.

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

Here's how *it* would look pasted **at an odd angle** when using

* `//paste` or`PasteMethod:FAST`

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

* compared to `PasteMethod:SMOOTHED`

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

* compared to `PasteMethod:SMOOTHED,FillBias:3` (default FillBias is 1.0)

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

* compared to a GIF going from `Fillbias:`**`0.25`** up to `Fillbias:`**`3.0`**

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

</details>
