Physics Broken Rear Axle on Rebuild; Help?

I found a mod on a website that consisted of 2017 NASCAR Cup cars. (Well, technically three mods; one for each manufacturer.) It turns out that whoever made this mod treated it less like a stock car and more like a GT3 car, as there was a lot of stuff that I felt was either inaccurate or could use improving.

I've fixed a lot of things; I rewrote damage,ini to recognize certain parts to break; changed the RPM lights to not max out at 6500 RPM; raised the RPM limit from 9000 to 9500; relocated the fuel tank....the list just goes on and on.

Unfortunately, there is one thing I found that I am not able to fix.
See, the guy who made this assumed that NASCAR was modern, and gave the car a double wishbone suspension all around. While it is true that NASCAR is expected to make use of that in just a year or two, this was not the case in 2017; NASCAR has used a rear-axle suspension for decades.

I decided to cheat a bit, and "borrow" coding from a similar, well-made mod that represents NASCAR circa 1990. I figured it would work.

WRONG.

I can't actually record footage of this (because FRAPS is allergic to AC for whatever reason...), but basically the suspension bounces in place violently. Adjustments have been made, but the results are always bad; most of the time, the car will bounce violently just by being loaded on to the track; after one adjustment, I spun out and the axle immediately popped forward a solid meter in-game; another time the axle just simply fell through the floor, taking the car with it; and yet another time the car behaved like the axle was attached to only the driveshaft. (To be fair, I left out the coding on that last one by mistake)

So, I'm turning to this forum for help.

Here's the relevant suspension.ini you'll want:

[AXLE]
LINK_COUNT=5
J0_CAR=0.38735,-0.105,0.481
J0_AXLE=0.4005,-0.105,0.0
J1_CAR=-0.38735,-0.105,0.481
J1_AXLE=-0.4005,-0.105,0.0

J2_CAR=0.38735,0.030,0.481
J2_AXLE=0.4005,0.030,0.0
J3_CAR=-0.38735,0.030,0.481
J3_AXLE=-0.4005,0.030,0.0


J4_CAR=0.435,0.020,-0.100
J4_AXLE=-0.435,0.020,-0.030

TORQUE_REACTION=-0.5
ATTACH_REL_POS=0.68
LEAF_SPRING_LAT_K=0

And here are some images of the car in the CM Showroom:
__custom_showroom_1594844221.jpg
__custom_showroom_1594844231.jpg
__custom_showroom_1594844238.jpg
__custom_showroom_1594844249.jpg
__custom_showroom_1594844272.jpg


Note: All images taken with "Align Using Data" option selected.

I appreciate the time you've taken and I'll try to give any further information if requested.
 
That's not enough of the suspension.ini to say what's going on, you need to show at least everything from [REAR] to [GRAPHICS_OFFSET] but it'd be easier to just have the whole thing.
 
That's not enough of the suspension.ini to say what's going on, you need to show at least everything from [REAR] to [GRAPHICS_OFFSET] but it'd be easier to just have the whole thing.
Yeah, maybe not my best idea.
Here's the whole thing.

[BASIC]
WHEELBASE=2.794 ; Wheelbase distance in meters (2.348)
CG_LOCATION=0.42 ; Front Weight distribution in percentage


[ARB]
FRONT=60000 ; Front antiroll bar stifness. in Nm
REAR=30000 ; Rear antiroll bar stifness. in Nm



[FRONT]
TYPE=DWB ; Suspension type. DWB Double Wish Bones. STRUT McPherson strut
BASEY=0.05 ; Distance of CG from the center of the wheel in meters. Front Wheel Radius+BASEY=front CoG. Actual CG height =(FWR+FBasey)+(RWR+Rbasey))/CG_LOCATION%
TRACK=1.55 ; Track width in meters (from pivot 3D placement of the 3d model of a wheel)
ROD_LENGTH=0.00015 ; push rod length in meters. positive raises ride height, negative lowers ride height.
HUB_MASS=38 ; Front sprung mass
STRUT_CAR=0.32, 0.35, -0.065
STRUT_TYRE=0.04, -0.140, 0

WBCAR_BOTTOM_FRONT=0.556, -0.165, 0.056 ; Bottom front car side wishbone attach point

WBCAR_BOTTOM_REAR=0.556, -0.125, -0.294 ; Bottom rear car side wishbone attach point

WBTYRE_BOTTOM=-0.02, -0.140, 0.006 ; Bottom tyre side wishbone attach point

WBCAR_STEER=0.42, 0.13, 0.127 ; Steering rod car side attach point

WBTYRE_STEER=0.05, 0.16, 0.11 ; Steering rod tyre side attach point

TOE_OUT=-0.0006 ; Toe-out expressed as the length of the steering arm in meters
STATIC_CAMBER=-2.0 ; Static Camber in degrees. Actual camber relative to suspension geometry and movement, check values in game
SPRING_RATE=115000 ; Wheel rate stiffness in Nm. Do not use spring value but calculate wheel rate
PROGRESSIVE_SPRING_RATE=0 ; progressive spring rate in N/m/m
BUMP_STOP_RATE=105000 ; bump stop spring rate
BUMPSTOP_UP=0.060 ; meters to upper bumpstop from the 0 design of the suspension
BUMPSTOP_DN=0.050 ; meters to bottom bumpstop from the 0 design of the suspension
PACKER_RANGE=0.075 ; Total suspension movement range, before hitting packers
DAMP_BUMP=11000 ; Damper wheel rate stifness in N sec/m in compression
DAMP_FAST_BUMP=4200 ; Damper wheel rate stiffness in N sec/m in fast speed compression
DAMP_FAST_BUMPTHRESHOLD=0.090 ; Damper bump slow/fast threshold in seconds
DAMP_REBOUND=12200 ; Damper wheel rate stifness in N sec/m in rebound
DAMP_FAST_REBOUND=6200 ; Damper wheel rate stiffness in N sec/m in fast speed rebound
DAMP_FAST_REBOUNDTHRESHOLD=0.090 ; Damper rebound slow/fast threshold in seconds

[REAR]
TYPE=AXLE

BASEY=-0.005 ; Distance of CG from the center of the wheel in meters. Rear Wheel Radius+BASEY=Rear CoG Actual CG height =(FWR+FBasey)+(RWR+Rbasey))/CG_LOCATION%
TRACK=1.54
ROD_LENGTH=-0.02
HUB_MASS=43
TOE_OUT=0.0000

STATIC_CAMBER=0.0
SPRING_RATE=140000
PROGRESSIVE_SPRING_RATE=0
BUMP_STOP_RATE=105000
BUMPSTOP_UP=0.07
BUMPSTOP_DN=0.06
PACKER_RANGE=0.085
DAMP_BUMP=8800
DAMP_FAST_BUMP=4400
DAMP_FAST_BUMPTHRESHOLD=0.090
DAMP_REBOUND=12800
DAMP_FAST_REBOUND=5800
DAMP_FAST_REBOUNDTHRESHOLD=0.090

WBCAR_TOP_FRONT=0.35, 0.175, 0.30
WBCAR_TOP_REAR=0.35, 0.175, -0.055
WBCAR_BOTTOM_FRONT=0.44, -0.145, 0.30
WBCAR_BOTTOM_REAR=0.44, -0.145, -0.10
WBTYRE_TOP=0.10, 0.190, -0.005
WBTYRE_BOTTOM=0.10, -0.190, -0.005
WBCAR_STEER=0.47, -0.007, -0.15
WBTYRE_STEER=0.10, -0.010, -0.15

[AXLE]
LINK_COUNT=5
J0_CAR=0.38735,-0.105,0.481
J0_AXLE=0.4005,-0.105,0.0
J1_CAR=-0.38735,-0.105,0.481
J1_AXLE=-0.4005,-0.105,0.0

J2_CAR=0.38735,0.030,0.481
J2_AXLE=0.4005,0.030,0.0
J3_CAR=-0.38735,0.030,0.481
J3_AXLE=-0.4005,0.030,0.0


J4_CAR=0.435,0.020,-0.100
J4_AXLE=-0.435,0.020,-0.030

TORQUE_REACTION=-0.5
ATTACH_REL_POS=0.68
LEAF_SPRING_LAT_K=0

[GRAPHICS_OFFSETS]

WHEEL_LF=0.06 ;Left front graphical offset of the wheel positioning in the x axis (width). + is left - is right movement

SUSP_LF=0.06 ;Left front graphical offset of the suspension positioning in the x axis (width). + is left - is right movement

WHEEL_RF=-0.06 ; Right front as above

SUSP_RF=-0.06 ; Right front as above

WHEEL_LR=0.06 ; Left rear as above

SUSP_LR=0.06 ; Left rear as above

WHEEL_RR=-0.06 ; Right rear as above

SUSP_RR=-0.06 ; Right rear as above

I'd like to add that the CG is set to 0.42, despite NASCAR typically having that number around the ballpark of 50-52. The problem is that because the guy who made the first version based it off a GT car (I actually had to relocate the fuel cell location AND inform the coding the engine was in the front), the whole damn car lurches forward.
__custom_showroom_1594925635.jpg
 
Oh, you don't have the
Code:
[HEADER]
VERSION=4
, that's mandatory for axles, not sure what it'll even do ingame without it.

CG location moving both axles is as-expected, first you do that, then you move the model back into place.
 
Engine location is just for sound. You do that via CoG and inertia purely.

Not sure why BaseY is so ****ed up. If you want 0.50m, you'll probably want BaseY's to be around -0.20 to -0.25 or so, depends on your rod_length and tire diameter. That should be around 500mm.

Open telemetry and the section "suspension travel", put in 1l fuel, tap the gas a bit, let it settle then read out the suspension travel value. That's your suspension 0 position in mm which, when rod_length matches that, your car's height is at the reference point where BaseY, bumpstops etc. are referenced at.

There's a good chance your car is inside of the rear bumpstop. Btw, only BUMPSTOP_UP and DN work for AXLE, packer does not and it ignores your rate; the rate is something like 500k+. Yes it's dumb. Strut front also has that, but packers work and respect the packer rate.

Also, the way to calculate packer is to take that suspension travel value, say 100mm = 0.100m, then add your distance to packer to it. For example 30mm = 0.030m + 0.100m = PACKER_RANGE=0.130.

BUMPSTOP_UP and DN are referenced from the 0 point, and I would guess that the suspension 0 point is something like, I dunno, perhaps 50 or 60mm, then it's possible your rear is inside of the bumpstop already and hence it bounces around due to your -20mm rod_length.

Oh, you don't have the
Code:
[HEADER]
VERSION=4
, that's mandatory for axles, not sure what it'll even do ingame without it.

CG location moving both axles is as-expected, first you do that, then you move the model back into place.

VERSION=3 added something, I think the leaf spring stuff, and VERSION=4 added the ATTACH_REL_POS functionality; or the other way around.

Good practice is to just make every suspensions.ini version 4 to make sure you never forget like I did...

EDIT: And axle will still work fine but it will be missing those features, in my experience. Massive oversteer without ATTACH_REL_POS.
 
Last edited:
Alright, I did find a way to get a clip of what's going on. It should show what the hell is going on.

why the hell is that in spanish the only spanish i know is "no hablo español"


Oh, you don't have the
Code:
[HEADER]
VERSION=4
, that's mandatory for axles, not sure what it'll even do ingame without it.

CG location moving both axles is as-expected, first you do that, then you move the model back into place.

I somehow didn't manage to copy/paste that over to the fourm, but apparently I was using Version 1.1. I have updated the file to read Version 4.



I've honestly run out of ideas. I've uploaded a replay of me attempting to drive a full lap around Laguna Sega in this car (and failing miserably).
I've also included the entire car in the package, so that the replay actually works. Maybe you guy's will spot something i didn't think about.

One thing I have noticed is that the car gets very angry if you change into a gear that isn't reverse, first, or neutral.
 
Okay, it's been a few days, so let me clarify a few things:

I am NOT asking anyone to fix this for me. I am simply asking that you watch the replay included in that file and tell me what you think the problem is. The only reason I included the car files was so that way the replay would actually function correctly.

I've been under a bit of stress lately, so I haven't had much time to tinker with the car blindly. I did try and mess around with the BaseY and the J0 axle numbers a bit, but that didn't seem to do anything noticeable. (I tried modifying both the front and the rear BaseY, using both positive and negative values.)

I'm asking for advice; not for someone to fix it for me. I can't learn anything if I have people baby the setup, and obviously I would pay somebody if I had the money to. I apologize if I didn't make that clear.
 
" There's a good chance your car is inside of the rear bumpstop."

Bounciness issues are generally either something like somehow typoing two more zeroes into the tire or spring rate, or having a stiff packer/bumpstop and spawning the car deep into it.

Packers are current suspension travel + current distance to packer, so if you don't adjust them for every mass, springrate or height change, they won't be where they should be and sometimes the car spawns into them.

Now, like I said, packer doesn't work for AXLE so there is a very good chance that you're inside your BUMPSTOP_UP=0.07.

If the suspension travel is say 100mm, bumpstop distance is 70mm and your car is at -20mm, you're sinking 50mm into the bumpstop, which is hardcoded to be something like 500k rate. That's why it bounces. Find your suspension travel and set the car to that height, then re-calculate damper travels at your desired height. Right now your damper travels might need to be offset to work from the lower height.

Put in

BUMPSTOP_UP=0.50
BUMPSTOP_DN=0.50

Or something, plenty of distance, and see if it fixes it, to make sure you're not contacting anything.
 
I tried to increase the BUMPSTOP to 0.50, as suggested. Didn't really do any good. I then set it to 1.00, but that didn't seem to help either.
I then had the genius idea to set the rear bumpstops to -0.50. I ended up with a car that looked like a lowrider.

bouncy.gif


(Yes, I wasted 20 minutes on making this GIF. No, I could not make the animation speed up.)
 
Did you put an extra 0 or two in the tire rate, then? At this point it's just probably fundamentally off and you're better off scrapping it all and making scratch.
 
Alrighty. Here's the original tire file:

[HEADER]
VERSION=10

[COMPOUND_DEFAULT]
INDEX=0

[FRONT]
NAME=Good Year
SHORT_NAME=GY
WIDTH=0.330
RADIUS=0.355
RIM_RADIUS=0.2413
ANGULAR_INERTIA=1.8
DAMP=500
RATE=427360
DY0=1.6720
DY1=-0.040
DX0=1.5820
DX1=-0.040
WEAR_CURVE=slicksGT3s_front.lut
SPEED_SENSITIVITY=0.002712
RELAXATION_LENGTH=0.08242
ROLLING_RESISTANCE_0=5
ROLLING_RESISTANCE_1=0.00039
ROLLING_RESISTANCE_SLIP=4952
FLEX=0.00066
CAMBER_GAIN=0.206
DCAMBER_0=1.5
DCAMBER_1=-13
FRICTION_LIMIT_ANGLE=6.07
XMU=0.17
PRESSURE_STATIC=30
PRESSURE_SPRING_GAIN=1980
PRESSURE_FLEX_GAIN=0.35
PRESSURE_RR_GAIN=0.4
PRESSURE_D_GAIN=0.005
PRESSURE_IDEAL=33
FZ0=4056
LS_EXPY=0.8118
LS_EXPX=0.8615
DY_REF=1.52
DX_REF=1.545
FLEX_GAIN=0.057
FALLOFF_LEVEL=0.90
FALLOFF_SPEED=7
CX_MULT=1.2
RADIUS_ANGULAR_K=0.007

[REAR]
NAME=Good Year
SHORT_NAME=GY
WIDTH=0.330
RADIUS=0.355
RIM_RADIUS=0.2413
ANGULAR_INERTIA=1.8
DAMP=500
RATE=427360
DY0=1.6720
DY1=-0.040
DX0=1.5820
DX1=-0.040
WEAR_CURVE=slicksGT3s_front.lut
SPEED_SENSITIVITY=0.002712
RELAXATION_LENGTH=0.08242
ROLLING_RESISTANCE_0=5
ROLLING_RESISTANCE_1=0.00039
ROLLING_RESISTANCE_SLIP=4952
FLEX=0.00066
CAMBER_GAIN=0.206
DCAMBER_0=1.5
DCAMBER_1=-13
FRICTION_LIMIT_ANGLE=6.07
XMU=0.17
PRESSURE_STATIC=30
PRESSURE_SPRING_GAIN=1980
PRESSURE_FLEX_GAIN=0.35
PRESSURE_RR_GAIN=0.4
PRESSURE_D_GAIN=0.005
PRESSURE_IDEAL=33
FZ0=4056
LS_EXPY=0.8118
LS_EXPX=0.8615
DY_REF=1.52
DX_REF=1.545
FLEX_GAIN=0.057
FALLOFF_LEVEL=0.90
FALLOFF_SPEED=7
CX_MULT=1.2
RADIUS_ANGULAR_K=0.007

[THERMAL_FRONT_2]
SURFACE_TRANSFER=0.0180
PATCH_TRANSFER=0.00027
CORE_TRANSFER=0.0012757
INTERNAL_CORE_TRANSFER=0.00277
FRICTION_K=0.06151
ROLLING_K=0.14
PERFORMANCE_CURVE=tcurve_slicksGT3h.lut
GRAIN_GAMMA=1
GRAIN_GAIN=0.5
BLISTER_GAMMA=1
BLISTER_GAIN=0.5
COOL_FACTOR=2.19
SURFACE_ROLLING_K=0.5383

[THERMAL_REAR_2]
SURFACE_TRANSFER=0.0180
PATCH_TRANSFER=0.00027
CORE_TRANSFER=0.0012757
INTERNAL_CORE_TRANSFER=0.00277
FRICTION_K=0.06151
ROLLING_K=0.14
PERFORMANCE_CURVE=tcurve_slicksGT3h.lut
GRAIN_GAMMA=1
GRAIN_GAIN=0.5
BLISTER_GAMMA=1
BLISTER_GAIN=0.5
COOL_FACTOR=2.19
SURFACE_ROLLING_K=0.5383

I did attempt to rebuild the tire using Content Manager and NASCAR 1990, but it resulted in a tire that was too durable for my liking. I might try it again in the future if I can't come up with anything else.

I do plan on moving the center of gravity to the appropriate level of 51/49, but that also means I'll have to adjust the axle/suspension locations as well, which will be a headache I'm sure. I'll update as progress goes, but I'll bee busy so I'm not sure when that'll be

Save for tires, virtually all the adjustments I've made have been the result of manipulating the .ini files. Do you know of any programs that would allow me to interact with model more directly?
I tried using Blender, but it doesn't seem to be compatible with AC files. Of course, maybe I'm missing a step, but I do think being able to work with the model more directly would probably help. (Especially considering I want to eventually try and introduce multiple LODs, but I feel like that is towards the bottom of a long, long list at this point.)

One final note that I'm not sure I've mentioned:
The car has dealt with a lot of rebuilding via the .ini files. Because the original author based it off a GT2/3 car, I had to remove driver aids, which NASCAR doesn't use IRL. (Namely, traction control, automatic engine cutoff, and the electronic kicker.) While I don't think removing these files has compromised the car, I guess i can't rule out anything at this point.

I don't know if I would've started this project if I had known it was going to be such a big mess.
 
HUB_MASS=43

This line is too small, should include both wheels the live axle and half the truck arm that nascar uses.
Suggest 120kg
Not just that this isn't realistic but that it is a fair bet, as I have experienced, to be causing the jumping around.
 
Last edited:

What are you racing on?

  • Racing rig

    Votes: 528 35.2%
  • Motion rig

    Votes: 43 2.9%
  • Pull-out-rig

    Votes: 54 3.6%
  • Wheel stand

    Votes: 191 12.7%
  • My desktop

    Votes: 618 41.2%
  • Something else

    Votes: 66 4.4%
Back
Top