Impulse is sub-light movement within and between nearby sectors. Impulse speeds range from 0 through 99, displayed as warp-equivalent fractions from 0.00 through 0.99.

Commands and course

Use IMPULSE to request a sublight speed and, optionally, a new heading. Speed and course change over subsequent movement updates rather than instantly. The command page covers syntax, heading forms, version-specific handling of an omitted heading, and when an impulse order can be issued. See Rotation and headings for how a ship turns.

Distance per movement update

GE stores galactic position as floating-point sector coordinates. One sector is 1.0 coordinate unit wide, while scans and reports express that width as 10,000 displayed distance units.

For each movement update, the game first calculates the following straight-line coordinate distance:

coordinate distance = internal speed / 65,000
displayed distance  = internal speed × 10,000 / 65,000
                    = internal speed × 2 / 13

An impulse command value is multiplied by 10 internally. Thus impulse 65 is internal speed 650, while warp 1 is internal speed 1,000. For impulse speed P, the displayed distance traveled per movement update is therefore:

displayed distance = P × 20 / 13

The heading divides that distance into X and Y components:

X change = (internal speed / 65,000) × sin(heading)
Y change = (internal speed / 65,000) × -cos(heading)

Heading 0 moves toward decreasing Y, heading 90 toward increasing X, heading 180 toward increasing Y, and heading 270 toward decreasing X. At a diagonal heading, the X and Y components are each smaller, but their combined straight-line distance is unchanged.

Commanded speed Internal speed Displayed distance per movement update
Impulse 25 250 approximately 38.46
Impulse 50 500 approximately 76.92
Impulse 65 650 exactly 100
Impulse 99 990 approximately 152.31
Warp 1, for comparison 1,000 approximately 153.85

At a cardinal heading and steady impulse 65, crossing an entire 10,000-unit sector takes 100 movement updates. Acceleration, turning, gravity, collisions, and the starting position within a sector all change the practical travel time.

The real-time movement callback spreads ship slots over three sub-passes to avoid updating every ship at once. A particular ship normally receives one movement update for every three callbacks. The formulas above describe distance per update of that ship, not distance per global callback.

Because coordinates remain floating point, fractional movement is retained between updates even though many reports round values for display.

Cloaked movement

A moving cloaked ship can produce an ion-displacement indication on nearby scanners. Classic GE performs a random detection check when an IMPULSE command is accepted, using the requested speed. Repeating the command can force repeated checks even if the ship's movement has not otherwise changed.

ge-next 0.2.2 moved the check into movement processing, so a notification can appear during impulse travel rather than only when a command is entered. This also prevents repeated impulse orders from flooding another player's display. The notification follows ge-next's current scanner-range, jamming, and nebula rules. See Cloaking for the broader detection behavior.

Systems available at impulse

At impulse or dead stop, a capable ship can use standard phasers, torpedoes, shields, cloaking, decoys, mines, jammers, and zippers. Some operations, including orbit, maintenance, and planetary trade, also require normal space or a complete stop.

Flux

Classic GE and ge-next use the same 65,000-unit active neutron flux pile, but they account for propulsion differently.

Classic GE

Classic impulse movement consumes no propulsion energy. Exactly warp 1 is also free because the ongoing movement charge is applied only when internal speed is greater than 1,000. At warp speeds above 1, classic deducts a flat 10 units per movement update regardless of speed. Acceleration while already in the warp range costs another 120 units per acceleration update.

Classic adds one unit of background recharge on each ship-state update. It checks periodically for an active pile below 5,000 units and loads a flux pod if one is available. A ship traveling above warp 1 requests a stop when movement leaves the pile below 3,000 units.

Several classic systems subtract energy directly rather than checking the requested cost first. Because the stored energy is floating point but reports convert it to an unsigned integer, a negative value can be displayed as a number near 65,535. Internally the value is still negative, so low-energy comparisons continue to recognize that the pile is depleted. See Classic bug: Flux subtraction underflow.

ge-next

While a ship is holding speed or accelerating toward its requested speed, ge-next charges one unit per movement update at impulse. At exact warp N, it charges N + 10 units per movement update: warp 1 costs 11, warp 5 costs 15, and warp 10 costs 20. Acceleration toward or within warp speed costs 120 units per acceleration update in addition to the movement cost. A ship that is actively decelerating does not pay the ongoing propulsion charge during those deceleration updates.

ge-next adds two units of background recharge on each ship-state update. Under the normal scheduling ratio, two impulse movement updates consume the same two units restored by one state update. Impulse is therefore sustainable on average when no shields, weapons, cloak, or other systems are draining the pile, while warp travel produces a continuing net loss.

Before charging propulsion, ge-next checks whether enough energy is available. If necessary it loads a pod on demand; if no pod remains, the requested target speed becomes zero and the ship decelerates at twice its normal acceleration rate instead of allowing the pile to run negative. It does not resume the former target speed automatically after energy becomes available. This also means warp 1 is no longer a fuel-free cruising speed.

See also