Moddable.Games
Creating games you already own.
A multi-page marketing site and tools platform for an open-source board game modding workshop. Ten mods. Three original games. Two open-source engines. One Discord.
Stack
HTML + Vanilla JS + Zero dependencies + Zero build step
Modular JS architecture: one loader (js/mg-loader.js) loads 12 shared modules + page-specific scripts. Zero inline scripts or styles.
Routes
| URL | Page |
|---|
/ | Home |
/mods/ | Filterable mod library |
/mods/[slug]/ | 10 mod detail pages (incl. Dungeon Chess) |
/games/ | Games hub |
/games/nukes/ | Nukes |
/games/mongo/ | Mongo |
/games/endless-skies/ | Endless Skies |
/engines/ | Engines hub |
/engines/moddable-chess/ | Moddable Chess engine |
/engines/moddable-hexmaps/ | Moddable Hexmaps engine |
/developers/ | Developers / Tools API |
/news/ | News index |
/news/[slug]/ | 13 article pages |
/tools/ | Tools hub (dice, names, scores) |
/tools/ti/ | Twilight Imperium tools |
/tools/talisman/ | Talisman tools |
/tools/nukes/ | Nukes tools |
/submit/ | Mod submission form |
/about/ | About |
/about/roadmap/ | 18-month roadmap |
/team/ | Team |
/community/ | Community / Discord |
Run locally
python3 -m http.server 8000
Open http://localhost:8000/. Clean URLs, no .html extensions.
Deploy to GitHub Pages
- Push to GitHub
- Settings โ Pages โ Deploy from
main branch, root folder
- Update the
<meta name="mg-base"> tag across pages to match your deploy path:
| Scenario | mg-base value |
|---|
| Custom domain (root) | (remove the tag) |
username.github.io repo | (remove the tag) |
Project repo (/repo-name/) | /repo-name |
Design system
| |
|---|
| Display | Inter Tight 500โ700 |
| Body | Inter 400โ700 |
| Mono | JetBrains Mono 400โ600 |
| Pixel | Press Start 2P (eyebrows only) |
#d11a1a red Total conversion / Nukes
#3a9928 green Rebalance / Mongo / Endless Skies
#0c4f8d blue Reskin / TI tools
#0a0d2a cosmicDeep Hero backgrounds
#f5f4ef canvasLight Warm off-white sections (not pure white)
#14161c ink Primary text on light
Rules: No drop shadows. Pill buttons only. One RGB primary per surface. Hex grid SVG overlay on all dark heroes.
JS Architecture
js/
โโโ mg-loader.js โ entry point, loads all modules
โโโ mg-core.js โ tokens, el(), url(), MG.data (fetch layer)
โโโ mg-buttons.js โ btn(), linkBtn()
โโโ mg-cards.js โ modCard(), pageHero()
โโโ mg-navbar.js โ navbar()
โโโ mg-footer.js โ footer()
โโโ mg-search.js โ global Cmd+K search
โโโ mg-animations.js โ scroll reveal + TOC spy
โโโ mg-mods-content.js โ mod page content (rules, components, etc.)
โโโ mg-mod-page.js โ data-driven mod detail renderer
โโโ mg-news-article-page.js โ shared news article renderer
โโโ mg-*-page.js โ page-specific scripts (home, tools, etc.)
data/
โโโ mods.json โ mod library (10 entries)
โโโ games.json โ games (3 entries)
โโโ engines.json โ engine listings (2 entries)
โโโ mcp-tools.json โ MCP tool registry (50 tools, 7 namespaces)
โโโ news.json โ news posts (13 entries)
โโโ team.json โ team members (4 entries)
Pages load mg-loader.js (shared modules) + their own page script. Data is fetched via MG.data.get('mods') โ Promise, or MG.data.get('mod', 'slug') for single items. Legacy MG.data.load(['mods','news']).then(store => {...}) still works.
Changelog
2026-07-22
- Added Maze Rats (94 procedural tables) to oracle pipeline and oracles page
- Encounter Builder now supports D&D 5e and Pathfinder 1e via system selector
- Discord /encounter command uses autocomplete for future-proof system selection
- Rebuilt rules-index.json (8,426 entries across 41 games, added table-type indexing)
- MCP Worker bumped to v1.7.0
2026-07-20
- Added GA4 analytics tracking to all untracked interactive modules
- API playground: tool select, category expand, tool run events
- Hex embed: layout, size, player, style changes and map generation
- TI Dashboard: game start, strategy picks, pass, Mecatol claims, agenda draw/resolve, game over
- Registered
tool_name custom dimension in GA4 for per-MCP-tool breakdowns
- D&D Encounter Builder, Discord oracle commands, and /test suite (from prior session)
- Closed issues #131, #132, #135
2026-06-10
- Deployed MCP tools server at tools.moddable.games (42 AI-callable tools across 6 namespaces)
- Serves MCP protocol (SSE), REST API, llms.txt, OpenAPI 3.1, .well-known/mcp.json discovery
- New /developers/ section: landing page + /api/ sub-page + /examples/ sub-page
- Purple section accent (#8b5cf6), SVG hero feature, unique OG images
- Homepage "For Developers" band between Featured Mod and Nukes sections
- Nav reordered: Mods, Engines, Games, Tools, Developers, About, News (SVG/cube alternation)
- Added dice_roll and ti4_random_factions as site-native tools
- Puzzle generation uses pre-computed pool (Cloudflare Workers free tier)
- AI Integration sections added to chess.moddable.games and hex.moddable.games
- Favicon and full OG/Twitter meta tags on tools.moddable.games Worker
2026-06-09
- TI4 Objective Tracker: full game-session mode with player scoring, secret objectives, bonus VP tracking
- Supports all expansions (base, Prophecy of Kings, Discordant Stars, Thunder's Edge)
- Setup screen with player count, VP target, expansion toggles, and colour assignment
- Scoreboard with progress bars, tabbed interface (public/secrets/bonus), winner detection
2026-06-05
- Unified hero system across all 17 pages with new shared sectionHero() component
- Two-tier design: full cosmic heroes (tier-1 indexes) and reduced sub-page heroes (tier-2)
- Colour system: RGB accents for consistent-sub-page sections, CMYK for divergent ones
- Added parallax scroll with dramatic text fade-out, hex grid zoom, and gradient darkening
- Added animated 3D feature elements: spinning cubes (Tools, Engines, About) and animated SVGs (Mods, Games, News)
- Reordered nav to alternate cube/SVG features: Mods, Engines, Games, Tools, News, About
- Fixed Endless Skies accent (greenโblue to match detail page)
- Fixed mods page hash-change filtering from navbar dropdown
- Fixed tools page auto-scrolling to search on load
- Normalised all hero copy: tier-1 gets 2-line titles with single highlighted keyword + 2-line balanced ledes
- Created GitHub issue #81 for static site build system migration
- New assets: hex-grid-purple.svg, hex-grid-cyan.svg, hex-grid-magenta.svg, hex-grid-amber.svg
2026-06-04
- Rewrote Planet Mongo game page from real rulebook (v0.9.0): 4X hex territory control, 8 factions, hidden orders, central market
- Rewrote Endless Skies game page from real rulebook (v0.2.0): 4X worker placement, 8 factions, ship rooms, wormhole network
- Both pages now honestly marked "In development" with no fabricated content
- Removed fake community mods from both pages (no real mods exist yet)
- Deleted dead per-game JS files and custom CSS (pages use shared data-driven renderer)
- Updated meta tags and OG descriptions for both games
- Synced all mod metadata from moddable-rules: versions, taglines, stats, development status
- Replaced Talisman Worlds logo (new circular emblem from moddable-rules, properly on 410x410 canvas)
- Fixed Talisman Worlds hero title (was still "Talisman: Hexed")
- Replaced fabricated Econopoly content with real rulebook mechanics (resources, VP, choose-your-action)
- Replaced fabricated Hyper Imperium content with real mechanics (3D exploration, promissory trades, mercenary builder)
- Rewrote games-sync.json from actual rulebook front matter (all entries were stale)
- Added RGB cube placeholder logo for all 6 community mods (#61 partial)
- Closed #25 (mod download links complete on website side), #78, #79
2026-06-02
- Synced MCE to v0.7.1 / 70 variants (from v0.6.8 / 64): stats, features, consumer APIs, developer guides
- Moved Dungeon Chess from /games/ to /mods/ โ it's a total conversion of chess, not an original game
- Added news article: "Building Games on Chess" (MCE v0.7.1 consumer APIs + DC v1.2.0 renderer migration)
- Rewrote Nukes game page from actual moddable-rules rulebook (removed all hallucinated content)
- Added game logos to games index cards (410x410 normalized PNGs)
- Updated all counts site-wide: 10 mods, 3 games, 13 news articles
- Regenerated OG images for games page and new article
- Added
.game-card__logo CSS for logo thumbnails in game/mod cards
- Fixed body text centering in games engines callout section
- Created issues #78 (Mongo sync) and #79 (Endless Skies sync) for future rulebook rewrites
- Bumped to v1.0.60