A real-time multiplayer mission game built with Flask-SocketIO and React. Players join on the same WiFi network to complete missions, draw event cards, and compete in a shared lobby managed by an admin who also participates as a player.
Download the project and double-click start.bat - that's it!
For detailed Windows instructions, see WINDOWS_SETUP.md
- Local Multiplayer: Up to 6 players can join on the same WiFi network
- Admin Player System: First player becomes admin with full player capabilities plus game management controls
- Mission System: Each player draws 4 unique missions from a shared deck
- Event Cards: Admin can draw and expire event cards visible to all players
- Real-time Sync: All game actions synchronized via WebSockets
- Mobile-Optimized UI: Large buttons and text, perfect for smartphone gameplay
-
Install Prerequisites (one-time):
- Python 3.11+ - Check "Add Python to PATH"
- Node.js 20+ - LTS version
-
Run the Game:
- Double-click
start.bat - Open browser to: http://localhost:5000
- Double-click
See WINDOWS_SETUP.md for detailed Windows instructions!
- Install Dependencies:
pip install -r requirements.txt
cd frontend
npm install
cd ..- Run the Game:
cd frontend && npm run build && cd .. && python main.pyThen open: http://localhost:5000
To play with friends on the same WiFi:
- Start the server (use methods above)
- Find your IP address:
- Windows: Run
ipconfigin Command Prompt - Mac: Run
ifconfigin Terminal - Linux: Run
ip addrin Terminal
- Windows: Run
- Look for your local IP (e.g.,
192.168.1.100)
- Connect to the same WiFi network
- Open browser to:
http://YOUR_IP:5000- Example:
http://192.168.1.100:5000
- Example:
Everyone must be on the same WiFi network!
- Open the game URL in your browser
- Enter your name to join the lobby
- First player to join becomes the Admin (but also plays normally)
- Wait for all players to join (max 6 players)
- Admin (player named "Stephan") clicks "Spiel Starten" to begin
- Each player automatically draws 4 unique missions when the game starts
- View your current mission (only you can see it)
- When you complete a mission:
- Click "Mission Erfรผllt" to reveal it to all players
- Admin reviews and either Approves or Rejects
- If approved, you move to your next mission
- If rejected, you try the same mission again
- Admin can draw event cards that affect gameplay
- Events are visible to all players
- Events add fun challenges and rule changes
- Admin can manually expire events when done
The admin player (must be named "Stephan") has additional controls:
- Spiel Starten: Begin the mission game
- Genehmigen/Ablehnen: Approve or reject completed missions
- Event ziehen: Draw new event cards
- Beenden: Remove active events
- Reset: Start a new game
- Complete all 4 of your missions
- Player with most completed missions wins!
project/
โโโ start.bat # ๐ช Windows quick start (double-click this!)
โโโ start.ps1 # ๐ช PowerShell alternative
โโโ WINDOWS_SETUP.md # ๐ช Detailed Windows guide
โโโ requirements.txt # Python dependencies
โโโ main.py # Main server entry point
โโโ app.py # Flask application & game logic
โโโ cards/ # Game data
โ โโโ missions.json # Mission cards
โ โโโ events.json # Event cards
โโโ frontend/ # React application
โโโ src/ # Source code
โโโ dist/ # Built files (auto-generated)
โโโ package.json # Frontend dependencies
- Backend: Python 3.11, Flask, Flask-SocketIO, Eventlet
- Frontend: React, Vite, TailwindCSS, Socket.IO Client
- Data: JSON files for missions and events
- Storage: In-memory (resets on server restart)
The app is optimized for smartphone use:
- Large, easy-to-tap buttons (minimum 56px height)
- Big, readable text (20-32px base size)
- Generous spacing between elements
- Touch-friendly interactions
- Beautiful gradient designs
Edit cards/missions.json:
{
"id": 25,
"Kategorie": "Hauptmann",
"Zeitpunkt": "Jederzeit",
"Name": "Your Mission Title",
"Beschreibung": "What players need to do"
}Edit cards/events.json:
{
"id": 11,
"Name": "Your Event Title",
"Beschreibung": "Event rules or effects"
}- Python not installed or not in PATH
- Reinstall Python and check "Add Python to PATH"
- Node.js not installed
- Install from https://nodejs.org/
- Server is not running - start it first!
- Use the correct URL:
http://localhost:5000for local - Check firewall isn't blocking port 5000
- Everyone on same WiFi network?
- Use actual IP address (not localhost) when sharing
- Check firewall/router settings
- Disable "AP Isolation" if enabled on router
- Close other programs using port 5000
- Or edit
main.pyto use different port
- WINDOWS_SETUP.md - Complete Windows guide
- cards/missions.json - Mission card data
- cards/events.json - Event card data
Backend (Terminal 1):
python main.pyFrontend (Terminal 2):
cd frontend
npm run devFrontend dev server runs on port 5173. Update socket connection if needed.
cd frontend
npm run build
cd ..
python main.pyThis project is open source and available for personal and educational use.
Need help? Check WINDOWS_SETUP.md for Windows-specific instructions!