# ShapeClass

A script class that is instanced for every "scripted" [Interactable](../Game-Script-Environment/Userdata/Interactable.md) [Shape](../Game-Script-Environment/Userdata/Shape.md) in the game.

**Kind:** API page

**Environments:** Game

## Game

[Open the full Game reference](../Game-Script-Environment/Classes/ShapeClass.md)

An interactable part is a [Shape](../Game-Script-Environment/Userdata/Shape.md) that is usually built by the player and can be interacted with. For instance a button or an engine.

Can receive events sent with [sm.event.sendToInteractable](../Game-Script-Environment/Static-Functions/sm.event.md#sendtointeractable).

### Fields

| Name | Type | Description |
| --- | --- | --- |
| `interactable` | [Interactable](../Game-Script-Environment/Userdata/Interactable.md) | The [Interactable](../Game-Script-Environment/Userdata/Interactable.md) game object belonging to this class instance. (The same as shape.interactable) |
| `shape` | [Shape](../Game-Script-Environment/Userdata/Shape.md) | The [Shape](../Game-Script-Environment/Userdata/Shape.md) game object that the [Interactable](../Game-Script-Environment/Userdata/Interactable.md) is attached to. (The same as interactable.shape) |
| `network` | [Network](../Game-Script-Environment/Userdata/Network.md) | A [Network](../Game-Script-Environment/Userdata/Network.md) object that can be used to send messages between client and server. |
| `storage` | [Storage](../Game-Script-Environment/Userdata/Storage.md) | (Server side only.) A [Storage](../Game-Script-Environment/Userdata/Storage.md) object that can be used to store data for the next time loading this object after being unloaded. |
| `data` | any | Data from the "data" json element. |
| `params` | any | Parameter set with [Interactable.setParams](../Game-Script-Environment/Userdata/Interactable.md#setparams) when created from a script. |
