nova-ui — это фреймворк модульных веб-интерфейсов для Space Station 14, построенный на Svelte 5, TypeScript и Vite 7. Проект предоставляет систему HTML/CSS/JS-оверлеев, работающих поверх игрового клиента через встроенный браузер (CEF/WebView).
Полная документация находится в директории /docs:
| Раздел | Описание |
|---|---|
| Обзор | Архитектура, стек, ключевые возможности |
| Структура проекта | Описание всех файлов и директорий |
| Система модулей | Как создавать и регистрировать интерфейсы |
| NovaBridge | Протокол связи с нативным хостом SS14 |
| Сборка и разработка | Запуск, сборка, конфигурация Vite |
| Конфигурация | Стили, Tailwind, TypeScript |
npm ci
npm run dev # http://localhost:5173/
npm run build # Production в ../Resources/distProduction-сборка обязательна перед запуском клиента: игра не подключается к Vite dev-серверу, а открывает собранные страницы из Resources/dist через внутренний http://webui.local/ origin.
Например, Escape Menu загружается по адресу:
http://webui.local/dist/src/interfaces/escape-menu/index.html
Перехватчик запросов на стороне C# (NovaWebViewBridge) перехватывает любой http://webui.local/... и раздаёт соответствующие файлы из Resources/dist. Мост NovaBridge использует http://webui.local/__bridge__/... для отправки событий в нативный хост.
После изменения файлов в src/interfaces/ повторно запустите npm run build. Каталог Resources/dist является генерируемым результатом и не хранится в этом сабмодуле.
Перед запуском runclient*.bat / runclient*.sh обязательно:
- Собрать production bundle WebUI. По умолчанию MSBuild делает это автоматически при сборке
Content.Clientчерез цельBuildWebUI, если вWebUI/package.jsonесть зависимости. Если npm недоступен или нужно отключить авто-сборку, передайте/p:BuildWebUI=false:При ручной сборке:dotnet build Content.Client/Content.Client.csproj --configuration Tools # или с отключенным авто-сборщиком dotnet build Content.Client/Content.Client.csproj --configuration Tools /p:BuildWebUI=falsecd WebUI npm ci npm run build - Пересобрать клиент, чтобы MSBuild скопировал
cef_resourcesиRobust.Client.WebView.exeрядом сRobust.Client.WebView.dllвbin/Content.Client/.
После этого CEF сможет найти cef_resources и запустить браузерный subprocess.
Unable to locate cef_resources directory!— CEF-ресурсы не найдены рядом сRobust.Client.WebView.dll. Пересоберите клиент; убедитесь, что вbin/Content.Client/cef_resources/есть каталогlocales.- Escape menu не открывается / белый экран — проверьте, что
Resources/dist/src/interfaces/escape-menu/index.htmlсуществует послеnpm run build. Network service crashed, restarting service.на некоторых GPU/Windows — в текущей версии CEF (131) встречается краш сетевого сервиса при мультипроцессном режиме. Временное обходное решение — запускать клиент с флагом--single-process:dotnet run --project Content.Client -- --single-process # или bin/Content.Client/Content.Client.exe --single-process
Проприетарная. SS14 (Space Station 14).