开发者发布 RS-SDK,演示用 Claude Code 自动化控制 RuneScape 游戏脚本。展现 AI 编程工具在游戏脚本、自动化领域的实际应用。
研究导向的 RuneScape 风格 bot 初始套件,包括 TypeScript SDK、agent 文档和绑定,以及服务器模拟器。开箱即用——告诉它你要自动化什么!
在复杂的经济角色扮演 MMO 中构建和运行 bot。你可以自动化游戏、升级账户到所有 99 级,并在安全的仅限 bot 的环境中实验代理开发技术。
这个项目的目标是为目标导向的程序合成技术(Ralph 循环等)提供丰富的测试环境,并促进代理之间的协作和竞争研究。
目前在演示服务器上运行的 bot 有一个排行榜,排名基于每个账户游戏时间最短的最高总等级。
查看模型对比基准以获取跨不同 LLM 的评估结果。
RS-SDK 是 LostCity 引擎/客户端的分支,这是一个了不起的项目,没有它 RS-SDK 就不会存在。在这里找到他们的代码或阅读他们的历史和理念。
git clone https://github.com/MaxBittker/rs-sdk.git
开箱即用,你可以连接到提供的演示服务器,选择一个还没被占用的名称!
bun install
claude "start a new bot with name: {username}"
bun install
bun bots/create-bot.ts {username}
bun bots/{username}/script.ts
确切的生成 API 表面在 sdk/API.md 中有文档。高级的 bot.* 方法尝试观察方法特定的游戏效果;低级的 sdk.send* 方法确认浏览器客户端调度,但不证明服务器应用了该效果。
MCP execute_code 代码片段接收 bot 和 sdk 全局变量。位于 bots/<name>/ 下的独立文件改为使用 runScript(async ({ bot, sdk }) => { ... });详见 learnings/README.md 中的可复制示例。当前执行器直接评估 JavaScript 兼容的异步主体,所以使用 TypeScript API 参考获取类型信息,但在 execute_code 体中省略仅类型的语法。
默认显示聊天。请注意,查看其他玩家的聊天会使 bot 暴露于诈骗和提示注入尝试;在 bot.env 文件中用 SHOW_CHAT=false 选择退出(或 bun bots/create-bot.ts <name> --no-chat)。
警告:演示服务器作为便利而提供,我们不保证正常运行时间或数据持久性。轻轻地持有你的账户,并考虑托管你自己的服务器实例。请不要在演示服务器上手动游玩。
这个服务器相比原始游戏有一些修改,以使开发和 bot 测试更容易:
rs-sdk 针对一个增强的基于 web 的客户端(botclient)运行,该客户端连接到 LostCity 2004scape 服务器模拟器。
有一个网关服务器接受来自 botclient 和 SDK 实例的连接,并根据用户名在它们之间转发消息。一旦连接到网关,botclient 将游戏状态中继到 SDK,并从 SDK 调度低级操作,如 sendWalk(x, z)。调度成功不是确认游戏服务器应用了预期效果。
这意味着 SDK 不能直接与游戏服务器通信,必须通过 botclient。它将尝试在启动时启动 botclient(如果还没有运行的话)。
你不需要运行网关/botclient 就能针对演示服务器运行自动化,但如果你在修复错误或向 rs-sdk 项目添加功能,你可能会选择这样做。
在本地运行服务器有许多优势,主要是能够设置高 tickrate。
你可以通过 server/engine/.env 中的 NODE_TICKRATE 变量设置 tickrate(默认为 400ms,尝试 200ms 或 30ms 以获得更快的游戏速度,特别是对无头测试很有用)。你也可以在运行时用游戏内 ::speed <ms> 命令改变它(最小 20ms,重启后不持久)。
你需要这三个都在运行:
# Game engine
cd server/engine && bun run start
# Web client bundler
cd server/webclient && bun run watch
# Gateway (bridges SDK <-> bot client)
cd server/gateway && bun run gateway
网关默认侦听 ws://localhost:7780(可通过 AGENT_PORT 环境变量配置)。
安装根和 webclient 依赖,然后运行与 CI 相同的检查:
bun install --frozen-lockfile
(cd server/webclient && bun install --frozen-lockfile)
bun run check
bun run docs:api 重新生成 API 参考。当该文档与公共 TypeScript 类表面不匹配时,CI 失败。
bot.env 中的 SERVER 变量控制 bot 连接的位置。要使用本地网关,保持 SERVER 为空:
BOT_USERNAME=mybot
PASSWORD=test
SERVER=
SHOW_CHAT=true
当 SERVER 为空时,所有连接路径(脚本、CLI)默认为 ws://localhost:7780。
当 SERVER 设置为主机名(例如 rs-sdk-demo.fly.dev)时,它们连接到 wss://{SERVER}/gateway。
这是一个免费的、开源的、社区运行的项目。
目标严格来说是教育和科学研究。
LostCity Server 是在大量研究和同行评审之后从零开始编写的。你看到的一切都是完全且透明开源的。
我们未被 Jagex Ltd. 认可、授权或正式沟通我们的工作。
你不能在这里玩 Old School RuneScape、购买 RuneScape 金币或访问任何官方游戏的服务!在这里开发的 bot 不会在官方游戏服务器上工作。
这个项目以 MIT License 许可。详见 LICENSE 文件。