# spawn

> Talos next · Since 0.6; changed in 0.7

Use it in a scene entity's `components` list as `{ "type": "spawn", … }`. The contract writes the fields flat and refuses unknown keys.

## Fields

| Field | Type | Required | Default | Allowed values | Description |
|---|---|---|---|---|---|
| `for` | `string` | yes |  |  |  |
| `player` | `integer` | no |  |  | With `for: "player"`: which local player this entity is, 1 to 4 (default 1). Player N's devices drive it once `meta.players` seats them; a behaviour can rebind with ctx.players.bind. |

## Rules that can refuse it

- `floor-gap`
- `input-read-without-routing`
- `input-reader-not-player`
- `player-spawn`
- `spawn-no-source`
- `spawn-prefab-cycle`
- `spawn-two-sources`
- `spawn-unknown-source`
- `spawn-unsupported`
- `terrain/entity-floating`
- `terrain/spawn-slope`
- `unreachable-goal`
- `vfx-event-invalid`

## Example

From the contract's tested fixture `fixtures/contract/full20/scene.json#spawn-player`.

```json
{
  "type": "spawn",
  "for": "player"
}
```
