RFactor Physics

33
Physics Glossary Last updated: 27th August 2005 Annotations restricted to this tutorial GE: Ground Effects CG: Centre of Gravity (In reference to Height) CF: Centre of Forces REF: Reference Plane Note that I continually use examples from many different types of automobiles, this is to illustrate just how certain vehicles may contrast. Also note that this tutorial is by no means complete. As more questions are asked I will continue to expand this tutorial, and to clarify difficult to understand explanations. Indeed, this tutorial will also need updating as the game expands. Section 1 - *.HDV [General] General details on the vehicle. Rules= 0 for no setup rules, 1 for stock cars. This is basically a NASCAR thing. NASCAR's are not allowed to adjust left to right ride heights and things like that. You could thus only alter front-rear ride heights. You should have Symmetric=1 when you have this on, due to the differing menu systems. GarageDisplayFlags= How settings are displayed in garage (Add): 1=Rear Wing, 2=Radiator, 4=More Gear Info. Mass= The entire mass of vehicle inclusive of driver and all fluids with the exception of fuel. You should attempt to determine whether the vehicle weight is dry/curb weight, or with driver. Generally weight given in official factory figures is curb weight, which is includes fluids and but does not include driver. Fluids generally add about 8-15kg, the driver adds about another 70- 85kg. The original Mini Cooper for example, with it's sump mounted gearbox lubricated by engine oil, would be closer to 6 kg. Air cooled engines, despite not having a water filled radiatior, aren't nessecarily lighter as their oil capacity is often double that of a water cooled unit. Inertia= Total inertia of the vehicle, different components have differing inertial values. These can be found inside the suspension geometry file. (See section 3 for more details on the PM file) Inertia essentially has two components, mass and mass distribution. The second of which is known as polar moment. You require a certain amount of energy to rotate a body of mass in any orientation. A vehicle with exactly double the mass will have exactly double this inertia force. As I mentioned, mass is not the only component, you must also consider mass distribution. Polar moment describes the distances that mass is spread away from the center of a body's center of gravity. Because F1's have their mass very centralised, developing physics for a sedan which has

Transcript of RFactor Physics

Page 1: RFactor Physics

Physics Glossary Last updated: 27th August 2005

Annotations restricted to this tutorial

• GE: Ground Effects

• CG: Centre of Gravity (In reference to Height)

• CF: Centre of Forces

• REF: Reference Plane

Note that I continually use examples from many different types of automobiles, this is to

illustrate just how certain vehicles may contrast. Also note that this tutorial is by no means

complete. As more questions are asked I will continue to expand this tutorial, and to clarify

difficult to understand explanations. Indeed, this tutorial will also need updating as the game

expands.

Section 1 - *.HDV

[General]

General details on the vehicle.

Rules= 0 for no setup rules, 1 for stock cars. This is basically a NASCAR thing. NASCAR's are

not allowed to adjust left to right ride heights and things like that. You could thus only alter

front-rear ride heights. You should have Symmetric=1 when you have this on, due to the

differing menu systems.

GarageDisplayFlags= How settings are displayed in garage (Add): 1=Rear Wing, 2=Radiator,

4=More Gear Info.

Mass= The entire mass of vehicle inclusive of driver and all fluids with the exception of fuel.

You should attempt to determine whether the vehicle weight is dry/curb weight, or with driver.

Generally weight given in official factory figures is curb weight, which is includes fluids and but

does not include driver. Fluids generally add about 8-15kg, the driver adds about another 70-

85kg. The original Mini Cooper for example, with it's sump mounted gearbox lubricated by

engine oil, would be closer to 6 kg. Air cooled engines, despite not having a water filled

radiatior, aren't nessecarily lighter as their oil capacity is often double that of a water cooled unit.

Inertia= Total inertia of the vehicle, different components have differing inertial values. These

can be found inside the suspension geometry file. (See section 3 for more details on the PM file)

Inertia essentially has two components, mass and mass distribution. The second of which is

known as polar moment. You require a certain amount of energy to rotate a body of mass in any

orientation. A vehicle with exactly double the mass will have exactly double this inertia force.

As I mentioned, mass is not the only component, you must also consider mass distribution. Polar

moment describes the distances that mass is spread away from the center of a body's center of

gravity. Because F1's have their mass very centralised, developing physics for a sedan which has

Page 2: RFactor Physics

say exactly double the mass will mean that the inertia of the vehicle will be far greater than

double. This is due to mass distribution being further from the vehicle's centre.

To calculate the inertia of a rectangular object the following formula can be applied; Pitch =

(Mass/12)*(Length*Length+Height*Height) In short the formulae is (M/12)*(Y²+Z²) or

(M/12)*(L²+H²) Yaw = (M/12)*(Length²+Width²) Roll = (M/12)*(Height²+Width²)

The above formula assumes a perfect rectangular prism, which has equally distributed mass

across the entire object. Note that automobiles are not like this. In most cases, the mass is more

centralised than the vehicle dimensions (especially true for open wheelers). So you'll probably

have to make an educated guess as to what the distribution is.

For Spheres the following formula applies;

Inertia=2/(5*Mass*Radius²)

The first value of inertia is the pitch. Second value is the yaw. Third value is roll. These values

are measured in kgm/m. Inertia is the force required to rotate the car, and the same force is

required to stop the rotation. Pitch is the rotation that occurs under braking and accelerating, and

going up and down hills, you could consider it to be in use when you flip a car front to back or

vice versa. A higher first value will result in reduced response in terms of dive (under braking)

and squat (under acceleration). Yaw is force required to start and stop the car from turning, a

high value will reduce the steering response and may cause temporary understeer in changes of

direction (value should always be greater than pitch, except maybe some trucks/buses?). High

values will also reduce the cars' sensitivity to bumps and make it easier to drive. Roll is rotation

of the car as it leans into a corner. A low value will make the car lean into a corner more

aggressively. A high value will result in a slower and more stable lean. In any car, roll inertia

will always be lower than the pitch, and yaw.

Let's take a look at an F1 C 2002 Williams, Mass=601.8 Inertia=(506.7, 577.4, 117.3). One of

the possible measurement combinations (all possibilities are extremely similar!) is as follows,

Length=3.1047m Width=1.369m Height=0.682m. The car is actually much larger dimensionally

in all aspects. You should note that, an empty F1 chassis weighs an amazing 30-35kg. The

majority of the mass is made up by the engine (about 95kg), driver (about 75kg), and ballast (75-

90kgs), all of which, are close to the centre of gravity. The result is that despite the vehicle being

1.8m wide, under 1m tall and around 4.5m long, the inertia contributions are far less. A GT1

would also have a very low height, though it would still be slightly greater than an F1, but length

and width would increase significantly. I expect width would probably increase the most as a

percentage, followed by length, and finally height.

Looking at the drastically higher NASCAR Thunder 2004 inertia values makes it apparent:

Mass=1571.1 Inertia=(2507.7, 2778.2, 474.6), the car is 2.61x heavier than an F1, but on average

the inertia values are 4.79x greater! This kind of ratio would be appropriate for most road cars

and drag cars too, but not advanced race cars. NASCAR's have large (and hence heavy)

protection bars and roll cages, are largely responsible for its high inertia, combined with steel

body construction. Mid engine cars should always have less inertia because the engine is usually

a heavy part of the car (266kg on a road going McLaren F1), being in the centre of the car it

helps lower the polar moment. Please note that engine mounting position will minimally affect

the 3rd inertia value, roll. This is because roll does not have a length component.

Possible dimensions for these NASCAR values are Length=4.2865m, Width=1.6869m,

Height=0.8829m.

Page 3: RFactor Physics

FuelTankPos= Location of fuel tank CG in relation to the center of the rear axle at the bottom of

the chassis (at the reference plane). 1st value is lateral offset. 2nd value is height. In normal

sedans the third value is often positive and almost always has a very low value (whether it be

positive or negative). Highly tuned mid and rear engine race cars often have the fuel tank over 1

metre in front of the rear axle (behind driver, infront of engine). Sometimes, though rare, it can

be further than 2 metres infront. An example of this is the 1996 Porsche 911 GT1, which has the

fuel tank CG approximately 2.5m infront of the rear axle.

FuelTankMotion= This simulates fuel 'slushiness' in the fuel tank. The first value, spring rate,

will define how far the fuel weight moves (dependant on G-Forces). Critical damping is used to

reduce rapid fuel movement, this works much the same as any suspension damper. It can be very

difficult to know what values to use. Many standard vehicle fuel tanks have nothing to stop fuel

splashing. Think of it like a glass of water, damping is very low and the water is free to move

around quite a lot. Race cars often have fuel bladders\tanks with baffles in place. Fuel tank

baffles can not change the liquid density of fuel, therefore damping will remain very similar (if

not identical) to a vehicle without these. On the other hand baffles reduce overall fuel movement,

this is simulated using a high spring rate variable. The spring rate variable is not dependant on

fuel load, the fuel CG will move by the same distance regardless of fuel load. To calculate

movement of the CG, we take acceleration of the vehicle body (in any given direction), and we

divide this by the spring rate. Acceleration/Spring Rate=Distance moved. Let's say we take 1G of

acceleration, 9.8ms/560=0.0175m, for every G of acceleration acting on the fuel tank, we recieve

1.75cm of movement. This assumes the force has been applied long enough to move the fuel to

this position.

Notes= You can add notes about the vehicle or default setup here, these will appear in the vehicle

setup menu.

Symmetric= 1 translates to vehicle settings are copied from left to right. This is changeable while

actually running the game though. It's important this is set to 1 if you have rules set to 1, due to

the rules applied with stock cars.

DamageFile= Name of the damage file (Damage file aspects covered in Section 7)

CGHeight= 1 dimensional value - Vertical centre of gravity above bottom of chassis.

Realistically, possibly as high as 0.4 for sedans and maybe even greater. For racing sedan cars

however, I expect about 0.32 or so, GT style cars possibly a little lower. Formula type cars

around 0.20-0.28. Cars may have a tendancy bounce a little when you increase this value, so

make sure to increase damper of the tires (*.TBC file, Section 2) a little as you increase this

value. In order to be able to use very high or very low CG values you will definately need to

change roll centre of the suspension, otherwise the car will never feel right. (See *.PM

file, Section 3).

CGRearRange= Percent of weight on rear wheels. Around "0.47" for front engine sedans.

Usually, weight distribution is not adjustable for sedans and other front engine - rear drive cars

because they aim for the furthest rear weight bias possible (with the exception of some oval

racing vehicles), so the 3rd value usually would be set to 1 (remember 1 really means 0

adjustments). Generally only MR race cars have some adjustability. If the category requires a

relatively high weight limit, teams are free to position balast as they wish, hence increasing the

amount of available adjustment. Regarding front engine, rear drive cars, while sometimes they

are technically permitted to move their ballast freely, they will generally only have 1 mounting

position, as far back as possible (except for oval racers).

Page 4: RFactor Physics

Note: Remember the following values are VERY sketchy. 1st initial is engine position, 2nd

initial is driven wheels. I.e. FR would represent a front engine, rear wheel drive car. M4, mid-

mounted engine with 4WD drive.

Fraction of Mass on rear wheels. FF cars have about 0.4, F4 cars have about 0.46, FR wheel

drive cars have about 0.47, M4 cars have about 0.53, MR cars about 0.55, R4 about 0.57, RR

have about 0.59 (Note that I have seen highly tuned FR cars with up to 0.53 rear weight bias!

This demonstrates how different vehicles may contrast enormously). Indeed, some cars can be

surprising. A 1997 to current Jeep Wrangler for example has a 0.49 rear weight bias in soft top

form, and 0.5+ for a hard top equipped vehicle, a shock considering the four litre iron lump of an

engine in the front and the nothingness of the rear.

CGRightRange= Fraction of mass on right wheels. (0.5 is equal to 50%) Usually very close to

0.5 on all cars. Can depend on a particular hand drive car. I.e. Left hand drive car may have a

value like 0.49. Race categories with very restricted weight regulations (cars with a lot of ballast)

even with the driver off centre will probably have 50%. In those categories it may even be

possible to change right-left weight bias by moving ballast. Remember one side can be more

adjustable than the other though, depending on driving position.

In order to determine the left-right weight bias you'll need to know the weight of the car, the

driver weight and what the left-right weight distribution is without driver. You will also need to

know the front and rear track of the vehicle. If you know the bias with driver, you won't need to

read this paragraph, though you may yet find this interesting. To simplify things, all we are going

to use the average of the front and rear track. Most vehicles have close to a 50% weight

distribution offset front to rear anyway. Let's take a look at the 2005 Jaguar XJ. This vehicle has

a mass of 1742kg vehicle and we will assume the driver weighs 80kg. Let's assume that the

middle of the driver seat is exactly 450mm (guess) away from the center of the vehicle. The

Jaguar XJ has a front track of 1557mm, a rear track of 1547mm, and so the average is 1552mm.

In actual fact, it is best to get the exact distance between center of the tires. Regardless, with

these numbers we can calculate (to within reasonable accuracy) what the weight distribution is in

lateral terms. As I don't actually have any figures on the Jag's empty lateral weight distribution

we'll just assumer that it's 50%. For beginners especially, it's much easier to grab a piece of paper

and draw a diagram to help.

Because we want to know the right weight bias, we will start calculations from the left.

Mass*distance from left+Mass*distance from left=Upward force from right tire*track.

((Mass*DistfromL)+(Mass*DistfromL))/track=Right weight.

((1742*.776)+(80*(0.776+0.45))/1.552=934.196 kgs.

Vehicle Weight+Driver Weight=Total Weight

1742+80=1822

934.196/1822=0.5127, 51.27% right weight distribution. Keep in mind that this is a very heavy

Page 5: RFactor Physics

vehicle too. In a lightweight sports car the difference will only be greater (unless you sit in the

middle, like a McLaren F1).

Many race cars have their batteries, ecu's and accessories placed on the other side to combat

lateral off-center weight bias. However, these compensations will rarely be enough to fully

compensate for the off-center weight bias. A road car usually does not have any of these

'countermeasures', indeed the battery seems to usually sit on the driver's side.

Note these are old descriptions, need to be re-written.

The following are locations for points where the car will bottom out. These are the older values.

Later we will show you new and more useful rFactor undertray values.

FLUndertray= The first value is width. This defines the flat part of the bottom of the chassis.

Firstly find the total width of the bottom of the chassis then divide it by 2. Then subtract

the rear tire width from it (just 1 of them)(Value must be positive). The second value is usually 0,

you can change this though. The 3rd value is how far ahead the car is from the front axle. Take a

couple cm away depending on if the front is curved even as much as 7cm(0.07). (Third Value is

negative. Except for Open wheelers)

FRUndertray=All values the same as 1st (FL) except 1st value is negative.

RLUndertray=All values the same as 1st (FL) but the third value is not. It usually is between 0 &

0.3. Before kick up at the back (Diffuser).

RRUndertray=All values the same as 3rd (RL) but 1st value is negative.

Instead of the previous variables we recommend using these new variables. They allow more

accurate points where the chassis can bottom out, as points are more numerous.

Undertray00=(0.20, 0.0, -1.00) // corner offset from center of wheels in reference plane

Undertray01=(-0.20, 0.0, -1.00) // corner offset from center of wheels in reference plane

Undertray02=(0.20, 0.0, 1.30) // corner offset from center of wheels in reference plane

Undertray03=(-0.20, 0.0, 1.30) // corner offset from center of wheels in reference plane

Undertray04=(0.58, 0.0, -0.50)

Undertray05=(-0.58, 0.0, -0.50)

Undertray06=(0.58, 0.0, 0.80)

Undertray07=(-0.58, 0.0, 0.80)

Undertray08=(0.58, 0.0, 0.0)

Undertray09=(0.0, 0.0, 0.0)

Undertray10=(-0.58, 0.0, 0.0)

WedgeRange= Ignore this for now. Rounds of wedge.

WedgeSetting=40

WedgePushrod=0.0 Each round of wedge changes rear-left jacking screw by this amount (0.0 to

disable, use Rules to allow FR ride height)

TireBrand= Name of tire file without the extension. (example, if the file name is Dunlop.tbc, this

value should be set to "Dunlop". Tires covered in Section 2)

FuelRange= i.e.(1,1,65) Amount of fuel storage in fuel tank. The 1st and 2nd values should

probably be left at 1 because it's easier to work with and provides greater adjustability. The third

Page 6: RFactor Physics

value defines the maximum amount of fuel in liters (assuming other 2 values are left at 1). If you

are working in gallons, one gallon is equivalent to 3.785412 liters.

AIAimSpeedsPerWP=(15,25,35,42,50,100,100,100) Speeds at which to look ahead X. ---- Not

sure what this really does ----

AICornerReductionBase=80.0

AIMinPassesPerTick=3 Minimum passes per tick, lower values provide lower CPU useage, and

can increase game performance. Higher values allow more realistic AI suspension settings, at the

cost of CPU useage.

AIRotationThreshold= Rotation threshold in radians per second to temporarily increment passes

per tick to improve accuracy and stability of AI in corners. 1 radian per second is equivilant to

57.29578 degrees per second.

AIEvenSuspension= Averages out spring and damper rates to improve stability (Range: 0 - 1)

AISpringRate= Spring rate adjustment for AI physics, used to soften or stiffen suspension for AI

vehicles. Decrease this to soften spring rates to keep the AI stable. 1 is equivalent to the setup

file or default setup.

AIDamperSlow= Contribution of average slow damper into simple AI damper. This simplifies

dampers when used for AI.

AIDamperFast= Contribution of average fast damper into simple AI damper.

AIDownforceZArm= Hard-coded center-of-pressure offset from vehicle CG.

AIDownforceBias= Bias between setup and hard-coded downforce value (Range: 0-1). 0 is most

realistic, 1 is least realistic. A value of 0 will ensure the AI do not have more downforce than the

player? This can be useful to improve AI stability though, especially if they have problems at

high speeds.

AITorqueStab= 1st value - AI Resistance to acceleration/brake/hill spinning? 2nd value - AI

Resistance to corner spinning? 3rd value - AI Resistance to rolling? Trade off is that these slow

AI response.

FeelerFlags= How collision feelers are generated (Add): 1=Box Influence 2=Reduce Wall-

Jumping 4=Allow Adjustment Hack 8=Top Directions

FeelerOffset= Offset from CG to use when generating feelers.

FeelersAtCGHeight= Whether corner and side feelers are automatically adjusted to CG height

FeelerFrontLeft=(0.750,0.384,-1.850) // front-left corner collision feeler

FeelerFrontRight=(-0.750,0.384,-1.850) // front-right corner collision feeler

FeelerRearLeft=(0.800,0.384,1.510) // rear-left corner collision feeler

FeelerRearRight=(-0.800,0.384,1.510) // rear-right corner collision feeler

FeelerFront=(0.0,0.384,-2.040) // front side collision feeler

FeelerRear=(0.0,0.384,1.510) // rear side collision feeler

FeelerRight=(-0.800,0.384,-0.247) // right side collision feeler

Page 7: RFactor Physics

FeelerLeft=(0.800,0.384,-0.247) // left side collision feeler

FeelerTopFrontLeft=(-0.1,0.900,0.160) // top front-left collision feeler

FeelerTopFrontRight=(0.1,0.900,0.160) // top front-right collision feeler

FeelerTopRearLeft=(-0.500,0.850,1.600) // top rear-left collision feeler

FeelerTopRearRight=(0.500,0.850,1.600) // top rear-right collision feeler

FeelerBottom=(0.064,0.249,-0.10) // bottom feeler The feelers defined here are for the source

vehicle, which touch the target vehicle on the collision GMT. In other words, vehicle-to-vehicle

collisions are actually line-to-triangle collisions.

[LEFTFENDER]

Left fender details. This is an optional part in rFactor, these are primarily used in NASCAR.

Other categories use them occasionally. The McLaren F1 GTR Longtail used fender flares at

Helsinki in 1997 for example.

Because these entries are optional, we have left some standard NASCAR settings to show you

how the values are accepted by the game. Of course, at the bottom of this page there is an

example file showing every last possible variable that rFactor will accept.

FenderFlareRange=(0, 0.00635, 7) // Front left fender flare range in meters of extra flare over

base.

FenderFlareSetting=3

FenderCenter=(0.80, 0.15, -0.32) // Center of fender aero forces. As with the FRONT WING

aero forces are offset from the center of front axle at the reference plane.

FenderDragParams=(0, 0.2965, 0) // Base drag, 1st order, and 2nd order drag per meter flare. For

more detailed information on Drag/LiftParams, please check the front wing section.

FenderLiftParams=(0, -1.0306, 3.782) // Base lift, 1st order, and 2nd order lift per meter flare

FenderSideways=(0.1) // Dropoff in downforce with yaw (0 = none, 1 = max)

[RIGHTFENDER]

Right fender details. This is an optional part in rFactor, these are primarily used in NASCAR.

Other categories use them occasionally.

FenderFlareRange=(0, 0.00635, 7) // Front right fender flare

FenderFlareSetting=3

FenderCenter=(-0.80, 0.15, -0.32) // Center of fender forces (offset from center of front axle in

ref plane)

Page 8: RFactor Physics

FenderDragParams=(0, 0.2965, 0) // Base, 1st, and 2nd order drag per meter flare

FenderLiftParams=(0, -1.0306, 3.782) // Base, 1st, and 2nd order lift per meter flare

FenderSideways=(0.1) // Dropoff in downforce with yaw (0 = none, 1 = max)

[FRONTWING]

Front Wing details. Optional part in rFactor, cars with front wings will require these details.

These can still be used even if the car does not have a front wing.

FWRange= This is the adjustability of the front wing or air dam. Again 1st value is minimum

setting. 2nd is Each step (Leave both these at 1, unless the wing is adjustable in degrees and it's

adjustability differs from these values). The third value is how many settings you can have or

how precisely you can adjust the car. Depending on the car a value of between 1 & 10 can be

accurate. Only Formula One's have more adjustability (40 with stock rF physics), they are

however, almost beyond this world in terms of technology. 1 for a road car, about 1-3 for most

touring cars, about 10-20 for Cart. These settings must be accounted for in the Drag/Lift.

FWSetting= What the front wing is set to initially. Usually this should just be set a little over half

of the medium setting. You should always attempt to make default setting values a decent setup

for most tracks, an average if you will.

FWMaxHeight= From this height onward the front wing will not lose more downforce from an

increase in ride height. With a high value the car can flip when the car leaves the car jumps,

value should be around 0.2 for race cars.

FWDragParams= This is the most complicated part. First value is initial (and hence

minimal) drag at the base setting. The second value is drag increase per wing setting. Third value

changes the the drop off in efficiency as wing is increased.

The formula for calculating drag in real terms;

Initial Drag + Drag Increase * (Wing Setting) + Efficiency drop off * (Wing Setting) ^ 2

In other words. 1stValue + 2ndValue*(Setting) + 3rdValue*(Setting)^2

Wing setting is the same as setting found in the SVM file. Meaning that the minimum is 0, not 1.

A value of 1 in the menu is actually 0 in terms of setting.

Here is an example.

If Front Wing is set to 3 in the Menu, and FWDragParams=(0.06, 0.01, 0.00003)

Then to get downforce produced we plug the numbers in the formula 0.06+.01*2+0.00003*2^2,

the total drag at setting 2 (or 3 in the menu) is 0.08012.

In a non-open wheeler vehicle it can be acceptable to have negative front wing drag at the base

setting, so long as this is factored in the BodyDragBase= variable. Doing this will mean as you

damage and lose your front bumper, you actually lose top speed (because it was producing

negative drag). If you lose your front bumper/air dam/spoiler, air flow becomes rough and flows

over the newly exposed wheels, creating extra drag. Obviously, in a race car you are likely to

lose less speed, because the standard front bar is producing downforce and has more drag, a

normal road car front bar is generally designed for minimal drag.

FWLiftParams= First value is base lift, ie. lift at minimum wing setting. Note that negative lift is

downforce. Second value is the lift increase per wing setting. These parameters are essentially

the same as FWDragParams= but these variables apply to lift instead.

Page 9: RFactor Physics

FWLiftHeight= Higher values make it more sensitive to increases in ride height. Touring cars are

not very sensitive to this and a value of about 0.3 is expected. This is because the front wing can

only produce so much ground effects. F1 and Indy/Cart vehicles are very sensitive to this, a

value of about 1 is appropriate as they have specially design the wings to produce ground effects.

A DTM should probably be around 0.5. Reduction is easy to calculate. Take your base lift, add

fwliftheight multiplied by front wing ground clearance (measured in meters).

Lift+(LiftHeight*Ground Clearance). Say lift is -0.2, lift height is 0.3 and current ground

clearance is 0.1m. Then -0.2+(0.3*0.1)=-0.17, at 20cm the lift is -0.14. In other words, this

follows a linear progression. This is not accurate but it is probably not worth the CPU use of

adding extra 2nd order variables, as the diffuser can be used to complement this.

FWLiftSideways= Drop-off in downforce when wind direction is at 45 degrees to the wing. 0.5

would halve the downforce/lift @ 45 degrees. 1 will mean the wing no longer produces and

downforce/lift at 45 degrees of slide. If you use peakyaw this value will become overwritten?

Values close to 0.5 are considered to be accurate. When a wing is angled to it's heading direction,

it's angle at 45 degrees, and assuming it's flat in it's X axis,

FWPeakYaw= First value is the angle in degrees, at which maximum downforce occurs. The

second value is used to multiply downforce at this point. Generally, without end plates, optimum

downforce can only occur at an angle of 0 degrees to the air flow. Wing endplates are generally

not present on the front wing of vehicles, with the exception of winged formula vehicles. End

plates can increase downforce with yaw because they allow extra air flow to cover the downforce

producing plane of the wing. This diagram (Not here yet) demonstrates how end plates increase

downforce with yaw, the effective increase is not much, but when you consider vehicles do slide

through corners a little bit, they can make a big difference. Insteady of losing downforce as the

car drives through a corner (as would happen without endplates) downforce is actually slightly

increased. Accurate values for open wheelers are around (2, 1.02). Open wheelers also produce

ground effects using their front wings, yaw reduces the benefits of this by supplying more air

under the diffuser and thus making it work less efficiently.

FWLeft= Aero forces generated by moving left. The first value is the X axis resistance. Meaning

that this should always be negative for left movements. Second value is Z axis resistance

(vertical), 3rd value is Y axis resistance, forward or backwards.

FWRight=(0,0,0) Aero forces from moving right

FWUp=( 0,0,0) Aero forces from moving up

FWDown=(0,0,0) Aero forces from moving down

FWAft=( 0,0,0) Aero forces from moving rearwards

FWFore=(0,0,0) Aero forces generated from moving forwards, this is recomputed from settings.

Left over from SCGT?????, it's basically it's an old value and that does nothing (unless you

delete the FWRange=, FWDragParams= & FWLiftParams=).??????

FWRot=( 0,0,0) Aero torque from rotating

FWCenter= Centre of forces acting on the wing in reference to the centre of front wheels at the

reference plane.

Page 10: RFactor Physics

[REARWING]

Rear Wing details. Optional value in rFactor, cars with rear wings will have these details. Do

not add this section if the vehicle does not have a rear wing.

Use explanations from above settings. RWRange= Third value is usually between 5 & 25 on

racing sedans and GT cars. Some road cars have more than 1 setting like the Nissan Skyline R34

GT-R, which is adjustable between 3 settings. Many other optional/after market wings for road

cars offer 2-5 adjustments. A DTM probably has about 15 settings, a modern Cart about 20-30.

[BODYAERO]

Body aerodynamic details.

BodyDragBase= I don't know the exact method used to calculate this value in the game but you

must include frontal area with drag coefficient. (Someone??) This will reduce or increase the

cars top speed, low values will take longer to acheive absolute top speed. It will also increase

acceleration, but obviously has a greater effect at higher speeds. Every time a car doubles it's

velocity or speed, the drag will increase by four times. Open wheelers have a poor Co-efficiency

of Drag however, they usually have a small frontal area which can almost compensate. A modern

road car despite having a greater frontal area will probably be more aerodynamic than an F1.

BodyDragHeightAvg= Drag increase or reduction as ride height is increased. Should be low

value and possibly even negative for most road cars because this allows clean air to flow under

the car. If the car has a flat full length under tray and purely race style, this value will probably

be positive and greater than 0.1+. This is as a result of exposing suspension parts and tires.

BodyDragHeightDiff= Increase in Drag when the car has different front to rear ride heights.

Most cars have quite a high value, most race cars should be higher than 0.5, aerodynamically

precise automobiles such as a Formula type car maybe be even greater than this. Anything wedge

shape, like an old CanAm will be more sensitive to this.

BodyMaxHeight= Max height game calculates drag/lift losses/gains from ride height. Remember

that too high can cause unrealistic flipping. The diffuser should never produce lift when

travelling forwards. See Diffuser, try to ensure diffuser never reaches less than about 5% of it's

base downforce by altering BodyMaxHeight=.

BodyLeft=(-0.7, 0.03, 0) Drag resistance when car is moving leftward. Notice the air resistance

is in the opposite direction. All cars will have lift as an effect of moving sideward, with the

possible exception of a sprint car, which when moving left? may produce some downward force.

On the otherhand, a rightward movement of spring cars will result in high lift. On a normal car, I

would expect a second value of around 0.03.

BodyRight=(0.7, 0.03, 0) Aero forces due to rightward movement.

BodyUp=(0.0, -1.5, 0.0) Aero forces from moving up

BodyDown=(0.0, 1.5, 0.0) Aero forces from moving down

BodyAft=(0.0, 0.10, -0.7) Aero forces from moving rearwards, drag should increase when

moving rearward in comparison to forward movement, though it probably shouldn't be too much

Page 11: RFactor Physics

worse, on the other hand, lift should be significantly higher than driving forward. I don't think

there is an automobile that would produce downforce when moving rearward. Reasonable range

for a street car, 0.08-0.3, with most having around 0.2 lift value.

BodyFore=(0.0, -0.045, 0.200) Aero forces from moving forwards. The second value, which

affects lift, is important. 3rd value drag is overwritten by BodyDragBase. The second value, lift,

is an important variable to get correct. This affects the cars high speed stability and can affect lap

times enormously. Let's take a look at the 2000 Volkswagen Beetle. According to Internet Auto

Guide the beetle has a wheelbase of 2512mm. Mulsannes Corner has the lift at 742 lbs @ 124

mph with the front having 332 lbs of lift and the rear having a lift of 411 lbs. A value 742 lbs is

equivalent to a value of 336.5kg. 124mph is roughly 200km/h. From these variables we can

conclude that the lift value should be approximately 0.69 for a 2000 volkswagen beetle. Very,

very few vehicles will produce more lift at speed than the beetle, so you could consider this to be

an upper threshold. The wheelbase will tell us where the BodyCenter should be placed on the Y-

axis (3rd value, front to back). If you do the math, 2512*(332/742)=1124mm in front of the rear

axle. So BodyCenter value 3 should be -1.124. Read BodyCenter= for more details.

BodyRot=(4.0, 3.0, 2.0) Aero torque caused by rotation. When a vehicle moves through the air it

forces air particles to flow around the moving body. As this occurs the air particles that bombard

the vehicle are moved from their original position, some of these particles are forced to follow

the vehicle as it corners. The vehicle slows the air and redirects these particles to follow it's own

orientation. As this occurs these particles add what could be considered extra inertia to the

vehicle. Essentially this effect causes the vehicle to feel as though it has greater inertia in the

form of pitch, yaw and roll. The difference is that it does not add to the vehicles mass itself and

occurs with greater force at higher speeds. At high speeds the vehicle will feel as though it has

more inertia to overcome, the response of the vehicle will not be as great.

BodyCenter= Center of aerodynamic forces acting on the body. The first value should, almost

always equate to 0. As usual, there are exceptions though, some vehicles which are not

symmetrical left to right, such as a vehicle with an off-centre cockpit. Cars with a single external

mirror, or with 1 window open will have very slightly off-center aero forces. Furthermore, some

vehicles such as the Toyota TS-020, may have 2 mirrors, but they are not symmetrically aligned.

I expect this would only off-center the average flow by a couple hundred micrometers though (in

other words, a negligible off-set). It is important to note some mirrors can actually reduce the

aerodrag on some cars. The Ford Falcon AU for example is reported to have less drag while the

mirrors are on the vehicle, (even with the windows closed) as they reduce air pressure around

doors and windows. Formula Renault's and some prototypes may experience comparitively high

off-center aero forces. The 2nd value defines the height of the center of aero forces from the

bottom of the chassis. I would expect a value roughly in between 0.4 and 0.6 for GT/Sedans. The

third value is distance infront of the rear axle where the center of aero forces occurs. Generally

between 1 & 2 meters.

RadiatorRange=(100, -5, 1) Radiator range. Most vehicles can simply use front grille tape to

reduce the radiators' air intake. This decreases drag and also (generally) helps decrease lift. The

cost is that the vehicles' radiator will be unable dissipate heat as efficiently and may cause the

engine to overheat. Generally, grille tape is used mostly during qualifying to help give you that

slight aerodynamic edge over your opponents. More advanced vehicles may work differently,

employing a more expensive and time consuming system of changing over panels (such as in

F1), or adding "plates" of preset sizes, which prohibit the air flow. Note that lower values will

provide higher engine temperatures. When changing this you may also need to alter your

"RadiatorCooling=" value defined in the engine file (*.INI).

RadiatorSetting=0 Default radiator setting

Page 12: RFactor Physics

RadiatorDrag=(0) Effect of radiator setting on drag

RadiatorLift=(0) Effect of radiator setting on lift

BrakeDuctRange=(0,1,1) Brake duct range

BrakeDuctSetting=0 Brake duct setting

BrakeDuctDrag=(0) Effect of brake duct setting on drag

BrakeDuctLift=(0) Effect of brake duct setting on lift

[DIFFUSER]

Diffuser details. Optional value in rFactor, only used for automobiles with diffusers.

DiffuserBase=(-0.295, -1.5, 15.0) 1st Value defines the base lift of the diffuser. 2nd value is the

1st order with rear ride height by default produces a gain in downforce. 3rd Value is 2nd order

with rear ride height. 3rd is square value of drop off.

(DiffuserBase 1st Value)+((DiffuserBase 2nd Value)*Rear Ride Height (in

metres))+(DiffuserBase 3rd Value*Rear Ride Height^2) = downforce

Remember that there are many more values which determine downforce, such as DiffuserRake

and DiffuserLimits. A complete formula will be provided at the end of this [DIFFUSER] section.

DiffuserFrontHeight=(0.275) 1st order of downforce loss when increasing front ride height.

DiffuserRake=(0.05, 0.01, 0) Optimal rake (rear - front ride height), 1st order with current

difference from opt, 2nd order

DiffuserLimits=(0.05, 0.20, 0.05) Minimum ride height before stalling begins (0=disabled), max

rear ride height for computations, max rake difference for computations.

DiffuserStall=(0.5, 0.5) Function to compute stall ride height (0=minimum, 1=average),

downforce lost when bottoming out (0=none, 1=complete stall). Essentially the first value

dictates whether to blend the ride height (1) when calculating stalling or whether to use real time

calculations (0).

DiffuserSideways=(0.50) Dropoff with yaw (0 = none, 1 = max) Drop-off in downforce when

wind direction is at 45 degrees to the wing. 0.5 Is half of the downforce/lift.

DiffuserPeakYaw=(0,1) 1st value is angle in Degrees where peak downforce is generated.

Second value is how much to multiply downforce by, at the peak angle.

DiffuserCenter=(0,-0.05,-1.25) Centre of Forces produced by Diffuser. (offset from center of rear

axle at ref plane)

In order to determine the actual downforce produced by the diffuser the following 'omni' formula

applies (all ride height values must be calculated in meters, also formula is split up to make it

easier to read and use); (((DiffuserBase 1st Value)+((DiffuserBase 2nd Value)*Rear Ride

Page 13: RFactor Physics

Height)+(DiffuserBase 3rd Value*Rear Ride Height^2))+(DiffuserFrontHeight*Front Ride

Height))=Total DownForce1.

Total Downforce1*(DiffuserRake Value 1-())

To make this easier, I am planning to create an excel spreadsheet.

DiffuserLimits=(0.05, 0.20, 0.05) (Rear ride height - Front ride height)=.06m (Rear ride height -

Front ride height)=.04m (DiffuserRake 2nd Value*(DiffuserRake 1st Value-(Rear ride height -

Front ride height))) (DiffuserRake 3rd Value*(DiffuserRake 1st Value-(Rear ride height - Front

ride height)^2))

[SUSPENSION]

Suspension details.

PhysicalModelFile= High detail suspension geometry file. File name including extension. Ie.

"f1susp.pm" See section 3.

CorrectedInnerSuspHeight= Instead of moving inner susp height relative with ride height, use

this offset. Setting this to -1 will use original behavior.

ApplySlowToFastDampers= Most basic road cars should have this set to 1, race cars usually

have separate fast and slow damper speeds. This is because having different fast and slow

bump/rebound damper designs will be more expensive. A brand new road going Mercedes S-

Class on the other hand will have different fast and slow dampers, but they are not adjustable.

This links the settings, not the values, I believe all new decent quality dampers will have

different fast to slow damper speeds, but most will not be able adjust them independantly, you

change one, you change the other.

AdjustSuspRates= Adjust suspension rates due to motion ratio. Whether to adjust spring rates or

wheel rates? A value of 1 adjusts wheel rates, a value of 0 spring rates? (Gjon take a look)

AlignWheels=1 Should probably leave this at 1. It aligns the wheels to physics.

CenterWheelsOnBodyX=1 Corrects minor unintentional graphical offsets on the X-Axis.

Ensures that left wheels are exactly the same distance from the center of the car as the right

wheels are.

FrontAntiSwayRange= Same basic principle as other range values. Though you can override the

first setting with in rFactor.

FrontToeInRange=(-1.5, 0.1, 31)

FrontToeInSetting=14

RearToeInRange=(-1.5, 0.1, 31)

RearToeInSetting=17

Page 14: RFactor Physics

LeftCasterRange= Caster acting on the left front wheel. Defines the backward lean of the front

left top hub suspension joint compared with the lower arm. The effect of changing this is that the

vehicle will want to straighten the steering more. It also has the desired effect of adding negative

camber to the outside tire when steering, it also adds positive camber to the inside tire which can

increase grip. With a live axle front suspension vehicle, caster is generally be very high, perhaps

up to 10 degrees. It is rarely possibly for a live axle setup to have any negative camber.

RightCasterRange= Same thing as above, only regarding the right wheel, should have the same

adjustability, generally.

LeftTrackBarRange=(0.1778, 0.003175, 65) Rear-left track bar, Value can be removed if vehicle

does not have Track Bar. Track bar adjusts roll center with a live axle setup.

RightTrackBarRange=(0.1778, 0.003175, 65) // Rear-right track bar, Value can be removed if

vehicle does not have Track Bar.

Do not include 3rd value in under this section if you are sure the vehicle does not have 3rd

springs/dampers. Trophy trucks can use these values and other advanced off road trucks and

probably some very high downforce race cars. Generally though, these are not present. Note:

Formula one introduced this technology in 1997. (Bristow, 2004)

Because these are not present by default, and typing it out is long and boring process, the

formula has these optional 3rd springs. Feel free to copy these into rFactor if you wish.

Front3rdBumpTravel=-0.005 // travel to bumpstop with zero packers and zero ride height (5mm

compression)

Front3rdReboundTravel=-0.065 // prevents rebound travel (for example, when upside down),

55mm max front ride height plus 10mm leeway

Front3rdBumpStopSpring=150000.0 // initial spring rate of bumpstop

Front3rdBumpStopRisingSpring=7.00e6 // rising spring rate of bumpstop (multiplied by

deflection squared)

Front3rdBumpStopDamper=2500.0 // initial damping rate of bumpstop

Front3rdBumpStopRisingDamper=7.00e5 // rising damper rate of bumpstop (multiplied by

deflection squared)

Front3rdBumpStage2=0.060 // speed where damper bump moves from slow to fast

Front3rdReboundStage2=-0.060 // speed where damper rebound moves from slow to fast

Front3rdPackerRange=(0.000, 0.001, 41)

Front3rdPackerSetting=5

Front3rdSpringRange=(0.0, 10000.0, 21)

Front3rdSpringSetting=7

Front3rdSlowBumpRange=(0.0, 250.0, 13)

Front3rdSlowBumpSetting=3

Front3rdFastBumpRange=(0.0, 250.0, 11)

Front3rdFastBumpSetting=1

Front3rdSlowReboundRange=(0.0, 500.0, 17)

Front3rdSlowReboundSetting=2

Front3rdFastReboundRange=(0.0, 500.0, 15)

Front3rdFastReboundSetting=1

Rear3rdBumpTravel=-0.010 Travel to bumpstop with zero packers and zero ride height (10mm

compression)

Rear3rdReboundTravel=-0.090 Prevents rebound travel (for example, when upside-down),

80mm max rear ride height plus 10mm leeway

Rear3rdBumpStopSpring=150000.0 Initial spring rate of bumpstop

Page 15: RFactor Physics

Rear3rdBumpStopRisingSpring=7.00e6 Rising spring rate of bumpstop (multiplied by deflection

squared)

Rear3rdBumpStopDamper=2200.0 Initial damping rate of bumpstop

Rear3rdBumpStopRisingDamper=7.00e5 Rising damper rate of bumpstop (multiplied by

deflection squared)

Rear3rdBumpStage2=0.060 Speed at which damper bump moves from slow to fast

Rear3rdReboundStage2=-0.060 Speed at which damper rebound moves from slow to fast

Rear3rdPackerRange=(0.000, 0.001, 61)

Rear3rdPackerSetting=10

Rear3rdSpringRange=(0.0, 10000.0, 21)

Rear3rdSpringSetting=8

Rear3rdSlowBumpRange=(0.0, 250.0, 13)

Rear3rdSlowBumpSetting=3

Rear3rdFastBumpRange=(0.0, 250.0, 11)

Rear3rdFastBumpSetting=1

Rear3rdSlowReboundRange=(0.0, 500.0, 17)

Rear3rdSlowReboundSetting=3

Rear3rdFastReboundRange=(0.0, 500.0, 15)

Rear3rdFastReboundSetting=1

[CONTROLS]

Control details.

SteeringFFBMult=1.1 Vehicle-specific steering force feedback multiplier, useful if the car has

heavy or light steering.

SteerLockRange=(6,0.5,73) Steering lock of the car in degrees. Due to the fact that all controllers

have different precision this should be highly adjustable. If you are developing physics for a race

car, a max lock of about 32 degrees should be sufficient. If it's a road/rally car you should allow

up to about 40 degrees so that users who own Driving Force Pro steering wheel's and other

similar wheels are able to use realistic steering turn ratios, due to the ability to maintain precision

even with large steering lock. It will make their lives easier, and allows them to compete in

online races when they wish to use large steering lock.

RearBrakeRange=(0.25,0.005,101) Rear brake bias, shouldn't have extreme adjustability. Unless

you know the real life adjustments, leave them as stock in the HDV, this does not really matter.

If you feel that it is difficult to adjust brake bias while driving you could reduce the gap between

settings, in doing so you will have greater precision in the adjustability.

RearBrakeSetting=15

BrakePressureRange=(0.75, 0.05, 6) Shouldn't have much adjustability either. Maximum should

NOT exceed 1. Road cars shouldn't have the luxury of this adjustment, but seeing as this is still a

game, you may want to leave some slight adjustability. Certainly, I would doubt that there should

be a need to have any more adjustability than the above example.

Page 16: RFactor Physics

HandbrakePressRange=(0.00, 0.05, 1) Change First value to a setting of 1 to enable handbrake.

Of course if the car has a pathetic or hard to use handbrake you can lower the value a little. Or

you can change the 3rd value and have users choose their own handbrake pressure.

HandbrakePressSetting=0 Default handbrake pressure setting.

UpshiftAlgorithm=(0.975,0.0) Fraction of rev limit to auto-upshift, or rpm to shift at (if 0.0, uses

rev limit algorithm).

DownshiftAlgorithm=(0.91,0.70,0.60) High gear downshift point (% of max revs), low gear

downshift point, oval adjustment

AutoUpshiftGripThresh=0.63

AutoDownshiftGripThresh=0.63

TractionControlGrip=(1, 0) I prefer a no grip advantage gained by using aids only easier control

performance gains. If the vehicle has traction control in real life, you can permit small gains.

TractionControlLevel=(0.4, 0.8) Second traction control value should generally be near worst

case senario traction control levels, such as intermediate tires on a full monsoon track with

controllable amounts of wheelspin. Remember that most real TC devices used in racing wouldn't

be able cope with slicks in the rain either. Road cars, generally, are more conservative and biased

towards circumstances such as driving on ice in Sweden. The TC's effectiveness is dependant on

whether it's biased towards 'safety' or 'performance', and whether the system uses only ABS

sensors or incorporates accelerometers or is part of a complete vehicle stability system.

ABSGrip=(1, 0) Again, if the vehicle does not have an ABS system in real life, I recommend

using a no-grip advantage setting, such as in this example.

ABSLevel=(0.30, 0.90)

OnboardBrakeBias=0 Whether brake bias is adjustable from the cockpit of the car. A value of 1

allows you to change brake bias as you drive. A value of 0 will force any brake bias changes to

be done in the pit garage, assuming they are possible at all.

[ENGINE]

Engine details.

SpeedLimiter= Whether or not the car has a speed limiter designed for the pitlane.

Normal= File name of the engine file.

RestrictorPlate= If there is an entry in the GDB track file that specifies a particular round uses

the restricted engine ("RestrictorPlate=true") the game uses this lower powered engine file

instead. If there is only a single version of the engine, both variable inputs should refer to the

exact same file.

Page 17: RFactor Physics

[DRIVELINE]

Driveline details.

ClutchInertia=0.00472 Inertia of the clutch. Heavy clutches, as used in a road going Dodge Viper

for example, could have as much inertia as 0.02+.

ClutchTorque=1009.5

ClutchWear=0

ClutchFriction=7.206 Friction produced by the drivetrain? Light clutches also generally have less

friction.

ClutchEngageRate=0.4 How quickly clutch is engaged with auto-clutch driving aid.

BaulkTorque=360 How much torque clutch can handle before slipping. Should roughly equal

max engine torque, and probably always greater, except possibly some modified road cars

without upgraded clutches...

AllowManualOverride=0 Whether manual shifting temporarily overrides the auto shifting aid.

SemiAutomatic=0 Whether throttle and clutch are operated automatically without any driver aids

enabled. Clutch must be used for launches and in spins (At any time the car is stationary, such as

an F1 car).

UpshiftDelay=0.160 Delay in seconds when selecting a higher gear (low for semi-automatic

vehicles, higher for manual)

UpshiftClutchTime=0.125 Time to ease auto-clutch in AFTER upshift (0 for F1 cars) Usually

should be quite low.

UpshiftLiftThrottle=0.00 Lift to this throttle fraction while upshifting (if controlled by game not

player))

DownshiftDelay=0.160 Delay in seconds when selecting lower gear (low for semi-automatic,

higher for manual)

DownshiftClutchTime=0.225 Time to ease auto-clutch in AFTER AFTER downshift (used to be

SemiAutoClutchTime) Downshift should generally take longer.

DownshiftBlipThrottle=0.70 Percentage of throttle used to blip if controlled by game AI (instead

of player). Also used for Auto gearboxes and clutches.

WheelDrive=REAR Which wheels are driven: REAR, FOUR (even torque split), or FRONT

GearFile=ZR_gears.ini Ratio file name, Must come before final/reverse/gear settings!

AllowGearingChanges=0 Stops changing of stock ratios until one buys a tranny upgrade. If you

wish for the transmittion to be adjustable as stock, you can remove this entire variable.

Page 18: RFactor Physics

AllowFinalDriveChanges=0 Similar to above, except it leaves the final drive ratio stock until a

diff upgrade is purchased.

FinalDriveSetting=1 Indexed into GearFile list

ReverseSetting=0

ForwardGears=5

Gear1Setting=2

Gear2Setting=9

Gear3Setting=14

Gear4Setting=18

Gear5Setting=20

DiffPumpTorque=250 At 100% pump diff setting, the torque redirected per wheelspeed

difference in radians/sec (roughly 1.2kph)

DiffPumpRange=(0.0,0.10,1) // Differential acting on all driven wheels

DiffPumpSetting=0

DiffPowerRange=(0.75,0.25,1) // Fraction of power-side input torque transferred through diff

DiffPowerSetting=0 // (not implemented for four-wheel drive)

DiffCoastRange=(0.25,0.25,1) // Fraction of coast-side input torque transferred through diff

DiffCoastSetting=0 // (not implemented for four-wheel drive)

DiffPreloadRange=(10.0, 5.0, 1) // Preload torque that must be overcome to have wheelspeed

difference

DiffPreloadSetting=0 // (not implemented for four-wheel drive)

[FRONTLEFT]

Some front left suspension, wheel, and brake details. The *.PM contains any remaining details.

BumpTravel=-0.010 Maximum permitted upward suspension travel

ReboundTravel=-0.12 Maximum permitted downward suspension travel

BumpStopSpring=160000 Initial spring rate of bumpstop

Page 19: RFactor Physics

BumpStopRisingSpring=1.20e7 Rising spring rate of bumpstop (multiplied by deflection

squared)

BumpStopDamper=2000 Initial damping rate of bumpstop

BumpStopRisingDamper=9.00e5 Rising damper rate of same (multiplied by deflection squared)

BumpStage2=0.090 Speed where damper bump moves from slow to fast

ReboundStage2=-0.090 Speed where damper rebound moves from slow to fast

FrictionTorque=7.81 Newton-meters of friction produced between spindle and wheel

SpinInertia=1.633 Inertia in pitch direction including any axle but not brake disc.

CGOffsetX=0.000 X-offset from graphical center to physical center (NOT IMPLEMENTED)

PushrodSpindle=(-.15,-.1,0) Spring/damper connection to spindle or axle (relative to wheel

center).

PushrodBody=(-.25,0.300, 0) Spring/damper connection to body (relative to wheel center).

CamberRange=(-2.0, 0.5, 1) Camber in degrees.

CamberSetting=0

PressureRange=(100, 1, 301) KPa of tire pressure, at the base/starting tire temperature.

PressureSetting=70

PackerRange=(0, 0.001, 1)

PackerSetting=0

SpringMult=1.00 Take into account suspension motion if spring is not attached to spindle

(affects physics but not garage display)

SpringRange=(80000.0, 5000.0, 1) Spring rate of the suspension, measured in Newtons per

millimeter.

SpringSetting=0

RideHeightRange=(0.1250, 0.005, 1) Ride height in meters.

RideHeightSetting=0

DamperMult=1.00 Take into account suspension motion if damper is not attached to spindle

(affects physics but not garage display)

SlowBumpRange=(4500.0, 250.0, 1)

SlowBumpSetting=0

Page 20: RFactor Physics

FastBumpRange=(3000.0, 250.0, 1)

FastBumpSetting=0

SlowReboundRange=(6000.0, 500.0, 1)

SlowReboundSetting=0

FastReboundRange=(4000.0, 500.0, 1)

FastReboundSetting=0

BrakeDiscRange=(0.025, 0.000, 1) Brake disc thickness in meters

BrakeDiscSetting=0

BrakePadRange=(0, 1, 5) Brake pad type (Currently not implemented)

BrakePadSetting=2

BrakeDiscInertia=0.750 Brake disc inertia per meter of thickness.

BrakeOptimumTemp=250 Optimum brake temperature in Celsius where peak brake grip occurs.

BrakeFadeRange=400 Temperature outside of optimum that brake grip drops to half (too hot or

too cold).

BrakeWearRate=1.20e-13 Meters of wear per second at optimum temperature with 100% brake

application.

BrakeFailure=(1.4e-2,7.5e-4) Average and variation in disc thickness at which point the brakes

will fail.

BrakeTorque=1850 Maximum brake torque with no wear and at optimumal temperature.

BrakeHeating=0.00100 Heat added linearly with brake torque times wheel speed (at max disc

thickness)

BrakeCooling=(3.60e-2,4.60e-4) Minimum brake cooling rate (base and per unit velocity)(at

max disc thickness)

BrakeDuctCooling=1.18e-004 Brake cooling rate per brake duct setting increase per unit of

velocity, at max disc thickness. In other words, increasing brake duct by a value of 1 will

increase cooling rate per unit of velocity by this much. Velocity is measured in meters per

second.

Section 2 - *.TBC Tire File

Page 21: RFactor Physics

Tires are probably the single most important component when developing physics. Despite the

fact that there are considerably more input variables in the other physics files, about 70% of my

time is devoted to creating accurate tire physics. They connect the car to the road and they are

very complex devices in terms of actual physics behind them.

<________REFERENCE________>.

[SLIPCURVE]

Name= Name of the slip curve

Step= Increment in the slip step, no longer serves any purpose??? ---------- Is THIS TRUE? ------

------

DropoffFunction= This describes how the slip curve dropoff is affected when the peak of the slip

curve changes. The peak of the slip curve may move to a smaller or larger slip when load or

speed changes. When this happens, the slip curve is stretched or shrunk to match. The

DropoffFunction parameter allows you to affect the behavior beyond the peak when this

happens: -1.0 = dropoff occurs faster as peak increases. The higher the peak (greater the load),

the more precise car control is required. 0.0 = dropoff curve does NOT change shape when the

peak changes 1.0 = dropoff curve is stretched or shrunk with the rest of the curve, which means

the dropoff may feel more gradual as the peak increases. This is the default (and was the original

behavior for NT03 and F1C). Note that you can pick in-between values for a blend of behaviors.

______REVISE ! ___ When DropoffFunction is set to 1, the entire slip curve is multiplied

according to the Long/LatPeak values. In other words, if one of these peak slips is set to

(0.1,0.3,15000) then the peak of the slip curve at 0 load will now be at 0.1, or Sin-1(.1)=5.74

degrees. The entire slip curve will be moved according to this value. If peak grip is acheived at

0.18 (10.37 degs) according to the slip curve, this will mean the entire slip curve slip step is

multiplied by 0.555r. Disregarding aerodynamics, you will now be able to slide approximately,

0.555x as much as the slip curve would normally allow. Using a value of 0 would simply shift

the entire curve after the peak, removing a value of 0.08 from each slip step after the peak. The

initial slope is still multiplied by the peak slip though, therefore anything before the normalized

value of 1 in the data section is multiplied by 0.555. Grip that was of acheived at 1.00 will now

be shifted to 0.92. A value of 1 will multiply the enitre slip curve. This is why generally having a

value of 1 is considered unrealistic. Because this is a confusing topic, the following diagram has

been created to help you understand.

-------------Note to self: Insert diagram showing an example of -1 dropoff, 0 dropoff, & 1

dropoff.-----------------

Data: This is the actual hard data slip curve. In order to get a true slip curve you must remember

these values will have to be processed by the DropoffFunction, Long/LatPeak and SpeedEffects.

Essentially, this is the base slip curve of the tire, LatPeak for example is intended to alter the

peak of this curve in at high loads. As the tire has increasing loads applied to it, it will inevitably

stretch and slide around more. Due to this effect, the whole car will find a peak slide at a higher

angle than originally at the lower loads. Good news is that unless you are creating a gravel road

tire, this probably won't need too many alterations.

Page 22: RFactor Physics

Creating a rally mod would be a huge challenge to anyone, mainly in terms of physics. Rally cars

need significantly more slip to acheive proper grip levels. They need to move the loose particles

away and 'dig' down to some more firmly in place gravel. rFactor game engine is not really

designed to deal with this, huge CPU processing power is required to create realistic rally

physics, rF is designed to run smoothly with many opponents on a moderately fast computer.

That doesn't mean rally is hopeless and beyond this game though. We can comprimise by

skipping the cause and attempting to get the effect in a similar fashion to all other games. This

means some SLIGHT accuracy is lost when not applying the maximum performance limit. A

rally tire is designed to dig deep into the surface and grip as much as possible. At low slip angles

(and loads) there is only loose dirt and very low grip levels, therefore, the initial slip curve has to

be much flatter. Unlike a road surface you actually slide around more at lower loads.

[COMPOUND]

DryLatLong= Grip coefficients. First is lateral grip (cornering), second is longitudinal grip

(acceleration and deceleration) in DRY weather. Usually both should use the same value,

perhaps with the exception of rally and drag cars, which may have more slightly more

longitudinal grip.

WetLatLong= Same as above, but on a 100% wet track.

Radius= Radius of Tire. If you have numbers such as these 265/40 R17 we can determine needed

dimensions for rFactor. Firstly use 265*0.4 (the 40 part is 40% or 0.4 in multiplication terms)

then add half rim radius 8.5*(conversion constant, inch to millimeters convertion = 25.4), giving

a value of 321.9 or in metres, 0.3219 (game ready). The complete formula is

(Width*(Profile/100)+(0.5*WheelRadius*25.4))/1000.

RadiusRPM= Increase in the radius per RPM of wheel spin. Usually less than 2e-6. Wider and

higher radius Tires should have a fairly high value for this. Older cars would have much larger

values, such as 1970's lemans cars. I estimate the most extreme value could be closer to 1e-5.

Width= Tire width in metres. So if your tire size is 265/40 R17, then it's simply the first value

divided by 1000. 0.265 game ready.

SpringBase= Impact absorption of the Tire. How much the Tire will deform as weight is applied.

Weight on the changes on the tire over bumps or under braking/acceleration/cornering. If you

look at the tire and the rim is graphically touching the ground over bumps or in cornering, this

value is much to low (unless the car fell from a height of 50m, or you have a puncture).

Generally with modern race vehicles it's very hard to see ANY deformation. Low profile tires

should have a larger value than normal/high profile Tires.

SpringkPa= Similar to base but this is multiplied by air pressure. I think that the stock rFactor

value of ~1396 is about right for anything, either way this value should definitely have little

variation, much less than the value above.

Damper= Like spring dampers but this value acts upon the tires. This value usually needs to be

increased when CG is increased. Values of over 2000 should be common with race slicks. F1's

should have this quite low.

SpeedEffects= First value is the velocity at which the tire has half it's stationary grip, due to

expansion of the tire at high speeds. Velocity is measured in metres per Second, which when

Page 23: RFactor Physics

multiplied by 3.6 is converted into Km/h. Alternatively, you could multiply meters per second by

2.237 to get a MPH equivalent. Second value is speed load equivalency at this speed. 1st Value,

has a reasonable range of around 350-500. This is probably accurate for most vehicles, possibly

for some 70's cars it may be accurate to go down as low as 300m/s. A modern low profile racing

slick would experience a lesser drop off with speed, so a value of around 500 would be probably

be accurate.

The peak of the slip curve is dynamically adjusted to higher or lower slip values based on current

load and speed. The second value of "SpeedEffects" is an equivalency value for load and speed.

To calculate the slip peak, we use the following input which is a combination of load and speed:

= + ( * )

Obviously a larger equivalency value will make speed a more dominant factor in the calculation

of the peak.

LoadSensLat= Grip reduction of the tire (in a lateral sense) when load is applied. 1st Value is

initial slope of the drop off caused by increasing load (weight) on the tire. 2nd Value is the grip

multiplier when the tire is at the 3rd values load rating. Load is measured in Newtons.

(2e-5, 0.5, 25000), these values, would mean at 25000 newtons the tire has 0.5x (half) the grip it

would normally have. 1 Kilogram = 9.80665 Newtons, so 25000 newtons is about 2550kg or if

you prefer about 5620lbs. (1 Pound = 4.4482 Newtons)

LoadSensLong= Similar to above, except longitudinally. If you wish to keep LoadSens the same

laterally and longitudinally, you can replace these values with LoadSens=.

LatPeak= Peak tire slip. The effect of altering this is a change to the feel of precision. First value

is the peak of slip @ 0 load, in sine-1 (Sin-1(value)=Degrees). Second value is the peak SAE of

slip/slide at the third value, which is maximum load that makes a difference to the flex of the

rubber of the tire. At 0 load, you will not have any grip.

LongPeak= Similar to above, just in a longitudinal aspect.

LatCurve= Lateral slip curve data.

BrakingCurve= Decelerative slip curve data.

TractiveCurve= Accelerative slip curve data.

CamberLatLong= The first value represents peak camber in degrees. Second value is lateral grip

increase at peak camber. The final value is longitudinal grip decrease at peak camber. (Peak

Camber, Lateral increase at peak, Longitudinal decrease at peak).

HeatBasePeak=(0.15, 0.02) Base peak slip to compute friction heat, fraction of base to use

(0.0=use dynamic peak slip only)

RollingResistance= Friction created by the tire rolling against the ground. Heavier cars will lose

more performance because of this, the physics engine will take load into consideration and thus

this value does NOT have to be increased simply because a vehicle is heavier. Rather, this value

should reflect width of the tire, compound of tire and to a lesser extent radius. Narrow, hard,

large radius tires generally have the least rolling resistance.

Page 24: RFactor Physics

Heating= (#A, #B) Heat generated by the tires. First value A is generated heat when driving in a

straight line, second value B is heat generated when the tires are slipping.

Transfer=(#A, #B, #C) Heat transfer to (road, static air, moving air). The first value A, defines

how much heat is trasfered when the tire is in contact with the road surface. Second value B, is

the heat transfered to static air. Finally C, the transfer of tire temperature when the vehicle and

it's tires are moving through the air.

HeatDistrib=(#A, #B) (A = Max camber angle, B = max off-pressure) that affects heat

distribution (higher number -> less temperature difference). The first value

AirTreadRate=0.013 Heat transfer between the average tire tread temperature and the air inside

the tire.

WearRate= How quickly the tire wears, I believe wear follows a linear progression ----True?----.

Softness= Used to determine when AI pit for different tires depending on weather conditions.

Also determines the starting compound for AI.?? Untested theory.---?????----

AISens= Simplified load sensitivity for use by AI drivers. Linear rather than exponential as the

player car. Reduces CPU use. Because this is linear it would probably be wise to set this to lower

drop-off than player car, this is because most time is spent at mid-range of the loads rather than

max loads. This can be used to improve stability of AI cars.

AIGripMult= Grip multiplier for the AI. If AI is too slow, or are spinning these values can be

altered to give them speed, and/or stability.

AIPeakSlip= Peak AI Tire slip, similar to LatPeak/LongPeak only for the AI. This does not

change dependant on load, if AI slides around a lot and are unstable as a result reduce this value,

especially at the rear. Otherwise, if you have no such issues, try find the player peak average slip

and use those values.

AIWear= AI Tire wear rate. AI will need to have a much lower wear rate than the player.

Temperatures= Optimum operating temperature for peak grip (Celsius), starting temperature.

First value is peak operating temperature of the tires. Most race tires peak at 90-105 degrees

celcius. For Road cars (I'm guessing here) about 70-85. Wet race tires should peak at low

temperatures, I'm guessing an F1 monsoon tire should peak at about 75. Second value is starting

temperature of the tires, a fresh set of rubber starts with this temp.

OptimumPressure=(154.0, 0.0170) Base pressure to remain flat on ground at zero deflection, and

multiplier by load to stay flat on ground. You will never ever want to have less tire pressure than

the base setting. On top of this a vehicle has a mass, which exerts a weight force on the tires.

This load (measured in newtons) is multiplied by the second value to obtain a .

GripTempPress=(1.6, 0.9, 0.50) // Grip effects of being below temp, above temp, and off-

pressure (higher number -> faster grip dropoff)

Page 25: RFactor Physics

Section 3 - *.PM File

[BODY]

name=body mass=(522.0) inertia=(388.0,423.0,25.0)

Mass= Weight of the vehicle without rigidly attached parts. Rigidly attached refers to everything

that remains stationary (in regards to the vehicle main body) when the vehicle is in motion.

These are things such as wheels, Tires, and suspension, which weigh between approximately 150

and 200kgs. All other objects should not be deducted from this value.

Inertia= Firstly if the car mass is double. You should double all inertia values then you must take

into consideration whether or not the mass is spread further out than an F1. Which it always is

(except things like Go-Karts, and RC cars). This is known as polar moment. When mass is twice

as far away from the central point it will double inertia in that dimension. (Section 1See for best

explanation). These values are recalculated from the HDV Inertia and Mass values based on the

suspension mass and inertia values below.

Ok now for the good stuff. Roll Centres, Camber Change, Anti-Dive, Anti-Squat, etc. Will be

described in greater detail at a later stage.

Roll Centre: This will probably be the most important and crucial aspect of suspension geometry.

This is especially true if you're making physics for a truck or a go-kart (something with a very

high CG, or very low CG). Roll centre is basically the point where cornering forces are

positioned. If roll centre matches centre of gravity the car will have no body roll! As in real life

however, this is not optimal, there are trade offs involved. Generally you want the rear to have a

higher roll centre than the front, and I can't see any exceptions, as this maintains vehicle stability.

The best way to lift roll centre and reduce body roll is to lower the Upper inside A-arms (lifting

them will have the opposite effect).

Camber Change: This defines how much camber is gained as the suspension is "lowered". The

desired effect is that the outside tires will gain more negative camber in a corner. Undesired

effect is that under power, under brakes, over bumps, and at high speed the car losses excessive

longitudinal grip by running too much camber in those particular circumstances (when

suspension drops). Too much camber gain can even reduce lateral grip. A comprimise has to be

found.

Anti-Dive: is when suspension is angled to distribute some brake force to an unmoveable

component of the suspension thus increasing resistance to the cars brake angle. How it works is

that you rotate the front suspension, in a pitch sense. Front arms should be moved downward and

the rear arms upward to see the desired effect. The problem with this is that it introduces a

terrible trade-off known as bump steer. Bump steer causes the suspension to steer when you

drive over a bump, reducing grip and causing instability to some degree. Very few race cars

actually use Anti-dive. Anti-squat is similar but reduces the accelerative downward movement of

the rear suspension, this is more frequently used, but still has similar trade off.

Anti-Squat: Ie.

[BAR]

Page 26: RFactor Physics

[BAR] // forward upper arm Posbody=body Negbody=rr_spindle Pos=(-0.185,0.095,1.16)

Neg=(-0.67,0.14,1.42)

Posbody defines what the inside suspension arm is connecting to, in this case the suspension

joins to the "body". Negbody defines to what the other end of the suspension arm joins to, in this

case "rr_spindle" or the right rear spindle/hub. We would prefer keeping to standard conventions,

i.e. Pos defines the inside connection to the vehicle body/chassis. Neg should thus be the outer

joint, where the arm joins to the spindle/hub which connects to the wheel. The first value for

both Pos, and Neg is the X axis location (width). Second value is height (Z axis) in reference to

wheel center. Third values are distances from the arm to centre of the model in a longitudinal (Y

axis) sense.

To reduce body roll, we would like to increase the roll center closer to the CG. To acheive this

reduce the second value in Pos for both upper A-Arms. Make sure to do this for front and rear

arms and straight links or steering arms, and both left and right sides. You should have changed

6 values just for the rear suspension. Another 6 for the front. Front should all be very similar to

each other and same with the rear, however front and rear values can differ quite a lot.

Live axle suspension

rFactor now supports live axle at the front as well as the rear.

Section 4 - Engine.ini File

RPMTorque= The first value is RPM. Second value is engine braking torque(In Newton Metres).

Third value is torque (In Newton Metres). Engine Braking Torque is essentially speed reduction

whilst in gear with no throttle. Formula to get power from Torque & RPM: Horsepower =

Torque(NM)*RPM/7120.8 Torque(NM) = Horsepower*7120.8/RPM

FuelConsumption= Fuel consumption of the engine, this is affected by throttle and engine speed

as in real life. This variable defines the maximum possible fuel consumption rate of the engine.

This value should have a strong correlation to max horsepower and torque.

FuelEstimate= // fudge factor for differences between vehicle types (used for lap estimates and

AI pit scheduling)

EngineInertia= Using the engine capacity is usually a good way to estimate this value. It is best if

you know the engine mass and size but that information can be hard to find. The value should

increase as the engine size increases. A value of around 0.1-0.2 is about right for 4 Litre race

engine. For a road going 8 Litre V10 Viper I'd guess 0.3 or more would be accurate. This value

should increase slightly for turbo charged engines, especially high boost or high lag turbos, but

only alter the values slightly for Turbos! To simulate lag the best is to reduce low end power and

reduce high end engine braking.

IdleThrottle=1.0 // throttle multiplier to help maintain idle speed

IdleRPMLogic= 1st value is the lowest idle of the engine. 2nd is the max idle. Should be close to

each other.

LaunchEfficiency= Used for launch control. Defines how fast you get off the line using it. A

value of 1 is theoretically perfect acceleration. Try about 0.95 for an Enzo as nothing is perfect.

Page 27: RFactor Physics

New Formula 1 vehicles would come very close, especially Renault. I guess about 0.98 or

higher? You may delete this entire value if the car doesn't have LC in real life.

LaunchRPMLogic= (NOT EXPLAINED PROPERLY YET) Minimum RPM when launching

and Normal Launch RPM. Set the second value a fair bit higher about 600-2000rpm higher. AI

uses this value to determine launch RPM, so don't delete it if the car doesn't have launch control,

or the AI may have some very slow starts.

RevLimitRange= Rev limits on most cars are not adjustable. If the vehicle you are creating has a

programmable ECU then this should be adjustable.

RevLimitSetting=5

RevLimitLogic=150.0 // RPM range around current setting where rev limiter operates

RevLimitAvailable=1 Whether to use an engine rev limiter. If you choose to disable this setting,

you still must have a "rev limit", just make it 40000 or so, and be sure to change [CONTROLS]-

>UpshiftAlgorithm to fix shifting points. Otherwise the AI (also the auto gearbox) will never

shift gear.

EngineMapRange=(0, 1, 5) 0 = most driveable, max = most power (low gears only) Currently is

unimplemented and can not be used.

EngineMapSetting=2

EngineBrakingMapRange=(0.0, 0.000133, 5) Input throttle is ranged from minimum to 100%,

with the minimum = setting * step * RPM.

EngineBrakingMapSetting=2 The default is 1 * 0.000133 * 15000 RPM = 2% applied throttle at

zero input throttle

OptimumOilTemp= Engine oil temperature in Celsius where engine is producing its peak

performance. Usually less than 100. Use around 90 for road cars, unless you have more accurate

information. A few more degrees above this value the engine will remain at practically optimum

temperature, this is the temperature the driver should aim for when driving in the game.

CombustionHeat= This depends on how efficient your car engine is. Generally the more efficient

the higher this value is (not the major factor though). This is because the fuel is completely

burned hence creating more heat (only because it is relative to fuel burned). Usually between

about 35 and 45. Smaller engines generally gain more heat per liter of fuel burned.

EngineSpeedHeat= Usually the lower the max RPM of the car the higher this value. Between 6e-

4 And 1.2e-3.

OilMinimumCooling= Minimum cooling of oil through the engine block itself.

OilWaterHeatTransfer=(5.500e-003,9.050e-005) // heat transfer from oil to water (base, w/

engine speed)

WaterMinimumCooling= When car is stationary this defines amount of cooling the engine

receives. Depending on whether the radiator has a fan to cool it or not can vary this largely. If it

does then value should be set so that the car can stay stationary without overheating (if the

Page 28: RFactor Physics

temperature rises slightly that's ok). If it doesn't have an engine fan the engine should start to

overheat after about 3 minutes and possibly retire in about 20mins. However this depends on the

car, and it's very hard to determine..

RadiatorCooling= 1st setting. Defines how much cooling the radiator provides as the car is

moving. 2nd setting the increase in cooling as you increase the radiator duct.

LifetimeEngineRPM= 1st setting determines after which point the engine starts increasing its

wear rate beyond the Lifetime already predetermined. This value should be set below the

minimum RPM rev limit. The 2nd value determines how many RPM after this the engines life

time is cut in half. Usually between 100-300 RPM. If it's set to 150 and you over rev by the first

value by 300 for 1 second you will remove 4 seconds of engine "lifetime".

LifetimeOilTemp= Similar story to the setting above. The temperature (1st setting) is set maybe

about 5-10 degrees above the Optimum Water Temperature. The second value is usually about 3,

this defines the point at which the engines lifetime is halved. Lower values result in earlier

retirement from overheating..

LifetimeAvg= Average lifetime of the engine in seconds. Depends on how long a race is. For

highly tuned and stressed race engines, this value should usually be around 1.3-1.6x the length of

races. This setting assumes that the 2 previous Lifetime variables are never far exceeded, which

is why it must be higher than race lengths (if the car can finish the race under normal

circumstances). This is the base engine life.

LifetimeVar= Random variation in engine lifetime. About 30% of lifetime average however it

can probably be as low as 10%. Depends on the similarity of the reliability is. If a car constantly

retires at very similar stages of the race, then this value will be low. If it has very good reliability,

it will be difficult to guess. Generally speaking though, reliable engines have lower life time

variation.

EngineEmission=(0.0, 0.50, 0.0) Where flames and smoke are emitted (relative to ref frame at

rear axle)

EngineSound=(0.0, 0.50, 0.0) Where engine sound is played (relative to ref frame at rear axle)

SpeedLimiter=1 Whether vehicle has a pitlane speed limiter

OnboardStarter=1 Whether vehicle has an onboard starter system.

StarterTiming=(1.4, 0.4, 2.5) Average and variable cranking time, then time to blend with

starting sound

Section 5 - Terrain.tdf File

Sub-sections

Page 29: RFactor Physics

[TRACKVARS]

Track variables are simply variables you can refer to from the [FEEDBACK] section. Generally

these are used to change 'bumpiness' or grip levels of surfaces. Therefore, you can add as many

of these track variables as you wish. To refer to these you simply must replace the input variable

of a feedback property with a name that will uniquely identify it. Here's an example;

// Gravel

[FEEDBACK]

Dry=0.52 Wet=0.50 Resistance=5000.00 BumpAmp=0.052 BumpWavelen=4.0 Legal=false

Spring=0.0 Damper=0.0 CollFrict=0.8 Sparks=0 Scraping=0 Sink=0.017 Sound=gravel

We could replace Dry=0.52 with GravelDryGrip, this must then be refered to from the

[TRACKVARS] section as GravelDryGrip=0.52. With any value.

The advantage of doing this is that you can now edit these variables on a per track basis.

For example, let's use the Mills_Long circuit,

If underneath

Track Record = Brad Shuber, 53.669

We Add

RoadDryGrip=0.96

So that it looks like

Track Record = Brad Shuber, 53.669

RoadDryGrip=0.96

This will reduce the road surface grip at only this track, this can be used for street circuits or

other circuits with a lower surface grip. Generally 1 should not be exceeded, we like to use it as

completely 100% optimal grip surface.

It's now possible to use an entirely new terrain file per track. In order to do so you will need to

add a TerrainDataFile= entry into your *.GDB file. The file should be given the same name as

the track as to avoid any possible conflicts.

These are the default [TrackVars] used in rFactor.

RoadDryGrip=1.00 Multiplier of grip on dry tarmac roads, or if you prefer, the main track itself.

RoadWetGrip=0.75 Multiplier of grip on wet tarmac roads.

RoadmetalGrip=0.80

RoadDustGrip=0.90

RoadBumpAmp=0.006 Bump Amplitude of the road surface. This has the effect of changing

severity of the bumps on the main road.

RoadBumpLen=8 Bump "wavelength" of the road surface. This has the effect of changing the

speeds at which the bumps become most noticeable.

RumbleDryGrip= Grip Multiplier to slightly reduce dry grip on ripple/rumble strips versus

normal ashpalt.

RumbleWetGrip= Grip multiplier to considerably reduce wet grip on ripple/rumble strips versus

normal ashpalt and dry conditions.

RumbleBumpAmp= Bump amplitute of ripple/rumble strips.

RumbleBumpLen=1

Page 30: RFactor Physics

MiscBumpAmp=0.08

MiscBumpLen=4.0

[FEEDBACK]

// Gravel

[FEEDBACK]

Dry=0.52 Basic dry weather grip multiplier

Wet=0.50 Basic wet weather grip multiplier

Resistance=5000.00

BumpAmp=0.052 Bump Amplitude of the surface. Basically, this alters the apparent severity of

the surface bumpiness.

BumpWavelen=4.0 Wavelength of the bumps. Changing this will make the bumps more

apparent at different speeds.

Legal=false Whether it is legal to use this surface. Basically tells the AIW editor whether to

classify this as a potential terrain type the could be classified as cheating.

Spring=0.0 Spring rate of the terrain.

Damper=0.0

CollFrict=0.8

Sparks=0 Whether sparks are generated with collisions to this surface.

Scraping=0 Whether sounds are generated?

Sink=0.017 How far the tires will 'sink' into this surface.

Sound=gravel The sound used when travelling on this surface type.

[LOOSE]

Section 6 - Gear_ratios.ini File

[GEAR_RATIOS]

ratio=(16, 40) These represent the gear ratios used by the vehicle, if you vehicle is a road car

with a 5-speed transmittion generally you will need 6 gear ratios. You will need to remember to

set reverse to the lowest (unless the real vehicle has a higher reverse than 1st gear, very

uncommon). In order to determine the ratio we divide the second variable with the first. In this

case we have a ratio of 2.5.

Going backwards with a numerical ratio value to number of teeth on gears is much more

difficult, generally if you don't know these values, it is easiest to just divide by 1000. If the ratio

of first gear is 3.555 for example, simply add a value ratio=(1000, 3555) to the file. If the

numerical value is 0.855 then ratio would equal (1000, 855).

[FINAL_DRIVE]

bevel=( 1, 1) // 1.000

ratio=(10, 36) // 3.600

Page 31: RFactor Physics

Section 7 - Damage.ini

[PHYSICAL]

RadiusAdd= Base radius to apply damage to vehicle.

RadiusMult= Radius multiplier by collision impulse to increase radius.

Impluse is used to measure the collision force. The formula for impluse is (mass*velocity)/time.

RadiusMax= Maximum radius to apply damage, no matter how much impluse.

Engine= Impulse required to seize engine, at this point, you will be unable to restart the engine.

AeroDiv= Multiplied by impulse to affect aerodynamics and vertices.

AeroMin= Minimum impulse to damage aero and verts (unlike everything else, computed

BEFORE damage multiplier)

VertMult= Multiplied by aero damage to get vert damage

RadiatorCoverInstance= Name of the radiator cover. If the radiator cover is knocked off, engine

recieves extra cooling but aerodynamics will suffer.

DeactivateInstance= LowDetailEngine, deactivate this instance if any parts get knocked off.

While all parts are attached, the game will only render this low detail engine to help frame rates.

ActivateInstance= HighDetailEngine, activate this instance if any parts get knocked off.

WallSkidThresh= Minimum impulse to generate wall skid (ignores damage setting and

multiplier)

FrontWingDetach= Minimum impulse to detach front wing (doesn't apply to WC cars)

FrontWingRandom= Fraction of time the wing actually breaks off at the detach impluse. Note

considerablely large impluse will always result in detachment of wing.

FrontWingPos=(0,0,0) // If zero, automatically finds position of wing from graphics to check for

damage

FrontWingMassInertia=(10, 1, 0.5, 1.5) Mass and inertia (Pitch, Yaw, Roll) of the front wing.

FrontWingCollParams=(3600,65, 0.6) // Spring rate, Damper rate, Friction.

RearWingDetach=1900 // Minimum impulse to detach rear wing (doesn't apply to WC cars)

RearWingRandom=1.0 // Fraction of time wing breaks off

RearWingPos=(0,0,0) // If zero, automatically finds position of wing from graphics to check for

damage

Page 32: RFactor Physics

RearWingMassInertia=(10, 1, 0.5, 1.5) // Mass and inertia

RearWingCollParams=(3600,65, 0.60) // Spring/damper/friction

TireCutDull=(6000, 0.25) Impulse and fraction of incidents to cut tire with dull object. Hitting

blunt objects such as brick walls with a high impulse may puncture one of more tires.

TireCutSharp=(500, 0.65) Impulse and fraction of incidents to cut tire with sharp object. A sharp

object can be classified as any body panel or wing.

WheelBend= Minimum impulse to bend suspension arms.

WheelDetach= Impluse threshold to detach wheel from vehicle.

WheelRandom=0.35 Fraction of incidents where wheel actually breaks off

Wheel0MassInertia=(30.0, 1.5, 1.0, 1.0) // Mass and inertia

Wheel0CollParams=(11100.0, 105.0, 1.00) // Spring/damper/friction

Wheel1MassInertia=(30.0, 1.5, 1.0, 1.0) // Mass and inertia

Wheel1CollParams=(11100.0, 105.0, 1.00) // Spring/damper/friction

Wheel2MassInertia=(30.0, 1.5, 1.0, 1.0) // Mass and inertia

Wheel2CollParams=(11100.0, 105.0, 1.00) // Spring/damper/friction

Wheel3MassInertia=(30.0, 1.5, 1.0, 1.0) // Mass and inertia

Wheel3CollParams=(11100.0, 105.0, 1.00) // Spring/damper/friction

Part0Detach= Impulse to make part become debris (see .gen file)

Part0Random= Fraction of time part breaks off

Part0Pos=(0.0,0.0,0.0) // If zero, automatically finds position of part from graphics to check for

damage

Part0MassInertia=(20.0, 2.0, 4.0, 2.0) // Mass and inertia

Part0CollParams=(7200.0, 100.0, 0.60) // Spring/damper/friction

[VERTEX]

DefaultLimit= Limits the maximum movement of vertex damage.

Page 33: RFactor Physics

Section 8 - Upgrades File

UpgradeType="" Name of the upgrade type, for example Rear Wing. This would enable you to

purchase different rear wings.

{

Instance="DEBRIS0"

UpgradeLevel="" Name of the upgraded part, for example Adjustable Carbon Fibre Rear Wing.

{

Picture=""Type_A_F_end.tga Menu picture of the upgrade part.

Description="STOCK Front End" Description of the upgrade part.

GEN==ZR_fbumper_lvl1.gmt Gen file entry of the upgraded part. Visual model upgrade.

}

UpgradeLevel="Type M Front End"

{

Picture=Type_M_F_end.tga Picture of the upgrade option for menu display.

Description="Upgraded front end package offers better aerodynamics" Description of particular

upgrade part.

GEN==ZR_fbumper_lvl2.gmt Change to the Gen file. In this case, this is changing the model of

the front bumper to that of a better version.

Price=150 Cost of this part.

HDV=[GENERAL] When making changes to the HDV file, the category must be defined before

you can make changes to variables within.

HDV=Mass+=3 In order to change variables by certain amounts, you must define lists like this.

+= will increase the amount by this much. You can Multiply *, Divide /, Add +, and subtract -,

HDV=

HDV=[FRONTWING]

HDV=FWRange=(0, 1, 1) // only one setting allowed on this wing

HDV=FWSetting=0

HDV=FWMaxHeight=(0.40)

HDV=FWDragParams=( 0.005, 0.0, 0.0) // 1st & 2nd order not needed unless there

HDV=FWLiftParams=(-0.080, 0.0, 0.0) // is more than one setting

HDV=FWLiftHeight=(0.180)

HDV=FWLiftSideways=(0.50)

HDV=FWPeakYaw=(0.0, 1.0)

HDV=FWLeft=(-0.03, 0.0, 0.0)

HDV=FWRight=(0.03, 0.0, 0.0)

HDV=FWUp=(0.0, -0.04, 0.0)

HDV=FWDown=(0.0, 0.04, 0.0)

HDV=FWAft=(0.0, 0.01, -0.01)

HDV=FWFore=(0.0, 0.0, 0.0) // recomputed from other settings

HDV=FWRot=(0.02, 0.01, 0.03)

HDV=FWCenter=(0.00, -0.10, -0.55) // center of front wing forces (offset from center of front

axle in ref plane)