LogoAwesome Skills
  • Search
  • Category
  • Tag
  • Blog
LogoAwesome Skills
LogoAwesome Skills

Discover Open-Source Agent Skills for AI Coding Assistants

Product

  • Search
  • Category
  • Tag
  • Blog

Resources

  • Claude Skill Docs
  • Antigravity Skills Docs

Tools

  • Claude Code
  • OpenCode
  • Cursor
  • Codex
  • Antigravity

Company

  • Privacy Policy
  • Terms of Service
  • Sitemap

©2026 Awesome Skills. All rights reserved.

Privacy PolicyTerms
Back to Skills

msw-behaviourtree

Authors MSW `.behaviourtree` files end-to-end and maintains the project-specific authoring spec (`.behaviourDocs/bt-spec.md`). Scans every `.codeblock` whose paired `.mlua` extends `ActionNode`/`DecoratorNode` to build a compact catalog of custom action/decorator UUIDs, propertyKey names, and version-stamped MODNativeType strings. Then generates the full tree: RootNode → Nodes graph, Blackboard variables, nodeProperties wiring, and self-validates parent/child consistency. Triggers: 'create behav

30stars2forksUpdated 6/29/2026
Developer Tools#msw#lua#behaviour-tree#code-generation#game-development

Security Assessment

Low Risk(70/100)

Detected risks:

Secret Exposure([references/node-catalog.md] Token=)
Security Score70/100

About msw-behaviourtree

Msw-behaviourtree authors MSW .behaviourtree files end to end and maintains the project-specific authoring spec at .behaviourDocs/bt-spec.md. It scans every .codeblock whose paired .mlua extends ActionNode or DecoratorNode to build a compact catalog of custom action and decorator UUIDs, propertyKey names, and version-stamped MODNativeType strings, then generates the full tree, including the RootNode and Nodes graph, Blackboard variables, and nodeProperties wiring, and self-validates parent and child consistency. It triggers on requests like "create behaviourtree", "new BT", "build BT spec", or their Korean equivalents.

The execution order starts by building or refreshing bt-spec.md, the source of truth for every project-specific data point, using the skill's local scripts/build-spec.cjs run through Node.js. The script accepts --projectRoot, --outputPath, and --coreVersion flags, reads CoreVersion from Environment/config when not supplied, and throws if neither the config nor the flag is present. UUIDs in the spec come from real .codeblock files and are never invented, and @HideFromInspector properties are filtered out. After rebuilding, the freshly written spec is read alongside reference skeletons (minimal and full), a node catalog, and any existing .behaviourtree files to mirror conventions, with {CORE_VERSION} placeholders replaced everywhere including inside MOD.Core.* type strings.

Subsequent steps collect input from the user (tree name, save path, tree shape, custom nodes, Blackboard variables, and node-property mappings), enforce a mandatory check that every referenced custom node appears in the spec, and mint UUIDs via node:crypto.randomUUID for the file and for each node without reusing the file UUID as a nodeId. The skill resolves each definitionId by node category and btNodeType (composites use btNodeType 1, custom actions 0, custom decorators 2), builds the Blackboard by copying Type.type strings and ObjectValue shapes verbatim from the spec with exact version tags, and resolves node property values from the paired .mlua and the spec's type map. Fixed authoring rules, skeletons, and validation checklists live in the skill's references rather than in the generated spec.

FAQ

What is bt-spec.md and when should I rebuild it?

bt-spec.md is the project-specific authoring spec and the source of truth for each custom node's definitionId, btNodeType, property names, and version-tagged type strings. Rebuild it the first time you work on BT in a project, after any change to a BT codeblock or its .mlua properties, or after a CoreVersion bump, since the serialized type strings are version-tagged.

How do I run the spec builder and what does it need?

Run node "scripts/build-spec.cjs" --projectRoot "<MSW project root>"; --projectRoot can be omitted if you are already in the project root. It requires Node.js on PATH with no other dependencies, and it throws if Environment/config is absent and --coreVersion is not passed, because there is no fallback default.

Where do custom node UUIDs come from?

Custom action and decorator UUIDs come only from bt-spec.md, which reads them from real .codeblock files in the project. The skill never invents a UUID, and every custom node a user mentions must appear in section 2 or 3 of the spec or it stops and asks.

How are btNodeType values assigned?

Built-in composites such as SequenceNode and SelectorNode use btNodeType 1 with the definitionId equal to the node name, custom action nodes use btNodeType 0 with the definitionId from spec section 2, and custom decorator nodes use btNodeType 2 with the definitionId from spec section 3.

Why does the CoreVersion matter for the Blackboard?

Each Blackboard variable's Type.type string contains a version-tagged substring (Version=<CoreVersion>) that must match exactly, because a typo silently breaks deserialization. Type.type strings and ObjectValue shapes are copied verbatim from the spec, and {CORE_VERSION} placeholders are replaced everywhere including inside MOD.Core.* type strings.

All Files

5 files
references/node-catalog.md11.0 KB
View
scripts/build-spec.cjs11.8 KB
View
references/skeleton-full.json3.7 KB
View
SKILL.md21.5 KB
View
references/skeleton-minimal.json0.8 KB
View

Install msw-behaviourtree

Download and extract the skill files to your .claude/skills/ directory.

Quick Setup:

  1. Copy the skill folder to .claude/skills/
  2. Claude will automatically detect and use the skill

Repository

msw-git/msw-ai-coding-plugins-official

Related Skills

tigris-security-access-control

3

rebuttal-writing

362

building-blocks

189

docs-search

189