用途:为 OpenRCT2 开发插件(脚本),以 JavaScript/TypeScript 扩展游戏,加入自定义窗口、游戏动作、事件钩子和多人功能。
主要能力:插件运行于 Duktape(ES5 运行时),可用游戏动作执行多人同步的状态变更、创建带控件的自定义窗口、订阅游戏事件,并通过网络 API 的 TCP 套接字进行 localhost 通信;支持热重载开发。提供的模板展示用 registerPlugin 注册插件,需设置 name、version、authors、type、licence、targetApiVersion、minApiVersion 和 main。插件类型分本地(local,不能直接改状态)、远程(remote,仅服务器加载并分发客户端,可在自定义动作 execute 中变更状态)与常驻(intransient,跨园区和标题界面保持加载)。游戏动作是推荐的改状态方式,内置动作如 smallsceneryplace、parksetcash、parksetguestgenerationrate、landsetheight、trackplace;自定义动作用 context.registerAction 定义 id、query(校验)与 execute(仅在服务器变更状态),可用 executeAction 调用并在回调中读取 result.error。
使用方式:将 .js 放入插件目录,Windows 为 C:\Users\YourName\Documents\OpenRCT2\plugin\,Mac 为 /Users/YourName/Library/Application Support/OpenRCT2/plugin/,Linux 为 $XDG_CONFIG_HOME/OpenRCT2/plugin/ 或 $HOME/.config/OpenRCT2/plugin/。可用游戏内红色工具箱按钮打开自定义内容文件夹。TypeScript 下安装 typescript(npm install typescript --save-dev)、复制 openrct2.d.ts 并引用,tsconfig 设 target ES5、module none、outFile ./dist/plugin.js。发布可经 GitHub Releases 附编译后 .js,或社区仓库 openrct2plugins.org。
限制:ES5 运行时,不支持箭头函数、class、let/const、模板字符串、展开、解构及 find/includes,需转译;本地插件在多 �player 下直接改 park 状态会失败。许可、收费与平台支持等信息暂未提供。