DEV Community

peanut
peanut

Posted on

Why "best Balatro seeds" lists go stale, and how a deterministic seed replay works

If you've read a few "best Balatro seeds" articles, you've probably seen the comments: "this seed doesn't give me the same Joker", "it's patched", "it worked on my other deck." I wanted to understand why, and then build something that lets players check a seed themselves. This post covers what I learned about how seeded runs behave, and how I turned that into a browser tool.

I'm the solo developer behind Balatro HQ, a free, fan-made Balatro resource site. It's not affiliated with LocalThunk or Playstack.

A seed is a fixed script, not a list of items

A Balatro seed doesn't "roll" things when you walk into a shop. Everything is a function of the seed, so the same seed always produces the same board. That's the part that makes shared seeds possible at all.

The detail that trips people up is how the shop uses that determinism. Each Ante generates one long, ordered queue of shop items up front. Every shop visit just takes the next two entries off the front of that queue.

That has a few consequences that are easy to miss:

  • Rerolling doesn't re-randomise a slot. It advances the queue pointer by two. The items you skipped are gone and everything after them shifts forward. Reroll four times in Ante 2, and the shop you'd have seen at the Boss Blind is now eight entries earlier in the list. The queue is fixed by the seed; only your position in it moves.
  • Booster packs are not part of that queue. They're rolled separately and tied to the shop visit they appear in. A Soul card sitting in an Arcana Pack is there whether or not you rerolled the shop beside it.
  • So "what's in the shop" depends on how many items you've already consumed. That's why a good replay tool has to walk a run in the order the game hands things out, not just print a list.

Why published seeds drift out of date

Three things I could confirm from public sources:

  1. Patches change seed behaviour. Game Rant's seed list notes that the 1.0.1f update altered how seeds behave in Gold Stake, and that seeds posted before April 2024 may no longer reproduce.
  2. The deck changes what you see. DualShockers' seed list points out that a seed which gives one set of cards on the Ghost Deck gave different cards for the author on a weaker deck.
  3. Your unlock state matters. If you haven't unlocked a Joker, the game doesn't delete that entry and slide the rest of the queue forward. It marks the entry unavailable and redraws that one slot from a separate RNG stream. Every other item in the Ante, and in later Antes, stays exactly where it was. So a slot showing a Joker you haven't unlocked should be read as "unknown", and the rest can be trusted.

Some Jokers also depend on in-run conditions (Stone, Steel and Glass Joker, Golden Ticket, Lucky Cat, Cavendish, Planet X, Ceres, Eris), so my replay never shows them.

Because of all this, I treat a tool's output as a baseline: Red Deck, White Stake, fully unlocked. Different deck, higher stake, or a locked profile can change what appears. I'd rather say that out loud on the page than pretend the readout is a guarantee for every save.

Turning that into tools

From that model I built a few tools on the same engine:

  • Seed Analyzer prints a seed's whole run: shop queue, booster packs, Jokers, vouchers, skip tags and Boss Blinds, across the 8 Antes and into endless. You can also see where each Soul card spawns a Legendary Joker. Try it at balatrohq.com/tools/seed-analyzer.
  • Shop Replay is the same data walked in game order: step Antes and Blinds, reroll the queue, open packs. It predicts what each shop offers; it does not track money or purchases.
  • Seed Advisor layers an AI report on top. The design rule I care about: the deterministic engine computes the facts first (what the seed offers across 8 Antes), and the AI only reasons over those facts and is told not to invent Jokers, numbers or seed contents. The deterministic board is instant. AI reports for a seed are cached, so the second visitor gets it instantly, and AI use is capped per visitor to keep the site free to run.

Scoring: the other half

For the Balatro calculator, the interesting problem isn't the arithmetic. It's modelling order. Hands have base chips × mult (a Pair's base is 10 × 2, a Flush's is 35 × 4), each scored card is applied in sequence (Glass ×2, Foil chips, Polychrome, red-seal retriggers), and Joker order changes the result.

I didn't write the Joker scoring data from scratch. It's translated from the open-source community calculator by EFHIII, and the voucher, consumable and enhancement details are cross-checked against the community Balatro Wiki. Where a number might be wrong, I'd rather show the formula so people can verify it. The calculator is at balatrohq.com/tools/score-calculator; it can compare two builds side by side, and the whole setup is encoded in the URL, so you can paste a link into Reddit or Discord and it rebuilds the same state.

How it's built

  • The site is a Next.js app I maintain solo. The seed tools share one deterministic engine that walks Balatro's seeded queues the way the game does.
  • I keep the claim narrow: the board is computed from the seed; I don't invent Jokers or numbers. The ranked seed library marks entries as engine-verified against that same model.
  • One bug that taught me the most: treating booster packs as part of the shop queue. They aren't. Packs are rolled per shop visit, so a Soul card can sit in an Arcana Pack even when you've already rerolled the two shop slots beside it. Once I split those streams, the ante-by-ante readout lined up with what players reported in-game.

Free, no login, and what I do collect

I wanted all of this to be usable without friction:

  • Free. Every tool and database page is free to use.
  • No login. There's no account system, so nothing to sign up for and nothing saved to a profile.
  • Kept up to date. The database is current with patch 1.0.1o, and there's a news page that tracks patches and what's confirmed versus rumoured for the upcoming 1.1.
  • Privacy, plainly. I don't collect names, emails or account info. The site does use aggregate analytics (Google Analytics 4, Microsoft Clarity, Cloudflare Web Analytics) and ads via Mediavine; the privacy page lists exactly what and how to opt out.

Limits I'm upfront about

  • Results assume the Red Deck / White Stake / fully unlocked baseline.
  • Shop Replay doesn't model money.
  • The AI report is guidance, not a solved path. The seed fixes what's available; the best line still depends on your in-run choices.

What I'd like feedback on

  • [TODO: a concrete question for readers, e.g. "which deck/stake combinations should the engine support next?"]
  • Spot a wrong number? Tell me on the site's Contact page and I'll fix it.

Thanks for reading, and good luck with your next run.

Top comments (0)