Перейти к содержимому

LibVilNam

Библиотека совместимости для кросс-модовой генерации названий деревень. «Добро пожаловать в [НАЗВАНИЕ ВАШЕЙ ДЕРЕВНИ], господин староста! UwU»

FabricNeoForge
Загрузчики
FabricNeoForge
Скачиваний на Modrinth
264
Подписчиков на Modrinth
0
версии
4
Обновлён
9 апреля 20269 апр.
Опубликован
в 2026
Это библиотека — она нужна другим модам и сама ничего не добавляет в игру

Коротко о моде

Библиотека — нужна другим модам
Работает на Fabric и NeoForge
Для Minecraft 1.21.1
Ставится только на сервер; игрокам ставить не нужно
Последняя версия — 1.0.2 от 9 апреля 2026
Нужен Fabric API
Где нужен
В игрене нуженНа сервереобязателен

Ставится только на сервер; игрокам ставить не нужно

Версии игры1.21.1
Описание переведено автоматическиПоказать оригинал (EN)

LibVilNam

Кросс-модовая библиотека совместимости для генерации названий деревень. Добро пожаловать в [НАЗВАНИЕ ВАШЕЙ ДЕРЕВНИ], староста-сама! UwU

Что за алфавитный суп я вижу?

VibVilNam — это библиотека названий деревень (на самом деле это просто её название, только записанное по соглашению об именовании Linux, поэтому всё сокращено до 3 символов максимум, а «Library» идёт вперёд, а не в конце — так же, как «C Library» превращается в «LibC»), которую любой другой мод может использовать для присвоения названий деревням кросс-совместимым способом.

И что это, чёрт возьми, значит?

Представь, что у тебя есть один мод, который размещает в деревнях какие-то маркеры транспорта (может, способ передвижения — ходьба, а маркер — путевая точка миникарты; может, это мод с waystone; может, это железнодорожная станция, привязанная к процедурно генерируемой сети), и другой мод, который приветствует тебя при входе в деревню (может, что-то вроде Traveller's Titles, но для деревень; может, что-то на основе табличек). Теперь, разве не было бы так славно, если бы мод говорил «Добро пожаловать в (деревня X)!», а маркер транспорта тоже назывался «(деревня X)»? К сожалению, сегодня это невозможно. ...Если только мод не интегрируется с LibVilNam! Именно так! Устали от того, что несколько модов дают конфликтующие названия деревень при запуске достаточно больших модпаков? Мы здесь, чтобы спасти положение! LVN предоставляет библиотеку, к которой другие авторы модов могут подключиться, чтобы их названия деревень были согласованы со всеми другими модами, которые также поддерживают LibVilNam (см. список ниже). В некоторых случаях модам даже не нужно поддерживать LVN напрямую, так как у нас есть пока короткий (но неуклонно растущий) список официальных интеграций с популярными модами, поддержку которых мы поддерживаем внутри самого LibVilNam. У вас только один мод, дающий названия деревням? LibVilName тоже может быть полезен! Большинство модов-генераторов названий просто слепо смешивают прилагательное/существительное и слово вроде «город», образуя из них название (например, Sunnyvale, Steamtown, Icetopia и т.д.). Это нормально, но быстро становится однообразным и скучным. LVN использует другую технику — цепь Маркова, которая вроде как небольшая LLM (ну, если она маленькая, то это уже не Large Language Model, но вы поняли идею). Она обучается на том, как данный язык соединяет слоги в предоставленном наборе данных (см. «Настройка LibVilNam» ниже о том, как его предоставить), а затем пытается экстраполировать оттуда. Всё это означает, что вы получаете гораздо более реалистичные и уникальные названия, а также у вас есть масса контроля над стилем генерируемых названий (просто используйте другой обучающий набор данных), что позволяет довольно легко менять, например, языки или даже вернуться к тем старым однообразным названиям (если они вам почему-то нравились). [ Заметьте, что цепи Маркова не поддерживают никаких навороченных концепций оптимизации LLM вроде Attention (который лежит в основе каждого современного чат-бота), что теоретически делает их менее эффективными по памяти, чем LLM (если бы кто-то использовал цепь Маркова для генерации целого абзаца, ему понадобились бы эксабайты RAM), но им нужно очень мало накладных расходов памяти (ваш набор данных сам по себе вроде как является моделью — не нужно загружать десятки ГБ весов модели в GPU), что на практике делает их гораздо лучше LLM для генерации коротких однословных последовательностей (вроде названия деревни) — благодаря этому LVN полностью работает локально на вашем CPU, и вам не нужно (и на самом деле нельзя) вставлять куда-либо токены AIslop-API. ]

Скачать

  • С Modrinth
  • На GitHub, пожалуйста, собирайте из исходников или скачайте релиз.
  • Поддержка CruseForge не планируется.

Поддерживаемые моды

Ниже приведён список поддерживаемых модов. Если мод помечен как [AUTO], дополнительная настройка не потребуется, и он подхватывает LibVilNam (или LibVilNam (или сторонний интегратор) подхватывает его) автоматически.

Поддержка от разработчиков

Это моды, которые используют LibVilNam напрямую, либо полагаясь на него как на прямую зависимость, либо как на дополнительную возможную интеграцию: Здесь пока ничего нет! Сделали мод с поддержкой LibVilNam? Пожалуйста, откройте pull request к этому файлу, мы будем рады показать вас как нашего первого потребителя!

Поддержка от LibVilNam

LibVilNam сам интегрируется с этими модами через Mixins:

Сторонняя поддержка

Следующие моды предлагают интеграцию между LibVilNam и некоторыми другими модами: Здесь пока ничего нет! Сделали мод с поддержкой LibVilNam? Пожалуйста, откройте pull request к этому файлу, мы будем рады показать вас как нашего первого потребителя!

Использование — для обычных игроков

Самое базовое использование LibVilNam смехотворно простое. Для большинства модов (тех, что помечены [AUTO] выше) всё, что вам нужно — установить LVN и выбранный мод, и вы сможете наслаждаться общими названиями деревень между модами. Иногда может потребоваться установить дополнительный мод (те, что в списке сторонней поддержки выше), чтобы заполнить пробел, или изменить какое-то значение в конфиге, чтобы явно включить поддержку LVN (если нет пометки [AUTO]). Это зависит от конкретного мода, поэтому здесь не документируется. Однако для продвинутого использования см. ниже:

Настройка LibVilNam

Файл конфигурации LibVilNam зависит от вашей моддинг-платформы. На Forge вы найдёте его по адресу ~/.minecraft/config/lvn-common.toml, а на Fabric — ~/.minecraft/config/lvn.properties (клиент Linux через официальный лаунчер Minecraft для обоих — адаптируйте под вашу ОС, ситуацию клиент/сервер и лаунчер самостоятельно). Где бы ни находился ваш файл, он будет содержать следующие ключи:

  • padding: Сколько дополнительных чанков в каждом направлении деревня должна считать своей территорией? Это сделано для учёта модов, которые спавнят структуры рядом с деревнями (но не внутри них), например станции из Railways Untold. По умолчанию 3 (настраивается от 1 до 5), сверх округления до ближайшего чанка за пределами ограничивающего прямоугольника деревни (основное поведение, не настраивается).
  • do_villagelike: Должны ли «деревнеподобные» структуры (то есть те, у которых обычно есть какие-то человекоподобные обитатели и которые не выглядят как древние руины, например лесные особняки или бастионы) тоже получать имена, или мы даём имена только настоящим деревням? Если true, структуры будут искаться в тегах #minecraft:village и #lvn:villagelike; если false — только в #minecraft:village. Если вам нужен более тонкий контроль над тем, какие структуры считаются деревнями, вы можете отредактировать упомянутые теги с помощью датапака.
  • dataset: Набор данных, на котором LibVilNam обучает свой генератор названий деревень на основе цепей Маркова. Слова разделяются пробелами. По умолчанию используется набор, дающий польскозвучащие имена, см. значения по умолчанию ниже.
  • lang: Код локали, разделённый дефисом, для языка, на котором написан набор данных выше. Если используете вымышленный язык, выберите реальный с наиболее близким алфавитом. Не волнуйтесь, он не обязан быть строгим подмножеством или надмножеством букв (даже обычного английского хватит для большинства случаев), просто не делайте ничего совсем уж глупого, вроде набора данных на японском и греческого алфавита. По умолчанию pl-PL в соответствии с набором данных выше.

Выбор набора данных

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

  • Этот мод изначально разрабатывался для GhostLand 8, а GhostLand — это польское сообщество/модпак/SMP/Discord/я-честно-не-знаю-что-такое-GhostLand-если-честно-это-как-современный-брендинг-Xbox-где-всё-сразу, и нам хотелось, чтобы в этом издании имена были более знакомыми; что-то, что отличало бы его от предыдущих изданий с названиями деревень (6 и 7), где все имена были типично американскими (см.: как работают большинство генераторов имён, выше — и, по совпадению, похоже, именно так США придумывают свои округа). Технически мы могли бы использовать этот набор данных только на GhostLand, но я потратила слишком много времени на то, чтобы сделать его пригодным для использования, и хотела похвастаться.
  • Мы хотели использовать это культурное преимущество проекта, чтобы дать нашим пользователям по-настоящему уникальный опыт. Примерно как в «Ведьмаке»: там ведь нет типичных гоблинов или слизней, которых встретишь во всех повторяющихся MMO или гача-играх, а есть монстры, вдохновлённые местным польским/славянским фольклором, что нравится большинству игроков благодаря определённому исследовательскому фактору. Аналогично, благодаря знакомству автора с польским языком (она выросла здесь и прожила всю жизнь), имена, генерируемые LibVilNam, могут звучать уникально по-польски, что позволяет вам исследовать глубины этого языка и, как следствие, должно быть приятнее. ...в теории. На практике мы понимаем, что некоторые игроки могут не хотеть разбираться с произношением «Sokołobrychodnorostrów» (*настоящее имя, сгенерированное нашим генератором во время разработки). По этой причине мы предоставляем возможность изменить работу генератора, используя другой набор данных. Точные инструкции для этого приведены выше, здесь же я хотела бы сосредоточиться на его получении. В целом у вас есть 2 пути: либо скачать базу данных у местного правительства и попробовать обработать данные самостоятельно (если только ваше правительство не предоставляет что-то более полезное, чем наше), либо зайти на SamCodes Markov, нажать Settings, установить Length Range 3-23 + Order 3 + Prior 0.00 + Backoff 0 (это параметры, используемые LibVilNam), и начать экспериментировать с готовыми наборами данных, пока не найдёте тот, который генерирует имена, похожие на то, что вы хотели бы использовать. Если нужна отправная точка: мы обнаружили, что их набор данных «Currencies» даёт интересные результаты, которые отлично смотрятся как некий неопределённый вымышленный язык (по крайней мере, если предположить, что «Mark» означает город/посёлок/деревню и т. д. на этом языке, поскольку этот суффикс кажется довольно распространённым).

Внутриигровые команды

  • /lvn-getvillage — узнать, в какой деревне вы сейчас находитесь, и находитесь ли вы в деревне вообще (используя все 4 доступные стратегии поиска деревень)
  • /lvn-rename — переименовать деревню, в которой вы сейчас находитесь (определяется 1-й стратегией, выведенной командой выше)

Файлы мира

LibVilNam сохраняет названия деревень между перезапусками в ~/.minecraft/saves/[имя мира]/lvn/[пространство имён измерения]/[id измерения].csv. Например, для деревень, расположенных в измерении minecraft:overworld мира «My Forever World», путь будет таким: ~/.minecraft/saves/My Forever World/lvn/minecraft/overworld.csv.

Использование — для потребителей

Пока нет ни руководства для разработчиков, ни сообщества. Всё, что я могу сказать: используйте Modrinth Maven, чтобы добавить зависимость, а затем посмотрите наш публичный API на GitHub, чтобы разобраться, как с ним взаимодействовать (это правда просто, обещаю). Экземпляр API можно получить через hub.guzio.lvn.internal.Main.i().getAPI() (это первый и последний раз, когда вообще стоит трогать пакет internal, так как всё остальное там сильно зависит от платформы и версии — а вот публичные методы в hub.guzio.lvn.API (кроме его конструктора) и hub.guzio.lvn.Village гарантированно следуют SemVer).

Лицензия

  • Код и бинарники лицензированы под MIT. К этому проекту применяются две лицензии MIT: одна покрывает большую часть кода, а вторая относится к библиотеке цепей Маркова от Felix, которую этот проект жёстко встраивает внутрь (не мягкая зависимость через Gradle, так как его генератору потребовались обширные модификации, чтобы его можно было здесь использовать (поэтому я также указал себя как контрибьютора с 2026 года и далее в лицензии, что не противоречит MIT, поскольку и уведомление об авторских правах оригинального автора, и отказ от ответственности сохранены как положено), и меня не особо волнуют обновления, учитывая, что это, похоже, заброшенный проект)
  • Да, это значит, что вы можете использовать это в модпаках. Да, даже в паках вне Modrinth (ага, даже в CF — просто используйте прямое включение файла), хотя в этом случае (чтобы соблюсти требования лицензии MIT) вам нужно будет указать этот мод, «включив его лицензию в производную работу». В идеале это должна быть простая ссылка на лицензию с именем автора и названием мода прямо в сноске о лицензии в README вашего пака (вот как здесь) — а не закопанная на два слоя ZIP-архивов (сначала пак, потом мод), даже если это технически всё ещё включение.
  • Не перезаливайте (и не перекомпилируйте+заливайте, если только не были внесены значительные изменения (и/или этот мод не заброшен и вы хотите поддерживать его обновления) в составе полного форка) этот мод как есть на другие хостинги, в частности на 9Minecraft (*включая вирус, это не считается «значительными изменениями») или CurseForge. Нет, CurseForge, мне плевать, насколько технически легально это было бы по MIT. Если вы отказываетесь удалять любых подражателей, то позвольте мне назвать эту маленькую строчку текста «юридически обязывающей» (Потому что технически выше написано License, так можем ли мы быть уверены, что она не так же действительна, как файл LICENSE на GitHub или связанная лицензия на Modrinth? В смысле... Конечно, нет (это всего лишь пояснительная сноска), но — знаете — можете ли вы действительно быть уверены? Насколько смелым нужно быть, чтобы пройти через эту завесу юридической серой зоны, CurseForge?) и посмотрим, как у вас пойдёт...
  • Встроенный обучающий датасет для цепи Маркова лицензирован под CC BY-NC 4.0.
  • Логотип нарисован по вайбу NanoBananna, потому что я совершенно не представлял*, как вообще хочу, чтобы выглядел логотип этого проекта (но всё равно хотел добавить хоть что-то), не говоря уже о том, что у меня вряд ли хватило бы умений сделать его хоть сколько-нибудь приличным. Поскольку я не испытываю никакой эмоциональной привязанности к этому поделию, вы вольны делать с ним что угодно; настоящим я выпускаю его под CC BY 4.0 (что по сути MIT для изображений). Единственная причина, по которой я не иду на полноценный CC0 Public Domain, — это чтобы на всякий случай, если этот логотип окажется футажем в каком-нибудь ролике-разгроме про ИИ, мой проект указали в титрах (слушайте, у вас не так много возможностей для рекламы, когда ты мод для Minecraft; приходится быть отчаянным и идти по принципу «любая пресса — хорошая пресса», особенно учитывая, что сам мод сделан человеком!, так что никакого «вайб-кодинга» и связанного с ним отторжения).
  • Вы не можете напрямую переиспользовать название LibVilNam (как минимум добавьте какой-нибудь суффикс или что-то такое) для любого форка или (особенно) несвязанных проектов.

Слова поддержки

*Если у вас вдруг есть больше идей, чем было у меня, и вы ещё и сумели реализовать эту идею (или просто хотели бы очеловечить текущую реализацию «идеи» NanoBannana — потому что, честно говоря, в целом вышел довольно неплохой дизайн (с буквальной цепью Маркова и чем-то вроде эмблемного стиля), просто до смешного несогласованный (2 из 3 примеров сгенерированных имён на вывеске — явно не тот тип генерации имён, которым занимается этот мод; цепь скручена в какую-то мерзость; книга вообще не похожа на Minecraft) и бездушный), pull request с вашим логотипом будет крайне желанным! Тем более если вы выпустите арт с менталитетом лицензирования логотипов в стиле CraftLDAP, то есть под CC BY-NC-ND 4.0 с готовностью снизить требования для добросовестных производных работ (одной из которых должен будет стать сам LibVilNam, иначе я буквально юридически не смогу его использовать) или что-то более разрешительное (я просто предпочёл бы избегать вещей, не допускающих производные работы (хотя любой вклад ценен, и я уверен, что мы сможем договориться), так как считаю, что это противоречит духу любого творчества — есть причина, по которой я публикую всё под MIT).

Вот и всё!

Надеюсь, вам понравится этот глупенький маленький проект :3

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

Как установить LibVilNam?

Установите Fabric под свою версию Minecraft, скачайте LibVilNam под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть LibVilNam?

У LibVilNam есть сборки для Minecraft 1.21.1.

Нужен ли LibVilNam на сервере?

Ставится только на сервер; игрокам ставить не нужно

Лицензия и источник
MIT Licenseможно свободно использовать и распространять с указанием автора
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее