Jump to content

Classic bug database

From Galactic Empire wiki

The Classic bug database indexes defects and implementation traps in the original Galactic Empire source. It is a reference for players investigating classic behavior and developers maintaining or porting the game. Each published record has a stable ID and its own page. See Classic bug record format for how records are documented.

Published records

ID Record Area
GE-BUG-001 Classic bug: Cargo weight overflow Numeric/cargo
GE-BUG-002 Classic bug: Cross-user planet cache corruption Multiplayer/memory
GE-BUG-003 Classic bug: Axis-aligned bearing errors Navigation/geometry
GE-BUG-004 Classic bug: Planetary ion cannon off-by-one Planet combat
GE-BUG-005 Classic bug: Channel-zero NPC targeting NPC/multiplayer
GE-BUG-006 Classic bug: NPC class slot crowding NPC/configuration
GE-BUG-007 Classic bug: Cash and counter wraparound Numeric/economy
GE-BUG-008 Classic bug: Flux subtraction underflow Numeric/energy
GE-BUG-009 Classic bug: Galactic perimeter edge errors Navigation
GE-BUG-010 Classic bug: Wormhole projectile cleanup Combat/navigation
GE-BUG-011 Classic bug: Skipped planetary updates Planets/scheduler
GE-BUG-012 Classic bug: Planet record-limit failure Database/planets
GE-BUG-013 Classic bug: Stale NPC database records NPC/database
GE-BUG-014 Classic bug: Team state inconsistency Teams/database
GE-BUG-015 Classic bug: Reused deleted team identifiers Teams/planets
GE-BUG-016 Classic bug: Stationary Cyber-Base movement NPC/navigation
GE-BUG-017 Classic bug: Damaged Cybertron target-flee ordering NPC/combat
GE-BUG-018 Classic bug: NPC speed exceeds class limits NPC/navigation
GE-BUG-019 Classic bug: Planet-owner PRICE display Economy/display
GE-BUG-020 Classic bug: Stale scantab and lock state Sensors/multiplayer
GE-BUG-021 Classic bug: Torpedo stalls at distance one Combat
GE-BUG-022 Classic bug: Ship-selection output overflow Memory/UI
GE-BUG-023 Classic bug: Phaser spread bias Combat/numeric
GE-BUG-024 Classic bug: Men do not consume food Planets/economy
GE-BUG-025 Classic bug: Phaser durability uses cargo capacity Combat/balance
GE-BUG-026 Classic bug: Damaged warp overrides requested speed Navigation
GE-BUG-027 Classic bug: Fixed-width display column overflow User interface/configuration
GE-BUG-028 Classic bug: Invalid WARP heading reports helm damage Navigation/user interface
GE-BUG-029 Classic bug: Planet spy attack result inversion Planet combat/spies
GE-BUG-030 Classic bug: Empty-planet troop conquest Planet combat
GE-BUG-031 Classic bug: Extended BUY token executes PRICE Commands/economy
GE-BUG-032 Classic bug: Planet name limit off by one Planets/user interface
GE-BUG-033 Classic bug: Revolt troop losses are reversed Planets/user interface
GE-BUG-034 Classic bug: Disabled production repeats maximum-stock notices Planets/user interface
GE-BUG-035 Classic bug: Attacking troop surrender overwrite Planet combat
GE-BUG-036 Classic bug: SYS GOTO desynchronizes warp state Navigation/administration
GE-BUG-037 Classic bug: Planet troop anti-fighter probability Planet combat/numeric
GE-BUG-038 Classic bug: Planet trade-password terminator overrun Planets/memory
GE-BUG-039 Classic bug: Unterminated team-creation fields Teams/memory
GE-BUG-040 Classic bug: Planetary troop fire requires defending fighters Planet combat
GE-BUG-041 Classic bug: HELP index omits gameplay commands Documentation/user interface
GE-BUG-042 Classic bug: Messages leak ANSI color and intensity Documentation/user interface
GE-BUG-043 Classic bug: Optional menu text file is never closed Resource management/user interface
GE-BUG-044 Classic bug: Maintenance omits cloak repair Ships/maintenance
GE-BUG-045 Classic bug: MAXPLSE is off by one Configuration/sector generation
GE-BUG-046 Classic bug: Reports list nonexistent phasers and shields Ships/user interface/configuration
GE-BUG-047 Classic bug: REP SYS omits damaged systems Ships/combat/user interface
GE-BUG-048 Classic bug: SHIELD DOWN bypasses shield repair Ships/combat
GE-BUG-049 Classic bug: Replacement systems retain old charge Ships/economy
GE-BUG-050 Classic bug: Planet conquest bypasses ownership limit Planets/configuration
GE-BUG-051 Classic bug: Negative missile charge Combat/numeric
GE-BUG-052 Classic bug: NPC zipper uses another ship's scanner range NPC/combat
GE-BUG-053 Classic bug: Self-destruct abort omits count-10 all-clear Combat/notifications
GE-BUG-054 Classic bug: Rejected mail leaks into output Planets/mail/user interface
GE-BUG-055 Classic bug: Filtered broadcast suppresses later recipients Multiplayer/messages
GE-BUG-056 Classic bug: Team maintenance password bypass Teams/planets
GE-BUG-057 Classic bug: Droid phasers fire straight ahead NPC/combat
GE-BUG-058 Classic bug: CYBGOLD zero crashes Cybertron creation NPC/configuration
GE-BUG-059 Classic bug: TEAM KICK mail classification Teams/mail

Porting and modernization cautions

These are intentional features, design limitations, or integration assumptions in classic GE rather than additional numbered bugs. A port should decide explicitly whether to preserve or change them.

Exposed team diagnostics

The undocumented TEAM DUMPITOUT command prints the team table, including joining passwords and founder secrets, to any player who invokes it. This is a serious information-disclosure risk even though the command does what its diagnostic implementation asks it to do. A modern port should remove it from ordinary player access or restrict it to administrators, as ge-next did with SYS TEAMDUMP. See Team command and Sys command.

Frontend data access

Classic DATA is a documented frontend interface, not merely an accidental debug command. Its published, hardcoded access word does not authenticate a client, and its responses include raw combat state and precise scan information that ordinary commands may conceal. Retaining frontend support need not mean retaining those disclosures: define which information a frontend is allowed to receive and enforce the same gameplay checks as other commands. See Data command and GECP.

NPC behavior tied to class names

Classic selects several Droid behavior routines by matching configured ship-class names. Renaming one of those classes in the ship configuration can silently remove its special behavior even when its other settings are unchanged. This is a configuration constraint rather than a broken default installation; a port can use a separate behavior identifier instead. See Droids and Ship class configuration.

Flux-pod loading conventions

Classic checks for automatic pod loading periodically and only below a fixed active-flux threshold, not whenever an action needs more energy. A ship can therefore fail to fire, cloak, or maintain warp despite carrying spare pods. Some of these outcomes are consequences of the original loading design, distinct from the arithmetic fault catalogued as Classic bug: Flux subtraction underflow. See Flux and Flux command.

Registration and database assumptions

Classic stores registration and trial information in concealed records inside its Btrieve files. A port, roster tool, or database converter must distinguish those records from player and planet records; it should also decide how to handle the original board-bound registration mechanism rather than assuming every record is gameplay data. See Classic registration and security system and Database files.

Shared host output state

MajorBBS's PRF output buffer is shared working state, not a separate buffer for each connected player. A port or emulator that changes when messages are formatted, cleared, or sent can alter who sees a message even when GE's calls appear unchanged. See MajorBBS integration and Classic bug: Filtered broadcast suppresses later recipients for a separate GE-side defect involving multi-recipient delivery.

See also