PropertyList XML for FlightGear for Openclaw

A practical guide to authoring FlightGear PropertyList XML files with structured properties, reusable includes, aliases, expressions, tables, and conditional logic.

container32
v1.0.0
Sep 9, 2026
0
250
0

Install & Download

1. ClawHub CLI

The fastest way to install a skill directly from the registry.

npx clawhub@latest install propertylist-xml

2. Manual Installation

Copy the skill folder to one of these locations

Global
~/.openclaw/skills/
Workspace
<project>/skills/

Priority: Workspace > Local > Bundled

3. Prompt Installation

Copy this prompt to OpenClaw to install it automatically.

Help me install propertylist-xml using Clawhub. If Clawhub is not installed, install it first (npm i -g clawhub).

Prefer to download?

Get the raw skill files in a ZIP archive.

What is PropertyList XML for FlightGear?

PropertyList XML is FlightGear's structured configuration format for representing property trees, aircraft settings, controls, instruments, panels, sounds, animations, and other simulator data. This Openclaw Skills resource explains the required PropertyList structure, property types, implicit and explicit indexing, archived values, external file inclusion, aliases, and CDATA sections.

It also documents SimGear expressions and conditions, enabling developers and aircraft creators to implement mathematical formulas, interpolation tables, clipping, comparisons, boolean logic, and reusable parameterized configurations directly in XML. The guide helps maintain clean, extensible FlightGear projects while distinguishing PropertyList-based files from JSBSim and YASim XML formats.

PropertyList XML for FlightGear Use Cases

  • Create or edit FlightGear aircraft -set.xml, FDM, instrument, panel, sound, HUD, scenery, and animation configuration files.
  • Store strings, numbers, booleans, and other simulator properties in a predictable property tree.
  • Build reusable configurations by including external PropertyList files and overriding parameters at inclusion points.
  • Keep related properties synchronized with aliases that behave like symbolic links.
  • Persist user-specific settings between FlightGear sessions with the userarchive attribute.
  • Represent repeated properties as indexed nodes using implicit ordering or explicit n attributes.
  • Embed Nasal or other non-XML text safely inside CDATA sections.
  • Implement mathematical calculations such as sums, products, powers, trigonometric functions, clipping, rounding workarounds, and table interpolation.
  • Add runtime logic that compares properties, evaluates expressions, and combines conditions with and, or, and not operators.
  • Organize aircraft configurations for reuse across YASim and JSBSim flight dynamics models.

How PropertyList XML for FlightGear Works

  1. Create a well-formed XML document whose root element is <PropertyList>.
  2. Add child property nodes using tag names that represent paths in the FlightGear property tree.
  3. Assign optional type attributes such as string, float, bool, or other supported types; untyped values default to string or unspecified values and may be transparently converted.
  4. Represent repeated child names as indexed nodes, either implicitly in document order or explicitly with n="0", n="1", and subsequent indexes.
  5. Mark values with userarchive="y" when they should persist across FlightGear sessions.
  6. Extend an existing configuration with the include attribute, then override or add nested properties in the including file.
  7. Create aliases with self-closing nodes such as <bar alias="/foo"/> when two property paths must remain synchronized.
  8. Combine includes and aliases to parameterize reusable files, allowing per-aircraft or per-instrument property paths to be supplied by the caller.
  9. Wrap embedded text containing XML tokens, especially Nasal code, in a CDATA section to avoid XML entity escaping.
  10. Add <expression> trees for calculations, using operators such as <sum>, <product>, <sqrt>, <property>, <value>, <table>, or <clip>.
  11. Define <condition> trees for comparisons and boolean decisions using properties, values, expressions, and operators such as <greater-than>, <equals>, <and>, <or>, and <not>.
  12. Place each file in the appropriate FlightGear directory and remember that JSBSim and YASim configuration files use their own XML formats rather than the general PropertyList conventions.

PropertyList XML for FlightGear Setup

Setup and configuration

This skill is a technical reference rather than an installable runtime package. No additional dependency or command-line installation is required. Add it to the coding agent's skill collection, then use the documented conventions when creating or reviewing FlightGear XML files.

  1. Identify whether the target file is a PropertyList-based configuration or a separate JSBSim/YASim XML format.
  2. Start a PropertyList document with the XML declaration and <PropertyList> root element.
  3. Place shared defaults and reusable parameters in separate XML files where appropriate.
  4. Connect reusable files with the include attribute and provide local overrides beneath the included node.
  5. Use explicit property types, indexes, aliases, expressions, and conditions only where they clarify the intended property-tree behavior.
  6. Store aircraft-specific files under the relevant $FG_ROOT/Aircraft hierarchy and follow the project's established naming conventions.
  7. Test included paths, property aliases, expression operand order, ascending table inputs, and condition operands in FlightGear.

Minimal file

<?xml version='1.0' encoding='UTF-8'?>
<PropertyList>
  <example type='string'>Hello FlightGear!</example>
</PropertyList>

Project conventions

  • defaults.xml: top-level default preferences.
  • joysticks.xml: default joystick bindings, commonly included by defaults.xml.
  • keyboard.xml: default keyboard bindings, commonly included by defaults.xml.
  • Aircraft/*-set.xml: aircraft-specific settings that override defaults.
  • materials.xml, HUD files, sound files, panel files, instrument files, and model animation files: additional PropertyList-based configuration uses.

PropertyList XML for FlightGear Data Schema & Taxonomy

Document structure

Element or attribute Purpose
<PropertyList> Required root element for a PropertyList XML file.
Property tag name Defines a node in the FlightGear property tree.
type Optionally declares the property's type, such as string, float, bool, or double where supported.
n Explicit index for repeated properties. Without it, identical sibling names are indexed by appearance order.
userarchive Marks a property for persistence between FlightGear sessions; use y to enable archiving.
include Loads another PropertyList file and enables inheritance-style reuse and overrides.
alias Makes a property path reference another property so both remain synchronized.

File taxonomy

  • Core property-tree configuration: defaults.xml, joysticks.xml, keyboard.xml, and aircraft *-set.xml files.
  • Scenery and interface data: materials.xml and HUDS/**/*.xml.
  • Aircraft presentation and behavior: Aircraft/*/*-sound.xml, Panels/*-panel.xml, Instruments/*.xml, and Models/*.xml.
  • Separate simulator XML formats: JSBSim aerodynamic and engine files plus YASim aerodynamic configuration files. These are XML, but they do not follow the general PropertyList conventions.

Expression schema

Expression arguments are evaluated in the order they appear. Supported operations include absolute value, trigonometric and hyperbolic functions, logarithms, exponentiation, arithmetic, minimum and maximum, modulo, unit conversion, property, value, table, and clip. A table contains ascending <entry> elements, each with an independent <ind> input and dependent <dep> output. Inputs outside the table range use the first or last table row.

Condition schema

Conditions can compare properties, values, or expressions. Comparisons include equals, not-equals, less-than, greater-than, less-than-equals, and greater-than-equals. A <condition> behaves as an implicit AND of its children; explicit <and>, <or>, <not>, <true/>, and <false/> elements provide additional boolean structure.

PropertyList XML for FlightGear Advanced Features

  • Parameterized inheritance using nested include nodes and caller-supplied overrides.
  • Synchronized property paths through aliases, including aliases that target properties declared elsewhere in the same file or an included subtree.
  • Reusable aircraft architecture that separates basic -set.xml metadata, FDM-specific configuration, and FDM-independent settings.
  • Implicit or explicit array-like indexing for repeated property nodes.
  • Persistent settings through the userarchive attribute.
  • CDATA support for embedding Nasal code or text containing XML markup tokens.
  • Rich SimGear expression trees with arithmetic, trigonometry, logarithms, powers, unit conversion, clipping, and table-based interpolation.
  • Table extrapolation behavior that clamps out-of-range inputs to the first or last defined row.
  • Rounding workaround using floor over a value plus 0.5 when a native rounding element is unavailable.
  • Composite conditions that combine property comparisons, expressions, boolean operators, and static true or false values.
  • Clear separation between general PropertyList files and specialized JSBSim or YASim XML schemas.

SKILL.md


Loading

Related Openclaw Skills

METADATA

Github Stars: 0
forks: 0

Featured*