Soak is a color flood-fill puzzle played on a pastel grid. The game starts with your territory anchored at the top-left corner — one cell and any immediately connected neighbors sharing its starting color. Below the grid is a row of six colored buttons. Each turn you pick one of those colors: your territory instantly repaints to it, then expands outward via breadth-first search, absorbing every adjacent cell that already matches your new color. This chain reaction can sweep across multiple connected regions in a single move. Win the level by flooding every cell on the grid before your move counter hits zero.
The twenty levels are divided into three difficulty tiers. Levels one through five use an eight-by-eight grid with four active colors and twenty moves — generous enough to teach the mechanic. Levels six through ten step up to a ten-by-ten grid with five colors and twenty-five moves. Levels eleven through twenty switch to a twelve-by-twelve grid with all six colors and thirty moves. The added colors and larger grids make the later levels far more combinatorially complex, requiring you to plan several moves ahead rather than simply grabbing whatever color is largest nearby.
The three grid configurations in Soak are calibrated so that optimal play sits just within the move budget, but suboptimal play consistently runs out. On an eight-by-eight grid with four colors, the expected minimum flood solution is around twelve to fourteen moves. The twenty-move budget therefore gives experienced players a comfortable margin but punishes random clicking. On a twelve-by-twelve grid with six colors, optimal solutions typically require twenty to twenty-six moves — very close to the thirty-move limit — so even a few wasteful picks can end the level early.
The seeded RNG means each grid is deterministic. Level three will always have the same tile layout every time you play it, in every browser session. This lets you retry a hard level with prior knowledge of where large same-color clusters sit, making second attempts on tricky boards significantly easier. The level-select screen marks completed levels in green and Perfect completions in gold, so you can see at a glance which levels have room for improvement and revisit them to master tricky boards before your next full run.
Your score compounds across all twenty levels in a single run. Each level you win adds (movesLeft × 50) plus (level × 100) to your total. A level-fifteen win with eight moves remaining, for example, contributes (8 × 50) + (15 × 100) = 400 + 1500 = 1900 points. The Perfect bonus adds a flat 500 points on top whenever you clear a level with five or more moves to spare, independent of the level number. Across twenty levels a full Perfect run produces a substantially larger total than a minimal-clear run, giving veteran players a long-term goal even after they can reliably beat every level.
Your personal best is stored in your browser's localStorage under the key soak_hs and persists between sessions as long as you don't clear site data. The HUD always shows your current best so you can see mid-run whether you're on pace to break your record. The leaderboard below the grid lets you compete against other Vibe Arcade players, and your final run total is submitted when the run ends — either when you run out of moves or when you clear level twenty. Losing ends the run and the next game starts a fresh score.