BLOXAR Script Engine

Добро пожаловать в официальную документацию. BLOXAR Script — это мощная среда выполнения, позволяющая программировать логику миров, создавать интерактивные механики, ловушки и полноценные мини-игры прямо в браузере.

💡 Важно знать

Скрипты в BLOXAR пишутся на стандартном JavaScript. Движок вызывает ваш код 60 раз в секунду (каждый кадр), что позволяет делать невероятно плавные анимации и моментально реагировать на действия игроков.

🚀 Как создать свой первый скрипт

  1. Откройте нужный проект в режиме редактирования (Studio Mode).
  2. В правой панели Explorer нажмите на плюсик () и выберите 📜 Script.
  3. Перетащите созданный скрипт внутрь любого блока (📦 Part).
  4. Кликните по скрипту в списке, чтобы открыть редактор кода.

Внимание: Скрипты НЕ выполняются внутри Студии! Чтобы протестировать код, нажмите Save & Close, затем Publish World и зайдите в игру как обычный Игрок.

🧬 Системные переменные

В каждом скрипте вам изначально доступны 4 системные переменные. Их не нужно объявлять через let или const, просто используйте их.

parent

Блок (3D-объект), внутри которого лежит скрипт. Вы можете менять его позицию, размер и вращение.
Пример: parent.position.y += 0.1;

time

Текущее время игры в секундах. Идеально для создания цикличных анимаций через Math.sin(time).

player

Объект вашего персонажа. Можно использовать для проверки дистанции:
Пример: parent.position.distanceTo(player.position)

script

Сам объект скрипта. Используйте script.userData для хранения собственных переменных, чтобы они не сбрасывались каждый кадр.

🛠️ Global API: Манипуляции

Все системные команды вызываются через глобальный объект BLOXAR.

BLOXAR.setColor(obj, hexColor)

Красит объект. Цвета пишутся в HEX-формате с приставкой 0x. Например: 0xFF0000 (Красный).

BLOXAR.move(obj, x, y, z)

Сдвигает объект на заданное расстояние по осям.

BLOXAR.rotate(obj, rx, ry, rz)

Вращает объект (углы указываются в радианах).

❤️ Global API: Игрок и Здоровье

BLOXAR.damagePlayer(amount)

Наносит урон игроку. Максимальное здоровье равно 100.

BLOXAR.healPlayer(amount)

Восстанавливает здоровье игрока.

🔊 Global API: Аудио и UI

BLOXAR.playSound(type)

Воспроизводит звук. Доступные типы: 'step', 'jump', 'land'.

BLOXAR.isKeyPressed(key)

Возвращает true, если игрок зажал клавишу. Пример: BLOXAR.isKeyPressed('shift').

BLOXAR.showText(text)

Показывает текст-подсказку на экране. Чтобы скрыть текст, передайте пустую строку "".

🧱 Global API: Создание блоков

BLOXAR.createPart(x, y, z, color, sx, sy, sz, hasPhysics)

Спавнит новый блок в мире. Возвращает созданный объект. Если hasPhysics = true, блок будет падать.

BLOXAR.destroyPart(obj)

Навсегда удаляет объект из игрового мира. Важно вызывать для мусора, чтобы не было лагов.

💡 Готовые примеры (Copy & Paste)

Парящий Блок-хамелеон


// Вращаем по осям Y и Z
BLOXAR.rotate(parent, 0, 0.05, 0.02);

// Плавное парение
parent.position.y += Math.sin(time * 5) * 0.05;

// Меняем цвет при зажатии F
if (BLOXAR.isKeyPressed('f')) {
    BLOXAR.setColor(parent, 0xFFD700); // Золотой
} else {
    BLOXAR.setColor(parent, 0x1A2639); // Базовый
}
                

Интерактивная кнопка (Триггер)


let dist = parent.position.distanceTo(player.position);

// Если кнопка еще не нажата
if (!script.userData.isPressed) {
    if (dist < 3) {
        BLOXAR.showText("Нажми [E] чтобы активировать");
        
        if (BLOXAR.isKeyPressed('e')) {
            script.userData.isPressed = true; 
            BLOXAR.playSound('jump');
            BLOXAR.setColor(parent, 0x2EE6A6); // Зеленый
            BLOXAR.showText(""); 
        }
    } else {
        // Прячем текст, если игрок ушел
        BLOXAR.showText("");
    }
}