Skip to content

DotNet.Ships.Class.JumpRange

github-actions[bot] edited this page Sep 20, 2026 · 11 revisions

EliteDangerousAlmanac / Ships / JumpRange

Class: JumpRange

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/JumpRange.cs:47

The frame shift drive's jump-range and fuel calculations, which are the data-free core of the ship-build arithmetic.

Remarks

These are pure functions. They take the drive's constants and the ship's mass, and answer in light-years and tonnes.

The model is the community-standard one that EDSY and coriolis use, itself derived from Frontier's description of how mass affects hyperspace range. The algorithm is ported as fact rather than as code; see ATTRIBUTIONS.md for credit and licence terms.

Methods

FuelPerJump()

static FuelPerJump(distance, mass, fuel, drive): double

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/JumpRange.cs:139

The fuel a single jump of a given distance costs, in tonnes.

Parameters

distance

double

The jump distance, in light-years. A distance beyond the single-jump range costs more than the tank holds, so the result is capped at what the drive can draw.

mass

double

The ship's total mass excluding fuel, in tonnes.

fuel

double

The fuel in the tank, which sets the mass moved and caps the burn.

drive

FrameShiftDriveParams

The drive constants.

Returns

double

The fuel used, in tonnes.

Remarks

The cost scales as the distance over the maximum range, raised to the drive's power constant, of the tank's per-jump fuel. It round-trips at the maximum jump, and with no booster fitted it is the exact inverse of a single jump at every distance. With a booster the flat bonus is treated proportionally, as the reference implementation does, so an interior distance is a close approximation rather than the exact inverse.

Exceptions

ArgumentNullException

drive is null.

ArgumentOutOfRangeException

A quantity is negative or not finite, or a drive constant is not above zero.

MassFactor()

static MassFactor(mass, fuel, optMass): double

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/JumpRange.cs:75

The frame shift drive's mass factor at one loaded mass.

Parameters

mass

double

The ship's mass excluding the fuel being modelled, in tonnes. It must be finite and zero or more.

fuel

double

The fuel aboard for this calculation, in tonnes. The full amount contributes to the loaded mass, even when one jump burns less.

optMass

double

The drive's post-engineering optimised mass, in tonnes.

Returns

double

The dimensionless factor a single jump uses: one at the drive's optimised mass, below one above it, and above one below it.

Remarks

A frame shift drive does not use the three-point mass curve that a thruster and a shield generator do. Its mass contribution to jump range is this direct inverse ratio. A Guardian booster's range is added after the base jump equation, so it is not part of this factor.

Exceptions

ArgumentOutOfRangeException

An input is negative or not finite, the optimised mass is not above zero, or the loaded mass is zero.

SingleJump()

static SingleJump(mass, fuel, drive): double

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/JumpRange.cs:111

The range of a single jump, in light-years.

Parameters

mass

double

The ship's total mass excluding the fuel being modelled, in tonnes: hull, modules and cargo.

fuel

double

The fuel in the tank for this jump, in tonnes. Only the drive's maximum is burned, and the full amount still adds to the mass being moved.

drive

FrameShiftDriveParams

The drive constants.

Returns

double

The jump distance in light-years, the drive booster's bonus included. It is zero when the drive cannot jump.

Remarks

A lighter ship and a larger optimised mass jump farther, and carrying more fuel than one jump needs only weighs the ship down.

Exceptions

ArgumentNullException

drive is null.

ArgumentOutOfRangeException

A quantity is negative or not finite, or a drive constant is not above zero.

Total()

static Total(mass, fuel, drive): TotalRangeDetails

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/JumpRange.cs:172

The total multi-jump range and jump count on one tank.

Parameters

mass

double

The ship's total mass excluding fuel, in tonnes.

fuel

double

The fuel available to spend, in tonnes.

drive

FrameShiftDriveParams

The drive constants.

Returns

TotalRangeDetails

The summed range in light-years and the number of jumps evaluated. No fuel, or a drive that draws none, answers no range and no jumps; a final partial fuel load still counts as one jump.

Remarks

Each jump burns up to the drive's maximum, and the sum runs until the tank is empty. The mass stays fixed while the decreasing fuel is included in each jump, so the ship becomes lighter as it goes.

Exceptions

ArgumentNullException

drive is null.

ArgumentOutOfRangeException

A quantity is negative or not finite, a drive constant is not above zero, or the tank would need more than one hundred thousand jumps.

.NET

Guides
Astronomy
Classes (16)
Records (29)
Enumerations (6)
Commodities
Classes (2)
Records (1)
Enumerations (1)
Equipment
Classes (8)
Records (19)
Enumerations (8)
GalaxyMap
Classes (1)
Records (1)
Localization
Classes (2)
Enumerations (1)
Materials
Classes (5)
Records (2)
Enumerations (4)
Ships
Classes (42)
Records (115)
Interfaces (1)
Enumerations (35)

Clone this wiki locally