0e4b568cea1f58c945f979be2efd31e36213f5c8
All checks were successful
Version Static Assets / version-assets (push) Successful in 4s
Impostor Game (offline)
What is it?
Role-based impostor-style game for mobile, 100% in the browser with no backend. Uses localStorage so a reload doesn't lose the match. Features impostor-specific words for each civilian word to make the game more challenging!
Structure
index.html: main UI.styles.css: mobile-first, no-scroll optimized styles.script.js: game logic (roles, timers, voting, tiebreaks, word pools with impostor variants).word-pools/: 22 word pools in.txt+manifest.json.
Available pools (22 total)
Local pools (work offline, embedded in code):
- 🌿 Animales y Naturaleza (88 words) —
animales_naturaleza.txt - 🏠 Objetos Cotidianos (99 words) —
objetos_cotidianos.txt
Remote pools (require internet connection):
- 🛍️ Marcas y Empresas (81 words)
- 💼 Profesiones y Trabajos (94 words)
- 🍕 Comida y Bebidas (145 words)
- 🌍 Lugares del Mundo (89 words)
- ⚽ Deportes (97 words)
- 🎬 Películas y Series (118 words)
- 📚 Escuela y Educación (114 words)
- 💻 Tecnología e Internet (63 words)
- 🚗 Vehículos y Transporte (97 words)
- 🎸 Instrumentos Musicales (106 words)
- 🎮 Videojuegos (128 words)
- 🎌 Personajes de Anime (133 words)
- 🏰 Personajes de Disney (133 words)
- 🎤 Artistas Latinos (116 words)
- 💎 Marcas de Lujo (108 words)
- 🦸 Personajes de Ficción (124 words)
- 🫀 Cuerpo Humano (129 words)
- 🏖️ Playa y Verano (69 words)
- 💕 Amor y Romance (98 words)
- 🎄 Navidad y Fiestas (88 words)
New feature: You can select multiple pools simultaneously to mix categories!
.txt format: # Header on first line (optional), then civilian_word|impostor_word pairs, one per line.
Key rules
- Defaults: up to 10 players; impostors by player count (<=5 →1, 6-7 →2, >7 →3) and never more than half.
- Time defaults: 5 min with 4 or fewer players, up to 15 min with 10; deliberation = 1/3 (rounded).
- No self-voting. Max executions = number of impostors.
- Tie on execution slots: 1 extra minute of deliberation and a new vote only among tied players; if tie persists, impostors win.
- Starting player and direction (clockwise/counter-clockwise) are random.
How to run (offline)
Use any static file server so fetch can read the .txt files (needed if opening via file://). Example with Python:
git clone https://git.dariosevilla.es/dasemu/web-imposter-game
cd web-imposter-game
python -m http.server 8000
Open in browser: http://localhost:8000
Word format with impostor variants
Each word pair consists of:
- Civilian word: What most players see
- Impostor word: A related but different word that impostors see
Example from animales_naturaleza.txt:
Oso|Pez
Camello|Arena
Elefante|Safari
This makes the game more interesting as impostors have a related word to work with!
Add new pools
- Create a
.txtinword-pools/with optional header# Nameand pairscivilian|impostorper line. - Add an entry in
word-pools/manifest.jsonwithid,name,emoji,count, and optionallylocal: true. - (Optional) To make it work offline, add an embedded version in
script.jsEMBEDDED_POOLSarray.
Notes
- State is saved in
localStorage(impostorGameStateV2). Use "New match" to clear it. - Mobile optimized: No scrolling required on setup screen, reveal via swipe or tap, compact adaptive UI.
- Pool selection grid has vertical scroll when needed to fit all 22 categories.
Description
Role-based impostor-style game for mobile, 100% in the browser with no backend. Uses localStorage so a reload doesn’t lose the match.
Latest Build
Latest
Languages
JavaScript
52.7%
CSS
39.6%
HTML
5.7%
Java
1%
Shell
0.9%
Other
0.1%