Modding NHeat - Physics/Engine

Next step would be putting the engine to the car

TABLE PARAMETER DIMENSION
table EngineNormal power_max hp
table EngineNormal power_rpm rpm
table EngineNormal torque_max lb-ft
table EngineNormal torque_rpm rpm
table EngineNormal redline rpm
table EngineNormal idle_speed rpm
table EngineNormal cold_idle_speed rpm

Most likely you'll know what torque/power the engine of the car should have. But since Heat doesn't use exact physics on some parameters, you may end up with a car that feels a little less powerful than it should do. You may perhaps think about increasing torque and/or power by about 10-20% to avoid this effect. Put the resulting numbers to the referring parameters in physics:
  • power_max = maximum power at power_rpm
  • torque_max = maximum torque at torque_rpm
  • redline = when engine starts overheating for sure
  • idle_speed = rpm at zero throttle and no gear in
  • cold_idle_speed = rpm at zero throttle and no gear in on cold engine

Overrevved engine - this will result in permanent damage. The engine has been blown.

To work around this limiting feature, you'll have to set redline notably higher than power_rpm. But be aware this may cause some weird power/torque curve.

Heat calculates the power/torque curves from just few given values. That makes it important to set these values right. Especially on engines that have max_power at low rpm (< 7000), redline value should be no higher than power_rpm + 500.


There's some more parameters in engine section

TABLE PARAMETER DIMENSION
table EngineNormal drag  
table EngineNormal engine_temp F
table EngineNormal inertia  
table EngineNormal sound sound set name
table EngineNormal displacement litre
table EngineNormal mass lbs

Engine drag is important, as it sets if and HOW FAST the engine will overheat on high front spoiler settings while running high rpm. Anything lower than
  • drag 0.030
will turn off engine overheating effectively. Doesn't turn off engine burn off on overrevving though...
If you set drag to anything higher than 0.030, you'll want to check out engine_temp as well, as here you set WHEN the egine starts overheating.

Overheated engine: water temperature has exceeded engine_temp. This will result in lower rpm limit and decreased power. No permanent damage, but it will notably slow down the car.

To work around this limiting feature, you'll have to set drag to lower than 0.03.


Sound parameter points to the set of sound files that should be used on this car's engine:

  • eng1i.sfx = idle sound,
  • eng10.sfx = external sound
  • eng11.sfx = internal sound low rpm
  • eng12.sfx = internal sound high rpm
  • eng1e.ens = definition file
These files need to be located in part.res, but they could have any name. Important is the last 2 letters/digits 1i,10,11,12,1e and the suffix. Sound files have to be recorded as 16 bit mono WAV to be used in Heat. Convertion to sfx format can be done by using winrestoolswizard


  • displacement = Engine volume
  • mass = Engine mass
are both not used by the game.

Modding NHeat - Physics/Gearbox

Next item on our todo list is setting gearbox parameters - and these are only few and almost self-explaining.

TABLE PARAMETER DIMENSION
table Transmission num_gears 4,5,6
table Transmission inertia  
table Transmission torque_balance 0.0 - 1.0
table Transmission fstiff, fstiff, cstiff  
table Transmission clutch_torque ft-lb
table Transmission clutch_rpm rpm

  • num_gears = number of gears; and should be 4, 5 or 6
  • inertia = defines how free the tranny is
  • torque_balance = defines if your car will be front (FWD), rear (RWD) or all wheel (AWD) driven

    • torque_balance 1.0 = RWD
    • torque_balance 0.0 = FWD

    • torque_balance 0.5 = AWD, 50% front / 50% rear
    • torque_balance 0.2 = AWD, 80% front / 20% rear
    • torque_balance 0.7 = AWD, 30% front / 70% rear
    • etc

Along with these are

  • fstiff = front differential coupling force
  • rstiff = rear differential coupling force
  • cstiff = AWD differential coupling force

  • clutch_torque = torque when releasing clutch
  • clutch_rpm = rpm on releasing clutch
These parameters define smoothness/roughness of transition on switching gears. Putting in too agressive settings to clutch parameters may cause the engine to stall though

Modding NHeat - Physics/Adjusting drag

Now we have car that can be run in Heat and we could go for adjusting aerodynamic details.

TABLE PARAMETER DIMENSION
table Chassis frontal_area in^2
table Chassis width in
table Chassis height in
table Chassis drag  
table Chassis fspoiler_drag min,max
table Chassis rspoiler_drag min,max
table Chassis rspoiler_angle min, max degree

Some "best effort" way to determine the car's drag is to get on the track - and check out how fast it can go by having set zero rear wing and zero front spoiler. That way only basic drag will make the car's acceleration slow down (ok, tire friction as well, but that's a matter we go for later on)

Before doing this, frontal_area has to be set, as the total drag (body drag + fspoiler_drag + rspoiler_drag) works with that parameter.

Basically frontal_area is made up from the car's width and height. Imagine frontal_area as a plane that has the car's shape - like the red area on the left image

Heat uses something like

  • frontal_area = width x height / 200
to get frontal_area on the original stockcar physics, obviously assuming the car's shape is like a brick's. Calculating frontal_area on a formula car for example should be done in a little more sophisticated way...

Take your car to a track that allows to speed up to determine drag settings.

LeMans for example would be a good choice, as Hunaudieres straight is wide and long enough to reach maximum speed even at zero rear wing angle and zero % front spoiler.

Since we'll have to play around with different rear spoiler angles next, it's range needs to be defined by setting rspoiler_angle min,max values. Actually this is a less straight forward process than it looks like, as Heat limits the maximum range, unless you fudge around with values. To get the full 0-100° range for example, you'll have to set

  • rspoiler_angle -20,100
Now get your car to - for example - LeMans track, set minimum wing and spoiler and run it down Hunaudieres straight. Check out what maximum speed you get. You may have to adjust gears to get the REAL maximum speed. If the current max speed is too high (low), increase (decrease)
  • drag
  • fspoiler_drag minimum
  • rspoiler_drag minimum
fspoiler_drag and rspoiler_drag are some (min, max) values. It's important ONLY to change the minimum values at this time.

When this is done and your car's maximum speed is fine, you'll now have to do the same for minimum speed.

For doing this, in Garage screen increase rear wing and front spoiler setting to absolute maximum. Run down the long straight on the track and once again check out what maximum speed you now get. If your max speed is too high (low), now increase (decrease)

  • fspoiler_drag maximum
  • rspoiler_drag maximum

[ Physics: Performance ]