---
title: BehaviorTreeResource
framework: realitykit
role: symbol
role_heading: Class
path: realitykit/behaviortreeresource
---

# BehaviorTreeResource

An immutable representation of a behavior tree.

## Declaration

```swift
class BehaviorTreeResource
```

## Overview

Overview A BehaviorTreeResource can be produced by compiling a tree definition. Once compiled, assign it to an entity via BehaviorTreeComponent to begin driving behaviors: let treeResource1 = try BehaviorTreeResource(definition: Data(behaviorTreeDefinition1.utf8)) let treeResource2 = try BehaviorTreeResource(definition: Data(behaviorTreeDefinition2.utf8)) let treeResources: [String : BehaviorTreeResource] = [“tree1” : treeResource1, “tree2” : treeResource2] entity.components.set(BehaviorTreeComponent(behaviorTree: resource, availableBehaviorTrees: treeResources)) Parameters The tree exposes a set of named parameters that control its behavior at runtime, such as movement speed. Read the available parameters via parameterNames. To set values at runtime, use the entity’s parameter binding: entity.parameters[“MoveSpeed”] = BindableValue(Float(1.0))

## Topics

### Creating a behavior tree

- [init(definition:)](realitykit/behaviortreeresource/init(definition:).md)

### Validating a definition

- [validate(definition:)](realitykit/behaviortreeresource/validate(definition:).md)

### Accessing parameters

- [parameterNames](realitykit/behaviortreeresource/parameternames.md)

## Relationships

### Conforms To

- [Resource](realitykit/resource.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Behavior trees

- [BehaviorTreeComponent](realitykit/behaviortreecomponent.md)
- [BehaviorTreeAction](realitykit/behaviortreeaction.md)
- [BehaviorTreeActionHandler](realitykit/behaviortreeactionhandler.md)
- [ActionResult](realitykit/actionresult.md)
