- summary: The current state of one equipment set: which of its pieces are worn and which bonuses that grants.
- area: Game.Inventory
The current state of one equipment set: which of its pieces are worn and which bonuses that grants.
Kind event · Area Game.Inventory
Sent when the character's equipment changes in a way that affects a set bonus.
IT IS THE WHOLE STATE OF ONE SET, NOT A DELTA - REPLACE, DO NOT MERGE. The message names a set and lists every piece currently worn from it together with every bonus currently active. Removing a piece produces a new message with a SHORTER list, not a removal instruction, so a script that merges never sees a bonus expire.
Key your model by set_id. The client does exactly that: it uses the same value
as a dictionary key for set state and as the subject of its own notification.
effects are the bonuses granted at the CURRENT number of worn pieces, not the
set's full table. They are ObjectEffect values and carry the same
branch-on-the-oneof rule.
The record declares additional members no dumped build reads. They stand with their obfuscated names.
When you may send it
- Requires
character_loadedinferred
Related messages
- Unsolicited - nothing you send causes this inferred — the server pushes it when equipment changes; no request asks for it
Fields
| # | Field | Type | Meaning | You set it |
|---|---|---|---|---|
| 1 | set_id | int32 | Which equipment set this update is about. (set id) | never |
| 2 | objects_uid | repeated int32 | The unique handles of the set pieces currently worn. (item instance ids) These are ObjectItem.uid values, not template gids. | never |
| 3 | effects | repeated ObjectEffect | The bonuses active at the current number of worn pieces. Element type ObjectEffect - branch on its oneof. | never |