Представляем Opal's GraalVM Scripting Engine

Напишите собственный JavaScript, который взаимодействует с внутренними API Opal. Автоматизируйте задачи, реагируйте на игровые события, рисуйте собственный HUD и расширяйте клиент во время выполнения.

FeaturesMarch 15, 2026by trq· Updated June 3, 2026

Opal поставляется с движком JavaScript GraalVM, полноценной средой выполнения JS, работающей внутри клиента Minecraft. Вы пишете скрипты, которые взаимодействуют с внутренними API Opal во время игры. Это не макро-рекордер и не система привязки клавиш. Это настоящая среда программирования с доступом к системе событий клиента, конфигурациям модулей и состоянию игры.

Key takeaways
  • Полная среда выполнения JavaScript GraalVM, а не просто макро-рекордер.
  • Реагируйте на игровые события, изменяйте настройки модулей и рисуйте собственный HUD.
  • Скрипты загружаются во время выполнения, без перезапуска, и работают в изолированной среде с использованием API Opal.
  • Большинство других клиентов ограничиваются базовыми макросами.

Почему GraalVM

GraalVM — это полиглотный runtime от Oracle. Мы выбрали его по конкретным причинам:

  • Скорость: JIT-компиляция поддерживает скрипты достаточно быстрыми, чтобы они выполнялись каждый тик.
  • JavaScript: большинство людей уже знают его, поэтому кривая обучения не очень крутая.
  • Потокобезопасность: привязки JS к Java корректно обрабатывают параллелизм, вместо того чтобы заставлять вас спотыкаться о него.
  • Знакомые шаблоны: стандартные JavaScript API работают так, как вы ожидаете

Что вы можете построить

Пользовательская автоматизация

Реагировать на события в игре:

// Auto-respond to certain chat messages
on('chat', (event) => {
  if (event.message.includes('1v1?')) {
    sendChat('/duel accept');
  }
});

Динамическая настройка модулей

Изменить настройки модуля в зависимости от состояния игры:

// Increase reach when health is low
on('tick', () => {
  const health = player.getHealth();
  if (health < 8) {
    modules.get('Reach').setSetting('distance', 3.3);
  } else {
    modules.get('Reach').setSetting('distance', 3.1);
  }
});

Пользовательские элементы интерфейса

Рисуйте собственные наложения:

// Display a combo counter on screen
let combo = 0;
on('attackEntity', () => { combo++; });
on('damage', () => { combo = 0; });
on('render2d', (ctx) => {
  ctx.drawText(`Combo: ${combo}`, 10, 10, 0xFFFFFF);
});

Профили для конкретного сервера

Автоматически переключайте конфигурации при подключении к разным серверам:

on('serverJoin', (event) => {
  if (event.ip.includes('pvp.example.com')) {
    loadConfig('server-bypass');
  } else {
    loadConfig('ghost-default');
  }
});

Начало

1

Открыть папку со скриптами

Найдите папку со скриптами в вашей папке конфигурации Opal.

2

Создайте файл .js

Любое имя подойдёт. Это ваш сценарий
3

Пишите против API

Используйте справочник API в документации панели управления: события, доступ к модулям, состояние игрока и рендеринг
4

Сохранить и играть

Скрипты загружаются во время выполнения, поэтому перезагрузка не требуется

Скрипты выполняются в изолированной среде

Скрипты выполняются внутри GraalVM и могут вызывать API Opal, но не имеют доступа к вашей файловой системе, сети или другим приложениям. Ваши скрипты остаются локальными, а ваша машина — вашей.

Скрипты сообщества

Сообщество сценаристов растёт. На Discord были опубликованы скрипты и люди, готовые помочь вам написать свои собственные. Наиболее распространённые из них включают в себя скрипты для автоматизации игр в мини-играх, трекеры статистики, детекторы комбо и переключатели конфигураций, специфичные для сервера.

Часто задаваемые вопросы