tibo.dog Wiki Game v75 Play tibo.dog

Visitors

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.[1][2]
  • 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.[3][4]
  • 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.[5]
  • Verified: the bonus multiplies with 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.[6][7]

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.[8]
  • 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, Mash Wave, Tot Toss, Starch Bolt, Hash Boomerang, Spud Lob, Gravy Boat, Starch Chain, Deep Fryer, Chip Shuriken); +1 level to a non-max passive. A slot with nothing to give becomes gold too.[9]
  • In Story mode the random visit is off; poteto's scripted visit ends the story. See Story mode.

Alex

  • Verified: Alex is revealed when the boss amusing dies and joins with 25% chance in normal runs (always in Story); otherwise Alex stays “asleep”.[10]
  • 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.[11]

Sources

Game version 75: main-CSuyb4iv.js / boot-CPW8VVmR.js / sim-BkfBhQfw.js from https://tibo.dog/, researched 2026-11-05. See Versions & updates.

  • Game config and formulas in sim-BkfBhQfw.js

Code references

  1. sim-BkfBhQfw.js return Math.round(60*e.range(t.windowSec[0],t.windowSec[1]))
  2. sim-BkfBhQfw.js !n.visited&&n.dueTick>=0&&e.clock.ticks>=n.dueTick
  3. sim-BkfBhQfw.js return i*i+a*a<=r*r
  4. sim-BkfBhQfw.js return Mf(e)?1+e.cfg.andrew.gift.fireRateBonus:1
  5. sim-BkfBhQfw.js return n.startRadius-(n.startRadius-n.endRadius)*Re(i,n.shrinkPower)
  6. 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)}
  7. sim-BkfBhQfw.js Andrew is pairing: stay in his ring to fire faster!
  8. sim-BkfBhQfw.js function ca(e,t){let n=e.next()<t.visitChance,r=e.range(t.windowSec[0],t.windowSec[1])
  9. sim-BkfBhQfw.js r=Math.max(0,n.giftCount-n.goldGifts)
  10. sim-BkfBhQfw.js function tt(e){return e.revealedTick===-1?pending:e.due?joined:asleep}
  11. sim-BkfBhQfw.js J(e,n.burstDamage*e.loadout.stats.damageMult,r,-1,n.burstKnockback)