Skip to content

Расширения ​

Расширения добавляют функции, не меняя сам лаунчер: свои страницы, пакетные операции с инстансами, интеграции с внешними сервисами, помощники для мультиплеера.

Хотите сразу писать код?

Готовы шаблоны для шести языков: Шаблоны по языкам. Склонируйте, поменяйте id — и готово.

Структура ​

text
my-ext/
├─ manifest.json     id, имя, версия, среда, точка входа, права
├─ main.jar          точка входа (.py / .js / .exe тоже подходят)
└─ lib/              зависимости (необязательно)

Положите каталог в extensions/ внутри каталога данных — он появится в «Настройки → Расширения».

Об импорте, правах и кнопках карточки см. Импорт и управление.

Доверие ​

При первой загрузке считается SHA-256 всего пакета и записывается в extensions/trusted.json:

json
{
  "hello-go": { "sha": "9f2c…", "enabled": true }
}
  • Любое изменение пакета ломает хеш — лаунчер откажется загружать расширение.
  • Это защита от подмены, а не антивирус. Не ставьте расширения из непроверенных источников.
  • Отключение меняет только enabled, файлы остаются.

Жизненный цикл ​

text
сканирование → manifest → проверка полей → сверка trusted.json
  → проверка среды → распаковка во временный каталог (chmod +x для нативных)
  → запуск процесса → канал stdio → hello
  → обмен сообщениями
  → выход / отключение → очистка

Расширение работает отдельным процессом: его падение не роняет лаунчер, а при выходе лаунчер завершает дочерние процессы.

Права ​

ПравоЗначение
fs.readЧтение каталога данных
fs.writeЗапись в каталог данных
netСетевые запросы
processЗапуск дочерних процессов
uiДиалоги, уведомления, свои страницы
launchЗапуск игры

Вызовы без объявленного права отклоняются и попадают в лог.

Ограничения размера ​

ЧтоЛимит
Один файл8 MiB
Распакованный пакет16 MiB
manifest.json64 KiB

Нативные бинарники быстро упираются в лимит — делайте strip:

bash
go build -ldflags "-s -w" -o main.exe .
cargo build --release && strip target/release/my-ext

Далее ​