Skip to content

On a sharded Realm, an item every roller passed on stays locked #703

Open

Description

@Mathih13

Expected (1.12.1). When every roller passes on a group-loot item, the item becomes free for anyone to loot. vmangos Group::CountTheRoll clears the roll and marks the item free when no one chose Need or Greed.

Actual (at 7f9ec8ab). On a sharded Realm, Realm-core resolves the roll. resolve_roll calls unlock_row_ffa on an all-pass (rolls.rs:568), and on a win with no eligible winner (rolls.rs:728). unlock_row_ffa (rolls.rs:623-633) updates game_corpse_loot, but Realm-core holds no corpse loot, so the call does nothing. The loot-roll Relay settles only ROLL_WON events on the World Shards (loot.rs:219-243, through settle_loot_roll at loot_roll.rs:113). No event clears withheld on the Shard that holds the corpse.

How it shows. A group passes on an item. The item stays locked in the corpse window, and no one can loot it. Once #701 merges, every roller also sees "Everyone passed" for that item.

Fix direction. Let the Relay unlock the Shard's row after an all-pass, as it settles a win now. One option: read ALL_PASSED events from Realm-core next to loot_won_since, and fan a gw_ or realm_ unlock call to each World Shard. A Shard that does not hold the corpse ignores the call, the same as with settle_loot_roll's withheld guard. Cover it in a cross-Shard durable test.

Activity

  1. added
    ready-for-agentComplete enough to build from the issue alone, by a person or their agent
    on Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentComplete enough to build from the issue alone, by a person or their agent

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions