<!--
{
  "availability" : [
    "visionOS: 2.0.0 - 26.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "TabletopKit",
  "identifier" : "/documentation/TabletopKit/TabletopGame/Observer/interactionWasUpdated(_:snapshot:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "TabletopKit"
    ],
    "preciseIdentifier" : "s:11TabletopKit0A4GameC8ObserverP21interactionWasUpdated_8snapshotyAA0A11InteractionC5ValueV_AA13TableSnapshotVtF"
  },
  "title" : "interactionWasUpdated(_:snapshot:)"
}
-->

# interactionWasUpdated(_:snapshot:)

Called whenever any interaction (local or remote) is updated.
For local interactions, each `interactionWasUpdated` callback occurs
immediately before the `TabletopInteraction.Delegate.update()` callback
with the same `TabletopInteraction.Value` and the same snapshot as is
accessed by `game.withCurrentSnapshot`.
For remote interactions, `interactionWasUpdated` callbacks are only
guaranteed to occur when the `phase` or `controlledEquipment` are updated
and the `TabletopInteraction.Value` indicates only the limited information
available about remote interactions viewed over the network.
Due to network shared state resolution, remote interactions may not always
present interactionWasUpdated callbacks with a completely coherent phase
order (i.e. .started then .update(s) then .ended/.cancelled) or present a
final value matching the corresponding TableCursor API value.

```
func interactionWasUpdated(_ value: TabletopInteraction.Value, snapshot: TableSnapshot)
```

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)