{
"sdd_tacoma_IFS_offroad": {
    "information":{
        "authors":"BeamNG",
        "name":"TRD Pro Front Suspension",
        "value":4500,
    },
    "slotType" : "pickup_suspension_F",
    "slots": [
        ["type", "default", "description"],
        ["sdd_tacoma_coilover_IFS_offroad","sdd_tacoma_coilover_IFS_offroad","Front Coilovers"],
        ["sdd_tacoma_differential_F","sdd_tacoma_differential_F","Front Differential"],
        ["pickup_hub_F","pickup_hub_F_6","Front Wheel Hubs"],
        ["pickup_swaybar_F_offroad","pickup_swaybar_F_offroad","Front Sway Bar"],
        ["pickup_steering_offroad","pickup_steering_offroad","Steering"],
    ],
    "variables": [
        ["name", "type", "unit", "category", "default", "min", "max", "title", "description"],
        ["$camber_FR", "range", "", "Wheel Alignment", 0.945, 0.91, 1.04, "Camber Adjust", "Adjusts the wheel camber angle", {"subCategory":"Front"}],
        ["$caster_FR", "range", "", "Wheel Alignment", 1, 1.015, 0.985, "Caster Adjust", "Adjusts forward rake of the steering axis", {"subCategory":"Front"}],
        ["$trackoffset_F", "range", "+m", "Wheels", 0.0, -0.02, 0.05, "Wheel Offset", "Spacing of the wheel from the hub", {"stepDis":0.001,"subCategory":"Front"}],
    ],
    "flexbodies": [
         ["mesh", "[group]:", "nonFlexMaterials"],
         //front running gear
       
        
         ["sdd_tacoma_subframe_IFS", ["pickup_frame", "pickup_uppermounts", "pickup_lowermounts","pickup_steeringrack"]],
         ["sdd_tacoma_subframe_F_brace", ["pickup_frame", "pickup_uppermounts", "pickup_lowermounts","pickup_steeringrack"]],
         ["sdd_trx_liftkit_IFS", ["pickup_frame", "pickup_lowermounts","pickup_steeringrack"]],
		  ["sdd_tacoma_lines_F", ["pickup_frame", "pickup_lowermounts","pickup_steeringrack"]],
         ["sdd_tacoma_steeringbox", ["pickup_frame", "pickup_lowermounts"]],
         ["sdd_tacoma_hub_FR_offroad", ["pickup_hub1_F", "pickup_hub4_F","pickup_hub5_F","pickup_lowerarm_R","pickup_upperarm_F"]],
         ["sdd_tacoma_hub_FL_offroad", ["pickup_hub1_F", "pickup_hub4_F","pickup_hub5_F","pickup_lowerarm_L","pickup_upperarm_F"]],
         ["sdd_tacoma_lowerarm_offroad", ["pickup_lowerarm_F", "pickup_shockbottom", "pickup_lowermounts"]],
         ["sdd_tacoma_upperarm_offroad", ["pickup_upperarm_F", "pickup_uppermounts"]],
    ],
    "nodes": [
         ["id", "posX", "posY", "posZ"],
         {"frictionCoef":0.5},
         {"nodeMaterial":"|NM_METAL"},
         {"collision":true},
         {"selfCollision":true},
         //--FRONT INDEPENDENT SUSPENSION--
         //top of shock/spring
         {"group":"pickup_shocktop"},
         {"nodeWeight":7.52},
         ["fs1r", -0.51, -1.5, 0.78],
         ["fs1l", 0.51, -1.5, 0.78],
         {"group":""},
         {"selfCollision":false},
         //redefine frame node positions for upper mounts
         {"nodeWeight":15.51},
         {"group":["pickup_frame","pickup_uppermounts"]},
         ["f12r", -0.415, -1.74, 0.64],
         ["f12l", 0.415, -1.74, 0.64],
         ["f13r", -0.415, -1.35, 0.64],
         ["f13l", 0.415, -1.35, 0.64],
         //LIFT KIT
         {"nodeWeight":13.63},
         {"selfCollision":true},
         {"group":"pickup_lowermounts"},
         ["fx1r", -0.21, -1.72, 0.3],
         ["fx1l", 0.21, -1.72, 0.3],
         ["fx2r", -0.21, -1.26, 0.3],
         ["fx2l", 0.21, -1.26, 0.3],
         {"selfCollision":false},
         //lower arm shock mount
         {"group":"pickup_shockbottom"},
         {"nodeWeight":4.23},
         ["fh7r", -0.60, -1.50, 0.372],
         ["fh7l", 0.60, -1.50, 0.372],
         //shock hinge anti-pop
         {"group":""},
         {"collision":false},
         ["fh8r", -0.57, -1.50, 0.24, {"group":["pickup_lowerarm_F", "pickup_swaybar_F_link"]}],
         ["fh8l", 0.57, -1.50, 0.24, {"group":["pickup_lowerarm_F", "pickup_swaybar_F_link"]}],
         {"nodeWeight":8.46},
         {"collision":true},
         {"selfCollision":true},
         {"group":["pickup_hub_F","pickup_lowerarm_F"]},
         ["fh3r", -0.77, -1.48, 0.32],
         ["fh3l", 0.77, -1.48, 0.32],
         {"nodeWeight":6.58},
         //upper arm
         {"group":["pickup_hub_F","pickup_upperarm_F"]},
         {"selfCollision":false},
         ["fh2r", -0.7, -1.41, 0.735],
         ["fh2l", 0.7, -1.41, 0.735],
         {"selfCollision":true},
         //hub
         {"nodeWeight":6.58},
         {"group":["pickup_hub_F","pickup_hub1_F"]},
         ["fh5r", -0.70, -1.303, 0.44],
         ["fh5l", 0.70, -1.303, 0.44],
         {"nodeWeight":5.17},
         {"group":["pickup_hub_F","pickup_hub4_F"]},
         ["fh1r", -0.84, -1.64, 0.48],
         ["fh1l", 0.84, -1.64, 0.48],
         {"group":["pickup_hub_F","pickup_hub5_F"]},
         {"nodeWeight":3.29},
         ["fh4r", -0.81, -1.31, 0.47],
         ["fh4l", 0.81, -1.31, 0.47],
         //steering rack
         {"nodeWeight":7.52},
         {"collision":true},
         {"selfCollision":false},
         {"group":"pickup_steeringrack"},
         ["st2r", -0.08, -1.31, 0.4],
         ["st2l", 0.08, -1.31, 0.4],
         {"group":""},
    ],
    "torsionbars": [
        ["id1:", "id2:", "id3:", "id4:"],
        {"spring":250000, "damp":0, "deform":2500000, "strength":10000000},
        //rigidify steering arm
        ["fw1rr", "fw1r", "fh3r", "fh5r"],
        ["fw1ll", "fw1l", "fh3l", "fh5l"],
    ],
    "beams": [
          ["id1:", "id2:"],
          //--FRONT INDEPENDENT SUSPENSION--
          {"beamPrecompression":1, "beamType":"|NORMAL", "beamLongBound":1, "beamShortBound":1},

          //front main crossmember
          //main shape
          {"deformLimitExpansion":1.2},
          {"beamSpring":11280940, "beamDamp":235},
          {"beamDeform":72500, "beamStrength":"FLT_MAX"},
          //widthwise
          ["f2r", "fx1r"],
          ["fx1r", "fx1l"],
          ["fx1l", "f2l"],
          ["f3r", "fx2r"],
          ["fx2r", "fx2l"],
          ["fx2l", "f3l"],
          //lengthwise
          ["fx2l", "fx1l"],
          ["fx2r", "fx1r"],
          ["fx2l", "f4l"],
          ["fx2r", "f4r"],
          //surficial crossing
          {"deformLimitExpansion":""},
          {"beamDeform":65500,"beamStrength":"FLT_MAX"},
          ["f3l", "fx1l"],
          ["f2l", "fx2l"],
          ["fx2l", "fx1r"],
          ["fx1l", "fx2r"],
          ["fx2r", "f2r"],
          ["fx1r", "f3r"],
          ["f2r", "fx1l"],
          ["f2l", "fx1r"],
          ["f3l", "fx2r"],
          ["f3r", "fx2l"],
          //rigids
          {"beamDeform":42000,"beamStrength":"FLT_MAX"},
          //vertical
          ["fx1l", "f12l"],
          ["fx2l", "f13l"],
          ["fx1r", "f12r"],
          ["fx2r", "f13r"],
          ["fx2l", "f13r"],
          ["fx2r", "f13l"],
          ["fx1r", "f12l"],
          ["fx1l", "f12r"],
          //lengthwise
          {"beamDeform":24500,"beamStrength":"FLT_MAX"},
          ["fx1l", "f1l"],
          ["fx1r", "f1r"],

          //steering rack
          {"deformLimitExpansion":1.2},
          {"beamSpring":9400940,"beamDamp":235},
          {"beamDeform":94500,"beamStrength":"FLT_MAX"},
          ["st2r", "st2l"],
          {"beamDeform":43250},
          ["st2l", "fx2l"],
          ["st2r", "fx2r"],
          ["st2r", "fx1r"],
          ["st2l", "fx1l"],
          {"deformLimitExpansion":""},
          ["st2l", "fx1r"],
          ["st2r", "fx1l"],
          ["st2r", "fx2l"],
          ["st2l", "fx2r"],
          ["st2r", "f13r"],
          ["st2l", "f13l"],
          ["st2l", "f12l"],
          ["st2r", "f12r"],

          {"deformLimitExpansion":1.2},

          //front hub
          {"beamPrecompression":1, "beamType":"|NORMAL", "beamLongBound":1, "beamShortBound":1},
          {"beamSpring":8930940,"beamDamp":94},
          {"beamDeform":217500,"beamStrength":297500},
          ["fh3r","fh2r"],
          ["fh3l","fh2l"],
          ["fh5r","fh2r"],
          ["fh5l","fh2l"],
          ["fh5r","fh3r"],
          ["fh5l","fh3l"],
          ["fh1r","fh5r"],
          ["fh1l","fh5l"],
          ["fh1r","fh3r"],
          ["fh1l","fh3l"],
          ["fh1r","fh2r"],
          ["fh1l","fh2l"],

          {"beamSpring":6110940,"beamDamp":94},
          ["fh1r","fh4r"],
          ["fh1l","fh4l"],
          ["fh5r","fh4r"],
          ["fh5l","fh4l"],
          ["fh3r","fh4r"],
          ["fh3l","fh4l"],
          ["fh2r","fh4r"],
          ["fh2l","fh4l"],

          //upper arm
          {"beamSpring":14100940,"beamDamp":3760},
          {"beamDeform":161000,"beamStrength":385000},
          ["fh2l","f12l", {"beamPrecompression":"$=$camber_FR+0.0","beamPrecompressionTime":0.5,"dampCutoffHz":500}],
          ["fh2l","f13l", {"beamPrecompression":"$=$camber_FR+0.0","beamPrecompressionTime":0.5,"dampCutoffHz":500}],
          ["fh2r","f12r", {"beamPrecompression":"$=$camber_FR+0.0","beamPrecompressionTime":0.5,"dampCutoffHz":500}],
          ["fh2r","f13r", {"beamPrecompression":"$=$camber_FR+0.0","beamPrecompressionTime":0.5,"dampCutoffHz":500}],

          //lower arm
          {"beamSpring":14100940,"beamDamp":3760},
          {"beamDeform":216000,"beamStrength":560000},
          ["fh3l","fx1l", {"beamPrecompression":"$caster_FR","beamPrecompressionTime":0.5,"dampCutoffHz":500}],
          ["fh3r","fx1r", {"beamPrecompression":"$caster_FR","beamPrecompressionTime":0.5,"dampCutoffHz":500}],
          ["fh3r","fx2r", {"dampCutoffHz":500}],
          ["fh3l","fx2l", {"dampCutoffHz":500}],

          //shock bottom
          {"beamSpring":6580940,"beamDamp":235},
          {"beamDeform":163000,"beamStrength":490000},
          ["fh7l","fh3l"],
          ["fh7r","fh3r"],
          ["fh3l","fh8l"],
          ["fh3r","fh8r"],
          ["fh7l","fh8l"],
          ["fh7r","fh8r"],
          ["fh8l","fx2l"],
          ["fh8r","fx2r"],
          ["fh8r","fx1r"],
          ["fh8l","fx1l"],
          ["fh7l","fx2l"],
          ["fh7r","fx2r"],
          ["fh7r","fx1r"],
          ["fh7l","fx1l"],

          //wishbone anti-invert
          {"deformLimitExpansion":""},
          {"beamPrecompression":0.81, "beamType":"|SUPPORT", "beamLongBound":1},
          {"beamSpring":1880940,"beamDamp":235,"beamDeform":105000,"beamStrength":1050000},
          ["fh2r","fx1l"],
          ["fh2r","fx2l"],
          ["fh2l","fx1r"],
          ["fh2l","fx2r"],
          {"beamPrecompression":0.85, "beamType":"|SUPPORT", "beamLongBound":0.75},
          ["fh3r","fx1l"],
          ["fh3r","fx2l"],
          ["fh3l","fx1r"],
          ["fh3l","fx2r"],

          //front end collide
          {"beamPrecompression":0.35, "beamType":"|SUPPORT", "beamLongBound":4},
          {"beamSpring":14100940,"beamDamp":470},
          {"beamDeform":35000,"beamStrength":"FLT_MAX"},
          {"optional":true},
          //["fw1r", "f4r"],
          //["fw1r", "f1r"],
          //
          //["fw1l", "f4l"],
          //["fw1l", "f1l"],

          //firewall collide
          {"beamPrecompression":0.8},
          ["fh3r", "b1rr"],
          ["fh3r", "b1r"],
          ["fh3l", "b1ll"],
          ["fh3l", "b1l"],

          ["fw1rr", "b1rr", {"beamPrecompression":0.65}],
          ["fw1rr", "b5rr"],
          ["fw1rr", "b6rr"],

          ["fw1ll", "b1ll", {"beamPrecompression":0.65}],
          ["fw1ll", "b5ll"],
          ["fw1ll", "b6ll"],
          {"optional":false},

          //steering anti invert
          {"beamPrecompression":1, "beamType":"|SUPPORT", "beamLongBound":1},
          {"beamSpring":4700940,"beamDamp":141,"beamDeform":66500,"beamStrength":875000},
          {"beamPrecompression":0.80},
          ["fh4r","fx1r"],
          ["fh4l","fx1l"],
          ["fh4r","f12r"],
          ["fh4l","f12l"],
          {"beamPrecompression":0.81},
          ["fh1r","fx2r"],
          ["fh1l","fx2l"],
          ["fh1r","f13r"],
          ["fh1l","f13l"],

          //hard travel limit
          {"beamPrecompression":1, "beamType":"|BOUNDED", "beamLongBound":1, "beamShortBound":1},
          {"beamDeform":21000,"beamStrength":210000},
          {"beamSpring":0,"beamDamp":0},
          {"beamLimitSpring":501000,"beamLimitDamp":1000},
          ["fh3r","f13r", {"longBoundRange":0.28,"shortBoundRange":0.04,"boundZone":0.02,"beamLimitDampRebound":0,"dampCutoffHz":500}],
          ["fh3l","f13l", {"longBoundRange":0.28,"shortBoundRange":0.04,"boundZone":0.02,"beamLimitDampRebound":0,"dampCutoffHz":500}],
          ["fh3r","f12r", {"longBoundRange":0.28,"shortBoundRange":0.04,"boundZone":0.02,"beamLimitDampRebound":0,"dampCutoffHz":500}],
          ["fh3l","f12l", {"longBoundRange":0.28,"shortBoundRange":0.04,"boundZone":0.02,"beamLimitDampRebound":0,"dampCutoffHz":500}],
          {"beamPrecompression":1, "beamType":"|NORMAL", "beamLongBound":1.0, "beamShortBound":1.0},
          {"deformLimitExpansion":1.2},
    ],
    "triangles": [
            ["id1:","id2:","id3:"],
            {"groundModel":"metal"},
            {"dragCoef":7.5},
            {"group":"pickup_frontsuspmounts"},
            ["fx1l", "fx2l", "f2l"],
            ["fx2l", "f3l", "f2l"],
            ["f3l", "fx2l", "f4l"],
            ["f4", "f4l", "fx2l"],

            ["fx2r", "fx1r", "f2r"],
            ["f3r", "fx2r", "f2r"],
            ["fx2r", "f3r", "f4r"],
            ["f4r", "f4", "fx2r"],

            ["fx1r", "fx2r", "fx1l"],
            ["fx2r", "fx2l", "fx1l"],
            ["fx2r", "f4", "fx2l"],

            ["f1r", "f2r", "fx1r"],
            ["fx1r", "fx1l", "f1l"],
            ["f1l", "f1r", "fx1r"],
            ["fx1l", "f2l", "f1l"],
            //suspension shape
            {"triangleType":"NONCOLLIDABLE"},
            {"dragCoef":0},
            //["fx1r", "fh3r", "fx2r"],
            ["fh3r", "fx1r", "fh7r"],
            ["fh3r", "fx1r", "fh8r"],
            //["fx1r", "fx2r", "fh7r"],
            ["fh3r", "fh7r", "fx2r"],
            ["fh3r", "fh8r", "fx2r"],
            ["fh2r", "f12r", "f13r"],
            //["fh3r", "fh5r", "fh2r"],
            ["fh4r", "fh2r", "fh5r"],
            ["fh1r", "fh3r", "fh2r"],
            ["fh4r", "fh1r", "fh2r"],
            ["fh4r", "fh5r", "fh3r"],
            ["fh3r", "fh1r", "fh4r"],

            //["fh3l", "fx1l", "fx2l"],
            ["fx1l", "fh3l", "fh7l"],
            ["fx1l", "fh3l", "fh8l"],
            //["fx2l","fx1l", "fh7l"],
            ["fh7l",  "fh3l", "fx2l"],
            ["fh8l",  "fh3l", "fx2l"],
            ["f12l", "fh2l", "f13l"],
            //["fh5l", "fh3l", "fh2l"],
            ["fh2l", "fh4l", "fh5l"],
            ["fh3l", "fh1l", "fh2l"],
            ["fh1l", "fh4l", "fh2l"],
            ["fh5l", "fh4l", "fh3l"],
            ["fh1l", "fh3l",  "fh4l"],
            {"triangleType":"NORMALTYPE"},
    ],
},

"sdd_tacoma_coilover_IFS_offroad": {
    "information":{
        "authors":"BeamNG",
        "name":"Front TRD Pro Coilovers",
        "value":1000,
    },
    "slotType" : "sdd_tacoma_coilover_IFS_offroad",
    "flexbodies": [
         ["mesh", "[group]:", "nonFlexMaterials"],
         ["sdd_tacoma_coilovers_F", ["pickup_shockbottom","pickup_shocktop"]],
    ],
    "variables": [
        ["name", "type", "unit", "category", "default", "min", "max", "title", "description"],
        ["$springheight_F", "range", "+m", "Suspension", 0, -0.1, 0.1, "Spring Height", "Raise or lower the suspension height", {"stepDis":0.005, "subCategory":"Front"}],
        ["$spring_F", "range", "N/m", "Suspension", 115000, 50000, 200000, "Spring Rate", "Spring stiffness", {"stepDis":500,"subCategory":"Front"}]
        ["$damp_bump_F", "range", "N/m/s", "Suspension", 10000, 500, 15000, "Bump Damping", "Damper rate in slow compression", {"stepDis":100, "subCategory":"Front"}]
        ["$damp_bump_F_fast", "range", "N/m/s", "Suspension", 19000, 500, 25000, "Fast Bump Damping", "Damper rate in fast compression", {"stepDis":100, "subCategory":"Front"}]
        ["$damp_rebound_F", "range", "N/m/s", "Suspension", 10000, 500, 15000, "Rebound Damping", "Damper rate in extension", {"stepDis":100,"subCategory":"Front"}]
    ],
    "beams": [
          ["id1:", "id2:"],
          //front springs
          {"beamType":"|NORMAL"},
          {"beamDeform":77000,"beamStrength":280000},
          {"beamSpring":"$spring_F","beamDamp":0},
          //IMPORTANT: if precompressionRange is ~= nil then it supersedes beamPrecompression.
          //The case() is for backwards compatibility for old configs containing the "rideheight_F" variable.
          //To change the base ride height, edit the springheight_F offset in the expression.
          ["fh7l","fs1l", {"beamPrecompressionTime":0.1,"beamPrecompression":"$=$rideheight_F", "precompressionRange":"$=case($rideheight_F == nil, ($springheight_F + 0.32) * 0.65, '')","beamPrecompressionTime":0.1,
              "soundFile":"event:>Vehicle>Suspension>pickup_01>spring_compress_01","colorFactor":0.5,"attackFactor":10,"volumeFactor":2.0,"decayFactor":11,"noiseFactor":0.01,"pitchFactor":0.4,"maxStress":15000}],
          ["fh7r","fs1r", {"beamPrecompressionTime":0.1,"beamPrecompression":"$=$rideheight_F", "precompressionRange":"$=case($rideheight_F == nil, ($springheight_F + 0.32) * 0.65, '')","beamPrecompressionTime":0.1,
              "soundFile":"event:>Vehicle>Suspension>pickup_01>spring_compress_01","colorFactor":0.5,"attackFactor":10,"volumeFactor":2.0,"decayFactor":11,"noiseFactor":0.01,"pitchFactor":0.4,"maxStress":12000}],
          //front shocks
          {"beamPrecompression":1, "beamType":"|BOUNDED", "beamLongBound":1.0, "beamShortBound":1.0},
          {"beamLimitSpring":0,"beamLimitDamp":0},
          {"beamSpring":0,"beamDamp":"$damp_bump_F"},
          ["fh3l","fs1l", {"beamDampRebound":"$damp_rebound_F","beamDampVelocitySplit":0.5,"beamDampFast":"$damp_bump_F_fast","beamDampReboundFast":"$damp_rebound_F","dampCutoffHz":500}],
          ["fh3r","fs1r", {"beamDampRebound":"$damp_rebound_F","beamDampVelocitySplit":0.5,"beamDampFast":"$damp_bump_F_fast","beamDampReboundFast":"$damp_rebound_F","dampCutoffHz":500}],
          //bumpstop
          {"beamSpring":0, "beamDamp":0},
          {"beamLimitSpring":401000,"beamLimitDamp":10000},
          ["fh3l","fs1l", {"longBoundRange":0.22,"shortBoundRange":-0.06,"boundZone":0.04,"beamLimitDampRebound":0,"dampCutoffHz":500}],
          ["fh3r","fs1r", {"longBoundRange":0.22,"shortBoundRange":-0.06,"boundZone":0.04,"beamLimitDampRebound":0,"dampCutoffHz":500}],
          {"beamPrecompression":1, "beamType":"|NORMAL", "beamLongBound":1.0, "beamShortBound":0.5},
    ],
},
}