Конфигурация сервера и лимиты
Раздел будет дополняться.
Последнее обновление - 20 января 2025
Конфигурация выделенного сервера:
CPU: AMD Ryzen™ 9 5950X
RAM: 128 GB DDR4 ECC
SSD: 2 x 3.84 TB NVMe
Сеть: 1 Gbit/s
ОС: Ubuntu 22.04.1 LTS
Местоположение: Германия
Ядро сервера:
У нас стоит Pufferfish, не плюс версия, а обычная.
Ограничение по мобам:
Ограничение интеллекта жителей
На сервере стоит собственная система ограничения работы жителей:
чем больше жителей в конкретной области, тем ближе к ним надо подойти, чтобы “оживить”.
При этом, система не влияет на обновление торгов, а затрагивает только реакцию жителей на внешние факторы: поиск путей и испуг.
Максимальная дальность:
Самый лучший случай - когда жителей не более 5 и TPS на сервере 20, тогда ограничение самое простое:
32 блока по X/Z и 30 по Y.
Как только жителей больше 5, из радиуса X/Z вычитается количество жителей - это новый радиус для данного количества жителей. Не может быть меньше 3.
Высота вычитает 1 блок на каждого второго жителя. Так же не может быть меньше 3.
Если TPS меньше 20, на каждый потерянный TPS вычитается 4 блока радиуса (вычитаемое значение обновляется раз в 30 секунд). То есть если TPS 15, то дополнительно у радиуса прогрузки вычитается 5*3 блоков - то есть 15. Но минимальное значение прогрузки все равно не может быть меньше 3.
Таким образом под сильные ограничения попадают только фермы жителей и трейд-холлы - как раз то, что вызывает лаги.
Ограничения на количество существ
Из-за того, что игроки любят бесконечно размножать мобов в загонах, а также строить излишне эффективные фермы, все остальные мобы тоже ограничены.
Ограничение работает таким образом:
Когда моб хочет заспавниться, он проверяет есть ли в радиусе 8 блоков еще такие же мобы и сверяет с ограничением этого моба на чанк (радиус - 8 блоков), затем проверяется количество мобов в округе (радиус - 50 блоков) и сверяется с лимитом на округу. Если любой из лимитов превышен, моб просто не заспавнится.
Мы вряд ли будем наказывать строго по таблице ниже. Но при существенном обходе системы путем переноса мобов из чанка в чанк на лодке и т.п. - у нас появятся вопросы. Мы обращаем внимание на скопления мобов более 150 в одном месте, поэтому не превышайте это количество. При этом сложные фермы (с множеством механизмов) могут уменьшить этот порог в некоторых случаях.
Внимание!
Правило на 30 жителей в радиусе прогрузки - это не то же самое, что ограничение на спавн мобов!
По правилам разрешается иметь до 30 жителей в зоне прогрузки игрока (не важно, как они окажутся там рядом), но размножаться жители перестанут раньше - согласно таблице ограничений ниже!
Ограничения конкретно по мобам:
Моб | Максимум/Радиус 8 блоков | Максимум/Радиус 50 блоков |
|---|---|---|
Гварды | 5 | 15 |
Пауки | 8 | 16 |
Слаймы | 30 | 30 |
Скелеты | 8 | 16 |
Криперы | 8 | 16 |
Зомби | 8 | 16 |
Эндермены | 8 | 16 |
Свинозомби | 8 | 16 |
Железные големы | 4 | 12 |
АрморСтенды | 10 | 20 |
Спруты | 6 | 12 |
Жители | 5 | 10 |
Рамки | 10 | 20 |
Овцы | 10 | 20 |
Курицы | 10 | 20 |
Коровы | 10 | 20 |
Пчёлы | 15 | 30 |
Вагонетки | 15 | 30 |
Шалкеры | 15 | 30 |
Снежный голем | 15 | 30 |
Лошади | 20 | 30 |
Любой другой моб | 5 | 10 |
Конфиги серверов:
Тут можно узнать как часто спавнятся мобы, от скольки блоков спавнятся и деспавнятся, видят игрока и многие других технические настройки.
bukkit.yml
Подробнее о каждом параметре https://bukkit.fandom.com/wiki/Bukkit.yml/ru
spawn-limits: # Количество мобов на игрока
monsters: 20 # Монстры
animals: 5 # Животные
water-animals: 2 # Водные животные (Дельфины, спруты, ...)
water-ambient: 2 # Водные животные (Рыбы)
water-underground-creature: 3 # Водные животные (Светящийся спрут)
axolotls: 3 # Оксылотл
ambient: 1 # Окружение (Летучие мыши)
ticks-per: # Количество тиков на спавн моба
animal-spawns: 400 # 20 сек
monster-spawns: 10 # 0,5 сек
water-spawns: 100 # 5 сек
water-ambient-spawns: 400 # 20 сек
water-underground-creature-spawns: 400 # 20 сек
axolotl-spawns: 400 # 20 сек
ambient-spawns: 400 # 20 секspigot.yml
Подробнее о каждом параметре https://www.spigotmc.org/wiki/spigot-configuration/
world-settings:
default:
hanging-tick-frequency: 200 # Время проверки декоративных сущностей (стойки/рамки/картины и т.д.)
arrow-despawn-rate: 300 # 15 секунд на даспавн
trident-despawn-rate: 1200 # 60 секунд на даспавн
mob-spawn-range: 3 # Радиус в чанках от игрока, где будут спавнится мобы
entity-activation-range: # Радиус в котором ентити будут активничать
animals: 24
monsters: 24
raiders: 48
misc: 8
water: 8
villagers: 20
flying-monsters: 48
tick-inactive-villagers: false # Инактивные жители не тикают
entity-tracking-range: # Радиус в котором ентити будут видны
players: 128 # Игрок
animals: 48 # Жители, обычные/водные животные
monsters: 48 # Монстры, рейдеры и фантомы
misc: 32 # Таблички, картины, рамки, дроп итемов, опыт
display: 64 # Дисплей-энтити
other: 64 # Все остальное (Например: Стойки для брони)paper-global.yml
Подробнее о каждом параметре https://docs.papermc.io/paper/reference/global-configuration
item-validation:
book-size:
page-max: 1280 # Ограничение в байтах на резмер книг
misc:
max-joins-per-tick: 1
unsupported-settings:
allow-headless-pistons: true
allow-permanent-block-break-exploits: true
allow-piston-duplication: true
perform-username-validation: truepaper-world-defaults.yml
Подробнее о каждом параметре https://docs.papermc.io/paper/reference/world-configuration
chunks:
auto-save-interval: 6000 # Авто сейв чанков на диск
delay-chunk-unloads-by: 10s # Время через которое выгружаются неактивные чанки из ОЗУ сервера
entity-per-chunk-save-limit:
area_effect_cloud: 8
arrow: 16
dragon_fireball: 3
egg: 8
ender_pearl: 8
experience_bottle: 3
experience_orb: 16
eye_of_ender: 8
fireball: 8
firework_rocket: 8
llama_spit: 3
potion: 8
shulker_bullet: 8
small_fireball: 8
snowball: 8
spectral_arrow: 16
trident: 16
wither_skull: 4
max-auto-save-chunks-per-tick: 8
prevent-moving-into-unloaded-chunks: true
collisions:
max-entity-collisions: 4 # Количество ентити которое сможет толкаться если они слишком близко
entities:
behavior:
pillager-patrols:
disable: false
spawning:
creative-arrow-despawn-rate: 400
despawn-ranges:
ambient:
hard: 54
soft: 32
axolotls:
hard: 54
soft: 32
creature:
hard: 54
soft: 32
misc:
hard: 54
soft: 32
monster:
hard: 54
soft: 32
underground_water_creature:
hard: 54
soft: 32
water_ambient:
hard: 54
soft: 32
water_creature:
hard: 54
soft: 32
duplicate-uuid:
mode: SAFE_REGEN
safe-regen-delete-range: 32
iron-golems-can-spawn-in-air: false
non-player-arrow-despawn-rate: 400
per-player-mob-spawns: true
fixes:
disable-unloaded-chunk-enderpearl-exploit: true
hopper:
cooldown-when-full: true
misc:
legacy-ender-pearl-behavior: true
redstone-implementation: ALTERNATE_CURRENT # Достаточно ванильное поведение редстоуна, но могут быть отличия
update-pathfinding-on-block-update: false
spawn:
keep-spawn-loaded: false # Спавн чанки отключены, то есть они не прогружаются 24/7
tick-rates:
behavior:
villager:
validatenearbypoi: 70
container-update: 1
grass-spread: 2
mob-spawner: 2
sensor:
villager:
secondarypoisensor: 40
unsupported-settings:
fix-invulnerable-end-crystal-exploit: truepufferfish.yml
Подробнее о каждом параметре https://docs.pufferfish.host/setup/pufferfish-fork-configuration/
enable-books: true
misc:
disable-method-profiler: true
projectile:
max-loads-per-tick: 10
max-loads-per-projectile: 10
enable-async-mob-spawning: true
allow-end-crystal-respawn: true
inactive-goal-selector-throttle: true
enable-suffocation-optimization: true
dab:
enabled: true
start-distance: 12
max-tick-freq: 20
activation-dist-mod: 7
blacklisted-entities:
- villager # - не влияет на жителей, потому что работает самописная оптимизация жителей
tps-catchup: falseСпавн и деспавн мобов:
Ниже график как работает спавн мобов. Это ванильная механика, мы только уменьшили значения Hard Despawn с 128 до 54 блока.
Пояснение графика
Цилиндр указывает диапазон появления мобов.
Красная сфера указывает на зону появления мобов (между 24 и 54 блоками).
Зеленая сфера указывает на зону, свободную от мобов, так как моб не будет появляться так близко к игроку (до 24 блока).
Любой моб, попадающий под кольцо до 32 блока (диапазон активации сущности), будет тикать в нормальном режиме.
Любой моб, находящийся между кольцом из 32–54 блока, будет тикать медленее.
Моб, который выходит за пределы 54-го блока, мгновенно исчезает.
Прорисовка на серверах
Сервер: | Тикающие чанки: | Визуальные чанки: | В сумме: |
|---|---|---|---|
Arboria | 4 | 6 | 10 |
Taigara | 4 | 6 | 10 |
Terravia | 4 | 6 | 10 |
Chronix | 4 | 6 | 10 |
Loot | 4 | 4 | 8 |
End+/Arts | 4 | 5 | 9 |
Например, прорисовка “4 + 6 (без тика)” означает, что 4 чанка где мобы двигаются и т.д., но в дополнительных 6 (следовательно, всего 10) видны только блоки, эти чанки по сути не настоящие, они только для видимости.