EPTrainingScale = 70
EPAcademyScale  = 400

Ship crews can gain experience by learning, training, practicing. Therefore, set your ship's mission to "Training".

A ship which is training can't do anything else:

  • It will have its warp factor reset to zero
  • The primary enemy will be cleared
  • The ship's shields in combat will be zero
  • The ship can not initiate a chunnel
  • The ship can not travel through a wormhole using WRT (note that if WrmVoluntaryTravel is off, ships might be pulled into the wormhole anyway)

Training costs supplies. The ship must be orbiting a friendly planet which provides the supplies. The mission parameter is the number of supplies to consume; you can convert up to 10000 supplies per turn into experience. Supplies aboard the ship are not touched (they can therefore be used for supply-repair or alchemy).

Supplies are converted into experience as follows:

Experience_added = Trunc(Rate * Points / (Sqrt(Hull_Crew) + 1))
    ...where
       Points = Supplies                    if Supplies ≤ 25
       Points = 25 + Sqrt(8*(Supplies-25))  otherwise

       Rate = Trunc(EPTrainingScale * Academy_bonus / 100)

       Academy_bonus = 100                  for normal ships
       Academy_bonus = EPAcademyScale       for Academy ships

Simplified, this yields the following rules:

  • Up to 25 supplies, we have a linear progression; above that, the ratio drops. To get the equivalent experience for training two turns for 25 supplies each, you'd have to spend about 100 supplies. To double that, you'd have to spend 700 supplies.
  • Small crews can be trained faster than big ones.

The formula uses Hull_Crew, not Ship_crew. The experience you receive is independant from the amount of crew currently on the ship, it only depends on the nominal crew strength for a ship of its type. However, because adding new crew to a ship will reduce its experience, training a fully-crewed ship makes more sense than training one with just an emergency crew.

Here is a small table for the "Points" formula:

Supplies"Points"Ratio
10101.00
25 (linear up to here)251.00
50390.78
100490.49
500860.17
10001130.11
50002240.04
10000 (maximum)3070.03

Note that the formula was changed during the PHost 4.0 line. In PHost up to version 4.0g, the formula was:

Experience_added = EPTrainingScale * Points / 100

where Points is the same term as above. In PHost versions up to 4.0e, EPTrainingScale was hardwired to 100.