---
title: "actionWasConfirmed(_:oldSnapshot:newSnapshot:)"
framework: tabletopkit
role: symbol
role_heading: Instance Method
path: "tabletopkit/tabletopgame/observer/actionwasconfirmed(_:oldsnapshot:newsnapshot:)"
---

# actionWasConfirmed(_:oldSnapshot:newSnapshot:)

Called once for each action which passed validation in the update in which it is confirmed as a part of the shared network table state. All players in a network session are guaranteed to observe the same sequence of actionWasConfirmed and actionWasRolledBack callbacks. In a network session, these callbacks are delayed behind actionIsPending callbacks by approximately a network round trip time.

## Declaration

```swift
func actionWasConfirmed(_ action: some TabletopAction, oldSnapshot: TableSnapshot, newSnapshot: TableSnapshot)
```

## See Also

### Validating actions

- [validateAction(_:snapshot:)](tabletopkit/tabletopgame/observer/validateaction(_:snapshot:).md)
- [actionIsPending(_:oldSnapshot:newSnapshot:)](tabletopkit/tabletopgame/observer/actionispending(_:oldsnapshot:newsnapshot:).md)
- [actionWasRolledBack(_:snapshot:)](tabletopkit/tabletopgame/observer/actionwasrolledback(_:snapshot:).md)
- [actionWasDiscarded(_:)](tabletopkit/tabletopgame/observer/actionwasdiscarded(_:).md)
