Fully Annotated HUD Configuration (hud.plist) File

From Elite Wiki
Revision as of 20:58, 15 October 2025 by Cholmondely (talk | contribs) (Included Wildeblood's comments (https://bb.oolite.space/viewtopic.php?p=302853#p302853))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

{

   // =============================================================================
   // IMPORTANT: This is a PROPERTY LIST (.plist) file in OpenStep format.
   // =============================================================================
   // Please note that this file uses OpenStep format (not JSON, XML, or other formats).
   // When editing, be careful to preserve all punctuation, especially:
   // - Commas at the end of dictionary entries (except the last one)
   // - Semicolons after key-value pairs
   // - Proper use of quotes, parentheses, and braces
   // Incorrect punctuation will cause the file to fail to load in Oolite.
   //
   // =============================================================================
   // GLOBAL HUD SETTINGS
   // =============================================================================
   // These settings control the overall behavior and appearance of the entire HUD. (The parameters that control visibility of the HUD elements are not included)
   // Changes here affect all HUD elements globally.
   
   // --- CROSSHAIR SETTINGS ---
   // Controls the appearance of the targeting crosshair
   crosshair_scale      = 32.0;    // Size multiplier for the crosshair. Higher values = larger crosshair
   crosshair_width      = 1.5;      // Line thickness of the crosshair in pixels
   crosshair_color      = "greenColor";  // Color of the crosshair. Can be named colors ("redColor", "blueColor") 
                                    // or RGBA tuples like "(0.0, 1.0, 0.0, 1.0)" for green
   
   // --- SCANNER SETTINGS ---
   // Controls the behavior and appearance of the radar scanner
   scanner_minimalistic = no;       // If YES, uses a simplified scanner display with less detail
   scanner_non_linear   = no;       // If YES, scanner zoom is non-linear (more sensitive near center)
   scanner_ultra_zoom   = no;       // If YES, enables ultra zoom mode for the scanner
   
   // --- GUI AND DISPLAY SETTINGS ---
   // General interface settings
   allow_big_gui        = no;       // If YES, allows larger GUI elements (rarely used)
   overall_alpha        = 0.75;     // Global transparency for all HUD elements (0.0 = invisible, 1.0 = opaque)
   
   // --- SPECIAL INDICATOR SETTINGS ---
   // Controls specific HUD behaviors
   cloak_indicator_on_status_light = yes;  // If YES, shows cloak status on the status light instead of separate indicator
   reticle_target_sensitive = no;          // If YES, reticle changes color when hovering over targets
   
   // =============================================================================
   // POSITION SYSTEM DOCUMENTATION
   // =============================================================================
   // POSITION PARAMETERS:
   // All positioned elements use the following coordinate system:
   //
   // x: The x-position of the dial on screen.
   // y: The y-position of the dial on screen.
   //
   // x_origin:
   // - x_origin = 1.0: x co-ordinate is relative to the RIGHT hand side of the screen
   // - x_origin = 0 or unspecified: x is relative to the MIDDLE of the screen (default)
   // - x_origin = -1.0: x co-ordinate is relative to the LEFT hand side of the screen
   //
   // y_origin:
   // - y_origin = 1.0: y co-ordinate is relative to the TOP of the screen
   // - y_origin = 0 or unspecified: y is relative to the MIDDLE of the screen (default)
   // - y_origin = -1.0: y is relative to the BOTTOM of the screen
   //
   // BEST PRACTICE: It is preferable to define HUD elements relative to the screen 
   // borders (x_origin = ±1.0, y_origin = ±1.0) rather than the center, so that HUD 
   // elements fit better on all screen aspect ratios and resolutions.
   
   // =============================================================================
   // SPECIAL PARAMETERS DOCUMENTATION
   // =============================================================================
   // SPECIAL PARAMETERS:
   // Some parameters only work with specific dials and have unique behaviors:
   //
   // align:
   // - Only works with "drawASCTarget:" selector
   // - When set to 1, right-aligns the text to the X coordinate instead of standard left alignment
   // - Other values: 0 = left alignment (default),  2 = center alignment 
   //
   // labelled:
   // - Only works with "drawEnergyGauge:" selector
   // - When set to yes, adds bank numbers to the energy banks
   // - Has no effect on other dials
   //
   // n_bars:
   // - For "drawEnergyGauge:": determines how many energy banks are drawn (default is 1)
   // - For "drawPrimedEquipment:": if set to >1 (odd numbers work better than even),
   //   also shows some previous and next primable equipment in the cycle
   // - Ignored for all other dials
   //
   // spacing:
   // - Only works with "drawMissileDisplay:" selector
   // - Determines spacing between the missile icons in the display
   // - Does nothing for other dials
   
   // =============================================================================
   // DIALS SECTION
   // =============================================================================
   // The dials array defines all individual HUD elements (gauges, indicators, displays).
   // Elements are drawn in the order they appear here - later elements appear on top.
   // Each dial is a dictionary with properties defining its appearance and behavior.
   //
   // COLOR PARAMETER USAGE:
   // Many dials support color parameters that change appearance based on values:
   // - color_low: Color for low values/ranges
   // - color_medium: Color for medium values/ranges
   // - color_high: Color for high values/ranges
   // - color_critical: Color for critical/dangerous values (temperature, altitude)
   // - color_surround: Color for the border/frame around the dial
   // - color: Base color for dials that don't use range-based coloring
   //
   // All color parameters accept standard Oolite color formats:
   // - Named colors: "greenColor", "redColor", "yellowColor", etc.
   // - RGB tuples: (1.0, 0.0, 0.0) for red
   // - RGBA tuples: (1.0, 0.0, 0.0, 0.5) for semi-transparent red
   // - Hex strings: "#FF0000" for red (less common in plist files)
   
   dials       = // these are drawn, in order, after the legends
   (
       // =============================================================================
       // TARGETING RETICLE
       // =============================================================================
       // The crosshair that appears when targeting missiles or objects
       {   // Targeting reticle
           equipment_required  = "EQ_SCANNER_SHOW_MISSILE_TARGET";  // Only show if this equipment is installed
           selector            = "drawTargetReticle:";              // Internal method that draws this element
           // reticle_scale     = 0.015625 /* 1/64 is default */    // Uncomment to override default scale
           target_rgba         = "greenColor";                     // Color for normal targeting
           target_sensitive_rgba = "redColor";                      // Color when crosshairs are over target
           wormhole_rgba       = "cyanColor";                      // Color when targeting wormholes
           // Note: Moves about on screen - no position parameters needed
       },
       
       // =============================================================================
       // WAYPOINT DISPLAY
       // =============================================================================
       // Shows navigation waypoints when advanced compass is equipped
       {   // Waypoint display
           equipment_required  = "EQ_ADVANCED_COMPASS";             // Only show with advanced compass
           selector            = "drawWaypoints:";                  // Internal drawing method
           // Note: Moves about on screen - no position parameters needed
       },
       
       // =============================================================================
       // SCANNER (RADAR)
       // =============================================================================
       // The main radar display showing contacts around the ship
       {   // scanner
           alpha       = 1.0;           // Transparency (1.0 = fully opaque)
           selector    = "drawScanner:"; // Internal method to draw the scanner
           // POSITION PARAMETERS:
           x           = 0;             // Horizontal position: 0 = center of screen
           y           = 68;            // Vertical position: 68 pixels up from bottom
           x_origin    = 0;             // Horizontal origin: 0 = center of screen
           y_origin    = -1;            // Vertical origin: -1 = bottom of screen
           height      = 64.0;          // Height of scanner in pixels
           width       = 288.0;         // Width of scanner in pixels
           rgb_color   = (1.0, 0.0, 0.0); // RGB color: (red, green, blue) = bright red
       },
       
       // =============================================================================
       // SCANNER ZOOM INDICATOR
       // =============================================================================
       // Shows the current zoom level of the scanner
       {   // scanner zoom indicator
           alpha       = 1.0;           // Fully opaque
           selector    = "drawScannerZoomIndicator:"; // Drawing method
           // POSITION PARAMETERS:
           x           = 100;           // 100 pixels right of center
           y           = 36;            // 36 pixels up from bottom
           x_origin    = 0;             // Horizontal origin: 0 = center of screen
           y_origin    = -1;            // Vertical origin: -1 = bottom of screen
       },
       
       // =============================================================================
       // STICK SENSITIVITY INDICATOR
       // =============================================================================
       // Shows current joystick/control sensitivity setting
       {   // stick sensitivity indicator
           alpha       = 1.0;           // Fully opaque
           selector    = "drawStickSensitivityIndicator:"; // Drawing method
           // POSITION PARAMETERS:
           x           = 150;           // 150 pixels right of center
           y           = 75;            // 75 pixels up from bottom
           x_origin    = 0;             // Horizontal origin: 0 = center of screen
           y_origin    = -1;            // Vertical origin: -1 = bottom of screen
           height      = 12;            // 12 pixels tall
           width       = 12;            // 12 pixels wide
       },
       
       // =============================================================================
       // COMPASS
       // =============================================================================
       // Shows direction to target/station/waypoint
       {   // compass
           alpha       = 1.0;           // Fully opaque
           selector    = "drawCompass:"; // Drawing method
           // POSITION PARAMETERS:
           x           = 132;           // 132 pixels right of center
           y           = 32;            // 32 pixels up from bottom
           x_origin    = 0;             // Horizontal origin: 0 = center of screen
           y_origin    = -1;            // Vertical origin: -1 = bottom of screen
           rgb_color   = (0.0, 0.0, 1.0); // RGB color: blue
       },
       
       // =============================================================================
       // STATION AEGIS INDICATOR
       // =============================================================================
       // Shows when within station protection range
       {   // station aegis
           alpha       = 1.0;           // Fully opaque
           selector    = "drawAegis:";   // Drawing method
           // POSITION PARAMETERS:
           x           = -132;          // 132 pixels left of center
           y           = 32;            // 32 pixels up from bottom
           x_origin    = 0;             // Horizontal origin: 0 = center of screen
           y_origin    = -1;            // Vertical origin: -1 = bottom of screen
       },
       
       // =============================================================================
       // FUEL SCOOP STATUS
       // =============================================================================
       // Shows when fuel scoop is active
       {   // fuel scoop status
           alpha       = 0.75;          // Semi-transparent (75% opaque)
           selector    = "drawScoopStatus:"; // Drawing method
           // POSITION PARAMETERS:
           x           = -132;          // 132 pixels left of center
           y           = 92;            // 92 pixels up from bottom
           x_origin    = 0;             // Horizontal origin: 0 = center of screen
           y_origin    = -1;            // Vertical origin: -1 = bottom of screen
       },
       
       // =============================================================================
       // SPEED BAR
       // =============================================================================
       // Shows current ship speed
       {   // speed bar, can draw a surround 2 units out from the dial size specified
           draw_surround   = yes;       // Draw a border around the bar (2 pixels larger than bar)
           height          = 8;         // Bar height in pixels
           selector        = "drawSpeedBar:"; // Drawing method
           width           = 80;        // Bar width in pixels
           // POSITION PARAMETERS:
           x               = 200;       // 200 pixels right of center
           y               = 95;        // 95 pixels up from bottom
           x_origin        = 0;         // Horizontal origin: 0 = center of screen
           y_origin        = -1;        // Vertical origin: -1 = bottom of screen
           // COLOR PARAMETERS:
           color_low       = "greenColor";  // Color for low speed range
           color_medium    = "yellowColor"; // Color for medium speed range
           color_high      = "redColor";    // Color for high speed range
           color_surround  = "whiteColor";  // Color for the border around the bar
       },
       
       // =============================================================================
       // ROLL BAR
       // =============================================================================
       // Shows current roll rate
       {   // roll bar, can draw a surround 2 units out from the dial size specified
           draw_surround   = yes;       // Draw border around bar
           height          = 6;         // Bar height
           selector        = "drawRollBar:"; // Drawing method
           width           = 80;        // Bar width
           // POSITION PARAMETERS:
           x               = 200;       // 200 pixels right of center
           y               = 80;        // 80 pixels up from bottom
           x_origin        = 0;         // Horizontal origin: 0 = center of screen
           y_origin        = -1;        // Vertical origin: -1 = bottom of screen
           // COLOR PARAMETERS:
           color           = "greenColor";  // Base color for the roll bar
           color_surround  = "whiteColor";  // Color for the border around the bar
       },
       
       // =============================================================================
       // PITCH BAR
       // =============================================================================
       // Shows current pitch rate
       {   // pitch bar, can draw a surround 2 units out from the dial size specified
           draw_surround   = yes;       // Draw border around bar
           height          = 6;         // Bar height
           selector        = "drawPitchBar:"; // Drawing method
           width           = 80;        // Bar width
           // POSITION PARAMETERS:
           x               = 200;       // 200 pixels right of center
           y               = 70;        // 70 pixels up from bottom
           x_origin        = 0;         // Horizontal origin: 0 = center of screen
           y_origin        = -1;        // Vertical origin: -1 = bottom of screen
           // COLOR PARAMETERS:
           color           = "greenColor";  // Base color for the pitch bar
           color_surround  = "whiteColor";  // Color for the border around the bar
       },
       
       // =============================================================================
       // YAW BAR
       // =============================================================================
       // Shows current yaw rate
       {   // yaw bar, can draw a surround 2 units out from the dial size specified
           draw_surround   = yes;       // Draw border around bar
           height          = 8;         // Bar height
           selector        = "drawYawBar:"; // Drawing method
           width           = 80;        // Bar width
           // POSITION PARAMETERS:
           x               = 200;       // 200 pixels right of center
           y               = -130;      // 130 pixels down from center
           x_origin        = 0;         // Horizontal origin: 0 = center of screen
           y_origin        = 0;         // Vertical origin: 0 = center of screen (default)
           // COLOR PARAMETERS:
           color           = "greenColor";  // Base color for the yaw bar
           color_surround  = "whiteColor";  // Color for the border around the bar
       },
       
       // =============================================================================
       // ENERGY GAUGE
       // =============================================================================
       // Shows main energy bank levels
       {   // energy gauge
           draw_surround   = yes;       // Draw border around gauge
           height          = 48;        // Gauge height
           selector        = "drawEnergyGauge:"; // Drawing method
           width           = 80;        // Gauge width
           // POSITION PARAMETERS:
           x               = 200;       // 200 pixels right of center
           y               = 35;        // 35 pixels up from bottom
           x_origin        = 0;         // Horizontal origin: 0 = center of screen
           y_origin        = -1;        // Vertical origin: -1 = bottom of screen
           // SPECIAL PARAMETERS:
           labelled        = yes;       // Add bank numbers to the energy banks (only works with this selector)
           n_bars          = 3;         // Number of energy banks to display (only works with this selector)
           // COLOR PARAMETERS:
           color_low       = "redColor";    // Color for low energy level
           color_medium    = "yellowColor"; // Color for medium energy level
           color_surround  = "whiteColor";  // Color for the border around the gauge
       },
       
       // =============================================================================
       // FORWARD SHIELD BAR
       // =============================================================================
       // Shows forward shield strength
       {   // forward shield bar, can draw a surround 2 units out from the dial size specified
           draw_surround   = yes;       // Draw border around bar
           height          = 8;         // Bar height
           selector        = "drawForwardShieldBar:"; // Drawing method
           width           = 80;        // Bar width
           // POSITION PARAMETERS:
           x               = -200;      // 200 pixels left of center
           y               = 94;        // 94 pixels up from bottom
           x_origin        = 0;         // Horizontal origin: 0 = center of screen
           y_origin        = -1;        // Vertical origin: -1 = bottom of screen
           // COLOR PARAMETERS:
           color_low       = "redColor";    // Color for low shield strength
           color_medium    = "yellowColor"; // Color for medium shield strength
           color_high      = "greenColor";  // Color for high shield strength
           color_surround  = "whiteColor";  // Color for the border around the bar
       },
       
       // =============================================================================
       // AFT SHIELD BAR
       // =============================================================================
       // Shows aft shield strength
       {   // aft shield bar, can draw a surround 2 units out from the dial size specified
           draw_surround   = yes;       // Draw border around bar
           height          = 8;         // Bar height
           selector        = "drawAftShieldBar:"; // Drawing method
           width           = 80;        // Bar width
           // POSITION PARAMETERS:
           x               = -200;      // 200 pixels left of center
           y               = 78;        // 78 pixels up from bottom
           x_origin        = 0;         // Horizontal origin: 0 = center of screen
           y_origin        = -1;        // Vertical origin: -1 = bottom of screen
           // COLOR PARAMETERS:
           color_low       = "redColor";    // Color for low shield strength
           color_medium    = "yellowColor"; // Color for medium shield strength
           color_high      = "greenColor";  // Color for high shield strength
           color_surround  = "whiteColor";  // Color for the border around the bar
       },
       
       // =============================================================================
       // SURROUND (DECORATIVE)
       // =============================================================================
       // Draws a decorative border (used here for visual grouping)
       {   // just draws a surround 2 units around the selected size
           height          = 40;        // Height of surround area
           color           = "yellowColor"; // Color of the border
           selector        = "drawSurround:"; // Drawing method
           width           = 80;        // Width of surround area
           // POSITION PARAMETERS:
           x               = -200;      // 200 pixels left of center
           y               = 46;        // 46 pixels up from bottom
           x_origin        = 0;         // Horizontal origin: 0 = center of screen
           y_origin        = -1;        // Vertical origin: -1 = bottom of screen
       },
       
       // =============================================================================
       // FUEL BAR
       // =============================================================================
       // Shows current fuel level
       {   // fuel bar
           height          = 8;         // Bar height
           selector        = "drawFuelBar:"; // Drawing method
           width           = 80;        // Bar width
           // POSITION PARAMETERS:
           x               = -200;      // 200 pixels left of center
           y               = 61;        // 61 pixels up from bottom
           x_origin        = 0;         // Horizontal origin: 0 = center of screen
           y_origin        = -1;        // Vertical origin: -1 = bottom of screen
           // COLOR PARAMETERS:
           // Special case: 'medium' is used for the bar itself, while 'high' and 'low' 
           // are used for the distance marker for the current destination system
           color_low       = "redColor";    // Color for distance marker when fuel is insufficient
           color_medium    = "greenColor";  // Color for the fuel bar itself
           color_high      = "yellowColor"; // Color for distance marker when fuel is sufficient
           color_surround  = "whiteColor";  // Color for the border around the bar (if draw_surround is enabled)
       },
       
       // =============================================================================
       // WITCHSPACE DESTINATION LABEL
       // =============================================================================
       // Shows the destination system during hyperspace
       {   // witchspace destination label
           selector        = "drawWitchspaceDestination:"; // Drawing method
           height          = 10;        // Character height
           width           = 10;        // Character width
           // POSITION PARAMETERS:
           y               = 55;        // 55 pixels up from bottom
           x               = -240;      // 240 pixels left of center
           x_origin        = 0;         // Horizontal origin: 0 = center of screen
           y_origin        = -1;        // Vertical origin: -1 = bottom of screen
           color           = (0.25,0.25,1.0,1.0); // RGBA color: blue with full opacity
       },
       
       // =============================================================================
       // CABIN TEMPERATURE BAR
       // =============================================================================
       // Shows internal cabin temperature
       {   // cabin temperature bar
           height          = 8;         // Bar height
           selector        = "drawCabinTempBar:"; // Drawing method
           width           = 80;        // Bar width
           // POSITION PARAMETERS:
           x               = -200;      // 200 pixels left of center
           y               = 51;        // 51 pixels up from bottom
           x_origin        = 0;         // Horizontal origin: 0 = center of screen
           y_origin        = -1;        // Vertical origin: -1 = bottom of screen
           // COLOR PARAMETERS:
           color_low       = "greenColor";   // Color for normal temperature range
           color_medium    = "yellowColor";  // Color for elevated temperature range
           color_high      = "orangeColor";  // Color for high temperature range
           color_critical  = "redColor";     // Color for dangerous critical temperature
           color_surround  = "whiteColor";   // Color for the border around the bar
       },
       
       // =============================================================================
       // WEAPON TEMPERATURE BAR
       // =============================================================================
       // Shows weapon system temperature
       {   // weapon temperature bar
           height          = 8;         // Bar height
           selector        = "drawWeaponTempBar:"; // Drawing method
           width           = 80;        // Bar width
           // POSITION PARAMETERS:
           x               = -200;      // 200 pixels left of center
           y               = 41;        // 41 pixels up from bottom
           x_origin        = 0;         // Horizontal origin: 0 = center of screen
           y_origin        = -1;        // Vertical origin: -1 = bottom of screen
           // Note: Weapon temperature bar doesn't support the standard color parameters
           // It uses the default temperature gradient coloring
       },
       
       // =============================================================================
       // ALTITUDE BAR
       // =============================================================================
       // Shows altitude when near planets
       {   // altitude bar
           height          = 8;         // Bar height
           selector        = "drawAltitudeBar:"; // Drawing method
           width           = 80;        // Bar width
           // POSITION PARAMETERS:
           x               = -200;      // 200 pixels left of center
           y               = 31;        // 31 pixels up from bottom
           x_origin        = 0;         // Horizontal origin: 0 = center of screen
           y_origin        = -1;        // Vertical origin: -1 = bottom of screen
           // COLOR PARAMETERS:
           color_low       = "greenColor";   // Color for safe altitude range
           color_medium    = "yellowColor";  // Color for caution altitude range
           color_high      = "orangeColor";  // Color for warning altitude range
           color_critical  = "redColor";     // Color for critical altitude (danger of crashing)
           color_surround  = "whiteColor";   // Color for the border around the bar
       },
       
       // =============================================================================
       // MISSILE DISPLAY
       // =============================================================================
       // Shows status of mounted missiles
       {   // missile display, x and y give the location, the x-spacing is given by spacing, the size defines the icon size
           height          = 12;        // Icon height
           selector        = "drawMissileDisplay:"; // Drawing method
           spacing         = 16;        // Horizontal spacing between missile icons
           width           = 12;        // Icon width
           // POSITION PARAMETERS:
           x               = -228;      // 228 pixels left of center
           y               = 16;        // 16 pixels up from bottom
           x_origin        = 0;         // Horizontal origin: 0 = center of screen
           y_origin        = -1;        // Vertical origin: -1 = bottom of screen
       },
       
       // =============================================================================
       // STATUS INDICATOR LIGHT
       // =============================================================================
       // Shows general ship status (alert/warning/caution)
       {   // status indicator light, x and y give the location, the size defines the icon size
           height          = 8;         // Light height
           selector        = "drawStatusLight:"; // Drawing method
           width           = 8;         // Light width
           // POSITION PARAMETERS:
           x               = -108;      // 108 pixels left of center
           y               = 32;        // 32 pixels up from bottom
           x_origin        = 0;         // Horizontal origin: 0 = center of screen
           y_origin        = -1;        // Vertical origin: -1 = bottom of screen
       },
       
       // =============================================================================
       // SHIP'S CLOCK
       // =============================================================================
       // Shows current game time
       {   // ship's clock, x and y give the location, the size defines the character size
           height          = 12;        // Character height
           selector        = "drawClock:"; // Drawing method
           width           = 12;        // Character width
           // POSITION PARAMETERS:
           x               = -41;       // 41 pixels left of center
           y               = 18;        // 18 pixels up from bottom
           x_origin        = 0;         // Horizontal origin: 0 = center of screen
           y_origin        = -1;        // Vertical origin: -1 = bottom of screen
       },
       
       // =============================================================================
       // PRIMED EQUIPMENT DISPLAY
       // =============================================================================
       // Shows currently activated/primed equipment
       {   // primed equipment, x and y give the location, the size defines the character size
           selector        = "drawPrimedEquipment:"; // Drawing method
           // POSITION PARAMETERS:
           y_origin        = -1;        // Vertical origin: -1 = bottom of screen
           x               = 156;       // 156 pixels right of center
           y               = -2;        // 2 pixels down from center
           x_origin        = 0;         // Horizontal origin: 0 = center of screen
           width           = 10;        // Character width
           height          = 10;        // Character height
           // SPECIAL PARAMETERS:
           n_bars          = 3;         // Shows current and adjacent primable equipment (odd numbers work better)
       },
       
       // =============================================================================
       // COMPASS BEACON/WAYPOINT ID
       // =============================================================================
       // Shows the ID of targeted beacon or waypoint
       {   // compass beacon/waypoint ID, x and y give the location, the size defines the character size
           equipment_required  = "EQ_ADVANCED_COMPASS"; // Only with advanced compass
           selector            = "drawASCTarget:"; // Drawing method
           height              = 12;        // Character height
           width               = 12;        // Character width
           // POSITION PARAMETERS:
           x                   = 144;       // 144 pixels right of center
           y                   = 4;         // 4 pixels up from bottom
           x_origin            = 0;         // Horizontal origin: 0 = center of screen
           y_origin            = -1;        // Vertical origin: -1 = bottom of screen
           // SPECIAL PARAMETERS:
           align               = 1;         // Right-align text to X coordinate (only works with this selector)
       },
       
       // =============================================================================
       // WEAPONS SYSTEMS OFFLINE TEXT
       // =============================================================================
       // Shows warning when weapons are offline
       {   // weapons systems offline text, x and y give the location, the size defines the character size
           height          = 10;        // Character height
           selector        = "drawWeaponsOfflineText:"; // Drawing method
           width           = 10;        // Character width
           // POSITION PARAMETERS:
           x               = -51;       // 51 pixels left of center
           y               = -51;       // 51 pixels down from center
           x_origin        = 0;         // Horizontal origin: 0 = center of screen
           y_origin        = 0;         // Vertical origin: 0 = center of screen (default)
           rgb_color       = (0.0, 1.0, 0.0, 1.0); // RGBA color: green with full opacity
       },
       
       // =============================================================================
       // FPS COUNTER
       // =============================================================================
       // Shows frames per second (debug/development tool)
       {   // fps counter, x and y give the location, the size defines the character size
           height          = 18;        // Character height
           selector        = "drawFPSInfoCounter:"; // Drawing method
           width           = 18;        // Character width
           // POSITION PARAMETERS:
           x               = -300;      // 300 pixels left of center
           y               = -20;       // 20 pixels down from center
           x_origin        = 0;         // Horizontal origin: 0 = center of screen
           y_origin        = 1;         // Vertical origin: 1 = top of screen
           rgb_color       = (0.0, 1.0, 0.0, 1.0); // RGBA color: green with full opacity
       },
       
       // =============================================================================
       // CUSTOM BAR (EXAMPLE)
       // =============================================================================
       // Example of a custom bar that could be added for OXP-specific purposes
       // This is not in the original file but shows how drawCustomBar would work
       /*
       {   // custom bar example
           draw_surround   = yes;       // Draw border around bar
           height          = 8;         // Bar height
           selector        = "drawCustomBar:"; // Drawing method
           width           = 80;        // Bar width
           // POSITION PARAMETERS:
           x               = 0;         // Center of screen
           y               = -150;      // 150 pixels down from center
           x_origin        = 0;         // Horizontal origin: 0 = center of screen
           y_origin        = 0;         // Vertical origin: 0 = center of screen (default)
           // COLOR PARAMETERS:
           color_low       = "blueColor";    // Color for low values
           color_medium    = "greenColor";   // Color for medium values
           color_high      = "yellowColor";  // Color for high values
           color_surround  = "whiteColor";   // Color for the border around the bar
       },
       */
   );
   
   // =============================================================================
   // LEGENDS SECTION
   // =============================================================================
   // Legends are text labels that appear with dials. They are drawn BEFORE dials,
   // so text appears behind the graphics. Each legend can be linked to a specific
   // dial using the 'with_dial' property.
   //
   // COLOR PARAMETER:
   // Legends support a 'color' property to override the default text color:
   // - color: Sets the text color for the legend
   // - Accepts standard Oolite color formats (named colors, RGB/RGBA tuples)
   
   legends     = // these are drawn, in order, before the dials
   (
       // =============================================================================
       // LEFT SIDE LEGENDS
       // =============================================================================
       // Labels for dials on the left side of the screen
       
       {
           text        = "FWD";         // Text to display: Forward shields
           align       = 1;             // Text alignment: 1 = center
           // POSITION PARAMETERS:
           x           = -245;          // 245 pixels left of center
           y           = 86;            // 86 pixels up from bottom
           x_origin    = 0;             // Horizontal origin: 0 = center of screen
           y_origin    = -1;            // Vertical origin: -1 = bottom of screen
           height      = 12;            // Font height
           width       = 12;            // Font width
           // COLOR PARAMETER:
           color       = "cyanColor";   // Text color for this legend
           with_dial   = "drawForwardShieldBar:"; // Only show if this dial is visible
       },
       {   
           text        = "AFT";         // Text to display: Aft shields
           align       = 1;             // Center alignment
           // POSITION PARAMETERS:
           x           = -245;          // 245 pixels left of center
           y           = 70;            // 70 pixels up from bottom
           x_origin    = 0;             // Horizontal origin: 0 = center of screen
           y_origin    = -1;            // Vertical origin: -1 = bottom of screen
           height      = 12;            // Font height
           width       = 12;            // Font width
           // COLOR PARAMETER:
           color       = "cyanColor";   // Text color for this legend
           with_dial   = "drawAftShieldBar:"; // Link to aft shield bar
       },
       {
           text        = "FUEL";        // Text to display: Fuel level
           align       = 1;             // Center alignment
           // POSITION PARAMETERS:
           x           = -245;          // 245 pixels left of center
           y           = 55;            // 55 pixels up from bottom
           x_origin    = 0;             // Horizontal origin: 0 = center of screen
           y_origin    = -1;            // Vertical origin: -1 = bottom of screen
           height      = 10;            // Font height
           width       = 10;            // Font width
           // COLOR PARAMETER:
           color       = "orangeColor"; // Text color for this legend
           with_dial   = "drawFuelBar:"; // Link to fuel bar
       },
       {
           text        = "CT";          // Text to display: Cabin Temperature
           align       = 1;             // Center alignment
           // POSITION PARAMETERS:
           x           = -245;          // 245 pixels left of center
           y           = 45;            // 45 pixels up from bottom
           x_origin    = 0;             // Horizontal origin: 0 = center of screen
           y_origin    = -1;            // Vertical origin: -1 = bottom of screen
           height      = 10;            // Font height
           width       = 10;            // Font width
           // COLOR PARAMETER:
           color       = "yellowColor"; // Text color for this legend
           with_dial   = "drawCabinTempBar:"; // Link to cabin temp bar
       },
       {
           text        = "LT";          // Text to display: Laser Temperature
           align       = 1;             // Center alignment
           // POSITION PARAMETERS:
           x           = -245;          // 245 pixels left of center
           y           = 34;            // 34 pixels up from bottom
           x_origin    = 0;             // Horizontal origin: 0 = center of screen
           y_origin    = -1;            // Vertical origin: -1 = bottom of screen
           height      = 10;            // Font height
           width       = 10;            // Font width
           // COLOR PARAMETER:
           color       = "yellowColor"; // Text color for this legend
           with_dial   = "drawWeaponTempBar:"; // Link to weapon temp bar
       },
       {
           text        = "ALT";         // Text to display: Altitude
           align       = 1;             // Center alignment
           // POSITION PARAMETERS:
           x           = -245;          // 245 pixels left of center
           y           = 24;            // 24 pixels up from bottom
           x_origin    = 0;             // Horizontal origin: 0 = center of screen
           y_origin    = -1;            // Vertical origin: -1 = bottom of screen
           height      = 10;            // Font height
           width       = 10;            // Font width
           // COLOR PARAMETER:
           color       = "greenColor";  // Text color for this legend
           with_dial   = "drawAltitudeBar:"; // Link to altitude bar
       },
       {
           text        = "MISS";        // Text to display: Missiles
           align       = 1;             // Center alignment
           // POSITION PARAMETERS:
           x           = -245;          // 245 pixels left of center
           y           = 3;             // 3 pixels up from bottom
           x_origin    = 0;             // Horizontal origin: 0 = center of screen
           y_origin    = -1;            // Vertical origin: -1 = bottom of screen
           height      = 14;            // Font height
           width       = 14;            // Font width
           // COLOR PARAMETER:
           color       = "redColor";    // Text color for this legend
           with_dial   = "drawMissileDisplay:"; // Link to missile display
       },
       
       // =============================================================================
       // RIGHT SIDE LEGENDS
       // =============================================================================
       // Labels for dials on the right side of the screen
       
       {
           text        = "SPD";         // Text to display: Speed
           // POSITION PARAMETERS:
           x           = 242;           // 242 pixels right of center
           y           = 86;            // 86 pixels up from bottom
           x_origin    = 0;             // Horizontal origin: 0 = center of screen
           y_origin    = -1;            // Vertical origin: -1 = bottom of screen
           height      = 14;            // Font height
           width       = 14;            // Font width
           // COLOR PARAMETER:
           color       = "whiteColor";  // Text color for this legend
           with_dial   = "drawSpeedBar:"; // Link to speed bar
       },
       {
           text        = "ROLL";        // Text to display: Roll rate
           // POSITION PARAMETERS:
           x           = 242;           // 242 pixels right of center
           y           = 72;            // 72 pixels up from bottom
           x_origin    = 0;             // Horizontal origin: 0 = center of screen
           y_origin    = -1;            // Vertical origin: -1 = bottom of screen
           height      = 12;            // Font height
           width       = 12;            // Font width
           // COLOR PARAMETER:
           color       = "whiteColor";  // Text color for this legend
           with_dial   = "drawRollBar:"; // Link to roll bar
       },
       {   // yaw bar legend
           text        = "YAW";         // Text to display: Yaw rate
           // POSITION PARAMETERS:
           x           = 242;           // 242 pixels right of center
           y           = -138;          // 138 pixels down from center
           x_origin    = 0;             // Horizontal origin: 0 = center of screen
           y_origin    = 0;             // Vertical origin: 0 = center of screen (default)
           height      = 12;            // Font height
           width       = 12;            // Font width
           // COLOR PARAMETER:
           color       = "whiteColor";  // Text color for this legend
           with_dial   = "drawYawBar:"; // Link to yaw bar
       },
       {
           text        = "PITCH";       // Text to display: Pitch rate
           // POSITION PARAMETERS:
           x           = 242;           // 242 pixels right of center
           y           = 62;            // 62 pixels up from bottom
           x_origin    = 0;             // Horizontal origin: 0 = center of screen
           y_origin    = -1;            // Vertical origin: -1 = bottom of screen
           height      = 12;            // Font height
           width       = 12;            // Font width
           // COLOR PARAMETER:
           color       = "whiteColor";  // Text color for this legend
           with_dial   = "drawPitchBar:"; // Link to pitch bar
       }
   );
   
   // =============================================================================
   // MULTI-FUNCTION DISPLAYS (MFDs)
   // =============================================================================
   // MFDs are customizable panels that can show various information like cargo,
   // manifest, map, etc. Players can cycle through different MFD modes in-game.
   // You can define up to 12 MFDs. They are typically positioned on the sides
   // of the screen to avoid interfering with the main HUD elements.
   //
   // COLOR PARAMETER:
   // MFDs support a 'color' property to change from the default green:
   // - color: Sets the color of the MFD display elements
   // - Accepts standard Oolite color formats (named colors, RGB/RGBA tuples)
   
   multi_function_displays = // can have 1 to 12 multi function displays
   (
       {
           width = 198;                // Panel width in pixels
           height = 132;               // Panel height in pixels
           // POSITION PARAMETERS:
           x = -156;                   // 156 pixels left of center
           y = -72;                    // 72 pixels down from center
           x_origin = 0;               // Horizontal origin: 0 = center of screen
           y_origin = 1;               // Vertical origin: 1 = top of screen
           // COLOR PARAMETER:
           color = "cyanColor";         // Color for MFD display elements (default is green)
       },
       {
           width = 198;                // Panel width in pixels
           height = 132;               // Panel height in pixels
           // POSITION PARAMETERS:
           x = 156;                    // 156 pixels right of center
           y = -72;                    // 72 pixels down from center
           x_origin = 0;               // Horizontal origin: 0 = center of screen
           y_origin = 1;               // Vertical origin: 1 = top of screen
           // COLOR PARAMETER:
           color = "cyanColor";         // Color for MFD display elements (default is green)
       }
   );
   
   // =============================================================================
   // MESSAGE GUI
   // =============================================================================
   // Controls the display of in-game messages (mission messages, alerts,
   // status updates, etc.). This is the main text display area for communications.
   
   message_gui = {
       width = 252;                    // Panel width in pixels
       height = 140;                   // Panel height in pixels
       // POSITION PARAMETERS:
       x = 128;                       // 128 pixels right of center
       y = -60;                       // 60 pixels down from center
       x_origin = 0;                   // Horizontal origin: 0 = center of screen
       y_origin = 0;                   // Vertical origin: 0 = center of screen (default)
       row_height = 14;                // Height of each message line in pixels
       permanent = no;                 // If NO, panel hides when no messages
       background_automatic = yes;      // If YES, background auto-hides when no messages
       // default background transparent
       background_rgba = "0.0 0.05 0.45 0.0"; // Background color (RGBA): dark blue, fully transparent
       text_color = "yellowColor";     // Default text color for messages
       text_comms_color = "greenColor"; // Text color for communications messages
   };
   
   // =============================================================================
   // COMMUNICATIONS LOG GUI
   // =============================================================================
   // Shows the history of communications (radio chatter, station messages,
   // comms log, etc.). Typically positioned opposite the message GUI.
   
   comm_log_gui = {
       alpha = "0.75";                 // Transparency: can be number or string
       width = 216;                    // Panel width in pixels
       height = 132;                   // Panel height in pixels
       // POSITION PARAMETERS:
       x = -156;                      // 156 pixels left of center
       y = -68;                       // 68 pixels down from center
       x_origin = 0;                   // Horizontal origin: 0 = center of screen
       y_origin = 0;                   // Vertical origin: 0 = center of screen (default)
       row_height = 12;                // Height of each log line in pixels
       permanent = no;                 // If NO, panel hides when inactive
       automatic = yes;                // If YES, auto-hides when no communications
       background_rgba = "0.0 0.05 0.45 0.5"; // Background color: dark blue, semi-transparent
   };

}

// See [[1]]