- Загрузчики
- Fabric
- Скачиваний на Modrinth
- 102
- Подписчиков на Modrinth
- 0
- версия
- 1
- Обновлён
- 27 февраля 202627 февр.
- Опубликован
- в 2026
Коротко о моде
Нужен и в игре, и на сервере
★ Starshadow Config
Красивые экраны конфигурации из обычных Java-классов.
Starshadow Config — это библиотека конфигурации на основе аннотаций для модов на Fabric. Опишите настройки простым Java-классом, расставьте аннотации на полях — и получите отточенный экран конфигурации с вкладками, секциями, слайдерами, переключателями и выпадающими списками enum — без единой строчки шаблонного кода для UI.
«Экраны конфигурации не должны требовать докторской степени по программированию GUI».
🪄 Как это работает
Для разработчиков модов
- Добавьте зависимость в свой
build.gradle.kts- Создайте класс конфигурации с аннотированными полями
- Готово — Starshadow Config сгенерирует весь экран
@StarConfig(modId = "mymod") public class MyConfig { @Tab(id = "general", icon = "minecraft:crafting_table") @Section("scanning") @Range(min = 1, max = 64) @DefaultValue("16") private int scanRange = 16;
@Section("display") @DefaultValue("true") private boolean showOverlay = true; }
Вот и всё. Никаких классов-построителей экрана. Никакого позиционирования виджетов. Никаких расчётов макета. Только поля конфигурации с аннотациями.
### Для игроков
Если мод использует Starshadow Config, вы получаете:
- Экран настроек с вкладками, доступный через Mod Menu
- Чистый, единообразный интерфейс во всех модах, использующих эту библиотеку
- Слайдеры, переключатели и выпадающие списки вместо обычных текстовых полей
- Кнопки сброса для возврата к значениям по умолчанию
---
## ✨ Возможности
### 📝 API на основе аннотаций
Аннотируйте свой POJO конфигурации — и экран построится сам:
- `@StarConfig` — помечает класс как конфигурацию
- `@Tab` — группирует поля во вкладки с иконками
- `@Section` — организует поля в секции с заголовками
- `@Range` — задаёт минимум/максимум для числовых полей
- `@DefaultValue` — определяет значение по умолчанию
- `@EnabledWhen` — условно включает поля в зависимости от других значений
- `@Hidden` — исключает поля из сгенерированного экрана
- `@Widget` — переопределяет тип виджета по умолчанию
### 🔨 Fluent Builder API
Нужен больший контроль? Используйте `StarConfigBuilder` для полностью программного подхода:
```java
StarConfigBuilder.create("mymod")
.parent(parentScreen)
.tab("general", tab -> tab
.icon(Items.CRAFTING_TABLE)
.section("scanning", section -> section
.intSlider("scanRange", b -> b
.range(1, 64).defaultValue(16)
.binding(() -> config.scanRange,
v -> config.scanRange = v))
)
)
.onSave(() -> serializer.save())
.build();💾 Сохранение в JSON
GsonConfigSerializer отвечает за загрузку и сохранение файлов конфигурации в виде читаемого JSON. Файлы хранятся в `config/.json` в соответствии с соглашениями Fabric.
🎛️ Богатый набор виджетов
- Переключатели для булевых значений
- Слайдеры для чисел с диапазонами
- Счётчики для целочисленных значений
- Циклические переключатели для выбора enum
- Текстовые поля для ввода строк
- Описания для информационного текста
🔗 Интеграция с Mod Menu
Зарегистрируйте свой экран конфигурации одним классом:
public class MyModMenuIntegration implements ModMenuApi {
@Override
public ConfigScreenFactory<?> getModConfigScreenFactory() {
return ModMenuConfigFactory.create("mymod", MyConfig.class, MyConfig::get);
}
}🧩 Условные поля
Используйте @EnabledWhen, чтобы создавать зависимые настройки, которые становятся неактивными, когда их условие не выполнено:
@EnabledWhen(field = "pacingMode", notEquals = "ADAPTIVE")
private int linesPerSecond = 4;📦 Установка
Для разработчиков модов
Добавьте в свой build.gradle.kts:
dependencies {
modstitchModImplementation("com.starshadow:starshadow-config:${property("starshadow_version")}")
modstitchModImplementation("com.starshadow:starshadow-lib:${property("starshadow_version")}")
include("com.starshadow:starshadow-config:${property("starshadow_version")}")
include("com.starshadow:starshadow-lib:${property("starshadow_version")}")
}Для игроков
Starshadow Config поставляется внутри модов, которые его используют — обычно устанавливать его отдельно не нужно. Если мод требует его как внешнюю зависимость:
- Установите Fabric Loader для вашей версии Minecraft
- Установите Fabric API
- Поместите
.jar-файлы Starshadow Config и Starshadow Lib в папкуmods/ - Запустите Minecraft
Поддерживается: Minecraft 1.20.1 · 1.20.4 · 1.21.1 — только Fabric
🧩 Совместимость
Мод Совместимость Fabric API ✅ Обязательно Mod Menu ✅ Опционально — регистрация экрана конфигурации (не нужно, если установлен Starshadow Menu) Starshadow Menu ✅ Опционально — обнаружение экрана конфигурации Cloth Config ✅ Могут сосуществовать — разные системы конфигурации 📋 Требования
Зависимость Обязательна? Fabric Loader ✅ Да Fabric API ✅ Да Starshadow Lib ✅ Да Mod Menu или Starshadow Menu Опционально — любой из них обеспечивает доступ к экрану конфигурации 🌟 Конфигурация стала простой
Хватит писать сотни строк кода для экрана конфигурации. Starshadow Config превращает ваш класс конфигурации в красивый, функциональный экран настроек — автоматически.
Сделано с ❤️ от Ghent Starshadow Лицензия MPL-2.0 — свободно для использования, распространения и изменения.
Частые вопросы
Как установить Starshadow Config?
Установите Fabric под свою версию Minecraft, скачайте Starshadow Config под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Starshadow Config?
У Starshadow Config есть сборки для Minecraft 1.20.1–1.20.6.
Нужен ли Starshadow Config на сервере?
Нужен и в игре, и на сервере