---
title: Tabletop
framework: tabletopkit
role: symbol
role_heading: Protocol
path: tabletopkit/tabletop
---

# Tabletop

A protocol for the table surface in your game.

## Declaration

```swift
protocol Tabletop : Identifiable where Self.ID == EquipmentIdentifier
```

## Overview

Overview To create a TableSetup object that configures your game table, pass an object that conforms to either the Tabletop or EntityTabletop`` protocol to the TableSetupinitializer. Implement yourTabletopstructure to set the protocol properties, such as theshapeandid` properties. struct Table: Tabletop {     var shape = .rectangular(width: 100, height: 60, thickness: 5, in: .centimeters)     var id = .table } To create a round table, use one of the TabletopShape round initializers. To render the table surface using RealityKit, conform to the EntityTabletop protocol instead.

## Topics

### Creating a round or rectangular table

- [shape](tabletopkit/tabletop/shape.md)

### Displaying the equipment

- [layoutChildren(for:visualState:)](tabletopkit/tabletop/layoutchildren(for:visualstate:).md)

## Relationships

### Inherits From

- [Identifiable](swift/identifiable.md)

### Inherited By

- [EntityTabletop](tabletopkit/entitytabletop.md)

## See Also

### Essentials

- [Creating tabletop games](tabletopkit/creating-tabletop-games.md)
- [Synchronizing group gameplay with TabletopKit](tabletopkit/synchronizing-group-gameplay-with-tabletopkit.md)
- [TabletopGame](tabletopkit/tabletopgame.md)
- [TableSetup](tabletopkit/tablesetup.md)
- [EntityTabletop](tabletopkit/entitytabletop.md)
- [TabletopShape](tabletopkit/tabletopshape.md)
