
Cryonic Config
Cryonic Config - минималистичная API для конфигов в Minecraft. Простая, лёгкая в портировании, без лишних зависимостей. Настройка через JSON-файлы, синхронизация переменных между клиентом и сервером.
Cryonic Config - это API для работы с конфигурационными файлами в Minecraft. Если вы разрабатываете моды и устали от громоздких систем конфигов с кучей зависимостей, этот проект для вас. Он решает простую задачу: хранить настройки мода в JSON-файлах, легко портировать между версиями и синхронизировать переменные между клиентом и сервером.
Зачем это нужно
В ванильном Minecraft нет встроенной системы конфигов для модов. Каждый разработчик либо пишет свою обвязку, либо тянет тяжелые библиотеки вроде Cloth Config. Cryonic Config предлагает третий путь - минимализм. Никаких GUI, никаких лишних зависимостей, только JSON и пара методов в коде.
Как это работает
- Все конфиги хранятся в папке
configкакmod_id.json - На раннем этапе загрузки читается словарь из
cryonicconfig.json - Настройки редактируются напрямую в JSON-файлах - никаких экранов в игре
- Для синхронизации переменные отправляются игроку в чат и перехватываются на клиенте
- Используются хэш-карты для быстрого поиска: Str → ConfigStorage и Str → Obj
Для разработчиков
Подключение через Gradle
Сначала добавьте репозиторий Modrinth:
repositories {
maven { url "https://api.modrinth.com/maven" }
}
Для современных версий (Fabric/NeoForge):
dependencies {
modImplementation "maven.modrinth:cryonicconfig:fabric-${project.name}:1.0.0+mc${rootProject.minecraft_version}"
}
Для b1.7.3 (Babric):
dependencies {
modImplementation "maven.modrinth:cryonicconfig:babric:1.0.0+mcb1.7.3"
}
Простой пример использования
// Получаем конфиг для своего мода
ConfigStorage config = CryonicConfig.getConfig("mod_id");
// Сохраняем переменные разных типов
config.getInt("varName", 3);
config.getDouble("name", 3.3);
config.getBoolean("var", true);
config.getString("str", "Geronimo!");
// Синхронизация с сервером для игрока
config.sync("varName", playerEntity);
// Можно задавать значения вручную
config.setInt("varName", 3);
config.setDouble("name", 3.3);
config.setBoolean("var", true);
config.setString("str", "Geronimo!");
Зависимость в fabric.mod.json
{
"depends": {
"cryonicconfig": "*"
}
}
Зависимость в mods.toml / neoforge.mods.toml
[[dependencies.cryonicconfig]]
modId = "cryonicconfig"
type = "required"
versionRange = "[0,)"
Важно знать
- Имена переменных нельзя повторять - они перезапишутся
- Поддерживаются типы: int, double, boolean, String
- Синхронизация работает только для подключенных игроков - если нужно, чтобы клиент использовал серверные значения, вызывай
sync() - Настройки только через JSON - никаких GUI, так что для конечного пользователя это может быть неочевидно, но для разработчика - минимум кода и зависимостей
Если вы делаете мод под Fabric или NeoForge и не хотите тащить Cloth Config ради пары настроек - Cryonic Config выглядит как хороший вариант. Лёгкий, портируемый, без лишнего шума.
