
FancyNpcs – Minecraft Java Edition 1.19.4–1.21.x
Залежності: Платформа: Paper / Folia (Spigot та інші застарілі розгалуження Bukkit не підтримуються) Версія Java: Java 21+ (для найновіших…
Залежності: Платформа: Paper / Folia (Spigot та інші застарілі розгалуження Bukkit не підтримуються) Версія Java: Java 21+ (для найновіших збірок потрібна Java 25) Версія Minecraft: 1.19.4 – 1.21.x Додаткові бібліотеки:
Залежності:
Платформа: Paper / Folia (Spigot та інші застарілі розгалуження Bukkit не підтримуються)
Версія Java: Java 21+ (для найновіших збірок потрібна Java 25)
Версія Minecraft: 1.19.4 – 1.21.x
Додаткові бібліотеки: PlaceholdersAPI (рекомендовано для інтеграції змінних в інтерфейс дій)
Створення інтерактивних неігрових персонажів (NPC) на серверах Minecraft традиційно супроводжується значними апаратними витратами. Застарілі рішення реєструють NPC як повноцінних серверних сутностей (Entity), що змушує ядро обробляти їхній штучний інтелект, фізичні колізії, пошук шляху та завантаження чанків. Це призводить до критичного зниження показника TPS (Ticks Per Second) при зростанні кількості персонажів. Плагін FancyNpcs пропонує альтернативний, пакетний метод рендерингу віртуальних персонажів, що дозволяє тримати сотні інтерактивних фігур без жодного впливу на продуктивність серверного потоку.
Пакетна архітектура та сумісність з Folia
Основна технічна особливість FancyNpcs полягає в тому, що створювані персонажі існують виключно в пам'яті плагіна та на стороні підключених клієнтів. Сервер не додає їх до бази даних світу і не опрацьовує їх у загальному циклі оновлення сутностей.
Коли гравець наближається до заданих координат, плагін перехоплює мережевий трафік і надсилає клієнту пакети ClientboundAddPlayerPacket (для людських моделей) або ClientboundAddEntityPacket (для інших істот). Подальша поведінка, екіпірування та статус відображення оновлюються за допомогою пакетів ClientboundSetEntityDataPacket (метадані) та ClientboundSetEquipmentPacket (спорядження). Для сервера цих персонажів не існує — вони є «віртуальними проекціями» для кінцевих користувачів.
Цей підхід робить FancyNpcs ідеальним вибором для багатопотокових серверів на базі Folia. Оскільки Folia розділяє світ на окремі регіони, кожен з яких працює у власному потоці, традиційні NPC-плагіни часто викликають дедлоки та критичні помилки через спроби взаємодії між потоками різних регіонів. FancyNpcs обробляє дані асинхронно і надсилає пакети гравцям напряму, повністю уникаючи конфліктів планувальника завдань Folia.
Можливості налаштування зовнішнього вигляду
Плагін підтримує широкий спектр типів сутностей та візуальних ефектів. Гравці можуть створювати NPC у вигляді будь-яких ванільних мобів (Player, Cow, Zombie, Skeleton, Villager, Pig тощо) та тонко налаштовувати їхній вигляд.
Керування скінами (для людських моделей)
Для персонажів типу player доступно кілька джерел завантаження текстур:
@mirror: скін NPC динамічно копіює скін того гравця, який на нього дивиться в цей момент.Ім'я або UUID ліцензійного аккаунта: плагін автоматично надсилає запит до серверів Mojang сесії для завантаження відповідної текстури.
Пряме посилання на веб-ресурс (URL): можливість завантажити будь-який сторонній .png файл із веб-сервера.
Локальні файли: зображення, заздалегідь розміщені у папці /plugins/FancyNpcs/skins/.
Флаг
--slim: активовує використання тонкої моделі рук (Alex-стиль) для завантажених за посиланнями скінів.
Візуальні ефекти та атрибути
Світіння (Glowing): додає кольоровий контур навколо персонажа. Колір прив'язується до ванільних кольорів команд (Team Colors).
Снарядження (Equipment): персонажам можна видати будь-які предмети у ліву чи праву руку, а також одягнути шолом, нагрудник, поножі та чоботи.
Пози (Poses): підтримуються специфічні стани відображення, такі як сидіння, лежання (імітація сну на ліжку), плавання та повзання.
Розмір (Scale): у нових версіях плагіна реалізовано підтримку масштабування сутностей (зміна фізичного розміру моделі).
Система команд та синтаксис
Керування персонажами здійснюється виключно за допомогою команд в ігровому чаті або консолі сервера. Таблиця нижче містить опис базового синтаксису:
Команда | Опис та параметри | Приклад використання |
| Створення нового персонажа |
|
| Видалення існуючого персонажа |
|
| Зміна скіну (ім'я, url або @mirror) |
|
| Одягає на NPC предмет, який тримає гравець |
|
| Вмикає кольорове світіння навколо моделі |
|
| Змушує персонажа повертати голову до гравців |
|
| Встановлює специфічні пози або варіанти мобів |
|
Для глобального адміністрування плагіна використовуються команди платформи:
/fancynpcs reload— перезавантажує системні конфігурації./fancynpcs save— примусово записує поточний стан усіх NPC на диск у файл бази даних.
Система інтерактивних дій (Actions)
FancyNpcs містить вбудований скриптовий механізм дій, який активується при взаємодії гравця з персонажем. Дії можна налаштовувати на різні типи кліків (LEFT_CLICK, RIGHT_CLICK, ANY_CLICK).
Плагін пропонує наступні типи дій для виконання:
message: відправка повідомлення гравцеві. Підтримує MiniMessage (Hex-кольори) та змінні PlaceholdersAPI.player_command: виконання команди від імені гравця.player_command_as_op: виконання команди від імені гравця з тимчасовим наданням прав оператора (для активації команд, які звичайний гравець не може використовувати).console_command: виконання команди консоллю сервера. Змінна {player} автоматично замінюється на ім'я гравця.send_to_server: миттєве перенесення гравця на інший сервер у мережі BungeeCord або Velocity.wait: створює паузу між діями (затримка в тіках сервера).block_until_done: запобігає повторним натисканням на NPC до завершення поточного сценарію дій.execute_random_action: випадковий вибір однієї з наступних дій у списку.
Приклад створення складного інтерактивного сценарію для NPC з іменем Bob:
Додавання привітального повідомлення:
/npc action Bob RIGHT_CLICK add message <yellow>Вітаємо на нашому сервері, %player_name%!</yellow>Додавання паузи у 40 тіків (2 секунди):
/npc action Bob RIGHT_CLICK add wait 40Телепортація гравця на спавн консоллю:
/npc action Bob RIGHT_CLICK add console_command teleport {player} 0 100 0
Завдяки можливості додавати кілька послідовних кроків та регулювати чергу за допомогою add_before, add_after та move_up/move_down, адміністратори можуть будувати повноцінні діалогові дерева чи складні механіки переходів між лобі-серверами без встановлення додаткових плагінів на кшталт Denizen чи MyCommand.
Структура файлів налаштувань
Усі дані зберігаються у каталозі plugins/FancyNpcs/. Робота плагіна базується на двох файлах:
1. config.yml
Цей файл визначає глобальну поведінку плагіна та містить такі налаштування:
turn_to_player_distance(за замовчуванням 5): радіус у блоках, в межах якого персонаж повертає голову до гравців. Зниження цього параметра оптимізує передачу мережевих пакетів у завантажених зонах.visibility_distance(за замовчуванням 20): відстань у блоках, на якій клієнту надсилаються пакети появи NPC. Зменшення допомагає приховати персонажів за стінами або туманом рендерингу для економії FPS гравців.enable_autosave: автоматичний періодичний запис змін на диск.
2. npcs.yml
У цьому файлі плагін зберігає базу даних створених NPC. Кожен персонаж описується окремим блоком даних:
YAML
Bob: id: 104 type: PLAYER world: world x: 10.5 y: 64.0 z: -25.5 yaw: 90.0 pitch: 0.0 glowing: false turn_to_player: true skin: value: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUv..." signature: "d3G8h...==" actions: RIGHT_CLICK: - type: MESSAGE value: "<green>Ласкаво просимо!</green>" |
Застереження: Ручне редагування файлу npcs.yml настільки не рекомендується через ризик пошкодження синтаксису або некоректного визначення координат. Будь-які зміни конфігурації NPC слід виконувати виключно через внутрішньоігрові команди, а потім фіксувати їх за допомогою /fancynpcs save.
Висновок
Плагін FancyNpcs є сучасним та продуктивним рішенням для створення декоративних та інтерактивних персонажів на серверах Minecraft Java Edition. Він усуває головну проблему старих інструментів — споживання процесорного часу сервера на обслуговування сутностей.
Головне обмеження плагіна — повна відсутність штучного інтелекту. Оскільки персонажі є віртуальними проекціями на стороні клієнта, вони не можуть самостійно пересуватися світом, взаємодіяти з блоками чи атакувати інших мобів.
У порівнянні з класичним плагіном Citizens, який підтримує складні механіки пересування (навігація по вейпоінтах) та інтеграцію із бойовими системами (мод Sentinel), FancyNpcs поступається за гнучкістю штучного інтелекту. Проте, Citizens створює колосальне навантаження на головний потік сервера і практично непридатний для використання на Folia. FancyNpcs пропонує ідеальну альтернативу для лобі-серверів, Velocity-хабів та великих SMP-проєктів, де від персонажів вимагається лише статична присутність, гарний вигляд та швидке виконання команд при натисканні.
Встановлення
Типове встановлення займає близько 5 хвилин. Порядок однаковий; відрізняються лише лоадер і відповідна збірка.
- 1Stop your Minecraft server.
- 2Drop the plugin .jar into the server /plugins folder.
- 3Start the server once so the plugin generates its config files.
- 4Edit /plugins/<name>/config.yml as needed, then run /reload confirm or restart.











