Robloxity (20402 Part, 278 скриптов, 295 BillboardGui, 0.1 FPS) показал:
1. Большие карты могут зависнуть студию навсегда.
2. BillboardGui/SurfaceGui (вывески, табло) рендерятся в 3D-сцене и
при 200+ штук убивают FPS.
Фиксы:
1. Предупреждение в модалке если parts > 5000 (жёлтое) или > 15000
(красное "может зависнуть"). Подсказка про режимы.
2. Новая опция guiMode (показывается если GUI > 50 элементов):
- 'all' — все, как было.
- 'screen-only' (рекомендуется) — только ScreenGui HUD,
BillboardGui/SurfaceGui удаляются.
- 'skip' — без GUI совсем.
3. converter.py: маркирует элемент полем gui_container_kind:
'screen' / 'billboard' / 'surface'.
4. app.py: _apply_gui_mode() фильтрует scene.gui[] по режиму.
Deploy app.py + converter.py на VM 130.
Robloxity рекомендуем импортировать со screen-only — Карта Robloxity
будет работать в 5-10× быстрее без вывесок города.
3 опции в модалке (только если в карте есть скрипты):
- 'disabled' (default) — скрипты импортируются с enabled=false в метадате
→ GameRuntime их не запускает, но видны в иерархии для чтения
как референс при написании своих Lua-скриптов.
- 'enabled' — скрипты активны (старое поведение). Может вешать игру
на старых Roblox 2007-2010 паттернах.
- 'skip' — scripts[] обнуляется, чистый импорт только геометрии.
Реализация:
- RbxlImportModal.jsx: state scriptsMode + radio-блок над названием игры,
показывается только если report.scripts_total > 0.
- rbxlImporterApi.js: передача scripts_mode в /import/rbxl/create.
- app.py: _apply_scripts_mode() патчит JSON-метадату на 2-й строке
packed-кода скрипта (или удаляет scripts[] для 'skip').
GameRuntime уже умеет уважать meta.enabled === false — пропускает скрипт.
Deploy app.py на VM 130.
3 блокера перед запуском opensource-контрибьюторов:
1. CI Lint+Format убран format:check (206 файлов студии не
соответствуют prettier — отдельная задача формат-недели).
Build/Lint/Secret-scan/PR-size остаются.
2. Ассеты (93 МБ kubikon-assets/) теперь в Gitea Releases:
https://git.rublox.pro/rublox/studio/releases/tag/assets-v1
Скачка через scripts/fetch-assets.js (npm run fetch-assets +
автозапуск через postinstall).
3. Dev-login:
- IS_DEV расширен до 127.0.0.1 (vite на Windows слушает там)
- PleeseReg в dev показывает «Войти как гость» (?standalone=1)
или «Вставить JWT»; в prod — редирект на rublox.pro
- AuthContext поддерживает ?standalone=1 URL-параметр
- ModelThumbnails кеш v19→v20 чтобы старые failed-превью
не блокировали рендер после фикса IS_DEV
Большой консолидирующий коммит после поднятия studio.rublox.pro (28 мая 2026).
Содержит изменения которые делались в процессе подготовки прод-окружения:
Фиксы импортов после выноса из minecraftia:
- Массовая замена путей ../../components → ../components (40+ файлов в src/community/, src/admin-preview/)
- Замена ../KubikonEditor/ → ../editor/, ../KubikonStudio/ → ../community/, ../AdminPreview/ → ../admin-preview/
- API.js скопирован из минки целиком (было 8 экспортов, стало 312)
- Добавлены PLAYER_URL, MyButton_1, недостающие компоненты
- Заменены require() на статические ES-imports в BabylonScene, PrimitiveManager, GameRuntime (Vite не поддерживает CJS require)
Структура ассетов:
- public/kubikon-templates/ → public/assets/kubikon-templates/
- public/kubikon-learn/ → public/assets/kubikon-learn/
- (код искал в /assets/, файлы лежали без /assets/)
Навигация роутов внутри студии:
- /kubikon-studio/docs → /docs (90+ навигационных вызовов sed-replaced)
- /kubikon-editor/X → /edit/X, /kubikon/play/X → /play/X, /kubikon/gd/X → /gd/X
UI:
- Новый компонент StudioHeader (61px, как в минке) + копия favicon
- WithHeader wrapper в App.jsx для всех страниц кроме fullscreen-редактора/плеера
- SSO ticket-flow в AuthContext (auto-redeem #ticket= при загрузке)
- Тёмная тема карточек игр в ВИКИ (фон #1c2231 вместо #fff, картинка впритык)
Документация:
- docs/ONBOARDING.md — путь нового контрибьютора от нуля до PR
- docs/TUTORIAL_ADD_SCRIPT_API.md — как добавить game.* API
- API_USAGE.md — список эндпоинтов backend
- README в подпапках engine/, engine/terrain/, engine/voxel/, engine/robloxterrain/, engine/types/
.gitignore:
- public/wiki/ исключён (73МБ PNG, будут на CDN отдельной задачей)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>