Extreme Reactors Turbine Planner

Values read from the Extreme Reactors 1.21.1-2.4.28 jar · default config

Pick coils from the item list, set the steam flow, and watch the turbine build. Every number comes from the mod's own TurbineLogic and TurbineData code, not from creative-mode testing.

0 RPM0 RF/t

Casing size

Rotor fills

Turbine

Induction coils

Coil materials
Click a block to add a layer of it

The tuner only changes the count of the last coil row and keeps the rest as they are. It stays at or below the tier's gauge max RPM.

Steady state

    Bill of materials

    What the code actually says

    Mixed coils are averaged, not stacked

    Efficiency and bonus are averaged across every coil block, but drag is summed. A single insanite block in a ring of iron adds only its share to the average.

    eff   = Σefficiency × 0.33 / n
    bonus = max(1, Σbonus / n)
    drag  = rpm × 0.1 × ΣextractionRate
    TurbineData.update · TurbineData$CoilStats.accept

    Bonus is an exponent

    Power is drag^bonus × eff. With bonus above 1, bigger turbines gain more than linearly, so a high-tier coil can put out more RF than the steam carries in.

    rf/t = drag^bonus × eff × rpmFactor
    TurbineLogic.update

    900 and 1800 RPM are both 100%

    The RPM factor is a cosine that peaks every ~898 RPM. Below 500 RPM it's capped at 50%. Running at 900 needs about twice the coils of 1800, and power is nearly the same.

    f = 0.25·cos(rpm / 142.9425) + 0.75
    if rpm < 500: f = min(0.5, f)
    TurbineLogic.update

    Max RPM is only a gauge

    Rotor energy is only clamped at zero. The simulation never limits speed to the tier's 1,000 / 2,000 RPM "max", so steady RPM follows a closed form:

    rpm = (steamRF − mass·0.01)
        / (0.1·Σextraction + 0.00025·blades)
    TurbineData.setRotorEnergy · MultiblockTurbine.getRotorSpeed

    Short on blades? You lose more than the excess

    Each blade handles 15 (Basic) or 25 (Reinforced) mB/t. Steam beyond that still hits the rotor, but only at blades / needed efficiency.

    needed = floor(flow / perBlade)
    extraRF × (1 − (needed − blades) / needed)
    TurbineLogic.update

    Friction ignores speed

    Every blade and shaft block adds mass (8 Basic, 10 Reinforced). Mass costs a flat 0.01 RF/t per unit whatever the RPM, and it also sets how long the rotor takes to spin up.

    friction = (blades + shaft) × mass × 0.01
    spin-up τ = blades × mass / dragCoef  (ticks)
    TurbineData.update · TurbineVariant