Caution
Tools for Autodarts is developed by the community and is not an integral part of the official Autodarts platform.
Tools for Autodarts is a browser extension that enhances your gaming experience on autodarts.io. It adds numerous quality-of-life features, customization options, and advanced functionality to make your Autodarts experience more enjoyable and personalized.
- Overview
- Installation
- Features
- Configuration
- Development
- Contributing
- Show your support
- Credits
- License
- Auto-Start: Automatically starts the game 3 seconds after a player joins the lobby
- Discord Webhook Integration: Sends invitation links for private lobbies to your Discord server
- Auto-Start Timer: Automatically starts the game after a configurable time delay once the webhook is sent
- Shuffle Players: Randomly reorder players in the lobby
- Extended Recent Players List: Increase the number of recent local players beyond the default limit of 5
- Team Lobby Mode: Removes initial player and auto-selects board for team games
- Color Customization: Change the colors of dart throws and scores
- Streaming Mode: Includes green screen support, board visualization, and thrown darts display
- Virtual Board Surround: Adds a customizable surround to the dartboard
- Darts Zoom: Shows a zoomed view of your dart throws in the bottom corners or center of the screen
- Configurable position (bottom-right, bottom-left, or center)
- View mode toggle between live camera feed and static board image
- Adjustable zoom level for detailed throw analysis
- Hide Menu: Provides more space for the game view
- Automatic Fullscreen: Automatically enables fullscreen mode during matches for an immersive experience
- Adjustable UI Elements: Modify the size of legs, sets, and match information
- Larger Player Names: Increase the font size of player names for better visibility during matches
- Takeout Visualization: Visual notification when takeout is in progress
- Automatic Next Player: Switches to the next player after a configurable delay when takeout is stuck
- Automatic Next Leg/Set: Automatically advances to the next leg or set after takeout
- Smaller Font for Inactive Players: Reduces the font size of scores for players not currently throwing
- External Boards Support: Easily follow games on external boards
- Fancy Gameshot Animation: Celebratory animation when a player wins
- Animations: Display custom animations for special events like 180s, bulls, busts, and leg wins during gameplay
- Quick Correction: Easily fix misrecognized dart throws with an intuitive interface
- Grid-based correction panel showing all board segments
- Numpad keyboard shortcuts for fast corrections
- Color-coded buttons matching dart board segments
- Keyboard shortcuts for accessing throws (/, *, -) and making corrections
- Caller: Voice announcements for scores, checkouts, and each dart thrown during gameplay
- Sound FX: Ambient sound effects for different game events
- Sound Upload: Add your own custom sounds for personalized feedback
The Caller feature provides voice announcements during your darts gameplay, similar to professional darts tournaments:
- Call Every Dart: Announces each dart as it's thrown, rather than waiting for the end of a turn
- Call Checkout: Announces possible checkout combinations when a player is on a checkout score
- Custom Sound Library: Add, edit, and organize voice clips for different game events
You can assign sounds to be played based on these triggers:
- Points:
0
to180
(point totals) - Singles:
s1
tos20
ands25
(single segments) - Doubles:
d1
tod20
andbull
(double segments and bullseye) - Triples:
t1
tot20
(triple segments) - Special Voice Lines:
gameon
: At the start of a new gamegameshot
: When a player wins the gameyou_require
: Plays before announcing checkout combinations (numbers are called separately)busted
: When a player bustsdouble
,triple
: Generic announcements for dart typesoutside
: When a dart lands outside the scoring areanext_player
: Plays when switching to the next player (fallback if no player name sound is found)bot
: Plays instead of player name when the player is a CPU/bot playerplayername
: Player name sounds play automatically when it's their turn. Example: If your name iscreazy.eth
on Autodarts, simply usecreazy.eth
(supports spaces or_
likeplayer_name
orplayer name
)
- Cricket-Specific:
cricket_hit
: When a player hits a Cricket target (15-20 and Bull)cricket_miss
: When a player hits a non-Cricket target (Miss-14)
In Cricket games, the caller has specific behavior:
cricket_hit
is triggered when a player hits a target that's still open (15-20 and Bull)cricket_miss
is triggered when a player hits any other number (Miss-14) or hits a target that's already closed by all players- Regular throw sounds (like
t20
,d16
) are still announced when enabled
Due to browser security policies, especially on Safari and mobile browsers, audio can only be played after user interaction (click, tap, or keypress). The extension will:
- Automatically detect when audio can't be played
- Show a notification prompting the user to interact with the page
- Automatically unlock audio playback once interaction occurs
- Queue up sounds to ensure nothing is missed during this process
The extension comes with ready-to-use caller sets that you can easily import:
- NL - Laura (Female): Dutch female voice caller
- FR - Remi (Male): French male voice caller
- FR - Lea (Female): French female voice caller
- ES - Lucia (Female): Spanish female voice caller
- ES - Sergio (Male): Spanish male voice caller
- AT - Hannah (Female): Austrian German female voice caller
- DE - Vicki (Female): German female voice caller
- DE - Daniel (Male): German male voice caller
- GB - Amy (Female): British female voice caller
- GB - Arthur (Male): British male voice caller
- US - Ivy (Female): American female voice caller
- US - Joey (Male): American male voice caller
- US - Joanna (Female): American female voice caller
- US - Matthew (Male): American male voice caller
- US - Danielle (Female): American female voice caller
- US - Kimberly (Female): American female voice caller
- US - Ruth (Female): American female voice caller
- US - Salli (Female): American female voice caller
- US - Kevin (Male): American male voice caller
- US - Justin (Male): American male voice caller
- US - Stephen (Male): American male voice caller
- US - Kendra (Female): American female voice caller
- US - Gregory (Male): American male voice caller
Simply select one of these presets when adding sounds through the "Import from URL" option in the Caller settings.
Note
Some predefined caller sets may not work in Safari due to browser restrictions. Tools for Autodarts is not responsible for the content of these caller sets.
The caller has a sophisticated fallback system to provide complete coverage even with limited sound files:
- Segment Announcements: If a specific segment sound (e.g.,
s20
) isn't available, it automatically plays just the number (20
) - Double/Triple Handling: For doubles and triples, it follows the pattern of playing the word followed by the number (e.g.,
d20
→double
+20
) - Miss Handling:
miss
orm
prefixed throws will fall back tooutside
sounds - Matchshot Handling: When no
matchshot
sound is available, the system will automatically use thegameshot
sound instead - Player Announcements: Automatically announces the current player's name at the start of their turn
- Game Start: Plays the "game on" sound at the beginning of a match
- Compatible with all major browsers including Safari on iOS/MacOS
- Automatic audio unlocking for mobile browsers that require user interaction
- Queued sound playback to ensure all announcements are heard in the correct order
The Sound FX feature adds ambient sound effects to your gameplay experience:
Add sound effects for various game events:
- Point Triggers: Sounds can be triggered for any score from
ambient_0
toambient_180
- Individual Throws: Sounds for specific throws like
ambient_s20
,ambient_d16
,ambient_t19
, etc. - Combined Throws: Trigger sounds based on a sequence of throws using format
s20_t19_d12
- Special Events: Dedicated sounds for
ambient_gameon
,gameshot
,busted
, and more - Player Turn Sounds:
ambient_next_player
: Plays when switching to the next player (fallback if no player name sound exists)ambient_bot
: Plays when switching to a CPU/bot playerbot_throw
: Plays when a bot player throws a dart- Player-specific sounds using format:
ambient_playername
orambient_player_name
- Player-Specific Gameshot: Create personalized winning sounds for specific players using the following formats:
gameshot_player name
(spaces preserved)gameshot_player_name
(with underscores replacing spaces)- With ambient prefix:
ambient_gameshot_player_name
- Cricket Mode: Special triggers for Cricket games:
cricket_hit
: Triggered when hitting Cricket targets (15-20 and Bull) that are still opencricket_miss
: Triggered when hitting non-Cricket targets (Miss-14) or hitting targets already closed by all players
The Sound FX feature distinguishes between winning a single game (gameshot) and winning the entire match (matchshot):
- Match Win:
ambient_matchshot
ormatchshot
triggers when a player wins the complete match - Game Win:
ambient_gameshot
orgameshot
triggers when a player wins a single game/leg - Player-Specific Match Win: Create personalized match winning sounds:
matchshot_player_name
(with underscores)matchshot_player name
(with spaces)- With ambient prefix:
ambient_matchshot_player_name
- Use the
ambient_
prefix (e.g.,ambient_180
,ambient_t20
) to create separate sound sets for caller and ambient sounds - This allows you to have professional voice announcements via the Caller while also having fun sound effects via Sound FX
- Enhanced sound playback with separate audio channels for caller and ambient sounds
- Improved game mode handling for specialized sound triggers
- Better performance with simultaneous sound playback
The Sound FX feature includes a sophisticated multi-level fallback system:
- If an exact match with
ambient_
prefix isn't found, it tries without the prefix - For segment triggers like
ambient_t20
, it tries multiple fallbacks in this order:- Exact match:
ambient_t20
- Without ambient prefix:
t20
- Split into word+number:
ambient_triple
+ambient_20
- Non-ambient word+number:
triple
+20
- Just the number:
20
- Exact match:
- Similar fallback chains exist for double segments (
d16
) and single segments (s1
) - For
miss
orm
prefixed throws, it falls back tooutside
sounds - In Cricket games,
miss
triggers may fall back tocricket_miss
sounds - Matchshot Fallbacks: When a player wins a match, the system tries sounds in this order:
- Player-specific matchshot:
ambient_matchshot_player_name
- Player-specific gameshot:
ambient_gameshot_player_name
- Generic matchshot:
ambient_matchshot
- Generic gameshot:
ambient_gameshot
- Player-specific matchshot:
- If no match is found after all fallback attempts, no sound is played
- Queue Management: Enhanced sound queue management to prevent overlapping and ensure proper playback order (improved in v2.0.3)
- Format Support: Plays both URL-based sounds and base64-encoded audio
- IndexedDB Storage: Efficiently stores sound files in browser database to improve performance
- Error Handling: Automatically falls back to alternative sources if a sound fails to play
- Safari Compatible: Works with all major browsers including Safari's strict audio policies
The Animations feature allows you to display custom GIF animations for special events during gameplay:
- Delay: Set how long to wait before showing the animation (in seconds)
- Duration: Set how long the animation should display (in seconds)
- Object Fit: Choose between 'cover' (fill screen) or 'contain' (maintain aspect ratio)
Animations can be triggered by various game events using these tags:
- Points:
0
to180
(total points scored in a turn) - Singles:
s0
tos20
and25
(single segments,25
for bull) - Doubles:
d1
tod20
(double segments,bull
for bullseye) - Triples:
t1
tot20
(triple segments) - Special Events:
bull
: When a player hits the bullseyeoutside
: When a dart lands outside the scoring areabusted
: When a player busts (scores more than needed)gameshot
: When a player wins the game or leg
You can also use combination tags to trigger animations based on specific dart throw combinations. Format: [first dart]_[second dart]_[third dart]
Example: s20_s5_d20
would trigger when a player throws single 20, then single 5, then double 20.
You can add multiple triggers for the same animation by entering each trigger on a new line in the animation settings.
Note
If you assign the same trigger to multiple animations, the system will randomly select one of the matching animations to play each time the trigger occurs. This allows for variety in your gameplay experience.
- Settings Import/Export: Transfer your configuration between devices or create backups
- Clipboard Support: Copy and paste settings for easy sharing
The extension provides a comprehensive settings panel where you can configure all features according to your preferences:
- Enable/disable individual features
- Customize colors and appearance
- Set timing for automatic actions
- Configure Discord webhook integration
- Adjust sound settings and upload custom sounds
- Customize streaming mode settings
The extension allows you to easily transfer your settings between devices or create backups:
- Export Settings: Download your current configuration as a file
- Import Settings: Load settings from a previously exported file
- Copy to Clipboard: Copy your settings to the clipboard for easy sharing
- Paste from Clipboard: Apply settings that were copied from another installation
- Reset Settings: Restore all settings to their default values through the Danger Zone section
This makes it simple to:
- Back up your perfect configuration
- Share your setup with friends
- Transfer settings between browsers or devices
- Restore settings after reinstalling the extension
- Start fresh with default settings when needed
This project is built using:
- Vue.js 3
- TypeScript
- Tailwind CSS
- WXT (Web Extension Toolbox)
# Install dependencies
yarn install
# Start development server
yarn dev
# Build for production
yarn build
# Build for Firefox
yarn build:firefox
# Create distribution zip
yarn zip
Contributions are welcome! Please feel free to submit a Pull Request or create an issue if you have ideas for improvements or have found a bug.
Feel free to fork and make a Pull Request to this plugin project. All the input is warmly welcome!
Give a star if this project helped you.
🎯 Autodarts - The original platform this extension enhances
🎨 Benjamin Zehentner (Discord: ben_1987) - Creator of the Tools for Autodarts logo
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0) - see the LICENSE file for details.
Under this license:
- Attribution — You must give appropriate credit, provide a link to this project, and indicate if changes were made.
- NonCommercial — You may not use this project for commercial purposes or monetary compensation.