Opal 的 GraalVM 脚本引擎介绍

编写自定义 JavaScript 代码,与 Opal 的内部 API 交互。自动化任务,响应游戏事件,绘制自定义 HUD,并在运行时扩展客户端.

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

Opal 提供了 GraalVM JavaScript 引擎,这是一个完整的 JS 运行时,运行在 Minecraft 客户端内部。您可以在游戏运行期间编写脚本,与 Opal 的内部 API 进行交互。这既不是宏录制器,也不是按键绑定系统。它是一个真正的编程环境,可以访问客户端的事件系统、模块配置和游戏状态.

Key takeaways
  • 一个完整的 GraalVM JavaScript 运行时,而不是一个宏记录器。
  • 响应游戏事件,更改模块设置,并绘制你自己的 HUD。
  • 脚本在运行时加载,无需重启,并以沙盒模式运行在 Opal 的 API 中。
  • 大多数其他客户端仅限于基本的宏.

为什么选择 GraalVM?

GraalVM 是 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);
  }
});

自定义 HUD 元素

绘制您自己的覆盖层:

// 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 中执行,可以调用 Opal 的 API,但无法访问您的文件系统、网络或其他应用程序。您的脚本保持本地,您的机器仍然是您的。

社群脚本

脚本社群正在发展壮大。Discord 频道分享了脚本和人员,可以帮助你编写自己的脚本。常见的脚本包括用于迷你游戏的自动游戏脚本、数据追踪器、连击检测器以及服务器特定的配置切换器。

常见问题解答

找到一个你可以掌控的客户,$8.99

Lifetime license · instant delivery · no subscription