﻿GTBikeV Configuration options

The GTBikeVConfig.ini file contains the configuration options for the mod. They consist of a key and a value asociated.
The keys are organized in sections.
The currently supported sections and keys for this version are:

Section [MAIN]

 Key                    |   Description
-------------------------------------------------------------------------------------------------------------------------
 SelectedBike           |   Bike used by the avatar during the ride. It can be one of:
                        |   Mountain, Tribike, Gravel, Road, Fixie, Commuter or BMX
						|	The game does not feature any other bike models.
                        |   The type of bike affects the performance depending on the terrain you are riding.
-------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------
 DebugWindow            |   Activates the debug view showing internal data in 3 panels, Activity panel, general panel and
                        |   Simulation data / trainer data panel.
-------------------------------------------------------------------------------------------------------------------------
 LogLevel               |   Sets the minimum level for the log files. Values from 0 to 5 (Verbose). Default is 3 (Info)
                        |   If you experience crashes or failures set to 4 or 5 and send the log files with your report.
-------------------------------------------------------------------------------------------------------------------------
 InitialGPSPointLat     |   Initial GPS coordinates corresponding to the 0,0 coordinates in Los Santos map. The default 	
 InitialGPSPointLong    |   value maps to a small island in the pacific but you can change it to wherever in the world
                        |   you want your FIT files to be located at.
-------------------------------------------------------------------------------------------------------------------------
 WayPointDefaultColor   |   Configures the color and radius of the waypoints shown while following one of the 
 WayPointDefaultRadius  |   predefined routes. If radius is zero the waypoints are not shown. If there is a specific
                        |   configuration in the course file, it has precedence over this one.
                        |   Maximum radius is 40 and colors are specified in AARRGGBB format. The default color is
                        |   Yellow green FFADFF2F and the default radius 20
-------------------------------------------------------------------------------------------------------------------------
 FineSteeringValue      |   Changes the steering sensitivity for the smooth steering keys (num pad 4 and num pad 6)
                        |   Valid values are between 0.3 and 1. Default value is 0.4.  
                        |   Less than 0.3 will not steer at all and 1 will steer just like the regular steering controls.
-------------------------------------------------------------------------------------------------------------------------
 ScreenshotIntervalKm	|   Sets the interval between automatic screenshots, in Kilometers. Default is 5 Km
-------------------------------------------------------------------------------------------------------------------------
 ScreenshotXOffset	    |   Sets the offset for the screenshots taken during the activity. Default is 0. 
                        |   Change this value if you are using multiple screens and your screenshots only show your main
                        |   display, and you are not running GTA V on that display. In that case set the value to the 
                        |   horizontal resolution of your main screen. If the screen playing the game is to the left of
                        |   the main screen, you can use negative numbers to find the proper X coordinate.
-------------------------------------------------------------------------------------------------------------------------
 MenuAutoOpen           |   Opens the mod menu anytime the user stops moving, including on start-up. Very useful if only
                        |   a mouse is available for interaction. 
                        |   Default value is true, set to false to activate the menu manually on demand.
-------------------------------------------------------------------------------------------------------------------------
 ChangeCarsForBikes     |   Sets the percentage of bikes vs cars that will be spawned in the map and the riding style
                        |   the cyclist will have. The riding styles are AGRESSIVE, BREAKLAWS and NORMAL. Defaults to 50% 
                        |   and NORMAL riding.
                        |   i.e  CHANGECARSFORBIKES = 75,AGRESSIVE
                        |   100% will show no cars, 0% will leave the environment unchanged.
-------------------------------------------------------------------------------------------------------------------------
 BotDefinition          |   Define the type and number of bots that will ride with you while doing a course
                        |   It's a list of comma separated values. Each value is a type of Bot. Bot types are:
                        |   0 : Random
                        |   1 : Companion (Blue blip)
                        |   2 : Climber (Orange blip)
                        |   3 : Sprinter (Brown blip)
                        |   4 : Time Trialer (Purple blip)
                        |   Max number of bots is 5, default is 3, one companion and 2 random (1,0,0).
                        |   i.e. BOTDEFINITION = 1,0,3,4
                        |   For no bots use BOTDEFINITION = 
-------------------------------------------------------------------------------------------------------------------------
 ShowRTC                |   Shows a real time clock on screen when the menu is hidden to let you keep track of time and
                        |   keep your training whithin limits. 
                        |   Default value is FALSE
-------------------------------------------------------------------------------------------------------------------------

Section [USER]

 Key                    |   Description
-------------------------------------------------------------------------------------------------------------------------
 UserWeightKg           |   User weight for the simulation. In Kilograms. This value changes if you change the weight
                        |   in the mod menu
-------------------------------------------------------------------------------------------------------------------------
 UserFTP                |   Functional Threshold Power value for the user. 
-------------------------------------------------------------------------------------------------------------------------
 SelectedPed            |   Character (also called Ped in GTA V) that will represent the user in the game. Use the mod
                        |   menu to select one.
-------------------------------------------------------------------------------------------------------------------------


Section [NETWORK]

 Key                    |   Description
-------------------------------------------------------------------------------------------------------------------------
 TelemetryReporting     |   Sends anonymous telemetry reporting data, which is used to help understand how to improve the
                        |   mod. Default is True.
                        |   If you don't want to send data then you can disable telemetry by setting value to False. 
-------------------------------------------------------------------------------------------------------------------------
CourseLibraryURL        |   URL for remote course downloading. Don't set or change unless you know what you are doing.
-------------------------------------------------------------------------------------------------------------------------
MultiplayerServerURL    |   URL for the multiplayer server. Don't set or change unless you know what you are doing.
                        |   Use NONE as server URL if you don't want to connect to the multiplayer server.
-------------------------------------------------------------------------------------------------------------------------
WorkoutLibraryURL       |   URL for remote workout downloading.  Don't set or change unless you know what you are doing.
-------------------------------------------------------------------------------------------------------------------------


Section [DEVICES]

 Key                    |   Description
-------------------------------------------------------------------------------------------------------------------------
 FECDeviceId            |   Sets the mod to listen to a specific ANT device id for every of the ANT+ supported profiles
 PWRDeviceId            |   so in case you have more than one device you can select the one you will be using.
 HRDeviceId             |   The special value 0 means it will pair the first device it finds which is usually fine if you 
 CADDeviceId            |   only have one.
 ControlsDeviceId       |   The special value 65535 is used when you want to deactivate the reception of a particular 
 FPODDeviceId           |   device, which can help with mod performance when you don't own that kind of sensor.
 SPDDeviceId            |   FEC is an ANT+ smart trainer
 STEERDeviceId          |   PWR is an ANT+ power sensor
                        |   HR is an ANT+ heart rate strap
                        |   CAD is an ANT+ cadence sensor
                        |   Controls is an ANT+ remote control (experimental)
						|   FPod is a foot pod or stride based running distance device
						|   SPD is a bike speed sensor
						|   STEER is a steering device (currently only Tacx Blacktrack is supported)
                        |
 BPWRDeviceAddr         |   BLE Power device address
 BHRDeviceAddr          |   BLE Heart Rate device address
 BCADDeviceAddr         |   BLE Cadence sensor address
 BSteerDeviceAddr       |   BLE Sterzo device address
 BSPDDeviceAddr         |   BLE Speed sensor address
 BKICKRDeviceAddr       |   BLE Kickr bike address (for button support only)
 BFTMSDeviceAddr        |   BLE FTMS device address
                        |   For all the BLE devices, a value of 0 means first device found, like in ANT and to exclude
                        |   a device type from being detected the special address "FF:FF:FF:FF:FF:FF" is used
-------------------------------------------------------------------------------------------------------------------------
 RoadFeel               |   Toggles the road feel simulation for Tacx Neo line of trainers and indoor bikes. 
                        |   Possible values are True or False
-------------------------------------------------------------------------------------------------------------------------
 AlwaysUseVirtualSpeed  |   Allows you to always use the virtual speed calculations regardles if you have a smart trainer
 (OPTION REMOVED)       |   broadcasting its own speed. If you only have a power meter this setting does not apply,
                        |   speed will be always virtual. (Speed is always virtual from version 0.5.0.0 onward)
-------------------------------------------------------------------------------------------------------------------------
 SteerCalibration       |   A set of 4 values used to calibrate the steering device. The values are leftmost, center,
                        |   rightmost and dead angle. 
                        |   The first 3 values are the numeric measure the steering device gives in those positions, the
                        |   last value is the % of dead heading value around the center position when GTA does not
                        |   respond to steering. Usually is 30%, but 25% allows for some handlebars wobbling without 
                        |   affecting the steering. Default value is -400,0,400,25
-------------------------------------------------------------------------------------------------------------------------
 TrainerDifficulty      |   Sets the trainer difficulty level in percentage from 0 to 100. 0 will send 0% of any slope 
                        |   information to the trainer, 100 will send 100% real slopes. Default value is 100 (100%). 
                        |   This setting affects only the incline value sent to your trainer NOT the one used to 
                        |   calculate virtual speed. Only operates on positive inclines (up hills). If you want to
                        |   disable the trainer resistance control, but keep receiving the power and cadence, use a value
                        |   of 255. This can be handy if your trainer or bike has manual control and you want to action
                        |   it without interference from the mod.
-------------------------------------------------------------------------------------------------------------------------
 PowerCurve             |   Defines the power curve of a non smart trainer with a 3rd grade polynomial. This setting is
                        |   only used when there is no power source and the power has to be calculated from a speed
                        |   sensor.
                        |   The format of this setting is A,B,C,D,MaxPower. A,B,C and D are the coefficients of the 
                        |   polynomial:
                        |   Power = A * speed^3 + B * speed ^2 + C * speed + D
                        |   The max power setting is to cap the curve because most 3rd degree polys tend to diverge on the
                        |   edge cases and the power resulting at speeds faster than the last sampled speed would be 
                        |   impossibly high.
                        |   The default power curve value is: -0.08411716f,1.785549,8.569629,3.836372,250
                        |   
                        |   In order to shape a curve for your trainer you must sample several power values at different
                        |   speeds (at least 4, but the more the better) and use a polynomial regression tool (such as 
                        |   excel or online tools) to find the coefficients
-------------------------------------------------------------------------------------------------------------------------

Section [KEYS]

 Key                    |   Description
-------------------------------------------------------------------------------------------------------------------------
                        |   Defines the keys used for most of the features in the mod. 
                        |   The Key names must match System.Windows.Forms.Keys enumeration in C#
                        |   https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.keys?view=net-5.0
                        |   or be the key name definitions for the Zwift Play contoller or the Wahoo Kickr bike buttons.
                        |   Some keys may conflict with the game key settings which has more preference. Be careful not
                        |   to choose the same key mapping as other mods you may be using at the same time.
                        |
 MenuKey                |   Open/Close mod menu key. Default F5 
 DebugKey               |   Open/Close debug windows. Default F11
 ScreenshotKey          |   Take a screenshot. Default NumPad0
 AutopilotKey           |   Toggle autopilot. Default NumPad1
 RadioKey               |   Turn on / change radio station. Default NumPad7
 HUDKey                 |   Hide / Show the HUD. Default NumPad3
 DestinationKey         |   Change to random destination while not riding a course. Default NumPad2
 FineSteerLeftKey       |   Fine steering left. Default NumPad4
 FineSteerRightKey      |   Fine steering right. Default NumPad6
 ERGToggleKey           |   ERG mode toggle key. Default NumPad5
 MenuSelectKey          |   Menu option selection
 MenuCancelKey          |   Menu close
 MenuUpKey              |   Navigate menu up
 MenuDownKey            |   Navigate menu down
 MenuRightKey           |   Navigate a menu list to the right
 MenuLeftKey            |   Navigate a menu list to the left
 DialogOkKey            |   Select OK button on a dialog screen
 DialogCancelKey        |   Select Cancel button on a dialog screen
 LookBehindKey          |   Look behind
 NextCamKey             |   Next camera view selection
-------------------------------------------------------------------------------------------------------------------------

Key Names for Zwift Play controller and Wahoo bike. The keys names have 3 modifiers, (U) for KeyUp event, 
(D) for KeyDown event and (L) for long key press event. After a long keypress, there is no key up event.

Name                    |  Button
-------------------------------------------------------------------------------------------------------------------------
  ZP_Y                  | 'Y' Key on right pad. 
  ZP_Z                  | 'Z' Key on right pad. 
  ZP_A                  | 'A' Key on right pad. 
  ZP_B                  | 'B' Key on right pad. 
  ZP_Right_Shift        | Shifting long button on right pad
  ZP_Right_On           | On/Off button on right pad
  ZP_Right_Joy_Btn      | Joy pad acting as left/right button on right pad
  ZP_Right_Brake_Btn    | Joy pad acting as brake button on right pad
                        |
  ZP_UpArrow            | Up arrow on left pad
  ZP_LeftArrow          | Left arrow on left pad
  ZP_RightArrow         | Right arrow on left pad
  ZP_DownArrow          | Down arrow on left pad
  ZP_Left_Shift         | Shifgting long button on left pad
  ZP_Left_On            | On/Off button on left pad
  ZP_Left_Joy_Btn       | Joy pad acting as left/right button on left pad
  ZP_Left_Brake_Btn     | Joy pad acting as brake button on left pad
                        |
  WH_Left_Brake         | Left Brake lever (Reserved for braking, not usable)
  WH_Left_Up            | Left up button
  WH_Left_Down          | Left down button
  WH_Left_Shift_Down    | Left shifter down
  WH_Left_Shift_Up      | Left shifter up
  WH_Left               | Turn left (Reserved for steering, not usable)
                        |
  WH_Right_Brake        | Right brake lever (Reserved for braking, not usable)
  WH_Right_Down         | Right down button
  WH_Right_Up           | Right up button
  WH_Right_Shift_Down   | Right shifter down
  WH_Right_Shift_Up     | Right shifter up
  WH_Right              | Turn right (Reserved for steering, not usable)

  Keep in mind that some of the Wahoo buttons are used by the bike itself (i.e. shifting) and assinging those to 
  actions in GTBikeV can lead to unwanted results