###################################################### # NAME: NuScorpii/Karsten - Unfortunate Circumstances ########################################################### # # Wheel type ingame settings recommendations: # # direct drive wheel bases: # LFB 1-30 # FX 50 Going very high will introduce jumping on stones # # tx wheels # LFB ?? Higher values than DD likely will be great # FX 50 # # csw/ts-pc/csl # LFB ?? Higher values than DD likely will be great # FX 50 # # For non-dd wheels: # the road noise might be too low at the default values below # ########################################################### ########################################################### # # Wheel type selection # # Set to 1.0 to select and all others to 0.0 # (wheeltype_dd 1.0) (wheeltype_csw_csl 0.0) (wheeltype_tspc 0.0) (wheeltype_t300 0.0) (wheeltype_g25_g27_g920 0.0) ########################################################### # # Enhancement Controls # # Set to 1.0 to enable and 0.0 to disable # (scrub_enhance 1.0) (road_details_boost 1.0) (center_enhance 1.0) (kerb_enhance 1.0) (road_rumble_fx 1.0) # this does NOT boost engine. It REMOVES engine vibrations the faster you go instead. The normal default setting would have same effect always. (engine_enhance 1.0) (smooth_rack_when_stand_still 1.0) (road_details_grip_feel_enhance 0.0) # experimental feel of grip based on speed & road surface (road_bumps_mid_size_enhance 0.0) # Seems to be good on csw wheels bases? (road_soft_bumps_enhance 0.0) # Not sure this is ever used any more. ########################################################### # # LFB - default value is 0.15 # (lfb_k 0.15) ########################################################### # # Scrub settings # # Overall scrub scale - used to scale both front and back (scrub_scale_master 30.0) # Scrub scale (0.0 - 2.0) # Set to 0.0 to disable (scrub_scale_front 1.2) (scrub_scale_rear 0.7) # Scrub lambda (inversely proportional to frequency of effect) # Higher values give lower freq. Best range 1.1 - 1.8 (scrub_lambda_front 1.6) (scrub_lambda_rear 1.2) ########################################################### # # "Real Road" details settings # # Gamma calculated from fx (micro_gamma (+ 1.0 (* (power fx 1.2) fx))) # Advanced fine tuning, adjusting will take you to a place of many trial & errors & you might not feel the difference right away, only wonder what happened on occasion if not careful. (details_boost_smooth_value 0.002) #Higher value boosts bigger bumps. At 0.002 mostly only details scale. ########################################################### # # Road grip force effect settings # (road_grip_rack_max_effect 0.6) #range 0.0-1.0 ########################################################### # # Road speed & older road fx strength settings # (road_fx (if wheeltype_dd 0.2 0.0)) (road_fx (if wheeltype_csw_csl 0.4 road_fx)) (road_fx (if wheeltype_tspc 0.4 road_fx)) (road_fx (if wheeltype_t300 0.4 road_fx)) (road_fx (if wheeltype_g25_g27_g920 0.0 road_fx)) ########################################################### # # Kerb settings # (kerb_scale 0.1) ########################################################### # # Engine settings # (engine_scale_at_start 2.5) (engine_scale_at_speed 0.0) ########################################################### # # Rumbling enhancemnt settings # (road_rumbling_scale (* 2.0 road_fx)) #oscillated road noise, affected by speed & front tyre oscillations. ########################################################### # # Road bumps mid size enhance # (road_scale_old (* 1.0 road_fx)) #medium road effect, affected by speed & front tyre oscillations. ########################################################### # # Soft road enhance # (road_scale_soft (* 2.5 road_fx)) #soft road effect, affected by speed & front tyre oscillations. ########################################################### # # Reiza code # (custom_lock_stop 1.0) (lever_mode 0) (smooth_level 0) (max_change 1.0) (min_force 0.00) (scrub_rack (- 1.0 scrub_enhance)) (scrub_rear 0.0) (engine_scale 0.1) #scaled rack damping, based on actual "virtual" rack velocity. (rack_damping_scale 1.0) # general multipliers (from ams1) (max_overall_force 11500.0) (recip_force ( / 1.0 max_overall_force)) #mfasr scaler (rack_scaled ( * arm_force ( / max_overall_force M_max_force_at_rack))) (rack_scaled ( * rack_scaled recip_force)) (rack rack_scaled) (rack_smooth (smooth rack M_force_smoothing)) (rack (if M_force_smoothing rack_smooth rack)) # PARKING LOT FORCE :) (parkingForce (* parkingForceMult rack)) (parkingForce (* parkingForce (crossover et 0.0 5.0))) (parkingForce (* parkingForce (- 1.0 (crossover vel_mag 0.0 7.0)))) (rack (* rack (crossover vel_mag 0.0 5.0))) (rack (+ rack parkingForce)) ########################################################### # # Kerb enhancement # (prd 1.0) (FL_bump_period (* 0.15 FL_bump_kerb)) (FL_bump_amplitude (* 0.1 FL_bump_kerb)) (FL_bump_sharpness 0.9) (inv_period (/ 1.0 (+ FL_bump_period 0.001))) (dphase (* FL_vel_x dt inv_period)) (sin1 (oscillator (* prd 1.0 dphase))) (sin2 (oscillator (* prd 2.0 dphase))) (sin3 (oscillator (* prd 3.0 dphase))) (term1 (* (/ -2.0 prd) sin1)) (term2 (* (/ -1.0 prd) sin2)) (term2 (* (/ -0.6667 prd) sin3)) (sawtooth (+ term1 term2 term3)) (FL_bump (* sawtooth (* FL_load 1.0) FL_bump_amplitude FL_angvel)) (FR_bump_period (* 0.15 FR_bump_kerb)) (FR_bump_amplitude (* 0.1 FR_bump_kerb)) (FR_bump_sharpness 0.8) (inv_period (/ 1.0 (+ FR_bump_period 0.001))) (dphase (* FR_vel_x dt inv_period)) (sin1 (oscillator (* prd 1.0 dphase))) (sin2 (oscillator (* prd 2.0 dphase))) (sin3 (oscillator (* prd 3.0 dphase))) (term1 (* (/ -2.0 prd) sin1)) (term2 (* (/ -1.0 prd) sin2)) (term2 (* (/ -0.6666 prd) sin3)) (sawtooth (+ term1 term2 term3)) (FR_bump (* sawtooth (* FR_load -1.0) FR_bump_amplitude FR_angvel)) (kerb_tex (* (+ FL_bump FR_bump) (* 0.0012 kerb_scale))) ########################################################### # # Mid Road Boost FX # (ang_v (* 0.5 (+ (abs FL_angvel) (abs FR_angvel)))) (FL_road (* FL_load 1.0)) (FR_road (* FR_load -1.0)) (FL_road (jerk FL_road)) (FR_road (jerk FR_road)) (road_k 20000.0) (road_s (/ ang_v 200)) (road_s (min road_s 1.0)) (road_k (- road_k (* road_s 10000.0))) #less the faster we go to avoid some stones (road_scale (+ road_scale_soft (* road_scale_soft road_s))) (road_d 0.2) (FL_road (split FL_road 0.0 1.0 1.0 2.0 0.01)) (FL_road (spring FL_road road_k road_d 1.0)) (FR_road (split FR_road 0.0 1.0 1.0 2.0 0.01)) (FR_road (spring FR_road road_k road_d 1.0)) (road_scale_2 (/ road_scale 80000.0)) (FL_road (* FL_road road_scale_2)) (FR_road (* FR_road road_scale_2)) (m (/ ang_v 100.0)) (m (min m 1.0)) (FL_road (* FL_road m)) (FR_road (* FR_road m)) ########################################################### # # Soft Road Boost FX # (ang_v (* 0.5 (+ (abs FL_angvel) (abs FR_angvel)))) (FL_road_old (* FL_load 1.0)) (FR_road_old (* FR_load -1.0)) (FL_road_old (jerk FL_road_old)) (FR_road_old (jerk FR_road_old)) (road_k 100000.0) (road_d 2.0) (FL_road_old (split FL_road_old 0.0 1.0 1.0 2.0 0.01)) (FL_road_old (spring FL_road_old road_k road_d 1.0)) (FR_road_old (split FR_road_old 0.0 1.0 1.0 2.0 0.01)) (FR_road_old (spring FR_road_old road_k road_d 1.0)) (road_scale_noise_2 (/ road_scale_old 80000.0)) (FL_road_old (* FL_road_old road_scale_noise_2)) (FR_road_old (* FR_road_old road_scale_noise_2)) (m (/ ang_v 100.0)) (m (min m 1.0)) (FL_road_old (* FL_road_old m)) (FR_road_old (* FR_road_old m)) ########################################################### # # Road rumble # (ang_v (* 0.5 (+ (abs FL_angvel) (abs FR_angvel)))) (m (/ ang_v 200.0)) (m (min m 3.0)) (o (* m 0.5)) (rumbling_effect 0.5) (rumbling (* 0.1 road_rumbling_scale (oscillator o) m rumbling_effect)) ########################################################### # # Scrub FX # # Scrub Front (sf_s 0.55) (FL_scrub (soft_clip FL_scrub 2.0 0.0)) (FL_scrub (* (/ 1 (- 1.0 sf_s)) (max 0.0 (- FL_scrub sf_s)))) (FL_scrub (power FL_scrub 2.0)) (FL_scrub (* FL_scrub (oscillator scrub_lambda_front))) (FR_scrub (soft_clip FR_scrub 2.0 0.0)) (FR_scrub (* (/ 1 (- 1.0 sf_s)) (max 0.0 (- FR_scrub sf_s)))) (FR_scrub (power FR_scrub 2.0)) (FR_scrub (* FR_scrub (oscillator scrub_lambda_front))) (scrub_k 20000.0) (scrub_d 1.0) (scrub_scale_factor (* scrub_scale_master scrub_scale_front)) (FL_scrub (* scrub_scale_factor FL_scrub)) (FL_scrub (split FL_scrub 0.0 1.0 1.0 2.0 0.01)) (FL_scrub (spring FL_scrub scrub_k scrub_d 1.0)) (FR_scrub (* scrub_scale_factor FR_scrub)) (FR_scrub (split FR_scrub 0.0 1.0 1.0 2.0 0.01)) (FR_scrub (spring FR_scrub scrub_k scrub_d 1.0)) # Scrub Rear (sr_s 0.52) (RL_scrub (soft_clip RL_scrub 2.0 0.0)) (RL_scrub (* (/ 1 (- 1.0 sr_s)) (max 0.0 (- RL_scrub sr_s)))) (RL_scrub (power RL_scrub 2.0)) (RL_scrub (* RL_scrub (oscillator scrub_lambda_rear))) (RR_scrub (soft_clip RR_scrub 2.0 0.0)) (RR_scrub (* (/ 1 (- 1.0 sr_s)) (max 0.0 (- RR_scrub sr_s)))) (RR_scrub (power RR_scrub 2.0)) (RR_scrub (* RR_scrub (oscillator scrub_lambda_rear))) (scrub_k 20000.0) (scrub_d 1.0) (scrub_scale_factor (* scrub_scale_master scrub_scale_rear)) (RL_scrub (* scrub_scale_factor RL_scrub)) (RL_scrub (split RL_scrub 0.0 1.0 1.0 2.0 0.01)) (RL_scrub (spring RL_scrub scrub_k scrub_d 1.0)) (RR_scrub (* scrub_scale_factor RR_scrub)) (RR_scrub (split RR_scrub 0.0 1.0 1.0 2.0 0.01)) (RR_scrub (spring RR_scrub scrub_k scrub_d 1.0)) ########################################################### # # Combining road effects # (FL_tex (+ (* (+ FL_scrub RL_scrub) scrub_enhance) (* FL_road_old road_bumps_mid_size_enhance) (* FL_road road_soft_bumps_enhance))) (FR_tex (+ (* (+ FR_scrub RR_scrub) scrub_enhance) (* FR_road_old road_bumps_mid_size_enhance) (* FR_road road_soft_bumps_enhance))) (tex (+ FL_tex FR_tex (* rumbling road_rumble_fx) (* kerb_tex kerb_enhance))) (tex (soft_clip tex 1.0 0.0)) # Smooth texture at standstill / very low speeds (slow_tex (smooth tex 0.1)) (slow_tex (drag slow_tex 0.0001 0.0)) (speed_bias (max 0.0 (min 1.0 (/ vel_mag 10.0)))) (tex (blend speed_bias slow_tex tex)) ########################################################### # # Engine effect # (max_rps 8000.0) (ang_v (* 0.5 (+ (abs FL_angvel) (abs FR_angvel)))) (rps_scale ( / crankshaft max_rps)) (rps_scale ( power rps_scale 0.8)) (rps_scale (min rps_scale 0.02)) (rps_scale (max rps_scale 0.14)) (load_mult (+ 0.8 throttle)) (load_mult (max load_mult 1.0)) (m (/ ang_v 120.0)) (m (min m 1.0)) (engine_scale_adjusted (blend m engine_scale_at_start engine_scale_at_speed)) (engine_scale_adjusted (/ engine_scale_adjusted 15.0)) (engine_scale (blend engine_enhance engine_scale engine_scale_adjusted)) (engine_vibe (sin crankPos)) (engine_vibe ( * load_mult engine_vibe rps_scale engine_scale)) (feel ( + tex engine_vibe)) ########################################################### # # Split rack force in big and small # (rack_big rack) (rack_big_with_lfb (lfb rack_big lfb_k)) (rack_small 0.0) ########################################################### # # Road details boost # # Smooth road details out (rack_smooth (smooth rack details_boost_smooth_value)) # rack_delta is the small force that is the difference from the smoothed big force (rack_delta (- rack rack_smooth)) # Apply gamma to the micro details (rack_delta (power rack_delta (/ 1.0 micro_gamma))) # Use it or not (rack_big (blend road_details_boost rack_big rack_smooth)) (rack_big_with_lfb (blend road_details_boost rack_big_with_lfb (lfb rack_big lfb_k))) (rack_small (blend road_details_boost rack_small rack_delta)) ########################################################### # # Center fix (works along with road details enhancement only) # (ang_v (* 0.5 (+ (abs FL_angvel) (abs FR_angvel)))) (max_power_at_kmh 200) (min_power_of 1.0) (max_power_of 0.4) (power_apply (/ ang_v max_power_at_kmh)) (power_apply (min power_apply 1.0)) #(power_apply (power power_apply 1.2)) #how fast it raises the power based on speed (power_apply (blend power_apply min_power_of max_power_of)) (fix_rack_force_range_top 0.4) (rack_center (* (power (* rack_big_with_lfb (/ 1.0 fix_rack_force_range_top)) power_apply) fix_rack_force_range_top)) #(rack_center (* (lfb (* rack_big_with_lfb (/ 1.0 fix_rack_force_range_top)) (* 0.30 power_apply)) fix_rack_force_range_top)) # All from existing rack above threshold (fix_rack_force_range_top) (amount (* (abs rack_big_with_lfb) (/ 1.0 fix_rack_force_range_top))) (amount (min amount 1.0)) # Anything but 1.0 we set it to 0.0 (amount (if (abs (- amount 1.0)) 0.0 amount)) (amount (- 1.0 amount)) # Soften amount when below 0.1 force (m (* (abs rack_big) 10.0)) (m (min m 1.0)) (m (power m 1.7)) (amount (* amount m)) # Apply rack_center in accordance with amount (rack_center_with_lfb (blend amount rack_big_with_lfb rack_center)) (rack_big_with_lfb (blend center_enhance rack_big_with_lfb rack_center_with_lfb)) ########################################################### # # Join rack from big and small again and apply lfb # # Join to rack again (rack (+ rack_big_with_lfb rack_small)) ########################################################### # # Road grip rack force effect # # Left front grip calc (FL_load_smooth (smooth FL_load 0.002)) (FL_DETAILS_GRIP_POS (max (- FL_load FL_load_smooth) 0.0)) (FL_DETAILS_GRIP_NEG (min (- FL_load FL_load_smooth) 0.0)) # Don't count the bigger ones too high, as that affects slow driving too then (FL_DETAILS_GRIP_POS (min FL_DETAILS_GRIP_POS 10.0)) (FL_DETAILS_GRIP_NEG (max FL_DETAILS_GRIP_NEG -10.0)) (FL_DETAILS_GRIP_POS (smooth FL_DETAILS_GRIP_POS 0.15)) (FL_DETAILS_GRIP_NEG (smooth FL_DETAILS_GRIP_NEG 0.15)) # Cross negative & positive to get oscillations only (FL_DETAILS_GRIP_TOT (* FL_DETAILS_GRIP_NEG FL_DETAILS_GRIP_POS)) (FL_DETAILS_GRIP_TOT (abs FL_DETAILS_GRIP_TOT)) # Right front grip calc (FR_load_smooth (smooth FR_load 0.002)) (FR_DETAILS_GRIP_POS (max (- FR_load FR_load_smooth) 0.0)) (FR_DETAILS_GRIP_NEG (min (- FR_load FR_load_smooth) 0.0)) # Don't count the bigger ones too high, as that affects slow driving too then (FR_DETAILS_GRIP_POS (min FR_DETAILS_GRIP_POS 10.0)) (FR_DETAILS_GRIP_NEG (max FR_DETAILS_GRIP_NEG -10.0)) (FR_DETAILS_GRIP_POS (smooth FR_DETAILS_GRIP_POS 0.15)) (FR_DETAILS_GRIP_NEG (smooth FR_DETAILS_GRIP_NEG 0.15)) # Cross negative & positive to get oscillations only (FR_DETAILS_GRIP_TOT (* FR_DETAILS_GRIP_NEG FR_DETAILS_GRIP_POS)) (FR_DETAILS_GRIP_TOT (abs FR_DETAILS_GRIP_TOT)) # Combine left & right (DETAILS_GRIP_TOT (* (+ FL_DETAILS_GRIP_TOT FR_DETAILS_GRIP_TOT) 0.5)) # scale down to hit appr. 0.0 - 1.0 interval for normal forces (DETAILS_GRIP_TOT (* DETAILS_GRIP_TOT 0.075)) # Bigger diff low high (DETAILS_GRIP_TOT (power DETAILS_GRIP_TOT 2.0)) # Full effect at speed. More speed even more effect. (ang_v (* 0.5 (+ (abs FL_angvel) (abs FR_angvel)))) (t (power (/ ang_v 250) 1.6)) (t (min t 1.0)) (DETAILS_GRIP_TOT (* DETAILS_GRIP_TOT t)) # limit to normalized range (DETAILS_GRIP_TOT (min DETAILS_GRIP_TOT 1.0)) (DETAILS_GRIP_TOT (max DETAILS_GRIP_TOT 0.0)) # Apply to big rack force (road_details_grip (* rack (- 1.0 (* DETAILS_GRIP_TOT road_grip_rack_max_effect)))) # Use it or not (rack (blend road_details_grip_feel_enhance rack road_details_grip)) ########################################################### # # Final Rack Blending # # Smooth rack at standstill / very low speeds (slow_rack (smooth rack 0.1)) (slow_rack (drag slow_rack 0.0001 0.0)) (speed_bias (max 0.15 (min 1.0 (/ vel_mag 10.0)))) (rack_relaxed_when_slow (blend speed_bias slow_rack rack)) (rack (blend smooth_rack_when_stand_still rack rack_relaxed_when_slow)) # FX LFB (feel ( lfb feel lfb_k)) # Combine rack and FX forces (output ( + rack ( * feel fx 0.8))) ########################################################### # # Scaler for info, no affect on output # (scale_window_init 10.0) (scale_window_nominal 2.0) (scale_soft_clear_t 10.0) (scale_min 0.2) (scale_max 2.0) (scale_blend_t 2.0) (signal_scale output 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0) ########################################################### # # Light Damping # #pass thru same smoothing level as rackForce (damping_smooth (smooth rack_damping M_force_smoothing)) (rack_damping (if M_force_smoothing damping_smooth rack_damping)) (output (+ output (* rack_damping_scale rack_damping))) ########################################################### # # Clipping # #allow 30% headroom (headroom ( - 0.7 gain)) (clipTo ( + 1.3 headroom)) (clipTo ( if headroom 1.3 clipTo)) (output (hard_clip output clipTo)) (output (* output gain)) ########################################################### # # Lock Stops # (stops (bumpstop output 0.1 1.0 0.14 5.0)) (output (+ output (* stops custom_lock_stop))) ########################################################### # # Statistics output # (histogram output) (info2 output)