Skip to content
Quadstronaut edited this page Jul 28, 2026 · 1 revision

Usage

Caution

For LEARNING PURPOSES ONLY — automating the live Elite Dangerous service violates its Terms of Service. See Home.


Before you start

  1. Elite Dangerous is running and you are in the cockpit, in a ship.
  2. A hyperspace route is plotted in the Galaxy Map. The bot flies your route — with none plotted it sits idle and the ship never moves (this is expected, and logged with a loud warning). Alternatively pass --route-plot to let it plot via Spansh when NavRoute is empty.
  3. The ED-AFK controls preset is active in-game and the HUD mouse widget is on (see Installation).
  4. The nav compass is calibrated and [vision].enabled = true (see Installation) — otherwise the bot fails closed and won't throttle forward.

Note

The bot does not launch the game or click menus for you — you start ED and get in the cockpit; it does the flying.


Quickstart: launch.ps1 (recommended)

launch.ps1 at the repo root is a game-like, arrow-key launcher. It bootstraps the venv if missing, shows a menu, focuses the Elite window with a countdown, and starts the bot so its keypresses land in the game.

.\launch.ps1

The main menu

Row What it does
Jump The everyday action — runs the full jump loop with all live wiring.
Scenes Drive exactly one named procedure once (full live wiring), then exit — a one-shot for testing a single scene.
Settings The knobs (below).
Quit Exit.

Every row is live — the menu lists only what actually runs. (Explore, Combat and Trade were removed in July 2026: the first never worked in live testing, the other two were empty scaffolds.)

Arrow keys move, Enter selects, Q quits. Picking Jump focuses Elite, counts down 5→1, and starts the bot. Keep Elite in front — if you click another window, the next keypress lands there. Ctrl+C in the terminal stops the run.

Settings

Setting Effect
Monitor-Only Log only — the bot reports what it would do and sends no keys. OFF by default (the bot actually flies). Inverts to --no-engage-keys.
Record session Save a JSONL log of the run (ON by default). Recording also captures a CV frame per read.
Log systems visited Append every visited system to ~/Documents (ON by default).
Duration 1h / 6h / 12h / Infinite. "Infinite" is a ~1-year stand-in — ED won't last that long; a real unbounded loop comes later.
Calibrate compass Runs calibrate-compass inline (steering vision).
CV debug overlay (VISION) Toggle the labeled CV-debug boxes. Persists ED_AUTOJUMP_OVERLAY_CV_DEBUG to projects/ed-autojump/.env.

launch.ps1 flags (seed the menu's starting state)

Flag Effect
-DurationHours N Seed Duration to the nearest preset (default 6).
-Infinite Start on the Infinite duration preset.
-Monitor Start with Monitor-Only ON (log only, no keys).
-NoRecord Start with Record OFF.
-NoVisitedLog Start with the visited-systems log OFF.
-Yes Skip the menu and go straight to Jump from the seeded flags.
-NoFocus Do not focus the Elite window (debugging only).
-PrintCmd Resolve the flags, print the exact CLI command, and exit (no focus, no run).
-Help Print the plain-English guide.

Pass-through to the CLI (skips the menu + focus):

.\launch.ps1 doctor
.\launch.ps1 calibrate-compass
.\launch.ps1 install-binds

The scenes it flies

Each scene is an editable *.toml procedure. During a Jump run the dispatcher picks and preempts between them automatically; the Scenes menu (or run --scene <name>) drives one in isolation.

Scene What it does
startup Fresh load parked at a star (normal space): CV distance-gate, then pitch-off / SC-entry / SC-assist as needed, then lock + orient + jump.
sc_resume Restarted already in supercruise: distance-gate → fast-resume or get-around → jump.
arrival Every live FSDJump: throttle 0 → scoop-if-low → honk → SC-assist the row-0 arrival star → hand off to the next scene.
traversal The steady A→B hop: orbit-settle → lock next hop → orient (compass + widget) → charge-aware jump.
smack_recovery Star-smack drop inside an exclusion zone: pitch the star off, re-charge SC, ride the escape-vector marker back out, jump.
dock Station terminus: SC-assist to the station → close to <7.5 km → request docking → Docked → station-services macro.
dock_resume A new route plotted while docked: auto-launch → throttle out → wait mass-lock clear → jump.
route_complete_park Route-final system: throttle 0 → top-off → SC-assist the star → confirm orbiting → stop.
honk The one parallel track: hold PrimaryFire in analysis mode until FSSDiscoveryScan, then release.
connection_recovery Server-drop CONNECTION ERROR modal: press OK → main menu → re-enter in Solo → re-plot the saved route.

Direct CLI usage

For scripted runs, invoke ed-autojump after activating the venv.

cd projects\ed-autojump
.\.venv\Scripts\Activate.ps1

Dry run — parse + report, send no keys (the safe default)

--no-engage-keys (the default) uses a NullSender that logs every key action without sending it. Good for verifying journal parsing and procedure logic.

ed-autojump run --no-engage-keys --duration 300

Full run — actually fly

ed-autojump run --engage-keys --record --duration 21600

Drive a single scene once

ed-autojump run --engage-keys --scene smack_recovery

Useful run flags

Flag Default Effect
--engage-keys / --no-engage-keys off Send real DirectInput keys, or use NullSender.
--record / --no-record on Write a session JSONL (+ CV frame dumps).
--duration N 0 Seconds to run (0 = set up and exit — a dry check).
--scene NAME Run exactly one procedure, then exit.
--route-plot off Auto-plot via Spansh when NavRoute is empty.
--destination "Name" config Override the auto-plot destination.
--visited-log / --no-visited-log on Append each arrival to ~/Documents/ed-afk-systems-visited.log.
--console-status / --no-console-status on Mirror live execution info to stdout.
--eddn / --no-eddn config Publish to EDDN on FSS scans.

The overlay

With [overlay].enabled, EDMCOverlay shows in-game status text — the current procedure, step, and journal event. Turn on the optional CV-debug boxes via the launcher VISION toggle (or cv_debug = true in config.local.toml): every CV/OCR read flashes a labeled rectangle where it looks (green hit / red miss). On the first keyed run with boxes on, a one-shot self-test flashes a RAW and a TRANSFORMED rect — if only RAW shows, run calibrate-overlay. Live diagnostic overlays also exist standalone: ed-autojump cv-debug and ed-autojump navpanel-overlay.


Panic / emergency stop

  • Ctrl+Alt+P (requires the hotkey extra) — trips the panic switch from anywhere: releases held keys, throttles to zero, restores the binds preset, exits.
  • Ctrl+C in the terminal — always works; same cleanup path.
  • ed-autojump panic — release any stuck held key after a hard kill. ed-autojump cleanup — kill a leftover bot child from a crashed prior session (PID-file targeted).

The [safety].panic_hotkey config key overrides the default ctrl+alt+p.


Session recordings

With --record (on by default) the bot writes ~/ed-afk-sessions/session_<timestamp>.jsonl — one line per event (journal row, keypress, procedure outcome) — plus a _frames/ directory of the CV frame captured for each vision read, so any failed read is replayable offline against its reader.