# Оптимизация сервера

ТПС на ванильном сервере — большая проблема.

Как только сервер достигает онлайна от 80 игроков, удерживать стабильные показатели ТПС на сервере без оптимизации становится практически невозможно. Сервер требует вмешательства в механики и работу сущностей, чтобы сбалансировать нагрузку и ощущения от игры для игроков. Именно по этой причине, на нашем проекте есть множество методов по повышению стабильности сервера без практически видимого вмешательства в ванильную игру

***

<h2 align="center">Оптимизация на <a href="/pages/oYtvvSQzlyVKvtPB56TB">мире ферм</a></h2>

Ключевой мир для постройки ферм любого вида, создания трейдхоллов, тяжёлых механизмов сортировки и всего, что очень чувствительно к ванильным настройкам игры. Мир ферм — не игровой мир. Всё что делается на мире ферм, делается исключительно для правильной работы ванильных механик, а значит, что ТПС там находится на втором плане.

### №1. Размножение и интеллект жителей

Администрация понимает, что огромная доля развития на сервере строиться именно через торговлю с жителями, поэтому на мире ферм мы постарались практически никак не ограничивать жителей, даже в ситуациях, которые очевидно требуют этого для повышения производительности сервера.

#### 📶 Ограничения в ситуации если MSPT менее 45:

1. 16 или более жителей в 1 чанке — Отключение размножения.
2. 20 или более жителей в 1 чанке — Отключение интеллекта.

#### 🚨 Ограничения в ситуации если MSPT более 60 отсутствуют

### №2. Размножение и интеллект обычных мобов

Несмотря на то, что мир ферм старается сохранять максимально ванильное поведение мобов до последнего, мы так же понимаем, что в некоторых ситуациях в этом нет никакого смысла, поскольку некоторые мобы никак не используются на фермах и от их правильной работы не зависит ванильное развитие игрока.

#### 📶 Ограничения в ситуации если MSPT менее 45:

1. 30 или более зомбифицированных пиглинов в 1 чанке — Очистка мобов этого типа в чанке.
2. 80 или более животных[^1] в 5 блоках — Очистка мобов этого типа в радиусе.

#### 🚨 Ограничения в ситуации если MSPT более 60:

1. 5 или более животных[^1] в 5 блоках — Отключение случайных движение и коллизии.
2. 20 или более животных[^1] в 5 блоках — Отключение интеллекта.
3. 10 или более монстров в 5 блоках — Очистка мобов этого типа в радиусе.

### №3. Оптимизация параметров

На мире ферм мы стараемся сгладить углы и оптимизировать параметры ядра настолько, насколько это возможно в условиях, когда мы пытаемся не затронуть ванильную игру, позволяя раскрыться всем вашим фермам на полную. Настройка сервера проверена временем и мы можем уверенно сказать вам, что настройки указанные ниже негативно не повлияют на ваш игровой опыт на сервере.

<h4 align="center">Прорисовка и симуляция:</h4>

{% code title="server.properties" %}

```
view-distance=9
simulation-distance=8
```

{% endcode %}

<h4 align="center">Спавнрейт:</h4>

{% code title="bukkit.yml" %}

```
spawn-limits:
  monsters: 30
  animals: 3
  water-animals: 10
  water-ambient: 3
  water-underground-creature: 2
  axolotls: 2
  ambient: 0
ticks-per:
  monster-spawns: 10
  animal-spawns: 400
  water-spawns: 200
  water-ambient-spawns: 600
  water-underground-creature-spawns: 250
  axolotl-spawns: 250
  ambient-spawns: 10000
```

{% endcode %}

<h4 align="center">Тики воронок:</h4>

{% code title="spigot.yml" %}

```
ticks-per:
  hopper-transfer: 8
  hopper-check: 1
hopper-amount: 1
```

{% endcode %}

<h4 align="center">Радиус активации мобов:</h4>

{% code title="spigot.yml" %}

```
entity-activation-range:
  animals: 8
  monsters: 48
  raiders: 48
  misc: 4
  water: 16
  villagers: 16
  flying-monsters: 8
```

{% endcode %}

<h4 align="center">Другие тики</h4>

{% code title="paper-world-defaults.yml" %}

```
tick-rates:
  behavior:
    villager:
      acquirepoi: 200
      validatenearbypoi: 160
  container-update: 4
  dry-farmland: 4
  grass-spread: 2
  mob-spawner: 8
  sensor:
    villager:
      nearestbedsensor: 160
      nearestlivingentitysensor: 80
      playersensor: 80
      secondarypoisensor: 240
      villagerbabiessensor: 80
  wet-farmland: 4
```

{% endcode %}

<h4 align="center">Неподдерживаемые ванильные функции:</h4>

{% code title="paper-global.yml" %}

```
unsupported-settings:
  allow-headless-pistons: false
  allow-permanent-block-break-exploits: true
  allow-piston-duplication: true
  allow-unsafe-end-portal-teleportation: true
  perform-username-validation: true
  skip-tripwire-hook-placement-validation: false
  skip-vanilla-damage-tick-when-shield-blocked: false
  update-equipment-on-player-actions: true
```

{% endcode %}

<h2 align="center">Оптимизация на <a href="/pages/PG3WUBpz7i4pdv2rgl0N">мире построек</a></h2>

Самый важный мир для нашего сервера. Именно на нём происходит основная жизнь проекта, а значит, что большая часть онлайна находиться именно на нём в пиковое игровое время. Чтобы довести значения ТПС до максимума мы уже внедрили [мир ферм](/whiteshield/whiteshield-1/miry/mir-ferm.md), подробнее о котором вы можете узнать в одноименной статье, но так же нам необходимо мотивировать игроков строить все базы именно на мире ферм, для чего он и предназначен.

### №1. Размножение и интеллект жителей

Ограничения жителей, их интеллекта и размножения это классический способ любого сервера оптимизировать проект. В случае мира построек, на котором игроки практически никогда не строят трейдхоллы — мы стараемся как можно сильнее ограничивать их ванильное поведения в экстренных случаях.

#### 📶 Ограничения в ситуации если MSPT менее 45:

1. 8 или более жителей в 1 чанке — Отключение размножения.
2. 10 или более жителей в 1 чанке — Отключение интеллекта.

#### 🚨 Ограничения в ситуации если MSPT более 45:

1. 1 или более жителей в 1 блоке — Отключение интеллекта.

{% hint style="info" %}
Жители в мире построек продают любые ресурсы исключительно за изумрудные блоки.
{% endhint %}

### №2. Размножение и интеллект обычных мобов

Мы одобряем строительство простых ферм с животными на мире построек и поэтому практически не применяем сильных ограничений в отношении к ним, за исключением ситуаций, когда того требует сильная нагрузка на сервер.

#### 📶 Ограничения в ситуации если MSPT менее 45:

1. 10 или более зомбифицированных пиглинов в 1 чанке — Очистка мобов этого типа в чанке.
2. 50 или более животных[^1] в 5 блоках — Очистка мобов этого типа в радиусе.

#### 🚨 Ограничения в ситуации если MSPT более 45:

1. 5 или более животных[^1] в 5 блоках — Отключение случайных движение и коллизии.

### №3. Оптимизация параметров

Существует множество способов оптимизировать сервер при помощи тонкой настройки параметров ядра сервера, они позволяют бесшовно повысить производительность и практически без видимых изменений повлиять на конечные показатели MSPT.

<h4 align="center">Прорисовка и симуляция:</h4>

{% code title="server.properties" %}

```
view-distance=8
simulation-distance=4
```

{% endcode %}

<h4 align="center">Спавнрейт:</h4>

{% code title="bukkit.yml" %}

```
spawn-limits:
  monsters: 1
  animals: 1
  water-animals: 1
  water-ambient: 0
  water-underground-creature: 0
  axolotls: 1
  ambient: 0
ticks-per:
  monster-spawns: 200
  animal-spawns: 400
  water-spawns: 600
  water-ambient-spawns: 600
  water-underground-creature-spawns: 250
  axolotl-spawns: 250
  ambient-spawns: 10000
```

{% endcode %}

<h4 align="center">Тики воронок:</h4>

{% code title="spigot.yml" %}

```
ticks-per:
  hopper-transfer: 16
  hopper-check: 1
hopper-amount: 1
```

{% endcode %}

<h4 align="center">Радиус активации мобов:</h4>

{% code title="spigot.yml" %}

```
entity-activation-range:
  animals: 8
  monsters: 24
  raiders: 32
  misc: 4
  water: 16
  villagers: 16
  flying-monsters: 8
```

{% endcode %}

<h4 align="center">Другие тики</h4>

{% code title="paper-world-defaults.yml" %}

```
tick-rates:
  behavior:
    villager:
      acquirepoi: 200
      validatenearbypoi: 240
  container-update: 4
  dry-farmland: 6
  grass-spread: 4
  mob-spawner: 32
  sensor:
    villager:
      nearestbedsensor: 160
      nearestlivingentitysensor: 80
      playersensor: 120
      secondarypoisensor: 240
      villagerbabiessensor: 80
  wet-farmland: 6
```

{% endcode %}

<h4 align="center">Неподдерживаемые ванильные функции:</h4>

{% code title="paper-global.yml" %}

```
unsupported-settings:
  allow-headless-pistons: false
  allow-permanent-block-break-exploits: true
  allow-piston-duplication: true
  allow-unsafe-end-portal-teleportation: true
  perform-username-validation: true
  skip-tripwire-hook-placement-validation: false
  skip-vanilla-damage-tick-when-shield-blocked: false
  update-equipment-on-player-actions: true
```

{% endcode %}

[^1]: Коровы, курицы, свиньи, овцы и т.д.


---

# 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://whiteshield.gitbook.io/whiteshield/tekhnicheskie-voprosy/optimizaciya-servera.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.
