Настройка
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.enabledvillages.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 файлы не удаляются). Лог пишется задним числом в отдельном потоке, поэтому после падения в нём могут остаться транзакции, которые сам мир откатил.