# Visitors

> Andrew, poteto and Alex: pairing-ring fire rate, gifts and visitor abilities in tibo.dog.

Source page: https://tibodog-wiki.vercel.app/visitors · Wiki updated 5 Nov 2026, 21:46 UTC · Game version 75 (`main-CSuyb4iv.js`, data synced 5 Nov 2026, 21:45 UTC)

## Andrew

- **Verified**: Andrew visits once, scheduled between 18:00 and 22:00 on the run clock. He appears 150 units ahead of Tibo, then walks up to pair. [sim-BkfBhQfw.js: `return Math.round(60*e.range(t.windowSec[0],t.windowSec[1]))`] [sim-BkfBhQfw.js: `!n.visited&&n.dueTick>=0&&e.clock.ticks>=n.dueTick`]
- **Verified**: pairing lasts 20 s. Stay inside his ring (the boundary counts) for **+15% fire rate**. Leaving the ring removes the bonus; returning restores it while he is still pairing. [sim-BkfBhQfw.js: `return i*i+a*a<=r*r`] [sim-BkfBhQfw.js: `return Mf(e)?1+e.cfg.andrew.gift.fireRateBonus:1`]
- **Verified**: the ring radius shrinks from 96 to 24 units with squared progress: `radius = 96 − 72 × (elapsed / 20)²`. Halfway through, its radius is 78 units, not a linear halfway point. [sim-BkfBhQfw.js: `return n.startRadius-(n.startRadius-n.endRadius)*Re(i,n.shrinkPower)`]
- **Verified**: the bonus multiplies with [Frenzy Fryer](/points-of-interest#frenzy-fryer): ×1.61 fire rate together. Andrew leaves after pairing; there is no gift chest. His cheers include “LGTM!” and “ship it!”, and the HUD shows “pairing” while the bonus applies. [sim-BkfBhQfw.js: `function Nf(e){return function(e){return zl(e)?e.cfg.frenzyFryer.fireRateMult:1}(e)*function(e){return Mf(e)?1+e.cfg.andrew.gift.fireRateBonus:1}(e)}`] [sim-BkfBhQfw.js: `Andrew is pairing: stay in his ring to fire faster!`]

## poteto

poteto, the game's developer, appears as a character.

- **Verified**: one visit per run (chance 100%) at a random time between 4:00 and 12:00. [sim-BkfBhQfw.js: `function ca(e,t){let n=e.next()<t.visitChance,r=e.range(t.windowSec[0],t.windowSec[1])`]
- **Verified**: poteto walks up and bonks Tibo, stunning for 1.5 s. With 25% chance a gift chest drops too.
- **Verified**: the gift chest has 5 rewards. 3 of them are always gold (100 each × gold gain). The other 2 are: first up to 1 evolution or union if one is ready, then gifts from this list, each kind at most once when possible: the missing **catalyst** for a max-level base weapon; **+1 level** to a non-max base weapon (preferring ones with an evolution); a **new weapon** (the first you lack from [Peeler](/weapons/peeler), [Mash Wave](/weapons/mash-wave), [Tot Toss](/weapons/tot-toss), [Starch Bolt](/weapons/starch-bolt), [Hash Boomerang](/weapons/hash-boomerang), [Spud Lob](/weapons/spud-lob), [Gravy Boat](/weapons/gravy-boat), [Starch Chain](/weapons/starch-chain), [Deep Fryer](/weapons/deep-fryer), [Chip Shuriken](/weapons/chip-shuriken)); **+1 level** to a non-max passive. A slot with nothing to give becomes gold too. [sim-BkfBhQfw.js: `r=Math.max(0,n.giftCount-n.goldGifts)`]
- In Story mode the random visit is off; poteto's scripted visit ends the story. See [Story mode](/story-mode).

## Alex

- **Verified**: Alex is revealed when the boss [amusing](/bosses/amusing) dies and joins with 25% chance in normal runs (always in Story); otherwise Alex stays “asleep”. [sim-BkfBhQfw.js: `function tt(e){return e.revealedTick===-1?`pending`:e.due?`joined`:`asleep`}`]
- **Verified**: Alex follows Tibo. Alex rests 9 s, then throws its head 70 units behind Tibo; after a 0.35 s flight, for 4 s pests within 85 are lured to it, then it bursts for `30 × damage` in radius 51 with knockback. The rest starts again after the burst, so throws come about every 13.35 s. [sim-BkfBhQfw.js: `J(e,n.burstDamage*e.loadout.stats.damageMult,r,-1,n.burstKnockback)`]

## 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).
- Game config and formulas in `sim-BkfBhQfw.js`
