Upcoming Events

Weekly BMW races on Simracing.GP Other regular AC events on Simracing.GP Weekly GT3 Sprint Races on Simracing.GP Weekly GT4 Sprint Races on Simracing.GP Daily WTCR races on Simracing.GP

car.ini > Tires

I think a big issue with pacejka and getting tyres right is the compromise you need to put in there to make the mixing/combining of forces do what you want them to do.

Pacejka89/94.96 or whatever we have here are generally designed for steady state or slightly over the limits.
That means data can be fairly ok for doing braking and accelerating tasks, and cornering etc... but as soon as you get things wrong when driving and get some big slip angles, counter-steer, try drift, or whatever else, then they can react oddly.

In my experience the original Alpine data for the 225/45 R17 was like a genesis moment for us in Racer. Suddenly cars felt like they were driving on rubber patches not just wooden blocks scraping along tarmac!

So we can learn a lot from that data in my view, for road cars at least.

But for me I generated a nice excel sheet and just started making factors to give certain values from input dimensions such as profile, patch aspect, soft > hard compound, and generally that gave ok ish results.
I pretty much did a0...5 and b0...5 then kept most of the C coeffs the same as that hallowed 225/45 R17 data :D

But even now I often find myself tuning tyres iteratively and ignoring what appears sensible. Just play with values in the player.
My current tyres on a road car I'm working on are just the result of hours and hours of testing and tweaking and trying new things out and slowly erring towards a behaviour I like the feel of.

As said, a key issue is post limit behaviour for us, so often we might make wrong choices for a specific case so that post-limit mixing is better.
Ie, I can get a really good near limit behaviour that is horrible over the limit and totally unusable for racing... then you can get really nice over the limit pacejka mixing but the under the limit curves are no good (ie, tyres are almost impossible to spin up in a straight line with 400bhp to rear wheels)

This is something I'd hoped the MF5.2 pacejka would fix as it includes mixing coefficients but in my experience with it thus far it's not so great... even with very sensible curves the behaviour is very odd.
I have a feeling the implementation is wrong but only really Ruud can check that out to be sure.

Just from my perspective, I spent many hours (probably hundreds) in pacejka player back in 2002/2003 ish and learnt oodles about tyres, and also learnt that in the end it all comes down to in-sim results and what you want.
Do you want a tyre that is fun to drive with a realistic response, or ultimate realism (probably not desirable considering Racer is far from a 'complete' sim with it's tyre patch modelling limitations, no bushing simulations, linear suspension kinematics etc etc), or just fun and a bit arcade?
With the E39 BMW M5 ini I made back in the day I spent literally days at the Ring tweaking one coefficient at a time, getting the behaviour I felt was right... same with the BMW M3...

Tweak with the pacejka player, read lots on real tyres, look at real pacejka, THEN do lots of in-sim testing to understand how the values change things, THEN forget it all and use the experience to allow you to make the tyre YOU want... as that is all that really matters in the end :D

Usually the most 'real' data doesn't work the way you want it to for the specific application you have. Ie, I got real data for my exact tyre on my car, same dimensions, brand, load rating, everything, and it was a driving sim abortion worse than anything that had gone before :D

I found this while digging around on google so I thought i'd post it for you guys. I gave this a try on a couple of my cars but the wheels just spun so I thought maybe some of you pacejka geniuses can fiddle around with it :)

EDIT: Here's some info I found on tire spring rates at different camber angles and speeds that might be useful somehow.

Edit #2: I found this PACEJKA for a 245/35/? and it seems to drive pretty well imo.

a0 = 1.65000
The one above looks really odd mainly because b2 is negative. That is probably causing a lot of issues haha :D

Hmmm, interesting on the 245 data though.

A trend I can mainly see as useful to know is load sensitivity would appear to fall off towards zero in long but not lateral.

So I'd say that was probably due to the aspect ratio of the contact patch slowly getting shorter longitudinally with increased width.
To really get an idea of a trend you'd need lots of data sets but for now you might make a guess that load sensitivity is a function of patch length. The short patch for long means the value is quite low, while lateral remains quite high.

The long friction falloff is quite high, so overall grip is replaced by a high b2 value.

So generally this is meaning the wider lower profile tyres become quite insensitive to weight transfer in a longitudinal sense, while remaining quite 'active' in lateral.

It'd be nice to have a 285/30 or 215/40 data from the same tyre family to see, but I can imagine the lateral stays much the same still with 285, with a tighter optimum slip angle and slightly sharper falloff, but the long will probably become even less sensitive to load change but possibly have a higher falloff again.


Very nice find :D

Load sens values are kinda key to the way forces are mixed in my experience (through which forces dominate as you approach/pass the limits in each direction), so it's nice to have some data that shows this kinda trend for wider low-profile tyres :D

Will test later on my Z4 again and see if it makes sense there (255/35 R18 on the rear so fairly close :) )

This pacejka definately looks like it belongs to something wider than the 245/35 I posted last night :D

; SAE 950311 low-speed tire implementation
; Relaxation length laterally (in m)
; Relaxation length longitudinally (in m)
; Damping lat/long speed (in m/s, same for longitudinal and lateral)
; Strength of damping; too little and the car keeps vibrating (low freq.)
; Pacejka constants for all tires
; Use per-wheel though!
; Lateral force
; Longitudinal force
; Aligning moment
; Optimal values (used in Gregor Veble's slip combination method)
; Optimal slip angle in radians (=degrees/52.29578)
A few comments on the last three data sets Silver Ranger posted, in case anybody is wondering what to use them for:
I loaded them into pacejka player to see what they be like under various loads etc. - in other words, I didn't try them ingame yet.

The first set is supposed to be for an FSAE tyre, but it doesn't respond well to the low load levels typical for such a vehicle. In particular the Mz torque is not working as intended. In order to get it going to begin with, a few minor changes have to be made, which revert the mirrored longitudinal curve for example (swapping the sign of b4) and remove the one too many amplitudes on the same curve (lower b8, eg by a factor of 0.1).

The second set appears more usable for typical passenger vehicle weights, or those based on such. It seems quite grippy, with relatively high peak slip angle - maybe meant to be an older, soft touring car compound? Not so much recommended for road cars, perhaps too unresponsive for a lightweight racecar.

The last one looks familiar, it's from the Ferrari 312 I believe? Definitely "made up" numbers, very sharp response, very pronounced grip dropoff past peak, looks a bit overdone to me and based more on myth than actually observed behavior.

edit: To clarify, it's not about "do this" or "don't use that" - one can learn from all the data posted here and as it has been said before, manual tweaking is always required anyhow.
What would be an odd example is if somebody took the FSAE set and used it "as is" or near enough, being under the impression that since it appears to come from a publication, it has to be right for any or all scenarios.
Like Dave said, you try to spot trends, because chances are if you find any pacejka sets at all, they're not precisely what you need right now, they're incomplete or from a different version of the pacejka model... so you want to get an idea of where things are going, relative to a "tried and proven" data set for instance.
I begin this discussion time ago. Now, I'm very bussy but with the hope of come back and continue with Racer.
Thank you very much for all the post and information. The Racer forum is a great forum.


RACER Developer
Some info I've found out during the years:
- Pacejka data is hard to come by; even then, often some coefficients are slightly modified compared to the original test results.
- Tire data is quite unreliable when it comes to combined slip. Even when trying to measure this explicitly, it's not really great, or small, even. ;-)
- Pacejka handles Fx/Fy/Mz (lon/lat/aligning moment), but doesn't really give you tire spring stiffnesses. TIR files do. Pacejka coefficients are really only a subset of a tire's definition.
- TIR files also specificy spring rates (laterally/longitudinally) which will come in handy for low speed tire models (I'm investigating blending towards SAE 980243 for low speed only).
- Typical spring rates for tires: 100.000 N/m lateral, about 3x that longitudinal. Vertical is around 150.000-300.000 N/m.

- TIR files also specify whether is was the left or right tire. Some coefficients flip sign when you measure left or right (camber influence!).
- TIR files also specify limits to the inputs (slip angle/ratio/load/camber) for which the coefficients make sense. This is also possible in Racer. It then clamps forces (well, inputs really, so the outputs (forces) become clamped implicitly), which makes tire tuning a bit of a black art though.
- A number of Pacejka formula have been introduced in the past; not all implementations use the same sign conventions (flipping lateral axes or such). This makes Pacejka Player important to verify coefficient correctness.
Interesting on the tyre spring rates.

I'd always assumed that vertical wasn't managed by pacejka, hence why we added a vertical rate.

But it seems then that we also need to define lat/long springiness too, as pacejka doesn't actually do that (relax lengths are something different?)

This is another reason then why pacejka tyres often don't feel correct because they are not deforming and deflecting at the contact patch in lat/long!?


Bumping this thread again.

If anyone knows, especially Ruud, we have vertical spring/damping in Racer for tyres right now.

But what about lat/long springing/damping? Is that defined via pacejka coefficient behaviours, relax lengths, damping predict values, damping coefficient values?

It's years since CarLab worked, but it used to suggest values for those inputs (relax length and damping predict lat/long etc)... are they still needed? Should we be tuning them? Or are they just there for legacy support these days due to the new tyre force mixing?
If so where do we define the lat/long springy/damping values?

Would be nice to understand the current proper workflow for setting up the **old** pacejka tyres with all the correct tunable values!

I'm ignoring the new MF5.2 for now until it becomes more heavily supported (pacejka player), and reliable (feels pretty buggy right now when using sensible looking curves which drive nice in old pacejka but feel really odd in MF5.2!)

No idea if this is useful but I will post it here just in case.

Scroll to page 37 and they have a .tir file for some hoosier tires.

Well I took the .tir info in that pdf and dumped it into a pacejka.

; Pacejka89 (0) or MF5.2 (1)?
PCX1 = 1.27872550E+00 ;$Shape factor Cfx for longitudinal force
PDX1 = -3.51415830E+00 ;$Longitudinal friction Mux at Fznom
PDX2 = 6.33383390E-01 ;$Variation of friction Mux with load
PDX3 = 7.11629130E+00 ;$Variation of friction Mux with camber
PEX1 = 1.34635150E+00 ;$Longitudinal curvature Efx at Fznom
PEX2 = 3.84490190E-17 ;$Variation of curvature Efx with load
PEX3 = -3.92323870E-17 ;$Variation of curvature Efx with load squared
PEX4 = 7.42710500E-03 ;$Factor in curvature Efx while driving
PKX1 = 5.85243740E+01 ;$Longitudinal slip stiffness Kfx/Fz at Fznom
PKX2 = 5.47564740E+00 ;$Variation of slip stiffness Kfx/Fz with load
PKX3 = -4.10850790E-01 ;$Exponent in slip stiffness Kfx/Fz with load
PHX1 = 2.14075670E-02 ;$Horizontal shift Shx at Fznom
PHX2 = 2.27382190E-02 ;$Variation of shift Shx with load
PVX1 = -1.65597580E-01 ;$Vertical shift Svx/Fz at Fznom
PVX2 = -3.76003610E-02 ;$Variation of shift Svx/Fz with load
RBX1 = 2.18035740E+01 ;$Slope factor for combined slip Fx reduction
RBX2 = -6.29073440E+00 ;$Variation of slope Fx reduction with kappa
RCX1 = 5.16330770E+00 ;$Shape factor for combined slip Fx reduction
REX1 = 3.14293760E+00 ;$Curvature factor of combined Fx
REX2 = -2.19035810E-01 ;$Curvature factor of combined Fx with load
RHX1 = -1.76110940E-02 ;$Shift factor for combined slip Fx reduction
PTX1 = 0.00000000E+00 ;$Relaxation length SigKap0/Fz at Fznom
PTX2 = 0.00000000E+00 ;$Variation of SigKap0/Fz with load
PTX3 = 0.00000000E+00 ;$Variation of SigKap0/Fz with exponent of load
QSX1 = -5.37765690E-05 ;$Lateral force induced overturning moment
QSX2 = 1.34243430E+00 ;$Camber induced overturning couple
QSX3 = 4.55659640E-02 ;$Fy induced overturning couple
PCY1 = 1.61114770E+00 ;$Shape factor Cfy for lateral forces
PDY1 = -2.56461540E+00 ;$Lateral friction Muy
PDY2 = 1.98332500E-01 ;$Variation of friction Muy with load
PDY3 = 7.88890470E+00 ;$Variation of friction Muy with squared camber
PEY1 = 5.99405940E-01 ;$Lateral curvature Efy at Fznom
PEY2 = -1.05328300E-02 ;$Variation of curvature Efy with load
PEY3 = -5.09521880E-01 ;$Zero order camber dependency of curvature Efy
PEY4 = -4.95122130E+00 ;$Variation of curvature Efy with camber
PKY1 = -5.58259490E+01 ;$Maximum value of stiffness Kfy/Fznom
PKY2 = 2.32682900E+00 ;$Load at which Kfy reaches maximum value
PKY3 = 8.28589030E-01 ;$Variation of Kfy/Fznom with camber
PHY1 = 4.37208140E-03 ;$Horizontal shift Shy at Fznom
PHY2 = 1.84739710E-03 ;$Variation of shift Shy with load
PHY3 = 7.65552290E-02 ;$Variation of shift Shy with camber
PVY1 = 3.68120950E-02 ;$Vertical shift in Svy/Fz at Fznom
PVY2 = 9.40894990E-03 ;$Variation of shift Svy/Fz with load
PVY3 = 4.72409040E-02 ;$Variation of shift Svy/Fz with camber
PVY4 = -2.07519840E+00 ;$Variation of shift Svy/Fz with camber and load
RBY1 = 2.64974160E-02 ;$Slope factor for combined Fy reduction
RBY2 = -2.60705200E+02 ;$Variation of slope Fy reduction with alpha
RBY3 = 5.81120430E-02 ;$Shift term for alpha in slope Fy reduction
RCY1 = 4.83367230E+02 ;$Shape factor for combined Fy reduction
REY1 = -4.10563800E+01 ;$Curvature factor of combined Fy
REY2 = 1.84129220E+00 ;$Curvature factor of combined Fy with load
RHY1 = 3.52670620E-02 ;$Shift factor for combined Fy reduction
RHY2 = 2.56134790E-02 ;$Shift factor for combined Fy reduction with load
RVY1 = 1.62049310E-01 ;$Kappa induced side force Svyk/Muy*Fz at Fznom
RVY2 = -1.43867580E+00 ;$Variation of Svyk/Muy*Fz with load
RVY3 = 1.14411730E+02 ;$Variation of Svyk/Muy*Fz with camberP a g e | 41
RVY4 = -2.77924030E+02 ;$Variation of Svyk/Muy*Fz with alpha
RVY5 = -3.34090680E+02 ;$Variation of Svyk/Muy*Fz with kappa
RVY6 = -6.78885500E-04 ;$Variation of Svyk/Muy*Fz with atan (kappa)
PTY1 = 0.00000000E+00 ;$Peak value of relaxation length SigAlp0/R0
PTY2 = 0.00000000E+00 ;$Value of Fz/Fznom where SigAlp0 is extreme
QSY1 = 0.00000000E+00 ;$Rolling resistance torque coefficient
QSY2 = 0.00000000E+00 ;$Rolling resistance torque depending on Fx
QSY3 = 0.00000000E+00 ;$Rolling resistance torque depending on speed
QSY3 = 0.00000000E+00 ;$Rolling resistance torque depending on speed ^4
QBZ1 = 7.61480610E+00 ;$Trail slope factor for trail Bpt at Fznom
QBZ2 = -1.90805210E-01 ;$Variation of slope Bpt with load
QBZ3 = -1.27311830E+00 ;$Variation of slope Bpt with load squared
QBZ4 = -1.33931020E+00 ;$Variation of slope Bpt with camber
QBZ5 = 2.73790000E+00 ;$Variation of slope Bpt with absolute camber
QBZ9 = 2.22413510E-02 ;$Slope factor Br of residual torque Mzr
QBZ10 = -1.72808380E-03 ;$Slope factor Br of residual torque Mzr
QCZ1 = 1.49377510E+00 ;$Shape factor Cpt for pneumatic trail
QDZ1 = 1.02952700E-01 ;$Peak trail Dpt" = Dpt*(Fz/Fznom*R0)
QDZ2 = -1.92507310E-02 ;$Variation of peak Dpt" with load
QDZ3 = 1.60096060E-01 ;$Variation of peak Dpt" with camber
QDZ4 = 4.13584470E-01 ;$Variation of peak Dpt" with camber squared
QDZ6 = -5.18597130E-02 ;$Peak residual torque Dmr" = Dmr/(Fz*R0)
QDZ7 = -1.64092170E-02 ;$Variation of peak factor Dmr" with load
QDZ8 = 2.44331100E-02 ;$Variation of peak factor Dmr" with camber
QDZ9 = -2.52544490E-02 ;$Variation of peak factor Dmr" with camber and
QEZ1 = 1.18165390E-01 ;$Trail curvature Ept at Fznom
QEZ2 = 5.58891310E-02 ;$Variation of curvature Ept with load
QEZ3 = -2.02787090E-01 ;$Variation of curvature Ept with load squared
QEZ4 = -9.88809180E-01 ;$Variation of curvature Ept with sign of Alpha-t
QEZ5 = -2.44285500E+01 ;$Variation of Ept with camber and sign Alpha-t
QHZ1 = 8.98785560E-03 ;$Trail horizontal shift Sht at Fznom
QHZ2 = 2.98264710E-04 ;$Variation of shift Sht with load
QHZ3 = -1.39465090E-02 ;$Variation of shift Sht with camber
QHZ4 = 6.68692620E-03 ;$Variation of shift Sht with camber and load
SSZ1 = 0.00000 ;$Nominal value of s/R0: effect of Fx on Mz
SSZ2 = 0.00000 ;$Variation of distance s/R0 with Fy/Fznom
SSZ3 = 0.00000 ;$Variation of distance s/R0 with camber
SSZ4 = 0.00000 ;$Variation of distance s/R0 with load and camber
QTZ1 = 0 ;$Gyration torque constant
MBELT = 0 ;$Belt mass of the wheel


Well during some testing in the Sparrow I noticed I was pulling a fun, but unrealistic 1.7G in the corners. I have no clue if this is the proper way to set up a pacejka for .tir files so hopefully someone can correct it if i'm wrong.
Last edited:
Those are the sample files from the ADAMS and MFtyre manuals respectively, both have been posted here before. In order to run .tir files, you can follow the explanation on racer.nl's pacejka page:


Basically, you add two lines to tell Racer to expect MF5.2 data and then tell it to use the .tir file from the given location - that's all.
Only thing with that MF5.2 tyre model seems to be a weird pulling to the left under braking, iirc, no matter what I did.

Almost like there is some sign issues or buggy code in that implementation!?