The easy-to-use scoring display for your FTC DECODE (2025-2026) matches and live streams!
Perfect for teams streaming scrimmages, practice matches, or unofficial events.
Option 1: Download the Installer (Recommended)
- Go to the
Output/folder in this repository - Click on
FTCStreamScorer-Setup.exe - Click the Download raw file button (download icon on the right)
- Run the downloaded installer and follow the prompts
- Launch "FTC Stream Scorer" from your desktop or Start Menu
Option 2: Download the Standalone Executable
- Click on
StreamScorer.exein this repository - Click the Download raw file button (download icon on the right)
- Save it to your desktop or preferred folder
- Double-click to run - no installation required!
If available, you can also download from the Releases page:
Windows
- Download the latest
.msior.exeinstaller - Run the installer
- Launch "FTC Stream Scorer" from your Start Menu
macOS
- Download the
.dmgfile - Open the file and drag the app to your Applications folder
- Launch from your Applications
Linux
- Download the
.debfile - Install with:
sudo dpkg -i FTCStreamScorer*.deb - Launch from your applications menu
If you prefer to run from source or need cross-platform compatibility:
- Install Java 11 or higher
- Download
stream-scorer-1.0.0.jarfrom Releases (if available) - Double-click the JAR file, or run:
java -jar stream-scorer-1.0.0.jar
Score matches from iPads and tablets! The web interface allows referees to join events and score from any device with a web browser.
- Host creates an event in the desktop app with a name and password
- Referees open the web interface on their iPads
- Join the event by entering the event name and password
- Score for their assigned alliance (Red or Blue)
- Sync happens automatically in real-time!
See the web/README.md for detailed setup instructions.
-
Launch the app - Two windows will open:
- Control Panel: Where you control everything
- Stream Output: The display for your stream/audience
-
Select your webcam (optional) from the dropdown menu
-
Click "Start Match" when you're ready to begin
- Use the Red Alliance and Blue Alliance sections to track scores
- Adjust the counters for artifacts, penalties, and positions
- Scores update automatically on the Stream Output display
- In OBS, add a Window Capture or Display Capture source
- Select the "Stream Output" window
- Position and resize as needed
- The overlay shows match number, timer, phase, and live scores
| Feature | Description |
|---|---|
| ๐บ Dual-Window Design | Separate control panel and stream display |
| ๐ฅ HD Webcam Integration | 1080p @ 60fps webcam with scoring overlay |
| โฑ๏ธ Authentic Timing | Official FTC match timing (30s Auto, 120s TeleOp) |
| ๐ Official Sounds | Real FTC countdown and match sounds |
| ๐ DECODE Scoring | Full 2025-2026 season rules built-in |
| ๐พ Works Offline | No internet or login required |
| ๐ฌ Winner Videos | Play celebration videos with audio before final results |
| ๐ก Wireless Sync | Multiple devices can score together |
| ๐ฑ Web Interface | Referees can score from iPads/tablets |
| ๐ Match Recording | Record and view match history |
Score matches with multiple devices - one person per alliance!
Works across any network - no WiFi configuration needed!
- Create a free account at supabase.com
- Run the SQL setup script from
supabase-setup/setup.sql - Update the app with your Supabase credentials (see
supabase-setup/README.md)
- Start FTC Stream Scorer on the main computer
- Click "Create Event" in the Cloud Sync section
- Enter an event name (e.g., "SCRIMMAGE_2024")
- Enter a password (share this with your scorers)
- Share the event name and password with your team
- Start FTC Stream Scorer on each scoring device
- Click "Join Event"
- Enter the event name and password
- Select alliance (Red or Blue)
- Start scoring! Changes sync automatically via cloud
If you don't have cloud sync set up, you can use local WiFi sync:
- Start FTC Stream Scorer on your main computer
- Click "Start Sync Server" in the control panel
- Note the connection address shown (e.g.,
192.168.1.100:5555) - The server is now ready to accept connections
- Start FTC Stream Scorer on the remote device
- Connect to the server using the IP:port from the main computer
- Select alliance - choose Red or Blue alliance to score
- Start scoring! Changes sync automatically
- All devices must be on the same WiFi network
- The main computer's firewall may need to allow port 5555
- For best results, use a dedicated WiFi network
When you click "Show Final Results", the app can play a celebration video before displaying the final scores.
-
Create your video files:
red_winner.webmorred_winner.mp4- plays when Red Alliance winsblue_winner.webmorblue_winner.mp4- plays when Blue Alliance winstie.webmortie.mp4- plays when scores are tied
-
Place them in:
src/main/resources/videos/ -
Supported formats:
- WebM (VP8/VP9 codec) - Recommended
- MP4 (H.264 codec)
- Resolution: 1280x720 or 1920x1080
- Duration: 5-15 seconds
- Audio: Include audio track for celebration sounds! ๐
If videos are not found, the final results will display immediately.
The app automatically uses the highest quality settings supported by your webcam:
- Target Resolution: 1920x1080 (1080p) - falls back to best available
- Target Frame Rate: 60 FPS for smooth video
- Smooth Scaling: Enabled for better video quality
The webcam will automatically select the best supported resolution if your camera doesn't support 1080p.
- Make sure you have Java 11+ installed (for JAR version)
- Try running from command line to see error messages:
java -jar stream-scorer-1.0.0.jar
- Select a different webcam from the dropdown
- Make sure no other application is using the webcam
- Try unplugging and reconnecting the webcam
- The app uses official DECODE 2025-2026 scoring rules
- Check the DECODE Game Manual for rule clarifications
- Ensure all devices are on the same WiFi network
- Check if firewall is blocking port 5555
- Try disabling firewall temporarily for testing
Click to expand developer information
Requirements:
- JDK 17+
- Maven 3.6+
Build and run:
mvn clean package
java -jar target/stream-scorer-1.0.0.jarPlatform-specific installer scripts are in the scripts/ folder:
| Script | Description |
|---|---|
build-windows-installer.bat |
Creates Windows .msi installer |
build-linux-installer.bat |
Creates Linux .deb installer (via WSL) |
build-macos-installer.sh |
Creates macOS .dmg installer (Mac only) |
build-all-installers.bat |
Menu to build all available installers |
Requirements for building installers:
- JDK 14+ (for jpackage)
- WSL with Ubuntu (for Linux builds on Windows)
- A Mac computer (for macOS builds)
- Inno Setup 6 (for Windows .exe installer)
The Windows .exe installer in Output/FTCStreamScorer-Setup.exe is automatically updated via GitHub Actions whenever changes are pushed to the main branch. The workflow:
- Builds the Java application with Maven
- Creates the Windows
.exeinstaller using Inno Setup - Commits and pushes the updated installer to the
Output/folder
This ensures the downloadable installer is always up-to-date with the latest code changes.
You can also manually trigger a build from the GitHub Actions tab using the "workflow_dispatch" option.
See .github/workflows/main.yml for the full CI/CD configuration.
src/main/java/org/ftc/scorer/
โโโ model/ # Data models (Match, DecodeScore)
โโโ service/ # Services (MatchTimer, AudioService)
โโโ ui/ # UI Windows (ControlWindow, StreamOutputWindow)
โโโ webcam/ # Webcam capture service
โโโ ScorerApplication.java
โโโ Launcher.java
Open source for the FIRST Tech Challenge community.
- Sound effects from official FTC Live Event Management System
- DECODE graphics from FIRST Inspires
- Built by Hercules Robotics