├── README.md ├── images ├── V4L2test.png ├── linuxtrackextractor.png ├── linuxtrackfreetracktest.png └── opentrackwine.png └── options.lua /README.md: -------------------------------------------------------------------------------- 1 | # DCS on Linux 2 | 3 | DCS World can run on linux through Wine and Proton, though it does take some 4 | work to get running. The game has two distribution methods: standalone and 5 | Steam. Both have worked successfully, though often one will be broken and the 6 | other work; if one fails, it can be a good idea to try the other. 7 | 8 | The game also has two versions: stable and OpenBeta. OpenBeta is used 9 | by most MP servers, and stable is updated less frequently (the advantage of 10 | stable for us being that we don't have to work around Linux bugs every 2 weeks 11 | when a new OB is released.) 12 | 13 | Thanks to everyone who has helped getting the game running and debugging issues 14 | in the [proton issue 15 | tracker](https://github.com/ValveSoftware/Proton/issues/1722). Unfortunately, 16 | workarounds easily get buried there, so I decided to create this document with 17 | known, up-to-date methods for getting things to work. 18 | 19 | Outside the proton thread, additional credit goes to @akp for the initial revision 20 | of the Opentrack instructions, and @bradley-r for the Linuxtrack, Scratchpad and V4L2 info. 21 | 22 | To chat about DCS World on Linux there is a Matrix chat available: 23 | * https://matrix.to/#/#dcs-on-linux:matrix.org 24 | 25 | ## Contents 26 | 27 | * [Installation](#installation) 28 | * [Lutris](#getting-it-working-through-lutris) 29 | * [Manual](#getting-it-working-manually) 30 | * [Bugs and Fixes](#known-issues-and-fixes) 31 | * [Smoke](#white-smoke-and-some-other-particles-renders-weirdly) 32 | * [F16 RWR](#f16-rwr-shows-a-opaque-square-on-the-rwr-over-the-priority-contact) 33 | * [Server List](#missing-multiplayer-server-list) 34 | * [F10 Crash](#crash-on-f10) 35 | * [Disabled Modules](#module-disabled-by-user) 36 | * [Controls](#control-issues) 37 | * [Additional Software](#other-software) 38 | * [SRS](#srs) 39 | * [Scratchpad](#dcs-scratchpad) 40 | * [Opentrack](#headtracking-via-opentrack) 41 | * [Linuxtrack](#headtracking-via-linuxtrack) 42 | * [V4L2](#a-note-on-headtracking) 43 | 44 | ## Installation 45 | 46 | ### Getting it working through Lutris 47 | 48 | An easy way to get started is to use Lutris. There are [two install scripts 49 | for standalone](https://lutris.net/games/dcs-world/) on Lutris which may just work out of the box. 50 | Much of this guide has been tested to work successfully with the 'Eagle Dynamics version'. 51 | 52 | ### Getting it working manually 53 | 54 | Both versions need some winetricks applied. For standalone, use `winetricks`, 55 | for proton use `protontricks 223750`. 56 | 57 | Start the game once first to create the prefix, then run 58 | ``` 59 | vcrun2019 corefonts xact d3dcompiler_43 60 | ``` 61 | 62 | This should be all it takes to get standalone working. 63 | 64 | #### Fixing Steam version permanent crashing 65 | 66 | If your game crashes in the Steam version, it will permanently fail to start 67 | after that. To fix that: remove `drive_c/windows/system32/lsteamclient.dll` 68 | which was created in the crash, and the game should start back up fine. 69 | 70 | #### Avoiding launcher window - black screen at startup 71 | Starting from DCS 2.9.6.57650 a launcher window was added. But this feature does not work with proton. To bypass this window: 72 | 1) Launch the game, wait for for the black window, then close the window (Alt + F4) 73 | 2) Copy the simple template file `options.lua` in this repository to your folder 74 | `/home/you/.local/share/steamapps/compatdata/223750/pfx/drive_c/users/steamuser/Saved Games/DCS/Config/options.lua` 75 | 3) Launch the game. It shall open in a small window. Go the the options (gear icon 76 | in top) and select manually your screen resolution and maybe try other configurations. 77 | 4) If the resolution (or maybe some config) is not supported and the game does not launch, 78 | use the simple template file `options.lua` again. 79 | 80 | #### Open Beta (updated for 2.5.6.59398) 81 | 82 | For now, this guide assumes you use the standalone version. The steam version 83 | may also work, but I have not tested it in a while. Currently, Wine 6.0 rc1 or 84 | the Lutris version of that release are what work best but other wine versions 85 | may also work. 86 | 87 | First, some variables to avoid repetition: 88 | 89 | - `$USERNAME`: refers to the wine user. On standalone, this is your normal 90 | username and on steam it is `steamuser`. 91 | - `$INSTALL_DIR`: the location in program files where the game is installed. 92 | On standalone: `drive_c/Program Files/Eagle Dynamics/DCS` or `DCS World OpenBeta`. On Steam, it's 93 | `/home/frans/.local/share/Steam/steamapps/common/DCSWorld` 94 | - `$CONFIG_DIR`: the place where user config stuff is stored 95 | `drive_c/users/$USERNAME/Saved Games/DCS`. 96 | - `$LOG`: the game log file `$CONFIG_DIR/Logs/dcs.log`. 97 | 98 | You need 99 | to add a few "dll overrides" for the game to work. As of 2.7.9, both `wbemprox` and `msdmo` need to be overridden. 100 | In lutris, you can do so under "runner options". 101 | 102 | For wine and steam proton, you can do so using the `WINEDLLOVERRIDES` 103 | flag https://wiki.winehq.org/Wine_User's_Guide#WINEDLLOVERRIDES.3DDLL_Overrides 104 | 105 | ``` 106 | WINEDLLOVERRIDES='wbemprox=n;msdmo=n' 107 | ``` 108 | 109 | With that change, you should be able to log in but once the game starts you 110 | will see a black screen. To fix this, create a symlink from 111 | `$INSTALL_DIR/bin/webrtc_plugin.dll` to `$INSTALL_dir/webrtc_plugin.dll`. 112 | 113 | The game should now start. 114 | 115 | You may also see a crash when loading a mission. This might be caused by a 116 | Arial missing font which can not be distributed with Wine. 117 | 118 | ## SteamVR 119 | 120 | The game seems to work fine with steamVR. This is only possible in the steam 121 | version, and seems to currently only work in proton 6.3.8 (possibly in future 122 | proton versions, but not GE or TKG) 123 | 124 | ## Known issues and fixes 125 | 126 | If things go wrong, the primary thing to look for is the game log - 127 | `drive_c/users/$USERNAME/Saved Games/DCS/Logs/dcs.log`. 128 | After crashes, the crash reporter will spam a bit about various DLLs being used 129 | recently, and just before that, the cause of the crash should be visible. 130 | 131 | Sometimes crashes happen before the game gets far enough to create a log file. 132 | Then your best bet is to read the Proton output. In both Lutris and Steam, you can easily get 133 | this by starting them from a terminal. 134 | 135 | If you can't find an issue, or have found a solution for one, please discuss it in 136 | the [proton issue](https://github.com/ValveSoftware/Proton/issues/1722). 137 | 138 | ### White smoke and some other particles renders weirdly 139 | 140 | This is a long standing issue, most likely related to texture loading and tesselation. 141 | Luckily, it is just a visual artefact that can be (largely) ignored. 142 | 143 | ### F16 RWR shows a opaque square on the RWR over the priority contact 144 | 145 | This issue occurs because some textures fail to load for an unknown reason. The 146 | fix is simple: open the file 147 | `${INSTALL_DIR}/Mods/aircraft/F-16C/Cockpit/IndicationResources/RWR/indication_RWR.tga` 148 | with an image editor (GIMP or Krita have been used successfully), then just 149 | re-export the file. The RWR should now render correctly. 150 | 151 | ### Missing multiplayer server list 152 | 153 | For a few 2.5.6 versions, the server browser did not work, and neither did 154 | directly connecting to servers using connect by IP. However, there is a 155 | workaround. 156 | 157 | Edit `$INSTALL_DIR/MissionEditor/modules/mul_password.lua`. Find the function `onChange_btnOk` and add the 158 | line `onlyConnect = true` to the start of the function like so. 159 | 160 | ```lua 161 | function onChange_btnOk() 162 | onlyConnect = true -- This line was added 163 | if onlyConnect == true then 164 | -- ... 165 | end 166 | ``` 167 | 168 | Now you should be able to use the connect by IP button to join servers, but the 169 | server list is still broken. Luckily, a server list is available if you log in 170 | on https://www.digitalcombatsimulator.com/, and from there you can get the IP 171 | of servers. 172 | 173 | ### Crash on F10 174 | 175 | For many DCS versions and/or Wine versions, if you press F10 (the default 176 | binding to bring up the map) the game will crash ("permanently" on steam, see 177 | fixing steam permanent crashing (above) for a fix). Luckily, the problem is with the 178 | F10 key itself, not the map, so rebind it to something else you see fit. The 179 | same applies for the communication menu. 180 | 181 | ### Module disabled by user 182 | 183 | You probably won't run into this, but if you do, there is a fix. 184 | 185 | One of your modules is missing, it is not shown in the list at the bottom of 186 | the main menu, and you can't use it. On standalone, check if it is enabled in 187 | the module manager. On steam however, things are a bit more tricky. If you 188 | copied your configs between standalone and steam, module manager disabled mods 189 | will be disabled in steam too. This information is stored in 190 | `$CONFIG_DIR/enabled.lua` or something similar. Remove it to fix the issues. 191 | 192 | ### Control issues 193 | 194 | Due to the various differences between distributions, issues with (HOTAS) controls can be hard to nail down, 195 | especially when Wine is involved - adding another layer of potentional problems. Users experiencing issues with 196 | controllers are advised to read through [the information here](https://github.com/bradley-r/Linux-Controller-Fixes/). 197 | 198 | ## Other software 199 | 200 | While not included in DCS, here are some resources for getting external 201 | software often used with the game. 202 | 203 | ### SRS 204 | 205 | [SRS](http://dcssimpleradio.com/) is used by a lot of multiplayer servers. It 206 | too works with some tweaks. 207 | 208 | Install the game plugin by following the instructions in the SRS readme. 209 | 210 | *Note* As of SRS 19.0.1, this method no longer works. As a replacement, I have 211 | a custom SRS client that *kind of* works here: https://gitlab.com/TheZoq2/srsrs. 212 | 213 | It's easiest to run SRS in its own prefix. Create one, and then run `winetricks 214 | dotnet452 win10` in that prefix. Now you can start `SR-ClientRadio.exe` from 215 | the downloaded files. 216 | 217 | Credit: https://github.com/ciribob/DCS-SimpleRadioStandalone/issues/409. 218 | 219 | ### DCS Scratchpad 220 | 221 | For those who want to make use of the excellent [DCS-Scratchpad utility](https://github.com/rkusa/dcs-scratchpad), 222 | [follow the installation instructions](https://github.com/rkusa/dcs-scratchpad) as normal. 223 | The scratchpad should appear in game, but when typing with it's '*window*' focused, nothing will appear. 224 | This is a font issue - by default, DCS-Scratchpad uses `CONSOLA.TTF`, a font not installed with Wine. 225 | Either install it with Winetricks, or edit line 172 in `Scripts/Scratchpad/ScratchpadWindow.dlg` to 226 | an installed font of your choosing, such as `CALIBRI.TTF`. Text should now appear in the scratchpad window. 227 | 228 | ### Headtracking via Opentrack 229 | 230 | **Users of custom/Lutris/non-system Wine versions, take note: 231 | Due to [issues with libwine](https://github.com/opentrack/opentrack/issues/1236), Opentrack does not support prefixes using versions of Wine 232 | different to that of the system (and thus the one Opentrack recognises), making usage of 233 | custom/performance-enhanced Wine versions impossible alongside it. Either run DCS with your 234 | system Wine, or try Linuxtrack instead. Proton is unaffected.** 235 | 236 | [Opentrack](https://github.com/opentrack/opentrack) can emulate a gamepad which is read and can be mapped to the 237 | corresponding controls in the game. This should work out of the box, simply 238 | select `lubudev joystick receiver` as the output in opentrack. 239 | 240 | Opentrack can work out of the box with `libevdev joystick output`, however this requires you to bind headtracking 241 | for every aircraft (and doesn't play well with Il-2 BoX or Falcon BMS.) 242 | 243 | A better option, then, is to enable Wine (Freetrack and NPclient) output instead of joystick axis output. This allows 244 | the use of headtracking across all aircraft (DCS interprets the input as an actual headtracker rather than joystick), and 245 | should play well with other titles such as IL-2 BoX and Falcon BMS. 246 | 247 | If you are building Opentrack from the [AUR](https://aur.archlinux.org/packages/opentrack/), you can modify the PKGBUILD. 248 | Replace line 34: `-DSDK_WINE_PREFIX=/ \` with `-DSDK_WINE=ON/ \`. *This package now seems to include Wine output by default.* 249 | 250 | Otherwise, you can clone the source code and follow [these 251 | instructions](https://github.com/opentrack/opentrack/wiki/Building-on-Linux). 252 | **After you cd into the directory, run `ccmake .`, press c to configure, turn 253 | ON SDK_WINE, c to configure and g to generate.** 254 | 255 | DCS still requires `HeadTracker.dll` in the `bin` directory for opentrack to 256 | function. Download Eagle Dynamics API interface DLL (64-bit) from 257 | http://facetracknoir.sourceforge.net/information_links/download.htm. 258 | 259 | You must open opentrack and start tracking before you launch DCS. Be sure to 260 | point the output to the correct wine/proton prefix. In addition, you'll need to 261 | launch DCS with WINEESYNC=1 or WINEFSYNC=1 if you enable those in the wine 262 | output settings. 263 | 264 | ![Opentrack Wine Implementation](images/opentrackwine.png) 265 | 266 | Context: https://github.com/ValveSoftware/Proton/issues/1722#issuecomment-749061952 267 | 268 | ### Headtracking via Linuxtrack 269 | 270 | In the case the Opentrack fails to work (as outlined above, it cannot support custom Wine versions 271 | such as those offered by Lutris) or you wish to try an alternative, [Linuxtrack](https://github.com/uglyDwarf/linuxtrack/) 272 | offers similar functionality. 273 | 274 | Begin by installing the [universal Linux package](https://github.com/uglyDwarf/linuxtrack/wiki/universal-Linuxtrack-package). 275 | Once complete, run `ltr-gui` and under the 'Misc' tab, select (re)install TrackIR firmware.) Linuxtrack 276 | will attempt to complete this task for you, but, at time of writing, the TrackIR download links have changed, so 277 | you may need to do this manually. Download the latest TrackIR firmware, install it to your default (or 278 | temporary) prefix, then select 'Extract from unpacked'. 279 | 280 | ![Linuxtrack Firmware Extractor](images/linuxtrackextractor.png) 281 | 282 | Navigate to the prefix you used, and select the TrackIR 5 folder under `/drive_c/Program Files (x86)/NaturalPoint/`. 283 | Once done, you will be prompted to install the Wine-side components; select the prefix DCS is installed under 284 | (only standalone has been tested.) `ltr-gui` can now be closed, and provided Linuxtrack is running 285 | (and has been configured), use the `FreeTrackTester.exe` present in the second prefix `/drive_c/Program Files 286 | (x86)/Linuxtrack/`. You should see the values changing, and thus controlling the view in-game. 287 | 288 | ![Linuxtrack/Freetrack Test Dialogue](images/linuxtrackfreetracktest.png) 289 | 290 | Note that `HeadTracker.dll` need not be present as Linuxtrack replicates TrackIR directly (in the case of DCS, at least.) 291 | 292 | ### A note on headtracking 293 | 294 | This only applies if an IR-modified camera is used as input to your headtracking program of choice, but can be very useful if 295 | so. Video4Linux(2) "*is a collection of device drivers and an API for supporting realtime video capture on Linux systems*" 296 | and thus is the utility used by Opentrack and Linuxtrack to address IR cameras - often the venerable PS3Eye. V4L2 handles the 297 | configuration of attached cameras, and so is the utility to use to change any settings. 298 | 299 | ![QV4L2 Test Dialogue](images/V4L2test.png) 300 | 301 | For IR-modded cameras, the settings of most significance are gain, auto-exposure and (automatic) white balance. The PS3Eye, 302 | not having any physical controls aside from an FOV setting, can be configured using the V4L2 test utility ([`v4l-utils`](https://pkgs.org/download/v4l-utils)), 303 | however changes made here do not persist across reboots. Opentrack seems to have this 304 | utility built-in, but for Linuxtrack users or those needing to change camera settings system-wide, there is a solution: 305 | 306 | * Ensure `v4l-utils` is installed. 307 | * Video4Linux, providing core functionality for attached video devices, is available on all mainline distributions. 308 | * Find `v4l-utils` for your distribution [here](https://pkgs.org/download/v4l-utils). 309 | * Open the V4L2 test utility, and select the correct camera if there are multiple connected. 310 | * Run `qv4l2` at the command line to launch the utility. 311 | * If multiple cameras are connected, look in `/dev/` for `videoX` devices. 312 | * Configure the settings to a suitable point. Of interest here are any automatic features that may interfere with tracking. 313 | * Settings for an IR-modded PS3Eye are included below. 314 | * As a general rule, automatic gain, white balance and (possibly) exposure should be disabled. 315 | * Once done, return to a command line and execute `v4l2-ctl --all`. This lists all the configurable values of the camera. 316 | * Framerate and pixel/capture format will be listed, but these cannot be changed via this method for the PS3Eye. 317 | * Using this information, make a `.sh` file with a relevant name (such as `IRcamfix.sh`) with contents in the format: 318 | > #!/bin/bash 319 | > --set-ctrl=brightness=0 \ 320 | > --set-ctrl=contrast=32 \ 321 | > --set-ctrl=saturation=0 \ 322 | > --set-ctrl=gain_automatic=0 \ 323 | > --set-ctrl=gain=0 \ 324 | > --set-ctrl=power_line_frequency=0 \ 325 | > --set-ctrl=sharpness=0 \ 326 | > --set-ctrl=white_balance_automatic=0 327 | * This accomplishes the same thing as changing these values through the GUI but allows it to be done automatically. 328 | * These settings have been found to work well with a PS3Eye camera, but may need adjusting depending on use conditions. 329 | * Save this file, mark it as executable and add it to an autorun utility such as Plasma's autostart or Lutris' pre-launch script. 330 | * This will apply these changes when the start condition is triggered by their respective programs. 331 | 332 | With this done, the camera will have these changes applied automatically, allowing immediate use of headtracking without the need to preemptively tinker with a GUI before every flight. 333 | -------------------------------------------------------------------------------- /images/V4L2test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deleterium/dcs_on_linux/11b64f197bbaad22e82937bc5679d84088201587/images/V4L2test.png -------------------------------------------------------------------------------- /images/linuxtrackextractor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deleterium/dcs_on_linux/11b64f197bbaad22e82937bc5679d84088201587/images/linuxtrackextractor.png -------------------------------------------------------------------------------- /images/linuxtrackfreetracktest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deleterium/dcs_on_linux/11b64f197bbaad22e82937bc5679d84088201587/images/linuxtrackfreetracktest.png -------------------------------------------------------------------------------- /images/opentrackwine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deleterium/dcs_on_linux/11b64f197bbaad22e82937bc5679d84088201587/images/opentrackwine.png -------------------------------------------------------------------------------- /options.lua: -------------------------------------------------------------------------------- 1 | options = { 2 | ["VR"] = { 3 | ["bloom"] = true, 4 | ["box_mouse_cursor"] = true, 5 | ["custom_IPD"] = 63.5, 6 | ["custom_IPD_enable"] = false, 7 | ["enable"] = false, 8 | ["enableHMDMask"] = true, 9 | ["handOffsetX"] = 0, 10 | ["handOffsetY"] = 0, 11 | ["handOffsetZ"] = 0, 12 | ["hand_controllers"] = true, 13 | ["hand_controllers_debug_draw"] = false, 14 | ["hand_controllers_joint_throttle"] = false, 15 | ["hand_controllers_type"] = 0, 16 | ["hand_controllers_use_stick"] = false, 17 | ["hand_controllers_use_throttle"] = false, 18 | ["interaction_with_grip_only"] = false, 19 | ["mirror_crop"] = false, 20 | ["mirror_source"] = 0, 21 | ["mirror_use_DCS_resolution"] = false, 22 | ["msaaMaskSize"] = 0.42, 23 | ["pixel_density"] = 1, 24 | ["pointer_use_type"] = 0, 25 | ["prefer_built_in_audio"] = true, 26 | ["use_mouse"] = true, 27 | }, 28 | ["difficulty"] = { 29 | ["RBDAI"] = true, 30 | ["autoTrimmer"] = false, 31 | ["avionicsLanguage"] = "english", 32 | ["birds"] = 0, 33 | ["cockpitStatusBarAllowed"] = false, 34 | ["cockpitVisualRM"] = false, 35 | ["controlsIndicator"] = true, 36 | ["easyCommunication"] = true, 37 | ["easyCrew"] = false, 38 | ["easyFlight"] = false, 39 | ["externalViews"] = true, 40 | ["fuel"] = false, 41 | ["gWarmUp"] = false, 42 | ["geffect"] = "realistic", 43 | ["hideStick"] = false, 44 | ["iconsTheme"] = "nato", 45 | ["immortal"] = false, 46 | ["improvedSpottingDot"] = true, 47 | ["labels"] = 2, 48 | ["map"] = true, 49 | ["miniHUD"] = false, 50 | ["optionsView"] = "optview_all", 51 | ["padlock"] = false, 52 | ["permitCrash"] = false, 53 | ["radio"] = false, 54 | ["reports"] = true, 55 | ["setGlobal"] = true, 56 | ["spectatorExternalViews"] = true, 57 | ["tips"] = true, 58 | ["units"] = "imperial", 59 | ["unrestrictedSATNAV"] = false, 60 | ["userMarks"] = true, 61 | ["userSnapView"] = true, 62 | ["wakeTurbulence"] = false, 63 | ["weapons"] = false, 64 | }, 65 | ["format"] = 1, 66 | ["graphics"] = { 67 | ["AA"] = "OFF", 68 | ["BlurFlatShadows"] = 0, 69 | ["ColorGradingLUT"] = 0, 70 | ["DLSS_PerfQuality"] = 3, 71 | ["DOF"] = 0, 72 | ["LODmult"] = 1, 73 | ["LensEffects"] = 0, 74 | ["MSAA"] = 1, 75 | ["SSAO"] = 0, 76 | ["SSLR"] = 0, 77 | ["SSS"] = 0, 78 | ["Scaling"] = 0.66, 79 | ["ScreenshotExt"] = "jpg", 80 | ["Sharpening"] = 0.45, 81 | ["Upscaling"] = "OFF", 82 | ["anisotropy"] = 0, 83 | ["aspect"] = 1.6, 84 | ["box_mouse_cursor"] = false, 85 | ["canopyReflections"] = 1, 86 | ["chimneySmokeDensity"] = 1, 87 | ["civTraffic"] = "", 88 | ["clouds"] = 0, 89 | ["clutterMaxDistance"] = 0, 90 | ["cockpitGI"] = 0, 91 | ["defaultFOV"] = 78, 92 | ["effects"] = 3, 93 | ["flatTerrainShadows"] = 1, 94 | ["forestDetailsFactor"] = 1, 95 | ["forestDistanceFactor"] = 0.3, 96 | ["fullScreen"] = false, 97 | ["heatBlr"] = 0, 98 | ["height"] = 800, 99 | ["lights"] = 2, 100 | ["maxFPS"] = 180, 101 | ["messagesFontScale"] = 1, 102 | ["motionBlur"] = 0, 103 | ["motionBlurAmount"] = 1, 104 | ["multiMonitorSetup"] = "1camera", 105 | ["outputGamma"] = 2.2, 106 | ["preloadRadius"] = 100, 107 | ["rainDroplets"] = 0, 108 | ["scaleGui"] = 1, 109 | ["sceneryDetailsFactor"] = 1, 110 | ["secondaryShadows"] = 0, 111 | ["shadowTree"] = false, 112 | ["shadows"] = 1, 113 | ["sync"] = true, 114 | ["terrainTextures"] = "min", 115 | ["textures"] = 0, 116 | ["useDeferredShading"] = 1, 117 | ["visibRange"] = "Low", 118 | ["water"] = 0, 119 | ["width"] = 1280, 120 | }, 121 | ["miscellaneous"] = { 122 | ["Coordinate_Display"] = "Lat Long Decimal", 123 | ["F2_view_effects"] = 1, 124 | ["TrackIR_external_views"] = false, 125 | ["accidental_failures"] = false, 126 | ["allow_server_screenshots"] = true, 127 | ["autologin"] = false, 128 | ["backup"] = false, 129 | ["backupTime"] = 22, 130 | ["chat_window_at_start"] = true, 131 | ["collect_stat"] = true, 132 | ["f10_awacs"] = true, 133 | ["f11_free_camera"] = true, 134 | ["f5_nearest_ac"] = true, 135 | ["force_feedback_enabled"] = true, 136 | ["headmove"] = false, 137 | ["launcher"] = false, 138 | ["show_pilot_body"] = false, 139 | ["synchronize_controls"] = false, 140 | }, 141 | ["plugins"] = { 142 | ["A-10A"] = { 143 | ["CPLocalList"] = "default", 144 | }, 145 | ["CaptoGlove"] = { 146 | ["armBending"] = 60, 147 | ["enable"] = false, 148 | ["fingerIndexBentLeft"] = "0", 149 | ["fingerIndexBentRight"] = "0", 150 | ["fingerIndexStraightLeft"] = "1000", 151 | ["fingerIndexStraightRight"] = "1000", 152 | ["fingerMiddleBentLeft"] = "0", 153 | ["fingerMiddleBentRight"] = "0", 154 | ["fingerMiddleStraightLeft"] = "1000", 155 | ["fingerMiddleStraightRight"] = "1000", 156 | ["fingerPinkyBentLeft"] = "0", 157 | ["fingerPinkyBentRight"] = "0", 158 | ["fingerPinkyStraightLeft"] = "1000", 159 | ["fingerPinkyStraightRight"] = "1000", 160 | ["fingerRingBentLeft"] = "0", 161 | ["fingerRingBentRight"] = "0", 162 | ["fingerRingStraightLeft"] = "1000", 163 | ["fingerRingStraightRight"] = "1000", 164 | ["fingerThumbBentLeft"] = "0", 165 | ["fingerThumbBentRight"] = "0", 166 | ["fingerThumbStraightLeft"] = "1000", 167 | ["fingerThumbStraightRight"] = "1000", 168 | ["forearmLength_Left"] = 30, 169 | ["forearmLength_Right"] = 30, 170 | ["gloveOffsetX_Left"] = 0, 171 | ["gloveOffsetX_Right"] = 0, 172 | ["gloveOffsetY_Left"] = 0, 173 | ["gloveOffsetY_Right"] = 0, 174 | ["gloveOffsetZ_Left"] = 0, 175 | ["gloveOffsetZ_Right"] = 0, 176 | ["gloveRotationPitch_Left"] = 0, 177 | ["gloveRotationPitch_Right"] = 0, 178 | ["gloveRotationRoll_Left"] = 0, 179 | ["gloveRotationRoll_Right"] = 0, 180 | ["gloveRotationYaw_Left"] = 0, 181 | ["gloveRotationYaw_Right"] = 0, 182 | ["mouseClickSrc"] = 0, 183 | ["pitchOffsetGlove_Left"] = 0, 184 | ["pitchOffsetGlove_Right"] = 0, 185 | ["pitchOffsetShoulder_Left"] = 0, 186 | ["pitchOffsetShoulder_Right"] = 0, 187 | ["set_attach"] = false, 188 | ["set_debug"] = false, 189 | ["set_symmetrically"] = false, 190 | ["shoulderJointX_Left"] = -15, 191 | ["shoulderJointX_Right"] = -15, 192 | ["shoulderJointY_Left"] = -23, 193 | ["shoulderJointY_Right"] = -23, 194 | ["shoulderJointZ_Left"] = 23, 195 | ["shoulderJointZ_Right"] = 23, 196 | ["shoulderLength_Left"] = 40, 197 | ["shoulderLength_Right"] = 40, 198 | ["trackerHMDnameLeft"] = "DISABLE", 199 | ["trackerHMDnameRight"] = "DISABLE", 200 | ["useBending"] = false, 201 | ["useHMDControl"] = false, 202 | ["yawOffsetGlove_Left"] = 0, 203 | ["yawOffsetGlove_Right"] = 0, 204 | ["yawOffsetShoulder_Left"] = 0, 205 | ["yawOffsetShoulder_Right"] = 0, 206 | }, 207 | ["F-15C"] = { 208 | ["CPLocalList"] = "default", 209 | }, 210 | ["MiG-29"] = { 211 | ["CPLocalList_MiG-29A"] = "default", 212 | ["CPLocalList_MiG-29G"] = "default", 213 | ["CPLocalList_MiG-29S"] = "default", 214 | }, 215 | ["Su-25"] = { 216 | ["CPLocalList"] = "default", 217 | }, 218 | ["Su-25T"] = { 219 | ["CPLocalList"] = "default", 220 | }, 221 | ["Su-27"] = { 222 | ["CPLocalList"] = "default", 223 | }, 224 | ["TF-51D"] = { 225 | ["CPLocalList"] = "default", 226 | ["assistance"] = 100, 227 | ["autoRudder"] = false, 228 | }, 229 | ["UltraLeap"] = { 230 | ["enable"] = false, 231 | ["handOffsetX"] = 0, 232 | ["handOffsetY"] = 0, 233 | ["handOffsetZ"] = 0, 234 | ["handUseStick"] = false, 235 | ["handUseThrottle"] = false, 236 | ["mouseClickSrc"] = 0, 237 | ["set_debug"] = false, 238 | }, 239 | ["VRFree"] = { 240 | ["enable"] = false, 241 | ["handUseStick"] = false, 242 | ["handUseThrottle"] = false, 243 | ["mouseClickSrc"] = 0, 244 | ["set_debug"] = false, 245 | }, 246 | }, 247 | ["sound"] = { 248 | ["FakeAfterburner"] = true, 249 | ["GBreathEffect"] = true, 250 | ["cockpit"] = 90, 251 | ["gui"] = 61, 252 | ["headphones"] = 100, 253 | ["headphones_on_external_views"] = true, 254 | ["hear_in_helmet"] = true, 255 | ["hp_output"] = "", 256 | ["main_layout"] = "stereo", 257 | ["main_output"] = "", 258 | ["microphone_use"] = 2, 259 | ["music"] = 4, 260 | ["play_audio_while_minimized"] = false, 261 | ["radioSpeech"] = true, 262 | ["subtitles"] = true, 263 | ["switches"] = 140, 264 | ["use_turn_servers"] = true, 265 | ["voiceChatInSensitivity"] = -50, 266 | ["voiceChatInVolume"] = 50, 267 | ["voice_chat"] = false, 268 | ["voice_chat_input"] = "", 269 | ["voice_chat_output"] = "", 270 | ["volume"] = 80, 271 | ["world"] = 52, 272 | }, 273 | ["views"] = { 274 | ["cockpit"] = { 275 | ["avionics"] = 0, 276 | ["mirrors"] = false, 277 | ["reflections"] = true, 278 | }, 279 | }, 280 | } 281 | --------------------------------------------------------------------------------