# Compost Caves

> Compost Caves is a biome in tibo.dog. Damp tunnels under the compost heap. Spore vents sting.

Source page: https://www.tibodog.wiki/biomes/compost-caves · Wiki updated 6 Nov 2026, 03:55 UTC · Game version 75 (`main-CSuyb4iv.js`, data synced 5 Nov 2026, 21:45 UTC)

Breadcrumb: [Main page](/) › [Biomes](/biomes)

| Compost Caves | |
|---|---|
| Placement | Climate (temperature 0, moisture 1) |
| Hazard | Spore vents (`spores`) |
| Gold × | 1.15 |
| XP × | 1.15 |

**Compost Caves** is a biome in tibo.dog. In-game description: “Damp tunnels under the compost heap. Spore vents sting.”

## Overview

Compost Caves is a climate biome covering the coldest wet parts of the map (the bottom of four temperature bands, wet side). It usually borders [Frozen-Fries Tundra](/biomes/frozen-tundra) on the dry side and [Peel Forest](/biomes/peel-forest) where it gets warmer. [sim-BkfBhQfw.js: `e<-.22?0:e<.02?1:e<.24?2:3}(a),o<0?0:1)`] Its hazard is spore vents that sting Tibo for 8 HP per second while he stands in them.

[Compost Maggots](/enemies/compost-maggot) open the run, then [Cave Grubs](/enemies/cave-grub) (tier 2); both are found only here. After them come fast [Field Rats](/enemies/field-rat) and the ranged [Blight Spore](/enemies/blight-spore) (tier 3), tanky [Moles](/enemies/mole) (tier 4) and [Mud Golems](/enemies/mud-golem) (tier 5). Gold and XP are both ×1.15.

The caves favour risky points of interest. [Moldy Shrines](/points-of-interest#moldy-shrine) have weight 3, more than in any other biome, and [Boss Lairs](/points-of-interest#boss-lair) (0.6) and [Beetle Nests](/points-of-interest#beetle-nest) (2) are at the top of the climate-biome range. [Potato Crates](/points-of-interest#potato-crate) are common (5) and [Microwaves](/points-of-interest#microwave) have weight 2. [Fry Carts](/points-of-interest#fry-cart) and [Crop Patches](/points-of-interest#crop-patch) are rare (1).

## How it works

### Spore vents

Each chunk centred in the caves gets 2 or 3 vents, each 0.8–1.3 times the base radius of 20; vents that would fall outside the caves are dropped. [sim-BkfBhQfw.js: `a=e.rng.int(Math.max(0,t.perChunk-1),t.perChunk)`] Inside one, Tibo takes 8 damage per second, reduced by [armor](/stats#armor) as if from a level 10 + minutes attacker, so armor blocks less of it as the run goes on. Overlapping vents add up. [sim-BkfBhQfw.js: `` r.kind===`slow`||r.kind===`chill`?b=Math.min(b,1-r.strength):ls(e,r.strength*t,im[r.kind],!0,ee) ``]

The damage is unavoidable: dodge is not rolled, dashing does not protect Tibo, and [Hash Brown Shield](/weapons/hash-brown-shield) guard charges are not spent. It does not count as a hit, so on-hurt items like [Porcupine Spud](/items/porcupine-spud) and [Fry Volcano](/items/fry-volcano) do not fire. [sim-BkfBhQfw.js: `a.hurtFlash[o]=8,e.lastHit.amount=d,e.itemFx.hurts++`] The base amount does not change with difficulty or run time, and only invulnerability, such as the grace after a revive, stops it. Being [frozen by the Deep Freezer](/bosses/deep-freezer#ice-cube-fan) reduces the damage by another 25% after armor. A reset here is listed as “Reset by” “Spore vent”.

**Measured** (headless `tools/play.mjs`, build `main-B2gf34bA`, standard mode, seed `wiki`, no `--god`; clock warped to 1:00, then Tibo teleported onto the centre of a spore vent in this biome; every pest, boss and enemy bullet removed each tick, and HP refilled after each tick): Tibo lost 8 HP per second standing still, over 3 s, with no hit event. With the evasion stat forced to 1 it was still 8 per second, with no dodge event. With Tibo held on the centre during a dash, the dash ticks lost 8 per second too. In the same run, evasion 1 dodged every ordinary pest hit. Easy and Nightmare gave the same rates, and so did seeds `s1` and `s2`, except that on `s1` Tibo was invulnerable (just after a Grok Bot help event) during most of the Ketchup Bog evasion window and took almost no damage then.

### Pests and loot

Tiers follow the wave row of two minutes earlier (three on Easy; see [Wave schedule](/bosses#wave-schedule)). On Normal, maggots are most spawns until 5:00 and stop at 9:00; grubs lead from 5:00 to 8:00; rats and spores join at 6:00 and lead from 8:00 to 11:00; Moles join at 9:00 and lead until 18:00; Mud Golems join at 16:00 and are the only wave pest from 21:00. While the shooter cap is full (see [Crowd limits](/enemy-scaling#crowd-limits)), tier 3 rolls give Field Rats instead of Blight Spores.

Pests use the table of the biome just off screen where they spawn, so the caves' pests start arriving before Tibo crosses the border. [sim-BkfBhQfw.js: `e.scratch.biomeX=n.x[r]+l*s,e.scratch.biomeY=n.y[r]+u*s`] Elites from the caves are Cave Grubs until 5:00, rats or spores until 10:00, Moles until 15:00 and Mud Golems after that. Gold and XP multipliers use the biome where the pest dies.

## Tips

- The caves pay well in both gold and XP, and the late pests (Moles and Mud Golems) are slow tanks. If you can handle their HP, this is a good place to spend the middle and late game.
- Moldy Shrines are common here. Each one trades +0.1 curse for a pile of gold, and curse brings extra elites and bosses, so take them when your build can handle the extra pressure (see [Curse](/curse)).
- The vents are small. Keep track of them when kiting a crowd, because dodge will not save you while you stand in one.

## Enemies

Each biome lists its pests in five tiers.

| Tier | Enemies |
|---|---|
| 1 | [Compost Maggot](/enemies/compost-maggot) |
| 2 | [Cave Grub](/enemies/cave-grub) |
| 3 | [Field Rat](/enemies/field-rat), [Blight Spore](/enemies/blight-spore) |
| 4 | [Mole](/enemies/mole) |
| 5 | [Mud Golem](/enemies/mud-golem) |

## Hazard

| Parameter | Value |
|---|---|
| `kind` | spores |
| `shape` | clover |
| `perChunk` | 3 |
| `radius` | 20 |
| `strength` | 8 |

## Points of interest

Relative spawn weights for points of interest in this biome (`poiWeights`). Each chunk tries to place up to 2 (`poisPerChunk`) with 35% chance, otherwise 1; crowded spots and the overtime taper can mean fewer.

| Point of interest | Weight |
|---|---|
| [Potato Crate](/points-of-interest#potato-crate) | 5 |
| [Moldy Shrine](/points-of-interest#moldy-shrine) | 3 |
| [Tater Lantern](/points-of-interest#tater-lantern) | 3 |
| [Stray Dog](/points-of-interest#stray-dog) | 2.2 |
| [Spud Shrine](/points-of-interest#spud-shrine) | 2 |
| [Microwave](/points-of-interest#microwave) | 2 |
| [Beetle Nest](/points-of-interest#beetle-nest) | 2 |
| [Crop Patch](/points-of-interest#crop-patch) | 1 |
| [Fry Cart](/points-of-interest#fry-cart) | 1 |
| [Bot Dock](/points-of-interest#bot-dock) | 1 |
| [Spud Whetstone](/points-of-interest#spud-whetstone) | 1 |
| [Dinner Bell](/points-of-interest#dinner-bell) | 1 |
| [Tater Slots](/points-of-interest#tater-slots) | 1 |
| [Tater Magnet](/points-of-interest#tater-magnet) | 1 |
| [Spud Freezer](/points-of-interest#spud-freezer) | 1 |
| [Frenzy Fryer](/points-of-interest#frenzy-fryer) | 1 |
| [Boss Lair](/points-of-interest#boss-lair) | 0.6 |
| [Seed Vault](/points-of-interest#seed-vault) | 0.5 |
| [Dog Kennel](/points-of-interest#dog-kennel) | 0.5 |
| [Root Tunnel](/points-of-interest#root-tunnel) | 0.4 |
| [Golden Spud Shrine](/points-of-interest#golden-spud-shrine) | 0.4 |

## Props

`stalagmite`, `rot-pile`, `glow-shroom` (14 per chunk).

## Names in other languages

**Verified**: the name the game shows when another language is selected in Settings, from its translation files. [i18n-ja-content-DO6GrqHt.js: `"content.biome.compost-caves.name":["堆肥洞窟"]`] See [Languages](/controls#languages).

<details class="raw"><summary>Show names in 26 languages</summary>

| Language | Code | Name |
|---|---|---|
| 简体中文 · Simplified Chinese | `zh-CN` | 堆肥洞穴 |
| 繁體中文 · Traditional Chinese (Taiwan) | `zh-TW` | 堆肥洞窟 |
| 日本語 · Japanese | `ja` | 堆肥洞窟 |
| 한국어 · Korean | `ko` | 퇴비 동굴 |
| Español · Spanish | `es` | Cuevas de composta |
| हिन्दी · Hindi | `hi` | कम्पोस्ट गुफाएं |
| Deutsch · German | `de` | Komposthöhlen |
| Français · French | `fr` | Grottes de compost |
| Português (Brasil) · Brazilian Portuguese | `pt` | Cavernas de composto |
| Türkçe · Turkish | `tr` | Kompost Mağaraları |
| Bahasa Indonesia · Indonesian | `id` | Gua Kompos |
| Русский · Russian | `ru` | Компостные пещеры |
| Bahasa Melayu · Malay | `ms` | Gua Kompos |
| Filipino | `fil` | Kuweba ng Compost |
| मराठी · Marathi | `mr` | कंपोस्ट गुहा |
| Tiếng Việt · Vietnamese | `vi` | Hang Phân Ủ |
| తెలుగు · Telugu | `te` | కంపోస్ట్ గుహలు |
| தமிழ் · Tamil | `ta` | உரக் குகைகள் |
| বাংলা · Bengali | `bn` | কম্পোস্ট গুহা |
| ไทย · Thai | `th` | ถ้ำปุ๋ยหมัก |
| Hausa | `ha` | Kogon Taki |
| Naijá · Nigerian Pidgin | `pcm` | Compost Caves |
| <bdi>العربية</bdi> · Arabic | `ar` | <bdi>كهوف السماد</bdi> |
| <bdi>فارسی</bdi> · Persian | `fa` | <bdi>غار‌های کمپوست</bdi> |
| <bdi>עברית</bdi> · Hebrew | `he` | <bdi>מערות הקומפוסט</bdi> |
| <bdi>اردو</bdi> · Urdu | `ur` | <bdi>کھاد کے غار</bdi> |

</details>

## Data

```json
{
  "id": "compost-caves",
  "placement": {
    "kind": "climate",
    "temperature": 0,
    "moisture": 1
  },
  "enemies": [
    [
      "compost-maggot"
    ],
    [
      "cave-grub"
    ],
    [
      "field-rat",
      "blight-spore"
    ],
    [
      "mole"
    ],
    [
      "mud-golem"
    ]
  ],
  "hazard": {
    "kind": "spores",
    "shape": "clover",
    "perChunk": 3,
    "radius": 20,
    "strength": 8
  },
  "props": [
    "stalagmite",
    "rot-pile",
    "glow-shroom"
  ],
  "propsPerChunk": 14,
  "poiWeights": {
    "dog": 2.2,
    "paidChest": 5,
    "chargeShrine": 2,
    "crops": 1,
    "vendor": 1,
    "microwave": 2,
    "curseShrine": 3,
    "eliteNest": 2,
    "bossLair": 0.6,
    "botDock": 1,
    "whetstone": 1,
    "dinnerBell": 1,
    "taterSlots": 1,
    "seedVault": 0.5,
    "taterMagnet": 1,
    "rootTunnel": 0.4,
    "taterLantern": 3,
    "spudFreezer": 1,
    "frenzyFryer": 1,
    "goldenShrine": 0.4,
    "dogKennel": 0.5
  },
  "poisPerChunk": 2,
  "goldMult": 1.15,
  "xpMult": 1.15
}
```

## Sources

Game version 75: `main-CSuyb4iv.js` / `boot-CPW8VVmR.js` / `sim-BkfBhQfw.js` from https://tibo.dog/, researched 2026-11-05. See [Versions & updates](/versions).
- Content registry exported by `boot-CPW8VVmR.js`; boss definitions and order exported by `sim-BkfBhQfw.js`; lazy endgame definitions from `endgame-content-CyuS5vbP.js` and `catalog.generated-JnyrtBzy.js`
- English names and descriptions from `i18n-en-content--0ALgcKX.js`
- Names in other languages from the 26 `i18n-<code>-content` files of `main-CSuyb4iv.js` (`data/i18n-names.json`)
