Contents
- Overview and package contents
- Quick installation by FTP
- Requirements and hosting
- Controls and how the game works
- Screens and controls explained
- Settings available
- Map of the files
- Customize your copy
- Languages, sound and accessibility
- Saved progress and privacy
- Optional advertising
- Optional development
- Updating the game
- Common problems
- Frequently asked questions
- Embedding API
- Support and version history
- For AI assistants
1 Overview and package contents
Merge-mining game: 30 chambers, 16 pickaxe tiers, 6 biomes, 10 active positions and 8 reserve slots. The Abyss continues after the campaign.
Single player only. No accounts, payments, online ranking or rewarded ads. Optional interstitial ads require your own provider.
This manual describes version 1.0.0. Open documentation/index.html by double-clicking it. This guide works without internet.
DOCUMENTATION.html
documentation/index.html
game/
source/
THIRD-PARTY-LICENSES/
2 Quick installation by FTP
Installing takes a few minutes. It needs no build step, terminal, database or PHP.
- Extract the purchased ZIP on your computer.
- Open the
game/folder. Keep its files and subfolders together. - Upload only the contents of
game/by FTP or your hosting file manager to an empty folder, such aspublic_html/my-game/. - Open
https://your-domain.example/my-game/in a modern browser.
index.html on your computer. The game must be opened through an HTTP(S) address.
3 Requirements and 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.
- No npm, terminal, database, PHP, account or build step. The game loads everything from your folder.
The example above uses a subfolder. Keep all files together so the relative paths keep working.
To test before choosing a host, run any static web server on your computer or upload the game to a private test subfolder first.
4 Controls and how the game works
Drag equal picks together, or select a pick and its destination. Buy tools, arrange the bench, then launch. Falling picks break blocks; destroy the core to advance.
Keyboard: B buys; Space or Enter launches; 1–5 selects a boost column; R opens the reserve; P or Esc pauses; Enter continues results. Moving tools uses mouse or touch.
Reserve tools do not launch. Boost has 2 charges, or 3 with its charm. Purchases need coins and a free slot. Dismantling asks for confirmation; the last tool is protected.
5 Screens and controls explained
The captures below are real game screens from version 1.0.0, in English. Numbered marks point to the controls, and the legend under each capture explains them.
Marks on the screenshot
- Game logo.
- Play or continue your saved campaign.
- No sound: interact with the game first, check mute and both volume sliders. Hidden tabs pause gameplay; returning opens pause. Use a current browser with WebGL.
Marks on the screenshot
- Drag equal picks together, or select a pick and its destination. Buy tools, arrange the bench, then launch. Falling picks break blocks; destroy the core to advance.
- Reserve tools do not launch. Boost has 2 charges, or 3 with its charm. Purchases need coins and a free slot. Dismantling asks for confirmation; the last tool is protected.
- Buy tools with coins.
- Launch the expedition.
Marks on the screenshot
- Reserve: swap or merge spare tools. Workshop opens at chamber 6; charms cost 12 crystals, with one equipped. Elements unlock through progress. No specific charm is needed for guardians.
Marks on the screenshot
- No sound: interact with the game first, check mute and both volume sliders. Hidden tabs pause gameplay; returning opens pause. Use a current browser with WebGL.
- The game interface is English or Brazilian Portuguese; this guide has 14 languages. Saved language overrides the initial setting. Pause settings include mute, music, effects and reduced visual effects.
6 Settings available
The game interface is English or Brazilian Portuguese; this guide has 14 languages. Saved language overrides the initial setting. Pause settings include mute, music, effects and reduced visual effects.
Browsers need a first interaction, such as pressing Play, before audio can start. The game pauses when it loses focus.
7 Map of the files
| File or folder | What it is |
|---|---|
game/index.html
|
Entry page of the game. |
game/assets/
|
Built game code, styles, images and audio. |
game/deepforge.config.js
|
Edit game/deepforge.config.js: title changes the browser tab, storageKey separates saves, defaultLanguage sets new saves. The illustrated logo is separate. Keep quotes and commas valid. |
source/src/data/chambers.ts
|
Merge-mining game: 30 chambers, 16 pickaxe tiers, 6 biomes, 10 active positions and 8 reserve slots. The Abyss continues after the campaign. |
source/src/data/tools.ts
|
Drag equal picks together, or select a pick and its destination. Buy tools, arrange the bench, then launch. Falling picks break blocks; destroy the core to advance. |
source/src/config/balance.ts
|
Reserve tools do not launch. Boost has 2 charges, or 3 with its charm. Purchases need coins and a free slot. Dismantling asks for confirmation; the last tool is protected. |
source/src/core/save.ts
|
Progress uses localStorage key deepforge.buyer.save.v2. Export or import saves through the menu. Reloading during mining restores the launch checkpoint. A subfolder alone does not separate saves on the same origin. |
source/src/buyer.ts
|
Ads default to none. Supply your own approved SDK and consent, then select custom. Interstitials occur after expeditions, never the first. Default: every 3, at least 120 seconds apart. Call onStart before showing; if false, cancel. Finish with onComplete or onError; cancel stale provider overlays. No rewards. |
source/src/api.ts
|
Embedding: use the host API below; cross-origin pages need your own validated message wrapper. Allow scripts and origin storage in a sandbox. Match iframe height to its viewport. |
source/src/i18n/strings.ts
|
Edit interface dictionaries in source/src/i18n/strings.ts, then rebuild. Translating this guide does not translate the game or add voice recordings. |
8 Customize your copy
Edit game/deepforge.config.js: title changes the browser tab, storageKey separates saves, defaultLanguage sets new saves. The illustrated logo is separate. Keep quotes and commas valid.
window.DEEPFORGE_CONFIG = {
title: 'My Mine',
storageKey: 'my-mine.save.v2',
defaultLanguage: 'en',
ads: {provider:'none', everyExpeditions:3, minimumIntervalSeconds:120}
};
To change the illustrated title, icons, artwork, rules or text, edit the optional source edition and rebuild. Keep the existing proportions when replacing visuals. Do not edit hashed build file names without updating their references.
9 Languages, sound and accessibility
The game interface is English or Brazilian Portuguese; this guide has 14 languages. Saved language overrides the initial setting. Pause settings include mute, music, effects and reduced visual effects.
Edit interface dictionaries in source/src/i18n/strings.ts, then rebuild. Translating this guide does not translate the game or add voice recordings.
10 Saved progress and privacy
Progress uses localStorage key deepforge.buyer.save.v2. Export or import saves through the menu. Reloading during mining restores the launch checkpoint. A subfolder alone does not separate saves on the same origin.
- There is no account and no cloud sync. Records stay on this device.
- Private mode, storage restrictions, clearing site data or changing the address can remove access to saved progress. The game keeps running without saving.
Back up your configuration and exported save before updating. Keep storageKey unchanged to preserve access to progress. Upload all build files together; do not rename hashed assets.
11 Optional advertising
Ads default to none. Supply your own approved SDK and consent, then select custom. Interstitials occur after expeditions, never the first. Default: every 3, at least 120 seconds apart. Call onStart before showing; if false, cancel. Finish with onComplete or onError; cancel stale provider overlays. No rewards.
// game/deepforge.config.js — disabled until you integrate your SDK
window.DEEPFORGE_AD_PROVIDER = {
interstitial({onStart, onComplete, onError}) {
// Before showing: if (!onStart()) cancel the request.
// Your SDK must call onComplete() on close, or onError() on failure.
// Never report completion here without a real provider event.
onError(); // Safe unimplemented example: no ad, no simulated success.
}
};
// Request without start recovers after 2.5 s; visible ad timeout is 120 s.
// Your provider must close its stale UI; the game cannot close third-party overlays.
12 Optional development
This section is only for changing the source. The game/ folder already contains the playable build, so hosting needs no Node.js.
For source editing only: Node.js 22.12 or newer. Run the commands below. Upload the contents of source/dist-static after building. Keep the WebGL patch before Phaser initialization.
cd source
npm ci
npm test
npm run typecheck
npm run build:static
13 Updating the game
Back up your configuration and exported save before updating. Keep storageKey unchanged to preserve access to progress. Upload all build files together; do not rename hashed assets.
Upload the new contents of game/ over the old files, keeping the names and folders.
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.
14 Common problems
-
Blank page: make sure you uploaded the contents of
game/, opened the HTTP(S) address and checked the browser console for scripts that failed to load. Thesource/folder is not the playable website. -
Works on the computer but not on the server: the game does not run from a file on your computer (
file://). Use a static web host or any static local server. -
Missing textures or sound: confirm the complete upload and the file name case, and that
.mp3,.js,.cssand font files are served with correct types.
No sound: interact with the game first, check mute and both volume sliders. Hidden tabs pause gameplay; returning opens pause. Use a current browser with WebGL.
15 Frequently asked questions
Does it need PHP or a database?
Does it work offline?
Does it work on phones?
16 Embedding API
Embedding: use the host API below; cross-origin pages need your own validated message wrapper. Allow scripts and origin storage in a sandbox. Match iframe height to its viewport.
window.DeepForge.pause();
window.DeepForge.resume();
window.DeepForge.isPaused();
window.DeepForge.getSave();
const unsubscribe = window.DeepForge.on('expeditionEnd', payload => {
console.log(payload);
});
unsubscribe();
// expeditionStart, expeditionEnd, chamberComplete, save
17 Support and version history
Phaser and bundled Matter.js/EventEmitter3: MIT notices. Nunito and Lilita One: SIL Open Font License. Keep notices in THIRD-PARTY-LICENSES, game/licenses and source/public/licenses. No remote library is required.
Support and customization: willian@polargames.com.br. Include your purchase or licence reference. 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
Edit game/deepforge.config.js: title changes the browser tab, storageKey separates saves, defaultLanguage sets new saves. The illustrated logo is separate. Keep quotes and commas valid.
Progress uses localStorage key deepforge.buyer.save.v2. Export or import saves through the menu. Reloading during mining restores the launch checkpoint. A subfolder alone does not separate saves on the same origin.
For source editing only: Node.js 22.12 or newer. Run the commands below. Upload the contents of source/dist-static after building. Keep the WebGL patch before Phaser initialization.
window.DEEPFORGE_CONFIG = {
title: 'My Mine',
storageKey: 'my-mine.save.v2',
defaultLanguage: 'en',
ads: {provider:'none', everyExpeditions:3, minimumIntervalSeconds:120}
};