用途
mutagen-reference 是一个面向 Skyrim 插件记录类型的离线架构查询技能。它回答的是“某记录类型有哪些字段、各字段是什么类型、是否可写、枚举有哪些合法值、多态字段可取哪些分支”这类结构性问题,而不是读取某个具体记录的数值。例如“ARMO 有哪些字段、哪些可编辑”属于本技能;“这个插件里这件钢甲的护甲值是多少”属于结合本架构进行的记录读取,而非架构查询。
主要能力
- 按类型名(如 Armor、MagicEffect)或 xEdit 四字符签名(如 ARMO、MGEF)定位记录类型;索引同时收录两种形式,两者常不一致时也能解析。
- 返回字段清单,包括字段名、展示类型、基数(scalar、enum、formlink、list、dict、substruct、polymorphic、value)以及是否可写。
- 提供枚举字段的合法取值列表,以及多态字段允许的具体分支类型。
- 对同一签名拆分为多个类型变体的情况(如 GMST 分为 GameSettingBool、GameSettingFloat、GameSettingInt、GameSettingString)提示按实际数据类型选择。
- 覆盖范围由对 Mutagen 记录库的反射自动生成,因此已知类型集合等同于该库建模的类型集合。
使用方式
- 打开索引 references/index.jsonl,每行一条 JSON,映射类型名与 xEdit 签名到所在分片文件及行号;用精确的完整引号标记(如 "name":"Armor" 或 "sig":"ARMO")搜索。
- 命中后只读取索引指定的那一行 schema 块(offset 为行号,limit 为 1),不要整体加载索引或分片。
- 遇到字段的 ref、arms、target 等指针时,按需再查对应类型、枚举或分支的 schema,同样只读一行。
- 每次都重新读取,不凭记忆回答字段存在性、可写性或取值,避免会话压缩后凭印象编造。
适用场景
- 在读取某类记录前,确认其字段构成。
- 在写入或修改记录前,确认目标字段是否可写、值应为什么类型、枚举合法值或多态分支是否匹配。
- 核对 xEdit 签名与库内类型名的对应关系。
限制
- 仅覆盖所固定的 Mutagen 版本所建模的记录类型;索引中缺失的类型意味着该库未建模,属于已知的库与 xEdit 覆盖差异,此时技能会明确警告并拒绝编造 schema。
- 技能本身不含写入执行逻辑;它只说明架构,实际写入由相应的写入工具按其预检规则执行。
- 条件(CTDA)中的表单链接字段在展示上被规范化为 FormLink<T>,无法体现 FormLinkOrIndex 的索引模式区别,涉及表单与索引差异时需在引擎侧确认。
- 多态字段的实际分支需在应用时解析,静态架构无法预先得知当前是哪个分支。