Thrusters explained in one simple table (Rating and Mass)

I've got a lot of data points (did it 1t at a time) so can try some curve fitting, alternatively could send you the data if you want.?




Mostly that (the nerf) partly the fact that the clipper has pretty pants lateral thrusters so while it can pivot well it doesn't change direction. I certainly find i crash less in my python. Still 2 seems silly rating for clipper should be at least a 4 if not a 6.

Clipper also drifts like crazy.
 
I've got a lot of data points (did it 1t at a time) so can try some curve fitting, alternatively could send you the data if you want.?

I don't suppose your data is for the class 2? If so I'd love to have a copy; I gathered data in 1T increments for the class 3 but didn't get to the class 2 before they shut down the beta.
 
I don't suppose your data is for the class 2? If so I'd love to have a copy; I gathered data in 1T increments for the class 3 but didn't get to the class 2 before they shut down the beta.

Sadly not, i only got the class 3 done also. That said i need to pay flic a visit soon to upgrade my ships so will grab a sidey to confirm its the same.
 
It would be great if someone could work out the formula for speed given the min/optimal/max ratio and weight values that are now showing up in the outfitting screen.
 
It would be great if someone could work out the formula for speed given the min/optimal/max ratio and weight values that are now showing up in the outfitting screen.
That would be fantastic. I was never really thrilled with the formula I came up because it relied on arbitrary and weird special values to fit the curve, which I think can't possibly be how FD actually designed it. It yielded a good enough match to measured values for regular thrusters, but I'm definitely hoping someone will figure out how to use the newly exposed min/opt/max multiplier values to model the speed modifier of all thrusters, both regular and enhanced.
 
I've been thinking about the "real" formula and it occurred to me that perhaps we've been overthinking things.

What if the multipliers just do what they say on the tin?

Hypothesis:
  • The minimum multiplier is the multiplier to base speed you get when you are at maximum mass.
  • The optimum multiplier is the multiplier to base speed you get when you are at optimum mass.
  • The maximum multiplier is the multiplier to base speed you get when you are at minimum mass.
  • There exists a function f(x) such that f(mass[size=-2]min[/size]) = multiplier[size=-2]max[/size], f(mass[size=-2]opt[/size]) = multiplier[size=-2]opt[/size] and f(mass[size=-2]max[/size]) = multiplier[size=-2]min[/size].

After playing about with the outfitting screen I think that indeed f(x) is just a standard quadratic y = ax2 + bx + c which we can solve using standard methods by plugging in the three values (mass[size=-2]min[/size], multiplier[size=-2]max[/size]), (mass[size=-2]opt[/size], multiplier[size=-2]opt[/size]) and (mass[size=-2]max[/size], multiplier[size=-2]min[/size]).

For the performance enhanced thrusters things are a bit more complicated. I haven't been able to come up with a formula that didn't include a bit of a fudge. It looks like the curve is exponential y = a + be-cx with the parameters found by plugging in (mass[size=-2]min[/size], multiplier[size=-2]max[/size] * 1.1678), (mass[size=-2]opt[/size], multiplier[size=-2]opt[/size] * 1.0839) and (mass[size=-2]max[/size], multiplier[size=-2]min[/size]). Note the magic numbers which scale the curve.

My Courier with 3A Performance Enhanced Thrusters, dirty drive tuned with mass values 68.89, 88.58, 196.84 (all -0.158%) and multipliers 0.93, 1.19, 1.42 (all +3.45%) showed a speed of 464m/s in outfitting when I got below minimum mass, 363m/s at close to optimum mass and 261m/s at close to maximum mass.

The base speed is 280m/s which means that 464 is approximately base times 1.65, which happens to be 1.6 (which other research has already shown to be the final multiplier for unmodified enhanced thrusters) times 1.0345. And 1.65 is the modified maximum multiplier 1.42 by 1.1678, just as 1.6 is the normal maximum 1.37 by 1.1678. Similarly the factor 1.0839 for optimum mass. So that's where my magic numbers come from.

Sample shonky code:
Code:
#!/usr/bin/python

import argparse
import numpy as np
import sys
from scipy.optimize import curve_fit

thrusters = {
  '3P': { 'mass': [70, 90, 200], 'mul': [90, 115, 137], 'fudge': [1, 1.0839, 1.1678] },
  '3A': { 'mass': [60, 120, 180], 'mul': [96, 100, 116], 'fudge': [1, 1, 1] },
  '3B': { 'mass': [55, 110, 165], 'mul': [93, 100, 113], 'fudge': [1, 1, 1] },
  '3C': { 'mass': [50, 100, 150], 'mul': [90, 100, 110], 'fudge': [1, 1, 1] },
  '3D': { 'mass': [45, 90, 145], 'mul': [86, 100, 106], 'fudge': [1, 1, 1] },
  '3E': { 'mass': [40, 80, 120], 'mul': [83, 100, 103], 'fudge': [1, 1, 1] },
  '2P': { 'mass': [50, 60, 120], 'mul': [90, 115, 137], 'fudge': [1, 1.0839, 1.1678] },
  '2A': { 'mass': [36, 72, 108], 'mul': [96, 100, 116], 'fudge': [1, 1, 1] },
  '2B': { 'mass': [33, 66, 99], 'mul': [93, 100, 113], 'fudge': [1, 1, 1] },
  '2C': { 'mass': [30, 60, 90], 'mul': [90, 100, 110], 'fudge': [1, 1, 1] },
  '2D': { 'mass': [27, 54, 81], 'mul': [86, 100, 106], 'fudge': [1, 1, 1] },
  '2E': { 'mass': [24, 48, 72], 'mul': [83, 100, 103], 'fudge': [1, 1, 1] }
}

def quadratic(x, a, b, c):
  return (a * x) + b * (x ** 2) + c

def exponential(x, a, b, c):
  return a + (b * np.exp(-c * x))

def apply_modifier(value, mod):
  if mod == 0:
    return value
  elif mod > 0:
    return value * mod
  else:
    return value * (1.0 + mod)

parser = argparse.ArgumentParser(description='Speed.')
parser.add_argument('-m', '--mass', type=float)
parser.add_argument('-s', '--speed', type=float, default=100)
parser.add_argument('-b', '--boost', type=float, default=100)
parser.add_argument('-O', '--mass-mod', type=float, default=1)
parser.add_argument('-M', '--multiplier-mod', type=float, default=1)
parser.add_argument('thruster')
args = parser.parse_args()
thruster = thrusters[args.thruster]
speed = args.speed
boost = args.boost
mod_mul = args.multiplier_mod
mod_mass = args.mass_mod
min_mul, opt_mul, max_mul = map(lambda m: apply_modifier(m / 100.0, mod_mul), thruster['mul'])
min_mass, opt_mass, max_mass = map(lambda m: apply_modifier(m, mod_mass), thruster['mass'])
mass = max(min_mass, args.mass)
fudge = thruster['fudge']

s = (float) (mass - min_mass) / (max_mass - min_mass)
m = (float) (opt_mass - min_mass) / (float) (max_mass - min_mass)
o = (float) (opt_mul - min_mul) / (float) (max_mul - min_mul)
x = [0, m, 1]
y = [max_mul * fudge[2], opt_mul * fudge[1], min_mul * fudge[0]]
func = quadratic if opt_mul == 1 else exponential

p, m = curve_fit(func, x, y)
multiplier = func(s, *p)
print '%s mass %.2f/%.2f/%.2f mul %.2f/%.2f/%.2f ship %.2fT mul %.2f -> speed %d boost %d' % (args.thruster, min_mass, opt_mass, max_mass, min_mul, opt_mul, max_mul, mass, multiplier, speed * multiplier, boost * multiplier)

Running the script with the loadout I described above:
Code:
$ ./speed --mass 65.47 --mass-mod -0.0158 --multiplier-mod 1.0345 --speed 280 --boost 380 3P
3P mass 68.89/88.58/196.84 mul 0.93/1.19/1.42 ship 68.89T mul 1.66 -> speed 463 boost 628
Predicted speed is 463. Actual speed shown in outfitting is 464.

Other speeds shown in outfitting and predicted by the script are as follows. 3P means class 3 performance enhanced and 3P* means the same with engineer mods.
ThrustersShip massPredictedActual
3P*68.47463464
3P*68.97462463
3P*69.47459460
3P*69.97455457
3P*70.97448451
3P*71.47445447
3P*71.97442444
3P*72.47439441
3P*74.47426430
3P*76.47415419
3P*77.47410413
3P*78.47404408
3P*80.47394398
3P*82.47385388
3P*84.47376379
3P*84.97374377
3P*85.77371374
3P*86.47371371
3P*88.47361363
3P*90.47354355
3P*92.47347348
3P*96.47336335
3P*174263261
3P65.47447448
3E65.47287284
3D62.47291291
3C65.47299299
3B68.47305306
3A65.47319319
2P62.97330330
2D61.47271274
2C62.97277277
2B64.47281281
2A62.97288288
The numbers aren't perfect but they're close. Perhaps someone smarter than me can nail them down for good.
 
Some good work here. Does anyone have a decent list of mass and max speed readings from 2.1 for one or more given sets of thrusters that I can play with to see if I can find a suitable formula?
 
Here's a copy-paste from my research spreadsheet, hopefully it's parseable for you. This data is for the Class 3 Enhanced Thruster, and it covers the full range from minimum to maximum outfitting mass for that thruster, but two different hulls were necessary to do it: the Asp Scout can't get light enough to hit the low end, and the Imperial Courier can't get heavy enough to hit the high end.

So, the first column is the ship, the second column is the total loadout mass (including cargo and fuel), the third column is the "base" speed of the ship hull, and the fourth column is the actual observed top speed with 4 pips to engines. I didn't measure *every* 1T mass increment, but I did the measurements in order of decreasing mass (by jettisoning 1T of cargo repeatedly) so wherever there is a gap in the mass tonnage sequence, you can assume that the observed speed remained the same as the next higher measured mass value (or more likely, was some decimal value that the in-game UI rounded to appear the same as the next higher value).

SHIP MASS BASE SPEED
Asp Scout 200 220 198
Asp Scout 199 220 198
Asp Scout 198 220 198
Asp Scout 197 220 198
Asp Scout 196 220 198
Asp Scout 195 220 198
Asp Scout 194 220 198
Asp Scout 193 220 198
Asp Scout 192 220 198
Asp Scout 191 220 198
Asp Scout 190 220 198
Asp Scout 189 220 198
Asp Scout 188 220 198
Asp Scout 187 220 198
Asp Scout 186 220 198
Asp Scout 185 220 198
Asp Scout 184 220 198
Asp Scout 183 220 198
Asp Scout 182 220 198
Asp Scout 181 220 198
Asp Scout 180 220 198
Asp Scout 179 220 198
Asp Scout 178 220 198
Asp Scout 177 220 198
Asp Scout 176 220 198
Asp Scout 175 220 198
Asp Scout 174 220 198
Asp Scout 173 220 198
Asp Scout 172 220 198
Asp Scout 171 220 198
Asp Scout 170 220 198
Asp Scout 169 220 198
Asp Scout 168 220 198
Asp Scout 167 220 198
Asp Scout 166 220 199
I. Courier 172 280 252
I. Courier 168 280 253
I. Courier 160 280 253
I. Courier 156 280 254
I. Courier 152 280 255
I. Courier 148 280 256
I. Courier 146 280 257
I. Courier 144 280 258
I. Courier 142 280 259
I. Courier 140 280 260
I. Courier 138 280 261
I. Courier 137 280 262
I. Courier 136 280 262
I. Courier 135 280 263
I. Courier 134 280 264
I. Courier 133 280 265
I. Courier 132 280 265
I. Courier 131 280 266
I. Courier 130 280 267
I. Courier 129 280 268
I. Courier 128 280 269
I. Courier 127 280 270
I. Courier 126 280 271
I. Courier 125 280 272
I. Courier 124 280 273
I. Courier 123 280 274
I. Courier 122 280 276
I. Courier 121 280 277
I. Courier 120 280 278
I. Courier 119 280 280
I. Courier 118 280 281
I. Courier 117 280 282
I. Courier 116 280 284
I. Courier 115 280 286
I. Courier 114 280 287
I. Courier 113 280 289
I. Courier 112 280 291
I. Courier 111 280 293
I. Courier 110 280 295
I. Courier 109 280 297
I. Courier 108 280 299
I. Courier 107 280 301
I. Courier 106 280 303
I. Courier 105 280 305
I. Courier 104 280 308
I. Courier 103 280 310
I. Courier 102 280 313
I. Courier 101 280 315
I. Courier 100 280 318
I. Courier 99 280 321
I. Courier 98 280 324
I. Courier 97 280 327
I. Courier 96 280 330
I. Courier 95 280 333
I. Courier 94 280 336
I. Courier 93 280 339
I. Courier 92 280 343
I. Courier 91 280 346
I. Courier 90 280 350
I. Courier 89 280 354
I. Courier 88 280 358
I. Courier 87 280 362
I. Courier 86 280 366
I. Courier 85 280 370
I. Courier 84 280 374
I. Courier 83 280 379
I. Courier 82 280 383
I. Courier 81 280 388
I. Courier 80 280 393
I. Courier 79 280 398
I. Courier 78 280 403
I. Courier 77 280 408
I. Courier 76 280 413
I. Courier 75 280 419
I. Courier 74 280 424
I. Courier 73 280 430
I. Courier 72 280 436
I. Courier 71 280 442
I. Courier 70 280 448
I. Courier 69 280 448
I. Courier 68 280 448
I. Courier 67 280 448
I. Courier 66 280 448
I. Courier 65 280 448
 
Last edited:
Google Docs based engineered speed calculator, for your feedback and fun!

Sorry for necroing this thread. It ain't too old, and I based my Google Doc engineered speed calculator on the excellent work of all the previous posters.

Here you go (link), and please help me validating with your builds!

Fly safe, and slowly :D
 
The Engineer upgrade multiplies all three multipliers up b the same amount. so if you roll a +25%, a standard A rated drive will apply 1.125 minimum multiplier, 1.25 optimum multiplier and 1.45 maximum multiplier. (original values .90,1.00,1.16)

When you make a engineer upgrade and improve the optimal multiplier, it's applied to all three multipliers, but, if you improve your optimal mass then it's affect to all three mass attributes?
 
Last edited:
When you make a engineer upgrade and improve the optimal multiplier, it's applied to all three multipliers, but, if you improve your optimal mass then it's affect to all three mass attributes?

Yes the masses are all affected by the same roll. Usually downwards, which is bad :)
 
Many people only consider pitch, roll, yaw, max speed and boost speed when looking at a ship's agility profile. There are other important stats including: forward acceleration, lateral acceleration, backwards acceleration. For the clipper it has absolutely horrible lateral acceleration and backwards acceleration. This makes thruster usage hard, and stopping hard.
 
Yes the masses are all affected by the same roll. Usually downwards, which is bad :)

Thx CMDR!

Another one more question:

If my ship mass are between minimum mass and optimal mass, the multiplier is absolute or progressive between maximum multiplier and optimal multiplier?
 
If my ship mass are between minimum mass and optimal mass, the multiplier is absolute or progressive between maximum multiplier and optimal multiplier?

Linearly interpolated. See this guide.

Frontier have stated that the multiplier is also linearly interpolated between optimal and minimal when the mass is above optimal mass but several people have tested and found that that doesn't seem to be true at least for the Enhanced Performance thrusters. It's closer to exponential; I don't think anyone has been able to generalise the formula. Standard thrusters do seem to be linearly interpolated though.
 
Linearly interpolated. See this guide.

Frontier have stated that the multiplier is also linearly interpolated between optimal and minimal when the mass is above optimal mass but several people have tested and found that that doesn't seem to be true at least for the Enhanced Performance thrusters. It's closer to exponential; I don't think anyone has been able to generalise the formula. Standard thrusters do seem to be linearly interpolated though.
Frontier has stated this, but actual in-game experimental testing has proven that this statement is *not correct*. If you actually measure ship speed at various mass levels, it is very clear to see that the speed curve is *not* linear, not only for Enhanced thrusters but also for all standard thrusters.

Refer to this thread and also this one for more details on that.
 
Back
Top Bottom