Spittlebug
Spittlebug is an enemy (pest) in tibo.dog.
Overview
The Spittlebug is the only tier-2 pest of the 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 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.[1] 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 (
fanwith zero arc), with opposite orbit phases.[2][3] - 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.[4][5][6]
- Reload: 3.4 s, shortened by the enemy-bullet fire-rate scaling (see 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.[7]
- 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). 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 or Aphid) instead.[8]
- 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 and difficulty.
| 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, enemy tier 2
- Vinegar Shoals, enemy tier 3
Biome tiers: each biome lists five enemy tiers; higher tiers appear as the run goes on (see Enemy scaling).
Names in other languages
Verified: the name the game shows when another language is selected in Settings, from its translation files.[9] See Languages.
Show names in 26 languages
| 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 |
| العربية · Arabic | ar |
حشرة الزبد |
| فارسی · Persian | fa |
زنجرک کفساز |
| עברית · Hebrew | he |
קצפית |
| اردو · Urdu | ur |
تھوک کیڑا |
Data
Show raw game data
{
"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.
- Content registry exported by
boot-CPW8VVmR.js; boss definitions and order exported bysim-BkfBhQfw.js; lazy endgame definitions fromendgame-content-CyuS5vbP.jsandcatalog.generated-JnyrtBzy.js - English names and descriptions from
i18n-en-content--0ALgcKX.js - Names in other languages from the 26
i18n-<code>-contentfiles ofmain-CSuyb4iv.js(data/i18n-names.json)
Code references
- sim-BkfBhQfw.js
if(n>=.7*r)return; - 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 - 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 - sim-BkfBhQfw.js
if(!Du(e,i)){n.pool.kill(i);continue} - sim-BkfBhQfw.js
if(Hl[i]===0||Kl(e)<Gl(e))return i - i18n-ja-content-DO6GrqHt.js
"content.enemy.spittlebug.name":["アワフキムシ"]