Skip to content

Installation

Quadstronaut edited this page Jul 28, 2026 · 1 revision

Installation

Caution

For LEARNING PURPOSES ONLY. Running this against the live Elite Dangerous service violates its Terms of Service. See Home for the full warning.


Prerequisites

Requirement Notes
Windows 10/11 The keypress sender (pydirectinput-rgx) is Windows-only; window-focus + capture target EliteDangerous64.exe.
Python 3.11+ Use the Python Launcher (py -3.11), or python if 3.11+ is your default.
Elite Dangerous: Odyssey Installed and launchable; you start it and get in the cockpit yourself.
Git To clone the repo.

Note

pydirectinput-rgx, not upstream pydirectinput. These are distinct PyPI packages. ed-autojump doctor detects the wrong one and fails loudly with the fix. If the first keypress raises a TypeError, run pip uninstall pydirectinput && pip install pydirectinput-rgx.


Clone

git clone https://github.com/Quadstronaut/ED-AFK.git
cd ED-AFK

Install the workspace (recommended: let launch.ps1 bootstrap it)

ED-AFK is a six-package editable workspace. The simplest path is to run the launcher once — with no .venv present it creates the virtualenv and editable-installs the workspace automatically (offline-safe: it vendors the build backend from a donor interpreter rather than hitting PyPI):

.\launch.ps1

This provisions projects\ed-autojump\.venv and installs ed-autojump[dev,hotkey,vision] editable, pulling in ed-core and ed-vision (the leaf) as its dependencies. Every workspace package resolves to your live tree, so edits take effect without reinstalling.

Manual install (if you prefer to drive pip yourself)

Install editable leaf-first so the sibling path dependencies resolve locally:

cd ED-AFK\projects\ed-autojump

py -3.11 -m venv .venv
.\.venv\Scripts\Activate.ps1

# Core engine + dev + panic-hotkey + nav-compass vision
pip install -e .[dev,hotkey,vision]

The extras cascade down through ed-core to ed-vision:

Extra Adds When
dev pytest, pytest-asyncio Always (for the test suite)
hotkey keyboard (Win32 hooks) The global Ctrl+Alt+P panic hotkey
vision onnxruntime, opencv, dxcam Nav-compass alignment (the light path)
vision-heavy ultralytics (PyTorch) Opt-in heavy backend only, if the light path misbehaves
cv opencv, dxcam, pytesseract Older/auxiliary CV path (not the default)

Verify the install

ed-autojump doctor        # pre-flight environment + config + binds check
ed-autojump --help
pytest                    # the offline unit + replay suite

doctor runs these checks (FAIL blocks a run):

Check FAIL means
journal_dir Journal directory not found or not readable
sessions_dir Session output dir not writable
binds_preset Bundled ED-AFK.4.2.binds missing or a critical action unbound
status_files Status.json / NavRoute.json absent (the game hasn't run yet)
pydirectinput Wrong package installed (upstream instead of -rgx)
panic_hotkey keyboard not installed (Ctrl+Alt+P won't work; Ctrl+C still does)

One-time setup

1. Install the keyboard binds preset (required)

The bot sends keyboard scancodes. Elite ships with pitch on the mouse and honk on a mouse button — a keyboard sender can't drive those. The bundled ED-AFK.4.2.binds preset maps every required action to a key.

ed-autojump install-binds        # copies ED-AFK.4.2.binds into ED's bindings dir

Then in-game: Options → Controls → preset dropdown → select "ED-AFK".

ed-autojump restore-binds        # restore your original preset from the CLI

The bot also restores your original preset automatically on exit ([binds].restore_on_exit = true by default). ed-autojump pull-binds diffs (or, with --apply, adopts) the live in-game preset back into the repo.

Important

Enable the HUD mouse widget in "point" mode (it's set in the ED-AFK preset). The widget-ring fine alignment pass rides on it. With [vision].widget_ring_on_miss = "required", a missing widget halts the launch rather than flying compass-only; "degrade" (the softer option) flies compass-only for that run.

2. Calibrate the nav compass (required for steering)

Without a calibrated compass the bot jumps blind — it will not orient before firing the FSD, and (fail-closed) will refuse to throttle forward.

  1. Start Elite, get into the cockpit with the nav-compass disc visible (the small disc left of the radar).
  2. Run:
ed-autojump calibrate-compass

It captures the screen after a 3-second delay, locates the compass ring, prints a [vision] block, and saves an annotated compass_calibration.png so you can eyeball the detected ring + box.

  1. Paste the block into config.toml and confirm enabled = true:
[vision]
enabled = true
backend = "cyan"          # cyan-dot reader; the OpenCV fallback needs no model weights
capture_backend = "gdi"
region = [x, y, w, h]     # values printed by calibrate-compass
compass_radius = r

3. (Optional) Calibrate the CV-debug overlay

If you want the CV-debug boxes (labeled rectangles drawn where each CV/OCR read looks), align the screen→overlay transform once:

ed-autojump calibrate-overlay

Enable the boxes with the launcher's VISION toggle (persists ED_AUTOJUMP_OVERLAY_CV_DEBUG=1 to projects/ed-autojump/.env) or cv_debug = true in config.local.toml. In-game status text (procedure / step / event) is separate and turns on with [overlay].enabled. Both require EDMCOverlay.


License

  • Repository root: MIT — see LICENSE.
  • ed-autojump distribution: AGPL-3.0-or-later — see projects/ed-autojump/LICENSE.

The ed-autojump distribution bundles the nav-compass detection model (projects/ed-vision/src/ed_vision/model/compass.onnx and compass.pt), whose Ultralytics weights are AGPL-3.0. A build that ships those weights carries AGPL obligations. To avoid them:

  • Use the OpenCV fallback backend — no model weights, no AGPL obligation.
  • Or remove the model files and supply your own.
  • Or accept AGPL-3.0 and redistribute with source.

Full attribution chain in THIRD_PARTY_NOTICES.md.