# Grab Bag

> Grab Bag is a base weapon in tibo.dog. Reaches into a sack and fires a different weapon's attack every time.

Source page: https://www.tibodog.wiki/weapons/grab-bag · 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](/) › [Weapons](/weapons)

| Grab Bag | |
|---|---|
| Type | Base weapon |
| Trigger | Automatic (cooldown) |
| Attack | Shoots at a targeted enemy (`targetShot`) |
| Damage | 14 |
| Cooldown (s) | 2.2 |
| Amount | 1 |
| Area | 1 |
| Speed | 180 |
| Duration (s) | 2 |
| Pierce | 1 |
| Knockback | 1 |
| Interval (s) | 0.25 |
| Max level | 8 |
| Offer weight | 75 |
| Evolves into | [Bottomless Sack](/weapons/bottomless-sack) (with [Sprouting Eyes](/passives/sprouting-eyes)) |

**Grab Bag** is a base weapon in tibo.dog. In-game description: “Reaches into a sack and fires a different weapon's attack every time.”

## Overview

Grab Bag borrows other weapons. Each shot picks a random weapon from a fixed list and fires that weapon's attack, such as a gravy pool, a boomerang or a pan swing. The damage, area, speed, duration, pierce and knockback all come from Grab Bag's own stats; the picked weapon supplies only the shape of the attack and its look.[sim-BkfBhQfw.js: `J(e,r.damage,t.src,t.slot,r.knockback),e.attack.look=L(e,s.id,o.paints[n]),a(e,t,s.behavior,r,i)`] You do not need to own the weapon that gets copied.

It is offered as a level-up card. At max level, with [Sprouting Eyes](/passives/sprouting-eyes) owned, a [chest](/chests) evolves it into [Bottomless Sack](/weapons/bottomless-sack). The Sack pulls two attacks per shot and copies the evolved forms.

## How it works

- **The list.** The copy pool is every base weapon whose attack is a fired or placed attack: slash, targeted or facing shots, lobs, boomerangs, pools, strikes, bouncers, explosives, mines, chains, novas, homing shots, beams, rain and spirals.[sim-BkfBhQfw.js: ``function Um(e){let t=e.behavior;return Hm.has(t.kind)&&(t.kind!==`targetShot`||t.mimic===void 0)}``] In this build that is 28 weapons. Weapons that work differently are left out: turrets ([Fry Cook Sentry](/weapons/fry-sentry)), orbiters, auras, cones, familiars, guards ([Hash Brown Shield](/weapons/hash-brown-shield)), tethers, rings, nukes, and the newer special weapons. Grab Bag can't copy itself. Each pick is uniformly random.
- **Firing.** Grab Bag only fires when a pest is within targeting range, which is 0.7 × the larger side of the play field. Each volley fires Amount shots 0.25 s apart, and each shot is one random pick. Tibo's built-in +1 amount (see [Stats](/stats#stat-conversion)) gives 2 picks per volley at level 1 and 4 at level 8.
- Because the copy uses Grab Bag's numbers, a copied attack can behave differently from the real weapon. For example, a copied pool's lifetime is based on Grab Bag's 2 s Duration, and a copied pan swing does not get the [Frying Pan](/weapons/frying-pan)'s elite charge.

## Tips

- Grab Bag's damage per hit is the same whatever it copies, so its value comes from variety: crowd attacks such as pools and novas, and single-target shots, all hit at Grab Bag's damage.
- Amount bonuses add more random picks per volley, so [Sprouting Eyes](/passives/sprouting-eyes) helps it now and is also its evolution catalyst.

## Stats

Values are the raw numbers from the game's definitions, before Tibo's global stat multipliers, difficulty and time scaling. In play, Tibo's base stats add **+1 amount** to every weapon except aura, cone, nuke and ring weapons, and make every duration **×1.25** (see [Stats](/stats)). Field names in `code` are the game's internal names. Attack descriptions such as “Melee slash” are this wiki's summary of the internal attack `kind`.

### Level progression

Each level-up adds the listed change to the weapon's raw values. Totals are cumulative.

| Level | Change | Damage | Cooldown (s) | Amount | Area |
|---|---|---|---|---|---|
| 1 | Acquired | 14 | 2.2 | 1 | 1 |
| 2 | +4 damage | 18 | 2.2 | 1 | 1 |
| 3 | -0.2 cooldown | 18 | 2 | 1 | 1 |
| 4 | +1 amount | 18 | 2 | 2 | 1 |
| 5 | +5 damage | 23 | 2 | 2 | 1 |
| 6 | +0.2 area | 23 | 2 | 2 | 1.2 |
| 7 | -0.2 cooldown | 23 | 1.8 | 2 | 1.2 |
| 8 | +1 amount | 23 | 1.8 | 3 | 1.2 |

### Base values

| Stat | Level 1 |
|---|---|
| Damage | 14 |
| Cooldown (s) | 2.2 |
| Amount | 1 |
| Area | 1 |
| Speed | 180 |
| Duration (s) | 2 |
| Pierce | 1 |
| Knockback | 1 |
| Interval (s) | 0.25 |

### Behaviour parameters

Raw parameters of the attack (`behavior`), copied from the game definition. What they do in play is explained under [How it works](#how-it-works) above.

| Parameter | Value |
|---|---|
| `kind` | targetShot |
| `size` | 4 |
| `mimic.count` | 1 |

## Obtaining

- Offered as a card on level-up (offer weight 75).

## Evolution

| Result | Requires | Type |
|---|---|---|
| [Bottomless Sack](/weapons/bottomless-sack) | [Grab Bag](/weapons/grab-bag) (max level) + [Sprouting Eyes](/passives/sprouting-eyes) | Evolution |

## 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.weapon.grab-bag.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` | Bolsa sorpresa |
| हिन्दी · Hindi | `hi` | जादुई थैला |
| Deutsch · German | `de` | Wundertüte |
| Français · French | `fr` | Sac surprise |
| Português (Brasil) · Brazilian Portuguese | `pt` | Saco surpresa |
| Türkçe · Turkish | `tr` | Sürpriz Çuval |
| Bahasa Indonesia · Indonesian | `id` | Karung Kejutan |
| Русский · Russian | `ru` | Мешок сюрпризов |
| Bahasa Melayu · Malay | `ms` | Guni Cabutan |
| Filipino | `fil` | Sakong Bunutan |
| मराठी · Marathi | `mr` | जादूचे पोते |
| Tiếng Việt · Vietnamese | `vi` | Túi Mù |
| తెలుగు · Telugu | `te` | లక్కీ డిప్ |
| தமிழ் · Tamil | `ta` | குலுக்கல் பை |
| বাংলা · Bengali | `bn` | জাদুর ঝুলি |
| ไทย · Thai | `th` | ถุงสุ่ม |
| Hausa | `ha` | Buhun Ba Zata |
| Naijá · Nigerian Pidgin | `pcm` | Lucky Bag |
| <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": "grab-bag",
  "tier": "base",
  "base": {
    "damage": 14,
    "cooldown": 2.2,
    "amount": 1,
    "area": 1,
    "speed": 180,
    "duration": 2,
    "pierce": 1,
    "knockback": 1,
    "interval": 0.25
  },
  "levels": [
    {
      "damage": 4
    },
    {
      "cooldown": -0.2
    },
    {
      "amount": 1
    },
    {
      "damage": 5
    },
    {
      "area": 0.2
    },
    {
      "cooldown": -0.2
    },
    {
      "amount": 1
    }
  ],
  "weight": 75,
  "behavior": {
    "kind": "targetShot",
    "size": 4,
    "mimic": {
      "count": 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`)
