Connect your physical Pixels Dice to Roll20.net and automatically roll them in-game.
Install the extension straight from the Chrome Web Store.
Download the latest release from GitHub Releases, extract the ZIP file, and load unpacked into Chrome.
See: GitHub Releases Guide for detailed instructions
npm install # First time only
npm run build # Compiles to dist/Then load the dist/ folder into Chrome as described in the GitHub Releases Guide.
- Open the extension popup and click "Connect New Die"
- Browser shows Bluetooth device list
- Select your Pixels die and confirm
⚠️ Leave the connection tab open — it maintains the Bluetooth link with your die
- Open a Roll20 character sheet and select your character
- You must have access to the character's sheet to roll for them
- Roll your physical die
- The extension automatically sends the result to chat
- Some commands like "Heavy Blaster" or "Basic Save" can read character stats and perform complex rolls
- ✅ Real-time roll detection
- ✅ Automatic chat integration
- ✅ Battery and signal strength monitoring
- ✅ Custom roll templates
- ✅ Duplicate and manage commands
- ✅ Import command presets
- Leave connection tab open — The browser tab used to connect to Bluetooth must stay open for rolls to work
- Select character first — You must select the character in Roll20 before rolling for them
- Sheet access required — Commands that read character stats need you to have access to that character's sheet
- Template placeholders — Use
#face_valuein custom templates to insert the die result (e.g.,/roll [#face_value] + 5)
- GitHub Releases — Install pre-built extension
- Setup & Installation — Detailed installation guide
- Architecture — How the extension works internally
- Development — For developers working on the codebase
- API Reference — Pixels dice API details
- Chrome Web Store — Official store submission guide
src/ # Source code
├── background.ts # Service worker (Bluetooth management)
├── content.ts # Content script (Roll20 chat integration)
├── popup.ts # Popup UI logic
├── popup.html # Popup interface
├── options.ts # Options page logic
├── options.html # Options interface
├── connect.ts # Connect page logic
├── connect.html # Connect interface
└── utils.ts # Utilities
dist/ # Built extension (ready to load)
webpack.config.js # Build configuration
manifest.json # Extension manifest (MV3)
- Bluetooth Connection: Connect to Pixels Dice via Web Bluetooth API
- Roll Detection: Listen for roll events from physical dice
- Automatic Injection: Inject
/roll [face]commands to Roll20 chat - Status Monitoring: View connected dice, battery level, die type
- Custom roll macros/templates: Define and use custom roll commands with placeholders
- Clean UI: Simple popup interface for dice management
- Multiple Dice Support: Connect and manage multiple dice simultaneously
- Dice Name Customization: Rename connected dice for easier identification and message creation
- Advantage/Disadvantage Handling: Support for rolling with advantage/disadvantage mechanics
"No Bluetooth Devices Available"
- Ensure Bluetooth is enabled on your computer
- Make sure Pixels die is powered on
- Die should be within 10 meters
Roll doesn't appear in chat
- Verify you're on a Roll20 game page (app.roll20.net/editor/...)
- Check DevTools (F12) for
[Pixels Roll20]error messages - Make sure your character is selected when targetting attributes
- Try refreshing the page
Extension won't load
- Run
npm run buildto compile - Go to
chrome://extensions/ - Click refresh icon on the extension
- Chrome/Chromium browser
- Node.js and npm (for building)
- Bluetooth-enabled computer
- Pixels dice
This is an MVP in active development.
To contribute:
- Review DEVELOPMENT.md
- Check ARCHITECTURE.md for design
- Follow code patterns in existing files
- Test thoroughly before submitting
- ✅ Complete rewrite for Manifest V3
- ✅ Clean service worker architecture
- ✅ Improved error handling
- ✅ Comprehensive documentation
- ✅ Working Bluetooth + Roll20 integration
- Pixels Website
- Pixels Developer Guide
- Pixels Web Connect API
- Chrome Manifest V3 Guide
- Roll20 Website
This is an experimental project, not an official product. Use at your own risk.
Having issues? Check:
- QUICKSTART.md - Troubleshooting section
- CHECKLIST.md - Verification checklist
- MVP_STATUS.md - Debugging section
Version: 2.0.0 MVP
Status: ✅ Ready for Testing
Last Updated: January 2, 2026
License: See LICENSE file