<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://manicpop.org/gewiki/index.php?action=history&amp;feed=atom&amp;title=Data_command</id>
	<title>Data command - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://manicpop.org/gewiki/index.php?action=history&amp;feed=atom&amp;title=Data_command"/>
	<link rel="alternate" type="text/html" href="https://manicpop.org/gewiki/index.php?title=Data_command&amp;action=history"/>
	<updated>2026-10-20T13:47:48Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manicpop.org/gewiki/index.php?title=Data_command&amp;diff=2140&amp;oldid=prev</id>
		<title>CodexBot: Restore original FRONTEND.TXT placement after interrupted edit</title>
		<link rel="alternate" type="text/html" href="https://manicpop.org/gewiki/index.php?title=Data_command&amp;diff=2140&amp;oldid=prev"/>
		<updated>2026-10-18T04:35:31Z</updated>

		<summary type="html">&lt;p&gt;Restore original FRONTEND.TXT placement after interrupted edit&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The &amp;#039;&amp;#039;&amp;#039;DATA&amp;#039;&amp;#039;&amp;#039; command has two substantially different implementations. In classic &amp;#039;&amp;#039;Galactic Empire&amp;#039;&amp;#039;, it is a documented interface for terminal programs, used by frontends such as [[GECP]], but it also exposes a considerable amount of raw internal state and relies on a hardcoded access word. In ge-next, it is a configurable, session-enabled frontend protocol whose output is designed to follow the same information restrictions as ordinary play.&lt;br /&gt;
&lt;br /&gt;
== Classic implementation ==&lt;br /&gt;
&lt;br /&gt;
The classic command is not listed in normal in-game help. [[GETERM.DOC]] documents &amp;lt;code&amp;gt;DATA SCAN&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DATA REPORT&amp;lt;/code&amp;gt; for terminal-program authors, and [[GEINST.DOC]] also describes them as commands intended for graphical or other alternative displays. Classic 3.2e additionally implements &amp;lt;code&amp;gt;DATA SECTOR&amp;lt;/code&amp;gt;, which is not covered by &amp;lt;code&amp;gt;GETERM.DOC&amp;lt;/code&amp;gt;. Its syntax is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DATA qazwsx REPORT&lt;br /&gt;
DATA qazwsx SCAN&lt;br /&gt;
DATA qazwsx SECTOR&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The middle word is hardcoded in the game. &amp;lt;code&amp;gt;GETERM.DOC&amp;lt;/code&amp;gt; calls it the terminal-program password, intended to keep everyday users from using these commands. Because that same word is published in the documentation and source, it is not meaningful authentication. A client must repeat it with every DATA request; there is no session-level enable state.&lt;br /&gt;
&lt;br /&gt;
=== REPORT ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DATA qazwsx REPORT&amp;lt;/code&amp;gt; emits user and ship structures as records named &amp;lt;code&amp;gt;UD1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UD2&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;SD1&amp;lt;/code&amp;gt; through &amp;lt;code&amp;gt;SD7&amp;lt;/code&amp;gt;. Some fields duplicate information available through ordinary reports, including the user ID, score, cash, population, ship name, inventory, position, energy, installed equipment, and registered kills.&lt;br /&gt;
&lt;br /&gt;
Other fields expose implementation details that are not normally available to the player:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Exposed value&lt;br /&gt;
! Why it is normally hidden&lt;br /&gt;
|-&lt;br /&gt;
| Numeric ship-class index&lt;br /&gt;
| Normal reports identify the class by name rather than exposing its table index.&lt;br /&gt;
|-&lt;br /&gt;
| Exact numeric hull damage&lt;br /&gt;
| &amp;lt;code&amp;gt;REPORT SYSTEMS&amp;lt;/code&amp;gt; describes damage in words instead of displaying the internal damage value.&lt;br /&gt;
|-&lt;br /&gt;
| Raw speed value&lt;br /&gt;
| The normal navigation report converts internal speed units into the displayed impulse or warp value.&lt;br /&gt;
|-&lt;br /&gt;
| Raw phaser state&lt;br /&gt;
| The command exposes the internal phaser charge or damage counter rather than only the player-facing operative/inoperative state.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lastfired&amp;lt;/code&amp;gt;&lt;br /&gt;
| This is the internal user-channel attribution used when deciding who receives credit for a destruction. It is not a player-visible ship statistic.&lt;br /&gt;
|-&lt;br /&gt;
| Raw shield state and charge&lt;br /&gt;
| Ordinary reports present the shield state and, while shields are raised, a percentage. DATA exposes the underlying state value and charge.&lt;br /&gt;
|-&lt;br /&gt;
| Raw cloak state&lt;br /&gt;
| This reveals cloak transition and damage-state values rather than only the visible cloak status.&lt;br /&gt;
|-&lt;br /&gt;
| Tactical and helm damage counters&lt;br /&gt;
| Normal reports say that these systems are damaged. They do not reveal the exact internal repair magnitude.&lt;br /&gt;
|-&lt;br /&gt;
| Training counter&lt;br /&gt;
| This is an internal state used by the training sequence, not gameplay information reported to the player.&lt;br /&gt;
|-&lt;br /&gt;
| Raw location code&lt;br /&gt;
| The &amp;lt;code&amp;gt;where&amp;lt;/code&amp;gt; field encodes whether the ship is in space, at Zygor, or orbiting a numbered planet. Normal output describes the location instead.&lt;br /&gt;
|-&lt;br /&gt;
| Incoming weapon slots&lt;br /&gt;
| Every incoming torpedo and missile slot includes its raw source channel and remaining distance. Classic has no equivalent player-facing ordnance report.&lt;br /&gt;
|-&lt;br /&gt;
| Jammer state, hostile state, and combat-exit timer&lt;br /&gt;
| These are internal flags or countdowns. Their exact values are not shown during normal play.&lt;br /&gt;
|-&lt;br /&gt;
| Maintenance, hyper-phaser, and fire-control counters&lt;br /&gt;
| These expose internal repair or cooldown state. Classic does not even list damaged fire control in &amp;lt;code&amp;gt;REPORT SYSTEMS&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| Self-destruct and ship-status values&lt;br /&gt;
| The player can see a self-destruct countdown as it runs, but cannot ordinarily query its raw counter or the ship record&amp;#039;s internal status code.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The result is more than a machine-readable version of the visible reports. It is effectively a partial dump of the user and ship records, including values that can reveal combat state and implementation details to a player or automated client.&lt;br /&gt;
&lt;br /&gt;
=== SCAN ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DATA qazwsx SCAN&amp;lt;/code&amp;gt; updates the scanning table and emits the player&amp;#039;s scan range, the player&amp;#039;s own position, and one row for every visible ship contact. A contact row includes:&lt;br /&gt;
&lt;br /&gt;
* its scan-table letter;&lt;br /&gt;
* exact galactic [[Sector|sector]] coordinates;&lt;br /&gt;
* exact local coordinates within the sector;&lt;br /&gt;
* distance, [[Bearing|bearing]], relative heading, and speed;&lt;br /&gt;
* its numeric class index and class name.&lt;br /&gt;
&lt;br /&gt;
A normal range scan plots contacts and gives useful navigational information, but it does not reveal every contact&amp;#039;s exact sector and local coordinates. Identifying a ship&amp;#039;s class normally requires a ship scan, which can notify the target. Classic DATA SCAN therefore provides precise and sometimes otherwise unavailable information without that notification.&lt;br /&gt;
&lt;br /&gt;
When the player&amp;#039;s jammer field is active, classic DATA SCAN suppresses the contact rows and prints &amp;lt;code&amp;gt;** Jammed **&amp;lt;/code&amp;gt;. It does use the normal scan-table construction, so it does not simply reveal every cloaked or out-of-range ship. However, it bypasses the command-level damaged-tactical-system check used by the ordinary [[Scan command|&amp;lt;code&amp;gt;SCAN&amp;lt;/code&amp;gt;]] command, allowing the data scan to be requested when the player&amp;#039;s tactical scanners are inoperative.&lt;br /&gt;
&lt;br /&gt;
=== SECTOR ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DATA qazwsx SECTOR&amp;lt;/code&amp;gt; loads the current sector and emits its exact coordinates followed by every planetary object, including each object&amp;#039;s number, exact local coordinates, and raw object type.&lt;br /&gt;
&lt;br /&gt;
Unlike the ordinary sector scan, this path does not apply the tactical-system or jamming checks. A player can therefore use it to recover precise sector layout and object-type information while jammed or while tactical scanners are damaged. This is one of the clearest cases where the classic DATA interface leaks information that normal gameplay intentionally withholds.&lt;br /&gt;
&lt;br /&gt;
=== Protocol limitations ===&lt;br /&gt;
&lt;br /&gt;
The classic frontend interface has several limitations by modern protocol standards:&lt;br /&gt;
&lt;br /&gt;
* There is no configurable frontend identifier or pairing handshake.&lt;br /&gt;
* Access relies on a word embedded in the source code.&lt;br /&gt;
* REPORT records resemble delimited data, while SCAN and SECTOR use different, more human-oriented layouts.&lt;br /&gt;
* There are no explicit end-of-section records.&lt;br /&gt;
* User-entered text is not escaped, so delimiters in names can make parsing ambiguous.&lt;br /&gt;
* Many fields are raw structure values rather than player-visible concepts; even the fields described in &amp;lt;code&amp;gt;GETERM.DOC&amp;lt;/code&amp;gt; depend on classic&amp;#039;s internal representation.&lt;br /&gt;
&lt;br /&gt;
== ge-next implementation ==&lt;br /&gt;
&lt;br /&gt;
ge-next replaces the classic DATA interface with a frontend protocol that avoids exposing most raw internal state. The command must first be made available through the &amp;lt;code&amp;gt;FRONTEND&amp;lt;/code&amp;gt; setting in &amp;lt;code&amp;gt;MPOGEMSG.MSG&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! FRONTEND value&lt;br /&gt;
! Behavior&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;OFF&amp;lt;/code&amp;gt;&lt;br /&gt;
| DATA behaves as an invalid command.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ALL&amp;lt;/code&amp;gt;&lt;br /&gt;
| DATA sections are available immediately, although message metadata remains disabled until separately requested.&lt;br /&gt;
|-&lt;br /&gt;
| Any other string&lt;br /&gt;
| The session must send &amp;lt;code&amp;gt;DATA ON string&amp;lt;/code&amp;gt;, with an exact case-sensitive match, before using the other DATA commands.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A successful pairing returns an &amp;lt;code&amp;gt;ON:&amp;lt;/code&amp;gt; record containing the frontend identifier, project name, version, and architecture. This is an application-level pairing mechanism, not strong authentication, but it allows each game installation to be associated with an intended frontend instead of relying on a universal source-visible password.&lt;br /&gt;
&lt;br /&gt;
=== Sections ===&lt;br /&gt;
&lt;br /&gt;
The ge-next interface divides information into independently requested sections:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command&lt;br /&gt;
! General contents&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA USER&amp;lt;/code&amp;gt;&lt;br /&gt;
| Player identity, finances, score, population, and related user information.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA SHIP&amp;lt;/code&amp;gt;&lt;br /&gt;
| Ship identity, class, registered kills, communications frequency, and ship number.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA CAP&amp;lt;/code&amp;gt;&lt;br /&gt;
| Current ship capabilities.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA INV&amp;lt;/code&amp;gt;&lt;br /&gt;
| Inventory, cargo weight, and cargo capacity.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA UPG&amp;lt;/code&amp;gt;&lt;br /&gt;
| Installed upgrades and transponder state.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA NAV&amp;lt;/code&amp;gt;&lt;br /&gt;
| Navigation information corresponding to &amp;lt;code&amp;gt;REPORT NAVIGATION&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA ORD&amp;lt;/code&amp;gt;&lt;br /&gt;
| Incoming ordnance information corresponding to &amp;lt;code&amp;gt;REPORT ORDNANCE&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA SYS&amp;lt;/code&amp;gt;&lt;br /&gt;
| System condition corresponding to &amp;lt;code&amp;gt;REPORT SYSTEMS&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA MSG&amp;lt;/code&amp;gt;&lt;br /&gt;
| Message-filter settings.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA SCAN&amp;lt;/code&amp;gt;&lt;br /&gt;
| Parseable range-scan information.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA SHIPSCAN target&amp;lt;/code&amp;gt;&lt;br /&gt;
| Parseable ship-scan information, subject to the normal ship-scan rules and notification policy.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA SECTOR&amp;lt;/code&amp;gt;&lt;br /&gt;
| Parseable sector-scan information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Each data record ends in &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;, and a completed section ends with &amp;lt;code&amp;gt;STOP:section*&amp;lt;/code&amp;gt;. Text fields percent-encode percent signs, commas, asterisks, carriage returns, and line feeds so that user-entered names cannot corrupt the record structure. The [https://github.com/manicpop/ge-next/blob/main/mpogemp/FRONTEND.TXT FRONTEND.TXT] file, included with ge-next, is the authoritative field-by-field protocol reference.&lt;br /&gt;
&lt;br /&gt;
=== Information visibility ===&lt;br /&gt;
&lt;br /&gt;
The ge-next routines were written to return the information represented by the corresponding player-facing commands rather than exposing raw structures. Important examples include:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;DATA SYS&amp;lt;/code&amp;gt; returns descriptive system states and follows the Enhanced Damage Control rules for whether a repair time is visible. It does not expose every raw damage counter.&lt;br /&gt;
* &amp;lt;code&amp;gt;DATA SCAN&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DATA SECTOR&amp;lt;/code&amp;gt; apply the relevant range, cloak, nebula, jamming, and damaged-scanner behavior.&lt;br /&gt;
* &amp;lt;code&amp;gt;DATA SHIPSCAN&amp;lt;/code&amp;gt; uses the normal ship-scan behavior. The target receives the same scan notification it would receive from &amp;lt;code&amp;gt;SCAN SHIP&amp;lt;/code&amp;gt;, unless the normal locked-target exception applies.&lt;br /&gt;
* &amp;lt;code&amp;gt;DATA ORD&amp;lt;/code&amp;gt; resolves weapon sources into player-facing descriptions instead of exposing reusable MajorBBS channel numbers as identities.&lt;br /&gt;
* Message metadata is separately enabled with &amp;lt;code&amp;gt;DATA METADATA ON&amp;lt;/code&amp;gt;; enabling DATA alone does not turn it on.&lt;br /&gt;
&lt;br /&gt;
There are a small number of deliberate exceptions where a frontend needs information that the terminal interface does not print directly:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;DATA SHIP&amp;lt;/code&amp;gt; includes the persistent [[Ship number|ship number]] so a frontend can retain per-ship settings.&lt;br /&gt;
* Mine contacts include exact distance and bearing so a frontend can plot them on a map. The terminal scan plots mines graphically but does not list those two numbers.&lt;br /&gt;
&lt;br /&gt;
These are explicit protocol decisions rather than the broad, incidental disclosure of internal fields found in the classic command.&lt;br /&gt;
&lt;br /&gt;
== ge-arena ==&lt;br /&gt;
&lt;br /&gt;
ge-arena uses the same access, framing, escaping, scan restrictions, and metadata system. It retains applicable ge-next sections and adds arena-specific records such as match state and player standings. Fields that have different meanings in an arena mode are documented separately in the ge-arena section of &amp;lt;code&amp;gt;FRONTEND.TXT&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Summary of differences ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Area&lt;br /&gt;
! Classic GE&lt;br /&gt;
! ge-next&lt;br /&gt;
|-&lt;br /&gt;
| Access&lt;br /&gt;
| Hardcoded word repeated with every request&lt;br /&gt;
| Configurable per-installation setting and per-session pairing&lt;br /&gt;
|-&lt;br /&gt;
| Purpose&lt;br /&gt;
| Documented terminal-program interface used by frontends, including GECP; exposes raw state&lt;br /&gt;
| Documented frontend protocol&lt;br /&gt;
|-&lt;br /&gt;
| Information policy&lt;br /&gt;
| Exposes numerous hidden counters, channel numbers, and structure fields&lt;br /&gt;
| Generally mirrors information available through normal player commands&lt;br /&gt;
|-&lt;br /&gt;
| Scan restrictions&lt;br /&gt;
| Some DATA paths bypass damaged-scanner, notification, or jamming behavior&lt;br /&gt;
| Reuses normal visibility and notification rules&lt;br /&gt;
|-&lt;br /&gt;
| Framing&lt;br /&gt;
| Inconsistent layouts with no common terminator&lt;br /&gt;
| Named records and &amp;lt;code&amp;gt;STOP:&amp;lt;/code&amp;gt; terminators&lt;br /&gt;
|-&lt;br /&gt;
| User text&lt;br /&gt;
| Not escaped&lt;br /&gt;
| Percent-encoded where required&lt;br /&gt;
|-&lt;br /&gt;
| Message tagging&lt;br /&gt;
| None&lt;br /&gt;
| Optional, separately enabled metadata records&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[GETERM.DOC]]&lt;br /&gt;
* [[GEINST.DOC]]&lt;br /&gt;
* [[GECP]]&lt;br /&gt;
* [[Set command]]&lt;br /&gt;
* [[Scan command]]&lt;br /&gt;
&lt;br /&gt;
{{GE navigation}}&lt;br /&gt;
[[Category:Commands]]&lt;br /&gt;
[[Category:ge-next]]&lt;/div&gt;</summary>
		<author><name>CodexBot</name></author>
	</entry>
</feed>