# hbmspace:ravine

Stratified ravines.

Each Y layer starts a new width stratum with chance 1 in `strata_frequency`. A cell is cut when $(dx^2 + dz^2) \times \mathrm{stratum} + dy^2 / \mathrm{taper} < \mathrm{width}$. Cuts are air, with lava at and below `lava_level`; an ellipsoid whose shell holds water is skipped unless `underwater` is set, which fills water below Y 62 and obsidian at and below `lava_level`.

## Fields

| Field | Meaning and default | Range |
| - | - | - |
| `probability` | Chance that a source chunk starts the carver. | `[0, 1]` |
| `y` | Vanilla height provider for start heights. | |
| `yScale` | Vanilla float provider: vertical scale of rooms. | |
| `lava_level` | Vertical anchor at and below which cuts fill with the lava block. | |
| `replaceable` | Block ID, `#tag` or ID list: blocks the carver may cut. | |
| `debug_settings` (Optional) | Vanilla carver debug settings; unused. | |
| `strata_frequency` | Inverse chance of a new stratum per layer. | `[1, 256]` |
| `strata_scale` | Stratum size: $(1 + r^2 \times \mathrm{strata\_scale})^2$. | `f32` |
| `taper` | Vertical taper. | `f64` |
| `width` | Cut threshold. | `f64` |
| `underwater` | Cuts through water-bearing shells. | |
| `top` | Block ID, `#tag` or ID list: surface blocks. | |
| `filler` | Block ID, `#tag` or ID list: blocks re-topped when exposed. | |

The top-level `type` selects this carver; `config` supplies the fields above.

## Example

Source path: `data/hbmspace/worldgen/configured_carver/moho/ravine.json`

```json
{
  "type": "hbmspace:ravine",
  "config": {
    "filler": [
      "hbmspace:moho_regolith",
      "hbm:basalt"
    ],
    "lava_level": {
      "absolute": 9
    },
    "probability": 0.02,
    "replaceable": [
      "hbmspace:moho_stone",
      "hbmspace:moho_regolith",
      "hbm:basalt"
    ],
    "strata_frequency": 3,
    "strata_scale": 1.0,
    "taper": 6.0,
    "top": [
      "hbmspace:moho_regolith",
      "hbm:basalt"
    ],
    "underwater": false,
    "width": 1.0,
    "y": {
      "type": "minecraft:biased_to_bottom",
      "inner": 8,
      "max_inclusive": {
        "absolute": 67
      },
      "min_inclusive": {
        "absolute": 20
      }
    },
    "yScale": 3.0
  }
}
```
