Local LAN darts scoring system designed for smart TVs, tablets, and phones. Perfect for game rooms, bars, or local setups.
DartDeck uses a Dual-Screen Architecture over your local network:
- The Host Display (TV/Monitor/PC): Runs the visual scoreboard. It displays active players, checkout combinations (standard and simple suggestions), averages, throw counters, turn trackers, and active animations.
- The Mobile Controllers (Smartphones/Tablets): Handheld keypads used by players to log throws. No app installation required—simply connect to the local IP address on any web browser.
- Classic x01 Rules: Supported formats include 301, 501, 701, or custom start scores.
- Flexible Checkout Rules: Choose between Double-Out, Master-Out, or Straight-Out options.
- Checkout Helper: Auto-calculates standard 3-dart checkout patterns (up to 170) as well as quick alternative routes (e.g.,
2x 20for 40 left). - Score History & Undo: Made a mistake? Seamlessly tap the
UNDObutton to roll back previous turns.
- Profile Persistence: Create profiles locally that save player data such as games played, wins, lifetime average, and personal highest checkout.
- Custom Swatch Color & Name Editing: Edit existing profiles at any time to update your target screen colors or names.
- Profile Deletion: Easily remove outdated or temporary profiles directly from the controller lobby.
- First-Time Device Memory: Automatically remembers which player profile is associated with each handheld phone.
- Throw-by-Throw Simulation: Simulates an active player throwing darts one by one in real time on the Host scoreboard rather than instantly applying scores.
- Variable Difficulties: Test your skills against Easy, Medium, or Hard configurations with tailored hit rates and smart checkout logic.
- Dynamic scaling: Displays scale dynamically on host screens depending on player count (1 to 4 players). Layout margins, scoreboard numbers, and text paddings adjust automatically to guarantee no clipping or scrolling is required.
- Immersive Effects: Interactive Audio engine (synthesized tones for hits, misses, and high targets), structural screen shaking for targets over 100, and confetti celebrations.
- Automated Kiosk Mode & Idle Safety: Auto-ends games after 5 minutes of inactivity to protect TV displays from burn-in.
- Prerequisites: Download and install Node.js (version 18 or higher is recommended).
- Install dependencies:
Open a command prompt inside the
dartdeckdirectory and run:npm install
- Launch:
Double-click the
start.batfile in the root directory. It will launch the backend process on port3000. - Accessing the Scoreboard:
- On the Host PC/TV: Open a browser and navigate to
http://localhost:3000. - On Player Phones: Ensure your phone is connected to the same Wi-Fi network. Open a web browser and enter the Network URL shown on the TV display (e.g.,
http://192.168.1.15:3000).
- On the Host PC/TV: Open a browser and navigate to
- Run manually:
./start.sh - For automated service installation, run:
This registers, restarts, and runs DartDeck via
sudo ./scripts/install-autostart.sh
systemdin the background automatically upon boot.
This project was made using AI Tools, but has been tested by me on a Linux Mint XFCE and Windows 11 system.