> ## Documentation Index
> Fetch the complete documentation index at: https://docs.inworld.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Inworld Controller

[Overview](./overview) > Inworld Controller

**Class:** `InworldController` | **Inherits from:** `SingletonBehavior<InworldController>`

The singleton class of the controller. It's the primitive handler that manages all framework modules and their initialization process. The InworldController coordinates the initialization of various modules including LLM, TTS, STT, VAD, Safety, AEC, Text Embedder, and Knowledge modules.

## Properties

* [IsDebugMode](#isdebugmode)
* [LLM](#llm)
* [TTS](#tts)
* [STT](#stt)
* [AEC](#aec)
* [VAD](#vad)
* [TextEmbedder](#textembedder)
* [Safety](#safety)
* [Knowledge](#knowledge)
* [Audio](#audio)

## Methods

* [InitializeAsync](#initializeasync)

## Events

* [OnProcessInitialized](#onprocessinitialized)
* [OnFrameworkInitialized](#onframeworkinitialized)

## Reference

### IsDebugMode

Set/Get DebugMode. Controls verbose logging throughout the framework.

#### Returns

**Type:** `bool`

***

Below are all the modules we currently support. They are stored as static fields after initialization.
They are required to be added manually in the scene, where the InworldController Component is attached.

<img src="https://mintcdn.com/inworldai/GzK0EwIb2T2yQTle/Unity/runtime/runtime-reference/images/InworldController_SceneRef.png?fit=max&auto=format&n=GzK0EwIb2T2yQTle&q=85&s=301d47e9a253ef301e4161b5f4b9a59e" alt="Manually Added Reference" width="599" height="715" data-path="Unity/runtime/runtime-reference/images/InworldController_SceneRef.png" />

The modules referenced need to be created alongside the controller. It's usually helpful to organize them in one Prefab and modify it based on your needs.

<img src="https://mintcdn.com/inworldai/GzK0EwIb2T2yQTle/Unity/runtime/runtime-reference/images/InworldController_Prefab.png?fit=max&auto=format&n=GzK0EwIb2T2yQTle&q=85&s=9c16c70d57402cd35b4a36c60f1dd384" alt="Module Prefabs" width="481" height="218" data-path="Unity/runtime/runtime-reference/images/InworldController_Prefab.png" />

### LLM

Get the [LLM Module](./InworldFrameworkModule/InworldLLMModule).

#### Returns

**Type:** `InworldLLMModule`

***

### TTS

Get the [TTS Module](./InworldFrameworkModule/InworldTTSModule).

#### Returns

**Type:** `InworldTTSModule`

***

### STT

Get the [STT Module](./InworldFrameworkModule/InworldSTTModule).

#### Returns

**Type:** `InworldSTTModule`

***

### AEC

Get the [AEC Module](./InworldFrameworkModule/InworldAECModule).

#### Returns

**Type:** `InworldAECModule`

***

### VAD

Get the [VAD Module](./InworldFrameworkModule/InworldVADModule).

#### Returns

**Type:** `InworldVADModule`

***

### TextEmbedder

Get the [Text Embedder Module](./InworldFrameworkModule/TextEmbedderModule).

#### Returns

**Type:** `TextEmbedderModule`

***

### Safety

Get the [Safety Module](./InworldFrameworkModule/InworldSafetyModule).
This module should be initialized after text embedder initialize.

#### Returns

**Type:** `InworldSafetyModule`

***

### Knowledge

Get the [Knowledge Module](./InworldFrameworkModule/KnowledgeModule).
This module should be initialized after text embedder initialize.

#### Returns

**Type:** `KnowledgeModule`

***

### Audio

Gets the [InworldAudioManager](./InworldAudioModule/InworldAudioManager) component responsible for audio input, processing, and output.
Automatically finds and caches the audio manager in the scene if not already set.
Handles microphone capture, voice detection, and audio streaming to the Inworld service.

#### Returns

**Type:** `InworldAudioManager`

***

### InitializeAsync

Asynchronously initializes all framework modules and establishes connections to required services.
Validates the API key, builds telemetry configuration, and sequentially initializes each module group.
This method should be called before using any Inworld functionality.

#### Returns

**Type:** `void`

***

### OnProcessInitialized

Event triggered when a loading process phase is completed during initialization.

#### Parameters

| Parameter    | Type  | Description                              |
| ------------ | ----- | ---------------------------------------- |
| processIndex | `int` | The index of the completed process phase |

***

### OnFrameworkInitialized

Event triggered when all framework modules have been successfully initialized.

#### Parameters

None

***
