User-made sighting reticles

From War Thunder Wiki
Revision as of 16:55, 5 February 2019 by Inceptor57 (talk | contribs) (Changed protection level for "User-made sighting reticles" ([Edit=Allow only administrators and moderators] (indefinite) [Move=Allow only administrators and moderators] (indefinite)))

Jump to: navigation, search

In Update 1.73 "Vive la France", we added the ability to create user-made sight grid designs for ground vehicles.

User-made sights work like user-made camouflage, i.e. they’re applied individually to each vehicle, and they’re not made in a graphical editor, but by changing the settings block in the sight file.

Find alternative sights on War Thunder LIVE or share your own.

Setting a user-made sight

To begin with, decide which ground vehicle you want to use your new sight with.

  1. Take the vehicle for a Test Drive, then go to game settings → Main → Tank battle settings.
  2. In the heading “Use alternative sight grid”, select “Add a grid sight”.
  3. In the UserSights folder in the game directory, a folder will be created with the name of the selected vehicle and a BLK file (sight_1), which is an example of a standard sight.
  4. Without exiting the game, copy the user-made sight into the created folder with the vehicle name.
  5. Go back to the game, press Alt+F9 to update the game data and select the imported sight.

There can be an unlimited number of different sights per vehicle. This means you can create a collection in one folder of various sights to have the ability to switch between them.

Creating a user-made sight

The sight file is a block of sight element settings – crosshairs, lines, movable elements and text – which are provided as a BLK file which can be edited with a text editor.

Creating a sight example file

  1. Take the vehicle you want to create a sight for on a Test Drive, then go to game settings → Main → Tank battle settings
  2. In the heading “Use alternative sight grid”, select “Add a grid sight”
  3. In the UserSights folder in the game directory, a folder will be created with the name of the selected vehicle and a BLK file (sight_1), which is an example of a standard sight.
  4. Start editing the BLK file. You can keep the game client open and watch the results of your editing in real time, pressing Alt+F9 to apply changes.

Attention! The data file with the extension blk looks like this:

block_name {
  param_name: type = value
 
  block_name {
    param_name: type = value
  }
}
  • block_name is the name of the block, it must start with a Latin letter or underscore and consist of Latin letters, numbers or underscores.
  • param_name - the name of the parameter must start with a Latin letter or underscore and consist of Latin letters, numbers or underscores.
  • type- parameter type, must be necessarily, can be one of:
    • t - text (the value of the parameter must be enclosed in quotation marks "")
    • r is a number
    • i is an integer
    • b is a boolean value in the form of yes / no on / off true / false or 1/0
    • p2 - a range of data from 2 values ​​(p3 of three, p4 of four)

If an invalid variable type is specified, for example, instead of an integer textAlign: i = 1, you specify textAlign: i = 1,5 the game will not be able to read such a file and you will not see the changes you specified.

To edit such files it is more convenient to use different programs for editors, for example, free Visual Studio Code for which there are already extensions that are familiar with the syntax of blk files (Blk and BlkTool they can be found in the extensions panel of the program by searching for blk).

The following parameters can currently be changed in the code:

The choice for the type of the thousandth for the whole sight:

thousandth:t = “ussr”;

Possible values for ussr (1/6000), nato (1/6400), real (1/6283)

  • crosshairHorVertSize:p2=4, 2 – the size of the notches on the horizontal range-adjustment scale. The first value is the size of the notches with a denomination in thousands, the second is with no denomination (intermediate notches).
  • rangefinderProgressBarColor1:c=0, 255, 0, 64 – color of the range finder progress bar in the format RGB + alpha channel.
  • rangefinderProgressBarColor2:c=255, 255, 255, 64 – color of the range finder progress bar background.
  • rangefinderTextScale:r=0.7 – range finder text size. Does not change the size of the estimated distance output text.
  • rangefinderUseThousandth:b=yes – sets rangefinder offsets to thousands Attention: this is a new line added with 1.79, and without it the rangefinder in Custom Sights will NOT work! For old sights you'll probably have to add this line...
  • rangefinderVerticalOffset:r=15 – range finder vertical offset relative to center of screen (positive direction is up).
  • rangefinderHorizontalOffset:r=5 – range finder horizontal offset relative to center of screen (positive direction is right).

Note: The "range finder" is actually by default the green bar that takes a few seconds to fill and will output an approximate distance, affected by crew training

  • fontSizeMult:r=1 – line thickness. Large fonts may prevent certain text from rendering if too close to each other (e.g. default Panther D sight)
  • lineSizeMult:r=1 – Thickness of lines drawn using the line function.
  • drawCentralLineVert:b=yes – display vertical sight line (yes/no).
  • drawCentralLineHorz:b=yes – display horizontal sight line (yes/no).

The above two paramaters are basically the default crosshair. The horizontal line is in line with the default ballistics range indicator.

  • crosshairDistHorSizeMain:p2=0.03, 0.02 – Length of the lines along the default basllistics range indicator. These lines link up with the range indicators (on the defualt sights, 4, 8, 12, 16 etc.) The second value gets added to the first value along the major indicators (e.g. numbers 4, 8, 12, 16, 20 etc. on the default sight are extra long)
  • crosshairDistHorSizeAdditional:p2=0.005, 0.003 – Length of the default ballistics range indicator lines along the central vertical aiming axis. Parameter definitions are similar to the ones above (Length, Additional_length_for_major_lines).
  • distanceCorrectionPos:p2=-0.1, -0.05 – field offset of the entered range correction value, first number – horizontal offset (+ to right of center, - to left of center), second number – vertical offset (+ up from center, - down from center)
  • drawDistanceCorrection:b=yes – draw or don’t draw text for entered range correction. The number drawn is typically rounded up to the closest 50 meters, between 200 and the upper limit of the listed distances specified in crosshair_distances{}

Parameters for controlling the radial moving of lines, texts, circles:

  • radialCenter:p2 = 0.0, 0.0; // The point relative to which rotation occurs
  • radialAngle:r = 180.0 // The initial angular displacement from zero in degrees
  • radialMoveSpeed:r = 6.04; // Rotation speed multiplier (paired with radial stretch, allows objects to rotate at the same speed as the extended scale)
  • moveRadial:b = yes; // Angular moving resolution

Main parameters

A simple example of the thickness of notches and font size of an IT-1 sight after editing lineSizeMult:r=2.0 and fontSizeMult:r=2.0. Apart from these settings, the standard sight contains the block crosshair_distances, which determines how regularly the range correction notches will be placed.

crosshair_distances{
distance:p3=200, 0, 0
distance:p3=400, 4, 0
distance:p3=600, 0, 0
distance:p3=800, 8, 0
distance:p3=1000, 0, 0
distance:p3=1200, 12, 0
distance:p3=1400, 0, 0
distance:p3=1600, 16, 0
distance:p3=1800, 0, 0
distance:p3=2000, 20, 0
distance:p3=2200, 0, 0
distance:p3=2400, 24, 0
distance:p3=2600, 0, 0
distance:p3=2800, 28, 0
 }

crosshair_distances can be set in three ways (important as: the methods cannot be mixed):

   #distance:p2=2800, 28, where 2800 is the distance to the target at which the notch will be drawn; 28 is which text will be placed by the notch (0 means display nothing).
   #distance:p3=2800, 28, 0.01, where 0.01 is how much to increase the length of the notch from the left (-0.01 means extend it from the right).
   #distance { textPos:p2 = 0.042, 0; distance:p3 = 1000, 10, 0.01; }, where textPos is an additional offset of the notch text (textPos:p2 = 0, 0 by default).
 

distance:p3=200, 0, 0, where the first number is the range correction value for which the notch will be drawn, and the second number indicates the symbol that will display this notch (for the value 0, only a notch without a number is drawn) and the third number is the centering of the notch and its size. A notch can be made of varying length and moved toward or away from the centre of the sight. It works the same with the directional correction line.

crosshair_hor_ranges{
range:p2=-32, 32
range:p2=-28, 0
range:p2=-24, 24
range:p2=-20, 0
range:p2=-16, 16
range:p2=-12, 0
range:p2=-8, 8
range:p2=-4, 0
range:p2=4, 0
range:p2=8, 8
range:p2=12, 0
range:p2=16, 16
range:p2=20, 0
range:p2=24, 24
range:p2=28, 0
range:p2=32, 32
 }

These are the parameters of the standard sight. Apart from these elements, the sight can also contain a few more blocks that provide new options.

Shell ballistics block

The standard sight automatically draws a target reticule on the basis of the ballistic data of the selected shell type. However, with the help of this block, you can create a sight that will permanently display several lines for various types of shells, and their ballistics will correspond to the in-game values. To display these lines, you must add the ballistics block, including the required number of bullet blocks, each of which has its own settings that are responsible for drawing and placing lines. Shell ballistic data, which the game automatically recalculates into the distance between the line notches, are provided by the parameters: bulletType:t = "apcbc_tank" – ID of the ammunition type for which a line needs to be created (see the table of correspondence of shell types in the game localization). speed:r = 624.0 – initial shell speed, which can be seen in the shell’s card along with the name of the shell type.

Important! The lines are linked with ammunition loading. If the tank’s ammunition complement doesn’t have a specific shell type, then the line for that shell type will not be displayed.

Example ballistics block for the T-55A tank and three shell types, APFSD ZBM25, KS-ZBK17 and composite armor-piercing BR-412D:

ballistics {
bullet {
  bulletType:t = "apds_fs_tungsten_small_core_tank"
  speed:r = 1430.0
  drawAdditionalLines:b = no
  drawDistanceCorrection:b = yes
  distanceCorrectionPos:p2 = -0.15, -0.15
  drawUpward:b = yes // option to draw the displayed line upwards, as in the Soviet sights, for example TSh2B-41.
  distancePos:p2 = 0.03, 0.0 // line offset relative to center.
  textAlign:i = 1
  textPos:p2 = -0.012, 0.0
  textShift:r = 0.0
  crosshairDistHorSizeMain:p2 = 0.0075, 0.0075
  crosshairDistHorSizeAdditional:p2 = 0.005, 0.003
  crosshair_distances {
    distance:p3 = 200, 0, 0 // + and - notches
    distance:p3 = 400, 0, 0
    distance:p3 = 600, 0, 0
    distance:p3 = 800, 0, 0
    distance:p3 = 1000, 10, 0.01
    distance:p3 = 1200, 0, 0
    distance:p3 = 1400, 0, 0
    distance:p3 = 1600, 0, 0
    distance:p3 = 1800, 0, 0
    distance:p3 = 2000, 20, 0.01
  }
}
bullet {
  bulletType:t = "heat_fs_tank"
  speed:r = 1085.0
  drawAdditionalLines:b = no // draw notches on the central line
  drawDistanceCorrection:b = no
  distanceCorrectionPos:p2 = -0.09, -0.05
  distancePos:p2 = -0.02, 0.0 //line offset
  textPos:p2 = 0.02, 0.0
  textShift:r = 0.0 //text offset
  textAlign:i = 2 //text position relative to notches
  crosshairDistHorSizeMain:p2 = 0.0075, 0.0075
crosshairDistHorSizeAdditional:p2 = 0.005, 0.003
  crosshair_distances {
    distance:p3 = 200, 0, 0
    distance:p3 = 300, 0, 0
    distance:p3 = 400, 0, 0
    distance:p3 = 500, 5, -0.01
    distance:p3 = 600, 0, 0
    distance:p3 = 700, 0, 0
    distance:p3 = 800, 0, 0
    distance:p3 = 900, 0, 0
    distance:p3 = 1000, 10, -0.01
       distance:p3 = 1100, 0, 0
    distance:p3 = 1200, 0, 0
    distance:p3 = 1300, 0, 0
    distance:p3 = 1400, 0, 0
    distance:p3 = 1500, 15, -0.01
    distance:p3 = 1600, 0, 0
    distance:p3 = 1700, 0, 0
    distance:p3 = 1800, 0, 0
    distance:p3 = 1900, 0, 0
    distance:p3 = 2000, 20, 0
  }
}
bullet {
  bulletType:t = "apcbc_tank"
  speed:r = 887.0
  drawAdditionalLines:b = no // draw notches on the central line
  drawDistanceCorrection:b = no
  distanceCorrectionPos:p2 = -0.09, -0.05
  distancePos:p2 = -0.07, 0.0 //line offset
  textPos:p2 = 0.02, 0.0
  textShift:r = 0.0 //text offset
  textAlign:i = 2 //text position relative to notches
  crosshairDistHorSizeMain:p2 = 0.0075, 0.0075
  crosshairDistHorSizeAdditional:p2 = 0.005, 0.003
  crosshair_distances {
    distance:p3 = 200, 0, 0
    distance:p3 = 300, 0, 0
    distance:p3 = 400, 0, 0
    distance:p3 = 500, 5, -0.01
    distance:p3 = 600, 0, 0
    distance:p3 = 700, 0, 0
    distance:p3 = 800, 0, 0
    distance:p3 = 900, 0, 0
    distance:p3 = 1000, 10, -0.01
    distance:p3 = 1100, 0, 0
    distance:p3 = 1200, 0, 0
    distance:p3 = 1300, 0, 0
       distance:p3 = 1400, 0, 0
    distance:p3 = 1500, 15, -0.01
    distance:p3 = 1600, 0, 0
    distance:p3 = 1700, 0, 0
    distance:p3 = 1800, 0, 0
    distance:p3 = 1900, 0, 0
    distance:p3 = 2000, 20, 0
  }
}
 }

Parameters within bullet block:

  • bulletType:t = "apds_fs_tungsten_small_core_tank" – shell type
  • speed:r = 1430.0 – muzzle velocity

A twin machine gun line can also be set in a bullet block. To do this, enter the following parameters:

  • triggerGroup:t = "coaxial" (mandatory)
  • speed:r = 815.0[2] [3]
  • drawAdditionalLines:b = no – whether the line for this shell should be duplicated (yes/no)
  • drawDistanceCorrection:b = yes – whether to display a field in which the numerical value of the range correction will be shown (yes/no)
  • distanceCorrectionPos:p2 = -0.15, -0.15 – range correction field offset
  • distancePos:p2 = 0.03, 0.0 – line offset relative to center
  • textAlign:i = 1 – numerical marker offset on the line relative to notches (-1, 0 or 1);
  • textPos:p2 = -0.012, 0.0 – correction offset relative to notches
  • textShift:r = 0.0 – text correction offset and downsizing of line notches
  • crosshairDistHorSizeMain:p2 = 0.0075, 0.0075 – size and position of notches
  • crosshairDistHorSizeAdditional:p2 = 0.005, 0.003 – size and position of additional notches (on vertical sight axis)
  • crosshair_distances {
distance:p3 = 200, 0, 0 // range – number – notch size
distance:p3 = 400, 0, 0
distance:p3 = 600, 0, 0
distance:p3 = 800, 0, 0
distance:p3 = 1000, 10, 0.01
distance:p3 = 1200, 0, 0
distance:p3 = 1400, 0, 0
distance:p3 = 1600, 0, 0
distance:p3 = 1800, 0, 0
distance:p3 = 2000, 20, 0.01
}

ID of shell types and their localization in the game

Cannons

"apcr_tank" "Armor-piercing composite rigid shell"
"apds_tank" "Armor-piercing discarding sabot shell"
"apds_fs_long_tank" "Armor-piercing fin-stabilized discarding-sabot shell"
"apds_fs_full_body_steel_tank" "Armor-piercing fin-stabilized discarding-sabot shell"
"apds_fs_tungsten_small_core_tank" "Armor-piercing fin-stabilized discarding-sabot shell (steel))"
"apds_fs_tungsten_l10_l15_tank" "Armor-piercing fin-stabilized discarding-sabot shell"
"apbc_tank" "Armor-piercing blunt-nosed shell"
"ap_large_caliber_tank" "Armor-piercing blunt-nosed shell" (Used on the AP shell of the T34/M103)
"apc_tank" "Armor-piercing sharp-nosed shell (with armor-piercing tip))"
"aphe_tank" "Armor-piercing sharp-nosed high-explosive shell"
"aphebc_tank" "Armor-piercing blunt-nosed high-explosive shell"
"apcbc_tank" "Armor-piercing shell with armor-piercing tip and ballistic cap"
"ap_tank" "Armor-piercing sharp-nosed solid shell"
"heat_tank" "High-explosive hollow charge shell"
"heat_grenade_tank" "Anti-tank grenade"
"heat_fs_tank" "High-explosive non-rotating shell"
"hesh_tank" "Armor-piercing incendiary shell"
"he_grenade_tank" "High-explosive grenade"
"he_frag_tank" "High-explosive shell"
"he_frag_fs_tank" "High-explosive shell"
"shrapnel_tank" "Shrapnel"
"atgm_tank" "Anti-tank guided rocket"
"rocket_tank" "Unguided rocket"
"smoke_tank" "Smoke shell"

Machine guns

Machine gun Velocity Bullet type
"7_7mm_Type_97_user_machinegun" 730 ap_ball
"7_7mm_Vikkers_user_machinegun" 920 i_t_ball
"7_62mm_DT_user_machinegun" 815 ap_i_ball
"7_62mm_M37_user_machinegun" 853 ap_ball
7_62mm_M73_user_machinegun 853 ap_ball
7_62mm_M1919A4_user_machinegun 853 ap_ball
7_62mm_PKT_user_machinegun 815 ap_i_ball
7_62mm_SGMT_user_machinegun 815 ap_i_ball
7_62mm_Type74_user_machinegun 853 ap_ball
7_92mm_BESA_user_machinegun 880 ap_i_ball
7_92mm_MG3_user_machinegun 853 ap_ball
7_92mm_MG34_user_machinegun 880 ap_i_ball
7_92mm_MG42_user_machinegun 880 ap_i_ball
8mm_Breda_Mod38_user_machinegun 790 ap_i_t_ball
12_7mm_M2_HB_user_machinegun 887 ap_i_t_ball_M20
14_5mm_KPVT_user_machinegun 1000 ap_i_t_ball


Radial scales and elements (block ballistics/bullet):

  • radial:b = no // Choice of scale type
  • circleMode:b = no // Draw circles instead of lines on the scale (like on German Tzf9 sights)
  • move:b = yes // Move or not with the introduction of correction
  • radialStretch:r = 1.0; // Radial scale extension factor (If the points are too close to each other)
  • radialAngle:r = 0.0; // The initial angular displacement of the scale in degrees
  • radialRadius:p2 = 0, 0; // Radius. x - radius; y - 0 or 1, where 1 means that the radius in the thousandth

In case with the radial scale the parameter crosshairDistHorSizeMain has the following meaning:

  • x - circumference thickness
  • y - radius of a circle

In case with the radial scale the parameter crosshair_distances/distance.z means the radius of a circle.

drawUpward - changes the scale displaying to a mirror one.

For maximum sight customization, you can use the drawLines and drawTexts blocks, with the help of which you can draw elements from the cutoffs and text, indicating their coordinates:

drawLines {
 line { line:p4 = 0, -1.0, 0, -0.018; move:b = false; }
 line { line:p4 = -50, 30, -50, 40; thousandth:b = true; }
}

To draw one line, you have to enter 4 coordinates – the offset in fractions of the screen of its start and end. line { line:p4 = 0.25, -0.25, 0, -0.0; move:b = false; } – this block draws one line which begins in the upper right quarter of the screen and ends in the center of the screen. It is static and does not move when a range is entered.

For convenience when creating historical reticules, thousandth can be set to true to represent editing units in mils by indicating the coordinate offset for the start and end of the line in thousands too. When thousandth is set to false, one mil is approximately to 0.04 units

For example, line { line:p4 = -32, -32, 0, 0; thousandth:b = true; } will show a diagonal line extending 32 mils to the left:

Drawing Text:
  drawTexts {
    text {
      text:t = "X" // desired symbol
      align:i = 0 // offset relative to its indicated position
      pos:p2 = 32, 0 // coordinates of the X and Y symbol positions in fractions of the screen
      move:b = no // whether the text will move when a range is entered
      thousandth:b = yes // or in thousands
      size:r = 1.7 // text size
    }
  }
Drawing Circles:
  drawCircles {
    circle {
      segment:p2 = 0.0, 360.0; // Sector of a circle
      pos:p2 = 0.0, 90.0; // Position
      diameter:r = 3.0; // Diameter. If thousandth=yes, then in thousandths
      size:r = 2.0; // Line Thickness
      move:b = no;
      thousandth:b = yes;
    }
  }

Drawing painted figures on the basis of a quadrangle. With its help you can draw different types of figures that have 4 vertices and figures of arbitrary shape with 3 (triangle) or 2 (line) vertices.

  drawQuads {
    quad {  // Simple fixed quadrangle
      tl:p2 = -10, -10; // Top left top
      tr:p2 = 10, -10; // Top right top
      br:p2 = 10, 10; // Top right bottom
      bl:p2 = -10, 10; // Top left bottom
      thousandth:b = true;
    }
     quad {  // Object that can be moved along the radius
      tl:p2 = -10, -140;
      tr:p2 = 10, -140;
      br:p2 = 0, -96;
      bl:p2 = 0, -96;
      center:p2 = 0, -90; // The center of the figure is needed for correct rotation. By default the geometric center of a shape.
      radialCenter:p2 = 0.0, 0.0;
      radialAngle:r = 0;
      radialMoveSpeed:r = 6.04;
      moveRadial:b = yes;
      thousandth:b = true;
    }
  }

Example of implementing a historical sight reticule

Using the entire spectrum of possibilities for creating user-made sight reticules, one can create sight reticules that will be as close as possible to the historical versions.

As an example, here is the sight skin of the Italian P40 tank:

And the settings block that can be used to create this sight:

it_san_giorgio_x4 {
  crosshairHorVertSize:p2 = 0, 0
  rangefinderProgressBarColor1:c = 0, 255, 0, 64
  rangefinderProgressBarColor2:c = 255, 255, 255, 64
  rangefinderTextScale:r = 0.7
  rangefinderVerticalOffset:r = 15
  rangefinderHorizontalOffset:r = 5
  fontSizeMult:r = 1.25
  lineSizeMult:r = 1.5
  drawCentralLineVert:b = no
  drawCentralLineHorz:b = no
  crosshairDistHorSizeMain:p2 = 0.03, 0.02
  crosshairDistHorSizeAdditional:p2 = 0.005, 0.003
  distanceCorrectionPos:p2 = -0.2, -0.05
  drawDistanceCorrection:b = yes


  ballistics {
 bullet {
   bulletType:t = "apcbc_tank"
   speed:r = 624.0

   drawAdditionalLines:b = no
   drawDistanceCorrection:b = yes
   distanceCorrectionPos:p2 = -0.15, -0.15

   distancePos:p2 = 0.03, 0.0 // line offset relative to center.
   textAlign:i = 1
   textPos:p2 = -0.012, 0.0
   textShift:r = 0.0
   crosshairDistHorSizeMain:p2 = 0.0075, 0.0075
      crosshairDistHorSizeAdditional:p2 = 0.005, 0.003

   crosshair_distances {
     distance:p3 = 200, 0, 0 // + and - notches
     distance:p3 = 400, 0, 0
     distance:p3 = 600, 0, 0
     distance:p3 = 800, 0, 0
     distance:p3 = 1000, 10, 0.01
     distance:p3 = 1200, 0, 0
     distance:p3 = 1400, 0, 0
     distance:p3 = 1600, 0, 0
     distance:p3 = 1800, 0, 0
     distance:p3 = 2000, 20, 0.01
   }
  t_san_giorgio_x4 {
     crosshairHorVertSize:p2 = 0, 0
     rangefinderProgressBarColor1:c = 0, 255, 0, 64
     rangefinderProgressBarColor2:c = 255, 255, 255, 64
     rangefinderTextScale:r = 0.7
     rangefinderVerticalOffset:r = 15
     rangefinderHorizontalOffset:r = 5
     fontSizeMult:r = 1.25
     lineSizeMult:r = 1.5
     drawCentralLineVert:b = no
     drawCentralLineHorz:b = no
     crosshairDistHorSizeMain:p2 = 0.03, 0.02
     crosshairDistHorSizeAdditional:p2 = 0.005, 0.003
     distanceCorrectionPos:p2 = -0.2, -0.05
     drawDistanceCorrection:b = yes


     ballistics {
    bullet {
      bulletType:t = "apcbc_tank"
      speed:r = 624.0

      drawAdditionalLines:b = no
      drawDistanceCorrection:b = yes
      distanceCorrectionPos:p2 = -0.15, -0.15

      distancePos:p2 = 0.03, 0.0 // line offset relative to center.
      textAlign:i = 1
      textPos:p2 = -0.012, 0.0
      textShift:r = 0.0
      crosshairDistHorSizeMain:p2 = 0.0075, 0.0075
      crosshairDistHorSizeAdditional:p2 = 0.005, 0.003

   crosshair_distances {
     distance:p3 = 200, 0, 0 // + and - notches
     distance:p3 = 400, 0, 0
     distance:p3 = 600, 0, 0
     distance:p3 = 800, 0, 0
     distance:p3 = 1000, 10, 0.01
     distance:p3 = 1200, 0, 0
     distance:p3 = 1400, 0, 0
     distance:p3 = 1600, 0, 0
     distance:p3 = 1800, 0, 0
     distance:p3 = 2000, 20, 0.01
   }
 }

 bullet {
   bulletType:t = "he_frag_tank"
   speed:r = 552.0

   drawAdditionalLines:b = no // draw notches on the central line

   drawDistanceCorrection:b = no
   distanceCorrectionPos:p2 = -0.09, -0.05

   distancePos:p2 = -0.02, 0.0 //line offset
   textPos:p2 = 0.02, 0.0
   textShift:r = 0.0 //text offset
   textAlign:i = 2 //text position relative to notches
   crosshairDistHorSizeMain:p2 = 0.0075, 0.0075
      crosshairDistHorSizeAdditional:p2 = 0.005, 0.003

   crosshair_distances {
     distance:p3 = 200, 0, 0
     distance:p3 = 300, 0, 0
     distance:p3 = 400, 0, 0
     distance:p3 = 500, 5, -0.01
     distance:p3 = 600, 0, 0
     distance:p3 = 700, 0, 0
     distance:p3 = 800, 0, 0
     distance:p3 = 900, 0, 0
     distance:p3 = 1000, 10, -0.01
     distance:p3 = 1100, 0, 0
     distance:p3 = 1200, 0, 0
     distance:p3 = 1300, 0, 0
     distance:p3 = 1400, 0, 0
     distance:p3 = 1500, 15, -0.01
     distance:p3 = 1600, 0, 0
        distance:p3 = 1700, 0, 0
     distance:p3 = 1800, 0, 0
     distance:p3 = 1900, 0, 0
     distance:p3 = 2000, 20, 0
   }
 }
  }
  crosshair_hor_ranges {
 range:p2 = -60, 60
 range:p2 = -50, 0
 range:p2 = -40, 40
    range:p2 = -30, 0
 range:p2 = -20, 20
 range:p2 = 20, 20
 range:p2 = 30, 0
 range:p2 = 40, 40
 range:p2 = 50, 0
 range:p2 = 60, 60
  }

  drawLines {
   // Vertical lines
 line { line:p4 = 0, -1.0, 0, -0.018; move:b = false; }
 line { line:p4 = 0, 0.018, 0,   1.0; move:b = false; }

   // Horizontal lines
 line { line:p4 = -1.0, 0, -0.02, 0; }
 line { line:p4 = 0.02, 0,  1.0, 0; }

   //
 line { line:p4 = -0.002, 0, -0.01, 0.00; move:b = false; }
 line { line:p4 = 0.002, 0,  0.01, 0.00; move:b = false; }

 line { line:p4 = 0.0, 0.002, 0.0, 0.01; move:b = false; }
 line { line:p4 = 0.0, -0.002, 0.0, -0.01; move:b = false; }

 line { line:p4 = -30, 30, -30, 40; thousandth:b = true; }
 line { line:p4 = -40, 30, -40, 40; thousandth:b = true; }
 line { line:p4 = -50, 30, -50, 40; thousandth:b = true; }

 line { line:p4 = 30, 30, 30, 40; thousandth:b = true; }
 line { line:p4 = 40, 30, 40, 40; thousandth:b = true; }
 line { line:p4 = 50, 30, 50, 40; thousandth:b = true; }

 line { line:p4 = -30, 0, -30, 10; thousandth:b = true; }
 line { line:p4 = -40, 0, -40, 10; thousandth:b = true; }
 line { line:p4 = -50, 0, -50, 10; thousandth:b = true; }

 line { line:p4 = 30, 0, 30, 10; thousandth:b = true; }
 line { line:p4 = 40, 0, 40, 10; thousandth:b = true; }
 line { line:p4 = 50, 0, 50, 10; thousandth:b = true; }


 line { line:p4 = 20, 0, 20, 3,5; thousandth:b = true; }
 line { line:p4 = -20, 0, -20, 3,5; thousandth:b = true; }
 line { line:p4 = 60, 0, 60, 5; thousandth:b = true; }
 line { line:p4 = -60, 0, -60, 5; thousandth:b = true; }

 line { line:p4 = 70, 0, 70, 5; thousandth:b = true; }
 line { line:p4 = -70, 0, -70, 5; thousandth:b = true; }
  }
}

Upload, Download and share custom gun sights