Синтаксис JSON
Почти все настройки плагина, его фразы и часть сохранений лежат в JSON. Это текст. Его открывают в Sublime Text и правят руками. Код плагина для этого читать не нужно, но сломанная запятая выключает весь файл.
Если на следующих страницах плагин сбросит конфиг или откажется грузиться, вернитесь сюда. Редактор из подготовки подсвечивает скобки: пропущенная пара сразу видна.
Пара «ключ: значение»
{
"ЛимитПривата": 16,
"Приветствие": "Добро пожаловать на сервер"
}Ключ — имя настройки, всегда в двойных кавычках. Значение — то, что вы меняете. Между ними двоеточие. Между парами запятая. После последней пары в блоке запятой нет.
Ключ не переименовывают. Плагин ищет строку "ЛимитПривата". Если написать "лимит привата" или "MaxPlayers", для плагина настройки больше нет: он создаст новый файл со значениями по умолчанию либо пропустит пункт.
Объект
Фигурные скобки группируют несколько полей. Так автор отделяет одну функцию от другой.
{
"Магазин": {
"Включен": true,
"Ссылка": "https://example.com"
}
}"Магазин" — объект. Внутри него свои пары. Закрывающая } обязана найти свою открывающую.
Типы значений
Число пишется без кавычек: "Радиус": 25 или "Множитель": 1.5. Дробь — через точку, не через запятую. Если в файле было целое 25, не превращайте его в 25.0 «на всякий случай»: часть плагинов ждёт именно целое и пропускает поле.
Строка — текст в двойных кавычках: "Приветствие": "Зайдите в Discord". Одинарные кавычки JSON не принимает.
Логическое — true или false, без кавычек и без заглавных букв. Обычно это «да» и «нет». Иногда автор кодирует выбор режима прямо в имени ключа:
"Виртуальная валюта (false) или физические монеты (true)": trueТогда смотрите на ключ, а не на привычное «true значит включено».
Список — квадратные скобки. Элементы через запятую, после последнего запятой нет.
{
"КомандыМагазина": [
"shop",
"store"
]
}Словарь, который вы дополняете сами, выглядит как объект, но ключи в нём — ваши. Так задают урон, цены, короткое имя предмета:
{
"УронРакет": {
"ammo.rocket.basic": 190.0,
"ammo.rocket.hv": 140.0
}
}Новую строку добавить можно. Повторить ключ ammo.rocket.basic второй раз нельзя: файл станет невалидным, плагин возьмёт только одно из значений или не загрузится. Вложенность бывает глубже, правило то же: у каждой скобки есть пара, у каждого ключа одно значение.
Как поменять одну настройку
Было:
{
"ИмяСервера": "My Server",
"Открыт": true,
"Слоты": 16,
"Приветствие": "Добро пожаловать",
"Карты": [ "Desert", "Forest" ]
}Нужно 40 слотов и другая фраза. Меняются только значения:
{
"ИмяСервера": "My Server",
"Открыт": true,
"Слоты": 40,
"Приветствие": "Привет",
"Карты": [ "Desert", "Forest" ]
}Скобки, ключи и запятые остаются на местах.
Ошибки, из-за которых файл «пустой»
Пропущена кавычка у ключа:
"Имя: "Тест"Число записали как текст. Плагин ждал число:
"Слоты": "40"Нет запятой между парами:
{
"А": 1
"Б": 2
}Запятая есть, а следующей пары нет. Так нельзя ни в объекте, ни в списке:
{
"А": 1,
}Скобка не закрыта. Sublime в этом месте обычно перестаёт красить хвост файла. Если подсветка «поехала» до конца, ищите ближайшую { или [ без пары.
Почти всегда виноват синтаксис
Плагин после правки пишет ошибку JSON, молчит или пересоздаёт конфиг. Это не «Oxide сломался». Скопируйте файл рядом под другим именем, верните прошлую версию и перенесите одну правку за раз.
Перед сохранением сверьте четыре вещи: ключ не трогали, тип значения прежний, запятые стоят между элементами, кавычки двойные. Дальше этот файл встретится как конфигурация, права тут ни при чём — они в командах, — затем язык и сохранения.