{
  "configuration": {
    "enableExtendedOwners": {
      "comment": "Включить расширенное получение фейка тайлов и мобов. Если тайл/моб НЕ реализуют IOwnerProvider - будет попытка прочитать владельца по NBT блока, основываясь на формате записи фейков в EventHelper",
      "type": "boolean",
      "default": true,
      "value": true
    },
    "RFFromEU": {
      "comment": "Количество RF к 1 EU",
      "range": "От 1 до 2147483647",
      "type": "int",
      "default": 4,
      "value": 4
    },
    "printPlayerMods": {
      "comment": "Выводить список модов, с которыми подключается игрок к серверу",
      "type": "boolean",
      "default": true,
      "value": true
    },
    "enableIC2EnergyTiersSystem": {
      "comment": "Включить использование энерго-уровней (напряжения). Энергоуровни вычисляются на основе макс. возможного приёма/выдачи энергии/тик",
      "type": "boolean",
      "default": false,
      "value": false
    },
    "AFK": {
      "properties": {
        "afkUpdatePeriod": {
          "comment": "Частота обновления (в тиках) afk статуса игроков",
          "range": "От 1 до 2147483647",
          "type": "int",
          "default": 40,
          "value": 40
        },
        "afk_triggers_moving": {
          "comment": "Включить триггер выхода игрока из AFK при движении",
          "type": "boolean",
          "default": true,
          "value": true
        },
        "afk_triggers_place": {
          "comment": "Включить триггер выхода игрока из AFK при размещении блоков",
          "type": "boolean",
          "default": false,
          "value": true
        },
        "afk_triggers_interact": {
          "comment": "Включить триггер выхода игрока из AFK при интеракте",
          "type": "boolean",
          "default": true,
          "value": true
        },
        "afk_triggers_digging": {
          "comment": "Включить триггер выхода игрока из AFK при ломании блоков",
          "type": "boolean",
          "default": false,
          "value": true
        },
        "afkTimeout": {
          "comment": "Через сколько секунд бездействия игрок считается афк",
          "range": "От 1 до 2147483647",
          "type": "int",
          "default": 60,
          "value": 60
        },
        "afk_triggers_chat": {
          "comment": "Включить триггер выхода игрока из AFK при написании в чат",
          "type": "boolean",
          "default": false,
          "value": true
        },
        "afk_triggers_cmd": {
          "comment": "Включить триггер выхода игрока из AFK при выполнении команды",
          "type": "boolean",
          "default": false,
          "value": true
        }
      }
    },
    "showEnergyType": {
      "comment": "Какой тип энергии предпочтительнее отображать в тултипах и т.п.",
      "range": "Allowed constants: [EU, RF]",
      "type": "EnergyType",
      "default": "RF",
      "value": "RF"
    },
    "vaultRecheckBalanceCooldown": {
      "comment": "Кулдаун (в тиках) перепроверки баланса онлайн-игроков для отправки BalanceChange ивентов при использовании Vault интеграции",
      "range": "От -2147483648 до 2147483647",
      "type": "int",
      "default": 600,
      "value": 600
    },
    "doubleChestAccessForceChunk": {
      "comment": "Разрешить прогрузку чанков для корректной работы с двойными сундуками, стоящими на пересечении чанков, через ItemUtils API. Может создавать эффект чанклоудера!",
      "type": "boolean",
      "default": false,
      "value": false
    },
    "mob_drop_emulator": {
      "properties": {
        "overrideMobDrops": {
          "comment": "Картёж дропа с мобов, который будет применяться в API получения дропа. Для мобов, указанных в этом картеже будет действовать дроп только из этого списка, игнорируя логику модов и ваниллы. Удача на применяемых мечах будет повышать шанс дропа бОльшего кол-ва предмета в стаке за раз",
          "type": "Map<String, DropEntry[]>",
          "default": {
            "MyTargetEntity": [
              {
                "item": "minecraft:diamond",
                "meta": 0,
                "nbt": null,
                "minAmount": 1,
                "maxAmount": 4,
                "chance": 0.45
              },
              {
                "item": "minecraft:emerald",
                "meta": 0,
                "nbt": null,
                "minAmount": 1,
                "maxAmount": 2,
                "chance": 0.25
              }
            ]
          },
          "value": {
            "MyTargetEntity": [
              {
                "item": "minecraft:diamond",
                "meta": 0,
                "nbt": null,
                "minAmount": 1,
                "maxAmount": 4,
                "chance": 0.45
              },
              {
                "item": "minecraft:emerald",
                "meta": 0,
                "nbt": null,
                "minAmount": 1,
                "maxAmount": 2,
                "chance": 0.25
              }
            ]
          }
        },
        "sendJoinWorldEvent": {
          "comment": "Пост ивента входа виртуального существа в мир",
          "type": "boolean",
          "default": false,
          "value": false
        },
        "spawnerForceUpdateEntities": {
          "comment": "Список классов существ, которые требуют инициализацию перед эмуляцией убийства при получении дропа спавнером",
          "type": "CustomClassList",
          "default": [
            "thaumcraft.common.entities.monster.EntityWisp"
          ],
          "value": [
            "thaumcraft.common.entities.monster.EntityWisp"
          ]
        }
      }
    },
    "commands_manager": {
      "properties": {
        "tabCompletionsCooldown": {
          "comment": "Глобальный кулдаун в ms на табкомплит команд, созданных через CommandsAPI",
          "range": "От 0 до 2147483647",
          "type": "int",
          "default": 250,
          "value": 250
        },
        "enableDetailsInCommandsResponses": {
          "comment": "Включить подробный вывод ошибок при обработке команд, созданных через LFCommandAPI. Вывод примерно такой же, как в Brigadier из новых версий Minecraft, удобен при отладке. Однако для игроков это лишняя информация и даже пугающая, не рекомендуем включать на игровых серверах!",
          "type": "boolean",
          "default": false,
          "value": false
        },
        "commandExecutionCooldown": {
          "comment": "Глобальный кулдаун в ms на выполнение команд, созданных через CommandsAPI",
          "range": "От 0 до 2147483647",
          "type": "int",
          "default": 100,
          "value": 100
        },
        "economyForCommands": {
          "comment": "Провайдер экономики для списания денег за выполнение платных команд LFHelperAPI",
          "type": "Economy",
          "default": "dummy",
          "value": "dummy"
        },
        "helpEntriesPerPage": {
          "comment": "Кол-во строк, выводимых в /help, на страницу",
          "range": "От 1 до 32767",
          "type": "short",
          "default": 10,
          "value": 10
        },
        "tabCompletionsLimit": {
          "comment": "Лимит символов в таб-комплит выводах при использовании CommandsAPI",
          "range": "От 0 до 32767",
          "type": "short",
          "default": 512,
          "value": 512
        },
        "enableCommandsKeyboardFix": {
          "comment": "Включить поддержку неправильной раскладки клавиатуры при наборе команд LFHelper Commands API. Когда активно - всем командам добавляются специальные алиасы, по типу рщьу для home, цфкз для warp и т.д. Также, эти алиасы генерируются для подкоманд",
          "type": "boolean",
          "default": true,
          "value": true
        },
        "payableCommandConfirmTime": {
          "comment": "Время (в секундах) на подтверждение ввода платной команды",
          "range": "От 1 до 2147483647",
          "type": "int",
          "default": 30,
          "value": 30
        }
      }
    },
    "disableOfflineAPI": {
      "comment": "Отключает оффлайн доступ к игроку через IPlayerAPI. Все вызовы на игрока, который находится не в сети, выкинут ошибку UnsupportedOperationException.",
      "type": "boolean",
      "default": false,
      "value": false
    },
    "backupOldConfigs": {
      "comment": "Включить сохранение *-old.json конфигов при их изменении и вывод варнов в консоль",
      "type": "boolean",
      "default": false,
      "value": false
    },
    "ic2EnergyTransferProps": {
      "comment": "Параметры работы с IC2 энергией для механизмов на основе LFHelper API",
      "type": "EnergyTransferProps",
      "default": {
        "enableWiresMelting": false,
        "enableBareWireShock": false,
        "energyBareWireShockRadius": 1.5,
        "energyShockDamageMultiplier": 0.001,
        "enableOverEnergyExplosions": false,
        "disableAcceptEnergyIfBadTier": false,
        "maxEnergyLvl": 4
      },
      "value": {
        "enableWiresMelting": false,
        "enableBareWireShock": false,
        "energyShockDamageMultiplier": 0.001,
        "enableOverEnergyExplosions": false,
        "disableAcceptEnergyIfBadTierABoolean": false,
        "maxEnergyLvl": 4
      }
    },
    "allowCmdFuzzyPlayerArgs": {
      "comment": "Включить fuzzy-поиск игроков по недописанным никам в командах. Допустим /call us отправит тп игроку User, если это первый онлайн игрок, у кого ник начинается на us. Опция касается ВСЕХ команд, созданных на основе LFHelper CommandsAPI",
      "type": "boolean",
      "default": false,
      "value": false
    },
    "skipDefaultConfigFieldsSync": {
      "comment": "Отключение синка полей конфигов, которые не были изменены в конфиг файле и имеют значение по умолчанию, ConfigAPI на клиент",
      "type": "boolean",
      "default": true,
      "value": true
    }
  }
}