# Lua API — журнал изменений Файл фиксирует **что было добавлено в Lua-runtime** при работе с реальными Roblox-играми. Цель — потом продублировать тот же API для **JS-движка** (на будущее, сейчас работаем только с Lua). Формат: дата + что и почему + куда добавлено + надо ли портировать в JS. --- ## 2026-06-08 — Итерация 2: Crossroads (arch1_Original_Crossroads.rbxl, проект 2827) **Контекст:** Классическая Roblox-карта 2009 года для PvP, **XML-формат** .rbxl (старее бинарного). 877 instances, 777 Part, 83 Model. Состоит из 4 зон: крепость (Castle), дом (House Platform), деревья, дорожки крест-накрест. 2 скрипта: «Regenerate Playground» и «Regenerate Castle» — периодически удаляют и восстанавливают постройки (для PvP). ### Главное: XML-парсер для .rbxl `rbxl-importer/src/rbxl_xml_parser.py` (новый файл, ~330 строк): - `is_xml_rbxl(blob)` — детект по `N` — особый случай: в старом XML цвет лежит как int с именем `BrickColor`, заворачиваем в `BrickColor(code=N)`. В `app.py` добавлен автодетект формата: ```python is_binary = blob.lstrip().startswith(b' Падение.** Лучше пустой stub-метод чем `nil error`. 2. **Сигналы (`Connect`/`Fire`) всегда есть на любом объекте.** 3. **Coloncall совместимость.** Если есть `Foo.Bar`, обычно делаем и `Foo:Bar` (lowercase) как alias. 4. **При добавлении нового Instance-типа** — давай ему **все типичные поля** сразу, не только те что нужны прямо сейчас (Equipped + Unequipped + Activated вместе, даже если скрипт юзает только Equipped). 5. **Логировать сюда после каждой итерации** — что было добавлено и из какой игры.