Development setup
Prerequisites
Section titled “Prerequisites”- Node.js 24 and npm.
- Git.
- A MySQL AzerothCore world database to connect to. The integration and end-to-end tests need one too.
- Build tools for native modules, used when
better-sqlite3has no prebuilt binary for your platform: Visual Studio Build Tools on Windows, Xcode Command Line Tools on macOS,build-essentialand Python on Linux.
Get it running
Section titled “Get it running”git clone https://github.com/DMCK96/acore-quest-creator.gitcd acore-quest-creatornpm cicp .env.example .env # then fill in your world databasenpm run devnpm run dev starts the app with hot reload. With a filled-in .env, the login screen is ready and you only choose Connect. See Environment variables.
Native module rebuilds
Section titled “Native module rebuilds”The app’s project store uses better-sqlite3, a native module that must be built for whichever runtime loads it:
npm testrebuilds it for Node (Vitest runs in Node).npm run dev,npm run buildandnpm run distrebuild it for Electron.
Each script rebuilds before it runs, so switching between them just works, but it takes a few seconds. If you run tools directly (for example npx vitest or npx playwright test), run npm run rebuild:node or npm run rebuild:electron first.
Useful scripts
Section titled “Useful scripts”| Script | What it does |
|---|---|
npm run dev |
Run the app from source with hot reload. |
npm run build |
Build the app into out/. |
npm run dist |
Build installers for your platform into dist/. |
npm run typecheck |
Type-check the main and renderer code. |
npm test |
Unit tests. |
npm run test:int |
Integration tests against a real world database. |
npm run test:e2e |
End-to-end tests that drive the built app. |
npm run docs:dev |
Run this docs site locally. |
npm run docs:screenshots |
Regenerate the docs screenshots. |

