I have started playing with the new car physics so I figured I might as well post some basic info about the new config entries. Some basic "What can we do" stuff: 1. Simulate front wheel drive, rear wheel drive, and all wheel drive with either open or limited slip differentials 2. Control the roll rates. These determine handling at speed and also controls when the vehicle will roll over on its side 3. Each wheel is fully independent. You can change the suspension, grip, and brake force for each individual wheel. 4. Control the speed (rate) at which you steer. 5. Hands move with the steering wheel (possibly other controls) this uses a basic gesture system. Shouldn't have any issues setting it up on a new model 6. Complex transmission setup. You can set the gear ratios, clutch force, even the shift latency. 7. Much better engine setup. Set horsepower, torque, rpm redline and idle rpm. 8. Biggest difference: no more speed limit at 110km/h ;) Only real unknown worth mentioning is the possibility for manual transmissions with realistic clutches. There is a setting -> gearBoxMode = "auto"; Changing it has no effect yet :( Hopefully the beta or final version would allow for stick shiftin' so new settings class complexGearbox { GearboxRatios[] = {"R1", -5.367, "N", 0, "D1", 5.367, "D2", 3.67, "D3", 2.238, "D4", 1.00, "D5", 0.8}; These relate to real world gear ratios, nothing fancy here TransmissionRatios[] = {"High", 5.0}; unknown? gearBoxMode = "auto"; changing it has no effect yet moveOffGear = 1; unknown? driveString = "D"; Must be for some kind of gear indicator neutralString = "N"; Must be for some kind of gear indicator reverseString = "R"; Must be for some kind of gear indicator gearUpMaxCoef = 0.8; possibly to do with shift points /full throttle gearDownMaxCoef = 0.5; possibly to do with shift points /full throttle gearUpMinCoef = 0.45; possibly to do with shift points /light throttle gearDownMinCoef = 0.15; possibly to do with shift points /light throttle transmissionDelay = 1; 1 of a few settings that control shifting }; basic engine stuff maxSpeed = 320; max speed on level road, km/h. Does NOT change the acceleration, it is just a speed limiter like on a real car enginePower = 100; Not hp, doesn't seem to affect anything maxOmega = 900; Horsepower (maybe torque) I assume ft/lb but it could be NM or KW peakTorque = 1300; Max torque again could be ft/lb or NM idleRpm = 900; Idle RPM redRpm = 3500; Max RPM torqueCurve[] = {{0.0, 0.0}, {0.25, 0.65}, {0.3, 0.8}, {0.5, 0.95}, {0.7, 1.0}, {0.8, 0.9}, {0.9, 0.8}, {1.0, 0.5}}; the first number indicates the percentile of the curve, and the second the torque value at that percentile. Could be used to make a vehicle with instant power (supercharger), or have it really sloppy down low and then pick up at higher revs (turbo) clutchStrength = 200.0; 1 of many clutch variables. Wheels class Wheels { class LF { boneName = "wheel_1_1_damper"; model.cfg bone steering = 1; is a steering wheel side = "left"; used for the differential simulation. center = "wheel_1_1_axis"; memory lod point boundary = "wheel_1_1_bound"; memory lod point? width = 0.5; unknown, might control the tire track texture mass = 30; probably kg. MOI = 2.8; Moment of Inertia (I googled it but my brain couldn't understand. It is a number I know that much) dampingRate = 0.5; How well the suspension controls the spring maxBrakeTorque = 6000; How much brake force is applied when you hit the regular brakes ingame maxHandBrakeTorque = 6000; How much brake force is applied when you hit the hand brakes ingame suspTravelDirection[] = {0, -1, 0}; x.z.y? This means up and down movement suspForceAppPointOffset = "wheel_1_1_axis"; might be different in a more complex vehicle, but this one uses the same as the "center" variable tireForceAppPointOffset = "wheel_1_1_axis"; might be different in a more complex vehicle, but this one uses the same as the "center" variable maxCompression = 0.3; how far up the suspension can compress mMaxDroop = 0.1; how far the suspension will drop when off the ground sprungMass = 300; How much of the vehicle's weight it is supporting springStrength = 50000; how hard it is to move the suspension (some kind of arbitrary number) springDamperRate = 3400; the springs rate of self-dampening longitudinalStiffnessPerUnitGravity = 10000; unknown lol latStiffX = 25; unknown latStiffY = 180; unknown frictionVsSlipGraph[] = {{0, 1}, {0.5, 1.0}, {1, 1}}; Very important. This controls the traction of the tire. first number is friction and the second is slip frictionVsSlipGraph[] = {{0, 1}, {0.5, 1.0}, {1, 1}}; Wheel has great linear traction frictionVsSlipGraph[] = {{0, 1}, {0.5, 0.75}, {1, 0.5}}; Wheel has low traction at low speeds but full traction at high speeds frictionVsSlipGraph[] = {{0, 0.2}, {0.5, 0.5}, {1, 1}}; Wheel has good traction at low speeds but looses traction at high speeds. }; }; Somewhat generic anti-roll bar stuff antiRollbarForceCoef = 1; antiRollbarForceLimit = 40; Reducing this seems to make it roll over easier antiRollbarSpeedMin = 2; antiRollbarSpeedMax = 50; general driveline stuff differentialType = "rear_limited"; first entry can be front, rear, all. second entry can be limited or open frontRearSplit = 0.5; in all wheel drive, the split force going to the front or back. under 0.5 the front wheels will have more power, over 0.5 the rear has more. frontBias = 1.5; I assume this controls the viscosity of the front differential rearBias = 1.5; I assume this controls the viscosity of the rear differential centreBias = 1.3; unknown Welp thats what I found out after playing with the offroad truck for a few hours. Hopefully it will get people thinking about new vehicles now that they can be realistic, fun and fast ---------- Post added at 03:01 AM ---------- Previous post was at 02:56 AM ---------- Just as an example here is a mod for the offroad. It has 1300 torque, its rear wheel drive and maxes out at 320km/h :) For added fun, while stopped hold down the handbrake key (default C) and then accelerate. You should be able to do a burnout! #define true 1 #define false 0 #define private 0 #define protected 1 #define public 2 #define TEast 0 #define TWest 1 #define TGuerrila 2 #define TCivilian 3 #define TSideUnknown 4 #define TEnemy 5 #define TFriendly 6 #define TLogic 7 enum { DESTRUCTENGINE = 2, DESTRUCTDEFAULT = 6, DESTRUCTWRECK = 7, DESTRUCTTREE = 3, DESTRUCTTENT = 4, STABILIZEDINAXISX = 1, STABILIZEDINAXESXYZ = 4, STABILIZEDINAXISY = 2, STABILIZEDINAXESBOTH = 3, DESTRUCTNO = 0, STABILIZEDINAXESNONE = 0, DESTRUCTMAN = 5, DESTRUCTBUILDING = 1, }; class DefaultEventhandlers; // External class reference class CfgPatches { class A3_Soft_F_Offroad_saku { units[] = {"c_offroad", "c_offroad_PA", "C_offroad_RP", "I_G_offroad", "C_offroad_armed", "I_G_offroad_armed"}; weapons[] = {}; requiredVersion = 0.1; requiredAddons[] = {"A3_Soft_F_Offroad"}; }; }; class WeaponFireGun; // External class reference class WeaponCloudsGun; // External class reference class WeaponFireMGun; // External class reference class WeaponCloudsMGun; // External class reference class CfgVehicles { class LandVehicle; // External class reference class Car : LandVehicle { class HitPoints; // External class reference class NewTurret; // External class reference }; class Car_F : Car { class Turrets { class MainTurret : NewTurret { class ViewOptics; // External class reference }; }; class HitPoints { class HitLFWheel; // External class reference class HitLBWheel; // External class reference class HitRFWheel; // External class reference class HitRBWheel; // External class reference class HitBody; // External class reference class HitGlass1 {}; class HitGlass2; // External class reference }; class EventHandlers; // External class reference class AnimationSources; // External class reference }; class Offroad_Base : Car_F { mapSize = 6.12; _generalMacro = "Offroad_Base"; displayName = "$STR_A3_CfgVehicles_Offroad_Base0"; nameSound = "veh_car"; class Library { libTextDesc = "$STR_A3_CfgVehicles_Offroad_Base_Library0"; }; model = "\A3\soft_f\offroad\offroad"; picture = "\A3\soft_f\offroad\Data\UI\offroad_base_CA.paa"; Icon = "\A3\soft_f\offroad\Data\UI\map_offroad_CA.paa"; accuracy = 0.25; // accuracy needed to recognize type of this target transportSoldier = 5; transportMaxBackpacks = 0; armor = 32; cost = 50000; class TransportItems { class _xx_FirstAidKit { name = "FirstAidKit"; count = 6; }; }; hiddenSelections[] = {"camo", "camo2"}; hiddenSelectionsTextures[] = {"\A3\soft_f\offroad\data\offroad_ext_co.paa", "\A3\soft_f\offroad\data\offroad_ext_co.paa"}; class AnimationSources : AnimationSources { class Doors { source = "user"; animPeriod = 1; initPhase = 0; }; class Proxy { source = "user"; animPeriod = 1; initPhase = 1; }; class Beacons { source = "user"; animPeriod = 1; initPhase = 0; }; class Destruct { source = "user"; animPeriod = 0; initPhase = 1; }; }; class HitPoints : HitPoints { class HitLFWheel : HitLFWheel { armor = 0.125; passThrough = false; }; class HitLF2Wheel : HitLBWheel { armor = 0.125; passThrough = false; }; class HitRFWheel : HitRFWheel { armor = 0.125; passThrough = false; }; class HitRF2Wheel : HitRBWheel { armor = 0.125; passThrough = false; }; class HitFuel { armor = 0.5; material = -1; name = "palivo"; visual = ""; passThrough = 0.2; }; class HitEngine { armor = 0.5; material = -1; name = "motor"; visual = ""; passThrough = 0.2; }; class HitBody : HitBody { visual = "camo"; passThrough = true; }; class HitGlass1 : HitGlass1 { armor = 0.25; }; class HitGlass2 : HitGlass2 { armor = 0.25; }; }; steerAheadSimul = 0.5; steerAheadPlan = 0.35; predictTurnPlan = 0.8; predictTurnSimul = 0.6; precision = 10; brakeDistance = 50; // vehicle movement precision turnCoef = 3.5; driverAction = "driver_offroad01"; cargoAction[] = {"passenger_low01", "passenger_flatground_leanleft", "passenger_flatground_leanright", "passenger_flatground_crosslegs", "passenger_flatground_leanleft"}; getInAction = "GetInLow"; getOutAction = "GetOutLow"; cargoGetInAction[] = {"GetInLow"}; cargoGetOutAction[] = {"GetOutLow"}; fireResistance = 5; wheelDestroyRadiusCoef = 0.75; soundGetIn[] = {"A3\Sounds_F\vehicles\soft\offroad\offroad-int-openclose.wav", db0, 1}; soundGetOut[] = {"A3\Sounds_F\vehicles\soft\offroad\offroad-int-openclose.wav", db0, 1, 40}; soundDammage[] = {"", 0.562341, 1}; soundEngineOnInt[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_start.wav", 1.0, 1.0}; soundEngineOnExt[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_start.wav", 1.0, 1.0, 200}; soundEngineOffInt[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_stop.wav", 1.0, 1.0}; soundEngineOffExt[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_stop.wav", 1.0, 1.0, 200}; class Sounds { class Idle_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_idle.wav", db0, 1, 100}; frequency = "0.95 + ((rpm/ 3500) factor[(100/ 3500),(600/ 3500)])*0.15"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(100/ 3500),(200/ 3500)]) * ((rpm/ 3500) factor[(530/ 3500),(380/ 3500)]))"; }; class Engine { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_2.wav", db0, 1, 200}; frequency = "0.9 + ((rpm/ 3500) factor[(380/ 3500),(840/ 3500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(380/ 3500),(530/ 3500)]) * ((rpm/ 3500) factor[(850/ 3500),(650/ 3500)]))"; }; class Engine1_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_3.wav", db0, 1, 225}; frequency = "0.9 + ((rpm/ 3500) factor[(660/ 3500),(1130/ 3500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(650/ 3500),(840/ 3500)]) * ((rpm/ 3500) factor[(1130/ 3500),(940/ 3500)]))"; }; class Engine2_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_4.wav", db0, 1, 250}; frequency = "0.9 + ((rpm/ 3500) factor[(930/ 3500),(1340/ 3500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(1000/ 3500),(1130/ 3500)]) * ((rpm/ 3500) factor[(1340/ 3500),(1200/ 3500)]))"; }; class Engine3_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_6.wav", db0, 1, 275}; frequency = "0.95 + ((rpm/ 3500) factor[(1200/ 3500),(1620/ 3500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(1100/ 3500),(1300/ 3500)]) * ((rpm/ 3500) factor[(1600/ 3500),(1400/ 3500)]))"; }; class Engine4_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_8.wav", db0, 1, 300}; frequency = "0.95 + ((rpm/ 3500) factor[(1400/ 3500),(2000/ 3500)]) *0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(1300/ 3500),(1600/ 3500)]) * ((rpm/ 3500) factor[(2000/ 3500),(1700/ 3500)]))"; }; class Engine5_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_9.wav", db0, 1, 325}; frequency = "0.95 + ((rpm/ 3500) factor[(1700/ 3500),(2250/ 3500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(1600/ 3500),(2000/ 3500)]) * ((rpm/ 3500) factor[(2250/ 3500),(2050/ 3500)]))"; }; class Engine6_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_11.wav", db0, 1, 350}; frequency = "0.95 + ((rpm/ 3500) factor[(2050/ 3500),(2600/ 3500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(1900/ 3500),(2250/ 3500)]) * ((rpm/ 3500) factor[(2600/ 3500),(2400/ 3500)]))"; }; class Engine7_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_12.wav", db0, 1, 375}; frequency = "0.95 + ((rpm/ 3500) factor[(2400/ 3500),(3050/ 3500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(2300/ 3500),(2600/ 3500)]) * ((rpm/ 3500) factor[(3050/ 3500),(2650/ 3500)]))"; }; class Engine8_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_14.wav", db0, 1, 400}; frequency = "0.95 + ((rpm/ 3500) factor[(2650/ 3500),(3500/ 3500)])*0.2"; volume = "engineOn*camPos*((rpm/ 3500) factor[(2400/ 3500),(3200/ 3500)])"; }; class IdleThrust { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_idle_exhaust.wav", db0, 1, 200}; frequency = "0.95 + ((rpm/ 3500) factor[(100/ 3500),(600/ 3500)])*0.15"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(100/ 3500),(200/ 3500)]) * ((rpm/ 3500) factor[(530/ 3500),(380/ 3500)]))"; }; class EngineThrust { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_2_exhaust.wav", db0, 1, 250}; frequency = "0.9 + ((rpm/ 3500) factor[(380/ 3500),(840/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(380/ 3500),(530/ 3500)]) * ((rpm/ 3500) factor[(850/ 3500),(650/ 3500)]))"; }; class Engine1_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_3_exhaust.wav", db0, 1, 275}; frequency = "0.9 + ((rpm/ 3500) factor[(660/ 3500),(1130/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(650/ 3500),(840/ 3500)]) * ((rpm/ 3500) factor[(1130/ 3500),(940/ 3500)]))"; }; class Engine2_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_4_exhaust.wav", db0, 1, 300}; frequency = "0.9 + ((rpm/ 3500) factor[(930/ 3500),(1340/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1000/ 3500),(1130/ 3500)]) * ((rpm/ 3500) factor[(1340/ 3500),(1200/ 3500)]))"; }; class Engine3_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_6_exhaust.wav", db0, 1, 325}; frequency = "0.95 + ((rpm/ 3500) factor[(1200/ 3500),(1620/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1100/ 3500),(1300/ 3500)]) * ((rpm/ 3500) factor[(1600/ 3500),(1400/ 3500)]))"; }; class Engine4_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_8_exhaust.wav", db0, 1, 350}; frequency = "0.95 + ((rpm/ 3500) factor[(1400/ 3500),(2000/ 3500)]) *0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1300/ 3500),(1600/ 3500)]) * ((rpm/ 3500) factor[(2000/ 3500),(1700/ 3500)]))"; }; class Engine5_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_9_exhaust.wav", db0, 1, 375}; frequency = "0.95 + ((rpm/ 3500) factor[(1700/ 3500),(2250/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1600/ 3500),(2000/ 3500)]) * ((rpm/ 3500) factor[(2250/ 3500),(2050/ 3500)]))"; }; class Engine6_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_11_exhaust.wav", db0, 1, 400}; frequency = "0.95 + ((rpm/ 3500) factor[(2050/ 3500),(2600/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1900/ 3500),(2250/ 3500)]) * ((rpm/ 3500) factor[(2600/ 3500),(2400/ 3500)]))"; }; class Engine7_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_12_exhaust.wav", db0, 1, 425}; frequency = "0.95 + ((rpm/ 3500) factor[(2400/ 3500),(3050/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(2300/ 3500),(2600/ 3500)]) * ((rpm/ 3500) factor[(3050/ 3500),(2650/ 3500)]))"; }; class Engine8_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_14_exhaust.wav", db0, 1, 450}; frequency = "0.95 + ((rpm/ 3500) factor[(2650/ 3500),(3500/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*((rpm/ 3500) factor[(2400/ 3500),(3200/ 3500)])"; }; class Idle_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_idle.wav", db-10, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(100/ 3500),(600/ 3500)])*0.15"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(100/ 3500),(200/ 3500)]) * ((rpm/ 3500) factor[(530/ 3500),(380/ 3500)]))"; }; class Engine_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_2.wav", 0.1, 1}; frequency = "0.9 + ((rpm/ 3500) factor[(380/ 3500),(840/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(380/ 3500),(530/ 3500)]) * ((rpm/ 3500) factor[(850/ 3500),(650/ 3500)]))"; }; class Engine1_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_3.wav", 0.1, 1}; frequency = "0.9 + ((rpm/ 3500) factor[(660/ 3500),(1130/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(650/ 3500),(840/ 3500)]) * ((rpm/ 3500) factor[(1130/ 3500),(940/ 3500)]))"; }; class Engine2_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_4.wav", 0.1, 1}; frequency = "0.9 + ((rpm/ 3500) factor[(930/ 3500),(1340/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(1000/ 3500),(1130/ 3500)]) * ((rpm/ 3500) factor[(1340/ 3500),(1200/ 3500)]))"; }; class Engine3_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_6.wav", 0.1, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(1200/ 3500),(1620/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(1100/ 3500),(1300/ 3500)]) * ((rpm/ 3500) factor[(1600/ 3500),(1400/ 3500)]))"; }; class Engine4_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_8.wav", 0.1, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(1400/ 3500),(2000/ 3500)]) *0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(1300/ 3500),(1600/ 3500)]) * ((rpm/ 3500) factor[(2000/ 3500),(1700/ 3500)]))"; }; class Engine5_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_9.wav", 0.1, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(1700/ 3500),(2250/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(1600/ 3500),(2000/ 3500)]) * ((rpm/ 3500) factor[(2250/ 3500),(2050/ 3500)]))"; }; class Engine6_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_11.wav", 0.1, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(2050/ 3500),(2600/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(1900/ 3500),(2250/ 3500)]) * ((rpm/ 3500) factor[(2600/ 3500),(2400/ 3500)]))"; }; class Engine7_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_12.wav", 0.1, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(2400/ 3500),(3050/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(2300/ 3500),(2600/ 3500)]) * ((rpm/ 3500) factor[(3050/ 3500),(2650/ 3500)]))"; }; class Engine8_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_14.wav", 0.1, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(2650/ 3500),(3500/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*((rpm/ 3500) factor[(2400/ 3500),(3200/ 3500)])"; }; class IdleThrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_idle_exhaust.wav", db0, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(100/ 3500),(600/ 3500)])*0.15"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(100/ 3500),(200/ 3500)]) * ((rpm/ 3500) factor[(530/ 3500),(380/ 3500)]))"; }; class EngineThrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_2_exhaust.wav", db0, 1}; frequency = "0.9 + ((rpm/ 3500) factor[(380/ 3500),(840/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(380/ 3500),(530/ 3500)]) * ((rpm/ 3500) factor[(850/ 3500),(650/ 3500)]))"; }; class Engine1_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_3_exhaust.wav", db0, 1}; frequency = "0.9 + ((rpm/ 3500) factor[(660/ 3500),(1130/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(650/ 3500),(840/ 3500)]) * ((rpm/ 3500) factor[(1130/ 3500),(940/ 3500)]))"; }; class Engine2_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_4_exhaust.wav", db0, 1}; frequency = "0.9 + ((rpm/ 3500) factor[(930/ 3500),(1340/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1000/ 3500),(1130/ 3500)]) * ((rpm/ 3500) factor[(1340/ 3500),(1200/ 3500)]))"; }; class Engine3_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_6_exhaust.wav", db0, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(1200/ 3500),(1620/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1100/ 3500),(1300/ 3500)]) * ((rpm/ 3500) factor[(1600/ 3500),(1400/ 3500)]))"; }; class Engine4_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_8_exhaust.wav", db0, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(1400/ 3500),(2000/ 3500)]) *0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1300/ 3500),(1600/ 3500)]) * ((rpm/ 3500) factor[(2000/ 3500),(1700/ 3500)]))"; }; class Engine5_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_9_exhaust.wav", db0, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(1700/ 3500),(2250/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1600/ 3500),(2000/ 3500)]) * ((rpm/ 3500) factor[(2250/ 3500),(2050/ 3500)]))"; }; class Engine6_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_11_exhaust.wav", db0, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(2050/ 3500),(2600/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1900/ 3500),(2250/ 3500)]) * ((rpm/ 3500) factor[(2600/ 3500),(2400/ 3500)]))"; }; class Engine7_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_12_exhaust.wav", db0, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(2400/ 3500),(3050/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(2300/ 3500),(2600/ 3500)]) * ((rpm/ 3500) factor[(3050/ 3500),(2650/ 3500)]))"; }; class Engine8_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_14_exhaust.wav", db0, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(2650/ 3500),(3500/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*((rpm/ 3500) factor[(2400/ 3500),(3200/ 3500)])"; }; class Movement { sound = "soundEnviron"; frequency = "1"; volume = "0"; }; class TiresRockOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_rock_final_2.wav", 0.1, 1.0, 120}; frequency = "1"; volume = "camPos*rock*(speed factor[2, 20])"; }; class TiresSandOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext-tires-sand1.wav", 0.1, 1.0, 120}; frequency = "1"; volume = "camPos*sand*(speed factor[2, 20])"; }; class TiresGrassOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_road_final_1.wav", 0.1, 1.0, 120}; frequency = "1"; volume = "camPos*grass*(speed factor[2, 20])"; }; class TiresMudOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext-tires-mud2.wav", 0.1, 1.0, 120}; frequency = "1"; volume = "camPos*mud*(speed factor[2, 20])"; }; class TiresGravelOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_rock_final_2.wav", db-10, 1.0, 120}; frequency = "1"; volume = "camPos*gravel*(speed factor[2, 20])"; }; class TiresAsphaltOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_road_final_1.wav", 0.281838, 1.0, 120}; frequency = "1"; volume = "camPos*asphalt*(speed factor[2, 20])"; }; class NoiseOut { sound[] = {"A3\Sounds_F\vehicles\soft\noises\noise_soft_ext_1.wav", 0.1, 1.0, 120}; frequency = "1"; volume = "camPos*(damper0 max 0.02)*(speed factor[0, 8])"; }; class TiresRockIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_rock_final_2.wav", 0.0177828, 1.0}; frequency = "1"; volume = "(1-camPos)*rock*(speed factor[2, 20])"; }; class TiresSandIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int-tires-sand2.wav", 0.0177828, 1.0}; frequency = "1"; volume = "(1-camPos)*sand*(speed factor[2, 20])"; }; class TiresGrassIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_road_final_1.wav", 0.0177828, 1.0}; frequency = "1"; volume = "(1-camPos)*grass*(speed factor[2, 20])"; }; class TiresMudIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int-tires-mud2.wav", 0.0177828, 1.0}; frequency = "1"; volume = "(1-camPos)*mud*(speed factor[2, 20])"; }; class TiresGravelIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_rock_final_2.wav", db-37, 1.0}; frequency = "1"; volume = "(1-camPos)*gravel*(speed factor[2, 20])"; }; class TiresAsphaltIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_road_final_1.wav", 0.0177828, 1.0}; frequency = "1"; volume = "(1-camPos)*asphalt*(speed factor[2, 20])"; }; class NoiseIn { sound[] = {"A3\Sounds_F\vehicles\soft\noises\noise_soft_int_1.wav", 0.0177828, 1.0}; frequency = "1"; volume = "(damper0 max 0.03)*(speed factor[0, 8])*(1-camPos)"; }; class breaking_ext_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04.wav", db0, 1, 100}; frequency = 1; volume = "engineOn*camPos*(LongSlipDrive Factor[-0.15, -0.3])*(Speed Factor[2, 10])"; }; class acceleration_ext_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav", db0, 1, 100}; frequency = 1; volume = "engineOn*camPos*(LongSlipDrive Factor[0.15, 0.3])*(Speed Factor[10, 0])"; }; class turn_left_ext_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav", db0, 1, 100}; frequency = 1; volume = "engineOn*camPos*(latSlipDrive Factor[0.15, 0.3])*(Speed Factor[0, 10])"; }; class turn_right_ext_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav", db0, 1, 100}; frequency = 1; volume = "engineOn*camPos*(latSlipDrive Factor[-0.15, -0.3])*(Speed Factor[0, 10])"; }; class breaking_ext_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04.wav", db0, 1, 100}; frequency = 1; volume = "engineOn*camPos*(LongSlipDrive Factor[-0.15, -0.3])*(Speed Factor[2, 10])"; }; class acceleration_ext_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav", db0, 1, 100}; frequency = 1; volume = "engineOn*camPos*(LongSlipDrive Factor[0.15, 0.3])*(Speed Factor[10, 0])"; }; class turn_left_ext_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav", db0, 1, 100}; frequency = 1; volume = "engineOn*camPos*(latSlipDrive Factor[0.15, 0.3])*(Speed Factor[0, 10])"; }; class turn_right_ext_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav", db0, 1, 100}; frequency = 1; volume = "engineOn*camPos*(latSlipDrive Factor[-0.15, -0.3])*(Speed Factor[0, 10])"; }; class breaking_int_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04_int.wav", db0, 1}; frequency = 1; volume = "engineOn*(1-camPos)*(LongSlipDrive Factor[-0.15, -0.3])*(Speed Factor[2, 6])"; }; class acceleration_int_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav", db0, 1}; frequency = 1; volume = "engineOn*(1-camPos)*(LongSlipDrive Factor[0.15, 0.3])*(Speed Factor[10, 0])"; }; class turn_left_int_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav", db0, 1}; frequency = 1; volume = "engineOn*(1-camPos)*(latSlipDrive Factor[0.15, 0.3])*(Speed Factor[0, 10])"; }; class turn_right_int_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav", db0, 1}; frequency = 1; volume = "engineOn*(1-camPos)*(latSlipDrive Factor[-0.15, -0.3])*(Speed Factor[0, 10])"; }; class breaking_int_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04_int.wav", db0, 1}; frequency = 1; volume = "engineOn*(1-camPos)*(LongSlipDrive Factor[-0.15, -0.3])*(Speed Factor[2, 6])"; }; class acceleration_int_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav", db0, 1}; frequency = 1; volume = "engineOn*(1-camPos)*(LongSlipDrive Factor[0.15, 0.3])*(Speed Factor[10, 0])"; }; class turn_left_int_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav", db0, 1}; frequency = 1; volume = "engineOn*(1-camPos)*(latSlipDrive Factor[0.15, 0.3])*(Speed Factor[0, 10])"; }; class turn_right_int_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav", db0, 1}; frequency = 1; volume = "engineOn*(1-camPos)*(latSlipDrive Factor[-0.15, -0.3])*(Speed Factor[0, 10])"; }; }; class RenderTargets { class LeftMirror { renderTarget = "rendertarget0"; class CameraView1 { pointPosition = "PIP0_pos"; pointDirection = "PIP0_dir"; renderQuality = 2; renderVisionMode = 0; fov = 0.7; }; }; class IntMirror { renderTarget = "rendertarget1"; class CameraView1 { pointPosition = "PIP1_pos"; pointDirection = "PIP1_dir"; renderQuality = 2; renderVisionMode = 0; fov = 0.7; }; }; }; driverLeftHandAnimName = "drivewheel"; driverRightHandAnimName = "drivewheel"; thrustDelay = 0.1; brakeIdleSpeed = 0.78; maxSpeed = 320; // max speed on level road, km/h fuelCapacity = 45; wheelCircumference = 2.805; antiRollbarForceCoef = 0; antiRollbarForceLimit = 40; antiRollbarSpeedMin = 2; antiRollbarSpeedMax = 50; idleRpm = 900; redRpm = 3500; class complexGearbox { GearboxRatios[] = {"R1", -5.367, "N", 0, "D1", 5.367, "D2", 3.67, "D3", 2.238, "D4", 1.00, "D5", 0.8}; TransmissionRatios[] = {"High", 5.0}; gearBoxMode = "auto"; moveOffGear = 1; driveString = "D"; neutralString = "N"; reverseString = "R"; gearUpMaxCoef = 0.8; gearDownMaxCoef = 0.5; gearUpMinCoef = 0.45; gearDownMinCoef = 0.15; transmissionDelay = 1; }; simulation = "carx"; dampersBumpCoef = 3.0; differentialType = "rear_limited"; frontRearSplit = 0.5; frontBias = 1.5; rearBias = 1.5; centreBias = 1.3; clutchStrength = 200.0; enginePower = 100; maxOmega = 900; peakTorque = 1300; dampingRateFullThrottle = 0.1; dampingRateZeroThrottleClutchEngaged = 0.35; dampingRateZeroThrottleClutchDisengaged = 0.35; torqueCurve[] = {{0.0, 0.0}, {0.25, 0.65}, {0.3, 0.8}, {0.5, 0.95}, {0.7, 1.0}, {0.8, 0.9}, {0.9, 0.8}, {1.0, 0.5}}; changeGearMinEffectivity[] = {0.95, 0.15, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95}; switchTime = 0.05; latency = 0.2; class Wheels { class LF { boneName = "wheel_1_1_damper"; steering = 1; side = "left"; center = "wheel_1_1_axis"; boundary = "wheel_1_1_bound"; width = 0.5; mass = 30; MOI = 2.8; dampingRate = 0.5; maxBrakeTorque = 6000; maxHandBrakeTorque = 6000; suspTravelDirection[] = {0, -1, 0}; suspForceAppPointOffset = "wheel_1_1_axis"; tireForceAppPointOffset = "wheel_1_1_axis"; maxCompression = 0.3; mMaxDroop = 0.1; sprungMass = 300; springStrength = 50000; springDamperRate = 3400; longitudinalStiffnessPerUnitGravity = 10000; latStiffX = 25; latStiffY = 180; frictionVsSlipGraph[] = {{0, 1}, {0.5, 1.0}, {1, 1}}; }; class LR : LF { boneName = "wheel_1_2_damper"; steering = 0; center = "wheel_1_2_axis"; boundary = "wheel_1_2_bound"; suspForceAppPointOffset = "wheel_1_2_axis"; tireForceAppPointOffset = "wheel_1_2_axis"; maxHandBrakeTorque = 0; frictionVsSlipGraph[] = {{0, 1}, {0.5, 0.75}, {1, 0.5}}; }; class RF : LF { boneName = "wheel_2_1_damper"; center = "wheel_2_1_axis"; boundary = "wheel_2_1_bound"; suspForceAppPointOffset = "wheel_2_1_axis"; tireForceAppPointOffset = "wheel_2_1_axis"; steering = 1; side = "right"; frictionVsSlipGraph[] = {{0, 1}, {0.5, 1.0}, {1, 1}}; }; class RR : RF { boneName = "wheel_2_2_damper"; steering = 0; center = "wheel_2_2_axis"; boundary = "wheel_2_2_bound"; suspForceAppPointOffset = "wheel_2_2_axis"; tireForceAppPointOffset = "wheel_2_2_axis"; maxHandBrakeTorque = 0; frictionVsSlipGraph[] = {{0, 1}, {0.5, 0.75}, {1, 0.5}}; }; }; class Exhausts { class Exhaust1 { position = "exhaust1_pos"; direction = "exhaust1_dir"; effect = "ExhaustEffectOffroad"; }; class Exhaust2 { position = "exhaust2_pos"; direction = "exhaust2_dir"; effect = "ExhaustEffectOffroad"; }; }; class Damage { tex[] = {}; mat[] = {"A3\soft_F\Offroad\Data\offroad_ext.rvmat", "A3\soft_F\Offroad\Data\offroad_ext_damage.rvmat", "A3\soft_F\Offroad\Data\offroad_ext_destruct.rvmat", "A3\soft_F\Offroad\Data\Offroad_int_base.rvmat", "A3\soft_F\Offroad\Data\Offroad_int_base_damage.rvmat", "A3\soft_F\Offroad\Data\Offroad_int_base_destruct.rvmat", "A3\soft_F\Offroad\Data\Offroad_int_board.rvmat", "A3\soft_F\Offroad\Data\Offroad_int_board_damage.rvmat", "A3\soft_F\Offroad\Data\Offroad_int_board_destruct.rvmat", "A3\soft_F\Offroad\Data\Offroad_ext_plastic.rvmat", "A3\soft_F\Offroad\Data\Offroad_ext_damage.rvmat", "A3\soft_F\Offroad\Data\Offroad_ext_destruct.rvmat", "A3\data_f\glass_veh.rvmat", "A3\data_f\Glass_veh_damage.rvmat", "A3\data_f\Glass_veh_damage.rvmat", "A3\data_f\glass_veh_int.rvmat", "A3\data_f\Glass_veh_damage.rvmat", "A3\data_f\Glass_veh_damage.rvmat"}; }; class Reflectors { class Left { color[] = {0.75, 0.75, 0.85}; ambient[] = {0.0005, 0.0005, 0.0005}; position = "L svetlo"; direction = "konec L svetla"; hitpoint = "L svetlo"; selection = "L svetlo"; size = 1; innerAngle = 35; outerAngle = 180; coneFadeCoef = 40; intensity = 400; useFlare = 0; dayLight = 0; flareSize = 0.75; class Attenuation { start = 1; constant = 2.0; linear = 0.0; quadratic = 15.0; }; }; class Right : Left { position = "P svetlo"; direction = "konec P svetla"; hitpoint = "P svetlo"; selection = "P svetlo"; }; class Right2 : Right { position = "R_light_flare"; useFlare = 1; }; class Left2 : Left { position = "L_light_flare"; useFlare = 1; }; }; aggregateReflectors[] = {{"Left", "Right", "Left2", "Right2"}}; }; }; just dump this into a new config.cpp and pbo it