Repository navigation
v1.0.3
Voice commands, video / audio / document attachments, and object storage for media. Also an experimental autoplay tool for PIE, and a batch of editor-crash and data-loss fixes. Requires plugin 1.2.9.
Added
- Voice commands. A hotkey opens Spotlight in transcribe-only mode: speech fills the input box and submits after a countdown, or hold the key to talk and release to send. Off by default (Alt+Q); enable it under Preferences → Shortcuts. Speech recognition is now its own model role, with Doubao STT 2.0 and Qwen-Audio ASR.
- Read-aloud styles: concise / detailed / full. The first two condense the reply into a spoken script with the lightweight task model first; full reads the text verbatim and is the default. Timeouts, a missing model or an empty script fall back to the full text. Mini-chat replies are read aloud once settled, and the echo gate is configurable (headphones / speakers / speakers very close).
- Chat attachments accept video, audio and documents. Audio and video are not pre-analysed: the path goes to the agent with the message, and it looks with a question in mind. Documents reuse the knowledge-base parser. New tool
read_document;read_local_filerefuses binaries by extension instead of decoding 50 KB of garbage. Interjections can carry attachments too, even with no text. - Object storage (Settings → Object Storage). Images and media from chat are uploaded to your own S3-compatible bucket and passed to the model as links, instead of resending base64 on every turn. No bucket, a model that can't take links, or a failed upload all fall back silently to the old behaviour.
- Video generation takes reference video and audio (Volcengine Ark Seedance 2.x). Local video goes through object storage; without it, the request is stopped before any charge.
- Provider catalog: a subscription group — Xiaomi MiMo Token Plan, Alibaba Bailian Token / Coding Plan, Zhipu GLM Coding Plan, Volcengine Ark Coding Plan, Tencent Cloud Coding / Token Plan, MiniMax Token Plan, StepFun Step Plan. Plan keys don't work on the pay-as-you-go accounts, so each is listed separately. Also pay-as-you-go Xiaomi MiMo, GPT-6 Sol / Luna and Claude Opus 5.5.
- New tool
connect_mcp_server. "I installed an MCP server, connect to it" now works: the handshake succeeds before anything is written to disk, an existing server with the same name is never overwritten, and every call needs approval. - Experimental:
ue_autoplay. A bot walks, jumps, fires inputs and clicks menus inside PIE, reaching logic thatue_playtestcan't. Three modes: explore (stuck spots, falling out of the world, inputs that error), scripted steps, and a one-sentence goal driven step by step by the judge model.until_logis the only assertion. Flat ground and navmesh-reachable targets are fairly reliable; routes that need repeated jumps, stairs or gaps often fail. Movement bypasses key mappings and the game's own movement Blueprint, so "reachable" does not mean "reachable by a player". ue_content_deleteaccepts folders inpathsand submits them as one batch with a single GC.sequence_describegaineddetail="names"(up to 2000).
Changed
- The external MCP server is writable by default. Configs that explicitly saved read-only stay read-only. Toggling permissions while it runs restarts it; switching to read-only ends existing writable sessions immediately.
- Main-process requests follow the system proxy (PAC and bypass lists included). Previously, with Clash in system-proxy mode, only the main process went direct, and OpenAI sign-in from mainland China was refused by region: the browser login succeeded, the token exchange in the app failed.
- Asset search ranks results across vaults by relevance. Previously the current vault always came first — searching
horsefrom the AIGC vault hid 3562 real matches in another vault. ue_fixup_redirectorsnow refuses only when the report dialog can't be shown, rather than whenever unattended. The dry run is approved as read-only; the real run asks every time.- The runtime envelope prints local time with timezone offset and weekday.
- Material
duplicate/create_instanceno longer save on your behalf. - Server management is hidden for now: it is a client for a standalone server that isn't in this repository.
- The provider dialog stays open after saving, so the connection can be tested right away.
Fixed
- Two editor crashes:
material.add_nodewith the Material Editor open (TextureSample, Constant3Vector…), andinput.mapin any project with a Pulse or Combo trigger. Deleting a material node withoutModify()crashed after undo + GC. - A malformed
mcp.jsonwas overwritten as an empty config, taking your servers and keys with it; writes are now refused. Connection timeouts no longer leave orphanednpxprocesses. - A page closing its own browser window crashed the main process.
- Pressing stop returned a bare
Operation aborted, and the model retried a command the engine may already have applied — creating a second Actor. - Positional
unreal.Rotator(...)in Python is blocked: the order is(roll, pitch, yaw), the reverse of JSON, and the engine reports nothing when it's wrong. show_uicaptures the window you used last, or one named withwindow.- The project's engine version is read from the
.uprojecton disk, so a Launcher upgrade no longer shows the old version or blocks matching imports. - Smart tags matched substrings (
SM_Door_01tagged Diffuse and Material); matching is now by prefix / suffix family. Existing wrong tags are not removed automatically. - Object storage: R2 endpoints pasted with the bucket name produced
/bucket/bucket/; auto-cleanup counted from upload time and deleted files just reused in a new chat. - Paging a 520k-row vault without filters took 1.3–2.2 s; now under 1 ms. Batches imported within the same second no longer repeat or drop between pages.
- Voice: dictation closed other people's calls, hold-to-talk restarted mid-way, short phrases were lost, a voice interjection was lost on restart, and replies starting with a newline were read twice.
- Interjections at the end of a turn reported success and were dropped; switching chats during an upload sent them to the wrong chat.
latest.ymlis uploaded last on release, so a failed installer upload can no longer publish an update with nothing to download.- The plugin failed to compile struct property writes on UE 5.8.
Download
Windows only — uebox-1.0.3-setup.exe. An existing install will find this update on its own.
Supports Unreal Engine 5.0 through 5.8. The UnrealAgentLink plugin (1.2.9) ships prebuilt and installs itself when you import a project.
The installer is not code-signed, so Windows SmartScreen will warn on first run.
New here? Read the 1.0.0 release notes — they describe what the app actually does.
License
Apache-2.0 for the application, MIT for the UnrealAgentLink plugin.
This project is not affiliated with or endorsed by Epic Games. Unreal and Unreal Engine are trademarks of Epic Games, Inc.
🐛 Issues · 🔒 Report security vulnerabilities privately per SECURITY.md
中文
语音下指令、视频 / 音频 / 文档附件、对象存储换链接,外加实验性的 PIE 自主试玩工具,以及一批编辑器崩溃和数据丢失的修复。需要插件 1.2.9。
新增
- 语音下指令。 热键唤起 Spotlight 只转写不回答,说完填进输入框、倒计时自动提交;也可以按住热键说话、松手即发。默认关闭(Alt+Q),在偏好设置 → 快捷键里打开。语音识别成为独立角色,接入豆包 STT 2.0 与 Qwen-Audio ASR。
- 播报风格三档:简洁 / 详细 / 完整。 前两档朗读前先由轻量任务模型压成口播稿;完整档原文照念,也是默认档。压缩超时、模型没配、回空稿都退回念原文。小窗回复落定后自动朗读;回声门限可配(耳机 / 外放 / 音箱很近)。
- 聊天附件接受视频、音频与文档。 音视频不预先分析,路径随消息交给 agent,由它带着问题去看;文档复用知识库解析。新增
read_document;read_local_file按扩展名把二进制挡在读取之前。插话也能带附件,只拖附件不打字也能插。 - 对象存储(设置 → 对象存储)。聊天里的图片和音视频传进你自己的 S3 兼容桶,换成链接给模型,不再把 base64 每轮重发。没配、模型收不了链接或上传失败,都安静退回原来的做法。
- 生视频支持参考视频和参考音频(方舟 Seedance 2.x)。本地视频经对象存储换成链接,没配时在扣费之前拦下。
- 服务商目录加「订阅套餐」一组:小米 MiMo Token Plan、阿里云百炼 Token / Coding Plan、智谱 GLM Coding Plan、火山方舟 Coding Plan、腾讯云 Coding / Token Plan、MiniMax Token Plan、阶跃星辰 Step Plan。套餐 Key 与按量账户不通用,各自单列。另加按量的小米 MiMo,以及 GPT-6 Sol / Luna、Claude Opus 5.5。
- 新工具
connect_mcp_server。「我装了个 MCP,你连一下」现在真的连得上:先握手连通再落盘,同名不覆盖,每次调用都要审批。 - 实验性:
ue_autoplay。 机器人在 PIE 里自己走、跳、按输入、点菜单,覆盖ue_playtest碰不到的逻辑。三种模式:探索(找卡住、掉出世界、按了就报错的输入)、写死步骤、一句话目标(由判定模型逐步决策)。until_log是唯一的断言。平地和导航网格走得到的目标比较可靠,要连续跳台阶、爬楼、跨沟的路线经常到不了;移动绕开了键位映射和游戏自己的移动蓝图,走得到不等于玩家按键走得到。 ue_content_delete的paths直接收目录,一批提交、只跑一遍 GC。sequence_describe新增detail="names",上限 2000。
变更
- 对外 MCP 服务默认可写。 老配置里明确存了只读的保持只读;运行中切换权限自动重启,切到只读时旧的可写会话立即失效。
- 主进程请求跟随系统代理(含 PAC 与绕过列表)。此前开着 Clash 的系统代理模式时只有主进程直连,国内直连 OpenAI 授权被按地区拒:浏览器里登录成功,回到盒子换令牌失败。
- 素材库搜索跨库按相关度统一排序。此前当前库永远排最前,站在 AIGC 库里搜
horse,另一个库里 3562 个真命中一个都没露面。 ue_fixup_redirectors只在报告框弹不出来时拒绝。预演按只读审批,真正执行每次都问。- 运行时信封改印本地时间,带时区偏移与星期几。
- 材质的
duplicate/create_instance不再替你存盘。 - 服务器管理入口暂时隐藏:整页只是 standalone 服务端的客户端,而服务端不在本仓库。
- 模型与服务商弹窗点保存不再关窗,可以接着测连接。
修复
- 两处编辑器崩溃:材质编辑器开着时
material.add_node建 TextureSample、Constant3Vector 这类节点;工程里有 Pulse 或 Combo 触发器时调input.map。删材质节点少了Modify(),撤销后 GC 会崩。 mcp.json不是合法 JSON 时会被按空配置覆盖,server 和密钥一起没了;现在拒绝写入。连接超时不再留下孤儿npx进程。- 页面自己关掉浏览器窗口会带走主进程。
- 按停止只回一句
Operation aborted,模型把可能已经生效的命令当失败重试,多出第二个 Actor。 - Python 里按位置传
unreal.Rotator直接拦下:顺序是(roll, pitch, yaw),与 JSON 相反,错了引擎一个字不报。 show_ui截图拍你最后用过的窗口,也可用window点名。- 工程的引擎版本以磁盘上的
.uproject为准,在 Launcher 里升过版本后不再显示旧版本、拦下匹配的导入。 - 智能标签被子串撞出错标(
SM_Door_01被打上 Diffuse、Material),改为按前缀族 / 后缀族匹配。已写进库里的旧标签不会自己消失。 - 对象存储:R2 地址带桶名会拼成
/桶/桶/;自动清理按上传时间算,会清掉刚在新对话里复用的文件。 - 52 万行的资产库,不带筛选翻一页要 1.3–2.2 秒,现在不到 1 毫秒;同一秒导入的一批分页时不再重复或漏。
- 语音:听写会关掉别人的通话,按住说话会中途重启,短句会丢,语音插进来的那句重启就没了,正文以换行开口时整条念两遍。
- 插话在一轮收尾时回「成功」却丢掉;等附件上传时切了对话会插到别的对话里。
- 发版时
latest.yml排到最后上传,安装包传失败不会再挂出一个没有可下载文件的更新。 - 插件的结构体属性写入在 UE 5.8 上编不过。
下载
仅 Windows —— uebox-1.0.3-setup.exe。已安装的版本会自己检查到这个更新。
支持 虚幻引擎 5.0 至 5.8。UnrealAgentLink 插件(1.2.9)随包预编译,导入工程时自动安装。
安装包未做代码签名,首次运行会被 Windows SmartScreen 拦一下。
第一次接触?读 1.0.0 的发版说明,那里写了这个应用到底做什么。
许可
应用为 Apache-2.0,UnrealAgentLink 插件为 MIT。
本项目与 Epic Games 无隶属关系,也未获其背书。Unreal 与 Unreal Engine 是 Epic Games, Inc. 的商标。
🐛 问题反馈 · 🔒 安全漏洞请按 SECURITY.md 私下报告