Difference between revisions of "Block file (.BLK)"

From War Thunder Wiki
Jump to: navigation, search
(Structure)
m (fixed the extension)
 
(3 intermediate revisions by 3 users not shown)
Line 1: Line 1:
A block file (*.blk) is a file holding relatively small pieces of data for the game in text form and is used in various places where mostly power users and modders are encouraged to make changes or add content to the game. WarThunder itself also stores settings in the config.blk file in the game’s root directory.
+
A '''block file (*.blk)''' is a file holding relatively small pieces of data for the game in text form and is used in various places where mostly power users and modders are encouraged to make changes or add content to the game. WarThunder itself also stores settings in the config.blk file in the game’s root directory.
  
 
While most data is stored in binary formats, which are faster to read by computer programs and usually smaller than text formats, the latter has the benefits of being human readable and editable with a basic text editing program instead of complex editing software. Every text file format such as HTML needs to provide enough structure for a computer program to recognize and itemize the contained data while giving the human editor a degree freedom to e.g. add comments or insert blank lines for better organization.
 
While most data is stored in binary formats, which are faster to read by computer programs and usually smaller than text formats, the latter has the benefits of being human readable and editable with a basic text editing program instead of complex editing software. Every text file format such as HTML needs to provide enough structure for a computer program to recognize and itemize the contained data while giving the human editor a degree freedom to e.g. add comments or insert blank lines for better organization.
  
BLK Files are also compressed within War Thunder's .vromf.bin files at the game's local files.
+
BLK Files are also compressed within War Thunder's .vromfs.bin files at the game's local files.
  
 
==Structure==
 
==Structure==
 
The below excerpt from a config.blk illustrates the basic structure of a block file. There are assignments of values ("medium") to named items (''cloudsQuality'') of a specific data type indicated by a short code (''t'') and named groups such as "graphics" which provide some structure by wrapping other assignments and groups inside curly braces.
 
The below excerpt from a config.blk illustrates the basic structure of a block file. There are assignments of values ("medium") to named items (''cloudsQuality'') of a specific data type indicated by a short code (''t'') and named groups such as "graphics" which provide some structure by wrapping other assignments and groups inside curly braces.
<code>
+
<pre>
Logitech Gaming Software README File
+
  cloudsQuality:t="medium"
+
  use_gamepad_cursor_control:b=no
(c) 2010 Logitech.  All rights reserved.  Logitech, the Logitech logo, and
+
  use_gamepad_interface:b=no
other Logitech marks are owned by Logitech and may be registered.  All other
+
   hdClient:b=no
trademarks are the property of their respective owners.
+
   clientType:t="32bit"
+
 
README TABLE OF CONTENTS
+
  graphics{
+
    enableSuspensionAnimation:b=no
1.  OVERVIEW
+
    rendinstDistMul:r=0.5
+
    grassRadiusMul:r=0.1
<nowiki> </nowiki>1.1 SUPPORTED OPERATING SYSTEMS
+
    shadowQuality:t="ultralow"
<nowiki> </nowiki>1.1.1 INTEL ITANIUM PROCESSORS
+
    tireTracksQuality:i=0
<nowiki> </nowiki>1.2 UNSUPPORTED ANALOG GAMEPORT DEVICES
+
    skyQuality:i=2
<nowiki> </nowiki>1.3 SUPPORTED DEVICES
+
    cloudsQuality:i=2
<nowiki> </nowiki>1.3.1 USB HID DEVICES
+
  }</pre>
<nowiki> </nowiki>1.3.2 UNSUPPORTED DEVICES
 
<nowiki> </nowiki>1.4 WINXP/VISTA/WIN7 SUPPORTED DEVICES
 
 
2.  INSTALLING AND REMOVING THE SOFTWARE
 
 
<nowiki> </nowiki>2.1 INSTALLATION
 
<nowiki> </nowiki>2.2 UNINSTALL
 
 
3.  DEVICE-SPECIFIC NOTES
 
 
<nowiki> </nowiki>3.1 GAMEPADS
 
<nowiki> </nowiki>3.1.1 USING RUMBLEPAD WITH UNPOWERED (BUS POWERED) USB HUBS
 
<nowiki> </nowiki>3.1.2 SWAP JOYSTICK MODE
 
<nowiki> </nowiki>3.1.3 FLIGHT / SPORTS MODE
 
<nowiki> </nowiki>3.2 CORDLESS DEVICES
 
<nowiki> </nowiki>3.3 WINGMAN STRIKE FORCE 3D
 
 
4. GAME-SPECIFIC NOTES
 
 
<nowiki> </nowiki>4.1 FORCE FEEDBACK GAMES
 
<nowiki> </nowiki>4.2 USING A GAMEPAD/JOYSTICK IN FIRST PERSON SHOOTER GAMES
 
 
5.  TROUBLESHOOTING
 
 
<nowiki> </nowiki>5.1 3RD-PARTY INSTALLATION PROGRAMS
 
 
6.  CONTACTING CUSTOMER SUPPORT
 
 
7.  THIRD-PARTY NOTICES
 
<nowiki> </nowiki>7.1 OPEN SOURCE SOFTWARE USAGE
 
 
<nowiki>***************************************************************************************</nowiki>
 
 
1. WHAT'S IN THIS RELEASE
 
 
1.1 SUPPORTED OPERATING SYSTEMS
 
 
Logitech Gaming Software is designed to work with the Windows XP/Vista/7 operating systems
 
only. Windows 2000, Windows 95, Windows 98, Windows ME, Windows 3.x and true DOS (6.22 or
 
lower) are not supported.
 
 
<nowiki> </nowiki>1.1.1 INTEL ITANIUM PROCESSORS
 
 
<nowiki> </nowiki>Intel Itanium processors are not supported.
 
 
<nowiki> </nowiki>1.2 UNSUPPORTED ANALOG GAMEPORT DEVICES
 
 
<nowiki> </nowiki>Analog gameport devices should be used with operating system supplied generic
 
<nowiki> </nowiki>gameport drivers. Refer to the product documentation for installation instructions
 
<nowiki> </nowiki>for these devices. There is no support in the software for these devices.
 
 
<nowiki> </nowiki>      WingMan Extreme
 
<nowiki> </nowiki>      WingMan Light
 
<nowiki> </nowiki>      WingMan Attack
 
<nowiki> </nowiki>      WingMan Precision
 
<nowiki> </nowiki>      WingMan Formula GP
 
<nowiki> </nowiki>      Thunderpad
 
 
<nowiki> </nowiki>1.3 SUPPORTED DEVICES
 
 
<nowiki> </nowiki>1.3.1 USB HID DEVICES
 
 
<nowiki> </nowiki>      WingMan Cordless Gamepad
 
<nowiki> </nowiki>      WingMan Rumblepad
 
<nowiki> </nowiki>      WingMan Formula GP USB
 
<nowiki> </nowiki>      WingMan Precision USB
 
<nowiki> </nowiki>      WingMan Force 3D
 
<nowiki> </nowiki>      WingMan Strike Force 3D
 
<nowiki> </nowiki>      WingMan Formula Force GP
 
<nowiki> </nowiki>      WingMan Attack 2
 
<nowiki> </nowiki>      WingMan ActionPad
 
<nowiki> </nowiki>      WingMan Formula (yellow wheel)
 
<nowiki> </nowiki>      WingMan Gamepad (black pad)
 
<nowiki> </nowiki>      WingMan Gamepad Extreme
 
<nowiki> </nowiki>      WingMan Extreme Digital 3D
 
<nowiki> </nowiki>      Logitech Attack 3
 
<nowiki> </nowiki>      Logitech Driving Force
 
<nowiki> </nowiki>      Logitech Dual Action
 
<nowiki> </nowiki>      Logitech Extreme 3D Pro
 
<nowiki> </nowiki>      Logitech Freedom 2.4
 
<nowiki> </nowiki>      Logitech MOMO Force
 
<nowiki> </nowiki>      Logitech MOMO Racing
 
<nowiki> </nowiki>      Logitech RumblePad 2
 
<nowiki> </nowiki>      Logitech Cordless RumblePad 2
 
<nowiki> </nowiki>      Logitech Precision Gamepad
 
<nowiki> </nowiki>      Logitech Racing Wheel
 
<nowiki> </nowiki>      Logitech Driving Force Pro
 
<nowiki> </nowiki>      Logitech Force 3D Pro
 
<nowiki> </nowiki>      Logitech Formula Force EX
 
<nowiki> </nowiki>      Logitech G25 Racing Wheel
 
<nowiki> </nowiki>      Logitech Driving Force GT
 
<nowiki> </nowiki>      Logitech Flight System G940
 
<nowiki> </nowiki>      Logitech G27 Racing Wheel
 
 
 
<nowiki> </nowiki>1.3.2 UNSUPPORTED DEVICES
 
 
<nowiki> </nowiki>  There is no support for gameport or serial port products. In addition,
 
<nowiki> </nowiki>these older USB products are not supported:
 
 
<nowiki> </nowiki>      WingMan Force
 
<nowiki> </nowiki>      WingMan Formula Force
 
 
 
<nowiki> </nowiki>1.4 WINXP/VISTA/WIN7 SUPPORTED DEVICES
 
 
<nowiki> </nowiki>The software for WinXP/Vista/Win7 only supports USB HID products. See section 1.3.1
 
<nowiki> </nowiki>for the complete list of supported devices. Gameport, serial port and
 
<nowiki> </nowiki>legacy USB devices are not supported in this release.
 
 
<nowiki> </nowiki>You must have administrator privileges to use the software under Windows
 
<nowiki> </nowiki>XP/Vista/7. When you try to install a gaming device on your WinXP/Vista/Win7 based
 
<nowiki> </nowiki>computer, you may be unable to do so. This issue can occur if you are not
 
<nowiki> </nowiki>logged on with an account that has administrator privileges. See the Microsoft
 
<nowiki> </nowiki>support web site for more details.
 
 
<nowiki>***************************************************************************************</nowiki>
 
 
2. INSTALLING AND REMOVING THE SOFTWARE UNDER WINDOWS XP/Vista/7
 
 
2.1 QUICK INSTALLATION
 
 
Windows may be restarted during the installation process. We recommend saving
 
any work and closing any open programs before beginning the installation.
 
 
It is not necessary to uninstall previous versions of the software
 
prior to installation. The installer will check for previous versions
 
and remove or update files as necessary.
 
 
To begin the installation place the CD
 
in your CD-ROM drive. The Setup window appears in a few seconds (if AutoPlay is
 
enabled on your system), then follow the directions that appear on the setup
 
screens.
 
 
If the AutoPlay feature of Windows XP/Vista/7 is not enabled, then simply go to the
 
Start menu, choose "Run", click "Browse" to select the CD-ROM drive,
 
double-click the "SETUP.EXE" program on the CD, then follow the
 
directions that appear on the setup screens.
 
 
2.2 UNINSTALL
 
 
The software can be removed from Windows XP/Vista/7 by clicking the
 
Add/Remove Programs icon in the Windows XP/Vista/7 Control Panel. Select
 
"Logitech Gaming Software" and click the "Add/Remove..." button. Then follow the on
 
screen instructions for completing the uninstall.
 
 
 
<nowiki>***************************************************************************************</nowiki>
 
 
3.0 DEVICE SPECIFIC NOTES
 
 
This section describes specific issues encountered when installing the software
 
with certain Logitech game controllers.
 
 
3.1 GAMEPADS
 
 
<nowiki> </nowiki>3.1.1 USING RUMBLEPAD WITH UNPOWERED (BUS POWERED) USB HUBS
 
 
<nowiki> </nowiki>Because of the power requirements of the WingMan RumblePad they will not
 
<nowiki> </nowiki>function on unpowered USB hubs. Powered hubs require the use of an
 
<nowiki> </nowiki>external power supply such as an AC adapter to provide power for the
 
<nowiki> </nowiki>USB hub. Unpowered hubs draw their power from the USB port on the computer.
 
 
<nowiki> </nowiki>3.1.2 SWAP JOYSTICK MODE
 
 
<nowiki> </nowiki>The software allows the swapping of the functions for the left and
 
<nowiki> </nowiki>right joysticks. To swap the functions of the joysticks do the following:
 
 
<nowiki> </nowiki>1. Click "Start", "Settings", "Control Panel".
 
<nowiki> </nowiki>2. Double-click "Game Controllers".
 
<nowiki> </nowiki>3. Select "WingMan RumblePad" and click "Properties".
 
<nowiki> </nowiki>4. Click "Settings" and check the box marked "Enable Swap Mode".
 
<nowiki> </nowiki>5. Click "OK" to save the settings.
 
 
<nowiki> </nowiki>3.1.3 FLIGHT / SPORTS MODE
 
 
<nowiki> </nowiki>Some gamepads have a mode button to switch between Flight Simulation Mode and
 
<nowiki> </nowiki>Sports Action mode.
 
 
<nowiki> </nowiki>Flight Simulation Mode (mode LED is on/green) :-
 
 
<nowiki> </nowiki>  - movement is controlled by the left joystick in X and Y axis directions
 
<nowiki> </nowiki>  - the D-Pad controls an eight way POV view from the cockpit
 
<nowiki> </nowiki>   - the throttle controls the engine speed
 
 
<nowiki> </nowiki>Sports/Action Mode (mode LED is off/red) :-
 
 
<nowiki> </nowiki>  - cursor movement is controlled by the D-Pad
 
<nowiki> </nowiki>  - the left joystick controls the POV
 
 
3.2 CORDLESS DEVICES
 
 
<nowiki> </nowiki>This Logitech 2.4GHz products uses sophisticated channel- and
 
<nowiki> </nowiki>frequency-hopping technology to avoid interference with other cordless
 
<nowiki> </nowiki>devices. We have conducted extensive testing of this product with other
 
<nowiki> </nowiki>2.4GHz devices and rf- (radio frequency) emitting devices (cordless phones,
 
<nowiki> </nowiki>cordless headsets, wireless networks, cordless cameras, a/v sender/receivers,
 
<nowiki> </nowiki>etc.). In the majority of circumstances, users will not experience any rf
 
<nowiki> </nowiki>interference between this Logitech 2.4GHz product and those devices.
 
<nowiki> </nowiki>However, it is possible that in some cases interference may occur. This
 
<nowiki> </nowiki>interference could result in  erratic behavior of the devices or complete
 
<nowiki> </nowiki>loss of signal. If you notice this behavior, or static, clicking, or
 
<nowiki> </nowiki>humming of other devices, then there are a few simple actions you can
 
<nowiki> </nowiki>take to reduce or eliminate the interference.
 
 
<nowiki> </nowiki>a. Increase the distance between the Logitech 2.4GHz receiver and
 
<nowiki> </nowiki>  the other cordless devices/receivers.
 
 
<nowiki> </nowiki>b. Turn off other cordless devices that are in close proximity when
 
<nowiki> </nowiki>  using the Logitech Cordless 2.4GHz Product.
 
 
<nowiki> </nowiki>c. To verify that your Logitech 2.4GHz Product is connected and working
 
<nowiki> </nowiki>   properly, check it through the Game Controller Control Panel.
 
 
3.3 WINGMAN STRIKE FORCE 3D
 
 
<nowiki> </nowiki>This wheel button is a unique feature that provides an
 
<nowiki> </nowiki>alternative method to perform button presses. The wheel button is
 
<nowiki> </nowiki>configured to have the functionality of three separate and
 
<nowiki> </nowiki>independent joystick buttons. The three button functions are labeled
 
<nowiki> </nowiki>as buttons 7, 8, and 9 on the joystick.
 
 
<nowiki> </nowiki>- Button 7 is activated by pressing down on the wheel button.
 
<nowiki> </nowiki>- Button 8 is activated by rotating the wheel forward by
 
<nowiki> </nowiki>  one notch movement.
 
<nowiki> </nowiki>- Button 9 is activated by rotating the wheel backward by
 
<nowiki> </nowiki>  one notch movement.
 
 
<nowiki> </nowiki>Please note that each wheel notch movement corresponds to a press
 
<nowiki> </nowiki>and release button activation. Therefore, if the wheel is rotated
 
<nowiki> </nowiki>forward by two notch movements, this would act as two Button 8
 
<nowiki> </nowiki>activations. If the wheel is rotated forward by ten notch movements,
 
<nowiki> </nowiki>this would act as ten Button 8 activations.
 
 
<nowiki> </nowiki>Changes in wheel rotation direction are quickly acted upon as a
 
<nowiki> </nowiki>different button activation. This will cause any previous button
 
<nowiki> </nowiki>activations that may be in the queue to be cleared out. For example, if
 
<nowiki> </nowiki>the wheel had been rotated forward by ten notch movements and then
 
<nowiki> </nowiki>rotated backward by one notch movement, the ten Button 8 activations
 
<nowiki> </nowiki>would start to get processed until the backward movement was detected.
 
<nowiki> </nowiki>Once the backward movement was detected, a Button 9 activation would be
 
<nowiki> </nowiki>processed and any remaining Button 8 activations would be cleared out.
 
 
<nowiki> </nowiki>Below are some suggested uses of the wheel button:
 
 
<nowiki> </nowiki>- Quickly select and fire weapons.
 
<nowiki> </nowiki>- Rotate the wheel forward and backward to select weapons and
 
<nowiki> </nowiki>  then press down to fire.
 
<nowiki> </nowiki>- Target next enemy aircraft, previous enemy aircraft, and closest
 
<nowiki> </nowiki>  enemy aircraft. Rotate the wheel forward for next enemy,  rotate backward
 
<nowiki> </nowiki>  for previous enemy, and press down to target closest enemy.
 
<nowiki> </nowiki>- Change gears in racing games. Rotate the wheel forward one notch to
 
<nowiki> </nowiki>  shift up and rotate backward one notch to shift down.
 
 
<nowiki> </nowiki>Hat switch number 2 (labeled "H2" on the joystick) is configured to report as
 
<nowiki> </nowiki>eight independent buttons.
 
 
<nowiki> </nowiki>  Button 10  H2 north
 
<nowiki> </nowiki>  Button 11  H2 east
 
<nowiki> </nowiki>  Button 12  H2 south
 
<nowiki> </nowiki>  Button 13  H2 west
 
<nowiki> </nowiki>  Button 14  H2 north east
 
<nowiki> </nowiki>  Button 15  H2 south east
 
<nowiki> </nowiki>  Button 16  H2 south west
 
<nowiki> </nowiki>  Button 17  H2 north west
 
 
 
 
<nowiki>**************************************************************************************</nowiki>
 
 
4. GAME-SPECIFIC NOTES
 
 
<nowiki> </nowiki>4.1 FORCE FEEDBACK GAMES
 
 
Many games that support force feedback have this option disabled by default. The
 
reason for this is that currently the majority of joysticks on the market do not
 
support force feedback. Having force feedback enabled with a non-force feedback
 
controller connected is unnecessary and could possibly cause errors or
 
conflicts. Refer to the documentation that came with the game for details on how
 
to enable and configure force feedback in the game.
 
 
 
<nowiki> </nowiki>4.2 USING A GAMEPAD/JOYSTICK IN FIRST PERSON SHOOTER GAMES
 
 
All games do not support input from a joystick or gamepad. Many of the first
 
person shooter games, role playing games, strategy games, and golf games are
 
designed for use with a "mouse + keyboard". Please check in game documentation
 
to determine if your game supports a joystick/gamepad, and for details on how
 
to configure such a device within the game.
 
 
 
<nowiki>***************************************************************************************</nowiki>
 
 
5. TROUBLESHOOTING
 
 
This section describes solutions to specific problems you may have.
 
Also, you may refer to the Troubleshooting section of the LGS Online Help.
 
 
5.1 3RD-PARTY INSTALLATION PROGRAMS
 
 
It is suggested that the Windows uninstaller be used rather than 3rd party
 
uninstall programs. If during LGS installation, there are any
 
conflicts with an installation monitoring program, quit the installation, then
 
turn off the installation monitoring program and re-install LGS.
 
 
 
<nowiki>***************************************************************************************</nowiki>
 
 
6. CONTACTING CUSTOMER SUPPORT
 
 
Web Site: <nowiki>http://www.logitech.com</nowiki>
 
The Logitech web site contains interactive customer support, patches, product
 
information and more.
 
 
FTP Site: <nowiki>ftp://ftp.logitech.com</nowiki>
 
The FTP site contains patches and driver updates for our products.
 
 
Electronic Support: <nowiki>http://www.logitech.globalsupport.com</nowiki>
 
Email our professional staff with your customer support questions through our
 
web based service.  
 
 
Customer Support Hotline: (702) 269-3457, U.S. and Canada,  7:30 AM-3:30 PM
 
Pacific Time, Mon. - Fri. (Note: Hours are subject to change)
 
The Customer Support Group will answer any technical or service related
 
questions regarding Logitech products.
 
 
 
<nowiki>***************************************************************************************</nowiki>
 
 
7.  THIRD-PARTY NOTICES
 
 
This software includes Ogg Vorbis playback routines based on libogg-1.1
 
and libvorbis-1.0.1, which carry the following license:
 
 
<nowiki> </nowiki> Copyright (c) 2006, Xiph.org Foundation
 
 
<nowiki> </nowiki> Redistribution and use in source and binary forms, with or without
 
<nowiki> </nowiki> modification, are permitted provided that the following conditions
 
<nowiki> </nowiki> are met:
 
 
<nowiki> </nowiki> - Redistributions of source code must retain the above copyright
 
<nowiki> </nowiki> notice, this list of conditions and the following disclaimer.
 
 
<nowiki> </nowiki> - Redistributions in binary form must reproduce the above copyright
 
<nowiki> </nowiki> notice, this list of conditions and the following disclaimer in the
 
<nowiki> </nowiki> documentation and/or other materials provided with the distribution.
 
 
<nowiki> </nowiki> - Neither the name of the Xiph.org Foundation nor the names of its
 
<nowiki> </nowiki> contributors may be used to endorse or promote products derived from
 
<nowiki> </nowiki> this software without specific prior written permission.
 
 
<nowiki> </nowiki> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 
<nowiki> </nowiki> ``AS IS<nowiki>''</nowiki> AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 
<nowiki> </nowiki> LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 
<nowiki> </nowiki> A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION
 
<nowiki> </nowiki> OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 
<nowiki> </nowiki> SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 
<nowiki> </nowiki> LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 
<nowiki> </nowiki> DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 
<nowiki> </nowiki> THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
<nowiki> </nowiki> (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 
<nowiki> </nowiki> OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 
<nowiki> </nowiki>7.1  OPEN SOURCE SOFTWARE USAGE
 
 
<nowiki> </nowiki>Logitech Gaming Software makes use of the libpng and zlib Software.
 
 
<nowiki>--------------------------------------------------------------------------------</nowiki>
 
(c) 2010 Logitech.  All rights reserved.  Logitech, the Logitech logo, and
 
other Logitech marks are owned by Logitech and may be registered.  All other
 
trademarks are the property of their respective owners.
 
 
 
 
===Assignments===
 
===Assignments===
 
The names of data items and groups are implied by the game. There are usually either example files highlighting the available options or pages in this Wiki about them. Their exact spelling and casing is important or the game will silently ignore the provided values and resort to defaults. Speaking of which, the default values are usually sensible and if they suit you, allow you to omit some lines from your block file to keep it slim. Some block files expect you to mention a name multiple times to create an array of values, like the line drawing block in [[user-made sighting reticles]]:
 
The names of data items and groups are implied by the game. There are usually either example files highlighting the available options or pages in this Wiki about them. Their exact spelling and casing is important or the game will silently ignore the provided values and resort to defaults. Speaking of which, the default values are usually sensible and if they suit you, allow you to omit some lines from your block file to keep it slim. Some block files expect you to mention a name multiple times to create an array of values, like the line drawing block in [[user-made sighting reticles]]:
<code>
+
<pre>
 
   drawLines{
 
   drawLines{
 
     line{ line:p4=0.35, -1, 0.35, 0; move:b=no; }
 
     line{ line:p4=0.35, -1, 0.35, 0; move:b=no; }
 
     line{ line:p4=115, +10000, 117, 0; move:b=no; thousandth:b=yes; }
 
     line{ line:p4=115, +10000, 117, 0; move:b=no; thousandth:b=yes; }
   }
+
   }</pre>
</code>
 
 
 
 
The name is followed by a colon ":" and a short code for the expected data type.
 
The name is followed by a colon ":" and a short code for the expected data type.
 
{| class="wikitable"
 
{| class="wikitable"
Line 409: Line 35:
 
! Designator !! Example !! Explanation
 
! Designator !! Example !! Explanation
 
|-
 
|-
| align="center" | '''t''' || example:t="Hello world!"; || '''Text:''' Accepts any string of characters encapsulated by quotation marks.
+
|align="center"| '''t''' || example:t="Hello world!"; || '''Text:''' Accepts any string of characters encapsulated by quotation marks.
 
|-
 
|-
| align="center" | '''b''' || example:b=true; ||'''Boolean:''' A binary state value, accepts either '''yes''' / '''no''' or '''true''' / '''false'''.
+
|align="center"| '''b''' || example:b=true; ||'''Boolean:''' A binary state value, accepts either '''yes''' / '''no''' or '''true''' / '''false'''.
 
|-
 
|-
| align="center" | '''i''' || example:i=50; ||'''Integer:''' An integral number, accepts only true positive or negative values ('''5''', '''-2''', '''0''', etc.).
+
|align="center"| '''i''' || example:i=50; ||'''Integer:''' An integral number, accepts only true positive or negative values ('''5''', '''-2''', '''0''', etc.).
 
|-
 
|-
| align="center" | '''r''' || example:r=12.7; ||'''Real:''' A real number, accepts any integral values in addition to fractions ('''5''', '''-2''', '''0''', '''7.62''', '''-3.33333''', etc.).
+
|align="center"| '''r''' || example:r=12.7; ||'''Real:''' A real number, accepts any integral values in addition to fractions ('''5''', '''-2''', '''0''', '''7.62''', '''-3.33333''', etc.).
 
|-
 
|-
| align="center" | '''p2''' || example:p2=0.5,20; ||'''Point, 2-dimensional:''' A point defined on a 2-dimensional space. Accepts comma separated list of two real numbers.
+
|align="center"| '''p2''' || example:p2=0.5,20; ||'''Point, 2-dimensional:''' A point defined on a 2-dimensional space. Accepts comma separated list of two real numbers.
 
|-
 
|-
| align="center" | '''p3''' || example:p3=0.5,20,-10; ||'''Point, 3-dimensional:''' A point defined on a 3-dimensional space. Accepts comma separated list of three real numbers.
+
|align="center"| '''p3''' || example:p3=0.5,20,-10; ||'''Point, 3-dimensional:''' A point defined on a 3-dimensional space. Accepts comma separated list of three real numbers.
 
|-
 
|-
| align="center" | '''p4''' || example:p4=0.5,20,-10,9; ||'''Point, 4-dimensional:''' A point defined on a 4-dimensional space. Accepts comma separated list of four real numbers.
+
|align="center"| '''p4''' || example:p4=0.5,20,-10,9; ||'''Point, 4-dimensional:''' A point defined on a 4-dimensional space. Accepts comma separated list of four real numbers.
 
|-
 
|-
| align="center" | '''c''' || example:c=51,204,51,100; ||'''Color:''' An RGBA (red green blue alpha) color value represented by four comma separated integers from 0 to 255 for the three color channels and opacity values respectively.
+
|align="center"| '''c''' || example:c=51,204,51,100; ||'''Color:''' An RGBA (red green blue alpha) color value represented by four comma separated integers from 0 to 255 for the three color channels and opacity values respectively.
 
|}
 
|}
 
 
Assignments may be terminated by a semicolon (<code>;</code>) and they have to be if the line does not end after the assignment. Two examples:
 
Assignments may be terminated by a semicolon (<code>;</code>) and they have to be if the line does not end after the assignment. Two examples:
<code>
+
<pre>
 
   x:r=3; y:r=5
 
   x:r=3; y:r=5
   person { name:t="John Doe"; age:r=50; }
+
   person { name:t="John Doe"; age:r=50; }</pre>
 
 
</code>
 
 
While you can put several assignments on one line you may not break up a single assignment into multiple lines. Line breaks are allowed around curly braces and assignments. Additional white-space is allowed between all elements, but not between parts of a number (i.e. <code>+ 5</code>).
 
While you can put several assignments on one line you may not break up a single assignment into multiple lines. Line breaks are allowed around curly braces and assignments. Additional white-space is allowed between all elements, but not between parts of a number (i.e. <code>+ 5</code>).
 
 
===Comments===
 
===Comments===
 
Block files allow two types of comments, line end comments and block comments known from many programming and scripting languages. A line comment is placed at the end of a line of text and starts with two slashes (<code>//</code>). A block comment can span multiple lines or be interspersed into a line and is enclosed in a slash and asterisk combination like so: <code>/* comment */</code>. The game will for the most part interpret a block file as if the comments were cut out. Some valid comments:
 
Block files allow two types of comments, line end comments and block comments known from many programming and scripting languages. A line comment is placed at the end of a line of text and starts with two slashes (<code>//</code>). A block comment can span multiple lines or be interspersed into a line and is enclosed in a slash and asterisk combination like so: <code>/* comment */</code>. The game will for the most part interpret a block file as if the comments were cut out. Some valid comments:
<code>
+
<pre>
 
   drawTexts{
 
   drawTexts{
 
     text { text:t="X"; pos:p2=0./*works*/35,0 /* position in screen units */; align:i=0; } // draws an X
 
     text { text:t="X"; pos:p2=0./*works*/35,0 /* position in screen units */; align:i=0; } // draws an X
   }
+
   }</pre>
 
 
</code>
 
 
The game is not be able to digest coordinate lists on multiple lines though. Neither with nor without comments:
 
The game is not be able to digest coordinate lists on multiple lines though. Neither with nor without comments:
<code>
+
<pre>
   pos:p3=3, /* x
+
   pos:p3=3, /* x */
  */     4, /* y
+
        4, /* y */
  */     5; /* z */
+
        5; /* z */</pre>
</code>
+
==See also==
 
+
Game aspects dealing with block files:
==Game aspects dealing with block files==
 
 
 
 
* [[Custom skins]]
 
* [[Custom skins]]
 
* [[Custom hangars]]
 
* [[Custom hangars]]

Latest revision as of 10:02, 19 November 2024

A block file (*.blk) is a file holding relatively small pieces of data for the game in text form and is used in various places where mostly power users and modders are encouraged to make changes or add content to the game. WarThunder itself also stores settings in the config.blk file in the game’s root directory.

While most data is stored in binary formats, which are faster to read by computer programs and usually smaller than text formats, the latter has the benefits of being human readable and editable with a basic text editing program instead of complex editing software. Every text file format such as HTML needs to provide enough structure for a computer program to recognize and itemize the contained data while giving the human editor a degree freedom to e.g. add comments or insert blank lines for better organization.

BLK Files are also compressed within War Thunder's .vromfs.bin files at the game's local files.

Structure

The below excerpt from a config.blk illustrates the basic structure of a block file. There are assignments of values ("medium") to named items (cloudsQuality) of a specific data type indicated by a short code (t) and named groups such as "graphics" which provide some structure by wrapping other assignments and groups inside curly braces.

  cloudsQuality:t="medium"
  use_gamepad_cursor_control:b=no
  use_gamepad_interface:b=no
  hdClient:b=no
  clientType:t="32bit"
  
  graphics{
    enableSuspensionAnimation:b=no
    rendinstDistMul:r=0.5
    grassRadiusMul:r=0.1
    shadowQuality:t="ultralow"
    tireTracksQuality:i=0
    skyQuality:i=2
    cloudsQuality:i=2
  }

Assignments

The names of data items and groups are implied by the game. There are usually either example files highlighting the available options or pages in this Wiki about them. Their exact spelling and casing is important or the game will silently ignore the provided values and resort to defaults. Speaking of which, the default values are usually sensible and if they suit you, allow you to omit some lines from your block file to keep it slim. Some block files expect you to mention a name multiple times to create an array of values, like the line drawing block in user-made sighting reticles:

  drawLines{
    line{ line:p4=0.35, -1, 0.35, 0; move:b=no; }
    line{ line:p4=115, +10000, 117, 0; move:b=no; thousandth:b=yes; }
  }

The name is followed by a colon ":" and a short code for the expected data type.

Designator Example Explanation
t example:t="Hello world!"; Text: Accepts any string of characters encapsulated by quotation marks.
b example:b=true; Boolean: A binary state value, accepts either yes / no or true / false.
i example:i=50; Integer: An integral number, accepts only true positive or negative values (5, -2, 0, etc.).
r example:r=12.7; Real: A real number, accepts any integral values in addition to fractions (5, -2, 0, 7.62, -3.33333, etc.).
p2 example:p2=0.5,20; Point, 2-dimensional: A point defined on a 2-dimensional space. Accepts comma separated list of two real numbers.
p3 example:p3=0.5,20,-10; Point, 3-dimensional: A point defined on a 3-dimensional space. Accepts comma separated list of three real numbers.
p4 example:p4=0.5,20,-10,9; Point, 4-dimensional: A point defined on a 4-dimensional space. Accepts comma separated list of four real numbers.
c example:c=51,204,51,100; Color: An RGBA (red green blue alpha) color value represented by four comma separated integers from 0 to 255 for the three color channels and opacity values respectively.

Assignments may be terminated by a semicolon (;) and they have to be if the line does not end after the assignment. Two examples:

  x:r=3; y:r=5
  person { name:t="John Doe"; age:r=50; }

While you can put several assignments on one line you may not break up a single assignment into multiple lines. Line breaks are allowed around curly braces and assignments. Additional white-space is allowed between all elements, but not between parts of a number (i.e. + 5).

Comments

Block files allow two types of comments, line end comments and block comments known from many programming and scripting languages. A line comment is placed at the end of a line of text and starts with two slashes (//). A block comment can span multiple lines or be interspersed into a line and is enclosed in a slash and asterisk combination like so: /* comment */. The game will for the most part interpret a block file as if the comments were cut out. Some valid comments:

  drawTexts{
    text { text:t="X"; pos:p2=0./*works*/35,0 /* position in screen units */; align:i=0; } // draws an X
  }

The game is not be able to digest coordinate lists on multiple lines though. Neither with nor without comments:

  pos:p3=3, /* x  */
         4, /* y  */
         5; /* z */

See also

Game aspects dealing with block files: