diff --git a/src/api/API.js b/src/api/API.js
index 8fa4139..3e27ac8 100644
--- a/src/api/API.js
+++ b/src/api/API.js
@@ -10,7 +10,7 @@ export const USER_addres = BASE + '/api-user';
export const ACHIVES_addres = BASE + '/api-achievs';
export const COMMENTS_addres = BASE + '/api-comments';
export const STORYS_addres = BASE + '/api-storys';
-// rbxl-importer: только для МИНа (тест-фича импорта .rbxl карт Roblox)
+// rbxl-importer: импорт .rbxl карт Roblox (см. вики «Импорт из Roblox»)
export const RBXL_addres = BASE + '/api-rbxl';
export const NOTICES_addres = BASE + '/api-notices';
export const HELP_addres = BASE + '/api-help';
diff --git a/src/community/KubikonStudio.jsx b/src/community/KubikonStudio.jsx
index 65e4d90..993b36f 100644
--- a/src/community/KubikonStudio.jsx
+++ b/src/community/KubikonStudio.jsx
@@ -390,18 +390,16 @@ const KubikonStudio = () => {
ВИКИ
- {/* Импорт Roblox .rbxl — только для МИНа (user_id=1) */}
- {getCurrentUserId() === 1 && (
-
- )}
+ {/* Импорт Roblox .rbxl — доступно всем */}
+
}
],
},
+ // ════════════════════════════════════════════════════
+ // РАЗДЕЛ — ИМПОРТ ИЗ ROBLOX (.rbxl)
+ // ════════════════════════════════════════════════════
+ {
+ id: 'rbxl-import',
+ icon: 'package',
+ title: 'Импорт из Roblox',
+ summary: 'Загрузи .rbxl-файл готовой Roblox-карты в Рублокс: геометрия, цвета и материалы переносятся хорошо, скрипты лучше отключить при первом импорте и включать постепенно.',
+ sections: [
+ {
+ id: 'rbxl-overview',
+ title: 'I1. Что это и зачем',
+ body: (
+ <>
+
+ Импорт из Roblox — это возможность загрузить
+ в Рублокс готовую карту из Roblox Studio в формате
+ .rbxl или .rbxlx. Часть карты — геометрия,
+ цвета, материалы, GUI — переносится в Рублокс
+ автоматически. Импорт превращает её в обычный проект
+ Рублокса, который можно редактировать, как любой
+ свой проект.
+
+
+ Кнопка «📦 Импорт Roblox» находится в левой
+ панели студии — внизу под кнопкой «ВИКИ». Откроется
+ модалка, куда можно перетащить .rbxl-файл.
+
+
Зачем это нужно
+
+
Перенести свою старую Roblox-карту в Рублокс,
+ чтобы продолжить работу здесь;
+
Изучить, как устроены большие карты опытных
+ разработчиков (классические Crossroads,
+ ROBLOX Battle и др.);
+
Использовать готовую сцену как «костяк» для
+ своей игры — добавить свои скрипты и механики.
+
+
+ Импорт работает с файлами до 50 МБ. Этого
+ хватает для большинства карт. Очень большие карты
+ с тысячами объектов могут импортироваться долго
+ (20–60 секунд).
+
+ >
+ ),
+ },
+ {
+ id: 'rbxl-how-to-use',
+ title: 'I2. Как импортировать карту',
+ body: (
+ <>
+
Шаг 1. Получи .rbxl-файл
+
+ В Roblox Studio открой свою карту и сохрани её
+ через меню File → Save to File. Получится файл
+ с расширением .rbxl (бинарный) или
+ .rbxlx (текстовый XML). Оба формата подходят.
+
+
+ Если у тебя нет своей карты, можно скачать
+ любую opensource Roblox-карту с GitHub —
+ их там много (поиск «roblox places .rbxl»).
+ Классика — карта Crossroads.
+
+
+
Шаг 2. Загрузи в студию
+
+ Открой студию Рублокса и нажми кнопку
+ «📦 Импорт Roblox» в левой панели.
+
+
+ Перетащи .rbxl-файл в окно модалки или нажми
+ «Выбрать файл». Кликни «Анализировать».
+ Это займёт 5–30 секунд: сервер читает структуру карты,
+ считает объекты, скрипты, ассеты и показывает отчёт.
+
+
+ В отчёте увидишь, сколько в карте Part-ов, моделей,
+ скриптов, текстур и какие будут предупреждения.
+ Например: «найдены неподдерживаемые сетки», «много
+ BillboardGui — может тормозить» и т.п.
+
+
+
Шаг 3. Настрой режим импорта
+
+ Перед созданием проекта выбери, как обращаться
+ со скриптами и GUI карты:
+
+
+
+ Скрипты:
+
+
Отключены (рекомендуется) — все
+ скрипты импортируются, но не запускаются.
+ Карта оживает как декорация: можно ходить
+ и смотреть, но без логики.
+
Включены — Lua-скрипты карты пытаются
+ запуститься. Часть API не поддерживается
+ (Roblox-only), некоторые карты могут зависать
+ или давать ошибки в консоли.
+
Удалить — скрипты вообще не сохраняются.
+ Останется только геометрия.
+
+
+
+ GUI:
+
+
Все — импортируется и HUD (ScreenGui),
+ и подписи над объектами (BillboardGui).
+
Только ScreenGui — переносится
+ только HUD. Хорошо если в карте было
+ 200+ табличек-вывесок города.
+
Пропустить — не импортировать GUI.
+
+
+
+
+
Шаг 4. Создай проект
+
+ Введи название игры. Под этим именем карта появится
+ в твоих проектах.
+
+
+ Нажми «Создать игру». Сервер скачает текстуры
+ и сетки с Roblox CDN, соберёт проект и переведёт тебя
+ в редактор.
+
+
+ Нажми Запустить и осмотри
+ карту вживую.
+
+ >
+ ),
+ },
+ {
+ id: 'rbxl-graphics-vs-scripts',
+ title: 'I3. Графика хорошо, скрипты — осторожно',
+ body: (
+ <>
+
+ Главное, что нужно знать про импорт: графика
+ переносится хорошо, скрипты — нет. Это связано
+ с тем, что движок Рублокса (Babylon.js) и движок
+ Roblox — разные. Геометрия и материалы — это
+ «стандартный 3D», он одинаков везде. А скрипты
+ опираются на сотни Roblox-API, которые в Рублоксе
+ реализованы лишь частично.
+
+ Импорт хорошо работает в два прохода. Не
+ пытайся всё запустить сразу — карта может встать
+ колом из-за ошибок в чужих скриптах. Делай так:
+
+
+
Проход 1. Импорт без скриптов
+
+ Перед созданием проекта выбери в режиме скриптов
+ «Отключены».
+
+
+ Создай проект. Запусти игру и пройдись по карте.
+ Смотри только на графику:
+
+
как лежат блоки и модели;
+
правильные ли материалы и цвета;
+
работают ли текстуры;
+
как выглядит освещение и небо;
+
нет ли провалов / летающих в воздухе кусков.
+
+
+
+ Если что-то выглядит криво — это хорошо:
+ твой проект не сломан скриптами, можно спокойно
+ поправить геометрию руками в редакторе.
+
+
+
Проход 2. Аккуратно включай скрипты
+
+ После того как графика тебя устраивает, можно
+ по одному включать скрипты карты. Это
+ делается уже в редакторе проекта, в панели
+ «Скрипты»:
+
+
+ Открой панель скриптов. У каждого скрипта рядом
+ с названием есть тумблер «Включён».
+ По умолчанию после импорта все они выключены.
+
+
+ Включай скрипты по одному, начиная с самых
+ простых — те, что висят на Touched-частях
+ (кнопки, телепорты, ловушки). Запускай игру,
+ смотри, всё ли работает.
+
+
+ Если включил скрипт и игра зависла или замусорила
+ консоль ошибками — выключи его обратно. Это
+ нормально. У этого скрипта, скорее всего, есть
+ Roblox-API, которого у нас нет.
+
+
+ Для важных скриптов, которые не работают, можно
+ либо переписать их под Рублокс (у нас простой
+ JS-API через game.*), либо
+ заменить на свой скрипт с похожей логикой.
+
+
+
+ Не расстраивайся, если из 200 скриптов сразу
+ заработает только 50. Это нормально — большие
+ Roblox-карты опираются на сложные сервисы. Зато
+ графика уже на месте, и тебе остаётся написать
+ несколько коротких скриптов на привычном JS.
+
+ >
+ ),
+ },
+ {
+ id: 'rbxl-tips-and-tricks',
+ title: 'I5. Советы и частые проблемы',
+ body: (
+ <>
+
Частые ошибки
+
+
+ «Карта пустая после импорта» — спавн-точка
+ могла оказаться под полом или в стене. В редакторе
+ переставь её в Game-вкладке: точка спавна
+ {' '}→ кликни в нужное место.
+
+
+ «Текстуры серые» — изредка Roblox CDN не
+ отдаёт текстуру (она удалена). Поставь свой цвет
+ или текстуру на этих Part-ах в редакторе.
+
+
+ «Игра тормозит» — обычно дело в большом
+ числе BillboardGui (вывески города) или unanchored
+ Part-ов. Импортируй заново с режимом GUI
+ «Только ScreenGui».
+
+
+ «Скрипт даёт ошибку DataStoreService» —
+ это Roblox-only сервис. Выключи скрипт или
+ замени логику сохранения на нашу.
+
+
+ «Игрок проваливается под пол» — иногда
+ у Part-а пола стоит CanCollide=false.
+ Выдели пол в редакторе и включи коллизию.
+
+
+
+
Что делать после импорта
+
+
Переименуй важные объекты на русский — так
+ удобнее писать новые скрипты;
+
Сгруппируй похожие Part-ы в модели (можно через
+ инспектор);
+
Поставь свои точки спавна и финиша на местах,
+ которые тебе нужны;
+
Сохрани копию проекта до того, как начнёшь
+ включать скрипты — на случай, если карта сломается.
+
+
+
+ Импорт — это стартовая площадка, а не готовый
+ продукт. Лучше всего он работает, когда ты берёшь
+ из Roblox-карты только геометрию, а механики
+ и интерактив пишешь сам на нашем JS-API
+ (через game.*). Так получится игра,
+ которая стабильно работает у тебя и у игроков.
+
+
+
Что почитать дальше
+
+ Если хочешь узнать, как переписать импортированный
+ Roblox-скрипт под наш движок — посмотри раздел
+ «Скрипты» в вики (D-G) и сравни Roblox-API
+ с нашим game.*. Многое делается похоже,
+ только короче.
+
+ >
+ ),
+ },
+ ],
+ },
+
// ════════════════════════════════════════════════════
// РАЗДЕЛ — СОВМЕСТНОЕ РЕДАКТИРОВАНИЕ (Team Create)
// ════════════════════════════════════════════════════
diff --git a/src/components/RbxlImportModal.jsx b/src/components/RbxlImportModal.jsx
index 2247a42..f569146 100644
--- a/src/components/RbxlImportModal.jsx
+++ b/src/components/RbxlImportModal.jsx
@@ -1,7 +1,7 @@
/**
* RbxlImportModal — модалка импорта .rbxl Roblox-карт в Rublox.
*
- * Доступна ТОЛЬКО МИНу (user_id === 1) — это тест-фича.
+ * Доступна всем пользователям (см. вики «Импорт из Roblox» о нюансах).
*
* Поток:
* 1. Юзер дропает или выбирает .rbxl файл.
@@ -13,8 +13,6 @@
import React, { useState, useRef } from 'react';
import { analyzeRbxl, createRbxlProject } from '../api/rbxlImporterApi.js';
-const ALLOWED_USER_ID = 1; // МИН
-
const MAX_SIZE = 50 * 1024 * 1024; // 50 MB
export default function RbxlImportModal({ open, onClose, currentUserId, onCreated }) {
@@ -37,18 +35,6 @@ export default function RbxlImportModal({ open, onClose, currentUserId, onCreate
if (!open) return null;
- if (currentUserId !== ALLOWED_USER_ID) {
- return (
-