Repository navigation
EN Install From Repository
Français · Type: how-to · Audience: contributor · Context: engine repository · Status: ready · Applies from: 4.2.5
To change the engine itself, its tools or its Studio, or to play its sample games from source, you work in a clone of the engine repository. To make a game of your own, you do not need it: Install from the release archive.
A clone of wanoo/quest-n-click with its development dependencies, the Python modules and Chromium installed,
checked by npm run doctor, and the sample game running with npm run dev.
- The engine repository, on your machine. Every command runs at the root of the clone.
-
mainholds work not released yet. To work on a released version, check out its tag (git checkout v4.4.0). - The repository is
github.com/wanoo/quest-n-clicksince 4.2.5; the oldgithub.com/wanoo/web-scummaddress redirects to it. - The whole contributor setup, with the conventions and the checks before a pull request, is Developer setup; this page is the installation only.
- git, and Node.js 22.12 or newer (22.13 for the local Studio and the writing tools);
nvmreads the repository's.nvmrc(Requirements). - Python 3 (Requirements).
- Optional: ffmpeg, for sounds and the audio pipeline (Requirements).
On your machine, in the folder that will hold the clone, then at the clone's root. On Windows, in Git Bash.
-
Clone the repository and enter it:
# in the folder that will hold the clone git clone https://github.com/wanoo/quest-n-click.git cd quest-n-click
-
Use the Node version the repository names (
.nvmrcsays22: the newest Node 22 you have):# at the root of the clone nvm use node --version # v22.12.0 or newer
-
Install the exact dependencies of
package-lock.json, development tools included (Playwright, Vitest, Biome):# at the root of the clone npm ci
-
Install the pinned Python modules (Pillow, NumPy, SciPy):
# at the root of the clone python3 -m pip install -r requirements.txt
-
Install the browser the e2e scripts and the Studio's checks drive:
# at the root of the clone npx playwright install chromiumnpx playwright install webkit firefoxadds the two optional browsers.
-
Check the machine:
# at the root of the clone npm run doctor
-
Run the sample game. The game is chosen by
GAME, else the game.cache/gamelinks to (npm run gamemakes the link), elseconfig.gameinpackage.json, which isdemo:# at the root of the clone npm run dev # the sample game, games/demo GAME=heroes npm run dev # another game of games/
npm run doctor ends with Development, asset and browser-test prerequisites are ready. (or says which optional
prerequisite is missing, and exits 0 all the same); see doctor. npm run dev prints a local URL
that opens the sample game. The checks to run before a change are on Before a PR.
| Symptom | Cause | Fix |
|---|---|---|
npm ci refuses: the lock and package.json disagree |
A local change to package.json
|
git checkout package.json package-lock.json, or npm install if you meant the change |
✖ Playwright Chromium: browser binary missing |
Step 5 not done | npx playwright install chromium |
error: externally-managed-environment from pip |
Your system's Python refuses global installs (PEP 668) | Use a virtual environment: python3 -m venv .venv && . .venv/bin/activate, then step 4 |
✖ games/<id>/index.ts not found (GAME=<id>) |
GAME names no folder of games/
|
ls games and pick an existing id |
Install troubleshooting has more.
The clone; node_modules/; Playwright's browsers in its cache folder (outside the clone, shared by every project);
the Python modules in your Python environment; .cache/ in the clone (the game link, the journal of the writing
tools, caches), ignored by git.
Delete the clone. Playwright's browsers stay in its cache until npx playwright uninstall --all.
- Developer setup, Dev loop, Before a PR
- Requirements, doctor
-
CONTRIBUTING.md,tools/select-game.ts(how the game is chosen)
Generated publication · publication générée — current documentation · documentation courante: quest'n'click 4.4.0 r1, documentation revision · révision de la documentation 8dc717c69acb62c4742b69c54a7e7dfb620f75d8.
Earlier versions and permalinks · versions précédentes et liens permanents: https://wanoo.github.io/quest-n-click/docs/
An edit made in this wiki is overwritten at the next publication · une modification faite dans ce wiki est écrasée à la publication suivante.
Edit the source · Modifier la source · Report an error · Signaler une erreur
Index (6)
Start (6)
Play (9)
Install (17)
- Requirements
- Install from the release archive
- Install from npm, once published
- Install from the repository to work on the engine
- doctor: checking your machine
- Image toolchain
- Audio toolchain: ffmpeg, fluidsynth, Furnace, uv
- Upgrade
- Upgrade notes: 4.4
- Upgrade notes: 4.3
- Upgrade notes: 4.2
- Upgrade notes: 4.1
- Upgrade notes: v3
- Upgrade notes: v2 to v3
- Coming from web-scumm
- Package reference
- Install troubleshooting
Create a game (55)
- Your first game
- Layout of a created project and of the engine repository
- The working loop
- Content principles and the identity contract
- Rooms
- Geometry: placement, walk zones, masks, layers, camera
- Something is visible but unreachable
- Reactions
- Game commands
- Conditions
- Flags, variables and events: which to use
- Custom code
- Characters
- Items and inventory
- World map
- Dialogues
- Scripts and events
- Moving characters: patrols and walks
- Exits
- Chapters and objectives
- State and saves: persistent or temporary, renaming an id, migrations
- Staging: wide rooms and animations
- The stage: lights, particles, floors
- Skin and fonts
- Title and credits
- Heroes: several characters and hero choice
- Built-in minigames
- A custom minigame
- Translations
- Music in stems
- Sound effects
- Voices: per language and per hero
- Images: prompts, cutting sheets, transparency, scale
- Asset provenance
- The storyboard, source of truth
- Puzzle design
- Classic mechanics
- Review pages
- DSL reference
- Checking your game
- What the solver proves
- Solver options
- Playtests
- Remix
- Speedrun for authors
- The sealed ending
- Production template
- Example games
- Working with an AI
- Build and release a game
- Publish on GitHub Pages
- The static game on Clever Cloud
- Other static hosts
- Sub-path, cache and service worker, incomplete deploys, going back
- Testing on a phone over the LAN
Local Studio (24)
- The local Studio: overview and launch
- Edit a room
- Placement and stage
- Preview, apply, undo
- Storyboard
- Assets and cutting
- Check: validator, solver, critical path, heat, health, coverage
- Before and after captures
- Semantic diff
- Play and replay a session
- Rule explainer
- Language and objectives
- Voices and the heroes × languages matrix
- Map
- Notes
- Remix in the Studio
- Music
- The Assistant: bring your own key
- Demo mode and studio-apply
- Local and LAN security
- Studio API
- Local MCP: setting up each client
- MCP tools
- Studio troubleshooting
Team Studio (21)
- What runs where
- Concepts: revision, transaction, span, lease, preview, build
- Starting as an invited dev
- Working together day to day
- Roles and actions: the full matrix
- Invitations
- Managing members
- Write refused on the hosted Studio: stale base revision (409)
- Write refused on the hosted Studio: span locked (423)
- Recovering after a lost lease, a disconnection or a stale preview
- Comments
- Map and semantic diff
- Publishing builds
- Remote MCP
- The game in Git
- Upgrading the engine of a hosted game
- Hosted assets
- The server's command line
- Health and metrics routes
- Trying it locally with compose.yml
- Known limits
Clever Cloud (23)
- Clever Cloud: overview, cost and prerequisites
- Apps and add-ons
- Domains and TLS
- Keycloak
- Generic OIDC and GitLab
- Configuration
- First deployment
- Backups
- RPO and RTO
- Restore the Studio on a fresh installation
- Redeploys
- Upgrading the server and checking state after a migration
- Limits of going back
- Monitoring
- Security
- Rotating keys
- Recovering admin access
- Changing domain or OIDC provider
- Worker, PostgreSQL or Cellar down
- Exporting the game and leaving the installation
- Retention
- Clever Cloud troubleshooting
- Costs and teardown
Reality Bridge and connectors (16)
- The Reality Bridge: what it is
- Quick start
- Guarantees
- Install and run the Bridge
- Backup and restore
- Several tenants
- Signals and the manifest
- The Bridge's command line
- Connectors overview
- Email connector
- Telnet connector
- SSH connector
- Open Badges connector
- The connector SDK
- Security: Biscuit and signatures
- Bridge and connector troubleshooting
Contribute (25)
- Welcome
- Developer setup
- The dev loop
- Before a pull request
- Conventions
- Writing documentation
- Architecture
- Code tour
- Import boundaries
- Which tests run when
- Mutation testing
- The coverage ratchet
- The quality baseline
- CI explained
- Field passes
- Benchmarks
- Releasing
- npm packages
- Decisions and ADRs
- Governance
- Bot pull requests
- Contributing with AI agents
- Security policy
- Code of conduct
- Licences and credits