DotBotGO
DotBot
GO!

Race · Dodge · Blast Your Way to Victory

2–4 Players · Ages 6+
🎮 Player Setup
Number of Players
Choose Colors
🤖
DotBot as 5th Player
Optional — DotBot is also a player
DotBotGO Rules
🎯
Objective
Race your dot to the FINISH space before anyone else. Survive DotBot to win!
🎲
On Your Turn
Roll 2 dice. Choose to move Die 1, Die 2, or the Sum of both. Roll doubles? You get star powers PLUS the option to roll again!
🎨
Color Spaces
Your own color is your home — always safe from DotBot and color penalties! Neutral (white) spaces are also safe from DotBot. Wrong color = automatically frozen next turn + DotBot gets a bonus roll. Stars override color rules.
💥
Bumping
Land on a space already occupied by another dot and they get sent back to Start! Safe (white) spaces are the only exception — multiple dots can share them.
Star Spaces
Land on a glowing gold star space to trigger a special power immediately!
🤖
DotBot
After every round, DotBot rolls 1 die and moves. If it lands on you — back to Start! Neutral (white) spaces protect you.
🏆
Winning
Two ways to win: land EXACTLY on the Finish space, OR be the last dot not eliminated by DotBot. Eliminated dots take no more turns.
⭐ Star Powers
🧊
Freeze Bot — DotBot skips its next move
❄️
Freeze Player — One opponent skips their next turn
Teleport — Jump to any safe space ahead
💨
Send Back — Send any opponent back to Start
DotBotGO!
Round 1
⚠️ DOTBOT IS NEAR!
🏃 Move Speed
🤖 DotBot Mode
🧒 Kiddo Mode
🗣️ Voice Guide
📖 How to Play
Welcome to DotBotGO!
+
WINNER!
Player 1
Last dot standing!
⭐ Choose Your Power!
Choose a Player
🎲
Welcome to DotBotGO!
A friendly board game for everyone.
⚡ TAP A GLOWING SPACE TO TELEPORT!
Player 1
Your Turn!
`; const w=window.open('','_blank','width=800,height=700'); if(w){w.document.write(printDoc);w.document.close();setTimeout(()=>w.print(),600);} else{alert('Please allow pop-ups to print the board.');} } // ── INIT ──────────────────────────────────────────────────── buildGlobalStars(); buildDecos(); buildSetup(); renderScoreStrip(); setDie('die1',0);setDie('die2',0); // Rebuild board on orientation/resize change let _resizeTimer=null; window.addEventListener('resize',()=>{ clearTimeout(_resizeTimer); _resizeTimer=setTimeout(()=>{ if(document.getElementById('s-game').classList.contains('active')){ buildBoard();updateAllUI(); } },200); }); window.addEventListener('orientationchange',()=>{ setTimeout(()=>{ if(document.getElementById('s-game').classList.contains('active')){ buildBoard();updateAllUI(); } },350); }); // Set initial sound button labels document.getElementById('snd-start-btn').textContent='🔊 Sound'; // Apply persisted Little Player Mode state to settings UI + body class + start-screen button ['lpm-off','lpm-on'].forEach(k=>{ const el=document.getElementById(k); if(el)el.classList.toggle('on',k===(LPM?'lpm-on':'lpm-off')); }); document.body.classList.toggle('lpm',LPM); {const _stEl=document.getElementById('btn-lpm-state');if(_stEl)_stEl.textContent=LPM?'ON':'OFF'; const _icEl=document.getElementById('btn-lpm-icon');if(_icEl)_icEl.textContent=LPM?'🧒':'👶';} // Apply persisted Voice Guide state to settings UI ['voice-off','voice-on'].forEach(k=>{ const el=document.getElementById(k); if(el)el.classList.toggle('on',k===(VOICE?'voice-on':'voice-off')); }); // Apply persisted MODE to start-screen mode buttons + body class ['mode-race-btn','mode-battle-btn'].forEach(k=>{ const el=document.getElementById(k); if(el)el.classList.toggle('on',k===(MODE==='battle'?'mode-battle-btn':'mode-race-btn')); }); document.body.classList.toggle('mode-battle',MODE==='battle'); document.body.classList.toggle('mode-race',MODE==='race'); // Show tutorial automatically on first launch maybeShowFirstPlayTutorial();