Contents
- Overview and package contents
- Quick installation by FTP
- Requirements and subfolder hosting
- Controls and how the game works
- Screens and controls explained
- Map of the files
- Settings available
- Customizing texts, images and content
- Languages and audio
- Saves and taking care of progress
- Optional development
- Updating the game
- Dependencies and licenses
- Common problems
- Frequently asked questions
- Support and version history
- For AI assistants
1 Overview and package contents
Fox Club Solitaire. This edition includes quick games with Draw 1 or Draw 3, a 12-deal campaign in 3 chapters, a daily challenge chosen from 120 validated deals, hints, undo, automatic finish and a narrated guided tutorial. Players collect 12 stickers, 6 card backs and 3 table environments. The interface is available in 14 languages.
This edition has no ads, no accounts, no payments and no online ranking. Records are kept on the device that plays.
| Item | Location in the ZIP |
|---|---|
| Ready-to-play game (upload its contents) |
game/
|
| Buyer guide (this manual, 14 languages) |
documentation/index.html
|
| Shortcut to the guide at the root |
DOCUMENTATION.html
|
| Optional source code (developers only) |
source/
|
| License notices |
game/licenses/, THIRD-PARTY-LICENSES/
|
This manual describes version 1.0.0. Open documentation/index.html by double-clicking it. This guide works without internet and without a server.
2 Quick installation by FTP
Installing takes a few minutes if you have FTP access or a file manager in your hosting panel.
- Extract
fox-club-solitaire-1.0.0.zipon your computer. - Connect to your hosting by FTP or its file manager, and open the folder where the game should live, for example
public_html/games/fox-club/. - Upload only the contents of the
game/folder, so thatindex.htmlsits directly inside the target folder. - Keep
assets/,lib/,modules/,licenses/andboba.config.jsbesideindex.html. Keep names and letter case exactly as extracted. - Open
https://your-domain.example/games/fox-club/in a modern browser.
public_html/games/fox-club/
index.html
boba.config.js
modules/
lib/
assets/
licenses/
source/ folder, the documentation/ folder or the ZIP itself. Players need no Node.js, PHP, database or account.
3 Requirements and subfolder hosting
- A current version of Chrome, Edge, Firefox or Safari on a computer, tablet or phone.
- Any static hosting over HTTP or HTTPS. HTTPS is recommended for audio and browser features.
- Any subfolder of any domain. The game uses relative paths, so the same files work wherever you upload them.
- Nothing else on the server: no database, PHP or Node.js service is needed to play.
The game must be opened through a web address. Opening its index.html directly from your computer (file://) is not supported. This guide is the exception: it opens by double-clicking, with no internet connection.
4 Controls and how the game works
Fox Club Solitaire. This edition includes quick games with Draw 1 or Draw 3, a 12-deal campaign in 3 chapters, a daily challenge chosen from 120 validated deals, hints, undo, automatic finish and a narrated guided tutorial. Players collect 12 stickers, 6 card backs and 3 table environments. The interface is available in 14 languages.
- Move every card to the four foundations, one per suit, from ace to king.
- In the columns, build down alternating red and black. You can move a face-up card or a valid sequence starting from it.
- Empty columns only accept a king or a sequence starting with a king.
- Tap the stock to draw. In draw three, only the top waste card can be played.
- When the stock runs out, tap it again to turn the waste back over, in the same order. Unlimited passes.
- You can also bring the top card of a foundation back down to a column.
- Tap a card and then a destination, or drag. On a computer, double-click to send a card to its foundation.
Shortcuts: H hint · Z or Ctrl+Z undo · Space draw · Esc menu
Twelve deals with proven solutions, across three environments. Each first win earns a sticker.
Every day, a deal with a proven solution, picked from a bank of validated games.
5 Screens and controls explained
Marks on the screenshot
- Play
- Campaign
- Settings
Marks on the screenshot
- Foundation
- Stock
- Column
- Undo
- Hint
Marks on the screenshot
- Sound
- Game
- Display
- Music
6 Map of the files
game/ ready-to-host files (upload its contents)
game/boba.config.js title, save key, initial language
game/lib/ Phaser and included libraries
source/src/ editable TypeScript, art, audio, translations
source/public/ boba.config.js and license notices
source/tests/ automated tests
source/scripts/ deal bank generator and validator
documentation/index.html
THIRD-PARTY-LICENSES/
7 Settings available
Open the gear icon on the home screen. Settings are saved on this device.
- Language
- Music
- Effects
- Ambience
- Narration
- Animation speed
- Reduced motion
- Table layout
- Large indices
- Quick tap (moves when there is a single destination)
8 Customizing texts, images and content
Most settings are in boba.config.js, next to index.html. Open it with any text editor, change a value, save it, upload the file and reload the game. No build is needed.
window.BOBA_CONFIG = {
title: 'Boba Club Solitaire',
saveKey: 'fox-club-solitaire',
defaultLanguage: '',
};
The configuration changes the browser title, the save key and the initial language. An empty language follows the browser. Changing rules, artwork, texts or the deal bank requires editing the source and rebuilding.
saveKey unchanged on a live site. A different key makes the game ignore existing progress and start a new save.
9 Languages and audio
The game interface is available in 14 languages: English, Português (Brasil), Español, Français, Deutsch, Italiano, Nederlands, Polski, Türkçe, Русский, Bahasa Indonesia, 日本語, 한국어 and 简体中文. The game follows the browser language when it can. Players can choose another language in Settings.
The guided tutorial is narrated in English, Português (Brasil) and Español, with 16 recorded lines each. Players using any other language hear the English narration while the speech bubbles show their own language. Narration can be turned off in Settings.
Browsers allow sound only after a first tap or click. If sound stops when you switch apps, return to the game and tap once more. Sound and music can be turned off in Settings.
10 Saves and taking care of progress
Progress, the game in progress, stickers, statistics and settings are stored in this browser (IndexedDB, or localStorage when IndexedDB is unavailable), under the save key in boba.config.js (default fox-club-solitaire).
- Saves belong to one browser on one device. They do not synchronise between devices or browsers.
- Private browsing or blocked storage may prevent saving. The game keeps running for the current session.
- Clearing site data for the game's address deletes the save. Clearing cached images and files does not (see Updating and clearing the cache).
- Delete progress in Settings removes everything on this device. The game has no cloud backup.
11 Optional development
This section is only for changing the code. The game/ folder already contains the built game, so installing it needs no Node.js.
Optional development uses Node.js 26.13.0+ (tested with 26.13.0). Run npm ci, npm test and npm run build:buyer inside source/. The build writes dist-buyer/. The 158 automated tests cover rules, the solver, the validated deal bank, hints, the tutorial, saving and translations. npm run generate:bank rebuilds the deal bank with the solver and can take several minutes.
1. Install Node.js. Open https://nodejs.org/en/download and choose the latest Node.js 26 LTS installer for your system (minimum 26.13.0). npm is included. Internet is needed to download tools and dependencies, not to run a Node.js server for this game.
Windows: run the .msi installer, keep npm and Add to PATH enabled, finish installation and reopen Command Prompt. macOS: run the official .pkg installer and reopen Terminal. Linux: follow the official download page instructions for your distribution, including npm. No global Vite installation is needed.
https://nodejs.org/en/download
2. Verify installation. Run the commands below separately. Both must print version numbers; Node.js must be 26.13.0 or newer. If a command is not found, reopen the terminal and check the installation/PATH. (Node.js 26.x: >=26.13.0 <27.)
node --version
npm --version
3. Extract the complete buyer ZIP first. Open its source folder, where package.json and package-lock.json are located. Windows: type cmd in that folder's File Explorer address bar. macOS/Linux: open Terminal and use cd with the actual folder path in quotes. Do not run commands inside the ZIP or game folder.
4. Install dependencies. Run npm ci inside source/ and wait for successful completion. It downloads the exact locked packages to node_modules, including Phaser, TypeScript and Vite. Keep package-lock.json. Do not use --omit=dev: the build needs development dependencies. Never upload node_modules.
npm ci
5. Check the source. Run npm test; the supplied version has 158 tests. Then run npm run typecheck. Stop and resolve errors before building. These commands do not publish anything.
npm test
npm run typecheck
6. Build the game. Run npm run build:buyer and wait for successful completion. It checks TypeScript and runs Vite. The output is source/dist-buyer/, containing index.html, boba.config.js, modules/, lib/, assets/ and licenses/. Open boba.config.js there to confirm your settings.
npm run build:buyer
# Output: source/dist-buyer/
7. Preview locally. From source/, run the command below and open the exact localhost address printed by Vite. Test a level, settings and sound after a click. Stop the server with Ctrl+C. This preview server is only for development; do not expose it as production hosting.
npx --no-install vite preview --config vite.buyer.config.ts --host 127.0.0.1 --port 4173 --strictPort
8. Publish the result. Back up your hosted game, then upload all contents of dist-buyer/ to your game's web folder, keeping relative paths. Do not upload the enclosing folder, source/, node_modules or the ZIP. Open the public HTTPS URL and refresh the browser cache. Rebuild and replace the complete output after source changes.
Troubleshooting: ENOENT/package.json means the terminal is in the wrong folder. EBADENGINE means Node.js is too old. If PowerShell blocks npm.ps1, use npm.cmd or Command Prompt; do not change security policy. For network/proxy errors, restore access to registry.npmjs.org and retry npm ci. If package files disagree, restore the shipped pair; npm install is for deliberate dependency changes, followed by tests/build and retaining the updated lockfile. Do not run npm audit fix --force blindly. The ready-built game/ remains usable without these developer tools.
12 Updating the game
- Back up your current
game/folder and your editedboba.config.js. - Upload the new contents of
game/over the old files, keeping the same names. - Keep
boba.config.jsand itssaveKeyunless the update notes say otherwise. - Reload the game. If the old version still appears, clear the cache as described below.
Clearing the cache without losing progress
Progress is stored in this browser, not on the server. Clearing cached images and files, or doing a hard reload, keeps your progress.
Computer: press Ctrl+F5 on Windows and Linux, or Cmd+Shift+R on macOS. Phone: in the browser settings, choose the option to clear cached images and files.
Do not choose cookies and site data, or clear site data, for the game's address. That deletes the local save.
13 Dependencies and licenses
- Game framework: Phaser 4.2.1 (MIT License), included readable in
game/lib/phaser.js. Icons: Phosphor Icons (MIT License). Fonts: Nunito and Lora (SIL Open Font License). - Source edition only: Vite, Vitest and tsx (MIT License) and TypeScript (Apache License 2.0), installed by npm.
- Full notices: the
licenses/folder insidegame/, andTHIRD-PARTY-LICENSES/in the ZIP.
The game makes no analytics, ranking, payment or advertising calls. It contains no ad SDK and no billing code.
The original artwork and audio supplied with this item remain under the license terms of the purchased item.
14 Common problems
-
Blank page: make sure you uploaded the contents of
game/(notsource/, and not the folder itself), and that you opened the web address rather than a file on your computer. - Missing images or sounds: check the complete upload, the spelling and letter case of file names, and any 404 errors in the browser's console.
-
The files download or do not run: your host must serve
.js,.webp,.woff2and.mp3files with normal types. Ask the host to check its MIME rules. - No sound at first: tap the game once, turn on Sound effects and Music in Settings, and check the device's mute switch and volume.
- Changes do not appear: reload the game after uploading the config or images. Follow the cache section if the old version remains.
Clearing the cache without losing progress
Progress is stored in this browser, not on the server. Clearing cached images and files, or doing a hard reload, keeps your progress.
Computer: press Ctrl+F5 on Windows and Linux, or Cmd+Shift+R on macOS. Phone: in the browser settings, choose the option to clear cached images and files.
Do not choose cookies and site data, or clear site data, for the game's address. That deletes the local save.
15 Frequently asked questions
Does the game work without internet?
Can I add ads, a store, cloud saves or a global ranking?
Can players cheat the clock or their records?
Is the guide available in other languages?
Do I need Node.js?
16 Support and version history
Support and customization: willian@polargames.com.br. Include your purchase reference when you have it. This guide does not promise response times or a schedule of future updates.
Support request
When you write to support, include the browser and device, the game version, the page address, the steps that caused the problem, a screenshot and the first error shown in the browser console. Never send passwords, payment details or secret keys.
For AI assistants
- Read the installation, file map and customizing sections before changing anything. Upload only
game/to a host;source/is not the playable game. - Preserve progress: keep
saveKey, the relative paths and the translated placeholders unless the buyer asks for a change. - Do not assume an account system, a server, ads or payments. This edition has none, and the code is the source of truth.
- Inspect the actual files and tests before editing. The 14 interface languages and the 3 voice languages are separate facts.