set_field_value
Writes type-safe values to a game object's IL2CPP, Mono, or Unreal field by auto-resolving the offset and encoding. Use it to modify field values with overflow checks and optional write-back verification.
Instructions
写对象字段值(read_field_value 的对称入口):自动查偏移、按类型定宽度与编码、写完回读核对。溢出直接报错不截断;引用类型字段拒绝(改引用属改逻辑,请用 eval_script/Hook)。
⚠️ 危险操作:写错地址或写错值会立刻让游戏崩溃或行为异常。
写之前务必先 read_field_value 读一次,确认偏移与当前值符合预期。
与 write_memory 的分工(不是重复工具):
write_memory 要「地址 + 裸十六进制字节」,是原始内存入口;
本工具要「哪个对象的哪个字段 + 一个语义化的值」,是字段入口。
它替你做了三件容易做错的事:查真实偏移、按字段类型定宽度、
按字段类型选整数/浮点/布尔的编码。
写几个字节由字段类型决定(与读取同一张表):bool 1、int16 2、
int32/float 4、long/double/引用类型 8。溢出直接报错,不静默截断 ——
把 300 写进 1 字节字段如果截成 44,你会看到 ok:true 却拿到没要的值。
引用类型字段(class/string/数组)会被拒绝:field_type 认不出基础类型
且宽度为 8 时,本工具报错而不是去写一个指针 —— 换对象引用属于改逻辑,
应该用 eval_script 或 Hook,而不是改一个字段的字节。
静态字段:把 instance 传成 "static"(或空串)即可写静态字段
(与 read_field_value 同一套约定)。静态字段走探针的
*_field_static_set_value,没有「实例 + 偏移」这回事;返回里 is_static
为 true、并给出 declared_by(它可能声明在基类上)。
⚠️ 静态字段常被全局逻辑读取,改了会影响整个游戏——返回里带
value_before,出问题可以用它写回。
Args:
instance: 对象指针(十六进制)。可用 find_instances 拿,
或从 Hook 事件的 args[0] 拿。
传 "static" 表示写静态字段(不需要对象指针)。
name: 类名。
field: 字段名。
value: 要写入的值。整数按字段宽度与符号解释;浮点字段给数字;
bool 字段给 true/false/1/0;认不出类型时给 0x... 字节串。
namespace: 命名空间。
image: 程序集名。
verify: 写完后立刻回读一次并放进返回(默认 True)。
这是为了不留「假成功」:写完把实测值给你,而不是只报 ok。
Returns: {ok, class, field, instance, offset, field_address, wrote_hex, write_width, write_kind, value_before?, read_back?...}
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| field | Yes | ||
| image | No | ||
| value | Yes | ||
| verify | No | ||
| instance | Yes | ||
| namespace | No |