# Porcupine Spud

> Porcupine Spud is an uncommon item in tibo.dog. When Tibo is hit, he fires 10 fries outward.

Source page: https://www.tibodog.wiki/items/porcupine-spud · 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](/) › [Items](/items)

| Porcupine Spud | |
|---|---|
| Type | Item |
| Rarity | Uncommon (1) |
| Stat changes | None |
| Effect | `onHurt` |
| Weight | 8 |
| Evolves into | [Fry Volcano](/items/fry-volcano) (with [Starch Plating](/passives/starch-plating)) |

**Porcupine Spud** is an uncommon item in tibo.dog. In-game description: “When Tibo is hit, he fires 10 fries outward.”

## Overview

Porcupine Spud is an uncommon item that fights back when Tibo is hurt. Each time Tibo takes damage, he fires 10 fries in an even ring around himself, at most once every 0.7 seconds. With no luck it is about 2.6% of random item rolls (25% Uncommon × 8/78).

The fries are not based on the hit Tibo took. Each fry deals 30 damage that grows by 15% of its base per minute of run time, plus Tibo's [thorns](/items/thorny-jacket). Both parts are multiplied by Tibo's damage multiplier. [sim-BkfBhQfw.js: `c=n.damage*function(e){let t=e.cfg.items.powerPerMinute;return e.loadout.stats.damageMult*(1+t*e.runClock/60)}(e)+n.thornsShare*i.thorns*i.damageMult`] With no damage bonus that is 30 per fry at 0:00, 75 at 10:00 and 120 at 20:00.

It evolves into [Fry Volcano](/items/fry-volcano) when [Starch Plating](/passives/starch-plating) is at level 5 and you open a chest (see [Evolutions](/evolutions#item-evolutions)).

## How it works

- **Trigger.** Only hits that actually cost HP count. Dodged hits, hits Tibo is invulnerable to, hits fully absorbed by a guard weapon, and terrain or hazard-pool damage do not trigger it. [sim-BkfBhQfw.js: `a.hurtFlash[o]=8,e.lastHit.amount=d,e.itemFx.hurts++`]
- **Cooldown.** After firing, it cannot fire again for 0.7 s, no matter how many hits land in that time. [sim-BkfBhQfw.js: `` i.kind!==`onHurt`||e.tick<r.readyAt||(r.readyAt=e.tick+re(i.cooldown),af(e,r,i.proc)) ``]
- **The fries.** The ring starts at a random angle. Each fry pierces 2 enemies (hits up to 3), plus any pierce bonus such as [Sharp Peeler](/items/sharp-peeler). [sim-BkfBhQfw.js: `r.pierce[f]=n.pierce+i.pierceBonus,r.life[f]=l`] Speed (220) scales with projectile speed and lifetime (0.6 s) with duration, so at default duration a fry travels about 165 units. Their size grows with area.
- **Stacking.** Extra copies do nothing. The fry count, damage and cooldown come from the item alone and ignore how many you hold. Copies still count when the item evolves, but Fry Volcano ignores its count too.

## Tips

- The fries scale with run time, so the item gets stronger late without any investment.
- It rewards builds that are hit often but survive, such as armor from Starch Plating, which is also its catalyst.
- Thorns from [Thorny Jacket](/items/thorny-jacket) add directly to every fry.

## Effect

Trigger: `onHurt` (when Tibo is hit). Raw parameters:

| Parameter | Value |
|---|---|
| `kind` | onHurt |
| `cooldown` | 0.7 |
| `proc.kind` | quills |
| `proc.count` | 10 |
| `proc.damage` | 30 |
| `proc.thornsShare` | 1 |
| `proc.speed` | 220 |
| `proc.pierce` | 2 |
| `proc.life` | 0.6 |

## Obtaining

- Items come from [points of interest](/points-of-interest) such as the Fry Cart vendor, Potato Crates, the Microwave and Tater Slots, and from loot runners (Golden Scarab, Lost Saucer). Ordinary [chests](/chests) never give a new item; they can only evolve one you already hold. Rarity weights: Common 59, Uncommon 25, Rare 10, Epic 4, Legendary 2.

## 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.item.porcupine-spud.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` | Papa puercoespín |
| हिन्दी · Hindi | `hi` | साही आलू |
| Deutsch · German | `de` | Igelknolle |
| Français · French | `fr` | Patate porc-épic |
| Português (Brasil) · Brazilian Portuguese | `pt` | Batata-porco-espinho |
| Türkçe · Turkish | `tr` | Kirpi Patates |
| Bahasa Indonesia · Indonesian | `id` | Kentang Landak |
| Русский · Russian | `ru` | Картоха-дикобраз |
| Bahasa Melayu · Malay | `ms` | Ubi Landak |
| Filipino | `fil` | Matinik na Patatas |
| मराठी · Marathi | `mr` | साळिंदर बटाटा |
| Tiếng Việt · Vietnamese | `vi` | Khoai Nhím |
| తెలుగు · Telugu | `te` | ముళ్ళపంది ఆలూ |
| தமிழ் · Tamil | `ta` | முள்ளம்பன்றி உருளை |
| বাংলা · Bengali | `bn` | সজারু আলু |
| ไทย · Thai | `th` | มันฝรั่งเม่น |
| Hausa | `ha` | Dankalin Beguwa |
| Naijá · Nigerian Pidgin | `pcm` | Porcupine Potato |
| <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": "porcupine-spud",
  "tier": "base",
  "rarity": 1,
  "mods": {},
  "weight": 8,
  "effect": {
    "kind": "onHurt",
    "cooldown": 0.7,
    "proc": {
      "kind": "quills",
      "count": 10,
      "damage": 30,
      "thornsShare": 1,
      "speed": 220,
      "pierce": 2,
      "life": 0.6
    }
  }
}
```

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