[HEADER]
VERSION=extended-2

[BASIC]
IS_LOW_BEAM_AVAILABLE=1
DIESEL_ENGINE = 0 		; or 1

-------COPILOTO-------
[MODEL_REPLACEMENT_...]
ACTIVE = 1       ; set to 0 to disable the whole section (default value is 1)
FILE= swift_n5.kn5
INSERT= copiloto.kn5
INSERT_AFTER= WHEEL_LR

-------FARADA-------
[MODEL_REPLACEMENT_...]
ACTIVE = 0       ; set to 0 to disable the whole section (default value is 1)
FILE=swift_n5.kn5
INSERT= farada.kn5
INSERT_AFTER= WHEEL_LR




[PARTICLES_FX_EXHAUST_0]
POSITION=-0.0,0.225,-1.85
DIRECTION=0,-0.1,-1 		; self explanatory
COLOR = 0.75,0.8,1 			; RGB blend - 0,0,0 is black, 1,1,1 is white
LIFE = 1, 2 				; how long particles last in the air before disappearing
SPEED = 0.5, 1 				; how fast smoke particles fly from the exhaust
SPREAD = 0.25				; initial spread of particles
STARTING_SIZE = 0.04			; initial size of particles
SPAWN_OFFSET = 0.02			; initial spawn point offset (length-wise)
INTENSITY = 0.3, 0.5			; smoke intensity
TEMPERATURE_LAG = 1 			; engine heating up (1 to disable)
SPEED_THRESHOLD = 15, 100 		; speed at which the smoke disappears

[SHAKING_EXHAUST_0]
MESHES =x0_exhaust_bl, x0_exhaust_bl.001
POINT_0 = -0.39, -0.12, -2.26
POINT_0_RADIUS = 1
POINT_0_EXP = 1.0

[INCLUDE: common/gt3_exhaust_glow.ini]

[EMISSIVE_WATER_TEMP_0_EXHAUST_GLOW]
MESHES=x0_exhaust_bl.001
COLOR=25,6,0
USE_SMOOTH_TRANSITION=1
INPUT_MIN=82
INPUT_MAX=84
INPUT_LUT=(| 82 = 0 | 83 = 1 |) 
AFFECTS_TRACK=1 
SPECULAR_MULT=3

[EXHAUST_FLAMES]
ANTILAG=1 ; turbo antilag, i havent tested this yet
ANTILAG_DELAY=0.1 ; how long after antilag trigger do flames start, in seconds
ANTILAG_INTENSITY=0.2 ; flame size
ANTILAG_INTERVAL_MAX=5500
ANTILAG_INTERVAL_MIN=4500
ANTILAG_TURBO_THRESHOLD=0
DAMAGE=0 ; engine damage
DAMAGE_DURATION=0.00
DAMAGE_INTENSITY=0
DAMAGE_PROBABILITY=0
DISCHARGE=0 ; lifting off the throttle
DISCHARGE_CHARGE_TIME=0.2 ; how long you have to press the throttle to "charge" the flames
DISCHARGE_DELAY=0.0 ; delay after throttle lift
DISCHARGE_DURATION=1.0 ; length of flame shooting, in seconds
DISCHARGE_PROBABILITY=1.0; chance of flame shoot on lift, 1 is guaranteed, 0 is never
DISCHARGE_INTENSITY=0.2; flame size
DISCHARGE_RPM_THRESHOLD_MAX=6500 ; self explanatory
DISCHARGE_RPM_THRESHOLD_MIN=3000 ; self explanatory
DISCHARGE_WATER_TEMPERATURE_THRESHOLD=50
FLAT_SHIFT=0 ; on upshift
FLAT_SHIFT_COOLDOWN=1 ; after upshift
FLAT_SHIFT_DURATION=0.1 ; length of flame shooting, in seconds
FLAT_SHIFT_GAS_THRESHOLD=100 ; how much gas needs to be pressed on upshift for flame, 100 is wide open
FLAT_SHIFT_INTENSITY=0.01 ; flame size
FLAT_SHIFT_PROBABILITY=4 ; chance of flame shoot on upshift
FLAT_SHIFT_RPM_THRESHOLD=5500
LIMITER=1 ; on hitting the limiter
LIMITER_DELAY=0.2 ; delay, in seconds
LIMITER_INTENSITY=0.1 ; flame size
LIMITER_RPM_THRESHOLD=4000; limiter flames will not shoot below this rpm


[BASIC]
IS_LOW_BEAM_AVAILABLE=1
BRAKES_THRESHOLD = 0.01        		; threshold for brake lights to turn on, of brake pedal
LIGHT_DAMAGE_SPEED_MIN = 80    		; speed for lights to start breaking
LIGHT_DAMAGE_SPEED_MAX = 120   		; speed for lights to fully break

[LIGHTING]
INTERIOR_FAKE_UPPER_SHADOW_HEIGHT=0.04
INTERIOR_FAKE_UPPER_SHADOW_FADE=0.05
EMISSIVE_HEADLIGHTS_MULT=0.3
EMISSIVE_BRAKELIGHTS_MULT=0.2
EMISSIVE_PARKINGLIGHTS_MULT=1.5
INTERIOR_FAKE_SHADOW_OPACITY=0.9  	
INTERIOR_FAKE_SHADOW_HEIGHT=0.2  	
INTERIOR_FAKE_SHADOW_FADE=0.2

FAKE_HIGHBEAMS_INDICATOR_LED_LIGHT = 1

[EMISSIVE_0]
NAME=LIGHT_FRONT_ON_01, LIGHT_FRONT_ON_00
COLOR=100,100,100
LAG=0.0

[EMISSIVE_LIGHT_0]
NAME=LIGHT_REAR_01, LIGHT_REAR_00
COLOR=500,0,0
LAG=0.0


[EMISSIVE_REVERSE_0]
NAME =x0_light_rev_pod_br, x0_light_rev_pod_bl  ; name (one or more) of a mesh to glow
COLOR = 100, 100 , 100         ; glowing color if condition is met
OFF_COLOR = 0, 0, 0         ; glowing color otherwise, default value is 0
LAG = 0.0                   ; with zero, turns on and off immediately
SIMULATE_HEATING = 0.0      ; adds heating effect, going through orange tint while turning on and off
LOCATION = REAR             ; 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

[EMISSIVE_BRAKE_0]
NAME= LIGHT_REAR_GLASS_BRAKE_01, LIGHT_REAR_GLASS_BRAKE_00
COLOR=230,0,0
LAG=0.5
SIMULATE_HEATING=3
CAST_LIGHT=1

[INCLUDE]
INCLUDE=common/no_popup_lights.ini

[LIGHT_HEADLIGHT_...]
NAME=LIGHT_FRONT_01, LIGHT_FRONT_00
ACT_AS_HEADLIGHTS=1
COLOR=4, 4, 5, 3
AFFECTS_TRACK=1
BOUND_EMISSIVE_MAX=50
BOUND_EXP=0.5
POSITION=-0.0, 0.37, 1.9
SPOT=80
SPOT_SHARPNESS=0.4
SPOT_UP=0.0499376, 0.0998752, -0.009
SECOND_SPOT=80
SECOND_SPOT_INTENSITY=0.7
SECOND_SPOT_RANGE=80
SECOND_SPOT_SHARPNESS=0.15
SECOND_SPOT_SKIP=0.3
SPECULAR_MULT=0.2

[EMISSIVE_TURNSIGNAL_LEFT_0]
NAME=LIGHT_FRONT_BLINK_01, x0_wing_mirror_l_SUB0, LIGHT_REAR_BLINK_01
COLOR=80,20,0, 5
LAG=-0.2
SIMULATE_HEATING=0.3
LOCATION=FRONT

[EMISSIVE_TURNSIGNAL_RIGHT_0]
NAME=LIGHT_FRONT_BLINK_00, x0_wing_mirror_r_SUB0, LIGHT_REAR_BLINK_00
COLOR=80,20,0, 5
LAG=-0.2
SIMULATE_HEATING=0.3
LOCATION=FRONT

[EMISSIVE_HAZARD_0]
COLOR=80,20,0,5
NAME=LIGHT_FRONT_BLINK_01, x0_wing_mirror_l_SUB0, LIGHT_REAR_BLINK_01, LIGHT_FRONT_BLINK_00, x0_wing_mirror_r_SUB0, LIGHT_REAR_BLINK_00
FALLBACK_HEADLIGHTS_COLOR=0
LAG=0.5


[INCLUDE: common/selflighting.ini]

[EMISSIVE_HIGHBEAM_0]
NAME=LIGHT_FRONT_02, LIGHT_FRONT_03 
COLOR=100,100,100
LAG=0.05
SIMULATE_HEATING=0
LOCATION=FRONT
CAST_LIGHT=0
CLUSTER_THRESHOLD=1.5


[INCLUDE: common/materials_carpaint.ini]
CarPaintMaterial = carroceria
DisableDev = 1

[Material_CarPaint_Metallic]
FresnelMax = 1
FresnelC = 0.05
FlakesK = 1
BrightnessAdjustment = 1
ColoredSpecular = 1
AmbientSpecular = 1
AmbientSpecularEXP = 55
ClearCoatThickness = 0.2

[SHADOWED_WHEELS]
ANGLE=12
OFFSET=0
OPACITY=0.1
WIDTH=0.22
12:30 14/10/2022
[SHADOWED_TYRES]
ANGLE=8
OFFSET=0
OPACITY=0.15
WIDTH=0.10
EXTRA_AMBIENT_BRIGHTNESS=0

INCLUDE: common/materials_glass.ini]
ExteriorGlassHeadlightsMaterials = lights_alpha

[Material_Glass]
Meshes= cristales_exteriores
IOR = 2                     ; looks better like this
FilmIOR = $IOR               ; redefine IOR for external film layer to increase reflections
ThicknessMult = 1.8          ; thicker glass passes less light through
ProfileFix = 0.02           ; adds thickness to glass for glazing angles
MaskPassColor = 30, 30, 35      ; mask pass color adjustment
ProfileFix = 0.02              ; a bit thicker edge
MaskPass = 4                ; mask pass opacity
Refraction = 1                 ; set to non-zero value to use cheap refraction, increase value to increase light bending effect
RefractionBias = 0.55        ; increase to force use of refraction buffer everywhere and make refraction blurred, for matte glass or glass sides
RefractionRainbow = 1          ; possibly expensive, adds some sort of chromatic distortion effect to refraction

[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 = 0             ; add a bit of carving, radial lines (fast for shader to compute)
CARVED_FREQUENCY = 20  ; increase to make more lines
GLOW_OFFSET = 0.2      ; 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

; Patch guesses holes from alpha-channel of txDiffuse. Holes don’t glow or reflect stuff and look dark:
ALPHA_MASK = 0.1, 0.2  ; hole is everything with alpha below 0.1, everything with alpha above 0.2 is not a hole, in-between is a transition

; Patch can also estimate deepenings based on luminance and normal texture. Deepenings glow with a delay (but fully heated, glow more) and are a bit occluded:
LUMINOCITY_MASK = 0.01, 0.02  ; everything darker than 0.01 is a deepening
NORMAL_MASK = 0.5, 0.3        ; everything looking away more than 50% is a deepening

; Patch would try and guess size of brake disc and its inside area from its mesh, but if it fails:
DISC_RADIUS = 0.25           ; radius of a brake disc
DISC_INTERNAL_RADIUS = 0.15  ; radius of an inside part of a brake disc

; Another feature is that patch would mask reflections with rim, stopping brake disc from reflecting sky if looked at a angle. By default it would use rim radius and 60% of wheel width (for the distance between brake disc and exterior part) from “tyres.ini”, could be changed if needed:
RIM_RADIUS = 0.35  ; inside radius of a rim
RIM_HEIGHT = 0.2   ; distance between surface of brake disc and vertical surface of a wheel rim



[SMOKE]
; New smoke and dust
ENABLED=1 ; Active; 1 or 0
USE_CULLING=1 ; Use culling to improve performance; 1 or 0
USE_DOWNSCALING=0 ; Render in half resolution when possible; 1 or 0
USE_DOWNSCALING_VR=0 ; Render in half resolution in VR (not recommended); 1 or 0
QUANTITY_SCALE=1 ; Quantity limit (limits amount of particles next to each other, helping with performance, but making smoke look more patchy); from 0.1 to 1.2, perc.
SIZE_LIMIT_SCALE=0.8 ; On-screen size limit (limits amount of large particles close to camera, increase if you want smoke to limit visiblity more); from 0.5 to 1, perc.
SIMPLIFIED_SHADING=0 ; Simplified shading (can help with FPS for some low-end GPUs); 1 or 0
LONG_LASTING_SMOKE=1 ; Long-lasting smoke (with this option intense wheels smoke and dust will smoke up the nearby area for a few minutes); 1 or 0
FILL_SCREEN=1 ; Cover view in smoke when camera is deep in it (adds a fullscreen pass for smoke applied over drawn scene if camera is stuck in smoke, should be faster this way); 1 or 0
HEATING_EXTRA=0 ; Extra heating (for more arcade-like and less accurate smoke); from 0 to 2, perc.
CAST_SHADOWS=1 ; Cast shadows; 1 or 0
CAST_AMBIENT_SHADOWS=1 ; Cast ambient shadows; 1 or 0
SHOW_IN_MIRRORS=1 ; Show in mirrors; 1 or 0
CLIP_BY_GLASS=1 ; Clip by glass (removes smoke from interiors, but there wouldn’t be any smoke behind windows; requires active ExtraFX); 1 or 0
EMIT_BRAKES_SMOKE=1 ; Smoke from overheated brakes; 1 or 0
EMIT_EXHAUST_SMOKE=1 ;; hidden
EMIT_ENGINE_SMOKE=1 ;; hidden
EMIT_COLLISIONS_DUST=1 ;; hidden
EMIT_SKID_BLOCK_DUST=1 ;; hidden
EMIT_WHEELS_DUST=1 ;; hidden


-----RUEDASFX-----

[INCLUDE: common/tyre_patterns.ini]
[TyresPattern_StyleRainF1]

[TYRES_FX]
ENABLED = 1                  ; Set to 0 to fully disable Tyres FX for a given car (or axis)
NOFX_DISTANCE_SWITCH = 16    ; Distance to disable Tyres FX at (48 for open wheelers, 16 for regular cars)
VISIBLE_IN_INTERIOR_CAM = 0  ; If effects are active with interior cameras (1 by default for open wheelers)

; Visual damage:
WEAR_MAX_VIRTUAL_VM = 25     ; Virtual kilometers for a tyre to show up as fully worn (defaults: 10 for
                             ; open wheelers, 15 for racing cars, 25 for regular cars)
DAMAGE_FLAT_SPOT_GAIN = 5    ; Intensity of flat spot damage
DAMAGE_FLAT_SPOT_FADE = 0.1  ; Fading speed for flat spot damage
DAMAGE_GRAIN_GAIN = 5        ; Intensity of grain damage
DAMAGE_GRAIN_MAX = 0.8       ; Maximum amount of grain damage
DAMAGE_WIDTH_K = 1.2         ; Width of visual damage area
DAMAGE_OFFSET_K = 0          ; Horizontal offset of visual damage area
DAMAGE_FLAT_SPOT_DEBUG = 0   ; If set, overrides flat spot damage around the entire wheel for debugging
DAMAGE_GRAIN_DEBUG = 0       ; If set, overrides grain damage around the entire wheel for debugging

; Material parameters for visual damage:
DAMAGE_SPEC_MULT = 0.6       ; Multiplier for ksSpecular of damaged areas
DAMAGE_SPEC_EXP_MULT = 0.2   ; Multiplier for ksSpecularEXP of damaged areas
DAMAGE_REFL_MULT = 0.8       ; Multiplier for fresnelMaxLevel of damaged areas
DAMAGE_OCCLUSION_MULT = 0.2  ; AO multiplier for damaged areas
DAMAGE_NORMALS_MULT = 2      ; Normal map boost value

; Visual dirt:
DIRT_ACCUMULATION = 600      ; How fast dirt or grass adds up to a wheel
DIRT_FADE = 20               ; How fast dirt fades (also, clamped from above by physics dirty level)
DIRT_OFFSET_K = 0.0          ; Offset for dirt map on a wheel along X axis relative to car
DIRT_WIDTH_K = 1.0           ; Dirt width on a wheel (set it in a way that it barely touches sides)
DIRT_GRASS_DEBUG = 0         ; If set, override grass dirt for debugging
DIRT_DIRT_DEBUG = 0          ; If set, override non-grass dirt for debugging

; Shape deformation:
FLEX_MULT = 1.0              ; Multiplier for sideways flexing (based on physics, but sometimes tyres might
                             ; have a strange configuration: this parameter can help)
FLEX_PROFILE_MULT = 0.45     ; Bending part of a tyre profile, from 0.1 to 2
FLEX_SQUASH_SMOOTHING = 0.1  ; Temporal filtering for squashing, from 0 to 1 (decrease for smoother changes)
FLEX_SKEW_RANGE_MULT = 3     ; Skew range
FLEX_SKEW_SMOOTHING = 0.1    ; Temporal filtering for skewing (decrease for smoother changes)
FLEX_MAX_SKEW_MULT = 0.8     ; Multiplier for maximum skewing

; Positioning of custom normals (more on that a bit further down):
CUSTOM_NORMALS_POS = 0, 0  ; Align custom normals from side to side with this parameter
CUSTOM_NORMALS_SCALE = 12         ; How much custom normals repeat along the circumference

; Blown tyres:
BROKEN_TYRES_DYNAMIC = 1       ; Change to 0 to disable procedural look for blown tyres
BROKEN_TYRES_BASE_NUDGE = 0.0  ; Optional nugde in the middle for blown tyres (make sure it doesn’t intersect
                               ; with tyre geometry unless you want to use a custom shape for interior part
                               ; of a blown tyre)
BROKEN_TYRES_BASE_BRIGHTNESS = 1.0 ; Brightness of the interior part of blown tyre
BROKEN_TYRES_NORMAL_LF =       ; If set, meshes in this query are shown when tyres are not broken (replace _LF
                               ;  with _RF, _LR, _RR)
BROKEN_TYRES_BROKEN_LF =       ; If set, meshes in this query are shown when tyres are broken



---LIMPIAS---
[WIPERS_TRACE_...]
SURFACE =d windows
WIPERS=black m077_001_001, black m077

[ANIMATED_WIPER_...]
MESHES =black m077_001_001, black m077
UNDERLYING_SURFACE =d windows
DEBUG = 1 ; remove when everything is ready

[MESH_ADJUSTMENT_...]
MESHES =black m077_001_001, black m077
MOVE_TO = modelRoot:y

[BASIC]
DISABLE_WIPER_KSANIM = 1



[ANIMATED_WIPER_0]
DEBUG = 1
MESHES = 'black m077_001_001', 'black m077'
UNDERLYING_SURFACE = 'd windows'
GROUP_0 = 'black m077@A=*'
GROUP_0_ANGLE_TO = 88.3
GROUP_0_AXIS = 0, 0.70710677, 0.70710677
GROUP_0_AXIS_OFFSET_0 = 0, 0.70710677, 0.70710677
GROUP_0_AXIS_OFFSET_1 = 0, 0.70710677, 0.70710677
GROUP_0_END = -0.5936854, 0.90048957, 0.9031656
GROUP_0_PIVOT = 0.1010373, 0.8368092, 0.98936677
GROUP_1 = 'black m077_001_001@A=*'
GROUP_1_ANGLE_TO = 88.3
GROUP_1_AXIS = 0, 0.70710677, 0.70710677
GROUP_1_AXIS_OFFSET_0 = 0, 0.70710677, 0.70710677
GROUP_1_AXIS_OFFSET_1 = 0, 0.70710677, 0.70710677
GROUP_1_END = -0.21683219, 0.90572506, 0.96073467
GROUP_1_PIVOT = 0.5204032, 0.85050154, 0.96373427































