-------------------------------------------------
--                    SUPRA V1                 --
-------------------------------------------------

[INCLUDE: Motec_WAU.ini]
[INCLUDE: Motec_Side_Lights.ini]



------------AUDIO------------

[AUDIO_VOLUME]
ENGINE_EXT = 1
ENGINE_INT = 1
GEAR_EXT = 1
GEAR_INT = 1
BODYWORK = 1
WIND = 0.5
DIRT = 0.5
DOWN_SHIFT = 1
HORN = 1
GEAR_GRIND = 1.0
BACKFIRE_EXT = 1
BACKFIRE_INT = 1
TRACTION_CONTROL_EXT = 0.5
TRACTION_CONTROL_INT = 0.5
TRANSMISSION = 3
LIMITER = 1
SKID_EXT=1
SKID_INT=1
TURBO = 0

------------WIPERS------------

[WIPERS]
WIND_THRESHOLDS_KMH = 60, 150  ; speed for wipers to start vibrating and for maximum vibration
WIND_AMPLITUDE_MULT = 1        ; multiplier for amplitude
WIND_FREQUENCY_MULT = 1        ; multiplier for frequency
WIND_OFFSET = 0.03  

------------EXHAUST------------

[PARTICLESFX_EXHAUST_FLAMES...]
POSITION=0.845378,0.195,0.4021891
DIRECTION=0.9149472,0,-0.4035739
COLOR = 0.5,0.5,1
LIFE = 2, 2
SPEED = 0.5, 1
SPREAD = 0.1
STARTING_SIZE = 0.03
SPAWN_OFFSET = 0.01
INTENSITY = 0.1, 0.5
TEMPERATURE_LAG = 1
SPEED_THRESHOLD = 15, 100

[EXHAUST_FLAMES]
DISCHARGE=1
DISCHARGE_CHARGE_TIME=0.005
DISCHARGE_DELAY=0.0020
DISCHARGE_DURATION=1.25
DISCHARGE_INTENSITY=0.5
DISCHARGE_PROBABILITY=100
DISCHARGE_RPM_THRESHOLD_MAX=7200
DISCHARGE_RPM_THRESHOLD_MIN=3000
DISCHARGE_WATER_TEMPERATURE_THRESHOLD=10
FLAT_SHIFT=0
FLAT_SHIFT_COOLDOWN=0
FLAT_SHIFT_DURATION=1.0
FLAT_SHIFT_GAS_THRESHOLD=80
FLAT_SHIFT_INTENSITY=10
FLAT_SHIFT_PROBABILITY=100
FLAT_SHIFT_RPM_THRESHOLD=7000
LIMITER=7500
LIMITER_DELAY=0.5
LIMITER_INTENSITY=0.02
LIMITER_RPM_THRESHOLD=7000

[PARTICLES_FX_EXHAUST_FLAMES]
COLOR_MULT=0.8, 0.3, 0.2, 1.0
INTENSITY_MULT=0.5
SIZE_MULT=1
TEMPERATURE_MULT=2.0

[PARTICLES_FX]
BODYSPARKS_AMOUNT=0.25
BODYSPARKS_INTENSITY=0.2
BODYSPARKS_LIFETIME=0.4
BODY_SPARKS_COLOR=1, 0.5, 0, 10
COLLIDER_0SPARKS_AMOUNT=0.25
COLLIDER_0SPARKS_INTENSITY=0.2
COLLIDER_0SPARKS_LIFETIME=0.4
COLLIDER_0_SPARKS_COLOR=1, 0.5, 0, 10
DRAG_MULT=2
INTERIOR_BOUNDS_CHECK=1
INTERIOR_BOUNDS_HEIGHT=0.644874
LIFT_MULT=0.1
SPARKS_AMOUNT_MULT=2
SPARKS_COOLDOWN_LAG=0.96
SPARKS_DEPTH_EXP=4
SPARKS_MAX_DEPTH=0.0025
SPARKS_OVERLOAD_LAG=0.7
TRACES_LIGHTS_POS=0.655593, 0.825127, -2.15187

------------TIRES------------

[TYRES_FX]
BROKEN_TYRES_DYNAMIC=1

[TYRES_FX_CUSTOMTEXTURE_H]
TXDIFFUSE= dunlop_tire.dds
TXBLUR= dunlop_tire_blur.dds
TXNORMAL = dunlop_tire_n.dds
TXNORMALBLUR = dunlop_tire_blur_n.dds

[TYRES_FX_CUSTOMTEXTURE_S]
TXDIFFUSE= dunlop_hard.dds
TXBLUR= dunlop_hard_blur.dds
TXNORMAL = dunlop_hard_n.dds
TXNORMALBLUR = dunlop_hard_blur_n.dds

[TYRES_FX_CUSTOMTEXTURE_WET]
TXDIFFUSE= dunlop_tire_wet.dds
TXBLUR= dunlop_tire_wet_blur.dds
TXNORMAL = dunlop_tire_wet_n.dds
TXNORMALBLUR = dunlop_tire_wet_blur_n.dds

[SHADOWED_WHEELS_FRONT]
AFFECT_SUSP_NODES=1
ANGLE_X=0
BOUND_TO_SUSPENSION=0
DISTANCE=3
EXTRA_AMBIENT_BRIGHTNESS=0.12
OFFSET=0.04
WIDTH=0.1

[SHADOWED_WHEELS_REAR]
AFFECT_SUSP_NODES=1
ANGLE_X=0
BOUND_TO_SUSPENSION=0
DISTANCE=3
EXTRA_AMBIENT_BRIGHTNESS=0.12
OFFSET=0.04
WIDTH=0.1

[BRAKEDISC_FX]
ACTIVE = 1            ; set to 0 to disable the whole thing if car uses ksBrakeDisc shader for something else
CERAMIC = 0       ; use ceramic look
CARVED = 1	           ; add a bit of carving, radial lines (fast for shader to compute)
CARVED_FREQUENCY = 25  ; increase to make more lines
GLOW_OFFSET = 0.5	; increase to offset heated and worn center more to the center, decrease to offset it more to the outside area; with 0.5, it would be in the middle
DEBUG = 0
DISC_INTERNAL_RADIUS = 0.135
DISC_RADIUS = 0.29 
LUMINOCITY_MASK = 0.125, 0.3
RIM_HEIGHT = 0.15
WEAR_FORCE=0.5

------------EXTRAS------------

[DEFORMING_HOOD]
NAME= MOTORHOOD          ; name of parenting node containing all meshes to deform
MAX_DAMAGE = 80           ; km/h, 40 is default
OFFSET_Y_MIDDLE = 0.04    ; how high would it offset in the center at full damage
OFFSET_Y_END = 0.02       ; how high would it offset at the far end at full damage
OFFSET_Z_END = 0.06       ; how far would it offset at the far end
BULGING_EXTRA = 0.0       ; increase to make shape go less triangly and more trapezoid-like
BULGING_EXPONENT = 2.0    ; affects the curve of slopes around raised center
NOISE_Y_AMPLITUDE = -0.16 ; some simple vertical noise at the center
NOISE_Z_AMPLITUDE = 0.2   ; and horizontal noise at the far end
NOISE_Y_FREQUENCY = 7.0    ; which adds
NOISE_Z_FREQUENCY = 7.0    ; some randomization
Z_FACTOR = 2.5            ; how center is being found
Z_BIAS = 0.0              ; with, if needed, manual offset

[DEFORMING_REAR]
NAME= REARHOOD       ; name of parenting node containing all meshes to deform
MAX_DAMAGE = 80         ; km/h, 40 is default
OFFSET_Y_MIDDLE = 0.04    ; how high would it offset in the center at full damage
OFFSET_Y_END = 0.02       ; how high would it offset at the far end at full damage
OFFSET_Z_END = 0.06       ; how far would it offset at the far end
BULGING_EXTRA = 0.0       ; increase to make shape go less triangly and more trapezoid-like
BULGING_EXPONENT = 2.0    ; affects the curve of slopes around raised center
NOISE_Y_AMPLITUDE = -0.16 ; some simple vertical noise at the center
NOISE_Z_AMPLITUDE = 0.2   ; and horizontal noise at the far end
NOISE_Y_FREQUENCY = 7.0    ; which adds
NOISE_Z_FREQUENCY = 7.0    ; some randomization
Z_FACTOR = 2.5            ; how center is being found
Z_BIAS = 0.0              ; with, if needed, manual offset


[LIGHT_HEADLIGHT_...]
COLOR = 5, 5, 5, 1

[EMISSIVE_HEADLIGHTS_...]
MESHES = light_glass
COLOR = 5, 5, 5, 25

[EMISSIVE_EXTRA_A_0]
NAME=light_glass.002
COLOR=100,100,100
LAG=0
BLINK=1
BLINKING_PATTERN=(0=0|0.499=0|0.5=1|1=1)
BLINKING_DURATION=1
CAST_LIGHT=1

[EMISSIVE_EXTRA_A_1]
NAME=light_glass.001
COLOR=100,100,100
lAG=0
BLINK=1
BLINKING_PATTERN=(0=1|0.499=1|0.5=0|1=0)
BLINKING_DURATION=1
CAST_LIGHT=1

[EMISSIVE_EXTRA_A_2]
NAME=tflag_led
COLOR=135,50,0,5
lAG=0
BLINK=1
BLINKING_PATTERN=(0=1|0.499=1|0.5=0|1=0)
BLINKING_DURATION=1
CAST_LIGHT=0

[EMISSIVE_EXTRA_B_0]
NAME = Badge; name (one or more) of a mesh to glow
COLOR = 5, 5, 5, 2          ; glowing color if condition is met
OFF_COLOR = 0, 0, 0         ; glowing color otherwise, default value is 0
LAG = 0                   ; with zero, turns on and off immediately
SIMULATE_HEATING = 0.3      ; adds heating effect, going through orange tint while turning on and off
LOCATION = FRONT            ; light location used for damage and light guessing, default value depends on type
ACT_AS_HEADLIGHTS = 0       ; if set to 1, emissiveness is raised when camera is caught in car’s headlights

------------ANIMATION------------

[ANIMATION_...]
INPUT = GEAR_R                ; bind to reverse gear
FILE = shiftani.ksanim        ; file name of new animation in “animations” folder
TIME = 0.30                 ; animation time
INPUT_AS_PROGRESS = 0       ; set to 1 to switch to that second input-as-progress mode
LOOP_WHILE_ACTIVE = 0       ; if set to 0, animation would go to 0% if not triggered, and 
                            ; to 100% otherwise; if set to 1, animation would play in 
                            ; a loop if triggered and stop otherwise
LOOP_KEEP_UNTIL_DONE = 0    ; only for “LOOP_WHILE_ACTIVE”: set to 1 to make animation 
                            ; go to 0% if stopped (like wipers would do, for example)
TICK_TOCK_MODE = 0          ; only for “LOOP_WHILE_ACTIVE”: loop as 0% → 100% → 0% instead 
                            ; of jumping from 100% to 0%
AFFECTS_INTERIOR_SHAPE = 1  ; force to update interior reflections mask if animation is 
                            ; playing (slower)
[ANIMATION_...]
INPUT = GEAR_1                ; bind to reverse gear
FILE = shiftani.ksanim        ; file name of new animation in “animations” folder
TIME = 0.30                 ; animation time
INPUT_AS_PROGRESS = 0       ; set to 1 to switch to that second input-as-progress mode
LOOP_WHILE_ACTIVE = 0       ; if set to 0, animation would go to 0% if not triggered, and 
                            ; to 100% otherwise; if set to 1, animation would play in 
                            ; a loop if triggered and stop otherwise
LOOP_KEEP_UNTIL_DONE = 0    ; only for “LOOP_WHILE_ACTIVE”: set to 1 to make animation 
                            ; go to 0% if stopped (like wipers would do, for example)
TICK_TOCK_MODE = 0          ; only for “LOOP_WHILE_ACTIVE”: loop as 0% → 100% → 0% instead 
                            ; of jumping from 100% to 0%
AFFECTS_INTERIOR_SHAPE = 1  ; force to update interior reflections mask if animation is 
                            ; playing (slower)
[ANIMATION_...]
INPUT = GEAR_2                ; bind to reverse gear
FILE = shiftani.ksanim        ; file name of new animation in “animations” folder
TIME = 0.30                 ; animation time
INPUT_AS_PROGRESS = 0       ; set to 1 to switch to that second input-as-progress mode
LOOP_WHILE_ACTIVE = 0       ; if set to 0, animation would go to 0% if not triggered, and 
                            ; to 100% otherwise; if set to 1, animation would play in 
                            ; a loop if triggered and stop otherwise
LOOP_KEEP_UNTIL_DONE = 0    ; only for “LOOP_WHILE_ACTIVE”: set to 1 to make animation 
                            ; go to 0% if stopped (like wipers would do, for example)
TICK_TOCK_MODE = 0          ; only for “LOOP_WHILE_ACTIVE”: loop as 0% → 100% → 0% instead 
                            ; of jumping from 100% to 0%
AFFECTS_INTERIOR_SHAPE = 1  ; force to update interior reflections mask if animation is 
         
[ANIMATION_...]
INPUT = GEAR_3                ; bind to reverse gear
FILE = shiftani.ksanim        ; file name of new animation in “animations” folder
TIME = 0.30                 ; animation time
INPUT_AS_PROGRESS = 0       ; set to 1 to switch to that second input-as-progress mode
LOOP_WHILE_ACTIVE = 0       ; if set to 0, animation would go to 0% if not triggered, and 
                            ; to 100% otherwise; if set to 1, animation would play in 
                            ; a loop if triggered and stop otherwise
LOOP_KEEP_UNTIL_DONE = 0    ; only for “LOOP_WHILE_ACTIVE”: set to 1 to make animation 
                            ; go to 0% if stopped (like wipers would do, for example)
TICK_TOCK_MODE = 0          ; only for “LOOP_WHILE_ACTIVE”: loop as 0% → 100% → 0% instead 
                            ; of jumping from 100% to 0%
AFFECTS_INTERIOR_SHAPE = 1  ; force to update interior reflections mask if animation is 
         
[ANIMATION_...]
INPUT = GEAR_4                ; bind to reverse gear
FILE = shiftani.ksanim        ; file name of new animation in “animations” folder
TIME = 0.30                 ; animation time
INPUT_AS_PROGRESS = 0       ; set to 1 to switch to that second input-as-progress mode
LOOP_WHILE_ACTIVE = 0       ; if set to 0, animation would go to 0% if not triggered, and 
                            ; to 100% otherwise; if set to 1, animation would play in 
                            ; a loop if triggered and stop otherwise
LOOP_KEEP_UNTIL_DONE = 0    ; only for “LOOP_WHILE_ACTIVE”: set to 1 to make animation 
                            ; go to 0% if stopped (like wipers would do, for example)
TICK_TOCK_MODE = 0          ; only for “LOOP_WHILE_ACTIVE”: loop as 0% → 100% → 0% instead 
                            ; of jumping from 100% to 0%
AFFECTS_INTERIOR_SHAPE = 1  ; force to update interior reflections mask if animation is 
         
[ANIMATION_...]
INPUT = GEAR_5                ; bind to reverse gear
FILE = shiftani.ksanim        ; file name of new animation in “animations” folder
TIME = 0.30                 ; animation time
INPUT_AS_PROGRESS = 0       ; set to 1 to switch to that second input-as-progress mode
LOOP_WHILE_ACTIVE = 0       ; if set to 0, animation would go to 0% if not triggered, and 
                            ; to 100% otherwise; if set to 1, animation would play in 
                            ; a loop if triggered and stop otherwise
LOOP_KEEP_UNTIL_DONE = 0    ; only for “LOOP_WHILE_ACTIVE”: set to 1 to make animation 
                            ; go to 0% if stopped (like wipers would do, for example)
TICK_TOCK_MODE = 0          ; only for “LOOP_WHILE_ACTIVE”: loop as 0% → 100% → 0% instead 
                            ; of jumping from 100% to 0%
AFFECTS_INTERIOR_SHAPE = 1  ; force to update interior reflections mask if animation is 

[ANIMATION_...]
INPUT = GEAR_6                ; bind to reverse gear
FILE = shiftani.ksanim        ; file name of new animation in “animations” folder
TIME = 0.30                 ; animation time
INPUT_AS_PROGRESS = 0       ; set to 1 to switch to that second input-as-progress mode
LOOP_WHILE_ACTIVE = 0       ; if set to 0, animation would go to 0% if not triggered, and 
                            ; to 100% otherwise; if set to 1, animation would play in 
                            ; a loop if triggered and stop otherwise
LOOP_KEEP_UNTIL_DONE = 0    ; only for “LOOP_WHILE_ACTIVE”: set to 1 to make animation 
                            ; go to 0% if stopped (like wipers would do, for example)
TICK_TOCK_MODE = 0          ; only for “LOOP_WHILE_ACTIVE”: loop as 0% → 100% → 0% instead 
                            ; of jumping from 100% to 0%
AFFECTS_INTERIOR_SHAPE = 1  ; force to update interior reflections mask if animation is     

------------MODEL REPLACEMENTS------------

[MODEL_REPLACEMENT_...]
ACTIVE = 1       
FILE = supercars_gen3_supra_ak.kn5  
INSERT = .kn5      
INSERT_AFTER = COCKPIT_HR

-----------------------------------------------------------------------------

[DEFAULTS]
HeadlightsMesh = main_headlight
InteriorLightDiffuse = 5
InteriorLightSpecular = 3
InteriorLightColor = #3333ff
InteriorLightPos = 0.2, 1.0, -0.4

; to avoid potential configs conflicts and overlaps
[LIGHT_EXTRA_1]
COLOR = 0
[USE: functions_base.lua]
[LIGHT_EXTRA_0_GT3_INTERIOR]
; BOUND_TO = main_headlight
COLOR = $" ParseColor( $InteriorLightColor ) ", ${InteriorLightDiffuse}
POSITION = ${InteriorLightPos} ; links hoch vor
DIFFUSE_CONCENTRATION = 0.5
BIND_TO_HEADLIGHTS = 1
EXTERIOR_ONLY = 0
INTERIOR_ONLY = 1
FADE_AT = 10
FADE_SMOOTH = 5
MIRROR = 0
DIRECTION = 0,-1,0.8
RANGE = 1.25
RANGE_GRADIENT_OFFSET = 0
SPECULAR_MULT = $InteriorLightSpecular
SPOT = 120
SPOT_SHARPNESS = 12:49 AM 22/07/2025.8
AFFECTS_TRACK = INTERIOR_ONLY ; very special value to stop light from affecting car exteriors as well



