Modern Python/PySide6 clone of the Neverwinter Nights Aurora Toolset
Find a file
Giacomo 'Mr. Wolf' Furlan 9321ba40d8
Some checks failed
CI / check (push) Failing after 42s
fix(ci): resolve format, lint, and type errors from EPIC-030
- ruff format: reformat 47 files that drifted from style
- ruff lint: fix B007/B905/RUF005 in merchant_properties, N802 in store_setup_wizard, E501 in main_window; noqa N806 on pre-existing in-function constants
- mypy: fix WaypointGizmo not in _Renderable union (use _get_gizmo()), LoadedModule.res → resource_manager, list[Command] type for sub_cmds, pre-declare dlg: QDialog before if/elif, use res.list() not list_resources(), noqa arg-type for GFF value int cast, remove stale type: ignore comments
2026-07-13 08:10:33 +02:00
.forgejo/workflows ci: drop sudo from apt-get (Forgejo runner runs as root) 2026-07-01 16:52:35 +02:00
bioware-docs Added new epics / stories and added original NWToolset manual 2026-07-03 15:37:19 +02:00
docs docs: mark EPIC-019..024 and EPIC-031 complete 2026-07-12 09:39:43 +02:00
src/pyaurora fix(ci): resolve format, lint, and type errors from EPIC-030 2026-07-13 08:10:33 +02:00
tests fix(ci): resolve format, lint, and type errors from EPIC-030 2026-07-13 08:10:33 +02:00
.gitignore feat(scaffold): init project with toolchain, src layout, and package tree 2026-07-01 11:05:40 +02:00
LICENSE License 2026-07-01 10:50:41 +02:00
Makefile feat(scaffold): init project with toolchain, src layout, and package tree 2026-07-01 11:05:40 +02:00
Pipfile feat(STORY-103): Sound Wizard 5-step QWizard for UTS blueprints 2026-07-11 21:48:28 +02:00
pyproject.toml feat(ui): add main window skeleton with menus, toolbar, docks, and QSettings persistence 2026-07-01 15:26:43 +02:00
README.md feat(resources): add NwnInstallResolver with platform-aware path detection 2026-07-01 11:13:03 +02:00
uv.lock ci: add Forgejo Actions workflow for format, lint, typecheck, and test 2026-07-01 16:33:12 +02:00

pyaurora-toolset

Modern Python/PySide6 clone of the Neverwinter Nights Aurora Toolset.

Quickstart

uv sync
uv run pyaurora

On first launch the toolset auto-detects your NWN:EE installation. If detection fails you will be prompted to browse to the installation root manually.

Environment variables

Variable Purpose Required
NWNEE_HOME Path to the NWN:EE installation root (the directory containing chitin.key). Overrides auto-detection. No

Auto-detection search order (first valid path wins):

  1. NWNEE_HOME env var
  2. Steam — platform default paths (Linux, Windows, macOS)
  3. GOG — platform default paths (Windows, macOS)

If no installation is found automatically, set NWNEE_HOME explicitly:

export NWNEE_HOME="/path/to/Neverwinter Nights"
uv run pyaurora

Development

uv sync --group dev
make check        # format check + lint + typecheck + tests
make fmt          # auto-format and fix lint
make test         # tests only
make typecheck    # mypy only

Integration tests require a real NWN:EE installation and are skipped automatically when NWNEE_HOME is not set. To run them:

NWNEE_HOME="/path/to/Neverwinter Nights" uv run pytest -m integration