---
title: CustomAction
framework: tabletopkit
role: symbol
role_heading: Protocol
path: tabletopkit/customaction
---

# CustomAction

A protocol that represents an action whose behavior is implemented outside of TabletopKit. A custom action that can be applied to a TableState.

## Declaration

```swift
protocol CustomAction
```

## Topics

### Creating a custom action

- [init(from:)](tabletopkit/customaction/init(from:).md)

### Applying the action

- [apply(table:)](tabletopkit/customaction/apply(table:).md)

### Validating the action

- [validate(snapshot:)](tabletopkit/customaction/validate(snapshot:).md)

## See Also

### Actions

- [TabletopAction](tabletopkit/tabletopaction.md)
- [MoveEquipmentAction](tabletopkit/moveequipmentaction.md)
- [UpdateEquipmentAction](tabletopkit/updateequipmentaction.md)
- [SetTurnAction](tabletopkit/setturnaction.md)
- [UpdateCounterAction](tabletopkit/updatecounteraction.md)
- [CreateBookmarkAction](tabletopkit/createbookmarkaction.md)
