# waterways

> Talos 0.6 · Since 0.6

Rivers, waterfalls and lakes from a terrain's hydrology, drawn and floated on, with per-id overrides.

Roughness and flowScale change the water bodies feel; everything else is render only.

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

## Fields

| Field | Type | Required | Default | Allowed values | Description |
|---|---|---|---|---|---|
| `terrain` | `string` | no |  |  | The terrain entity. Absent: this entity if it is a terrain, else the scene's only terrain (`waterways-without-terrain`). |
| `rivers` | `boolean` | no | `true` |  | Draw and float on the terrain's rivers. Default true; hide single ones with `overrides[].hidden`. |
| `waterfalls` | `boolean` | no | `true` |  | Draw and float on the terrain's waterfalls. Default true; hide single ones with `overrides[].hidden`. |
| `lakes` | `boolean` | no | `true` |  | Draw and float on the terrain's lakes. Default true; hide single ones with `overrides[].hidden`. |
| `look` | `WaterwaysLook` | no |  |  | The default look for all of them. |
| `roughness` | `number` | no | `0` |  | Manning n of the river beds, 0.02..0.15. Default 0.045. Changes the speed, so it is part of a replay. |
| `flowScale` | `number` | no | `1` |  | Multiplies every river's speed, 0..4. Default 1; 0 is still water. Part of a replay. |
| `foam` | `number` | no | `1` |  | Scale on foam, 0..2. Default 1. Render only. |
| `mist` | `number` | no | `1` |  | Scale on waterfall mist, 0..2; 0 is none. Default 1. Render only. |
| `overrides` | `WaterwaysOverride[]` | no |  |  | Per-id overrides, at most 64. |

## Rules that can refuse it

- `physics.water.river-cap`
- `render-waterways-without-hd`
- `render.hd.water.river-id-unknown`
- `waterways-look-invalid`
- `waterways-override-invalid`
- `waterways-without-terrain`
