plinko-game
plinko-game copied to clipboard
A Plinko game built with Svelte
plinko-game
A web Plinko game inspired by Stake.com's Plinko game.
Play now 👉 https://plinko-web-game.netlify.app/
About
Plinko is a classic game where the player drops a ball in a multi-row pin pyramid, where the ball bounces randomly until it reaches the payout bins at the bottom.
This project is a replication of Stake.com's Plinko game, created using Svelte, Tailwind CSS, and matter-js. This website is a fun personal project to learn Svelte, and it is not affiliated with Stake.com in any way. I don't encourage gambling, so that's why I created a free-to-play version of the game.
This project is NON-PROFIT
Please do NOT send me emails or invitations asking me to implement a Plinko game for your company or personal portfolio. This project is for personal hobby only. It is NOT a promotion, and I will decline any freelance invitations.
Feel free to fork this project on your own if you want to build on top of it.
Features
- 🤑 100% free to play, add money at any time (~~not another crypto scam~~)
- 🤖 Manual and auto-bet modes
- 📊 Real-time live stats
- 📱 Responsive design
Development
Getting Started
[!NOTE] Requires Node.js 20 or later.
-
Install pnpm version 9 or later
-
Clone this repository
-
Install dependencies
pnpm install -
Start the development server
pnpm dev
Building for Production
The entire site is statically generated using @sveltejs/adapter-static.
-
Generate a static build
pnpm build -
Preview the build site
pnpm preview
Testing
For unit tests, run:
pnpm test:unit
For end-to-end tests powered by Playwright:
-
Build for production
pnpm build -
Run the tests
# Run in UI mode (recommended when writing tests) pnpm test:e2e:ui # Alternatively, run in headless mode pnpm test:e2e
Benchmark
A hidden page is only available in local dev environment to benchmark the payout probabilities and expected values. I used this page to tune the parameters of the matter-js physics engine and control the expected payout.
To visit this page, visit the below URL after starting the development server with pnpm dev:
http://localhost:5173/benchmark
More Screenshots
Mobile:
| Manual Mode | Auto Mode |
|---|---|
![]() |
![]() |

