# Spittlebug

> Spittlebug is an enemy in tibo.dog: 18 base HP, 5 damage, stops short of tibo, strafes and shoots.

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

Breadcrumb: [Main page](/) › [Enemies](/enemies)

| Spittlebug | |
|---|---|
| Behaviour | Stops short of Tibo, strafes and shoots (`ranged`) |
| Base HP | 18 |
| Base damage | 5 |
| Speed | 30 |
| XP | 2 |
| Gold chance | 6% |
| Radius | 5 |
| Mass | 0.1 |

**Spittlebug** is an enemy (pest) in tibo.dog.

## Overview

The Spittlebug is the only tier-2 pest of the [Crop Circle](/biomes/crop-circle) landmark, so you meet it only inside Crop Circles. Tier 2 is in the wave table from the start until minute 9, which with Normal's two-minute [tier lag](/modes) means up to about 11:59.

It is a small shooter. It walks towards Tibo until it is within 77 units (70% of its 110 range), then circles him sideways at 60% of its speed instead of closing in. When Tibo is within 132 units (120% of range) and its reload is done, it spits two pairs of froth bubbles. [sim-BkfBhQfw.js: `if(n>=.7*r)return;`] Each bubble does 4 base damage and contact does 5. With 18 HP it dies to almost anything. It gives 2 XP and has a 6% chance to drop gold.

## How it works

- **Burst**: after a 0.5 s wind-up, two pairs of bubbles, 0.35 s apart before fire-rate scaling. Each pair's centre travels at base speed 70 along the aim fixed when the wind-up began; it is not re-aimed between pairs. Both bubbles start on the same heading (`fan` with zero arc), with opposite orbit phases. [boot-CPW8VVmR.js: ``kind:`fan`,count:2,arc:0,speed:70,radius:2,damage:4,bursts:2,interval:.35,telegraph:.5``] [sim-BkfBhQfw.js: `Z.phase=a.motion?.orbit===void 0?0:M*n/o`]
- **Orbit**: the bubbles circle their moving centre, growing from zero to a 6-unit radius over 0.3 s. The base frequency is 1.1 turns/s. Difficulty multiplies frequency by 0.6 on Easy and Hard, 0.8 on Normal and 1.1 on Nightmare, giving 0.66, 0.88 and 1.21 turns/s respectively. Nightmare also enlarges the radius to 7.2 units; Story keeps the base radius and frequency. The orbit adds both forward/backward and sideways velocity, not just a sideways wiggle. [boot-CPW8VVmR.js: `px:6,hz:1.1,grow:.3`] [sim-BkfBhQfw.js: `let i=e.px*r.orbitPx,a=M*e.hz*r.orbitHz,o=t<e.grow,s=o?i*t/e.grow:i,c=o?i/e.grow:0`] [sim-BkfBhQfw.js: `f+=hp.along,d+=hp.lat`]
- **Reload**: 3.4 s, shortened by the enemy-bullet fire-rate scaling (see [Enemy bullets](/enemy-scaling#enemy-bullets)). Shot damage scales with the bug's damage scaling.
- **Killing it stops the burst**: the shots are fired by an emitter that is deleted as soon as the Spittlebug is gone, including shots still waiting in the burst. [sim-BkfBhQfw.js: `if(!Du(e,i)){n.pool.kill(i);continue}`]
- **Shooter cap**: early in a run only 2 shooting pests may be spawned at once before 3:00 and 4 before 6:00 (see [Crowd limits](/enemy-scaling#crowd-limits)). Because the Spittlebug is alone in its tier, a tier-2 spawn in a Crop Circle that hits the cap becomes a tier-1 pest ([Little Grey](/enemies/little-grey) or [Aphid](/enemies/aphid)) instead. [sim-BkfBhQfw.js: `if(Hl[i]===0||Kl(e)<Gl(e))return i`]
- **Elites** use tier 2 from 1:00 to 4:59, so an early elite spawned in a Crop Circle can be a Spittlebug.

Measured in a controlled headless run (seed `wiki`, Standard, each difficulty, no grants or clock jumps, weapons removed, one stationary invulnerable Spittlebug 100 units east of stationary Tibo, other pests removed): build 44 (`main-C2skBLTa.js`) fired three single shots at ticks 30, 41 and 53; build 45 (`main-BRJMoZXM.js`) fired pairs at ticks 30 and 50. These are observed 60 Hz ticks, not replacements for the raw interval settings. At tick 60 the first pair was 11.84 units apart on Normal and 14.13 on Nightmare; discrete stepping makes this slightly different from the ideal diameters of 12 and 14.4. This tests the attack in isolation, not spawn odds or survival difficulty.

## Tips

- Move across the pair's path and leave room for the orbit around it; the bubbles no longer stay on a single straight line.
- At 18 HP it rarely needs special attention; the shots matter mostly when several bugs fire at once.

## Stats

Base values before [time scaling](/enemy-scaling) and [difficulty](/modes).

| Stat | Value |
|---|---|
| Behaviour | Stops short of Tibo, strafes and shoots (`ranged`) |
| Base HP | 18 |
| Base damage | 5 |
| Speed | 30 |
| XP | 2 |
| Gold chance | 6% |
| Radius | 5 |
| Mass | 0.1 |

## Behaviour parameters

| Parameter | Value |
|---|---|
| `kind` | ranged |
| `range` | 110 |
| `shotEvery` | 3.4 |
| `pattern.kind` | fan |
| `pattern.count` | 2 |
| `pattern.arc` | 0 |
| `pattern.speed` | 70 |
| `pattern.radius` | 2 |
| `pattern.damage` | 4 |
| `pattern.bursts` | 2 |
| `pattern.interval` | 0.35 |
| `pattern.telegraph` | 0.5 |
| `pattern.motion.orbit.px` | 6 |
| `pattern.motion.orbit.hz` | 1.1 |
| `pattern.motion.orbit.grow` | 0.3 |

## Where it appears

- [Crop Circle](/biomes/crop-circle), enemy tier 2
- [Vinegar Shoals](/biomes/vinegar-shoals), enemy tier 3

Biome tiers: each biome lists five enemy tiers; higher tiers appear as the run goes on (see [Enemy scaling](/enemy-scaling)).

## 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.enemy.spittlebug.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` | Salivazo |
| हिन्दी · Hindi | `hi` | झाग कीड़ा |
| Deutsch · German | `de` | Schaumzikade |
| Français · French | `fr` | Cercope |
| Português (Brasil) · Brazilian Portuguese | `pt` | Cigarrinha |
| Türkçe · Turkish | `tr` | Köpük Böceği |
| Bahasa Indonesia · Indonesian | `id` | Serangga Busa |
| Русский · Russian | `ru` | Пенница |
| Bahasa Melayu · Malay | `ms` | Pepijat Ludah |
| Filipino | `fil` | Insektong Laway |
| मराठी · Marathi | `mr` | फेसाळ किडा |
| Tiếng Việt · Vietnamese | `vi` | Rầy Bọt |
| తెలుగు · Telugu | `te` | ఉమ్ము పురుగు |
| தமிழ் · Tamil | `ta` | நுரைப் பூச்சி |
| বাংলা · Bengali | `bn` | ফেনা পোকা |
| ไทย · Thai | `th` | แมลงน้ำลาย |
| Hausa | `ha` | Ƙwaron Yawu |
| Naijá · Nigerian Pidgin | `pcm` | Spit Bug |
| <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": "spittlebug",
  "behavior": {
    "kind": "ranged",
    "range": 110,
    "shotEvery": 3.4,
    "pattern": {
      "kind": "fan",
      "count": 2,
      "arc": 0,
      "speed": 70,
      "radius": 2,
      "damage": 4,
      "bursts": 2,
      "interval": 0.35,
      "telegraph": 0.5,
      "motion": {
        "orbit": {
          "px": 6,
          "hz": 1.1,
          "grow": 0.3
        }
      }
    }
  },
  "hp": 18,
  "speed": 30,
  "damage": 5,
  "radius": 5,
  "xp": 2,
  "goldChance": 0.06,
  "mass": 0.1
}
```

## 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`)
