How to use it
Three steps to being told what you want and nothing else.
1 Turn callouts on, then pick the ones you want.
Turn callouts on, then switch on the rows you want, such as Arrival or Limpets.
The individual rows appear once the master switch is on.
2 Or just say it.
Say "stop telling me about limpets", or "tell me about limpets again".
D47 names the row it switched off or on.
! The one that stops people.
Check the row for the callout you are missing, not just the master switch.
The row is on, and the callout is spoken the next time it applies.
Why it works this way
The things Directive 47 says without being asked, and what earns the right to interrupt.
1 NPCs announce themselves. It listens.
2 It matches on the message id, never on the words.
3 Urgent cuts in. Everything else waits its turn.
A warning arriving after Directive 47 has finished reading you a commodity list has arrived too late to be one. And a thing is said once as it happens: your shields going down is news; your shields still being down half a second later is not.
4 The model may ask what it is watching for. It may not switch one off.
One measured refusal worth knowing: Directive 47 never repeats Elite's own Material Content grade while prospecting. Across 1,633 prospects, Low and High rocks have the same distribution — and 45% of the rocks holding a material at 40% or more are graded Low. Passing that on would fly you past the best rock in the cluster.
The details
What Directive 47 says without being asked: danger, fuel, route progress, arrivals, material milestones, and an attack somebody has announced but not yet made.
All of it comes from the files Elite already writes, as they change. Nothing here waits on the language model, so a warning arrives when the thing happens rather than after something has finished thinking about it — which for an interdiction is after it is over.
Ask for it
“what are you watching for” “stop calling things out” “start calling things out”
I speak up about:
danger: on
announced-attack: on
fuel: on
route: on
hyperspace-tunnel-delay: on
arrival: on
materials: on
rival-territory: on
Route progress every 3 jumps.
Home system is Shinrarta Dezhra.
What it speaks up about
Danger
Interdiction, hyperdiction, shields down, hull damage, overheating and a full cargo hold.
Said once as it happens rather than repeatedly while it lasts — your shields going down is news; your shields still being down half a second later is not. Submitting to an interdiction was your decision and is not read back to you as an emergency.
A hyperdiction is Thargoids pulling you out of a hyperspace jump. On a plotted route the warning comes partway through the tunnel, before you drop out:
Hyperdiction. Thargoids are pulling us out of the jump.
With no route plotted, Elite writes nothing until you arrive, so the line comes then and names where you are and where you were going.
An urgent warning cuts in rather than waiting its turn. A warning that arrives after Directive 47 has finished reading you a commodity list has arrived too late to be one.
Every urgent one is preceded by an alarm, so you know what kind of trouble it is before the sentence has finished arriving. There are two, and which you hear tells you where to look:
| Sound | What it means | The answer |
|---|---|---|
| Falling three-note tumble | Somebody is hurting you — shot at, shields gone, hull opened | Fight, run, or high-wake |
| Three pulses on one note | The ship is cooking itself | The throttle, not the trigger |
Being pulled out of supercruise uses the same sound as the warning that one was coming, because it is the same situation a moment later. A hyperdiction uses it too.
The lines that are not emergencies stay quiet. A full cargo hold and the rebuy screen are worth saying and are not worth an alarm, so neither gets one.
Two alarms of the same kind seconds apart sound once. A pirate announcing an interdiction and then interdicting you is two warnings, both worth saying — but only one of them is worth a noise, because by the second one you are already looking. The words still come; the sound does not repeat.
Announced attacks
NPCs say what they are about to do before they do it. Directive 47 listens for that and tells you while there is still time to act:
Pirate lining up an interdiction. Boost or high-wake now.
Across 912 real journals, that line came a median of six seconds before the first shot and was right 88% of the time. A pirate demanding cargo gives eight seconds and is right 67%. Each situation gets its own sentence and its own sound, so you can tell an interdiction from a cargo demand from somebody who is here for you before the sentence has finished.
A hitman who has found you warns too, and shares the bounty hunter’s sound — because the answer is the same one, and cargo will not buy either of them off. That was measured the same way as the rest: the family that fires when a hunter spots you is followed by an attack 7 times out of 7, the strongest signal in the whole corpus.
Being hunted, which is not an emergency
Two other hitman families are a hunter talking about you rather than closing on you — the one that produced “the eagle is in the nest” is followed by an attack only 15% of the time. Warning you about those would be crying wolf six times in seven, so Directive 47 does not.
It does not ignore them either. Being hunted is a situation rather than an event, so you get a remark on it in your core’s own voice — no alarm, never interrupting, and once every ten minutes however much chatter arrives. It will not tell you why somebody is hunting you: the journal does not say, and inventing a reason is the one thing it must not do.
Directive 47 matches on Elite’s message ids, never on the words. That is not tidiness — it is the difference between a useful warning and an unusable one. The obvious approach, warning about anything that sounds hostile, was measured: one such message fires 2,399 times to catch 30 real attacks, and another is wrong 48 times out of 48. A hundred false alarms per real event is a warning you switch off within the hour and then do not have when it matters.
It is also what keeps it safe. In-game chat can be written by anyone in range, and matching on the text would mean matching on a string somebody else chose. The ids come from a fixed list, only NPC chatter is considered, and nothing the message says is repeated, shown, or passed to the language model — the spoken line is chosen by which id arrived and is otherwise a constant.
Commanders met before
When you target another Commander you met in an earlier game session, your core says who, how long ago, where, and the most notable thing that happened, in this order: they killed you, you killed them, they interdicted you, you interdicted them, a crime against you, a wing together, messages, a target. It speaks once per Commander per game session. A first meeting, a Commander met only in this session, and any time you are under threat are silent; the Commander is not marked as told, so a later target speaks. Nothing is said until the journal history has been read after a start. The Commander’s name goes to the voice provider that speaks for your ship.
Commander Arden Vale — you met three weeks ago in Shinrarta Dezhra; they assaulted you.
Notable kills
When you destroy a ship, your core remarks on it if the kill is a notable one:
- the first kill of the game session
- a reward bigger than any other this session
- a kill within thirty seconds of the one before
- every fifth kill
Other kills pass without a word. The line names the ship, the pilot when Elite gives one, and the reward. A combat bond names the faction instead, because Elite writes no pilot or ship for it. A kill on foot names the person, not a ship. Another player is called “A Commander”, because their name is one they chose and it is not passed to the language model. When it is not reworded in your core’s voice, it is said like this:
First kill of the session. Paul Curnow's Eagle destroyed, 59,330 credits.
Two kills inside thirty seconds. KazDav Cain's Eagle destroyed, 60,602 credits.
If the pilot sent you a message in the five minutes before the kill, the remark may refer back to it. Only NPC messages that Elite wrote are remembered, and the fixed line never quotes one. The count, the best reward and the last kill’s time start again when you load the game.
Fuel and range
Three separate warnings, each answering a different question.
How much is in the tank. Low fuel at 25%, critical at 10%, said once as the level crosses each line.
Whether your fuel reaches somewhere to refuel. On a plotted route, Directive 47 works out how many more jumps the fuel in your tank covers, and warns when the route runs longer than that with nowhere to refuel inside it:
Fuel warning. At 2.1 tonnes a jump there is fuel for 4 jumps, and the route has 9 jumps left.
Replot through a station to refuel.
That is the wording for a ship with no Fuel Scoop: nothing in it is about stars. With a scoop fitted, the nearest scoopable star on the route counts as a refuel, and the warning says how far away it is:
Fuel warning. At 2.1 tonnes a jump there is fuel for 2 jumps, and the nearest scoopable star on
the route is 3 jumps away. Refuel or replot.
It is said once per route, and again when the fuel covers only one more jump or none. A new route or a different ship is checked afresh. It needs one jump in the ship you are flying to know what a jump costs, and says nothing before then. Stations along the route are not looked up, so for a ship with no scoop it tells you the fuel will not finish the route, not where to stop.
Whether the next star strands you. With a scoop fitted, an unscoopable next star is mentioned, and it becomes urgent when the jump beyond it is further than your range:
Route warning. Hyades Sector DB-X d1-112 is class T and cannot be scooped, and the jump beyond
it is 61.2 light years against a maximum range of 52.3. Replot before you jump.
That is not about fuel at all: your tank can be full when it becomes true.
Every number in these came from your own game: the route and star classes from the route file, your jump range from your ship’s loadout, your fuel from the status file, and how much you burn per jump averaged from the jumps you have made this session. Nothing is looked up anywhere.
Fly without a Fuel Scoop and the star lines are not said. Each one is about scooping, and if you cannot scoop at all then every star on the route is one you cannot scoop. The tank warnings and the fuel-reach warning still speak, because they are about your fuel. Leaving the star lines out needs a loadout Directive 47 can see, and it remembers what every ship of yours was last carrying, so joining a session already in flight still counts. A ship it has never watched you fly hears all three.
Rebuy cover
When your balance drops below the rebuy on the ship you are flying, your core says so once, with both figures and nothing else:
Rebuy on this ship is 3.2 million credits. You have 1.1 million.
It is said on the first moment it becomes true: after buying or outfitting a ship, after spending down, or when D47 starts and you are already short. It is not said again until your balance covers the rebuy and then falls short once more, or you change ship. Nothing is said while you are crewing on another Commander’s ship or riding in a taxi. The line is never reworded, so the figures are always the ones Elite wrote.
Landing pad
When docking is granted at a Coriolis, Orbis, Ocellus or asteroid base, your core says where the pad is, as a clock hour and how far in (#574). It is on by default.
Pad ten, eight o'clock, halfway in.
The clock is seen as you fly in with the green lights on your right: six o’clock is straight below you, and the hours run round from there. “Near the entrance”, “halfway in” and “at the back” say how deep into the station the pad is. The line comes four seconds after the grant, so it follows the station’s own “Docking request granted”. It is dropped if you dock, cancel, are denied or time out before then, and a second grant replaces the first. Nothing is said at a fleet carrier, an outpost, a surface port or a settlement.
Station damage
When you dock at a station that is under attack, damaged, under repairs or abandoned, your core says so once (#1060). It is on by default.
Galileo is under repairs.
A station under construction, one in its normal state and one whose state D47 does not know are not mentioned. Nothing is said when D47 starts while you are already docked.
Route progress
Jumps remaining, what is next, and what is coming:
14 jumps remaining. Next is Wredguia WD-K d8-30, scoopable.
Ahead on the route: Praea Euq QI-T d3-3 (a neutron star).
A hazard on the very next jump is always mentioned, whether or not it was a reporting jump. Arriving unprepared at a neutron star is the thing this exists to prevent, and every-five-jumps would miss it four times out of five.
Whether a star can be scooped is worked out properly rather than from the first letter of its class. The KGBFOAM rule gets two cases wrong in opposite directions, and both matter: Herbig AeBe stars start with A and cannot be scooped, while orange giants carry a suffix and can. A class Directive 47 does not recognise is called unknown rather than unscoopable — routing you around a star that would have refuelled you is its own kind of harm.
Fly without a Fuel Scoop and the clause is dropped entirely, so the line is just 14 jumps
remaining. Next is Wredguia WD-K d8-30. Reworded is no better than said: “scoopable” promises fuel
you cannot take, and “not scoopable” would imply the rest of the route would have been. It takes a
loadout Directive 47 can see, and the one it remembers for the ship you are in answers when this
session’s has not arrived — so only a ship it has never watched you fly leaves the clause as
before.
Hyperspace tunnel delays
A little conversation during a longer-than-usual jump. It starts once you are actually in hyperspace, not when the drive begins charging — throttle up and cancel and you will hear nothing.
Arrivals
Your home system, where your carrier is, ships you have stored where you have just arrived, and stations that offer engineering.
There is no built-in list of which engineer lives where. That kind of list goes stale every game update, and inventing one is exactly the confident wrong answer Directive 47 is built not to give. Engineering is recognised from what the station itself advertises when you dock — which also means it keeps working when a new engineer is added.
Material milestones
Your first unit of a material, then a quarter, half and three-quarters full, and full. Each milestone is measured from what you already hold: it is said only when a pickup carries you across it, so a material you already hold in quantity is not announced as a first, and a pickup between three-quarters and full says nothing.
Start Directive 47 after Elite and it catches up on the session so far first, so materials you already had do not all announce themselves as firsts.
Elite never reports how much of a material you can carry — the game simply stops accepting more — so the percentages come from a table of material grades built from the community-maintained id list that Coriolis and EDEngineer use, rather than from anyone’s memory. A material too new for that table still announces your first unit; the percentages stay quiet rather than being counted against a number nobody checked.
Promotions
When you are promoted, your core makes one remark about it in its own voice. That covers the six career ladders (Combat, Trade, Exploration, Mercenary, Exobiology and CQC), both navies and your Powerplay rank. It keeps the career and the rank name as Elite gives them and adds nothing else. With personality off, or no model, the plain line is spoken:
Promoted. Trade, Elite IV.
Promoted. Empire, Serf.
Powerplay rank 8 with Li Yong-Rui.
Joining a Power is not a promotion, and nothing is said about it. Start Directive 47 partway through a session and it says nothing about promotions already in the journal.
Rival Power territory
If you fly for a Power, Directive 47 tells you when you drop into normal space somewhere another Power controls:
Yuri Grom controls this system, and you fly for Edmund Mahon. You are exposed here.
Said once as you enter the condition, then silent for as long as it lasts. And explained once
per day, full stop — across restarts and whichever core is aboard, remembered in
view-state.json. Every exposure after the first that day, whoever controls the space, is four
words rather than the lecture:
Hostile territory. Be on guard.
It began as once per Power per session, and a day of re-launching proved the fourth hearing was not information either. One name is trimmed for the ear: the journal writes A. Lavigny-Duval, and a voice reading “A.” is reading punctuation, so she is spoken as Lavigny-Duval.
It waits until you are in normal space rather than saying it as you arrive, because arriving happens in supercruise and nothing can reach you there — that is measured, not assumed: across every Power security contact in 912 journals, none of them happened in supercruise and two thirds happened in normal space.
It also stands down for anything dangerous. A remark about enemy territory arriving as somebody opens fire is worse than silence, so if you are already being shot at, interdicted, or have just been told an attack is coming, this one is dropped rather than delivered late.
Your pledge is followed as it changes rather than read once at startup, so defecting does not leave Directive 47 calling your new Power’s space hostile.
What this is not. What you actually want is a warning when a Power Security ship shows up in your contacts panel — and no third-party app can see that. There is no event for a ship appearing, no file listing your contacts, and every signal about another ship requires it to have already done something to you. The message a Power’s security sends does exist and does name the Power, but it arrives about a second before the shot, which is a caption rather than a warning. So this says the thing it actually knows — that where you are is hostile — instead of implying somebody is close.
Powerplay merits
If you fly for a Power, Directive 47 says which way the merit modifier leans the first time you enter normal space in a Powerplay system in a session. It says nothing in an unoccupied system, and nothing for a Powerplay state it has no rule for.
Reinforcing here earns reduced merits. Nobody has undermined this system this cycle.
Rivals have undermined this system this cycle. Reinforcing pays more here than in a quiet system, while that lasts.
Undermining here earns fifteen percent more merits.
The first two are for your own Power’s system, the third for a rival’s. In your own system the journal gives the undermining total for the cycle, not for the past 24 hours, so it can say whether anything undermined the system but not where on the sliding scale the system sits. Ask “what’s the merit multiplier here” and the model answers from the situation line, which carries the figures:
Merits here: reinforcing −35%, and −20% more because nobody has undermined this system this cycle; +35% more if the galaxy map marks it for reinforcement.
The galaxy map’s marked systems are not in the journal, so those bonuses always carry “if”. The rules come from Frontier’s update notes, last checked against game version 4.4.1.1 on 2026-09-28:
| Rule | Modifier | Since |
|---|---|---|
| Reinforcing your own Power’s system | −35% | 4.1.2.0 |
| Reinforcing, in addition, in a system nothing undermined in the past 24 hours | −20% | 4.1.2.103 |
| Reinforcing, in addition, in the most undermined systems | +30% | 4.1.2.103 |
| Undermining a rival Power’s system | +15% | 4.1.2.103 |
| Acquiring an unoccupied system | 0% | 4.1.2.103 |
| Undermining, in addition, in a system marked for undermining | +25% | 4.3.0.0 |
| Reinforcing, in addition, in a system marked for reinforcement | +35% | 4.3.0.0 |
| Salvage scooped in your own Power’s system, handed in at a Power contact in that system | reinforcement merits; escape pods earn none | 4.2.2.0 |
In a rival’s system this and Rival Power territory both speak. Turn this one off with the
powerplay-merits row.
Powerplay salvage
Salvage scooped in a system your own Power controls earns reinforcement merits only when you hand it in at a Power contact in that same system. Directive 47 counts the salvage you scoop there and, when you start a hyperspace jump with some of it still aboard, says so before the jump commits, while you can still cancel the countdown.
You are leaving 47 Arietis with nine Wreckage Components and one Black Box scooped here. They only earn merits handed in at a Power contact in this system.
At most three commodities are named; the rest are a count. A hand-in at a station, ejecting the
cargo, dying or arriving in another system (a carrier jump included) removes it from the count, and
the count never exceeds what your cargo manifest holds. Occupied and damaged escape pods are counted
but never warned about, because Frontier suspended their merits on 2024-11-19. Salvage scooped in an
unoccupied or rival system is not counted, and a supercruise jump says nothing. Undermining salvage
is not covered: no source names where it is handed in. The rule is in the table above, last checked
against game version 4.4.1.1 on 2026-09-28. Turn this one off with the powerplay-salvage row.
Powerplay cycle
While you are pledged, twelve hours before the Powerplay cycle ends, how many merits you have earned for your Power since it began (#603).
The Powerplay cycle ends in twelve hours. You have earned 1,029 merits for Li Yong-Rui this cycle.
With none earned it says “The Powerplay cycle ends in twelve hours, and you have earned no merits
this cycle.” The cycle turns over on the week boundary,
Thursday 07:00 UTC by default, so changing that setting moves this reminder too. The total is the
sum of the merits each PowerplayMerits event says you gained for your Power since the boundary,
including those in earlier sessions of the same cycle; joining, defecting or leaving starts it at
zero. It is said at most once per cycle, even across restarts. If d47 starts inside the last twelve
hours, it is said once it has caught up on the journal, with the hours that are left. A cycle that
ended while d47 was not running is not mentioned. The same total and the time to the boundary are in
the game state the model reads, so “how many merits have I earned this week” has an answer. Turn
this one off with the powerplay-cycle row.
BGS tick
When the BGS ticks, once per tick, soon after the tick detector reports it. Needs BGS tick time under Outside sources (#1212).
The BGS has ticked.
A tick more than fifteen minutes old is said with its age, rounded to the nearest five minutes:
“The BGS ticked forty minutes ago.” A tick more than an hour old is not said, so a restart or a long
gap stays quiet. A time within an hour after the one already said is treated as the same tick, revised.
Turn this one off with the bgs-tick row.
Friends online
When a friend comes online, once, with a five-second wait so a burst is one line. Going offline is
not said: Elite writes Offline for only some friends who leave.
Arcturus, Vega, Rigel and two others are online.
One name is “Arcturus is online.”; two are “Arcturus and Vega are online.” Three names are said at
most, and the rest are a count. A friend already reported online is said again only when the last report is more
than thirty minutes old, so the restatement Elite writes shortly after login stays quiet. Nothing is
said during the startup replay. The names are spoken by your ship’s voice provider. Turn this one off
with the friends row.
Wing changes
When you join a wing, the members already in it; when a wingmate joins, who, with a five-second wait so
a burst is one line. Leaving is not said: Elite writes WingLeave every time you quit to the main menu.
We're in a wing with Arcturus and Vega.
Arcturus joined the wing.
Three names are said at most, and the rest are a count. A WingAdd within sixty seconds after
LoadGame restores the wing after a reload and is not said. Nothing is said during the startup replay.
Turn this one off with the wing row.
GalNet headlines
When new GalNet articles arrive, the headlines, newest first and never the articles. Needs GalNet news under Outside sources.
GalNet: Faulcon DeLacy Announces Anaconda Mk II.
Two or three articles are “New on GalNet: {title}; {title}; and {title}.” More than three are a count and
the three newest: “Five new GalNet articles. The latest: {title}; {title}; and {title}.” An article counts
as new when it is new to the archive, so a restart does not repeat a headline, and articles published while
d47 was closed are said at the next start. Nothing is said for the first backfill, and articles that arrive
while this is off are not said when it is switched back on. At launch, headlines wait for the opening lines: the
greeting and the recap, when those are on. They are said right after the recap, or after the greeting when the
recap is off. Turn this one off with the galnet row.
Server status
When Elite’s servers go down or come back. Needs Server status under Outside sources, and works with Elite closed.
Elite's servers are down for maintenance.
“Elite’s servers are down for maintenance.” and “Elite’s servers are offline.” are said when the servers go
from Online to that state, or when the first answer is not Online. “Elite’s servers are back up.” is said only
when they come back from Maintenance or Offline. A failed request is not a state: it says nothing and does not
reset what d47 last knew. Turn this one off with the server-status row.
Checklist changes
Two moments from your checklist, both of which happen while you are doing something else.
A plan item the journal has changed its mind about. Selling the engineered multi-cannon un-completes the item that was tracking it, and Directive 47 says so — once, because the new verdict is written down as it is announced:
"Grade 5 Overcharged on Hardpoint 1" is no longer done. Nothing is fitted in Hardpoint 1.
A computed tick going backwards is information rather than a glitch to hide. You would otherwise find out by reading a list that had silently changed under you.
The last unit a plan needed. Netted across every live plan, because storage caps are shared and a shopping trip is a trip for everything:
That is the last Cadmium your plans needed. 12 of 12.
Switching this off silences both. It does not freeze the list — the verdicts stay up to date and the panel keeps showing them; a setting that did two things, one of them invisible, would be the wrong setting.
High grade emissions
When you arrive somewhere that could be running High Grade Emissions, which grade 5 materials would be in them:
Shinrarta Dezhra could be running high grade emissions for Core Dynamics Composites,
Proprietary Composites and Pharmaceutical Isolators.
Every row is the system’s allegiance plus a population over a million, and four of them add a state — which is the controlling faction’s, not any faction’s:
| The system | Emissions hold |
|---|---|
| Federal | Core Dynamics Composites, Proprietary Composites |
| Imperial | Imperial Shielding |
| Independent, controlling faction in Civil Unrest | Improvised Components |
| Independent, controlling faction in War or Civil War | Military Grade Alloys, Military Supercapacitors |
| Independent, controlling faction in Boom or Expansion | Proto Heat Radiators, Proto Light Alloys, Proto Radiolic Alloys |
| Independent, controlling faction in Outbreak | Pharmaceutical Isolators |
Alliance systems yield nothing, and systems under a million people are not mentioned at all. A minority Federal faction in an Independent system does not make it Federal — that reading once had Core Dynamics Composites announced in Oppi.
A system can still offer two unrelated groups, when its controlling faction is in two states at once. Civil Unrest and Expansion gives you Improvised Components and all three Proto materials.
Nothing is said about a material you are already full of, and a system whose materials are all full says nothing. So once you have finished gathering, this goes quiet on its own without your switching it off. Where D47 does not know a material’s cap it says it anyway rather than guessing you are full.
Said once per system, and never for the backlog D47 reads at startup — the only jump in that backlog you could still act on is the last one.
Nothing is said at all to a ship with no limpet controller fitted. The materials come out of an emission by limpet or not at all, so this is the same rule as the full hold at the other end of the same job. A Multi Limpet Controller counts, whichever kind it is — D47 does not work out which limpets each one carries, because going quiet on a ship that could have collected costs more than one sentence does to a ship that cannot. It takes a loadout D47 can see, and the one it remembers for the ship you are in answers when this session’s has not arrived — so only a ship it has never watched you fly leaves it telling you anyway.
And nothing is said with no limpets in the hold either, controller or no controller. A rack
with nothing in it collects exactly as much as no controller does, so the callout treats the two the
same rather than naming the emissions and adding a note about your hold. It needs a Cargo.json D47
has read, and one written for the ship rather than for the SRV under it — an unread hold is not an
empty one.
Limpet reminders
Off by default — this is for Commanders who fly limpets, and one who never does should not have to switch it off.
When you dock somewhere that sells limpets, with a big enough hold and few enough aboard:
No limpets aboard, and this station sells them. You have 256 tonnes to fill.
Limpets are bought through Advanced Maintenance, not the commodity market — which is why D47 looks for the station’s re-arm service rather than reading its market. Most stations have it; the ones that do not are on-foot settlements, small outposts, and carriers whose owner has not fitted it. Your own carrier may not be recognised, which is a known and accepted gap rather than a fault: of 136 limpet purchases measured, three were at a carrier that reported no re-arm service.
No price is quoted. Limpets are nearly always 101 credits and occasionally not, and D47 has no reading of this station’s price until after you have bought some.
Only remind me about limpets above
Cargo capacity, in tonnes. Default 64. Below it you are not running a limpet operation and the reminder is noise.
Remind me when limpets are under
A percentage of your cargo capacity. Default 5, so twelve limpets in a 256 tonne hold is low and thirteen is not.
Prospector results
What a prospector limpet found, spoken in the ring so you can keep your eyes on the rock instead of the panel. Richest material first:
Platinum, 58.3%.
Tritium, 23.5%, plus Liquid oxygen at 5.1%.
Platinum, 66.7%. Best you have found this session.
Directive 47 never repeats Elite’s own Material Content grade, and that is deliberate. Measured
across 1,633 prospects, Low and High rocks have the same distribution of best-material proportion
— medians of 19.9% and 20.3% — and 45% of the rocks holding a material at 40% or more are graded
Low. The example above, at 58.3% Platinum, is one of them. That grade is about the
engineering-material fragments a collector limpet picks up, not the commodity you are refining: two
different questions sharing a word. Passing it on would fly you past the best rock in the cluster.
“Best you have found this session” is relative, and says so. There is no fixed percentage that means “good” — Platinum’s median of 26.6% is above Water’s 90th percentile — so a single threshold would be wrong per material and silently so. What you have actually seen this session needs no table and adapts to whatever you are mining. The first rock is never announced as a best, because it is the only one.
A prospect arrives every 48 seconds at the median, which is about seventy-five lines in an hour of mining. That is why this has its own switch, separate from the one below.
With a mining target set, only the target material is read out, judged against the target’s percentage where it has one:
Platinum, 58.3%. Above your target.
Platinum, 18%. Below your target.
No platinum.
A rock someone has already mined from ends its line with “Already mined”, target or no target.
Core asteroids
Core asteroid. Alexandrite.
Its own setting, because a core is 3 in 1,633 prospects. Turning the running commentary off must not cost you the one announcement you are actually mining for.
It is spoken as a routine line rather than an urgent one — urgent speaks over the top of whatever is being said and is reserved for danger and fuel. A core is exciting; it is not a safety matter, and announcing one across a hull warning would be the priority exactly backwards.
Ring hotspots
When you map a ring with the Detailed Surface Scanner, its hotspots, most first, at most three, with the rest as a count. A ring is said once per session:
A Ring: 6 Monazite, 4 Platinum, 3 Serendibite, and 2 more.
With a mining target set, the target leads when the ring has it, and still counts toward the three. When the ring lacks it, the line says so:
A Ring: 4 Platinum. Also 6 Monazite, 3 Serendibite, and 2 more.
A Ring: no Void Opal. 6 Monazite, 4 Platinum, 3 Serendibite, and 2 more.
Planets and belts are not spoken. Hotspots of rings you have not mapped are not known to the journal; ask “find me a painite hotspot” for those.
Mining run summary
When a mining run ends on docking with at least one refined tonne, its tonnes, rate, materials and limpets. The rate runs from the run’s first mining event to its last refined tonne, so the flight back does not lower it. At most three materials are named, most first, the rest as a count; cores found are added when there were any:
Mining run: 108 tonnes in 1 hour 11 minutes, about 91 an hour. 90 Platinum, 12 Samarium, 6 Praseodymium. 33 prospectors and 19 collectors.
A run that ends in a death, or refined nothing, says nothing.
Operation run summary
When an Operation run ends: what it was, whether it was finished, how long it took, what it paid, the kills and who flew it. A run is finished when your credits rose across it. d47 waits for the merc coins the game reports after the run, and speaks without them after sixty seconds:
Mission_Fixture_Name finished in 30 minutes: 50,000 credits and 20 merc coins. 2 kills. Flown with Alpha and Bravo.
Left Mission_Fixture_Name after 14 minutes, unfinished. 6 kills.
Parts that are missing are left out: with no name the line says “the Operation”, and with no kills, no squad or no merc coins that part is not said. A run that ended with no credit figure is neither finished nor unfinished. At most three squad names are said. Nothing is said while d47 is catching up on older journals, and each run is said once.
Hold full while mining
Once per mining run, when the hold has no free space. Limpets count toward the hold. With no run open, a full hold says nothing:
Hold full. 108 tonnes refined this run.
Unsold data at risk
When you go into danger carrying unsold exploration data worth five million credits or more (#638). The value is your held DSS maps plus your analysed organic samples, the same figure as “how much unsold data do I have”. Three things count as danger: dropping out of supercruise at a war zone, dropping out at a hazardous resource extraction site, and your own hull falling below sixty percent.
You are carrying 6.2 million credits of unsold data into a fight.
Hull is failing with 6.2 million credits of unsold data aboard.
Each of the three is said at most once every thirty minutes. Nothing is said while d47 is catching up on older journals. Data from the discovery scanner and the FSS alone, with no surface map, is not counted. Switching this off silences this warning and nothing else.
Unpaid fines and bounties
When you arrive in a system where a faction you owe fines or bounties is present (#639). d47 reads every journal you have, so a debt left unpaid for weeks still counts. A debt from flying is held against the ship you committed it in, and is said only while you fly that ship. A debt from on foot follows you into any ship.
You owe Sirius Inc 150 credits in fines on this ship.
You owe Turner Research Group 1,000 credits in bounties on foot.
One line per arrival, naming the largest debt, and at most once an hour for each system. A payment at an Interstellar Factors contact or a security office clears that faction’s debt in full. Paying a faction’s bounties also clears its on-foot fines. Losing a ship clears its debts, and selling a ship clears them too; dying on foot does not clear on-foot debts. Nothing is said while d47 is catching up on older journals. Switching this off silences this warning and nothing else.
Sampling progress
Each organic specimen as it lands, with the distance you covered to get it:
Stratum Paleas, 2 of 3. 556 metres from the last one. 1 to go, 500 metres from here.
Stratum Paleas analysed. That run is complete.
The distance is what the callout is for — you can see the genus and you can count to three, but nobody can judge four hundred metres across a ridge, and getting it wrong wastes the sample. The callout says how far you moved and not whether it was far enough; asking for your sampling progress adds the colony distance. See Exobiology.
Far enough to sample
While a set holds one or two specimens, once you are the genus’ colony distance from every specimen in it, measured along the surface:
Far enough for the next Stratum Paleas sample.
Said once per specimen and armed again by the next one. It is silent while Elite reports no surface position, and for a set where any specimen was taken without one.
Abandoned samples
The genetic sampler holds one species. When you log a specimen of a different species while a set holds one or two, that set is lost, and Directive 47 says so as the new scan lands:
That abandoned your 2 Stratum Paleas samples.
Directive 47 cannot see the new scan coming, so this comes after the loss, not before it.
First footfall
The first time you step onto a body whose scan has not yet recorded a footfall there:
First footfall on Smojue EB-O d6-37 AB 1 b.
Elite writes no event for a first footfall; Directive 47 infers it from WasFootfalled on the
body’s Scan and the Disembark that follows it. A second Disembark on the same body says
nothing, since the body’s scan is marked the moment the first one lands.
First footfall on approach
On approaching a body that has biological signals and whose scan shows nobody has walked it yet:
Nobody has set foot on Smojue EB-O d6-37 AB 1 b. First footfall bonus is there.
Once per body per session. A body you have not scanned, or one without biological signals, says nothing.
Mapped body value
When you finish mapping a body with the Detailed Surface Scanner:
Praea Euq BF-A d95 5 e mapped, efficiently. About 2,258 Cr. About 3.3 million unsold.
“Efficiently” means you used no more probes than the target, which raises the value by a quarter. Both figures are estimates: Elite writes no value for a body, so it is computed from the body’s scan (see Journal for how), and “about” is said every time. The total counts only bodies you have mapped, so Universal Cartographics pays more than it, for the stars and the bodies you scanned without mapping. The line waits for the Detailed scan Elite writes straight after the mapping, since that is where the body’s class and mass come from.
Valuable bodies
When you scan a planet that would pay at least the threshold if you mapped it efficiently:
Eorl Aod YK-D c40 2: a terraformable high metal content world, about 2.4 million if mapped.
It speaks on the first scan of a body in a session, of any kind, once per body. A body you map before scanning it is left to the mapped body line. Stars and belt clusters say nothing. The figure is an estimate and includes the first-discovery and first-mapping bonuses when the scan shows nobody has them, so a body someone else has mapped is worth less and may fall under the threshold. Bodies in the journal backlog are recorded and not said.
Notable bodies
When you scan a body with a rare trait, in the FSS, the discovery scan or the Detailed Surface Scanner:
Smojue EB-O d6-37 AB 1 b: a moon of a moon, on a highly eccentric orbit.
Each trait is said once per body, at most three to a line, rarest first. A later scan can complete a trait of a body scanned earlier, such as the ringed parent of a moon or the second body of a binary, and then that body is said again with the new trait. Bodies in the journal backlog are recorded and not said. Each trait has its own switch under the callout:
- Colliding binary: two bodies sharing a barycentre whose orbits touch at their closest.
- Shepherd moon: a moon whose orbit lies inside its parent’s rings.
- Moon of a moon: a body with two planets among its parents.
- Eccentric orbit: an eccentricity of 0.8 or more.
- Fast rotator: not tidally locked, turning once in under six hours.
- Wide rings: a ring wider than ten times the body’s radius.
- Premium FSD injection materials: a landable body with at least five of the six materials for the premium FSD injection, naming the one it lacks.
- Landable with an atmosphere: starts off.
High-value biology
When you scan a landable body the FSS has already counted biological signals on:
3 b could hold up to 18.2 million in biology: Stratum, Bacterium.
A body holds at most one species per genus. Directive 47 takes the species the body’s scanned conditions admit, keeps the most valuable one in each genus, and adds up as many genera as the FSS counted signals, highest first. It speaks when that best case reaches the threshold, once per body. Once a surface scan has named the genera, the line gives a range drawn from those genera alone. It is what the biology could fetch at best, not what the body is worth: the species actually there may be the cheapest of its genus.
Geology missing from your codex
When you scan a landable body the FSS has counted geological signals on, and its likely features include some you have not logged in the codex for the region you are in:
B 3 could have water ice fumaroles or water ice geysers, not in your codex for this region.
It names up to three, in table order, and counts the rest. It says nothing until your codex history has loaded, and speaks once per body.
New codex entries
When you log a new codex entry of any kind, a star, a planet, an organic, a geological feature or an anomaly:
Discovered T Tauri Star and Q09-Type Anomaly.
Entries logged in the same moment make one line. It says nothing for an entry you had already logged, for an entry with no name, or while the journal is being read on start. It is separate from possible region firsts, so either can be turned off alone; when both apply, this line comes first. Nothing leaves your machine.
Possible region firsts
When you log a new organic codex entry that the Canonn table shipped in this build does not list for the region you are in:
Canonn has no report of Fonticulua Fluctus - Yellow in the Inner Orion Spur. It may be a first for the region.
If the table has no report of the entry in any region, it says “anywhere” and “a first in the galaxy” instead. It says nothing when the region is listed, for geology entries, for an entry you had already logged in that region, or for a repeat in the same session. It waits until your codex history has loaded. The table is only as current as the build, so the line says “may be”. Nothing leaves your machine.
Surveyed biology on arrival
When you arrive in a system and galaxy search is on:
Commanders have surveyed biology here: 3 b at 15 million, 3 c at 12 million.
Directive 47 asks Spansh which bodies in the system have reported biology, and names those whose surveyed species together reach the threshold, highest first. It says nothing when none do, when the lookup fails, or when the answer arrives after you have jumped to another system. A body named here is not said again by the high-value biology callout when you scan it, and a body that callout has already named is left out here.
The lookup sends the system’s address to spansh.co.uk on every jump while this callout is on. The Privacy and egress section of the panel lists it under galaxy search.
Earlier biology finds on mapping
When you map a body with biological signals and earlier biology finds from Canonn is on, the Science Officer names the variants other Commanders have logged on it:
Canonn has earlier finds on this body: Bacterium Aurasus - Green, Stratum Tectonicas - Lime, Osseus Fractus - Indigo and two more.
The variants with the most finds come first. Up to three are named and the rest are a count. A body with no finds says nothing, and each body is named once a session. The line is said once the answer arrives, if you are still in that system. It does nothing while earlier biology finds from Canonn is off. The setting is “Earlier biology finds on mapping”, on by default.
Directive 47 asks when a body with biology is mapped, not on arrival, so the name of a system you only pass through is not sent. One request covers the system, and a system is asked at most once a session. The Privacy and egress section of the panel lists it as Earlier biology finds.
Trading Mode
When you are docked with a route plotted and galaxy search is on:
Best cargo for Sothis: Gold to Sothis Mining Post, 8,204 Cr a tonne, 2.3 million for 280 tonnes; then Silver to Newholm Station, 5,110 Cr a tonne, 1.4 million for 280 tonnes.
Directive 47 asks Spansh for the markets in the last system on your route — not the next jump — and ranks what the market you are standing in sells against what they pay for it. It names the two commodities that earn the most, the station at the destination that pays, the profit a tonne, and the total for the hold. The tonnage is what you could actually move: the free hold, the supply here, or the demand there, whichever is least. When nothing there pays more than it costs here, it says so:
Nothing here sells at a profit in Sothis.
The free hold is your cargo capacity less the limpets aboard, and the callout stays silent below the hold it needs. It speaks once for each pair of station and destination, so plotting the same route again from the same pad says nothing, and it uses the price age, large pad, planetary and star distance filters saved on the Trade route page. Your credit balance is not read anywhere in Directive 47, so the ranking never considers what you can afford.
The lookup sends the destination system’s name to spansh.co.uk while this callout is on. The Privacy and egress section of the panel lists it under galaxy search.
Undiscovered systems
On arrival, the game auto-scans the star you jumped to:
Undiscovered system. Nobody has sold data on this star yet.
WasDiscovered is false until a Commander sells data on the star — it means nobody has sold it, not
nobody has been there. The callout fires on the arrival star’s own autoscan only: a NavBeaconDetail
scan can carry the same flag in a populated system, and a scan of any other body in the system is not
the arrival.
Picking up where you left off
One line at the start of a session — a greeting on your own clock, and a readiness:
Good evening, Commander. Ready to go.
That is the whole of it, since 2026-08-21. It used to carry how long you had been away, the engineer in the system you were sitting in, and the top three items of your checklist read out in full — “Top of your list: Grade 5 Efficient Weapon on 2F Pulse Laser on Hammer (Type-11 Prospector); then…” — which is long, and arrives while you are still putting the headset on. If you want to know about your checklist, ask; it is all still there.
It waits a few seconds after launch so the journal backlog has been folded, says its line once, and does not speak again for the life of the process. With a stock core such as COVAS aboard it is not said.
The first sentence is written by Directive 47. The second is one of ten: “Ready to go.”, “Standing by.”, “Ready when you are.”, “All systems ready.”, “Ready for orders.”, “Let’s get to work.”, “Good to have you back.”, “At your service.”, “Let’s fly.” and “Standing by for orders.” The pick varies between launches. Where a persona is on, the core keeps the picked sentence unless something real is worth naming — “Ready to reconcile the ledger” — and changes nothing else; with personality off it is the picked sentence.
Last session recap
One line after the opening line, about the last complete session: where it ended, the ship, and the most notable rank, engineer, death, rebuy or interdiction in it.
Last session you finished docked at Garay Terminal, Deciat in the Python "Directive", and earlier you were promoted: Combat rank 5.
Directive 47 writes that line from the journals of the session before the one in progress — from its
LoadGame to its last event — and never from the session you are starting. With a language model
and personality on, the core aboard always says it again in its own voice, keeping every name and
figure; that is one priced call per launch, counted in spend. With no model, or personality off, the
line is said as written. Your Backstory and the active story are not sent with it.
It is not said when there is no earlier session in the last eight journals, when that session holds
nothing beyond where it started and ended, or with a stock core aboard. Turn it off with the recap
row; the Last session recap entry under Privacy and egress goes silent with it.
Story objectives
An objective of the story you are following, said when you reach the place it waits for (list.md Phase 47). A short story is one the core tells you across a flight — a spine, a handful of objectives, each anchored to a real place by the one thing the journal can prove: you arrived in a system, docked at a station, landed on or scanned a body, or were promoted. The Stories tab is where you ask for one; this is the voice it reaches you by.
A short acknowledgement lands the moment the objective fires — “That’s it.”, “There it is.”, one of ten — so you know at once that you did the thing, rather than sitting through the wait below wondering. It is a stock line, never written by a model and never rewritten by one: a round trip is the delay it exists to arrive ahead of. The objective itself follows when it is ready.
The objective waits twenty seconds after it fires, so the line is not read over the jump it arrived on and three objectives in a minute are not three model calls. An objective that comes due while you are being interdicted or the game says you are in danger is dropped rather than said late — the story is still in the conversation, so ask and the core picks it up. The opening, said when you accept a story, does not wait: you just pressed Begin.
With a language model configured the core aboard says the objective in its own voice, keeping every fact in it and adding none; without one, or with personality off, the authored line is read as written. The core knows what you know: the story’s premise and stake ride with every turn, the turn and the ending arrive only when their objectives fire, and the objectives ahead never do — so it can foreshadow, because the lines it was given do, and it cannot spoil what it has not been told.
Ossen's Lantern. The nebula is what is left of the star this white dwarf used to be. Scoop here.
Off leaves the story in the conversation and stops it being read out — the acknowledgement with it, since both belong to this callout.
Backstory reminder
After an objective whose function is a midpoint, a turn or “all is lost”, one more plain line says the story has turned and your Backstory still describes where it began. It is said only when a Backstory is set and only if the objective itself was said, so a objective dropped in danger drops it too. No model is called and nothing writes to your Backstory.
While an objective is between firing and being said, the Stories tab shows that the core is composing, on the desktop window and in the headset alike.
Community Goal sales
After every sale of the Community Goal commodity, where that leaves you this session, net of what the cargo cost (#296). The total rather than the sale, because the sale’s own figure is on your screen at that moment and the running position is not.
That's 2.1 million up this session.
The commodity is the one the saved Community Goal search names, Palladium, and the figures come from the ledger described on the community goals page. Nothing is said while d47 is catching up on a journal it did not watch being written. Switching this off stops the sentence and nothing else: the ledger keeps counting for the page and for “how have I done today”.
Community Goal expiry
When a community goal you have joined has eight hours or less left (#640). A goal counts when you have contributed to it or joined it and not been paid, it is not complete and it has not expired. Hours are rounded down, and the line says one hour at the last.
The Hope of the Void community goal ends in 7 hours.
It is said once for each goal until d47 is restarted, and says only that the goal ends soon: the journal does not record whether your vouchers are handed in. A goal already inside the eight hours when d47 starts is said on the first tick after it has caught up. Nothing is said while d47 is catching up on a journal it did not watch being written. Switching this off silences this warning and nothing else.
Colonisation deadlines
At a colonisation claim, the beacon and primary port deadlines and, when you are in no squadron, the squadron rule (#580). Reminders follow two hours before the beacon deadline and at seven days and 48 hours before the primary port deadline. When a construction site’s depot reports, it says how many trips the remaining tonnes need in this ship. It is on by default.
You have 24 hours to deploy the beacon in Wolf 359, and four weeks to finish its primary port.
The rules and the date they were checked are on the colonisation page. Switching this off silences all of it and nothing else.
Fighter pilot
Your active hired pilot says so when the fighter launches, docks, is lost or is rebuilt (#848). It is on by default.
Fighter away. I'll stay on your wing.
The line is in the pilot’s own voice and says only what the journal states. When you launch the fighter and fly it yourself, the pilot says they have the ship instead. Nothing is said while no pilot is assigned to the fighter bay, and nothing is said on a timer while the fighter is out.
Discord mention
One line pointing at the D47 Discord, said once every 14 days. The first mention comes 14 days after the first launch with this row on.
If you have a question or an idea for me, the D47 Discord is where the other Commanders are.
It waits for a quiet moment: at least 10 minutes into the session, and docked, landed or in supercruise for 90 seconds. It is said at most once per launch, and by whichever core is aboard. “D47 Discord” in the transcript is a link. The row is “Mention the Discord every two weeks”, on by default.
Break reminder
A reminder to take a break, said once, when a session has run for the length you choose: 2, 3, 4 or 6 hours, 4 by default (#641). It is off by default.
You have been flying 4 hours, Commander. Time to take a break.
A session starts at the latest LoadGame in the journal and ends at Shutdown. Starting the game
again re-arms the reminder. Restarting d47 in the middle of a session keeps the start the journal
recorded. Nothing is said while d47 is catching up on a journal it did not watch being written. It is
separate from the welcome-back line, so either can be switched off without the other.
Carrier fuel
When your own carrier’s tritium is less than two full-range jumps at its current load, the carrier
captain says so, on docking at it and on plotting its jump
(#834). A full jump costs
5 + range × (25,000 + used + tritium) / 200,000 tonnes, where used is the carrier’s capacity less
its free space, so the threshold moves with the load.
Sacred Fire has 150 tonnes of tritium; a full jump at this load burns 88.
It is said once for each tritium reading, and again after the game is loaded. Where the carrier has jumped since the reading, the line adds how old the reading is and that the tank can only be lower. A squadron carrier, or one you do not own, is not announced. Nothing is said while d47 is catching up on a journal it did not watch being written.
Carrier upkeep
When your own carrier’s balance covers less than four weeks of upkeep, the carrier captain says so, on docking at it and on plotting its jump (#835). The balance is the recorded one less the weekly upkeep for each weekly tick since.
Sacred Fire's account covers three more weeks of upkeep at 9,700,000 a week.
Where upkeep has been taken off the recorded figure, the line adds that it is the recorded balance less the upkeep since. It is said once for each recorded balance, and again after the game is loaded. Nothing is said before d47 has a weekly figure, for a squadron carrier or one you do not own, or while d47 is catching up on a journal it did not watch being written.
Carrier payroll
The first time you dock at your own carrier after the weekly tick (Thursday 07:00 UTC), the carrier captain mentions that the week’s payroll has gone out, made out to the name Elite has on file for the captain (#1184). What the captain says about the name depends on the Captain name setting. The comparison ignores case and surrounding spaces, and the first or last word of Elite’s name counts as the same name.
Setting empty: Payroll's gone through, Commander Hale. Made out to me, Jane Doe.
Setting "Doe": Payroll's gone through, Commander Hale, made out to me, as it should be.
Setting "Reyes": Payroll's gone through. The cheque says Jane Doe, of course. My nom de plume.
Where d47 knows the carrier’s weekly upkeep, the line adds it as the carrier’s upkeep, not the captain’s pay. It is said once for each tick week, including after d47 restarts, and after the captain’s welcome. The captain also answers questions about the payroll or the Elite name in line with the table. Nothing is said for a jump request, for a squadron carrier or one you do not own, when Elite names no captain, or while d47 is catching up on a journal it did not watch being written.
Reminders
A reminder waits for a moment in the game and is said once when the journal reaches it (#642). The moments are your next docking, docking at a named station, arriving in a named system, docking at your own carrier, your hold becoming empty or full, a named material reaching its capacity, and your next session.
You asked me to remind you when you docked. Buy limpets before you leave.
The first sentence is about the moment, and the core aboard may say it in its own words. The rest is your sentence, said exactly as you gave it and never sent to a language model. Station and system names match the whole name, ignoring case. A squadron carrier is not your own carrier. The hold and material moments are the change, not the state: a reminder for a full hold set while the hold is full waits for it to empty and fill again, and none is said before d47 has read the hold. Nothing is said while d47 is catching up on a journal it did not watch being written.
Reminders are kept per Commander in journal-reminders.json in the data folder, and another
Commander’s are never said. A reminder that has been said is removed at the next game load.
Mission hand-ins and expiry
D47 speaks about the missions on your mission board at four moments (#662). Docking where one or more missions hand in says how many and what they pay together. Undocking from that station with one still unclaimed says so. An hour before a mission expires, and again ten minutes before, it names the mission.
Two missions conclude here. 2.9 million waiting.
Docking anywhere else says nothing, and neither does a mission you have already handed in. Each expiry warning is said once per mission. A mission already inside the hour when D47 starts gets no hour warning, and gets the ten-minute one only if that mark passed less than a minute ago. The warnings are fixed at an hour and ten minutes. Switching this off stops all four and leaves the mission board as it was.
On accepting a mission with an expiry, D47 asks the galaxy search how far the destination is (#666), divides by your ship’s jump range and allows five minutes a jump. Only when that is longer than the time left does it speak:
Wadjuk is about 40 jumps. That's tight for a 12-hour deadline.
A trip that fits, a destination whose position cannot be found, and Galaxy search being off all say nothing. The lookup runs off the game’s tick, so it never delays other callouts.
When a mission is redirected, D47 also says where the hand-in moved (#663):
That's Courier 4 done. Hand-in moved to Jameson Memorial in Sol. Say plot it to set the course.
Saying “plot it”, “plot the hand-in” or “set course for the hand-in” then plots that system, or copies it to the clipboard when auto-plot is off. The offer stands until another redirect replaces it or the mission leaves the board, and nothing is plotted until you say so.
Your core’s own subject
Some cores pay attention to a subject of their own, and remark on it with a figure from this session (#611). The subject comes from the core’s tagline. Quartermaster, “Efficiency in ledgers”, says what the session is earning: after a sale, a paid mission, a cashed voucher or sold exploration or organic data, once the session is at least thirty minutes old and has earned something, and at most once an hour.
Sentinel says what combat is earning: after a bounty, a combat bond or a cashed voucher, under the same thirty-minute and once-an-hour limits, from bounties, combat bonds and vouchers alone (#613). Kills stay with the kill callout.
Chart, “Correction”, says what exploration data is earning: after sold exploration or organic data, under the same limits, from exploration data alone (#614). Mender, “Preservation”, says what repairs have cost this session, after a repair once the total passes 100,000 credits, at most once an hour. Archivist, “Accuracy”, counts the firsts this session: arrival stars nobody had discovered, first footfalls, and bodies mapped before anyone else had, after the third first, at most once an hour.
4.2 million credits an hour this session, the largest share from trade. At the last count it was 3.8 million an hour.
1.2 million credits an hour in combat this session, the largest share from bounties.
900,000 credits an hour from exploration data this session.
300,000 credits on repairs this session.
4 firsts this session: 2 undiscovered stars, 1 first footfall, 1 body mapped first.
The figure is worked out from the journal; with a language model configured the core says it in its own voice, keeping every figure and adding nothing. Warden and every core you write have no subject and say nothing here. Choosing a core never switches this row on or off, and it is silent with personality off.
Notable ships
The core aboard remarks when a notable ship hails nearby (#1444): a wedding or funeral convoy, a nomad convoy, a refugee flotilla fleeing a war, a tour liner, a protester, a propagandist or a security academy training flight. It reads the ship’s own message key, so it speaks whether or not NPC messages are read aloud, once per kind per game session. The remark names the kind and nothing from the message. With personality off the authored line is said as written. Notable ships in the callout settings turns it off.
Ship modes
The core aboard remarks when you have held a ship mode long enough to be deliberate (#1445): silent running for 10 seconds, flight assist off for 30, hardpoints out with nothing hostile around, the cargo scoop left open, or the landing gear down away from a station for 60, or mass locked in danger for 10. Hardpoints and the scoop stay quiet for 10 minutes after mining, and the scoop after collecting cargo. It never speaks docked, landed, in supercruise or outside the main ship, once per mode per game session and at most one remark every five minutes. With personality off the authored line is said as written. Ship modes in the callout settings turns it off.
Settings
Speak without being asked
Off means Directive 47 only ever answers. Every warning above stops with it; everything else keeps running.
“stop calling things out” “start calling things out”
Route progress interval
In jumps. The right answer depends entirely on the trip: every 3 jumps is reassuring over 20 and
unbearable over 300. Set it to 0 to silence the progress line while keeping the hazard warnings.
Hyperspace tunnel delay
In seconds, counted from entering hyperspace.
Biology threshold
In credits, default 10,000,000. The least best case the high-value biology callout says, and the least surveyed value the surveyed biology callout says.
Valuable bodies threshold
In credits, default 500,000. The least a planet would pay if mapped efficiently before the valuable bodies callout says it when scanned.
Trading Mode hold
In tonnes, 1 to 50, default 25. Trading Mode says nothing when your cargo capacity less the limpets aboard is under this, which keeps it quiet in a ship you are not trading in.
Home system
Where you consider home, for the arrival callout. It is per Commander: each Commander on the machine has their own, and it reads the installation’s value until they set one. There is no default — no journal event reports that.
The model can ask what Directive 47 is watching for; it cannot switch a warning off. Every toggle here is changeable from the panel, by a bound key, or by saying one of the phrases above — and not by anything the model calls. Directive 47 reads in-game messages from anyone in range, and a model that could disable the interdiction warning is one that could be told to by the Commander doing the interdicting.
In Ship chatter
Who it is: your core and your crew — the voices inside your ship, as against the NPC chatter below, which is everybody outside it. Only the AI speaks unasked; your crew answer on comms.
The occasional in-character line to you, said because nothing has happened. Everything else on this page speaks because something did. Spoken to you rather than narrated, on purpose: the brief tells the core it is talking to its Commander, not describing the view, so a remark is a short aside in the cockpit and never a scene from a novel.
Three rules keep it from being noise. It waits out an interval — and that interval is a range, not a tick: each gap lands somewhere between the least and the most time rows, five to ten minutes out of the box, because the same voice arriving on a beat is the most clocklike thing this app could do. Setting the two equal pins it; 0 on the least silences it. In seconds rather than minutes because the interesting end of the range is finer than a minute. It waits for the situation to have settled for ninety seconds rather than firing on the transition, because Status.json flips several times a minute during an approach and a remark about being docked that arrives as you are lifting off is worse than silence. And it never remarks on the same situation twice running.
A fourth rule is not this feature’s own: a line from inside your ship and an exchange from outside it are never spoken back to back. That one is a rule between the two, and it is explained under NPC chatter below.
Seven situations are covered: docked, landed, supercruise, normal space, fuel scooping, in the SRV, and on foot.
A stock core makes no idle remarks. While COVAS is aboard, this line, the opening line and the word on getting into or leaving a game are not said; the Narrator speaks in their place.
The core aboard writes every remark itself and it is genuinely theirs — Chart will tell you about the sky, the Quartermaster about what the run cost. It also knows who it is flying with: your character sheet goes with every remark, and your Backstory with about one in four, so the remarks differ by who is flying and not just by wording.
Chatter is model-written or it is nothing. With no language model configured there are no In Ship chatter at all, and these rows are absent from this page — a switch governing something that cannot happen would be a switch that does nothing. The ten authored lines per situation are what the model is shown as a sample of the register, never a stand-in read out in its place: a remark the model did not write for this moment is not spoken.
The drive note has not changed in some minutes. That is what it sounds like when it is right.
NPC chatter
Who it is: anybody outside your ship — as against In Ship chatter above, which is your own AI and crew.
Made-up radio traffic from people who do not exist: two crews on the local channel about their own small business, the dock telling an invented pilot off when you are docked somewhere, and — about one exchange in four — one line said to you over the open channel. Traffic between other people sounds further off than a hail and has its own row, Overheard chatter, in the audio mixer.
You can answer them on comms. Everyone you hear is on the System comms channel until you jump or they sign off, and a hail moves the selection to the hailer. What you say on the comms push-to-talk goes to whoever the System channel selects, and they reply in the voice you heard them in, knowing what was said in their exchange. There is no time limit and no limit on replies: a stranger leaves when you end the conversation or when they have a reason to go. Push-to-talk still goes to your core, even when you start with their name. A reply that would contradict your ship or claim something the game would log — a scan, a fine, a docking decision — is replaced with “Got to go. Vance out.” A stranger who signs off, either way, leaves the System channel.
Each reply is a turn of its own on the background model, billed like any other turn. A tower controller’s traffic and passers-by talking only to each other are never answered.
An exchange you can answer appears on the In Ship page, so you can read the names; its speakers, and their replies, are shown as “Courier Vance (invented)” to keep them apart from a real Commander’s direct message. The rest of the chatter stays off that page and out of the comms record — it is heard once.
Parked on your own carrier, it knows whose deck it is standing on. Its tower controller and its captain are cast as real people rather than invented, and everyone in the scene is told how to regard you: your own crew are not surprised you are aboard, and write it as deference or an easy grumble made to you; a visiting pilot docked at somebody else’s carrier is the one who can be surprised, careful, or embarrassed to have been overheard. Ownership colours at most one exchange per visit as the thing actually being talked about — the rest may show it without a line remarking on it — and none of this fires at all until you are actually on the carrier’s deck.
Bystanders react to your kills. When you destroy a ship in normal space and the fight has been quiet for 20 seconds, two invented bystanders exchange two to four lines about it, naming how many ships you have destroyed in the system and the last one’s ship and faction. A destroyed NPC pilot is named only as destroyed and never speaks, and a player pilot is never named. It reacts only to a kill under two minutes old, no more often than the least time row allows, and it restarts the ordinary gap. It is not made docked, landed, on foot or in supercruise, and is dropped if you dock, land or enter supercruise before it is written. It has no setting of its own.
This is not the game’s own NPC traffic. Elite’s real messages — station chatter, pirates, your wing — are re-voiced under Speech → Speak incoming messages, and they are somebody else’s words. NPC chatter is Directive 47’s own fiction, on its own switch, so you can have either without the other.
Each invented speaker gets their own voice from the NPC pool for as long as you stay in the system, the same way the real traffic is cast — and keeps it through the exchange even when the model shortens Courier Vance to Vance on his next line, because the two spellings are read as one person before either is voiced. The exchange is written by the model against where you actually are; with no language model configured there is no chatter and these rows are absent, the same rule as the In Ship chatter above — there are no canned conversations, on purpose.
Each speaker is given a manner of speaking for the exchange: terse to the point of rudeness, over-explains everything, talks in questions, formal to the point of stiffness, and eight more. Two people in one exchange never share one, and the manner is not remembered afterwards. A manner is how someone talks — pace, register, verbal habits. It is never where they are from or how well they speak: no manner names a nationality, a language, a region or a fluency, and the model is told to write every line in standard English grammar, with no phonetic spelling and no dropped articles or other non-native grammar, whatever the speaker’s accent.
The gap between exchanges is a range, not a tick: each wait lands somewhere between the least and the most time rows — five to ten minutes out of the box — because overheard traffic on a fixed cadence stops sounding overheard. Setting the two equal pins it; 0 on the least silences it. The two pairs carry the same numbers on purpose, so the two kinds of chatter arrive at the same rate and what varies is the mix.
It waits out a fight. An exchange that falls due while Elite shows you in danger, or within a minute of you being attacked or making a kill, is held until the fight has been quiet for a minute, then plays.
And the two are kept apart from each other. They used to be timed independently and blind to one another — two clocks, neither able to see the other — so nothing stopped a remark from inside the ship and a four-line scene from outside it arriving nose to tail. Worse, the two were due on the same tick at the start of every session, by construction. Now there is a floor of ninety seconds between any two unprompted lines, whichever kind either of them is, and the two schedules no longer move together.
Three things about that floor are worth saying plainly. It never reaches anything urgent — danger, fuel and the rest exist to interrupt, and none of them ever waits on chatter. It is never longer than the shorter of your two “least time” rows, so it cannot overrule a setting: turn either kind down to twenty seconds and the floor is twenty, both ways round. That matters in both directions — a voice you have set to speak every twenty seconds cannot claim ninety seconds of quiet behind it, because it would be breaking that quiet itself long before it was up, and the other kind would go silent instead of being spaced out. And the one that does not go is held rather than lost — it arrives as soon as the air clears, keeps its turn, and costs nothing, because an exchange stopped this early is never written in the first place.
When both fall due at the same moment the exchange goes and the remark waits, because a remark will be along again shortly and an exchange will not.
It is not a settings row, for the same reason the beat inside an exchange is not one: it is something to get right rather than something to adjust. What you set is the rate.
The lines of one exchange are spoken with air between them — somewhere between six tenths of a second and one and seven tenths, and never the same gap twice, because two people who never once leave a pause read as a script being performed rather than as traffic overheard. It is not a settings row on purpose: the beat is something to get right rather than something to adjust. An urgent callout waiting behind an exchange cuts those pauses short, so a fuel or danger warning is never held up by a courier chatting.
Talking to Directive 47 ends the exchange. The moment you open the microphone, the chatter line being spoken is cut off mid-word and the rest of the exchange is dropped rather than kept for afterwards — you are asking, so the answer comes first, and losing half an overheard remark does not matter. It happens when you start talking rather than when the answer arrives, because transcription and the model together take several seconds and an exchange runs to its end inside them. And chatter stays shut off until the answer is done and the loop is quiet again, because the next speaker is written and voiced while the first is still talking, and would otherwise arrive a second after you cut them off. Nothing else goes with it: a message the game sent you and a callout you switched on both keep their place in the queue and are still spoken. And only you do this — an unprompted line of Directive 47’s own waits its turn like anything else.
“stop calling out npc chatter” / “start calling out npc chatter”
Switching personality off silences these entirely, which is the one place that switch reaches a callout. It is in that item’s own acceptance criteria: plain answers, no flavour, no chatter of either kind.
Set the interval to 0 if you want the switch without finding the switch.
Scene chatter
Who it is: the people of a settlement you are on foot at, the pilots of a fight you are in, or the people of a faction whose mission you took, heard on their own radio reacting to what the journal says just happened. It needs a current scenario: with none set there are no scenes.
On foot
A scene opens when you disembark on the body of the settlement you last approached, other than from a taxi, and closes when you enter supercruise, jump, reload, die or approach another settlement. Inside it, these moments are heard:
| Moment | When | What they know |
|---|---|---|
| Arrival | the scene opens | nothing: they are going about their shift |
| Found | the first attack on you in the scene | an intruder is in the settlement |
| A killing | a kill on foot, or a murder | who died and how many so far; if nobody has attacked you yet, nobody has seen you |
| Your death | you are killed on foot | they got the intruder, and who fired |
| Escape | you board a ship, an SRV or a taxi after being found or killing | the intruder got away |
In a ship
A ship scene opens when you drop into a conflict zone, a power conflict zone, a resource extraction site or pirate activity, when a pilot who is not a player interdicts you, or at the first attack on you in normal space when no scene is open. It closes when you enter supercruise, jump, reload, die, dock or disembark. Inside it, these moments are heard:
| Moment | When | What they know |
|---|---|---|
| Arrival | you drop into one of those sites | nothing: a ship has dropped in and nobody has noticed |
| Interdiction | a pilot pulls you out of supercruise | who did it, for which faction, and whether you submitted |
| Engaged | the first attack on you in the scene | they are shooting at a ship they do not know |
| A kill | a ship bounty or a combat bond | the pilot’s name and ship for a bounty, only the faction for a bond, and how many so far |
| Your death | a ship destroys yours | they got the ship, and who fired, in what |
| Escape | you enter supercruise after being attacked or killing | the ship got away |
The speakers fly for the victim’s or the interdictor’s faction. At a conflict zone, the exchange names both sides from your combat bonds and the speakers may fly for either. While a ship scene is being heard, the combat exchange after a kill is not made, so the same kill is never answered twice; with no scenario, it is made as before. Frontier’s own lines, such as a pirate’s threat, are spoken as they are and are not part of a scene.
Missions
| Moment | When | What they know |
|---|---|---|
| Taken | you accept a mission | the mission, who gave it, who it is against and where it goes |
| Done | you complete a mission | the same, from the completion |
| Lost | you fail or abandon a mission | the same, from the missions D47 keeps track of, because Elite does not say which faction it was |
The speakers are people of the faction that gave the mission. Missions taken, done or lost within a minute of the first of their kind are answered as one exchange, naming at most three and counting the rest, so the exchange comes a minute after the first mission. A lost mission D47 has no record of is not answered. The model is told to write nothing unless the missions bear on your scenario, and an exchange with no lines is not spoken, so most missions for unrelated factions cost one request and say nothing.
At a settlement, the exchange is also told about your live missions whose destination is that settlement or whose target is the faction that runs it, and that the people there do not know of them.
All scenes
At a settlement or in a ship, at most one exchange every 45 seconds. A moment that falls inside the wait replaces the one waiting, and kills in that time are counted together into one. Your death is never held back. An exchange for a scene you have already left is dropped, except your escape and your death, which are heard even after you reach supercruise.
The scenario reaches them whatever Who knows about it is set to, because in a secret scenario the people in the scene are part of it. They are given it as who they are and what is going on around them, and are told they do not know who you are or why you are there. It is sent with each exchange, and Privacy and egress says so.
The speakers are invented, cast from the NPC voices and captioned Comms. They talk to each other, never to you, and you cannot answer them. The dead never speak. Every exchange is written by the model; with no language model configured this row is absent, and with personality off, or Overheard chatter muted in the mixer, there are no scenes.
“stop calling out scene chatter” / “start calling out scene chatter”
Narrator
Who it is: a voice of its own, neither your core nor anybody outside the ship. It tells your story in the third person and the past tense, the way a novel’s narrator writes, from your character sheet, your Backstory and your current scenario, connected to where you are now. It names you as the character sheet does, with the pronouns it gives; with none given, it uses your name and no pronouns. It invents no events, writes no dialogue, asks nothing and gives no advice or instruction.
It speaks only during a lull. The situation has to have held for ninety seconds, there is no fight going on, it is never in supercruise, and it keeps the same ninety seconds from any other chatter. Each gap lands somewhere between the least and the most time rows, thirty to sixty minutes out of the box, and the first narration of a session waits one full gap. A stock story that is running and switched on counts as a story to tell. With no such story and the character sheet, the backstory and the scenario all empty, it says nothing, unless a stock core is aboard (below).
With a stock core aboard, the Narrator takes the ambient slot. While the core actually aboard is a stock core such as COVAS, the core makes no idle remarks, and the Narrator speaks in those moments instead: its gap is the same thirty to sixty minutes, and it narrates the moment from the game state whether or not a story is running. The other rules above still hold. With no character sheet it names you as the journal does. Turning the Narrator or personality off, or setting its least time to 0, leaves those moments silent; so does having no language model, since a stock core’s idle lines are not replaced by written ones. With a Guardian core or one of your own aboard, nothing changes.
Every narration is written by the model, and sends the whole backstory. At the defaults that is one or two calls an hour on the background model. With no character sheet it also sends your Commander name from the journal. When the model is unreachable or returns nothing, the Narrator says nothing: there are no stock narrations. With no language model configured these rows are absent; with personality off, it is silent.
It is captioned Narrator and spoken in its own voice from the provider that speaks for your ship, chosen under Speech → Narrator voice. It is never the ship’s voice.
A narration is not answered. The Narrator is not on the Story comms channel, and push-to-talk goes to your core, so nothing you say reaches it. Saying “Narrator” starts no conversation with it.
“stop calling out the narrator” / “start calling out the narrator”
The tool surface, for contributors
get_callouts
Read-only. Takes no arguments.
{"type":"object","properties":{},"required":[],"additionalProperties":false}
Two sources feed the warnings, deliberately. The journal reports transitions — shields went
down, hull was hit — and Status.json reports conditions — shields are still down. A
warning built on events alone goes quiet the moment the game stops repeating itself; one built on
conditions alone cannot tell a new emergency from an ongoing one. Conditions announce on the edge
into the condition, because Status.json is rewritten several times a second and announcing on
the level would be a warning per tick.
The material grade table is derived, not written. tools/gen-material-grades.py generates
MaterialGrades.g.cs from EDCD/FDevIDs material.csv. The
generator is not part of the build and the app never runs it or reaches the network for it; its
output is committed and regenerated when Frontier adds or reclassifies a material. This is not
academic: the first draft of the tests asserted Antimony was grade 5, from memory. The derived
table said grade 4, and it was right — raw materials come in categories of four graded 1–4, so no
raw material is grade 5 at all. A hand-written table would have shipped that error, and it would
have surfaced as a milestone firing at the wrong count with nothing reporting a problem.
The grade-to-capacity rule — 300/250/200/150/100 for grades 1–5 — lives beside the generated table rather than in it: five numbers that do not change when Frontier adds a material, so regenerating cannot disturb them.
The tick loop is synchronous and must not block, so a callout does not speak. It returns an
Announcement, the engine queues it, and the app drains that queue onto the thread pool.
Announcements are spoken one at a time in the order queued — two synthesised concurrently would
arrive in whichever order the network returned them, and “shields are down” is not
interchangeable with “route complete”. An urgent one silences the queue before speaking, on the
Alert channel above Speech in the one audio arbiter.
Condition-based warnings carry a cooldown keyed by what they are about, coarse enough that a repeat is suppressed and specific enough that a different warning is not. A callout that throws is logged and skipped and the rest still run: one broken callout must not take the danger warnings down with it.
An announcement may also name an alert cue — a short sound played immediately ahead of it, on
the same channel, so the queue orders the two. Cue names are bound to the AlertCue members the
same way loop-state cues are bound to LoopState: the file is named for the member and the library
asserts the shipped set matches the enum, so a member added without a clip fails at startup rather
than going wrong as silence. That matters more here than it does for the loop states, because a
warning that did not fire and a warning whose cue would not load sound identical.
The measurements behind both Phase 15 warnings — every id group’s follow-through rate and lead time, the groups measured and deliberately not shipped, and what the journal does and does not report about Powerplay — are in docs/spikes/journal-corpus-warnings.md.