Difference between revisions of "Fully Annotated HUD Configuration (hud.plist) File"
From Elite Wiki
Wildeblood (talk | contribs) (Page created. CORRECTIONS INVITED.) |
Cholmondely (talk | contribs) m (Tagged as Oolite scripting) |
||
| Line 883: | Line 883: | ||
// See [[https://wiki.alioth.net/index.php/HUD_Customisation_Guide]] | // See [[https://wiki.alioth.net/index.php/HUD_Customisation_Guide]] | ||
| + | |||
| + | [[Category:Oolite scripting]] | ||
Revision as of 15:20, 11 August 2025
{
// =============================================================================
// 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.
// 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]]