Citizens: как сделать NPC на сервере

Citizens создаёт на сервере NPC: торговцев, проводников, охранников и ботов для лобби. NPC может быть игроком со скином или любым мобом, выполнять команды по клику, говорить и ходить по маршруту. Плагин платный на SpigotMC, но разработчики выкладывают бесплатные сборки.

Где скачать Citizens и какую версию брать

Официальных источника два: платная страница на SpigotMC и бесплатные сборки на ci.citizensnpcs.co. Покупка поддерживает разработку, функции одинаковые. Установка обычная: jar в plugins, перезапуск, настройки в plugins/Citizens/config.yml.

  • Для каждой версии Minecraft поддерживается только последний патч: не 1.20 или 1.20.4, а 1.20.6, не 1.18, а 1.18.2.
  • Ошибки NoClassDefFound, ClassNotFoundException и FieldNotFound в логе почти всегда означают неподходящий патч ядра.
  • На 1.8 плагины Citizens с 2024 года не работают совсем.
  • Разработчики советуют держать последнюю версию Minecraft и Citizens: со старыми сборками помощи не будет.

Как сделать NPC: пошагово

/npc create Торговец
/npc skin Notch
/npc lookclose
/npc hologram add &eНажми ПКМ
  1. /npc create <имя> создаёт NPC-игрока на вашем месте и сразу выделяет его. Моб: /npc create Страж --type ZOMBIE.
  2. Все следующие команды применяются к выделенному NPC. Выделить другого: /npc select <id> или ПКМ по NPC с палкой в руке.
  3. /npc lookclose включает поворот головы к ближайшему игроку.
  4. /npc hologram add добавляет строку текста над NPC, /npc name -h показывает имя только при наведении.
  5. /npc tphere переносит NPC к вам, /npc equip открывает редактор экипировки, /npc text редактор реплик.

Номер NPC показывает /npc list. Удалить: /npc remove <id>, отменить последнее создание или удаление: /npc undo.

Команда по клику на NPC

Команды пишутся без слеша. По умолчанию они выполняются от консоли, флаг -p запускает их от игрока, который кликнул. <p> подставляет ник игрока, <npc> номер NPC.

/npc command add -p spawn
/npc command add tp <p> 0 64 0
/npc command add mvtp <p> survival
/npc command add -p server lobby
/npc command add --cooldown 10s give <p> bread 1
  • -l только левый клик, -r только правый. Левый клик по NPC-игроку считается ударом и не срабатывает при выключенном PvP.
  • --permission требует от игрока право, --n 5 ограничивает число использований, --delay 40t ставит задержку в тиках.
  • /npc command cost 50 берёт плату через Vault, /npc command sequential выполняет команды по одной за клик.
  • -o выполняет команду от имени временного оператора. Разработчики советуют вместо этого запускать от консоли с <p>.

Список команд NPC с номерами: /npc command, удалить: /npc command remove <номер>. Переход на другой сервер работает через -p server в сетях с протоколом BungeeCord.

Скин NPC

/npc skin Notch
/npc skin Notch -l
/npc skin --url https://example.com/skin.png

Первая команда берёт текущий скин ника, флаг -l обновляет его, если владелец ника сменит скин. --url принимает прямую ссылку на PNG, обработкой занимается сервис MineSkin. Для модели с тонкими руками разработчики советуют загрузить картинку на mineskin.org и выбрать там модель.

Скины работают только на сервере в online-mode. В сети BungeeCord включите bungeecord: true в spigot.yml, чтобы сервер мог обращаться к Mojang. Если скины не грузятся, проверьте лог на любые ошибки, статус серверов Mojang и не упёрлись ли вы в их лимит запросов.

Права Citizens

По умолчанию все права есть только у операторов. Кликать по NPC с командами можно без прав, но чтобы игроки слышали реплики NPC, нужно citizens.npc.talk:

/lp group default permission set citizens.npc.talk true

Для создания NPC нужны citizens.npc.create и право на тип: citizens.npc.create.player, citizens.npc.create.zombie или citizens.npc.create.*. Флаги --at и --trait при создании требуют citizens.npc.admin. Лимит NPC на игрока задаётся правом citizens.npc.limit.<число>, citizens.admin.avoid-limits снимает лимит. Вики предупреждает, что страница прав может отставать от plugin.yml.

Частые проблемы

  • Не выделяется NPC по клику. Нужна палка в руке, предмет меняется в npc.selection.item в config.yml, значение '*' убирает требование.
  • Имя NPC вида CIT-abc. Другой плагин ломает scoreboard-команды, через которые Citizens прячет длинные имена. Ищите конфликт отключением плагинов.
  • Под именем NPC строка «0 health». Это below_name от другого плагина, например TAB: отключите belowname в его конфиге.
  • Бесплатный хостинг. Разработчики прямо пишут, что на Aternos и Minehut Citizens будет работать плохо.
  • Для жалобы в поддержку нужна последняя dev-сборка, номер сборки показывает /version citizens.

Команды и права Citizens

КомандаЧто делаетПраво
/npc create <имя> [--type <тип>]создать NPC, по умолчанию игрокcitizens.npc.create
/npc select [id|имя]выделить NPCcitizens.npc.select
/npc listсписок NPC с номерамиcitizens.npc.list
/npc remove [id|all]удалить выделенного или по номеру; all требует citizens.admin.remove.allcitizens.npc.remove
/npc rename <имя>переименоватьcitizens.npc.rename
/npc copyкопия выделенного NPCcitizens.npc.copy
/npc type <тип>сменить тип мобаcitizens.npc.type
/npc tphereперенести NPC к себеcitizens.npc.tphere
/npc tpтелепорт к NPCcitizens.npc.tp
/npc skin <ник> [-l]скин по никуcitizens.npc.skin
/npc skin --url <ссылка>скин по ссылке на PNGcitizens.npc.skin
/npc lookcloseсмотреть на ближайшего игрокаcitizens.npc.lookclose
/npc command add [-p] [-l|-r] <команда>команда по кликуcitizens.npc.command
/npc hologram add <текст>строка текста над NPCcitizens.npc.hologram
/npc name -hимя только при наведенииcitizens.npc.name
/npc textредактор репликcitizens.npc.edit.text
/npc equipредактор экипировкиcitizens.npc.edit.equip
/npc pathредактор маршрутаcitizens.npc.edit.path
/npc help [страница]все команды вашей версииcitizens.npc.help
/citizens reloadперечитать конфиг и NPCcitizens.admin

Частые вопросы про Citizens

Как сделать NPC в Minecraft с Citizens?
Выполните /npc create <имя>: появится NPC-игрок на вашем месте. Затем /npc skin <ник> для скина и /npc command add -p <команда> для действия по клику.
Citizens платный?
На SpigotMC плагин стоит $19.99. Официальные бесплатные сборки лежат на ci.citizensnpcs.co, разработчики сами дают на них ссылку.
Какая версия Citizens нужна для 1.20 или 1.21?
Последняя сборка Citizens под последний патч вашей версии, например 1.20.6. На других патчах плагин выдаёт ошибки NoClassDefFound.
Почему игроки не слышат, что говорит NPC?
Выдайте им право citizens.npc.talk. По умолчанию все права Citizens есть только у операторов.
Почему у NPC не отображается скин?
Скины работают только в online-mode, в сети BungeeCord нужен bungeecord: true в spigot.yml. Также проверьте лог на ошибки и статус серверов Mojang.
Как заставить NPC выполнять команду от имени игрока?
Добавьте флаг -p: /npc command add -p spawn. Без флага команда выполнится от консоли, ник игрока подставляется через <p>.

Не хочется настраивать самому

Citizens уже стоит и настроен в готовых сборках Cloud Delight: права, меню, защита и донат собраны в одно целое. Скачали, запустили, играете.