From Bohemia Interactive Community
Jump to navigation Jump to search


The idea: 2D elements animated by bones, used for displays inside vehicles.

Main Structure:

Add class MFD to class cfgVehicles.Yourvehicle.

Subclasses of MFD you can name as you want.

 class MFD
   class MFD1 {...};
   class MFD2 {...};


with class MFD1 of the following structure:

 class MFD1
   topLeft = "HUD LH";	//Those 3 points define the displayarea. These 
   topRight = "HUD PH";	//points need to be present in model of vehicle.
   bottomLeft = "HUD LD";
   borderLeft = 0.05;	//Offsets used to finetune the actual displayarea.
   borderRight = 0.05;	//The values can vary from 0 - 1.
   borderTop = 0.02;
   borderBottom = 0.1;
   color[]={0,1,0,0.1};	//Obsolete, done over color values in class Draw,
                        //but at the moment still required.

   class Bones		//List of all bones
   class Draw		//List of all drawingmethods

Class Bones:

All bones that are used for positioning and animating of drawings.

Defined positions are relative to position the bone is binded to (by default {0,0} of display area).

Codesamples for each possible bone, with all needed values:

 class Bones
   class Fixed
     type = fixed;
     pos[] = {0.05,0.9};
   class Linear
     type = linear;
     source = fuel;
     min = 0;	            //Min value this bone can display
     max = 1;	            //Max value this bone can display
     minPos[] = {0.5,0.2};
     maxPos[] = {0.5,0.5};
   class Rotational
     type = rotational;
     source = targetDist;
     center[] = {0,0};
     min = 100;
     max = 3000;
     minAngle = -120;
     maxAngle = +120;
   class Vector
     type = vector;
     source = velocity;
     pos0[] = {0.5,Pos0Center};	         //Position of 0-degree dive line
     pos10[] = {0.5+0.9,Pos0Center+0.7}; //Position of 10 degree bank and
   };                                    //10-deg dive (to adjust scale)

   class ILS
     type = ils;
     pos0[] = {0.5,0.4};  //Position when centered
     pos3[] = {0.7,0.6};  //Position when 3-degree off in both directions
   class Horizont
     type = horizon;
     pos0[] = {0.5,0.27};	//Position of 0-degree dive line
     pos10[] = {0.5+0.9,3.4};	//Position of 10 degree bank and 10-degree
                                //dive (used to adjust scale)
     angle = 0;	                //Horizon angle to which this line
   };                           //corresponds to

Class Draw:

The class Draw is a "group", which consist of other groups or classes.

Every group can have its own alpha, color[], clipTL[], clipBR[] and condition values, which will be valid for all classes/groups inside.

Format for a point (for points[], pos[], right[] and down[] entries):

{[bone1,] position1, blending weight1[, [bone2,] position2, blending weight2]...}

entries with [] are optional.

Points directly defined after each other are linked by a line, in case you don't want to link place an empty point {} between those points.

 class Draw
   alpha = 0.8;
   color[] = {0.2,1,0.1};
   clipTL[] = {0.0,0.05};   //Defines the space in which the bone is drawn 
   clipBR[] = {1.0,0.90};   //TL = Top Left, BR = Bottom Right
   condition = "on";
   class Line
     type = line;
     points[] = {{Bone1,1},{Bone2,1}};
   class Text
     type = text;
     align = left;
     scale = 1; 		//Text size, obsolete (but still required)
     source = speed;
     sourceScale = 3.6; 	//Convert from m/s to km/h
     pos[]={SpdMove2,{-0.05,-0.03},1};   //pos[],right[],down[] define the
     right[]={SpdMove2,{0.01,-0.03},1};  //box (size) of the first letter.

Short Reference:

Available Sources:


  • velocity: Velocity vector
  • weapon: Current weapon aim vector
  • target: Vector to current target


  • altitudeAGL: Above ground level altitude (m) Multiply source by 3.28084 to get (ft)
  • altitudeASL: Above sea level altitude (m) Multiply source by 3.28084 to get (ft)
  • speed: Speed (m/s) Multiply source by 2.2369356 to get MPH. Multiply by 3.6 to get KPH Multiply by 0.0288 to get (Mach*10) (Hud wont display decimals) Multiply by 1.94384 to get Knots.
  • vspeed: Vertical speed (m/s)
  • targetDist: Distance to current target
  • rpm: Current engine rpm (0..1)
  • fuel: Fuel tank state (0..1)
  • HorizonDive: Dive angle, multiply source by 57.2958 to get degrees
  • HorizonBank:
  • Static: No source, always shows

Available Bone Types:

  • fixed: Non moving bone
  • linear: Linear moving bone
  • rotational: Rotating bone
  • vector: Vector bone
  • ils: Instrument landing system
  • horizon: Artifical horizon

Available Draw Types:

  • group: If no type is defined, type is assumed to be group
  • line: Drawing a line
  • text: Drawing text

Available Conditions:


  • on: Engine on
  • ils: Gear down
  • mgun: Current weapon is gun class
  • AAMissile: Current weapon is an air locking missile
  • ATMissile: Current weapon is a non-air locking missile
  • Bomb: Current weapon is a bomb
  • Rockets: Current weapon is an unguided missile or rocket


  • Blah