Capability Catalog
Direktor ships 50 first-class tools, but Unreal exposes far more than that. Instead of hand-coding a tool for every API — which would bloat the tool list and burn your AI client’s context budget — Direktor walks Unreal’s reflection registry at startup and builds a catalog of roughly 5,900 BlueprintCallable functions. You reach them through one tool, capability, in three steps.
The flow
Section titled “The flow”-
Search for what you want by keyword:
capability(action="search", query="point light intensity")→ finds "PointLightComponent.SetIntensity" -
Describe a result to get its full parameter schema:
capability(action="describe", capability_id="PointLightComponent.SetIntensity")→ { new_intensity: float, ... } -
Invoke it with arguments. The call runs on the game thread, so it’s safe:
capability(action="invoke", capability_id="PointLightComponent.SetIntensity",args={ "new_intensity": 5000 })
Use capability(action="list_categories") to browse the catalog’s roots when a search comes up empty.
Why it works this way
Section titled “Why it works this way”A typical AI client only keeps tool names in context and loads each tool’s full schema on demand. Direktor serves a clean, compact tool list and lets the catalog handle the long tail, so small-context clients don’t pay the token cost of loading hundreds of tool schemas up front.
The catalog is rebuilt from reflection every time the editor starts, so it tracks your engine version automatically. When you upgrade Unreal, the new APIs show up with no per-version maintenance on Direktor’s side.