Repository navigation
EN Install From NPM
Français · How-to · Published, partly reviewed by a person · Applies from: 4.2.5
The engine is on npm from 4.5.2 (published on 24 Oct 2026). Its packages are named under the organisation
quest-n-click (D53): @quest-n-click/engine, @quest-n-click/create, @quest-n-click/bridge,
@quest-n-click/connectors and @quest-n-click/studio-server, each published by the release run and approved by an
owner of the organisation. A project is created and upgraded with npm's usual commands, without an archive URL; the
release archive still works the same way. The unscoped names of 4.5.1 and before
(quest-n-click, quest-n-click-bridge, …) are not the engine: the maintainers keep them as deprecated pointers to the
scoped ones, except create-quest-n-click, a relay to @quest-n-click/create.
Audience, context, and the statuses of what this page rests on
Audience: author · Context: created project
A game project created and upgraded with npm's usual commands, without an archive URL, from packages you can check in one command are the project's.
- A created project, on your machine.
- No version of the product was published to npm up to and including 4.5.1. 4.2.0 went to GitHub Releases only
(D38): publishing needs a maintainer's two-factor authentication at each step, and 4.2.0 did not wait for it. The npm
organisation
quest-n-click(two owners, so two people can approve) and the scoped names come with 4.5.2 (D53), the first release that release.yml staged on npm and the first one published there, on 24 October 2026. Each stable release since is staged the same way and is on npm once an owner approves it:npm view @quest-n-click/engine versionsays which one is. - The names are watched: a job of the nightly workflow (
npm-names, never gating) checks that each scoped name, and each formerweb-scumm…one, is free or published by an owner of the organisation, that each unscoped name is an owner's deprecated pointer (create-quest-n-click: an owner's relay, not deprecated), and warns otherwise.
Limit ·
npm-owners-onlyA package under one of these names published by someone other than the organisation's owners is not the project's: do not install it. The unscoped names were unpublished on 24 October 2026, to be republished as pointers (andcreate-quest-n-clickas a relay) by the maintainers: until then,npx create-quest-n-clickfinds nothing, andnpm init @quest-n-clickis the command.
- The Requirements of any game project: Node.js 22.12 or newer, Python 3 for the art.
- Nothing else: from 4.5.2 the release is on npm.
On your machine, from the folder that will contain the project; then inside the created project.
-
Check that the package is published and is the project's. Its maintainers must be owners of the organisation
quest-n-click(lostinbrittanyandwanoo), its repositorygithub.com/Quest-n-Click/quest-n-click, and itslatesta version of the product:# anywhere npm view @quest-n-click/engine maintainers repository.url dist-tagsIt names a version of the product (
latest: '4.5.2'on 25 October 2026). If it names onlybootstrap, the reservation, or a maintainer who is not an owner, stop here and use the release archive.
-
Create the project. Either command does the same thing (
@quest-n-click/createrunsquest-n-click createfrom the engine it depends on):# in the folder that will contain the project npm init @quest-n-click my-game "My Game" # or: npx quest-n-click create my-game "My Game"
Once the maintainers republish it,
npx create-quest-n-click my-game "My Game"works too: the unscopedcreate-quest-n-clickis a relay that runs@quest-n-click/create, the same thing.Without
--engine,createwrites the dependency"@quest-n-click/engine": "^<version>", which npm resolves from the registry.
-
Install, prepare the art and play, as from the archive:
# from the folder that contains the project, then inside it cd my-game npm install python3 -m pip install --require-hashes -r node_modules/@quest-n-click/engine/requirements.txt npm run assets && npm run dev
Step 1 prints the maintainers and the repository; step 2 ends with
my-game: "My Game" created (@quest-n-click/engine ^<version>). A project made from an archive moves to the registry with
npm install @quest-n-click/engine@<version>, which replaces the archive's URL in its package.json by a version range.
| Symptom | Cause | Fix |
|---|---|---|
npm view @quest-n-click/engine dist-tags names only bootstrap (and npm's 0.0.0-stage placeholder) |
Not the registry you expect, or a mirror behind it | Check npm config get registry, or install from the release archive
|
npx create-quest-n-click answers 404 |
The relay is not republished yet | npm init @quest-n-click my-game |
npm view shows a maintainer who is not an owner of the organisation |
A name taken by someone else | Do not install it; report it on the project's issues |
npm warn deprecated quest-n-click@0.0.1: … |
An unscoped name of 4.5.1 and before, now a pointer | Install @quest-n-click/engine instead |
Step 1 changes nothing. Steps 2 and 3 write the same project as from the archive;
only the dependency in package.json differs (a range instead of a URL).
A project created from npm goes back to an archive with npm install <archive URL>, as
Upgrade describes.
The procedure was written in 4.1.20; from 4.5.2 release.yml stages the packages and an owner approves them, and 4.5.2 was the first release on npm. The details are on npm packages. What a user can rely on:
-
Staged publishing with a person's approval. The release run stages each package through GitHub's OIDC (trusted
publishing, configured stage-only: CI may stage, never publish), and the maintainer promotes each one with
two-factor authentication (
npm stage approve <id>, or on npmjs.com); either owner of the organisation can approve. A version of the product never comes from a local publication, which would carry no OIDC provenance; only a reservation version0.0.0-bootstrap.0may, once per package, to create it. -
Exact tools. Staged publishing needs npm 11.15.0 and Node 22.14.0 at least. release.yml's
npm-stagejob pins them exactly,NPM_PUBLISH_NODE: 22.23.3andNPM_PUBLISH_NPM: 11.21.0, installs npm 11.21.0 itself (Node 22.23.3 ships npm 10.9.9) and checks both; a test refuses a range. -
The connectors are not declared dual-use. npm's dual-use policy covers tools that can resemble malicious
software (penetration testing, security research, obfuscation); the connectors are servers a game runs (an SSH and a
Telnet front, an email webhook and IMAP reader, an Open Badge verifier), scanning, attacking and hiding nothing.
They go through the same staged publishing and two-factor promotion as the other packages. If npm's scan holds or
flags the package, it gets
"contentPolicy": { "class": "dual-use" }and aDISCLOSUREfile.
- Install from the release archive, Package reference
- npm packages (the maintainer's procedure), Releasing
- npm's documentation: staged publishing, dual-use policy
-
.github/workflows/nightly.yml(thenpm-namesjob),.github/workflows/release.yml(thenpm-stagejob)
Generated publication · publication générée — current documentation · documentation courante: quest'n'click 4.5.3 r1, documentation revision · révision de la documentation b061c4ae6fbeb0be47a11ba8a442ba7e23ecb0a1.
Latest documentation · dernière documentation: https://quest-n-click.cleverapps.io/docs · https://quest-n-click.cleverapps.io/fr/docs; earlier versions · versions précédentes: each release's quest-n-click-docs-<version>.tar.gz · l'archive quest-n-click-docs-<version>.tar.gz de chaque release, https://github.com/Quest-n-Click/quest-n-click/releases
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 (18)
- Requirements
- Install from the release archive
- Install from npm
- 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.5
- 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