Nasal Library Props for Openclaw

A practical FlightGear Nasal reference for manipulating hierarchical property trees, typed values, attributes, aliases, conditions, and command bindings.

container32
v1.0.0
Sep 9, 2026
0
62
0

Install & Download

1. ClawHub CLI

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

npx clawhub@latest install nasal-library-props

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 nasal-library-props 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 Nasal Library Props?

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.

Nasal Library Props Use Cases

  • Build or update FlightGear aircraft systems that read and write hierarchical Property Tree values.
  • Navigate relative and absolute property paths, including indexed child nodes.
  • Create isolated mock trees with props.Node.new() for testing Nasal logic.
  • Apply typed updates to booleans, integers, floating-point values, strings, and vector properties.
  • Manage multi-element systems such as engines, fuel tanks, instruments, and controls.
  • Configure readable, writable, archived, preserved, and trace-enabled node attributes.
  • Create aliases that expose existing aircraft properties through virtual nodes.
  • Copy property hierarchies, dump tree structures, or update matching indexed nodes in bulk.
  • Evaluate FlightGear condition trees and execute command or Nasal bindings programmatically.

How Nasal Library Props Works

  1. Instantiate or obtain a props.Node using props.Node.new(), props.getNode(), props.globals, or a child-navigation method.
  2. Resolve the desired location with relative paths, indexed children, parent references, names, indexes, and existence-aware creation flags.
  3. Inspect the node's value and type using methods such as .getValue(), .getType(), .isInt(), and .isNumeric().
  4. Mutate data with .setValue(), typed setters, .adjustValue(), .increment(), .decrement(), .toggleBoolValue(), or recursive .setValues() operations.
  5. Modify tree structure by adding, removing, or clearing child nodes, or duplicate hierarchies with props.copy().
  6. Apply access and engine-processing flags such as readable, writable, archive, trace-write, userarchive, and preserve.
  7. Connect virtual nodes to existing data with .alias() and verify identity or alias targets when required.
  8. Evaluate conditions with props.condition() for one-time checks or props.compileCondition() for reusable tests.
  9. Trigger FlightGear actions through props.runBinding() using a property-tree representation of a binding.
  10. Inspect or export resulting data with .getValues(), .getPath(), .getChildren(), and the diagnostic props.dump() utility.

Nasal Library Props Setup

Requirements

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.

Configuration

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.

First implementation steps

  1. Confirm the script executes inside FlightGear's Nasal runtime.
  2. Use props.globals or props.getNode(path, 1) for live simulator data.
  3. Use props.Node.new(hash) to create isolated local trees for tests and condition definitions.
  4. Initialize node types before operations such as .toggleBoolValue() that require a specific internal type.
  5. Test destructive operations such as .remove(), .removeChildren(), and props.dump() carefully, especially on large global branches.

Nasal Library Props Data Schema & Taxonomy

Property Tree model

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().

Files and persistence

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.

Nasal Library Props Advanced Features

  • Type-aware conversion through .setValue() plus explicit boolean, integer, and double setters.
  • Vector creation and updates using three- or four-element numeric vectors for VEC3D and VEC4D nodes.
  • Structural mutation with indexed child creation, configurable minimum indexes, append behavior, and bulk child creation.
  • Alias chains with optional listener chaining through .alias(target, chainListener) and recovery using .unalias().
  • Attribute bitmask management for combining multiple node permissions and processing flags.
  • Recursive hierarchy copying with optional attribute duplication through props.copy(src, dest, copy_attributes).
  • Bulk indexed updates with props.setAll(base_path, child_path, value) for multi-engine or multi-component systems.
  • Normalization of strings, hashes, ghosts, functions, and nodes through props.nodeList() and props.wrap() utilities.
  • Reusable compiled condition ghosts through props.compileCondition(node_or_path) and .test().
  • Programmatic execution of UI and Nasal command bindings with optional module context.
  • Diagnostic tree inspection with props.dump(), with caution recommended for large branches such as props.globals.
  • Openclaw Skills-friendly guidance that helps coding agents distinguish local mock trees from live FlightGear global state.

SKILL.md


Loading

Related Openclaw Skills

METADATA

Github Stars: 0
forks: 0

Featured*