# FAQ

* Are modded blocks supported? Not yet, I haven't decided if this is outside the scope of this project or not. Possibly in the future.
* Is 1.8 supported? Not yet. This will be added in the future.


# Installation

Installation is easy! Just download the plugin, and place the jar into your plugins folder. Restart your server, modify the settings files, and reload using `/csl reload` if needed.


# Commands & Permissions

<table><thead><tr><th width="184">Command</th><th width="165">Alias</th><th>Description</th><th>Permission</th></tr></thead><tbody><tr><td><code>/csl reload</code></td><td><code>/cslreload</code></td><td>Reloads the plugin configuration.</td><td><code>csl.reload</code></td></tr><tr><td>/<code>csl info</code></td><td><code>/cslinfo</code></td><td>Shows the current spawn reasons &#x26; entity limits.</td><td><code>csl.info</code></td></tr><tr><td><code>/csl settings</code></td><td><code>/cslsettings</code></td><td>Shows the current settings &#x26; messages.</td><td><code>csl.settings</code></td></tr></tbody></table>


# config.yml

### Entity Limits

{% hint style="info" %}
Use entities from <https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/EntityType.html>
{% endhint %}

#### Groups

You can also set limits on groups. The available mobs change depending on your server's version, so keep that in mind.

<table><thead><tr><th width="150">Group</th><th>Example Mobs (1.20.4)</th></tr></thead><tbody><tr><td><code>ANIMAL</code></td><td>Chicken, Cow, MushroomCow, Ocelot, Pig, Sheep, Wolf</td></tr><tr><td><code>MONSTER</code></td><td>Blaze, CaveSpider, Creeper, Enderman, Giant, PigZombie, Silverfish, Skeleton, Spider, Witch, Wither, Zombie</td></tr><tr><td><code>AMBIENT</code></td><td>Bat</td></tr><tr><td><code>WATER_MOB</code></td><td>Squid, Fish</td></tr><tr><td><code>NPC</code></td><td>Villager</td></tr><tr><td><code>VEHICLE</code></td><td>Boat, Minecart</td></tr><tr><td><code>OTHER</code></td><td>Everything else</td></tr></tbody></table>

### Spawn Reasons

You can define what spawn reasons the plugin should check a chunk for. Simply by setting true or false.

{% hint style="info" %}
Use reasons from <https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/entity/CreatureSpawnEvent.SpawnReason.html>
{% endhint %}

For example, if I want the chunk to be checked when an iron golem is built, I would set:

```yaml
spawn-reasons:
  BUILD_IRONGOLEM: true
```

### Properties

<table><thead><tr><th width="307">Property</th><th>Description</th></tr></thead><tbody><tr><td><code>check-chunk-load</code></td><td>Check a chunk upon load (ChunkLoadEvent).</td></tr><tr><td><code>check-chunk-unload</code></td><td>Check a chunk upon unload (ChunkUnloadEvent).</td></tr><tr><td><code>active-inspections</code></td><td><p>When a chunk is loaded, recheck it periodically.</p><p>Check-chunk-load must be true for this to work.</p></td></tr><tr><td><code>debug</code></td><td>Debug messages, will spam the console with verbose messages when set to true. Best to not set this to true unless debugging an issue.</td></tr><tr><td><code>watch-creature-spawn</code></td><td>Check a chunk when a mob spawns (CreatureSpawnEvent).</td></tr><tr><td><code>watch-vehicle-create-event</code></td><td>Check a chunk when a vehicle spawns (VehicleCreateEvent).</td></tr><tr><td><code>check-surrounding-chunks</code></td><td>Radius of surrounding chunks to check.</td></tr><tr><td><code>inspection-frequency</code></td><td>How often, in seconds, to check the chunk.</td></tr><tr><td><code>notify-players</code></td><td>Notify players in that chunk if stuff has been culled.</td></tr><tr><td><code>preserve-named-entities</code></td><td>Prioritize entities without names over older entities.</td></tr><tr><td><code>preserve-raid-entities</code></td><td>Don't remove pillagers that are part of a raid.</td></tr><tr><td><code>ignore-metadata</code></td><td>Ignore entities with any of the following metadata. For example, shopkeeper npcs.</td></tr></tbody></table>

### Excluded Worlds

You can exclude worlds from the check entirely by adding them to this list. For example:

```yaml
excluded-worlds:
  - "world_nether"
```

### Messages

You can customize the messages used in the plugin by editing the messages block. Common color codes are supported.&#x20;

In some messages some internal placeholders are used: `{material}`, `{amount}`. You can remove these if you don't want to use them.


# blocks.yml

{% hint style="warning" %}
By default, this feature is disabled. Enable is by setting `enabled` to `true`
{% endhint %}

### Blocks

You can limit any block in a chunk as long as it's from <https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html>

For example:

```yaml
blocks:
  SPAWNER: 10
```

### Notifications

You can modify which notifications players receive if a limit has been reached.

```yaml
notify:
  title: true
  message: false
```

{% hint style="info" %}
Want to modify the messages & titles themselves? See [config.yml](/4.3.3/configuration/config.yml#messages)
{% endhint %}

### World Settings (count)

You can modify the default y values being checked by the plugin. Anything between these 2 values will be checked. This is useful if you aren't running the latest server version, modified your world height, or just want to modify these values for some reason.

```yaml
count:
  min-y: -64
  max-y: 256
```

#### Specific World Settings

You can specify specific worlds as well. For example:

<pre class="language-yaml"><code class="lang-yaml"><strong>world_nether:
</strong>  min-y: 0
  max-y: 128
</code></pre>


# FAQ

* Are modded blocks supported? Not yet, I haven't decided if this is outside the scope of this project or not. Possibly in the future.
* Is 1.8 supported? Not yet. This will be added in the future.


# Installation

Installation is easy! Just download the plugin, and place the jar into your plugins folder. Restart your server, modify the settings files, and reload using `/csl reload` if needed.


# Commands & Permissions

<table><thead><tr><th width="184">Command</th><th width="165">Alias</th><th>Description</th><th>Permission</th></tr></thead><tbody><tr><td><code>/csl reload</code></td><td><code>/cslreload</code></td><td>Reloads the plugin configuration.</td><td><code>csl.reload</code></td></tr><tr><td><code>/csl info</code></td><td><code>/cslinfo</code></td><td>Shows the current spawn reasons &#x26; entity limits.</td><td><code>csl.info</code></td></tr><tr><td><code>/csl settings</code></td><td><code>/cslsettings</code></td><td>Shows the current settings &#x26; messages.</td><td><code>csl.settings</code></td></tr><tr><td><code>/csl search</code></td><td><code>/cslsearch</code></td><td>Shows the available entities.</td><td><code>csl.search</code></td></tr></tbody></table>


# /csl search

This command helps for viewing the available entities.

<figure><img src="https://private-user-images.githubusercontent.com/4803946/357504499-129be63d-095a-488e-8639-f505aa6b35cf.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzAwMzg5NjcsIm5iZiI6MTczMDAzODY2NywicGF0aCI6Ii80ODAzOTQ2LzM1NzUwNDQ5OS0xMjliZTYzZC0wOTVhLTQ4OGUtODYzOS1mNTA1YWE2YjM1Y2YuZ2lmP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MTAyNyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDEwMjdUMTQxNzQ3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9N2M0ODYzYzEwMjFjNjIyY2RhMjVlZjg5NWIyMzA5YWIzNTkyNjVmYjdlYTZkODRiZGJkNDYyNTRmMjY4OGNmNCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.gsRjI5wHP748jGbu1999_aB6XeQ_ub5CIegbM2PRg_0" alt=""><figcaption><p>search command preview</p></figcaption></figure>


# config.yml

### Entity Limits

{% hint style="info" %}
Use entities from <https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/EntityType.html>

You can use the in-game command /cslsearch to view the above list as well.
{% endhint %}

#### Groups

You can also set limits on groups. The available mobs change depending on your server's version, so keep that in mind.

<table><thead><tr><th width="150">Group</th><th>Example Mobs (1.20.4)</th></tr></thead><tbody><tr><td><code>ANIMAL</code></td><td>Chicken, Cow, MushroomCow, Ocelot, Pig, Sheep, Wolf</td></tr><tr><td><code>MONSTER</code></td><td>Blaze, CaveSpider, Creeper, Enderman, Giant, PigZombie, Silverfish, Skeleton, Spider, Witch, Wither, Zombie</td></tr><tr><td><code>AMBIENT</code></td><td>Bat</td></tr><tr><td><code>WATER_MOB</code></td><td>Squid, Fish</td></tr><tr><td><code>NPC</code></td><td>Villager</td></tr><tr><td><code>VEHICLE</code></td><td>Boat, Minecart</td></tr><tr><td><code>OTHER</code></td><td>Everything else</td></tr></tbody></table>

### Spawn Reasons

You can define what spawn reasons the plugin should check a chunk for. Simply by setting true or false.

{% hint style="info" %}
Use reasons from <https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/entity/CreatureSpawnEvent.SpawnReason.html>
{% endhint %}

For example, if I want the chunk to be checked when an iron golem is built, I would set:

```yaml
spawn-reasons:
  BUILD_IRONGOLEM: true
```

### Properties

<table><thead><tr><th width="307">Property</th><th>Description</th></tr></thead><tbody><tr><td><code>check-chunk-load</code></td><td>Check a chunk upon load (ChunkLoadEvent).</td></tr><tr><td><code>check-chunk-unload</code></td><td>Check a chunk upon unload (ChunkUnloadEvent).</td></tr><tr><td><code>active-inspections</code></td><td><p>When a chunk is loaded, recheck it periodically.</p><p>Check-chunk-load must be true for this to work.</p></td></tr><tr><td><code>debug</code></td><td>Debug messages, will spam the console with verbose messages when set to true. Best to not set this to true unless debugging an issue.</td></tr><tr><td><code>watch-creature-spawn</code></td><td>Check a chunk when a mob spawns (CreatureSpawnEvent).</td></tr><tr><td><code>watch-vehicle-create-event</code></td><td>Check a chunk when a vehicle spawns (VehicleCreateEvent).</td></tr><tr><td><code>check-surrounding-chunks</code></td><td>Radius of surrounding chunks to check.</td></tr><tr><td><code>inspection-frequency</code></td><td>How often, in seconds, to check the chunk.</td></tr><tr><td><code>notify-players</code></td><td>Notify players in that chunk if stuff has been culled.</td></tr><tr><td><code>preserve-named-entities</code></td><td>Prioritize entities without names over older entities.</td></tr><tr><td><code>preserve-raid-entities</code></td><td>Don't remove pillagers that are part of a raid.</td></tr><tr><td><code>ignore-metadata</code></td><td>Ignore entities with any of the following metadata. For example, shopkeeper npcs.</td></tr></tbody></table>

### Include or Exclude Worlds

You can exclude  or include worlds from the check entirely by adding them to this list. And setting the mode, for example:

```yaml
worlds:
  mode: "excluded"
  worlds: ["world"]
```

#### Included

To only run the check on the listed worlds, use this configuration:

```yaml
worlds:
  mode: "included"
  worlds: ["world"]
```

#### Excluded

To disable the check on the listed worlds, use this configuration:

<pre class="language-yaml"><code class="lang-yaml"><strong>worlds:  
</strong><strong>  mode: "excluded"
</strong>  worlds: ["world"]
</code></pre>

### Messages

You can customize the messages used in the plugin by editing the messages block. Common color codes are supported.&#x20;

In some messages some internal placeholders are used: `{material}`, `{amount}`. You can remove these if you don't want to use them.


# blocks.yml

{% hint style="warning" %}
By default, this feature is disabled. Enable is by setting `enabled` to `true`
{% endhint %}

### Blocks

You can limit any block in a chunk as long as it's from <https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html>

For example:

```yaml
blocks:
  SPAWNER: 10
```

### Notifications

You can modify which notifications players receive if a limit has been reached.

```yaml
notify:
  title: true
  message: false
```

{% hint style="info" %}
Want to modify the messages & titles themselves? See [config.yml](/4.3.8/configuration/config.yml#messages)
{% endhint %}

### World Settings (count)

You can modify the default y values being checked by the plugin. Anything between these 2 values will be checked. This is useful if you aren't running the latest server version, modified your world height, or just want to modify these values for some reason.

```yaml
count:
  min-y: -64
  max-y: 256
```

#### Specific World Settings

You can specify specific worlds as well. For example:

<pre class="language-yaml"><code class="lang-yaml"><strong>world_nether:
</strong>  min-y: 0
  max-y: 128
</code></pre>


# FAQ

* Are modded blocks supported? Not yet, I haven't decided if this is outside the scope of this project or not. Possibly in the future.
* Is 1.8 supported? Not yet. This will be added in the future.


# Installation

Installation is easy! Just download the plugin, and place the jar into your plugins folder. Restart your server, modify the settings files, and reload using `/csl reload` if needed.


# Commands & Permissions

<table><thead><tr><th width="184">Command</th><th width="165">Alias</th><th>Description</th><th>Permission</th></tr></thead><tbody><tr><td><code>/csl reload</code></td><td><code>/cslreload</code></td><td>Reloads the plugin configuration.</td><td><code>csl.reload</code></td></tr><tr><td><code>/csl info</code></td><td><code>/cslinfo</code></td><td>Shows the current spawn reasons &#x26; entity limits.</td><td><code>csl.info</code></td></tr><tr><td><code>/csl settings</code></td><td><code>/cslsettings</code></td><td>Shows the current settings &#x26; messages.</td><td><code>csl.settings</code></td></tr><tr><td><code>/csl search</code></td><td><code>/cslsearch</code></td><td>Shows the available entities.</td><td><code>csl.search</code></td></tr></tbody></table>


# /csl search

This command helps for viewing the available entities.

<figure><img src="https://private-user-images.githubusercontent.com/4803946/357504499-129be63d-095a-488e-8639-f505aa6b35cf.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzAwMzg5NjcsIm5iZiI6MTczMDAzODY2NywicGF0aCI6Ii80ODAzOTQ2LzM1NzUwNDQ5OS0xMjliZTYzZC0wOTVhLTQ4OGUtODYzOS1mNTA1YWE2YjM1Y2YuZ2lmP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MTAyNyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDEwMjdUMTQxNzQ3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9N2M0ODYzYzEwMjFjNjIyY2RhMjVlZjg5NWIyMzA5YWIzNTkyNjVmYjdlYTZkODRiZGJkNDYyNTRmMjY4OGNmNCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.gsRjI5wHP748jGbu1999_aB6XeQ_ub5CIegbM2PRg_0" alt=""><figcaption><p>search command preview</p></figcaption></figure>


# config.yml

### Entity Limits

{% hint style="info" %}
Use entities from <https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/EntityType.html>

You can use the in-game command /cslsearch to view the above list as well.
{% endhint %}

#### Groups

You can also set limits on groups. The available mobs change depending on your server's version, so keep that in mind.

<table><thead><tr><th width="150">Group</th><th>Example Mobs (1.20.4)</th></tr></thead><tbody><tr><td><code>ANIMAL</code></td><td>Chicken, Cow, MushroomCow, Ocelot, Pig, Sheep, Wolf</td></tr><tr><td><code>MONSTER</code></td><td>Blaze, CaveSpider, Creeper, Enderman, Giant, PigZombie, Silverfish, Skeleton, Spider, Witch, Wither, Zombie</td></tr><tr><td><code>AMBIENT</code></td><td>Bat</td></tr><tr><td><code>WATER_MOB</code></td><td>Squid, Fish</td></tr><tr><td><code>NPC</code></td><td>Villager</td></tr><tr><td><code>VEHICLE</code></td><td>Boat, Minecart</td></tr><tr><td><code>OTHER</code></td><td>Everything else</td></tr></tbody></table>

### Spawn Reasons

You can define what spawn reasons the plugin should check a chunk for. Simply by setting true or false.

{% hint style="info" %}
Use reasons from <https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/entity/CreatureSpawnEvent.SpawnReason.html>
{% endhint %}

For example, if I want the chunk to be checked when an iron golem is built, I would set:

```yaml
spawn-reasons:
  BUILD_IRONGOLEM: true
```

### Properties

<table><thead><tr><th width="307">Property</th><th>Description</th></tr></thead><tbody><tr><td><code>check-chunk-load</code></td><td>Check a chunk upon load (ChunkLoadEvent).</td></tr><tr><td><code>check-chunk-unload</code></td><td>Check a chunk upon unload (ChunkUnloadEvent).</td></tr><tr><td><code>active-inspections</code></td><td><p>When a chunk is loaded, recheck it periodically.</p><p>Check-chunk-load must be true for this to work.</p></td></tr><tr><td><code>debug</code></td><td>Debug messages, will spam the console with verbose messages when set to true. Best to not set this to true unless debugging an issue.</td></tr><tr><td><code>watch-creature-spawn</code></td><td>Check a chunk when a mob spawns (CreatureSpawnEvent).</td></tr><tr><td><code>watch-vehicle-create-event</code></td><td>Check a chunk when a vehicle spawns (VehicleCreateEvent).</td></tr><tr><td><code>watch-entity-spawns</code></td><td>Check a chunk when an armor stand spawns (EntitySpawnEvent). Catches everything that <code>watch-creature-spawn</code> doesn't catch.</td></tr><tr><td><code>check-surrounding-chunks</code></td><td>Radius of surrounding chunks to check.</td></tr><tr><td><code>inspection-frequency</code></td><td>How often, in seconds, to check the chunk.</td></tr><tr><td><code>notify-players</code></td><td>Notify players in that chunk if stuff has been culled.</td></tr><tr><td><code>preserve-named-entities</code></td><td>Prioritize entities without names over older entities.</td></tr><tr><td><code>preserve-raid-entities</code></td><td>Don't remove pillagers that are part of a raid.</td></tr><tr><td><code>ignore-metadata</code></td><td>Ignore entities with any of the following metadata. For example, shopkeeper npcs.</td></tr><tr><td><code>kill-instead-of-remove</code></td><td>Kills an entity instead of removing it.</td></tr><tr><td><code>drop-items-from-armor-stands</code></td><td>Drops items from armor stand. Only relevant if <code>kill-instead-of-remove</code> is enabled or if the tick setting for paper.</td></tr><tr><td><code>log-armor-stand-tick-warning</code></td><td>Disable or enable the warning in the log.</td></tr></tbody></table>

### Include or Exclude Worlds

You can exclude  or include worlds from the check entirely by adding them to this list. And setting the mode, for example:

```yaml
worlds:
  mode: "excluded"
  worlds: ["world"]
```

#### Included

To only run the check on the listed worlds, use this configuration:

```yaml
worlds:
  mode: "included"
  worlds: ["world"]
```

#### Excluded

To disable the check on the listed worlds, use this configuration:

<pre class="language-yaml"><code class="lang-yaml"><strong>worlds:  
</strong><strong>  mode: "excluded"
</strong>  worlds: ["world"]
</code></pre>

### Messages

You can customize the messages used in the plugin by editing the messages block. Common color codes are supported.&#x20;

In some messages some internal placeholders are used: `{material}`, `{amount}`. You can remove these if you don't want to use them.


# blocks.yml

{% hint style="warning" %}
By default, this feature is disabled. Enable is by setting `enabled` to `true`
{% endhint %}

### Blocks

You can limit any block in a chunk as long as it's from <https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html>

For example:

```yaml
blocks:
  SPAWNER: 10
```

### Notifications

You can modify which notifications players receive if a limit has been reached.

```yaml
notify:
  title: true
  message: false
```

{% hint style="info" %}
Want to modify the messages & titles themselves? See [config.yml](/4.3.9/configuration/config.yml#messages)
{% endhint %}

### World Settings (count)

You can modify the default y values being checked by the plugin. Anything between these 2 values will be checked. This is useful if you aren't running the latest server version, modified your world height, or just want to modify these values for some reason.

```yaml
count:
  min-y: -64
  max-y: 256
```

#### Specific World Settings

You can specify specific worlds as well. For example:

<pre class="language-yaml"><code class="lang-yaml"><strong>world_nether:
</strong>  min-y: 0
  max-y: 128
</code></pre>


# FAQ

* Are modded blocks supported? Not yet, I haven't decided if this is outside the scope of this project or not. Possibly in the future.
* Is 1.8 supported? Not yet. This will be added in the future.


# Installation

Installation is easy! Just download the plugin, and place the jar into your plugins folder. Restart your server, modify the settings files, and reload using `/csl reload` if needed.


# Commands & Permissions

<table><thead><tr><th width="184">Command</th><th width="165">Alias</th><th>Description</th><th>Permission</th></tr></thead><tbody><tr><td><code>/csl reload</code></td><td><code>/cslreload</code></td><td>Reloads the plugin configuration.</td><td><code>csl.reload</code></td></tr><tr><td><code>/csl info</code></td><td><code>/cslinfo</code></td><td>Shows the current spawn reasons &#x26; entity limits.</td><td><code>csl.info</code></td></tr><tr><td><code>/csl settings</code></td><td><code>/cslsettings</code></td><td>Shows the current settings &#x26; messages.</td><td><code>csl.settings</code></td></tr><tr><td><code>/csl search</code></td><td><code>/cslsearch</code></td><td>Shows the available entities.</td><td><code>csl.search</code></td></tr></tbody></table>


# /csl search

This command helps for viewing the available entities.

<figure><img src="/files/vbVXTbTYhtFFt0cSFXyi" alt=""><figcaption><p>search command preview</p></figcaption></figure>


# config.yml

### Entity Limits

{% hint style="info" %}
Use entities from <https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/EntityType.html>

You can use the in-game command /cslsearch to view the above list as well.
{% endhint %}

#### Groups

You can also set limits on groups. The available mobs change depending on your server's version, so keep that in mind.

<table><thead><tr><th width="150">Group</th><th>Example Mobs (1.20.4)</th></tr></thead><tbody><tr><td><code>ANIMAL</code></td><td>Chicken, Cow, MushroomCow, Ocelot, Pig, Sheep, Wolf</td></tr><tr><td><code>MONSTER</code></td><td>Blaze, CaveSpider, Creeper, Enderman, Giant, PigZombie, Silverfish, Skeleton, Spider, Witch, Wither, Zombie</td></tr><tr><td><code>AMBIENT</code></td><td>Bat</td></tr><tr><td><code>WATER_MOB</code></td><td>Squid, Fish</td></tr><tr><td><code>NPC</code></td><td>Villager</td></tr><tr><td><code>VEHICLE</code></td><td>Boat, Minecart</td></tr><tr><td><code>OTHER</code></td><td>Everything else</td></tr></tbody></table>

### Spawn Reasons

You can define what spawn reasons the plugin should check a chunk for. Simply by setting true or false.

{% hint style="info" %}
Use reasons from <https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/entity/CreatureSpawnEvent.SpawnReason.html>
{% endhint %}

For example, if I want the chunk to be checked when an iron golem is built, I would set:

```yaml
spawn-reasons:
  BUILD_IRONGOLEM: true
```

### Properties

<table><thead><tr><th width="307">Property</th><th>Description</th></tr></thead><tbody><tr><td><code>check-chunk-load</code></td><td>Check a chunk upon load (ChunkLoadEvent).</td></tr><tr><td><code>check-chunk-unload</code></td><td>Check a chunk upon unload (ChunkUnloadEvent).</td></tr><tr><td><code>active-inspections</code></td><td><p>When a chunk is loaded, recheck it periodically.</p><p>Check-chunk-load must be true for this to work.</p></td></tr><tr><td><code>debug</code></td><td>Debug messages, will spam the console with verbose messages when set to true. Best to not set this to true unless debugging an issue.</td></tr><tr><td><code>watch-creature-spawn</code></td><td>Check a chunk when a mob spawns (CreatureSpawnEvent).</td></tr><tr><td><code>watch-vehicle-create-event</code></td><td>Check a chunk when a vehicle spawns (VehicleCreateEvent).</td></tr><tr><td><code>watch-entity-spawns</code></td><td>Check a chunk when an armor stand spawns (EntitySpawnEvent). Catches everything that <code>watch-creature-spawn</code> doesn't catch.</td></tr><tr><td><code>check-surrounding-chunks</code></td><td>Radius of surrounding chunks to check.</td></tr><tr><td><code>inspection-frequency</code></td><td>How often, in seconds, to check the chunk.</td></tr><tr><td><code>notify-players</code></td><td>Notify players in that chunk if stuff has been culled.</td></tr><tr><td><code>preserve-named-entities</code></td><td>Prioritize entities without names over older entities.</td></tr><tr><td><code>preserve-raid-entities</code></td><td>Don't remove pillagers that are part of a raid.</td></tr><tr><td><code>ignore-metadata</code></td><td>Ignore entities with any of the following metadata. For example, shopkeeper npcs.</td></tr><tr><td><code>kill-instead-of-remove</code></td><td>Kills an entity instead of removing it.</td></tr><tr><td><code>drop-items-from-armor-stands</code></td><td>Drops items from armor stand. Only relevant if <code>kill-instead-of-remove</code> is enabled or if the tick setting for paper.</td></tr><tr><td><code>log-armor-stand-tick-warning</code></td><td>Disable or enable the warning in the log.</td></tr></tbody></table>

### Include or Exclude Worlds

You can exclude  or include worlds from the check entirely by adding them to this list. And setting the mode, for example:

```yaml
worlds:
  mode: "excluded"
  worlds: ["world"]
```

#### Included

To only run the check on the listed worlds, use this configuration:

```yaml
worlds:
  mode: "included"
  worlds: ["world"]
```

#### Excluded

To disable the check on the listed worlds, use this configuration:

<pre class="language-yaml"><code class="lang-yaml"><strong>worlds:  
</strong><strong>  mode: "excluded"
</strong>  worlds: ["world"]
</code></pre>

### Messages

You can customize the messages used in the plugin by editing the messages block. Common color codes are supported.&#x20;

In some messages some internal placeholders are used: `{material}`, `{amount}`. You can remove these if you don't want to use them.


# blocks.yml

{% hint style="warning" %}
By default, this feature is disabled. Enable is by setting `enabled` to `true`
{% endhint %}

### Blocks

You can limit any block in a chunk as long as it's from <https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html>

For example:

```yaml
blocks:
  SPAWNER: 10
```

### Notifications

You can modify which notifications players receive if a limit has been reached.

```yaml
notify:
  title: true
  message: false
```

{% hint style="info" %}
Want to modify the messages & titles themselves? See [config.yml](/4.3.12/configuration/config.yml#messages)
{% endhint %}

### World Settings (count)

You can modify the default y values being checked by the plugin. Anything between these 2 values will be checked. This is useful if you aren't running the latest server version, modified your world height, or just want to modify these values for some reason.

```yaml
count:
  default:
    min-y: -64
    max-y: 256
```

#### Specific World Settings

You can specify specific worlds as well. For example:

<pre class="language-yaml"><code class="lang-yaml"><strong>worlds:
</strong>  world_nether:
    min-y: 0
    max-y: 128
</code></pre>


# FAQ

* Are modded blocks supported? Not yet, I haven't decided if this is outside the scope of this project or not. Possibly in the future.
* Is 1.8 supported? Not yet. This will be added in the future.


# Installation

Installation is easy! Just download the plugin, and place the jar into your plugins folder. Restart your server, modify the settings files, and reload using `/csl reload` if needed.


# Commands & Permissions

<table><thead><tr><th width="184">Command</th><th width="165">Alias</th><th>Description</th><th>Permission</th></tr></thead><tbody><tr><td><code>/csl reload</code></td><td><code>/cslreload</code></td><td>Reloads the plugin configuration.</td><td><code>csl.reload</code></td></tr><tr><td><code>/csl info</code></td><td><code>/cslinfo</code></td><td>Shows the current spawn reasons &#x26; entity limits.</td><td><code>csl.info</code></td></tr><tr><td><code>/csl settings</code></td><td><code>/cslsettings</code></td><td>Shows the current settings &#x26; messages.</td><td><code>csl.settings</code></td></tr><tr><td><code>/csl search</code></td><td><code>/cslsearch</code></td><td>Shows the available entities.</td><td><code>csl.search</code></td></tr></tbody></table>


# /csl search

This command helps for viewing the available entities.

<figure><img src="/files/vbVXTbTYhtFFt0cSFXyi" alt=""><figcaption><p>search command preview</p></figcaption></figure>


# config.yml

### Entity Limits

{% hint style="info" %}
Use entities from <https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/EntityType.html>

You can use the in-game command /cslsearch to view the above list as well.
{% endhint %}

#### Groups

You can also set limits on groups. The available mobs change depending on your server's version, so keep that in mind.

<table><thead><tr><th width="150">Group</th><th>Example Mobs (1.20.4)</th></tr></thead><tbody><tr><td><code>ANIMAL</code></td><td>Chicken, Cow, MushroomCow, Ocelot, Pig, Sheep, Wolf</td></tr><tr><td><code>MONSTER</code></td><td>Blaze, CaveSpider, Creeper, Enderman, Giant, PigZombie, Silverfish, Skeleton, Spider, Witch, Wither, Zombie</td></tr><tr><td><code>AMBIENT</code></td><td>Bat</td></tr><tr><td><code>WATER_MOB</code></td><td>Squid, Fish</td></tr><tr><td><code>NPC</code></td><td>Villager</td></tr><tr><td><code>VEHICLE</code></td><td>Boat, Minecart</td></tr><tr><td><code>OTHER</code></td><td>Everything else</td></tr></tbody></table>

### Spawn Reasons

You can define what spawn reasons the plugin should check a chunk for. Simply by setting true or false.

{% hint style="info" %}
Use reasons from <https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/entity/CreatureSpawnEvent.SpawnReason.html>
{% endhint %}

For example, if I want the chunk to be checked when an iron golem is built, I would set:

```yaml
spawn-reasons:
  BUILD_IRONGOLEM: true
```

### Properties

<table><thead><tr><th width="307">Property</th><th>Description</th></tr></thead><tbody><tr><td><code>check-chunk-load</code></td><td>Check a chunk upon load (ChunkLoadEvent).</td></tr><tr><td><code>check-chunk-unload</code></td><td>Check a chunk upon unload (ChunkUnloadEvent).</td></tr><tr><td><code>active-inspections</code></td><td><p>When a chunk is loaded, recheck it periodically.</p><p>Check-chunk-load must be true for this to work.</p></td></tr><tr><td><code>debug</code></td><td>Debug messages, will spam the console with verbose messages when set to true. Best to not set this to true unless debugging an issue.</td></tr><tr><td><code>watch-creature-spawn</code></td><td>Check a chunk when a mob spawns (CreatureSpawnEvent).</td></tr><tr><td><code>watch-vehicle-create-event</code></td><td>Check a chunk when a vehicle spawns (VehicleCreateEvent).</td></tr><tr><td><code>watch-entity-spawns</code></td><td>Check a chunk when an armor stand spawns (EntitySpawnEvent). Catches everything that <code>watch-creature-spawn</code> doesn't catch.</td></tr><tr><td><code>check-surrounding-chunks</code></td><td>Radius of surrounding chunks to check.</td></tr><tr><td><code>inspection-frequency</code></td><td>How often, in seconds, to check the chunk.</td></tr><tr><td><code>notify-players</code></td><td>Notify players in that chunk if stuff has been culled.</td></tr><tr><td><code>preserve-named-entities</code></td><td>Prioritize entities without names over older entities.</td></tr><tr><td><code>preserve-raid-entities</code></td><td>Don't remove pillagers that are part of a raid.</td></tr><tr><td><code>ignore-metadata</code></td><td>Ignore entities with any of the following metadata. For example, shopkeeper npcs.</td></tr><tr><td><code>kill-instead-of-remove</code></td><td>Kills an entity instead of removing it.</td></tr><tr><td><code>drop-items-from-armor-stands</code></td><td>Drops items from armor stand. Only relevant if <code>kill-instead-of-remove</code> is enabled or if the tick setting for paper.</td></tr><tr><td><code>log-armor-stand-tick-warning</code></td><td>Disable or enable the warning in the log.</td></tr></tbody></table>

### Include or Exclude Worlds

You can exclude  or include worlds from the check entirely by adding them to this list. And setting the mode, for example:

```yaml
worlds:
  mode: "excluded"
  worlds: ["world"]
```

#### Included

To only run the check on the listed worlds, use this configuration:

```yaml
worlds:
  mode: "included"
  worlds: ["world"]
```

#### Excluded

To disable the check on the listed worlds, use this configuration:

<pre class="language-yaml"><code class="lang-yaml"><strong>worlds:  
</strong><strong>  mode: "excluded"
</strong>  worlds: ["world"]
</code></pre>

### Messages

You can customize the messages used in the plugin by editing the messages block. Common color codes are supported.&#x20;

In some messages some internal placeholders are used: `{material}`, `{amount}`. You can remove these if you don't want to use them.


# blocks.yml

{% hint style="warning" %}
By default, this feature is disabled. Enable is by setting `enabled` to `true`
{% endhint %}

### Blocks

You can limit any block in a chunk as long as it's from <https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html>

For example:

```yaml
blocks:
  SPAWNER: 10
```

### Notifications

You can modify which notifications players receive if a limit has been reached.

```yaml
notify:
  title: true
  message: false
```

{% hint style="info" %}
Want to modify the messages & titles themselves? See [config.yml](/4.4.0/configuration/config.yml#messages)
{% endhint %}

### World Settings (count)

You can modify the default y values being checked by the plugin. Anything between these 2 values will be checked. This is useful if you aren't running the latest server version, modified your world height, or just want to modify these values for some reason.

```yaml
count:
  default:
    min-y: -64
    max-y: 256
```

#### Specific World Settings

You can specify specific worlds as well. For example:

<pre class="language-yaml"><code class="lang-yaml"><strong>worlds:
</strong>  world_nether:
    min-y: 0
    max-y: 128
</code></pre>

### Advanced Cache Settings

By default the cache kicks in for limits above 50, you can change this to whatever you want.

```yaml
cache:
  min-limit-for-cache: 50
```


# FAQ

* Are modded blocks supported? Not yet, I haven't decided if this is outside the scope of this project or not. Possibly in the future.
* Is 1.8 supported? Yes! Since 5.0.0, CSL supports 1.8.8->1.21.11 :)


# Installation

Installation is easy! Just download the plugin, and place the jar into your plugins folder. Restart your server, modify the settings files, and reload using `/csl reload` if needed.


# Migrate to 5.0.0

## Migration Guide (Old → New Config)

This guide explains how to convert your old CSL configuration to the new structured format.

The new config is cleaner, grouped logically, and more flexible — but some paths have changed.

***

## 🧭 Overview of Changes

| Old Config                     | New Config                                  |
| ------------------------------ | ------------------------------------------- |
| `debug`                        | `debug-messages`                            |
| `watch-creature-spawn`         | `events.spawn.creature`                     |
| `watch-vehicle-create-event`   | `events.spawn.vehicle`                      |
| `watch-entity-spawns`          | `events.spawn.entity`                       |
| `active-inspections`           | `events.inspections.enabled`                |
| `inspection-frequency`         | `events.inspections.frequency`              |
| `preserve-named-entities`      | `entities.preservation.named-entities`      |
| `preserve-raid-entities`       | `entities.preservation.raid-entities`       |
| `kill-instead-of-remove`       | `entities.removal.mode`                     |
| `drop-items-from-armor-stands` | `entities.removal.armor-stand.drop`         |
| `log-armor-stand-tick-warning` | `entities.removal.armor-stand.log-warnings` |
| `ignore-metadata`              | `entities.ignore.metadata`                  |
| `spawn-reasons:` (boolean map) | `spawn-reasons:` (list)                     |
| `worlds.worlds`                | `worlds.list`                               |

***

## 1. Debug Setting

#### Old

```yaml
debug: true
```

#### New

```yaml
debug-messages: true
```

***

## 2. Spawn Event Watching

#### Old

```yaml
watch-creature-spawn: true
watch-vehicle-create-event: true
watch-entity-spawns: true
```

#### New

```yaml
events:
  spawn:
    creature: true
    vehicle: true
    entity: true
```

***

## 3. Chunk Inspections

#### Old

```yaml
active-inspections: true
inspection-frequency: 60
```

#### New

```yaml
events:
  inspections:
    enabled: true
    frequency: 60
```

***

## 4. Preservation Settings

#### Old

```yaml
preserve-named-entities: true
preserve-raid-entities: true
```

#### New

```yaml
entities:
  preservation:
    named-entities: true
    raid-entities: true
```

***

## 5. Removal Mode Changes

#### Old

```yaml
kill-instead-of-remove: true
```

The old config only allowed remove or kill behavior.

#### New

```yaml
entities:
  removal:
    mode: "enforce"
```

### Mode Conversion Guide

| Old Behavior            | New Mode         |
| ----------------------- | ---------------- |
| Remove excess           | `"remove"`       |
| Kill excess             | `"kill"`         |
| Remove + actively check | `"enforce"`      |
| Kill + actively check   | `"enforce-kill"` |

If you previously had:

```yaml
kill-instead-of-remove: true
```

Use:

```yaml
mode: "kill"
```

or

```yaml
mode: "enforce-kill"
```

***

## 6. Armor Stand Settings

#### Old

```yaml
drop-items-from-armor-stands: false
log-armor-stand-tick-warning: true
```

#### New

```yaml
entities:
  removal:
    armor-stand:
      drop: false
      log-warnings: true
```

***

## 7. Ignored Metadata

#### Old

```yaml
ignore-metadata:
  - shopkeeper
```

#### New

```yaml
entities:
  ignore:
    metadata:
      - shopkeeper
```

NBT support is now grouped under the same section:

```yaml
entities:
  ignore:
    nbt:
      - "tag"
```

⚠ Requires NBTAPI installed.

***

## 8. Spawn Reasons (Major Change)

#### ❗ Old Format (Boolean Map)

```yaml
spawn-reasons:
  BUILD_IRONGOLEM: true
  NATURAL: true
  SPAWNER: false
```

#### ✅ New Format (List)

Only include the reasons you want enabled:

```yaml
spawn-reasons:
  - "BUILD_IRONGOLEM"
  - "NATURAL"
```

If it is in the list → it is checked. If it is not in the list → it is ignored.

***

## 9. World Configuration

#### Old

```yaml
worlds:
  mode: "excluded"
  worlds: ["world"]
```

#### New

```yaml
worlds:
  mode: excluded
  list: ["world"]
```

Only the key name changed from `worlds` → `list`.

***

## 10. Entity Groups

The concept remains the same, but is now clearly separated:

```yaml
entities:
  entity-groups:
    ANIMALS:
      - COW
      - SHEEP
```

Limits are defined separately:

```yaml
entities:
  limits:
    ANIMALS: 50
```

This makes group definitions cleaner and easier to manage.

***

## 11. Block Limits (New Section)

Block restrictions are now fully separated:

```yaml
blocks:
  limits:
    SPAWNER: 10
```

Block groups are also supported:

```yaml
blocks:
  block-groups:
    ores:
      - DIAMOND_BLOCK
      - GOLD_BLOCK
```

This did not exist in the old format.

***

## 🧨 Breaking Changes Summary

* Spawn reasons changed from boolean map → list
* Removal behavior expanded to multiple modes
* Event watching moved under `events`
* Preservation moved under `entities`
* Metadata & NBT filtering grouped under `entities.ignore`
* World list key renamed to `list`

***

## ✅ Recommended Migration Method

1. Stop server
2. Rename old `config.yml` to `config.yml.old`
3. Start server once to generate new config
4. Reapply your custom limits using this guide
5. Restart server

***

## 🆘 Common Migration Mistakes

#### ❌ Leaving old boolean spawn reasons format

New config requires a list.

#### ❌ Using old `kill-instead-of-remove`

This no longer exists.

#### ❌ Forgetting indentation under `entities`

YAML is indentation-sensitive.

***

## 🎉 You’re Done

Your config is now using the new structured CSL format.


# Commands & Permissions

<table><thead><tr><th width="184">Command</th><th width="165">Alias</th><th>Description</th><th>Permission</th></tr></thead><tbody><tr><td><code>/csl reload</code></td><td><code>/cslreload</code></td><td>Reloads the plugin configuration.</td><td><code>csl.reload</code></td></tr><tr><td><code>/csl info</code></td><td><code>/cslinfo</code></td><td>Shows the current spawn reasons &#x26; entity limits.</td><td><code>csl.info</code></td></tr><tr><td><code>/csl settings</code></td><td><code>/cslsettings</code></td><td>Shows the current settings &#x26; messages.</td><td><code>csl.settings</code></td></tr><tr><td><code>/csl search</code></td><td><code>/cslsearch</code></td><td>Shows the available entities.</td><td><code>csl.search</code></td></tr></tbody></table>


# /csl search

This command helps for viewing the available entities.

<figure><img src="/files/vbVXTbTYhtFFt0cSFXyi" alt=""><figcaption><p>search command preview</p></figcaption></figure>


# config.yml

## Main Settings

These are the global plugin settings.

```yaml
enabled: true
debug-messages: false
metrics: true
```

| Setting          | Description                                                                    |
| ---------------- | ------------------------------------------------------------------------------ |
| `enabled`        | Enables or disables the entire plugin.                                         |
| `debug-messages` | Enables verbose debug output in the console. Only enable when troubleshooting. |
| `metrics`        | Enables bStats metrics collection.                                             |

***

## Event Monitoring

Configure which events the plugin listens to and how chunk inspections work.

```yaml
events:
  spawn:
    creature: true
    vehicle: true
    entity: true
  inspections:
    enabled: true
    frequency: 60
```

### Spawn Event Watching

| Setting                 | Description                                                                   |
| ----------------------- | ----------------------------------------------------------------------------- |
| `events.spawn.creature` | Listen to `CreatureSpawnEvent`.                                               |
| `events.spawn.vehicle`  | Listen to `VehicleCreateEvent`.                                               |
| `events.spawn.entity`   | Listen to `EntitySpawnEvent`. Catches entities not handled by creature spawn. |

### Chunk Inspections

| Setting                        | Description                                  |
| ------------------------------ | -------------------------------------------- |
| `events.inspections.enabled`   | Periodically re-check loaded chunks.         |
| `events.inspections.frequency` | How often (in seconds) chunks are rechecked. |

***

## Entity Management

### Entity Groups

You can define your own entity groups.

{% hint style="info" %}
Use entities from <https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/EntityType.html>

You can also use the in-game command `/cslsearch` to view available entity types.
{% endhint %}

Example:

```yaml
entities:
  entity-groups:
    ANIMALS:
      - COW
      - SHEEP
      - PIG
      - CHICKEN
    MONSTERS:
      - ZOMBIE
      - SKELETON
      - CREEPER
```

You may freely add or remove entity types depending on your server version.

***

### Entity Limits

Define maximum entities per chunk per group.

```yaml
entities:
  limits:
    ANIMALS: 50
    MONSTERS: 50
    NPC: 50
    OTHER: 500
```

If a group is not defined in `entity-groups`, it will fall under `OTHER`.

***

### Preservation Settings

```yaml
entities:
  preservation:
    named-entities: true
    raid-entities: true
```

| Setting          | Description                                                 |
| ---------------- | ----------------------------------------------------------- |
| `named-entities` | Prioritizes unnamed entities for removal before named ones. |
| `raid-entities`  | Prevents pillagers involved in raids from being removed.    |

***

### Removal Modes

```yaml
entities:
  removal:
    mode: "enforce"
```

Available modes:

| Mode           | Description                                                   |
| -------------- | ------------------------------------------------------------- |
| `enforce`      | Cleans existing violations and prevents new ones.             |
| `enforce-kill` | Same as enforce, but kills entities instead of removing them. |
| `prevent`      | Only prevents new violations.                                 |
| `remove`       | Instantly removes excess entities.                            |
| `kill`         | Kills excess entities (drops + effects).                      |

#### Armor Stand Options

```yaml
entities:
  removal:
    armor-stand:
      drop: false
      log-warnings: true
```

| Setting        | Description                                  |
| -------------- | -------------------------------------------- |
| `drop`         | Drop items from armor stands when killed.    |
| `log-warnings` | Enable or disable armor stand tick warnings. |

#### Kill Players

```yaml
entities:
  removal:
    kill-players: false
```

If enabled, players exceeding chunk limits may be killed when using kill-based modes.

***

### Ignored Entities

Entities with matching metadata or NBT tags will be ignored.

```yaml
entities:
  ignore:
    metadata:
      - shopkeeper
    nbt:
      - "tag"
```

{% hint style="warning" %}
NBT filtering requires **NBTAPI** <https://modrinth.com/plugin/nbtapi>
{% endhint %}

***

## Spawn Reasons

Define which spawn reasons should be processed.

{% hint style="info" %}
Use reasons from <https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/entity/CreatureSpawnEvent.SpawnReason.html>
{% endhint %}

```yaml
spawn-reasons:
  - "BREEDING"
  - "BUILD_IRONGOLEM"
  - "SPAWNER"
```

To disable a reason, simply remove it from the list.

Example: If you want iron golems built by players to be checked, ensure:

```yaml
- "BUILD_IRONGOLEM"
```

is present in the list.

***

## Block Restrictions

### Block Groups

```yaml
blocks:
  block-groups:
    basic:
      - "STONE"
      - "DIRT"
    ores:
      - "DIAMOND_BLOCK"
      - "GOLD_BLOCK"
```

Block names must match Bukkit `Material` names.

***

### Block Limits

```yaml
blocks:
  limits:
    SPAWNER: 10
```

This example limits spawners to 10 per chunk.

***

## World Configuration

Control which worlds the plugin applies to.

```yaml
worlds:
  mode: excluded
  list: []
```

| Mode       | Description                                    |
| ---------- | ---------------------------------------------- |
| `excluded` | Plugin runs in all worlds except those listed. |
| `included` | Plugin runs only in listed worlds.             |

Example (only run in world):

```yaml
worlds:
  mode: included
  list: ["world"]
```

***

## Notifications

Configure player notifications when entities or blocks are blocked or removed.

```yaml
notifications:
  enabled: false
  cooldown-seconds: 3
  method:
    title: true
    message: false
```

| Setting            | Description                                |
| ------------------ | ------------------------------------------ |
| `enabled`          | Enable player notifications.               |
| `cooldown-seconds` | Cooldown between notifications per player. |
| `method.title`     | Send as title/subtitle.                    |
| `method.message`   | Send as chat message.                      |

***

### Custom Messages

You may use color codes with `&`.

Available placeholders:

* `{count}` — Number of entities affected
* `{type}` — Entity or block type
* `{material}` — Block material
* `{amount}` — Maximum allowed amount

Example:

```yaml
notifications:
  messages:
    entities-blocked: "&7Blocked {count} {type} from spawning in your chunk."
    entities-removed: "&7Removed {count} {type} in your chunk."
    reload-complete: "&cReloaded csl config."
    max-blocks: "&6Cannot place more &4{material}&6. Max amount per chunk &2{amount}."
    max-blocks-title: "&6Cannot place more &4{material}&6."
    max-blocks-subtitle: "&6Max amount per chunk &2{amount}."
```

You may remove placeholders if not needed.


