wanessalabs games production

Pass Line

A craps table you can stand at without losing money at one. Five bets, and it prices the twenty it refuses to offer you.

ReactTypeScriptViteCloudflare Pages

Craps is the loudest game on a casino floor and the hardest to walk up to. Thirty betting areas, vocabulary nobody explains, and etiquette enforced socially rather than posted. So the common outcomes are: never play, or learn in public and pay for the lesson.

The information exists. It is in strategy sites that open with a systems pitch, in forum posts that assume you know what a puck is, and in videos that teach the field bet because it is exciting. Almost none of it leads with the sentence that matters most, which is that the best bet on the table still loses.

What It Is

One table, five bets, and a coach that works out every number in front of you.

The Pass Line, which carries the lowest house edge on the layout. Free Odds behind it, the only wager in the building the house takes nothing on. The Come bet, which is the Pass Line again on a delay. And the Don’t Pass and Don’t Come side, which is a genuinely better price and is still against you.

Every bet is there because it teaches something the others cannot. Nothing was added to complete the layout.

The rest of the felt is not implemented, not greyed out, and not teased. It is priced. A reference sheet lists twenty more bets with what each one actually costs, because a beginner will be offered all of them, usually loudly, and “we did not implement that” is not something you can use while a stickman pushes the proposition box at you.

The Rule The Whole Thing Hangs On

Nothing is a remembered constant.

Every number the game says out loud is derived from the 36 outcomes of two dice. The house edge is computed, not typed. So is the come-out count, the chance of making each point, and the price of all twenty bets you cannot place. A test reads the copy back and proves the edge figure appears as no literal anywhere in the source, which means the words and the arithmetic have no way to drift apart.

That rule turned out to be generative rather than merely cautious. Working out the odds payout as a ratio instead of a lookup table showed that the famous 3-4-5x maximum is exactly ways-to-make-the-point times your line bet, which is the wager whose payout is six times the line on every number. That is why the rule is shaped 3-4-5. The game can now teach the reason instead of the number.

What It Refuses To Say

The tempting line about odds is that they lower the house edge. That is true as a percentage and false in coins, so the coach says the harder version: the Pass Line still expects to lose its 1.41%, a fair bet beside an unfair one does not repair the unfair one, and the swings get bigger in both directions. A trade, not a repair.

Three more rules, each enforced by a test rather than by good intentions. No line promises or celebrates beating the edge. No line suggests raising a bet. A betting progression appears in exactly one place, named as Martingale so a reader recognises it later, and taken apart there.

The advice never reads the roll history, which makes chasing losses structurally impossible rather than merely absent. The trend board is shown anyway: leaving it out does not stop anyone believing in streaks, and putting it next to a coach that provably ignores it is the stronger argument.

The Bugs Worth Recording

Five tints in this game rendered fully transparent from the day they were written. The project’s colour tokens are complete oklch() strings, so Tailwind’s opacity modifier cannot build a colour from them: bg-primary/10 compiles to an invalid value and paints nothing. No error, no warning, and the borders still drew. jsdom has no computed colours, so not one of the 266 tests passing at the time could see it. It was found by measuring a background colour on the live page.

Four separate times, a mutation or a deliberately failing assertion caught the test being wrong rather than the engine. Flooring an odds payout passed all twenty of its tests, because every one of them fed a wager where the rounding was a no-op, so the suite could not see the single bug that bet exists to avoid.

The habit that caught all of them was the same: write the assertion first and watch it fail. Reading the code back never would have.

Ad-Free, And Free At Zero Stake

No purchase of anything exists in this game at any balance. A player with no coins loses the wager and nothing else: every roll, every coach line, all twelve etiquette cards and the whole price list work at zero stake.

It also never reports a win, because the hub pays coins for wins and this game already moves coins through its own wagers. Paying twice would have turned the one game about the house edge into the one game that prints money.

Development timeline

1 logged update on 24 Aug 2026.

  1. Learn a craps table without losing money at onelaunch

    Five bets, a coach that works out the odds in front of you, and the etiquette that arrives when it matters. Every price is computed, including the twenty bets this game refuses to offer you.

Written from the release notes published with each update, not afterwards. See every project →