Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
39 views41 pages

FFB Custom Settings

The document provides detailed settings and optimizations for various racing wheelbases, including Simucube, Moza, Fanatec, and Simagic, tailored for different car types and driving styles. Each wheelbase has specific recommendations for in-game settings, base configurations, and advanced tuning options to enhance force feedback and overall driving experience. It emphasizes adjustments for rally cars and karts, ensuring users can achieve optimal performance based on their equipment.

Uploaded by

amumha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views41 pages

FFB Custom Settings

The document provides detailed settings and optimizations for various racing wheelbases, including Simucube, Moza, Fanatec, and Simagic, tailored for different car types and driving styles. Each wheelbase has specific recommendations for in-game settings, base configurations, and advanced tuning options to enhance force feedback and overall driving experience. It emphasizes adjustments for rally cars and karts, ensuring users can achieve optimal performance based on their equipment.

Uploaded by

amumha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 41

###########################################################

###########################################################

# NAME: rFuktor 5.0.1 - By Karsten with Shadak & Panos

# Daniels V7000 Topspeed 2 for all (dd bases) and for Fanatec Clubsport Wheelbase
2.5 (Belt-Base)
# File 3

# The file was tested and adjusted with a Simucube 2 Pro / Moza R21 V2 and Simagic
Alpha Evo with wheels with a diameter of 30-32cm
# All following base settings and all in-game settings are based on this custom
file V7000 Topspeed 2

# I recommend slightly increasing the in-game setting (FX) for all (Ralley Cars)
Formula Dirt Cars / KART CROSS Cars / RX Cars / Karts as indicated
# In addition, I recommend to use the static force regulation for these cars on
bases with this function (Simucube2/Assetek/VRS/Simagic Evo Pro) as indicated

###################################################################################
#################################################

# Optimized for Simucube 2 Pro (25Nm) (My reference base)


# Optimized for Simucube 2 Sport (17Nm)

# Optimized for Moza R21 V2 (21Nm) (My tested base)


# Optimized for Moza R16 V2 (16Nm)
# Optimized for Moza R12 V2 (12Nm)
# Optimized for Moza R9 V2 (9Nm)

# Optimized for Fanatec Podium DD1 (20Nm) (My former base)


# Optimized for Fanatec Podium DD2 (25Nm)
# Optimized for Fanatec CSL DD Base (8Nm)
# Optimized for Fanatec Clubsport DD (12Nm)
# Optimized for Fanatec Clubsport DD+ (15Nm)

# Optimized for Simagic Alpha Mini (10Nm)


# Optimized for Simagic Alpha (15NM)
# Optimized for Simagic Ultimate (23Nm)
# Optimized for Simagic Alpha Evo Sport (9Nm)
# Optimized for Simagic Alpha Evo (12NM) (My tested base)
# Optimized for Simagic Alpha Evo Pro (18Nm)

# Optimized for Assetek La Prima (12Nm)


# Optimized for Assetek Forte (18Nm)
# Optimized for Assetek Invicta (27Nm)

# Optimized for VRS (20Nm)

# Optimized for Cammus C15 (15Nm)


# Optimized for Cammus C12 (12Nm)

# Optimized for Thrustmaster T818 (10Nm)

# Optimized for Logitech G Pro (11Nm)


# Optimized for Conspit Ares (10Nm)
# Optimized for Conspit Ares Platinum (18Nm)

# Optimized for Fanatec Clubsport Wheelbase 2.5 (8.0 Nm Belt-Base)

###################################################################################
#################################################

# For Simucube 2 Pro 25Nm

# In Game: Gain 65%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Base/ TRUEDRIVE:
# Basic Settings:
# Max Strength: 40% - 50% (Depending on the car)
# Steering Range: 900

# Mechanical Feel:
# Damping: 0%
# Friction: 5%
# Inertia: 0% (Can be increased for very light wheels)

# Smoothness:
# Reconstruction Filter: 5
# Slew rate limit: OFF
# Torque Bandwidth: oo

# Advanced:
# Static force reduction: 3-6% (Reduces the high forces in curves and increases
the feedback of fine details ) for Ralley Cars 15-25%
# Ultra low latency: 0%
# Torque linearity: 1.0
# Bumpstop Feel: Medium or Hard
# Bumpstop range: 900

# Notch Filter:
# Center frequency (Hz): Off

# Game Effects:
# Damping: 100
# Friction: 100
# Spring: 100
# Sine wave: 100
# Square wave: 100
# Sawtooth Wave: 100
# Triangle Wave: 100

###################################################################################
##
# For Simucube 2 Sport 17Nm

# In Game: Gain 65%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Base/ TRUEDRIVE:
# Basic Settings:
# Max Strength: 60% - 70% (Depending on the car)
# Steering Range: 900

# Mechanical Feel:
# Damping: 0%
# Friction: 5%
# Inertia: 0% (Can be increased for very light wheels)

# Smoothness:
# Reconstruction Filter: 5
# Slew rate limit: OFF
# Torque Bandwidth: oo

# Advanced:
# Static force reduction: 3-6% (Reduces the high forces in curves and increases
the feedback of fine details ) for Ralley Cars 15-25%
# Ultra low latency: 0%
# Torque linearity: 1.0
# Bumpstop Feel: Medium or Hard
# Bumpstop range: 900

# Notch Filter:
# Center frequency (Hz): Off

# Game Effects:
# Damping: 100
# Friction: 100
# Spring: 100
# Sine wave: 100
# Square wave: 100
# Sawtooth Wave: 100
# Triangle Wave: 100

###################################################################################
##

# For Moza R21 V2 21Nm

# In Game: Gain 60%


# LFB 0%
# FX 15-18% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Basic Settings:
# Maximum Steering Angle: 900
# Synchronous: ON
# Soft limit stiffness: 3
# Soft limit strength: Hard
# Soft limit game force strength: On
# Game Force Feedback Intensity: 45% - 57% (Depending on the car)
# Professionel Game Force Feedback Intensity: 45% - 57% (Depending on the car)
# Maximum Output Torque Limit: 95%
# Force Feedback Reversal: Off
# Hands-Off Protection: Off (Do not set it to On because it can cause anomalies in
the FFB)
# Maximum Wheel Speed: 100%

# Advanced Settings:
# Force Feedback Interpolation: 0
# Natural Damping: 0%
# Natural Friction: 5%
# Natural Inertia: 150%
# Wheel Spring Strength: 0%

# Directimput Effect Tuning:


# Game Spring: 0%
# Game Damping: 0%
# Game Inertia: 0%
# Game Friction: 0%
# Speed-dependent Damping: 0%
# Start Point of Speed-dependent Damping: 0 km/h
# Temperature Control Strategy: Radical

# FFB Effect Equalizer:


# Linearly set everything to 100% to avoid the wheel swinging

# Base FFB Curve:


# Linear

###################################################################################
#

# For Moza R16 V2 16Nm

# In Game: Gain 60%


# LFB 0%
# FX 15-18% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Basic Settings:
# Maximum Steering Angle: 900
# Synchronous: ON
# Soft limit stiffness: 3
# Soft limit strength: Hard
# Soft limit game force strength: On
# Game Force Feedback Intensity: 60% - 75% (Depending on the car)
# Professionel Game Force Feedback Intensity: 60% - 75% (Depending on the car)
# Maximum Output Torque Limit: 95%
# Force Feedback Reversal: Off
# Hands-Off Protection: Off (Do not set it to On because it can cause anomalies in
the FFB)
# Maximum Wheel Speed: 100%

# Advanced Settings:
# Force Feedback Interpolation: 0
# Natural Damping: 0%
# Natural Friction: 5%
# Natural Inertia: 150%
# Wheel Spring Strength: 0%

# Directimput Effect Tuning:


# Game Spring: 0%
# Game Damping: 0%
# Game Inertia: 0%
# Game Friction: 0%
# Speed-dependent Damping: 0%
# Start Point of Speed-dependent Damping: 0 km/h
# Temperature Control Strategy: Radical

# FFB Effect Equalizer:


# Linearly set everything to 100% to avoid the wheel swinging

# Base FFB Curve:


# Linear

###################################################################################
##

# For Moza R12 V2 12Nm

# In Game: Gain 60%


# LFB 0%
# FX 15-18% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Basic Settings:
# Maximum Steering Angle: 900
# Synchronous: ON
# Soft limit stiffness: 3
# Soft limit strength: Hard
# Soft limit game force strength: On
# Game Force Feedback Intensity: 80% - 100% (Depending on the car)
# Professionel Game Force Feedback Intensity: 80% - 100% (Depending on the car)
# Maximum Output Torque Limit: 95%
# Force Feedback Reversal: Off
# Hands-Off Protection: Off (Do not set it to On because it can cause anomalies in
the FFB)
# Maximum Wheel Speed: 100%

# Advanced Settings:
# Force Feedback Interpolation: 0
# Natural Damping: 0%
# Natural Friction: 5%
# Natural Inertia: 150%
# Wheel Spring Strength: 0%

# Directimput Effect Tuning:


# Game Spring: 0%
# Game Damping: 0%
# Game Inertia: 0%
# Game Friction: 0%
# Speed-dependent Damping: 0%
# Start Point of Speed-dependent Damping: 0 km/h
# Temperature Control Strategy: Radical

# FFB Effect Equalizer:


# Linearly set everything to 100% to avoid the wheel swinging

# Base FFB Curve:


# Linear

###################################################################################
##

# For Moza R9 V2 9Nm

# In Game: Gain 60%


# LFB 0%
# FX 15-18% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Basic Settings:
# Maximum Steering Angle: 900
# Synchronous: ON
# Soft limit stiffness: 3
# Soft limit strength: Hard
# Soft limit game force strength: On
# Game Force Feedback Intensity: 100% (Depending on the car)
# Professionel Game Force Feedback Intensity: 100% (Depending on the car)
# Maximum Output Torque Limit: 100%
# Force Feedback Reversal: Off
# Hands-Off Protection: Off (Do not set it to On because it can cause anomalies in
the FFB)
# Maximum Wheel Speed: 80%

# Advanced Settings:
# Force Feedback Interpolation: 0
# Natural Damping: 0%
# Natural Friction: 5%
# Natural Inertia: 150%
# Wheel Spring Strength: 0%

# Directimput Effect Tuning:


# Game Spring: 0%
# Game Damping: 0%
# Game Inertia: 0%
# Game Friction: 0%
# Speed-dependent Damping: 0%
# Start Point of Speed-dependent Damping: 0 km/h
# Temperature Control Strategy: Radical

# FFB Effect Equalizer:


# Linearly set everything to 100% to avoid the wheel swinging

# Base FFB Curve:


# Linear

###################################################################################
##

# For Fanatec DD1 20Nm

# In Game: Gain 65%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Base/Fanalab:
# SEN: Auto
# FFB: 50-60% (Depending on the car)
# FFS: Peak
# NDP: 0%
# NFR: 5%
# NIN: 0% (Can be increased for very light wheels)
# INT: OFF
# FEI: 20%-30%
# FOR: 100%
# SPR: 100%
# DPR: 100%
# BLI: OFF

###################################################################################
##

# For Fanatec DD2 25Nm

# In Game: Gain 65%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Base/Fanalab:
# SEN: Auto
# FFB: 40-50% (Depending on the car)
# FFS: Peak
# NDP: 0%
# NFR: 5%
# NIN: 0% (Can be increased for very light wheels)
# INT: OFF
# FEI: 20%-30%
# FOR: 100%
# SPR: 100%
# DPR: 100%
# BLI: OFF

###################################################################################
##

# For Fanatec CSL DD Base 8Nm

# In Game: Gain 68%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Base/Fanalab:
# SEN: Auto
# FFB: 100%
# FFS: Peak
# NDP: 0%
# NFR: 5%
# NIN: 0% (Can be increased for very light wheels)
# INT: OFF
# FEI: 40% - 50%
# FOR: 100%
# SPR: 100%
# DPR: 100%
# BLI: OFF

###################################################################################
##

# For Fanatec Clubsport DD Base 12Nm

# In Game: Gain 65%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Base/Fanalab:
# SEN: Auto
# FFB: 80-100% (Depending on the car)
# FFS: Peak
# NDP: 0%
# NFR: 5%
# NIN: 0% (Can be increased for very light wheels)
# INT: OFF (For 2nd Variant 3-4)
# FEI: 40% - 50% (For 2nd Variant 80%)
# FOR: 100%
# SPR: 100%
# DPR: 100%
# BLI: OFF

###################################################################################
##

# For Fanatec Clubsport DD+ Base 15Nm

# In Game: Gain 65%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Base/Fanalab:
# SEN: Auto
# FFB: 60-75% (Depending on the car)
# FFS: Peak
# NDP: 0%
# NFR: 5%
# NIN: 0% (Can be increased for very light wheels)
# INT: OFF (For 2nd Variant 3-4)
# FEI: 40% - 50% (For 2nd Variant 80%)
# FOR: 100%
# SPR: 100%
# DPR: 100%
# BLI: OFF

###################################################################################
####

# For Simagic Alpha Mini 10Nm

# In Game: Gain 65%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Steer Settings:
# Angle: 900
# Hard Lock Angle: 900
# Limit Strength: Normal

# Basic Settings:
# Force Feedback: 100%
# Smoothness: 1 or 2
# Wheel Rotation Speed: 80% (40% for Rally Cars Drift Mode)
# Feedback Detail: 0-5

# Mechanical:
# Max. Torque: 10Nm
# Mechanical Damper: 0%
# Mechanical Friction: 8%
# Mechanical Inertia: 0% (Can be increased for very light wheels)
# Feedback Frequency: 0

# Other Effects:
# Mechanical Spring: 0%
# Center Damper: 0%
# Game Inertia: 100
# Game Spring: 100
# Game Damper: 100
# Game Friction: 100

###################################################################################
##

# For Simagic Alpha 15Nm

# In Game: Gain 65%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Steer Settings:
# Angle: 900
# Hard Lock Angle: 900
# Limit Strength: Normal

# Basic Settings:
# Force Feedback: 60-75% (Depending on the car)
# Smoothness: 1 or 2
# Wheel Rotation Speed: 80% (40% for Rally Cars Drift Mode)
# Feedback Detail: 0-5

# Mechanical:
# Max. Torque: 15Nm
# Mechanical Damper: 0%
# Mechanical Friction: 8%
# Mechanical Inertia: 0% (Can be increased for very light wheels)
# Feedback Frequency: 0

# Other Effects:
# Mechanical Spring: 0%
# Center Damper: 0%
# Game Inertia: 100
# Game Spring: 100
# Game Damper: 100
# Game Friction: 100

###################################################################################
##
# For Simagic Ultimate 23Nm

# In Game: Gain 65%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Steer Settings:
# Angle: 900
# Hard Lock Angle: 900
# Limit Strength: Normal

# Basic Settings:
# Force Feedback: 42-52% (Depending on the car)
# Smoothness: 1 or 2
# Wheel Rotation Speed: 80% (40% for Rally Cars Drift Mode)
# Feedback Detail: 0-5

# Mechanical:
# Max. Torque: 23Nm
# Mechanical Damper: 0%
# Mechanical Friction: 8%
# Mechanical Inertia: 0% (Can be increased for very light wheels)
# Feedback Frequency: 0

# Other Effects:
# Mechanical Spring: 0%
# Center Damper: 0%
# Game Inertia: 100
# Game Spring: 100
# Game Damper: 100
# Game Friction: 100

###################################################################################
##

# For Simagic Alpha Evo Sport (9Nm)

# In Game: Gain 65%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Steer Settings:
# Angle: 900
# Hard Lock Angle: 900
# Limit Strength: Normal

# Basic Settings:
# Force Feedback: 100%
# Filter Level: 0
# Wheel Rotation Speed: 80% (40% for Rally Cars Drift Mode)
# Feedback Detail: 0
# Mechanical:
# Dynamic Prediction Level: 0
# Mechanical Damper: 0%
# Mechanical Friction: 8%
# Mechanical Inertia: 0% (Can be increased for very light wheels)
# Slew Rate Control: 5%

# Other Effects:
# Mechanical Spring: 0%
# Center Damper: 0%
# Game Inertia: 100
# Game Centering: 100
# Game Damper: 100
# Game Friction: 100

###################################################################################
##

# For Simagic Alpha Evo (12Nm)

# In Game: Gain 65%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Steer Settings:
# Angle: 900
# Hard Lock Angle: 900
# Limit Strength: Normal

# Basic Settings:
# Force Feedback: 83-100% (Depending on the car)
# Filter Level: 0
# Wheel Rotation Speed: 80% (40% for Rally Cars Drift Mode)
# Feedback Detail: 0

# Mechanical:
# Dynamic Prediction Level: 0
# Mechanical Damper: 0%
# Mechanical Friction: 8%
# Mechanical Inertia: 0% (Can be increased for very light wheels)
# Slew Rate Control: 5%

# Other Effects:
# Mechanical Spring: 0%
# Center Damper: 0%
# Game Inertia: 100
# Game Centering: 100
# Game Damper: 100
# Game Friction: 100

###################################################################################
##
# For Simagic Alpha Evo Pro (18Nm)

# In Game: Gain 65%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Steer Settings:
# Angle: 900
# Hard Lock Angle: 900
# Limit Strength: Normal

# Basic Settings:
# Force Feedback: 55-70% (Depending on the car)
# Filter Level: 0
# Wheel Rotation Speed: 80% (40% for Rally Cars Drift Mode)
# Feedback Detail: 0

# Mechanical:
# Dynamic Prediction Level: 0
# Steering Torque Assist: 3-6% (Reduces the high forces in curves and increases the
feedback of fine details ) for Ralley Cars 15-25%
# Mechanical Damper: 0%
# Mechanical Friction: 8%
# Mechanical Inertia: 0% (Can be increased for very light wheels)
# Slew Rate Control: 5%

# Other Effects:
# Mechanical Spring: 0%
# Center Damper: 0%
# Game Inertia: 100
# Game Centering: 100
# Game Damper: 100
# Game Friction: 100

###################################################################################
##

# For Assetek La Prima 12Nm

# In Game: Gain 65%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Steering range: 900


# Bumpstop Hardness: Medium
# Bumpstop range: 0
# High-Frequency Limit: 3300
# Dämping: 0%
# Friction: 5%
# Inertia: OFF (Can be increased for very light wheels)
# Cornering Force Assist: 1 (Reduces the high forces in curves and increases the
feedback of fine details) for Ralley Cars 2 or 3
# Overal Force: 10-12Nm (Depending on the car)
# Torque Behavior Prediction: 0
# Torque Acceleration Limit: Max
# Anti-Oscillation: 0%

###################################################################################
##

# For Assetek Forte 18Nm

# In Game: Gain 65%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Steering range: 900


# Bumpstop Hardness: Medium
# Bumpstop range: 0
# High-Frequency Limit: 3300
# Dämping: 0%
# Friction: 5%
# Inertia: OFF (Can be increased for very light wheels)
# Cornering Force Assist: 1 (Reduces the high forces in curvesand increases the
feedback of fine details) for Ralley Cars 2 or 3
# Overal Force: 10-12Nm (Depending on the car)
# Torque Behavior Prediction: 0
# Torque Acceleration Limit: Max
# Anti-Oscillation: 0%

###################################################################################
##

# For Assetek Invicta 27Nm

# In Game: Gain 65%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Steering range: 900


# Bumpstop Hardness: Medium
# Bumpstop range: 0
# High-Frequency Limit: 3300
# Dämping: 0%
# Friction: 5%
# Inertia: OFF (Can be increased for very light wheels)
# Cornering Force Assist: 1 (Reduces the high forces in curves and increases the
feedback of fine details) for Ralley Cars 2 or 3
# Overal Force: 10-12Nm (Depending on the car)
# Torque Behavior Prediction: 0
# Torque Acceleration Limit: Max
# Anti-Oscillation: 0%

###################################################################################
##

# For VRS Base 20Nm

# In Game: Gain 65%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# General:
# Rotation degres: 900
# Max force: 50-60% (Depending on the car)
# Damping: 0%
# Friction: 5%
# Inertia: 0% (Can be increased for very light wheels)
# Spring 0%

# Filters:
# smoothing: Soft 2 or 3
# Static force reduction: 3-6% (Reduces the high forces in curves and increases
the feedback of fine details) for Ralley Cars 15-25%
# Non linearity: 0%
# Slew rate: Performance

# End stops:
# End stop max force: 100%
# End stop stiffness: 3
# Soft end stop: OFF
# Soft end stop degres: 900

###################################################################################

# For Cammus C15 15Nm

# In Game: Gain 65%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Base Settings:
# Steering Range: 900
# Power: 60-75% (Depending on the car)
# Natural Damping: 0%
# Natural Friction: 5%
# Natural Inertia: 0% (Can be increased for very light wheels)
# Idle Spring: 0%

# Game Effects:
# Effects Intenity: 100%
# CF Filter: 50%
# Q Filter: 50%
# Game Friction: 50%
# Game Spring: 50%

# Assistance:
# FFB invert: OFF
# Hands-off protection: Disable
# End stop strength: Hard
# High speed stability assist: all Linear

# Overheat protection:
# Temperatur threshold 85 C

###################################################################################
###

# For Cammus C12 12Nm

# In Game: Gain 65%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Base Settings:
# Steering Range: 900
# Power: 80-100% (Depending on the car)
# Natural Damping: 0%
# Natural Friction: 5%
# Natural Inertia: 0% (Can be increased for very light wheels)
# Idle Spring: 0%

# Game Effects:
# Effects Intenity: 100%
# CF Filter: 50%
# Q Filter: 50%
# Game Friction: 50%
# Game Spring: 50%

# Assistance:
# FFB invert: OFF
# Hands-off protection: Disable
# End stop strength: Hard
# High speed stability assist: all Linear

# Overheat protection:
# Temperatur threshold 85 C

###################################################################################
###
# For Thrustmaster T818 10Nm

# In Game: Gain 60-63%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Rotation: 900

# Base Settings TM Panel:


# Force: 100%
# Damping: 0%
# FFB Linearity: 0%
# Mode: Extreme or Sport

###################################################################################
###

# For Logitech G Pro 11Nm

# In Game: Gain 65%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Base Settings:
# Operating Angle: 900
# Dampener: 0
# Strength: 11Nm
# Force Feedback Filter: 0-8 (Test different levels to achieve the best result)

# Trueforce: TrueForce is currently not supported in Ams2

###################################################################################
####

# For Conspit Ares 10Nm

# In Game: Gain 65%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Base Settings:
# High Torque Mode: ON
# Configs: default-Road

# General:
# Boost: ON
# Max Force: 10Nm
# Effects Gain: 100%
# Mechanical Friction: 5%
# Mechanical Damper: 0%
# Mechanical Inertia: 0%
# Filter Frequency: 60-300 Hz (Find the ideal frequency for Ams2 to eliminate high
frequency sounds)
# Filter Sharpness: 100%

# Steering:
# Range: 900
# Limit Force: 100%
# Rotation Speed: 0%

# Centering Force:
# Force: 0%

# Directinputs Effects:
# Friction: 0%
# Damper: 0%
# Spring: 0%
# Inertia: 0%

###################################################################################
###

# For Conspit Ares Platinum 18Nm

# In Game: Gain 65%


# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Base Settings:
# High Torque Mode: ON
# Configs: default-Road

# General:
# Boost: ON
# Max Force: 18Nm
# Effects Gain: 55-65% (Depending on the car)
# Mechanical Friction: 5%
# Mechanical Damper: 0%
# Mechanical Inertia: 0%
# Filter Frequency: 60-300 Hz (Find the ideal frequency for Ams2 to eliminate high
frequency sounds)
# Filter Sharpness: 100%

# Steering:
# Range: 900
# Limit Force: 100%
# Rotation Speed: 0%
# Centering Force:
# Force: 0%

# Directinputs Effects:
# Friction: 0%
# Damper: 0%
# Spring: 0%
# Inertia: 0%

###################################################################################
###

# For Fanatec Clubsport Wheelbase 2.5 (8.0 Nm) (Belt-Base)

# In Game:
# Gain 63-68%
# LFB 0%
# FX 15-20% or for all Ralley Cars and Karts 20-30%
# Damping 5%

# Base/Fanalab:
# SEN: Auto
# FFB: 100%
# DRI: -1 or 0
# FEI: 60%-70%
# FOR: 100%
# SPR: OFF
# DPR: OFF

###################################################################################
###

#
# Madness bug madness
#
# Create many vars here so the madness bug will hit that.
#

(madness_bug1 1.0)
(madness_bug2 1.0)
(madness_bug3 1.0)
(madness_bug4 1.0)
(madness_bug5 1.0)
(madness_bug6 1.0)
(madness_bug7 1.0)
(madness_bug8 1.0)
(madness_bug9 1.0)
(madness_bug10 1.0)
(madness_bug11 1.0)
(madness_bug12 1.0)
(madness_bug13 1.0)
(madness_bug14 1.0)
(madness_bug15 1.0)
(madness_bug16 1.0)
(madness_bug17 1.0)
(madness_bug18 1.0)
(madness_bug19 1.0)
(madness_bug20 1.0)
(madness_bug21 1.0)
(madness_bug22 1.0)
(madness_bug23 1.0)
(madness_bug24 1.0)
(madness_bug25 1.0)
(madness_bug26 1.0)
(madness_bug27 1.0)
(madness_bug28 1.0)
(madness_bug29 1.0)
(madness_bug30 1.0)

(dt 0.0033333333333333333333333333333333333))

###########################################################
#
# Main dials
#

(master_rack 0.90)
(master_road 1.30)
(master_effects 1.55)
(gain2 (min 1 gain))
(lfb_slider2 (* 0.6 (power (/ (+ 0.05 lfb_slider) 0.95) 1.2)))
(df_compression (power (max 0 (* (/ 1 0.6) (- gain2 0.4))) 1.5))
#(df_compression 0.27)
(damping damping_slider)

###########################################################
#
# Rack settings
#

(tighten_range 0.030)
(tighten_falloff 0.010)
(power_steering_angle 0.06)
(tyre_initial_resist 3.5)
(tyre_resistance1_timing 0.000)
(tyre_resistance1_lo_df 1.00)
(tyre_resistance1_hi_df 1.00)
(rack_friction (* damping 0.70))
(lfb_slider_strength 1.00)
(center_full (blend (min 1.00 (* lfb_slider 12)) 1.0 0.0))
(over_steer_scale 2.80)
(under_steer_scale 2.15)
(exaggerate_front_load_feel 1.93)
(exaggerate_front_load_feel_hi_df 1.93)
(limit_high_df 1.0)
(velocity_res_scale 0.62)
(velocity_res_offset 0.55)
(vel_rot_scale 1.00)
(vel_rot_limit_coef 1.35)
(static_force_reduction_timing 2.00)
(normal_static_force_reduction 0.00)
#(exp_static_force_reduction 0.00)
#(exp_static_force_reduction_hi_df 0.00)
(yaw_scale 0.0)
(yaw_stretch_front 0.0)
(yaw_stretch_rear 0.0)
#(relax_yaw_line2_start_y 0.0000)
#(relax_yaw_pos 0.0011)
#(relax_yaw_width 0.00263)
#(relax_yaw_coef 0.00)
#(slip_crossover_pos 0.00)
#(slip_crossover_width 0.00)
#(slip_crossover_line1_slope 0.00)
(slip_crossover_line2_start_y 0.12)
(slip_crossover_line2_end_y 1.10)
(subtract_rot_velocity (* damping 2))
(accel_feel 0.00)
(brake_feel 1.75)
(yaw_feel 0.00)
(front_drive_torque_feel 0.20)
(rear_drive_torque_feel 0.0)
(front_tyre_stretch_feel 0.2)
(rear_tyre_stretch_feel 0.2)
(relax_os_line2_start_y 0.0000)
(relax_os_pos 0.0012)
(relax_os_width 0.00263)
(relax_os_coef 0.00)
(relax_us_line2_start_y 0.0000)
(relax_us_pos 0.0011)
(relax_us_width 0.00263)
(relax_us_coef 0.00)
(bump_feel_follow_weight 0.50)
(brake_feel_follow_weight 2.40)
(accel_feel_follow_weight 3.80)
(brake_coef 1.18)
(centering 0.47)
(on_off_throttle_feel 0.0)
(tear_threshold 0.25)
(scrub_threshold 0.06)
(road_rolling_slip_feel 1)
(front_grip_loss_feel 0.00)
(rear_grip_loss_feel 0.00)

###########################################################
#
# Road features settings
#

(texture_scale 0.5)
(micro_bumps_scale 0.60)
(micro_bumps_smooth 0.015)
(kerbs_surface_scale 4.0)
(kerbs_surface_smooth 0.003)
(kerb_bump_scale 3.20)
(large_track_bump_scale 0.8)
(large_offroad_bump_scale 3.0)
###########################################################
#
# Effect scales - Change here to make an effect more or less pronounced.
#

(engine_scale_at_still 0.4)
(engine_scale_at_speed 0.0)
(scrub_scale 4.0)
(tear_scale 0.40)
(tear_hard 0.50)
(scrub_frq_scale 0.45)
(tear_frq_scale 4.5)
(flatspots_scale 0.00)
(suspension_scale 0.30)
(rear_bump_scale 0.30)
(rear_bump_hard 0.60)

###########################################################
#
# Trail adjustments
#

(force_scale (* 1.7 (/ 0.23 centering)))

###########################################################
#
# Dynamic adjustment to bump feel based on car weight
#

(bump_weight_scale (/ 800 (/ (+ corner_FL corner_FR) 9.8)))


(bump_weight_scale (+ 1 (* bump_feel_follow_weight (- bump_weight_scale
1))))
(texture_scale (* texture_scale bump_weight_scale))
(micro_bumps_scale (* micro_bumps_scale bump_weight_scale))
(kerbs_surface_scale (* kerbs_surface_scale bump_weight_scale))
(kerb_bump_scale (* kerb_bump_scale bump_weight_scale))
(suspension_scale (* suspension_scale bump_weight_scale))
(rear_bump_scale (* rear_bump_scale bump_weight_scale))

###########################################################
#
# Dynamic adjustment to brake feel based on car weight
#

(brake_weight_scale (/ 1000 (/ (+ corner_FL corner_FR) 9.8)))

(brake_weight_scale (+ 1.80 (* brake_feel_follow_weight (-


brake_weight_scale 1))))
(brake_feel (/ brake_feel brake_weight_scale))

###########################################################
#Dynamic adjustment to accel feel based on car weight

(accel_weight_scale (/ 700 (/ (+ corner_FL corner_FR) 9.8)))


(accel_weight_scale (+ 1.0 (* accel_feel_follow_weight (-
accel_weight_scale 1))))
(accel_feel (/ accel_feel accel_weight_scale))

#############################################################

#
# Kart adjustments
#

(isKart (if (min 0 (- steer_ratio 5)) 1 0))

(master_effects (if isKart 2.0 master_effects))


(master_rack (if isKart 0.5 master_rack))
(master_road (if isKart 2.0 master_road))
(centering (if isKart 0.70 centering))
(force_scale (if isKart 2.2 force_scale))
(tyre_initial_resist (if isKart 3.8 tyre_initial_resist))
(tyre_resistance1_lo_df (if isKart 1.00 tyre_resistance1_lo_df))
(tyre_resistance1_hi_df (if isKart 1.00 tyre_resistance1_hi_df))
#(tyre_resistance2_lo_df (if isKart 0.33 tyre_resistance2_lo_df))
#(tyre_resistance2_hi_df (if isKart 0.33 tyre_resistance2_hi_df))
#(tyre_resistance3_lo_df (if isKart 0.33 tyre_resistance3_lo_df))
#(tyre_resistance3_hi_df (if isKart 0.33 tyre_resistance3_hi_df))
(rack_friction (if isKart 0.7 rack_friction))
(vel_rot_scale (if isKart 1.5 vel_rot_scale))
(over_steer_scale (if isKart 2.0 over_steer_scale))
(under_steer_scale (if isKart 1.6 under_steer_scale))
(accel_feel (if isKart 0.0 accel_feel))
(brake_feel (if isKart 6.0 brake_feel))
(front_drive_torque_feel (if isKart 0.1 front_drive_torque_feel))
(rear_drive_torque_feel (if isKart 0.0 rear_drive_torque_feel))
(suspension_scale (if isKart 0.3 suspension_scale))
(rear_bump_scale (if isKart 4.0 rear_bump_scale))
(front_tyre_stretch_feel (if isKart 0.1 front_tyre_stretch_feel))
(rear_tyre_stretch_feel (if isKart 0.3 rear_tyre_stretch_feel))
(rear_grip_loss_feel (if isKart 0.05 rear_grip_loss_feel))
(front_grip_loss_feel (if isKart 0.05 front_grip_loss_feel))
(relax_us_width (if isKart 0.01 relax_us_width))
(vel_rot_limit_coef (if isKart 5.0 vel_rot_limit_coef))
(vel_rot_scale (if isKart 1.5 vel_rot_scale))
(kerbs_surface_scale (if isKart 10.5 kerbs_surface_scale))
(kerb_bump_scale (if isKart 5.2 kerb_bump_scale))
(subtract_rot_velocity (if isKart 0.8 subtract_rot_velocity))
(texture_scale (if isKart 0.8 texture_scale))
(micro_bumps_scale (if isKart 0.3 micro_bumps_scale))
(scrub_scale (if isKart 3.5 scrub_scale ))
(tear_scale (if isKart 0.6 tear_scale ))
(tear_threshold (if isKart 0.02 tear_threshold ))
(scrub_threshold (if isKart 0.05 scrub_threshold ))
(engine_scale_at_still (if isKart 2.5 engine_scale_at_still ))
(large_track_bump_scale (if isKart 6.0 large_track_bump_scale))
###########################################################
#
# LFB slider value
#

(lfbval lfb_slider)

###########################################################
#
# Helper vars & prep
#

(ratio_scale (/ steer_ratio 8))


(kmh (* (abs vel_mag) 3600 0.001))
(speed_bias10 (max 0.0 (min 1.0 (/ (- kmh 3) 7.0))))
(delta_sa_max (* dt 3.14 2 ratio_scale))
(e 2.71828182846)

(flatspot_smoothing (blend (min 1 (* kmh 0.005)) 0.06 0.01))


(flatspot_vol (blend (min 1 (* kmh 0.005)) 2.5 1))
(fl_fs_sm (* 10 (smooth FL_Flatspot flatspot_smoothing)))
(fr_fs_sm (* 10 (smooth FR_Flatspot flatspot_smoothing)))

(RL_slide (min 1 (/ RL_scrub 5)))


(RR_slide (min 1 (/ RR_scrub 5)))

(slide_factor 0.20)
(FL_sl (* 1.0 (min 1 (* slide_factor FL_slide))))
(FR_sl (* 1.0 (min 1 (* slide_factor FR_slide))))
(RL_sl (* 1.0 (min 1 (* slide_factor RL_slide))))
(RR_sl (* 1.0 (min 1 (* slide_factor RR_slide))))

(FL_sl (* FL_sl (if (max 0 (- FL_load 1)) 1 0)))


(FR_sl (* FR_sl (if (max 0 (- FR_load 1)) 1 0)))
(RL_sl (* RL_sl (if (max 0 (- RL_load 1)) 1 0)))
(RR_sl (* RR_sl (if (max 0 (- RR_load 1)) 1 0)))

(slip_fl FL_sl)
(slip_fr FR_sl)
(slip_rl RL_sl)
(slip_rr RR_sl)

(tear_threshold_half (max 0.0001 (* tear_threshold 0.5)))


(FL_tear_early (max 0 (- 1 (/ (max 0 (- FL_sl tear_threshold_half))
tear_threshold_half))))
(FR_tear_early (max 0 (- 1 (/ (max 0 (- FR_sl tear_threshold_half))
tear_threshold_half))))
(RL_tear_early (max 0 (- 1 (/ (max 0 (- RL_sl tear_threshold_half))
tear_threshold_half))))
(RR_tear_early (max 0 (- 1 (/ (max 0 (- RR_sl tear_threshold_half))
tear_threshold_half))))

(FL_tear (max 0 (- FL_sl tear_threshold)))


(FR_tear (max 0 (- FR_sl tear_threshold)))
(RL_tear (max 0 (- RL_sl tear_threshold)))
(RR_tear (max 0 (- RR_sl tear_threshold)))

(FL_scrub (* 15 (power (/ (max 0 (- FL_sl scrub_threshold)) (- 1


scrub_threshold)) 0.6)))
(FR_scrub (* 15 (power (/ (max 0 (- FR_sl scrub_threshold)) (- 1
scrub_threshold)) 0.6)))
(RL_scrub (* 15 (power (/ (max 0 (- RL_sl scrub_threshold)) (- 1
scrub_threshold)) 0.6)))
(RR_scrub (* 15 (power (/ (max 0 (- RR_sl scrub_threshold)) (- 1
scrub_threshold)) 0.6)))

(FL_sl_lat (/ FL_vel_y (max 0.5 (abs FL_vel_x))))


(FR_sl_lat (/ FR_vel_y (max 0.5 (abs FR_vel_x))))
(RL_sl_lat (/ (- RL_vel_y FL_vel_y) (max 0.5 (* 2 (abs RL_vel_x)))))
(RR_sl_lat (/ (- RR_vel_y FR_vel_y) (max 0.5 (* 2 (abs RR_vel_x)))))
(FL_sl_lat (hard_clip FL_sl_lat 1.0))
(FR_sl_lat (hard_clip FR_sl_lat 1.0))
(RL_sl_lat (hard_clip RL_sl_lat 1.0))
(RR_sl_lat (hard_clip RR_sl_lat 1.0))

(p slip_crossover_pos)
(w slip_crossover_width)

(l1 (* slip_fl slip_crossover_line1_slope))


(l2 (* (if (min 0 slip_fl) -1 1) (+ slip_crossover_line2_start_y (* (abs slip_fl)
(- slip_crossover_line2_end_y slip_crossover_line2_start_y)))))
(b (/ 1 (+ 1 (power e (* 7 (- (/ (- slip_fl p) w) 0.5))))))
(slip_fl2 (+ (* l1 b) (* l2 (- 1 b))))
(l1 (* slip_fr slip_crossover_line1_slope))
(l2 (* (if (min 0 slip_fr) -1 1) (+ slip_crossover_line2_start_y (* (abs slip_fr)
(- slip_crossover_line2_end_y slip_crossover_line2_start_y)))))
(b (/ 1 (+ 1 (power e (* 7 (- (/ (- slip_fr p) w) 0.5))))))
(slip_fr2 (+ (* l1 b) (* l2 (- 1 b))))
(l1 (* slip_rl slip_crossover_line1_slope))
(l2 (* (if (min 0 slip_rl) -1 1) (+ slip_crossover_line2_start_y (* (abs slip_rl)
(- slip_crossover_line2_end_y slip_crossover_line2_start_y)))))
(b (/ 1 (+ 1 (power e (* 7 (- (/ (- slip_rl p) w) 0.5))))))
(slip_rl2 (+ (* l1 b) (* l2 (- 1 b))))
(l1 (* slip_rr slip_crossover_line1_slope))
(l2 (* (if (min 0 slip_rr) -1 1) (+ slip_crossover_line2_start_y (* (abs slip_rr)
(- slip_crossover_line2_end_y slip_crossover_line2_start_y)))))
(b (/ 1 (+ 1 (power e (* 7 (- (/ (- slip_rr p) w) 0.5))))))
(slip_rr2 (+ (* l1 b) (* l2 (- 1 b))))

(slip_fl2 (min 0.2 slip_fl2))


(slip_fr2 (min 0.2 slip_fr2))
(slip_rl2 (min 0.2 slip_rl2))
(slip_rr2 (min 0.2 slip_rr2))

(slip_fl2 (smooth slip_fl2 0.001))


(slip_fr2 (smooth slip_fr2 0.001))
(slip_rl2 (smooth slip_rl2 0.001))
(slip_rr2 (smooth slip_rr2 0.001))

(grip_fl (- 1.015 slip_fl2))


(grip_fr (- 1.015 slip_fr2))
(grip_rl (- 1.020 slip_rl2))
(grip_rr (- 1.020 slip_rr2))

(FL_def (* FL_def (power (max 0 (- 1 FL_tear)) 2)))


(FR_def (* FR_def (power (max 0 (- 1 FR_tear)) 2)))
(RL_def (* RL_def (power (max 0 (- 1 RL_tear)) 2)))
(RR_def (* RR_def (power (max 0 (- 1 RR_tear)) 2)))

(FL_stretch (power FL_stretch (power (abs FL_stretch) 0.97)))


(FR_stretch (power FR_stretch (power (abs FR_stretch) 0.97)))
(RL_stretch (power RL_stretch (power (abs RL_stretch) 0.97)))
(RR_stretch (power RR_stretch (power (abs RR_stretch) 0.97)))

(steering_angle_rack (* (+ steering_angle_FL steering_angle_FR) 0.8 3.14159265


ratio_scale))
(steering_angle_l steering_angle_rack)
(steering_angle_r steering_angle_rack)

(sa_delta_rack (* (/ 1 (* dt 333)) (- steering_angle_rack old_sa_rack)))


(old_sa_rack steering_angle_rack)
(sa_delta_rack (hard_clip sa_delta_rack delta_sa_max))

######################################################################

(lat_l_oversteer (* RL_sl_lat over_steer_scale))


(lat_r_oversteer (* RR_sl_lat over_steer_scale))
(lat_l_oversteer (blend (/ 1 (+ 1 (power e (* 7 (- (/ (- (abs lat_l_oversteer)
relax_os_pos) relax_os_width) 0.5))))) (* (if (min 0 lat_l_oversteer) -1 1) (+
relax_os_line2_start_y (* (abs lat_l_oversteer) (- 1 relax_os_line2_start_y))))
(power lat_l_oversteer (power (abs lat_l_oversteer) relax_os_coef))))
(lat_r_oversteer (blend (/ 1 (+ 1 (power e (* 7 (- (/ (- (abs lat_r_oversteer)
relax_os_pos) relax_os_width) 0.5))))) (* (if (min 0 lat_r_oversteer) -1 1) (+
relax_os_line2_start_y (* (abs lat_r_oversteer) (- 1 relax_os_line2_start_y))))
(power lat_r_oversteer (power (abs lat_r_oversteer) relax_os_coef))))

(lat_l_understeer (* FL_sl_lat under_steer_scale))


(lat_r_understeer (* FR_sl_lat under_steer_scale))
(lat_l_understeer (blend (/ 1 (+ 1 (power e (* 7 (- (/ (- lat_l_understeer
relax_us_pos) relax_us_width) 0.5))))) (* (if (min 0 lat_l_understeer) -1 1) (+
relax_us_line2_start_y (* (abs lat_l_understeer) (- 1 relax_us_line2_start_y))))
(power lat_l_understeer (power (abs lat_l_understeer) relax_us_coef))))
(lat_r_understeer (blend (/ 1 (+ 1 (power e (* 7 (- (/ (- lat_r_understeer
relax_us_pos) relax_us_width) 0.5))))) (* (if (min 0 lat_r_understeer) -1 1) (+
relax_us_line2_start_y (* (abs lat_r_understeer) (- 1 relax_us_line2_start_y))))
(power lat_r_understeer (power (abs lat_r_understeer) relax_us_coef))))

(lat_l (+ lat_l_oversteer lat_l_understeer))


(lat_r (+ lat_r_oversteer lat_r_understeer))
(lat_l (blend speed_bias10 0 lat_l))
(lat_r (blend speed_bias10 0 lat_r))

##########################################################################

##########################################################################
(steering_angle_l (- steering_angle_l (* lat_l 3.14159265)))
(steering_angle_r (- steering_angle_r (* lat_r 3.14159265)))

(sa_delta_l (* (/ 1 (* dt 333)) (- steering_angle_l old_sa_l)))


(sa_delta_r (* (/ 1 (* dt 333)) (- steering_angle_r old_sa_r)))
(old_sa_l steering_angle_l)
(old_sa_r steering_angle_r)

(sa_delta_l (hard_clip sa_delta_l delta_sa_max))


(sa_delta_r (hard_clip sa_delta_r delta_sa_max))

(FL_start_load_front (/ corner_FL 9.8))


(FR_start_load_front (/ corner_FR 9.8))

(FL_load_norm (/ FL_load FL_start_load_front))


(FR_load_norm (/ FR_load FR_start_load_front))

(rel_weight_FL (smooth FL_load_norm 0.1))


(rel_weight_FR (smooth FR_load_norm 0.1))
(load_df (+ (* 0.66 (min rel_weight_FL rel_weight_FR)) (* 0.33 (max
rel_weight_FL rel_weight_FR))))
(load_power_fx (max 0.0 (min 1.0 (* 2.5 (- load_df 1)))))
(load_power_fx (min load_power_fx (smooth load_power_fx 0.1)))

(limit_high_df_scale1 (blend df_compression 1 100))


#(limit_high_df_scale2 (blend (power power_steering 1.5) 1 30))
(limit_high_df_scale2 5)
(limit_high_df (* limit_high_df (max limit_high_df_scale1
limit_high_df_scale2)))
#(limit_high_df (* limit_high_df limit_high_df_scale1))
#limit high and low df
(x (+ 0.01 (* 0.2 limit_high_df)))
(y (- 1 (/ 1 (+ 1 x))))
(FL_load_norm_s (smooth FL_load_norm 0.3))
(FR_load_norm_s (smooth FR_load_norm 0.3))
(FL_load_norm_s (if (min 0 (- FL_load_norm_s 1)) (* 1.0625 (- 1 (/ 1 (+ 1 (* 16
FL_load_norm_s))))) (+ 1 (* 1.0 (- (* (/ 1 y) (- 1 (/ 1 (+ 1 (* x (power (abs
FL_load_norm_s) 0.5)))))) 1)))))
(FR_load_norm_s (if (min 0 (- FR_load_norm_s 1)) (* 1.0625 (- 1 (/ 1 (+ 1 (* 16
FR_load_norm_s))))) (+ 1 (* 1.0 (- (* (/ 1 y) (- 1 (/ 1 (+ 1 (* x (power (abs
FR_load_norm_s) 0.5)))))) 1)))))
(FL_load_norm (max 0 (+ FL_load_norm_s (* 0.5 (- (smooth FL_load_norm 0.01)
(smooth FL_load_norm 0.3))))))
(FR_load_norm (max 0 (+ FR_load_norm_s (* 0.5 (- (smooth FR_load_norm 0.01)
(smooth FR_load_norm 0.3))))))

(load_norm_wheel 250.0)
(FL_load_norm (* FL_load_norm load_norm_wheel))
(FR_load_norm (* FR_load_norm load_norm_wheel))

(m_FL_load FL_load_norm)
(m_FR_load FR_load_norm)
(ex_front_load_l (max (- 1.2 load_power_fx) (/ (smooth FL_load_norm 0.01) (max 0.2
(smooth FL_load_norm 0.025)))))
(ex_front_load_r (max (- 1.2 load_power_fx) (/ (smooth FR_load_norm 0.01) (max 0.2
(smooth FR_load_norm 0.025)))))
(ex_front_load_l (max 0.0 (+ 1.0 (* (blend load_power_fx
exaggerate_front_load_feel exaggerate_front_load_feel_hi_df) (- ex_front_load_l
1.0)))))
(ex_front_load_r (max 0.0 (+ 1.0 (* (blend load_power_fx
exaggerate_front_load_feel exaggerate_front_load_feel_hi_df) (- ex_front_load_r
1.0)))))
(m_FL_load (* m_FL_load ex_front_load_l))
(m_FR_load (* m_FR_load ex_front_load_r))

(acc (/ kmh (max 1 (smooth kmh 0.005))))


(acc2_vel (- acc (smooth acc 0.1)))
(acc2 (+ 1 (* accel_feel 0.3 600 (max 0 acc2_vel))))
(acc2 (max 0.66 (min acc2 1.5)) 0.1)
(m_FL_load (/ m_FL_load acc2))
(m_FR_load (/ m_FR_load acc2))

(rel_weight_relaxed_FL (/ m_FL_load load_norm_wheel))


(rel_weight_relaxed_FR (/ m_FR_load load_norm_wheel))
(rel_weight_relaxed_FL (min rel_weight_relaxed_FL (blend (power grip_fl 1.2) 1
rel_weight_relaxed_FL)))
(rel_weight_relaxed_FR (min rel_weight_relaxed_FR (blend (power grip_fr 1.2) 1
rel_weight_relaxed_FR)))

(x (* 10 (/ (min kmh 250) 400)))


(vel_mag_k_pull (/ 1 (+ 1 (* 20 x))))
(vel_mag_k_pull (+ 1 (* (- vel_mag_k_pull 1) 0.6)))
(vel_mag_k_pull (* vel_mag_k_pull 1.2))

(mom_FL2 (* rel_weight_relaxed_FL vel_mag_k_pull))


(mom_FR2 (* rel_weight_relaxed_FR vel_mag_k_pull))

(mom_FL mom_FL2)
(mom_FR mom_FR2)

(grip_feel_rear (min 1 (/ (+ (* grip_rl rel_weight_RL) (* grip_rr rel_weight_RR))


(max 0.0001 (+ rel_weight_RL rel_weight_RR)))))
(grip_feel_front (min 1 (/ (+ (* grip_fl rel_weight_FL) (* grip_fr rel_weight_FR))
(max 0.0001 (+ rel_weight_FL rel_weight_FR)))))
(grip_l (max 0 (- grip_fl (* rear_grip_loss_feel (- 1 grip_rl)))))
(grip_r (max 0 (- grip_fr (* rear_grip_loss_feel (- 1 grip_rr)))))
(grip_l (max 0 (- grip_rl (*front_grip_loss_feel (- 1 grip_fl)))))
(grip_r (max 0 (- grip_rr (*front_grip_loss_feel (- 1 grip_fr)))))

############
#
# Momentum Rack - If you copy this over in full or partly, or base a solution on
the same general methods after seeing it, please credit "Momentum Rack" however
used("included"/"extended"/"modified"/"based on"), I would be pleased - Thanks.
#
# Handles each front wheel separately to calculate FFB when wheels are not in equal
conditions.
#
# Calculations have not been shortened to make it easier to understand what is
going on.
#

## limit rot velocity


(a (abs kmh))
(f (* vel_rot_limit_coef 1.1 0.004))
(a (- 1 (/ 1 (+ 1 (* f a)))))
(a (/ a (- 1 (/ 1 (+ 1 f)))))
(a (/ a (max 0.000000001 (abs kmh))))
(n 1)
(pn (/ (- 1 (/ 1 (+ 1 (* f n)))) (- 1 (/ 1 (+ 1 f)))))
(kmh_l (* kmh a (/ n pn)))

(travel_l (* vel_rot_scale 0.001 kmh_l))


(travel_r (* vel_rot_scale 0.001 kmh_l))
(travel_l (- travel_l (* grip_fl 0.00032 (+ (* front_drive_torque_feel (min
0 FL_long)) (* (/ kmh 100) rear_drive_torque_feel (min 0 (- RL_long (smooth RL_long
0.0))))))))
(travel_r (- travel_r (* grip_fr 0.00032 (+ (* front_drive_torque_feel (min
0 FR_long)) (* (/ kmh 100) rear_drive_torque_feel (min 0 (- RR_long (smooth RR_long
0.0))))))))
(travel_l (+ travel_l (* 0.00015 brake_feel (max 0 FL_long))))
(travel_r (+ travel_r (* 0.00015 brake_feel (max 0 FR_long))))

(travel_l (* travel_l (max 0.02 (+ 1 (* on_off_throttle_feel (- (smooth


throttle 0.0) (smooth throttle 0.00)))))))
(travel_r (* travel_r (max 0.02 (+ 1 (* on_off_throttle_feel (- (smooth
throttle 0.0) (smooth throttle 0.00)))))))

(m_l (if (min 0 (- travel_l 0.000001)) 1 (power (- 1 centering)


travel_l)))
(m_r (if (min 0 (- travel_r 0.000001)) 1 (power (- 1 centering)
travel_r)))

(wanted_sa_l (* (- steering_angle_l sa_delta_l) (blend m_l 0.5 1)))


#getting the old angle, to calc where it would have gone by itself
(wanted_sa_r (* (- steering_angle_r sa_delta_r) (blend m_r 0.5 1)))

(angle_d_l (- wanted_sa_l steering_angle_l)) #diff from where it


would have gone by itself to actual steering
(angle_d_r (- wanted_sa_r steering_angle_r))
(angle_d_l (* angle_d_l 2.70))
(angle_d_r (* angle_d_r 2.70))

(vel_res (+ velocity_res_offset (* velocity_res_scale (min 1 (* kmh


0.004)))))
(angle_d_l (* angle_d_l vel_res))
(angle_d_r (* angle_d_r vel_res))
(angle_d_l (* angle_d_l force_scale))
(angle_d_r (* angle_d_r force_scale))

(angle_d_l (- angle_d_l (* subtract_rot_velocity sa_delta_l)))


(angle_d_r (- angle_d_r (* subtract_rot_velocity sa_delta_r)))

# power steering
(a_l (abs angle_d_l))
(a_r (abs angle_d_r))
(f (* (max 0.001 power_steering_angle) 25))
(a_l (- 1 (/ 1 (+ 1 (* f a_l)))))
(a_l (/ a_l (- 1 (/ 1 (+ 1 f)))))
(a_r (- 1 (/ 1 (+ 1 (* f a_r)))))
(a_r (/ a_r (- 1 (/ 1 (+ 1 f)))))
(a_l (/ a_l (max 0.000000001 (abs angle_d_l))))
(a_r (/ a_r (max 0.000000001 (abs angle_d_r))))
(n 0.00001)
(pn (/ (- 1 (/ 1 (+ 1 (* f n)))) (- 1 (/ 1 (+ 1 f)))))
(angle_d_l (* angle_d_l a_l (/ n pn)))
(angle_d_r (* angle_d_r a_r (/ n pn)))

# center full
(angle_d_l2 (* angle_d_l 90))
(angle_d_r2 (* angle_d_r 90))
(angle_d_lfb (* center_full 2.5))
(angle_d_l2 (* (if (min 0 angle_d_l2) -1 1) (/ (+ (* 15 0.8 (abs angle_d_l2))
(- 1 (/ 1 (+ 1 (* 15 angle_d_lfb (abs angle_d_l2)))))) 13)))
(angle_d_r2 (* (if (min 0 angle_d_r2) -1 1) (/ (+ (* 15 0.8 (abs angle_d_r2))
(- 1 (/ 1 (+ 1 (* 15 angle_d_lfb (abs angle_d_r2)))))) 13)))
(angle_d_l2 (/ angle_d_l2 25))
(angle_d_r2 (/ angle_d_r2 25))
(angle_d_l2 (blend grip_fl angle_d_l angle_d_l2))
(angle_d_r2 (blend grip_fr angle_d_r angle_d_r2))

(tyre_resistance1 (blend load_power_fx tyre_resistance1_lo_df


tyre_resistance1_hi_df))
(tyre_resistance2 (blend load_power_fx tyre_resistance2_lo_df
tyre_resistance2_hi_df))
(tyre_resistance3 (blend load_power_fx tyre_resistance3_lo_df
tyre_resistance3_hi_df))

(tyre_l_init (* tyre_initial_resist (- (smooth angle_d_l 0.004) (smooth


angle_d_l 0.02))))
(tyre_r_init (* tyre_initial_resist (- (smooth angle_d_r 0.004) (smooth
angle_d_r 0.02))))
(tyre_l_res1 (* tyre_resistance1 (smooth angle_d_l2 tyre_resistance1_timing)))
(tyre_r_res1 (* tyre_resistance1 (smooth angle_d_r2 tyre_resistance1_timing)))
(tyre_l_res2 (* tyre_resistance2 (smooth angle_d_l2 tyre_resistance2_timing)))
(tyre_r_res2 (* tyre_resistance2 (smooth angle_d_r2 tyre_resistance2_timing)))
(tyre_l_res3 (* tyre_resistance3 (smooth angle_d_l2 tyre_resistance3_timing)))
(tyre_r_res3 (* tyre_resistance3 (smooth angle_d_r2 tyre_resistance3_timing)))

(tyre_fl_stretch (* front_tyre_stretch_feel grip_fl FL_stretch angle_d_l


wheel_diam_FL 1.5))
(tyre_fr_stretch (* front_tyre_stretch_feel grip_fr FR_stretch angle_d_r
wheel_diam_FR 1.5))
(tyre_rl_stretch (* rear_tyre_stretch_feel grip_rl RL_stretch angle_d_l
wheel_diam_RL 1.5))
(tyre_rr_stretch (* rear_tyre_stretch_feel grip_rr RR_stretch angle_d_r
wheel_diam_RR 1.5))

(tyre_l (+ tyre_l_init tyre_l_res1 tyre_l_res2 tyre_l_res3


tyre_fl_stretch tyre_rl_stretch))
(tyre_r (+ tyre_r_init tyre_r_res1 tyre_r_res2 tyre_r_res3
tyre_fr_stretch tyre_rr_stretch))

(rack_momentum_l (* 9 (spring tyre_l 100000 1 1) mom_FL))


(rack_momentum_r (* 9 (spring tyre_r 100000 1 1) mom_FR))

# LFB
# weirdnes line here. without this "rack_momentum_2" does not get assigned in the
next line

(rack_momentum_2 (+ (* rack_momentum_l grip_l) (* rack_momentum_r grip_r)))


(x rack_momentum_2)
(x (* (if (min 0 x) -1 1) (* (- 1 (/ 1 (+ 1 (* lfb_slider_strength
18 (abs x))))) (+ lfb_slider2 (* (abs x) (- 1 lfb_slider2))))))
(rack_momentum_2 x)

(rack_momentum_l (* rack_momentum_l 2))


(rack_momentum_r (* rack_momentum_r 2))
(x rack_momentum_l)
(x (* (if (min 0 x) -1 1) (* (- 1 (/ 1 (+ 1 (* lfb_slider_strength
18 (abs x))))) (+ lfb_slider2 (* (abs x) (- 1 lfb_slider2))))))
(rack_momentum_l x)
(x rack_momentum_r)
(x (* (if (min 0 x) -1 1) (* (- 1 (/ 1 (+ 1 (* lfb_slider_strength
18 (abs x))))) (+ lfb_slider2 (* (abs x) (- 1 lfb_slider2))))))
(rack_momentum_r x)
(rack_momentum_l (* rack_momentum_l 0.5))
(rack_momentum_r (* rack_momentum_r 0.5))

(rack_momentum (+ (* rack_momentum_l grip_l) (* rack_momentum_r grip_r)))

(single_lfb_part lfbval)
(rack_momentum (blend single_lfb_part rack_momentum rack_momentum_2))

# Yaw

(yaw_l (* (/ wanted_sa_l (* ratio_scale 3.14)) kmh -1 (+ yaw_scale (*


FL_stretch yaw_stretch_front) (* RL_stretch yaw_stretch_rear)) 0.05 grip_fl
grip_feel_rear))
(yaw_r (* (/ wanted_sa_r (* ratio_scale 3.14)) kmh -1 (+ yaw_scale (*
FR_stretch yaw_stretch_front) (* RR_stretch yaw_stretch_rear)) 0.05 grip_fr
grip_feel_rear))
(yaw_l (* yaw_l rel_weight_relaxed_FL))
(yaw_r (* yaw_r rel_weight_relaxed_FR))
(yaw_l (blend (/ 1 (+ 1 (power e (* 7 (- (/ (- (abs yaw_l)
relax_yaw_pos) relax_yaw_width) 0.5))))) (* (if (min 0 yaw_l) -1 1) (+
relax_yaw_line2_start_y (* (abs yaw_l) (- 1 relax_yaw_line2_start_y)))) (power
yaw_l (power (abs yaw_l) relax_yaw_coef))))
(yaw_r (blend (/ 1 (+ 1 (power e (* 7 (- (/ (- (abs yaw_r)
relax_yaw_pos) relax_yaw_width) 0.5))))) (* (if (min 0 yaw_r) -1 1) (+
relax_yaw_line2_start_y (* (abs yaw_r) (- 1 relax_yaw_line2_start_y)))) (power
yaw_r (power (abs yaw_r) relax_yaw_coef))))
(rack_effect (+ yaw_l yaw_r))

# Rack effects

#(rack_effect (+ yaw_l yaw_r))


(rack_effect (blend 0.5 rack_effect (lfb rack_effect 0.175)))

(rack_momentum (+ rack_momentum rack_effect))

# Rack friction
(rack_friction (* 20 sa_delta_rack rack_friction))
(rack_momentum (- rack_momentum rack_friction))

# Rack spring

(steer_spring_strength 0.02)
(want_steer want_steer)
(steer_delta (- want_steer steering_angle_rack))
(steer_delta (if (max 0 (- (abs steer_delta) 0.5)) (* 0.5 (/ steer_delta (abs
steer_delta))) steer_delta))
(want_steer (+ steering_angle_rack steer_delta))
(steer_pull (hard_clip (* steer_spring_strength steer_delta 0.4) 0.5))
(want_steer (- want_steer (- steer_delta (hard_clip steer_delta (* 0.15 (max
0 (- (/ 1 (max kmh 2)) 0.05)))))))
(steer_pull (- steer_pull (* 6 sa_delta_rack)))
#(steer_pull (* 12 (/ 1.5 master_rack) (blend power_steering 1.2 0.8)
steer_pull grip_feel_front (* (/ 1 8) (+ FL_def FR_def 5))))
(steer_pull (* 12 (/ 1.5 master_rack) steer_pull grip_feel_front (* (/ 1 8)
(+ FL_def FR_def 5))))
(rack_momentum (blend (min 1 (/ kmh 3)) steer_pull rack_momentum))

# Smooth slightly
(rack_momentum (smooth rack_momentum 0.013))

###########################################################
#
# Normal static force reduction + Exponential static force reduction(affects the
top end of the force exponentially)
#

(rack_momentum_long (smooth rack_momentum static_force_reduction_timing))


(rack_momentum_short (- rack_momentum rack_momentum_long))
(rack_momentum_long (* rack_momentum_long (- 1 normal_static_force_reduction)))
(rack_momentum_long (* rack_momentum_long (blend (power (min 1 (abs
rack_momentum_long)) 1.0) 1 (- 1 (blend load_power_fx exp_static_force_reduction
exp_static_force_reduction_hi_df)))))
(rack_momentum (+ rack_momentum_long rack_momentum_short))
###########################################################
#
# Build road slope details & bumps
#

(curb_started curb_started) #-1 means left, 1 means right. 0 means no


curb active.
(curb_dist curb_dist)
(curb_started (if curb_started curb_started (if FL_bump_kerb -1 (if
FR_bump_kerb 1 0))))
(curb_dist (if (+ FL_bump_kerb FR_bump_kerb) 0 curb_dist))
(curb_started (if (min 0 (- curb_dist 10)) curb_started 0)) #within 10m we
keep same curb side
(curb_dist (+ curb_dist (* dt (/ kmh 3.6))))
(boost_on_curb 9)

(FL_bump_kerb_active FL_bump_kerb_active)
(FR_bump_kerb_active FR_bump_kerb_active)
(FL_bump_kerb_active (if FL_bump_kerb 1 FL_bump_kerb_active))
(FR_bump_kerb_active (if FR_bump_kerb 1 FR_bump_kerb_active))
(FL_bump_kerb_active (max 0 (- FL_bump_kerb_active (* 4 dt))))
(FR_bump_kerb_active (max 0 (- FR_bump_kerb_active (* 4 dt))))

(FL_bal FL_bal)
(FR_bal FR_bal)
(FL_bal (* FL_bal (power 0.03 dt)))
(FR_bal (* FR_bal (power 0.03 dt)))
(FL_bal (max FL_bal FL_load))
(FR_bal (max FR_bal FR_load))

(FL_load3 (if FL_bump_kerb_active FL_bal FL_load))


(FR_load3 (if FR_bump_kerb_active FR_bal FR_load))

(dist_time_mult (max 0.5 (/ 50 (max 10 kmh))))


(fast (* 0.01 dist_time_mult))
(slow (* 0.02 dist_time_mult))
(tyre_l (- (smooth FL_load3 fast) (smooth FL_load3 slow)))
(tyre_r (- (smooth FR_load3 fast) (smooth FR_load3 slow)))
(tyre_l (/ tyre_l load_norm_wheel))
(tyre_r (/ tyre_r load_norm_wheel))
(tyre_l (max 0 (- tyre_l 0.05)))
(tyre_r (max 0 (- tyre_r 0.05)))

(tyre_l (* tyre_l (min 1 (/ (smooth FL_load3 fast) load_norm_wheel))))


(tyre_r (* tyre_r (min 1 (/ (smooth FR_load3 fast) load_norm_wheel))))

(tyre_l (* (* boost_on_curb FL_bump_kerb_active) 0.5 tyre_l))


(tyre_r (* (* boost_on_curb FR_bump_kerb_active) 0.5 tyre_r))
(tyre_l (* (if (min 0 tyre_l) -1 1) (- 1 (/ 1 (+ (abs (* 2 tyre_l))
1)))))
(tyre_r (* (if (min 0 tyre_r) -1 1) (- 1 (/ 1 (+ (abs (* 2 tyre_r))
1)))))

(tyre_l (* tyre_l (if (- curb_started 1) 1 -1))) #curb started right side


means multiply left side with -1
(tyre_r (* tyre_r (if (+ curb_started 1) 1 -1))) #curb started left side
means multiply right side with -1
(slope_large (spring (- tyre_r tyre_l) 100 0.3))
(slope_large (* linkage_sign (- 1 (/ 1 (+ 1 (abs slope_large)))) (if (min 0
slope_large) -1 1)))

###########################################################
#
# Road features
#

(supress_micro_bumps 1)
(supress_large_bumps 2)

(left_texture_o left_texture_o)
(right_texture_o right_texture_o)
(left_texture (* 0.002 (if (+ FL_bump_kerb FL_bump_offroad) 0 1) (- FL_load
left_texture_o)))
(right_texture (* 0.002 (if (+ FR_bump_kerb FR_bump_offroad) 0 1) (- FR_load
right_texture_o)))
(left_texture_o FL_load)
(right_texture_o FR_load)
(texture (+ left_texture right_texture))
(texture (smooth texture 0.003))
(texture (hard_clip texture 0.06))
(texture (if (min 0 (- (abs texture) 0.00010)) 0 (power texture (power
(abs texture) 0.02))))
(texture_vibes (spring texture 26000 0.95))
(texture (+ texture (* 2.5 texture_vibes)))

(left_details (* 0.002 (- FL_load (smooth FL_load 0.008))))


(right_details (* 0.002 (- FR_load (smooth FR_load 0.008))))

(left_details_pos left_details_pos)
(right_details_pos right_details_pos)
(left_details_pos (+ left_details_pos (* (- left_details left_details_pos) (power
0.001 dt))))
(right_details_pos (+ right_details_pos (* (- right_details right_details_pos)
(power 0.001 dt))))
(left_details_pos (max left_details_pos left_details))
(right_details_pos (max right_details_pos right_details))
(left_details (spring left_details_pos 80000 0.1))
(right_details (spring right_details_pos 80000 0.1))
(left_details (* (power (- 1 (min 1 (abs left_details))) supress_micro_bumps)
left_details))
(right_details (* (power (- 1 (min 1 (abs right_details))) supress_micro_bumps)
right_details))
(left_details (* left_details (if FL_bump_offroad 0 1) (blend (smooth
FL_bump_kerb 0.01) micro_bumps_scale kerbs_surface_scale)))
(right_details (* right_details (if FR_bump_offroad 0 1) (blend (smooth
FR_bump_kerb 0.01) micro_bumps_scale kerbs_surface_scale)))
(left_details (smooth left_details (blend (smooth FL_bump_kerb 0.01)
micro_bumps_smooth kerbs_surface_smooth)))
(right_details (smooth right_details (blend (smooth FR_bump_kerb 0.01)
micro_bumps_smooth kerbs_surface_smooth)))
(kerbs_details (- left_details right_details))
(road_details (blend (smooth (min 1 (+ FL_bump_kerb FR_bump_kerb)) 0.02) (+
left_details right_details) kerbs_details))

(left_bump (* 0.002 (- FL_load (smooth FL_load 0.015))))


(right_bump (* 0.002 (- FR_load (smooth FR_load 0.015))))
(left_bump_pos left_bump_pos)
(right_bump_pos right_bump_pos)
(left_bump_pos (+ left_bump_pos (* (- left_bump left_bump_pos) (power 0.001
dt))))
(right_bump_pos (+ right_bump_pos (* (- right_bump right_bump_pos) (power 0.001
dt))))
(left_bump_pos (max left_bump_pos left_bump))
(right_bump_pos (max right_bump_pos right_bump))
(left_bump (spring left_bump_pos 10000 0.1))
(right_bump (spring right_bump_pos 10000 0.1))
(left_bump (* (power (- 1 (min 1 (abs left_bump))) supress_large_bumps)
left_bump))
(right_bump (* (power (- 1 (min 1 (abs right_bump))) supress_large_bumps)
right_bump))
(left_bump (* left_bump (if FL_bump_kerb 0 (if FL_bump_offroad
large_offroad_bump_scale large_track_bump_scale))))
(right_bump (* right_bump (if FR_bump_kerb 0 (if FR_bump_offroad
large_offroad_bump_scale large_track_bump_scale))))
(road_bumps (blend (smooth (min 1 (+ FL_bump_kerb FR_bump_kerb)) 0.015) (+
left_bump right_bump) (- left_bump right_bump)))

(left (- (smooth FL_load 0.02) (smooth FL_load 0.03)))


(right (- (smooth FR_load 0.02) (smooth FR_load 0.03)))
(suspension (+ (* left mom_FL2) (* right mom_FR2 )))
(suspension (spring suspension 2500 1.0))
(suspension (* suspension 0.0002 3 suspension_scale))
(as (blend (min 1 (* (abs steering_angle_rack) 10)) 1 0))
(as (power as 0.7))
(as (smooth as 0.1))
(suspension (* suspension as))

(left (* 0.95 (- RL_load (smooth RL_load 0.005))))


(right (* 0.95 (- RR_load (smooth RR_load 0.005))))
(left1 left1)
(right1 right1)
(left1 (* left1 (power 0.02 dt)))
(right1 (* right1 (power 0.02 dt)))
(left1 (max left left1))
(right1 (max right right1))
(left1 (+ left1 (* 0.7 (- (smooth RL_load 0.004) (smooth RL_load
0.008)))))
(right1 (+ right1 (* 0.7 (- (smooth RR_load 0.004) (smooth RR_load
0.008)))))
(rear (+ (* left1 mom_FL2 (if FL_bump_offroad 0 1)) (* right1 mom_FR2
(if FR_bump_offroad 0 1))))
(rear (- rear (smooth rear 0.02)))
(rear (spring rear (* rear_bump_hard 10000) 1.0))
(rear (* rear 0.0026 rear_bump_scale))

# LFB

# road features lfb according to fx


(lfb_apply 0.5)

(slope_large (* slope_large kerb_bump_scale))


(slope_large2 (power slope_large (power (abs slope_large) (* -0.05))))
(slope_large2 (lfb slope_large2 0.15))
(slope_large (blend lfb_apply slope_large slope_large2))

(road_features (+ slope_large suspension rear road_bumps road_details (* texture


texture_scale 0.5)))

(road_features (blend speed_bias10 0.0 road_features))


(road_features (* road_features 1.1 master_road (* 2 (power fx 1.6))))

###########################################################
#
# Scrub FX
#

(scrub_scale_front 0.58)
(scrub_scale_rear 0.75)

(FL_scrub (* (if FL_bump_offroad 0 1) FL_scrub))


(FR_scrub (* (if FR_bump_offroad 0 1) FR_scrub))
(RL_scrub (* (if RL_bump_offroad 0 1) RL_scrub))
(RR_scrub (* (if RR_bump_offroad 0 1) RR_scrub))

(F_scrub (max FL_scrub FR_scrub))


(R_scrub (max RL_scrub RR_scrub))

(F_scrub (min 1 (* 0.1 F_scrub)))


(R_scrub (min 1 (* 0.1 R_scrub)))

(scrub_deadzone 0.0)
(F_scrub (max 0 (- F_scrub scrub_deadzone)))
(R_scrub (max 0 (- R_scrub scrub_deadzone)))
(F_scrub (/ F_scrub (- 1 scrub_deadzone)))
(R_scrub (/ R_scrub (- 1 scrub_deadzone)))

(F_scrubVol (power F_scrub 1))


(R_scrubVol (power R_scrub 1))

#(F_scrubS (* scrub_frq_scale (+ 0.5 (* 0.5 F_scrub))))


#(R_scrubS (* scrub_frq_scale (+ 0.5 (* 0.5 R_scrub))))
(F_scrubS (* scrub_frq_scale (+ 0.3 (* 0.7 kmh 0.01)) (+ 0.5 (* 0.5
F_scrub))))
(R_scrubS (* scrub_frq_scale (+ 0.3 (* 0.7 kmh 0.01)) (+ 0.5 (* 0.5
R_scrub))))
(F_scrubP F_scrubP)
(R_scrubP R_scrubP)

(F_scrubP (+ F_scrubP (* dt F_scrubS 0.4 750)))


(R_scrubP (+ R_scrubP (* dt R_scrubS 0.4 500)))

(F_curve1_o F_curve1_o)
(F_curve1 (sin (* 1.23 F_scrubP)))
(F_curve1 (power F_curve1 1.8))
(F_curve1_now (if (min 0 (* F_curve1 (- F_curve1 F_curve1_o))) (* F_curve1 0.5)
F_curve1))
(F_curve1_o F_curve1)
(F_curve1_now (spring F_curve1_now 2000000 1))

(R_curve1_o R_curve1_o)
(R_curve1 (sin (* 1.23 R_scrubP)))
(R_curve1 (power R_curve1 1.8))
(R_curve1_now (if (min 0 (* R_curve1 (- R_curve1 R_curve1_o))) (* R_curve1 0.5)
R_curve1))
(R_curve1_o R_curve1)
(R_curve1_now (spring R_curve1_now 2000000 1))

(F_scrub (+ (* 0.15 (sin (* 1.9 F_scrubP))) (* 0.1 (sin (* 2.23


F_scrubP))) (* 0.4 F_curve1_now)))
(R_scrub (+ (* 0.15 (sin (* 1.9 R_scrubP))) (* 0.1 (sin (* 2.23
R_scrubP))) (* 0.4 R_curve1_now)))

(F_scrub (* F_scrub F_scrubVol))


(R_scrub (* R_scrub R_scrubVol))

(R_scrub (* R_scrub (blend (abs F_scrub) 1.0 0.3)))


(F_scrub (* F_scrub (blend (abs R_scrub) 1.0 0.3)))

(F_scrub (* F_scrub scrub_scale_front))


(R_scrub (* R_scrub scrub_scale_rear))

(scrub_effect (* scrub_scale (+ F_scrub R_scrub)))


(scrub_effect (spring scrub_effect 75000 1 1))

###########################################################
#
# Tear FX
#

(tear_scale_front 1.0)
(tear_scale_rear 1.0)

(FL_tear_early_vol (- 1 FL_tear_early))
(FL_tear_early_frq (+ 1 (* 5 FL_tear_early)))

(FR_tear_early_vol (- 1 FR_tear_early))
(FR_tear_early_frq (+ 1 (* 5 FR_tear_early)))

(RL_tear_early_vol (- 1 RL_tear_early))
(RL_tear_early_frq (+ 1 (* 5 RL_tear_early)))

(RR_tear_early_vol (- 1 RR_tear_early))
(RR_tear_early_frq (+ 1 (* 5 RR_tear_early)))
(o (oscillator (* FL_tear_early_frq tear_frq_scale (+ 0.3 (* 0.7 kmh
0.01)) (+ 0.5 (* 0.4 FL_tear)) dt 50)))
(o (power o 1.8))
(o2 (if (min 0 (* o (- o oo1))) (* o 0.5) o))
(oo1 o)
(FL_tear (* tear_scale 0.6 (+ (* FL_tear_early_vol 0.2) (power FL_tear
0.6)) o2))
(FL_tear (spring FL_tear (* tear_hard 700000) 1))

(o (oscillator (* FR_tear_early_frq tear_frq_scale (+ 0.3 (* 0.7 kmh


0.01)) (+ 0.5 (* 0.4 FR_tear)) dt 50)))
(o (power o 1.8))
(o2 (if (min 0 (* o (- o oo2))) (* o 0.5) o))
(oo2 o)
(FR_tear (* tear_scale 0.6 (+ (* FR_tear_early_vol 0.2) (power FR_tear
0.6)) o2))
(FR_tear (spring FR_tear (* tear_hard 700000) 1))

(o (oscillator (* RL_tear_early_frq tear_frq_scale (+ 0.3 (* 0.7 kmh


0.01)) (+ 0.5 (* 0.4 RL_tear)) dt 50)))
(o (power o 1.8))
(o2 (if (min 0 (* o (- o oo3))) (* o 0.5) o))
(oo3 o)
(RL_tear (* tear_scale 0.5 (+ (* RL_tear_early_vol 0.2) (power RL_tear
0.6)) o2))
(RL_tear (spring RL_tear (* tear_hard 700000) 1))

(o (oscillator (* RR_tear_early_frq tear_frq_scale (+ 0.3 (* 0.7 kmh


0.01)) (+ 0.5 (* 0.4 RR_tear)) dt 50)))
(o (power o 1.8))
(o2 (if (min 0 (* o (- o oo4))) (* o 0.5) o))
(oo4 o)
(RR_tear (* tear_scale 0.5 (+ (* RR_tear_early_vol 0.2) (power RR_tear
0.6)) o2))
(RR_tear (spring RR_tear (* tear_hard 700000) 1))

(tear_effect (+ FL_tear FR_tear RL_tear RR_tear))

###########################################################
#
# Rolling road slip feel
#

(steer_angle (* (+ steering_angle_FL steering_angle_FR) 0.3))


(steerPct (* steer_angle steer_ratio 0.25))
(road_feel_pos (+ road_feel_pos (* 10 (+ 0.02 (abs (* steerPct (/ 1.4 200)))) (+
1 (* kmh 0.01)))))
(road_effect (* road_rolling_slip_feel 4 (sin road_feel_pos) 0.004 (power kmh
0.5) 0.1 (+ 0.4 (* 1 (abs (* steerPct 1.3))))))

###########################################################
#
# Clipping
#
(rack_big rack_momentum)
(rack_big rack_momentum)

# Smart clip
(rack_big (* gain2 rack_big master_rack))
(rack_big2 (smooth (abs rack_big) 0.04))
(pos_neg (if (min 0.0 rack_big) -1 1))
(rack_big (if (max 0 (- (abs rack_big) 0.5)) (+ (min 0.90 rack_big2) (-
(abs rack_big) rack_big2)) (abs rack_big)))
(rack_big (* rack_big pos_neg))

(max_rack_big max_rack_big)
(rack_big2 (smooth (abs rack_big) 0.01))
(max_rack_big (if (max 0 (- rack_big2 max_rack_big)) rack_big2 max_rack_big))
(rack_big (if (max 0 (- max_rack_big 0.9)) (/ (* 0.9 rack_big)
max_rack_big) rack_big))
(max_rack_big (* max_rack_big (power 0.1 dt)))

###########################################################
#
# Engine FX
#

(max_rps 8000.0)
(cp (+ cp (min 6.28 (* dt crankshaft 0.7))))
(cp (if (min 0 cp) 0 cp))
(cp (if (max 0 (- cp 6.283)) (- cp 6.283) cp))
(cp (if (max 0 (- cp 6.283)) 0 cp))
(cp (max 0 (min cp 6.283)))
(m (min (/ kmh 80.0) 1.0))
(engine_scale (blend m engine_scale_at_still engine_scale_at_speed))
(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 (smooth throttle 0.1))
(load_mult (max load_mult 0.5))
(n (if (max 0 (- cp 3.14159265)) -1 1))
(x (if (max 0 (- cp 3.14159265)) (- cp 3.14159265) cp))
(engine_vibe (/ (* 16 x (- 3.14159265 x)) (- (* 5 3.14159265 3.14159265) (* 4
x (- 3.14159265 x)))))
(engine_vibe (* engine_vibe n))
(engine_effect (* engine_scale load_mult engine_vibe rps_scale))

###########################################################
#
# Flatspots effect
#

(flatspots_effect (* flatspots_scale flatspot_vol (+ (* fl_fs_sm load_power_fx) (*


fr_fs_sm load_power_fx))))

###########################################################
#
# Effects blend & scale
#

(effects (+ engine_effect tear_effect scrub_effect flatspots_effect


road_effect))
(effects (* effects (* 2 (power fx 1.6)) master_effects))

###########################################################
#
# Final Rack & Effects Blending
#

(rack_big (spring rack_big 200000 1 1))


(all (+ rack_big road_features effects))

# Damping
(damping2 (* (min 1 (/ kmh 250)) 1500 damping))
(all (- all (* damping2 (- sa_delta_rack (smooth sa_delta_rack
0.005)))))

# Limit explosions on time differences


(all (* all (if (min 0 (- dt 0.1)) 1 0)))
(all (* all (min 1 (* (max 0 (- et 0.5)) 0.5))))

(output all)

###########################################################
#
# 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)

###########################################################
#
# Statistics output
#

(histogram output)

(info2 output)

(output (if (+ tighten_range tighten_falloff) (tighten output tighten_range


tighten_falloff) output))

###########################################################
#
# Lock Stops
#

(custom_lock_stop 2.0)
(stops (bumpstop output 0.15 0.5 0.2 1.0))
(output (+ output (* stops custom_lock_stop)))

(doom_check output)
(output (hard_clip output 1.0))

You might also like