A skill-based multiplayer Monopoly game with dice, auctions, power tokens, and strategic drafting.
- Property Auctions: All properties go to auction - no first-come-first-serve!
- Draft System: Pick 2 starting properties strategically
- Power Tokens: 2 special abilities per game (re-roll, move adjust, block property, force auction)
- Real-time Multiplayer: Play with 2-4 players
- Quick Games: 60-minute time limit, fast-paced gameplay
# Install all dependencies (server + client)
npm run install:all# Start both server and client
npm run dev- Server runs on:
http://localhost:3001 - Client runs on:
http://localhost:5173
npm run build
npm start- Go to railway.app
- Connect your GitHub repository
- Deploy! Railway auto-detects Node.js
- Share the URL with friends
- Go to render.com
- Create a new "Web Service"
- Connect your repo
- Set build command:
npm run install:all && npm run build - Set start command:
npm start
Frontend (Vercel):
- Deploy the
/clientfolder to Vercel - Set
VITE_SOCKET_URLenvironment variable to your backend URL
Backend (Railway):
- Deploy the root folder to Railway
- It will run the Socket.io server
- Find your local IP:
ipconfig(Windows) orifconfig(Mac/Linux) - Run
npm run dev - Friends connect to
http://YOUR_IP:5173
- Each player starts with the same buy-in amount (default $1000)
- Everyone drafts 2 starter properties for free
- Each player gets 2 power tokens
- Roll dice to move
- Landing on unowned property triggers an AUCTION (everyone bids!)
- Pay rent when landing on opponent's property
- Build houses/hotels on monopolies
- Use power tokens strategically
- 🎲 Re-Roll: Roll one die again
- 👟 Move Adjust: Move +2 or -2 spaces after rolling
- 🚫 Block Property: Block a property from collecting rent for 1 round
- ⚔️ Force Auction: Force an opponent to auction one of their properties
- Last player standing, OR
- Highest net worth when time runs out (60 min)
- Frontend: React + Vite + Tailwind CSS + Framer Motion
- Backend: Node.js + Express + Socket.io
- State Management: Zustand
Create a .env file in the root:
PORT=3001
For the client, create /client/.env:
VITE_SOCKET_URL=http://localhost:3001
MIT