A practical FlightGear Nasal reference for manipulating hierarchical property trees, typed values, attributes, aliases, conditions, and command bindings.
The fastest way to install a skill directly from the registry.
npx clawhub@latest install nasal-library-props
Copy the skill folder to one of these locations
~/.openclaw/skills/ <project>/skills/ Priority: Workspace > Local > Bundled
Copy this prompt to OpenClaw to install it automatically.
Help me install nasal-library-props using Clawhub. If Clawhub is not installed, install it first (npm i -g clawhub).
Get the raw skill files in a ZIP archive.
Nasal Library Props is an Openclaw Skills reference for FlightGear developers working with the Nasal props module. It explains how props.Node wraps internal C++ property ghosts and provides safe APIs for navigating, creating, removing, copying, and inspecting hierarchical Property Tree data.
The skill also covers typed value updates, boolean and numeric operations, node aliases, permission attributes, condition evaluation, and runtime binding execution. It helps AI coding agents generate accurate Nasal scripts for aircraft systems, cockpit controls, simulation state, and FlightGear automation.
props.Node.new() for testing Nasal logic.props.Node using props.Node.new(), props.getNode(), props.globals, or a child-navigation method..getValue(), .getType(), .isInt(), and .isNumeric()..setValue(), typed setters, .adjustValue(), .increment(), .decrement(), .toggleBoolValue(), or recursive .setValues() operations.props.copy().readable, writable, archive, trace-write, userarchive, and preserve..alias() and verify identity or alias targets when required.props.condition() for one-time checks or props.compileCondition() for reusable tests.props.runBinding() using a property-tree representation of a binding..getValues(), .getPath(), .getChildren(), and the diagnostic props.dump() utility.This skill documents the FlightGear Nasal props library and assumes a working FlightGear environment with Nasal scripting and access to the simulator's Property Tree. The source document does not define a package manager, repository, or standalone CLI installer.
Load this skill into the Openclaw Skills-compatible coding-agent environment according to that host's skill registration process. In FlightGear, use the documented Nasal scripting integration for the target aircraft, module, or simulator extension. No additional dependency installation command is specified.
# No standalone CLI installation is defined for this reference skill.
# Configure it through the host Openclaw Skills registry and use it
# alongside a FlightGear Nasal runtime.
props.globals or props.getNode(path, 1) for live simulator data.props.Node.new(hash) to create isolated local trees for tests and condition definitions..toggleBoolValue() that require a specific internal type..remove(), .removeChildren(), and props.dump() carefully, especially on large global branches.The skill works with a hierarchical tree of props.Node objects. Each node has a path, name, numerical index, optional value, internal type, attributes, and zero or more child nodes.
| Data area | Representation | Purpose |
|---|---|---|
| Tree location | Absolute or relative property path | Identifies nodes such as /controls/engines/engine[0]. |
| Node identity | Name, index, path, and wrapped property ghost | Supports navigation, comparison, and structural operations. |
| Values | BOOL, INT, LONG, FLOAT, DOUBLE, STRING, VEC3D, VEC4D, or NONE |
Stores typed simulator state and supports type-aware reads and writes. |
| Hierarchies | Nasal hashes, vectors, and child nodes | Enables recursive initialization with Node.new(hash), setValues(), and getValues(). |
| Attributes | Bitmask or named flags | Controls readability, writability, archiving, tracing, user archiving, and reset preservation. |
| Aliases | Target node or target path | Redirects reads and writes to another Property Tree coordinate. |
| Conditions | Nested structural branches such as and, equals, and greater-than |
Represents logic consumed by condition() or compiled conditions. |
| Bindings | Nodes containing command data such as command, dialog-name, or script |
Represents executable FlightGear actions for runBinding(). |
No files are generated by the props library itself. Data normally exists in FlightGear's in-memory Property Tree. Nodes marked with archive can participate in engine save dumps, while userarchive stores configuration in the user's flight history file, autosave.xml. Script source files and XML inputs belong to the surrounding FlightGear project rather than this skill.
.setValue() plus explicit boolean, integer, and double setters.VEC3D and VEC4D nodes..alias(target, chainListener) and recovery using .unalias().props.copy(src, dest, copy_attributes).props.setAll(base_path, child_path, value) for multi-engine or multi-component systems.props.nodeList() and props.wrap() utilities.props.compileCondition(node_or_path) and .test().props.dump(), with caution recommended for large branches such as props.globals.Loading
Headhunter Pro is an AI-assisted, end-to-end recruitment operating system for talent mapping, candidate evaluation, outreach, hiring analytics, and post-hire support.

A verification-first CLI workflow for migrating OpenClaw memory backends to official memory-core without losing data, traceability, or rollback options.

Open YouTube in the user's Brave browser, reuse an existing YouTube tab, and verify that the homepage has loaded.

Run a secure, long-lived robot-to-cloud edge client that streams observations and executes cloud actions through Zenoh pub/sub.

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

Product Page Designer creates complete, conversion-optimized consumer electronics product pages with premium copy, structured specifications, image prompts, and implementation guidance.








































