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

Настройка

Configuration · конфиг · Tradery

Настройки лежат в трёх файлах JSON5 с комментариями в папке config/tradery/:

  • server.json5: валюта, балансы, /pay, лавки, монетная руда, жители, рынки, деревни, торговые ящики и слои для карт.
  • rewards.json5: деньги за мобов, добытые блоки, крафт, рыбалку и достижения, а ещё правила против ферм.
  • client.json5: личные настройки игрока: баланс на экране, подсказки, название деревни и уведомления.

Значение, которое мод не смог прочитать, заменяется стандартным, в лог пишется строка. О незнакомых ключах там тоже сообщается. /tradery reload применяет server.json5 и rewards.json5 без перезапуска. Исключений два: currency.decimals фиксируется для мира при первом запуске, а всё из раздела market требует перезапуска сервера.

Валюта и счета

  • currency.name, currency.symbol: "Coins" и "₮". В окнах вместо символа рисуется иконка монеты.
  • currency.decimals: 2, от 0 до 6.
  • currency.thousandsSeparator: пробел. Подходят ещё запятая, апостроф и пустая строка.
  • economy.startingBalance: 100, выдаётся новому игроку один раз.
  • economy.maxBalance: 1000000000. Выше этого счёт не пополнить; 0 снимает потолок.
  • pay.enabled, pay.taxPercent, pay.minAmount: true, 0, 1. Налог сгорает, никому не достаётся.

Лавки

  • vending.feePercent: 2. Сгорает с каждой продажи за деньги в автомате и на прилавке.
  • vending.maxPerPlayer: 0, то есть без лимита. Автоматы, прилавки и торговые ящики считаются вместе.
  • vending.itemBlacklist: ["minecraft:bedrock"]. Эти предметы нельзя ни продать, ни назначить ценой.
  • vending.facadeBlacklist: пусто. Блоки, которые не годятся в фасад.
  • vending.defaultAnimation: SPIN_BOB. Ещё есть STATIC, SPIN, BOB, NONE.

Монетная руда и награды

  • ore.enabled: true. С false руда в новых чанках не появляется.
  • ore.directToBalance: true. С false добытая руда роняет монеты предметами.
  • ore.coinValues: 1, 10 и 100 для медной, серебряной и золотой монеты.
  • ore.dailyCap: 0. Сколько один игрок может накопать за сутки по UTC; 0 значит без лимита.
  • ore.inflationDamping: выключено. Если включить, руда платит меньше, пока денежная масса выше targetSupply (1000000), но не меньше minFactor (0.25) от номинала.

В rewards.json5 включён только раздел kill. Разделы mine, craft, fish и advancement выключены, и для двух из них есть причина. Блок, сдвинутый поршнем, теряет метку «поставлен игроком», так что mine фармится. А с craft любой обратимый рецепт превращается в бесплатные деньги.

Общие правила для всех наград: rules.dailyCap равен 1000 на игрока за сутки по UTC, а после 20 наград за 60 секунд каждая следующая платит ×0,5 (rules.diminishing).

Как выключить жителей

У каждой части свой выключатель в server.json5:

  • villagers.enabled: жители как покупатели и поставщики
  • villages.suppliers.enabled: только поставщики
  • villagerTrading.enabled: с false возвращается ванильное окно торговли
  • market.enabled: рынки в новых деревнях
  • villages.caravans.enabled, villages.marketDay.enabled, villages.festival.enabled
  • villages.buildings.enabled: деревни копят и строят сами
  • tradeCrates.enabled

Числа для жителей

  • villagers.visitRadius: 32 блока, от 4 до 64.
  • villagers.visitChance: 0.25 за проверку, а проверка идёт раз в villagers.checkIntervalTicks (100).
  • villagers.maxPriceRatio: 1.5. Дороже честной цены во столько раз жители не покупают никогда.
  • villagers.dailyCapPerVillage: 200, умножается на множитель уровня деревни.
  • villagerTrading.emeraldValue: 3.
  • villages.levels.thresholds: [0, 300, 1500, 5000]. В каждом списке по уровням четыре числа, по одному на уровень.
  • villages.tradeTaxPercent: 10.
  • villages.council.patronMinContribution, .patronTaxSharePercent, .specializationBonus: 100, 10, 0.15.
  • tradeCrates.maxTradesPerVisit, tradeCrates.hoppers: 16, true.
  • integrations.maps.villages, .shops, .updateSeconds: true, true, 60.

Файл клиента

  • hud.corner: BOTTOM_RIGHT. hud.offsetX и hud.offsetY: 4 пикселя интерфейса. hud.scale: 1.0, от 0.5 до 2.0.
  • hud.format: FULL (1 250.00) или SHORT (1.2K).
  • hud.countUp, hud.popups: число, которое докручивается, и строки прихода и расхода.
  • notifications.sale, .empty, .noSpace, .offlineSummary: четыре вида сообщений о лавках.
  • vending.animationOverride: SERVER или своя анимация товара для всех автоматов, которые вы видите.
  • vending.hint: AUTO, ON или OFF. AUTO отключает подсказки, когда стоит Jade или WTHIT. vending.hintY: 8 пикселей от верха экрана.
  • villageTitle.enabled, .offsetY, .scale: true, 56, 1.0.

Датапаки

Чего нет в конфиге, то лежит в датапаках, в data/<namespace>/tradery/:

  • prices/: честная цена предмета или тега. Предмет без неё жители не купят.
  • villager_wants/: что покупает каждая профессия.
  • villager_supplies/: что каждая профессия производит за день.
  • village_types/: дешёвые и дорогие товары каждого типа деревни и сделки караванов.
  • village_projects/: цена, уровень, эффекты и постройка каждого проекта.
  • village_buildings/: что деревня строит сама.
  • market/: товары рынков по типам деревень.

Где генерируется монетная руда, задано в data/tradery/worldgen/placed_feature/, а сколько монет в блоке, решает таблица лута руды.

Сохранение и логи

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

Каждая транзакция ещё и пишется одной строкой JSON в <мир>/tradery/logs/YYYY-MM-DD.log. Файл свой на каждые сутки по UTC, хранится 30 дней (log.retentionDays; с 0 файлы не удаляются). Лог пишется задним числом в отдельном потоке, поэтому после падения в нём могут остаться транзакции, которые сам мир откатил.