▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Плагины/FrozenVillagers
FrozenVillagers

FrozenVillagers

Cuts villager lag without changing how villagers play. Slows down villagers in trading cells and breeder surplus, keeps restocks and level ups working, never touches iron farms or villages.

Оцените первым
21
2
Все версии→FrozenVillagers 1.0.0

FrozenVillagers 1.0.0

Release22.10.2026

Список изменений

FrozenVillagers 1.0.0

Cuts villager lag without changing how villagers play. FrozenVillagers finds the villagers whose AI isn't doing anything useful, slows them down, and keeps trading, restocks and level ups working the vanilla way. First release, published as a beta.

Highlights

  • Automatic, no name tags or blocks. Villagers locked in a 1x1 trading cell and the jobless surplus piled up next to a breeder are slowed down on their own: their AI runs 1 second every 10.
  • Gameplay stays vanilla. Trading, prices and reputation are unchanged, level ups happen the vanilla way with the new trades, and restocks happen at fixed times of day (07:00, 12:00 and 17:00 by default) when a player opens the trades.
  • Leaves the right villagers alone. Iron farms, villages, babies, villagers that never traded (so rerolling works), NPCs and villagers changed by other plugins are never touched automatically.
  • Staff control. /fv freeze, /fv unfreeze and /fv auto for any villager, by radius or selector, and /fv inspect to see what the plugin does with a villager and why.
  • Safe. It never makes villagers invincible and never removes them. Slowed down villagers get their AI back right away when they are hurt, near a raid, or when a bed or workstation is placed nearby, and when the plugin is removed.
  • Easy to switch to. /fv adopt takes over villagers optimized by BubbleVillagers, VillagerOptimizer or AntiVillagerLag, or let migration.adopt-other-optimizers do it as chunks load.

Results

Average tick time (MSPT) on Paper 26.2. Above 50 ms a server lags.

Without the pluginFrozenVillagers
1,146 villagers like a busy survival server, default config50.7 ms18.6 ms (-63%)
Same, trading halls frozen by staff50.7 ms13.4 ms (-74%)
4,000 villagers with a player online, automatic208 ms, 4.8 TPS88 ms, 11.3 TPS
4,000 villagers, everything frozen by staff208 ms, 4.8 TPS7.2 ms, 20 TPS

The plugin itself costs about 0.1 to 0.25 ms per tick, shown live in /fv status. How it was measured is in the README.

Installation

  1. Put FrozenVillagers-1.0.0.jar in plugins and restart the server.
  2. That's it: trapped and surplus villagers are handled automatically.
  3. Optionally freeze your biggest trading halls with /fv freeze <radius>, and check everything with /fv status and /fv inspect.

Commands

All commands need frozenvillagers.admin (op by default). /fv is short for /frozenvillagers.

CommandWhat it does
/fv freeze [radius|selector]Freezes villagers
/fv unfreeze [radius|selector]Gives them their AI back and excludes them from the automatic features
/fv auto [radius|selector]Puts them back to automatic
/fv adopt [radius|selector]Takes over villagers another optimizer plugin froze
/fv inspect [selector]Shows what the plugin does with a villager and why
/fv statusCounts the villagers and shows the plugin's own cost
/fv reloadReloads the config

Without an argument a command works on the villager you are looking at. A number is a radius around you. A selector also works from the console.

Configuration

The defaults work out of the box. The options you are most likely to change:

OptionDefaultWhat it does
restock.times[1000, 6000, 11000]Restock windows in day time: 07:00, 12:00 and 17:00
restock.modereset-usesreset-uses keeps prices as they are, vanilla lets demand raise them
restock.require-workstationfalseOnly restock villagers whose workstation is still next to them
surplus.crowd12How many jobless villagers without a bed make a crowd
births.enabledfalseStop breeding when there is too much surplus around the breeder
freeze.disable-physicsfalseAlso turn off physics for villagers frozen by staff
migration.adopt-other-optimizersfalseAdopt villagers from BubbleVillagers and similar plugins as they load
worlds[]Worlds for the automatic features, empty means all
The full config.yml
# FrozenVillagers. Every option is explained in the README.

# Worlds where the automatic optimizations run. An empty list means all
# worlds. Villagers frozen by staff with /fv freeze stay frozen everywhere.
worlds: []

# How often, in ticks, each villager is checked again. The checks are spread
# over these ticks, so they never all happen at once. 100 = 5 seconds.
check-interval: 100

# For switching from BubbleVillagers, VillagerOptimizer or AntiVillagerLag.
# With true, every villager those plugins optimized is adopted on its own
# when its chunk loads, like /fv adopt does. Villagers whose AI any other
# plugin turned off are still left alone. Turn it off again once
# /fv status shows no villagers without AI because of another plugin.
migration:
  adopt-other-optimizers: false

# /fv freeze, for staff.
freeze:
  # Frozen villagers always have their AI, item pickup and pushing turned
  # off. With true their physics are off too: they no longer fall or get
  # pushed by water. Saves a bit more, but only use it for villagers that
  # stand on solid ground.
  disable-physics: false
  # The largest radius allowed in /fv freeze, unfreeze, auto and adopt.
  max-command-radius: 32

# Villagers the plugin slows down get their AI back for "active" ticks
# every "cycle" ticks, and have it off the rest of the time. The default is
# 1 second every 10 seconds.
pulse:
  cycle: 200
  active: 20

# Villagers that can't move and have nothing to look for, except a bed they
# can never reach: locked in a 1x1 cell or in a vehicle, with a profession,
# traded at least once, without a bed. They are slowed down. Since they
# can't move anyway, players don't see any difference.
trapped:
  enabled: true

# Surplus villagers: adults with no profession (or nitwits) that have had no
# bed for a while, packed together with many others like them. This is what
# piles up next to a breeder. They are slowed down until they find a bed or
# a job, or the crowd shrinks. Iron farm villagers always have a bed, so they
# are never touched.
surplus:
  enabled: true
  # How many villagers without a bed and a job there must be in the 3x3
  # chunks around a villager for it to count as surplus.
  crowd: 12
  # Ticks without a bed before a villager can count as surplus. 6000 = 5 minutes.
  grace: 6000
  # Turn off pushing between surplus villagers. Saves work in big crowds, but
  # entity cramming no longer kills them, so a crowd can grow without limit.
  disable-collisions: false

# Stops breeding when there is too much surplus around the parents, even if
# it is stored in other chunks. No villager is ever removed.
births:
  enabled: false
  # Villagers without a bed and a job (babies included) allowed within
  # "radius" blocks of the parents before babies stop being born.
  max-surplus: 24
  radius: 64

# Villagers frozen or slowed down by the plugin can't walk to their
# workstation, so they restock when a player opens their trades, once per
# window below. Day times: 0 = 06:00, 1000 = 07:00, 6000 = 12:00, 11000 = 17:00.
restock:
  enabled: true
  times: [1000, 6000, 11000]
  # reset-uses: trades are refilled and prices don't go up with demand.
  # vanilla: the vanilla restock, prices go up a bit for trades used a lot.
  mode: reset-uses
  # Only restock villagers whose workstation is still there and close to them.
  require-workstation: false
  # Max distance in blocks from the villager's feet to its workstation.
  workstation-reach: 2.5
  # Sent to the player when a villager restocks. Empty sends nothing.
  # MiniMessage format, %next% is the time until the next restock.
  message: ""

Run /fv reload after changing it. Bad values are reported in the console and replaced by the defaults.

Switching from BubbleVillagers or VillagerOptimizer

  1. Back up your world.
  2. Install FrozenVillagers, set migration.adopt-other-optimizers: true, remove the old plugin and restart.
  3. Run /fv adopt @e[type=villager] from the console for the villagers already loaded. The others are adopted when their chunk loads.
  4. When /fv status shows no villagers without AI because of another plugin, set the option back to false and run /fv reload.

Villagers optimized by BubbleVillagers were invincible and ignored by zombies. With FrozenVillagers they behave like vanilla villagers again, so let your players know.

Requirements

  • Paper 26.2
  • Java 25

Folia, Purpur and Spigot are not tested yet.

Links

  • README: every option, how each feature works, the benchmark and the tests
  • Issues: bug reports and ideas

SHA-256 of FrozenVillagers-1.0.0.jar: 6e6122d68d15b072f953f9e4fe28c9933b6317c56ebb267d4b785776e30c6fcd

Файлы

FrozenVillagers-1.0.0.jar(49.10 KiB)
Основной
Скачать

Метаданные

Канал релиза

Release

Номер версии

1.0.0

Загрузчики

Paper

Версии игры

26.2

Загрузок

21

Дата публикации

22.10.2026

Загрузил

ID версии

Главная