# Scene Character Nodes Everything about characters in the scene: fetch them (by name or player status), create and persist new ones, activate/deactivate them for the current scene, and read or write their attributes, details and descriptions. _18 nodes._ | Node | Registry path | | --- | --- | | [Activate Character](#activate-character) | `scene/ActivateCharacter` | | [Deactivate Character](#deactivate-character) | `scene/DeactivateCharacter` | | [Get Character](#get-character) | `scene/GetCharacter` | | [Get Character Attribute](#get-character-attribute) | `scene/GetCharacterAttribute` | | [Get Character Description](#get-character-description) | `scene/GetCharacterDescription` | | [Get Character Detail](#get-character-detail) | `scene/GetCharacterDetail` | | [Get Player Character](#get-player-character) | `scene/GetPlayerCharacter` | | [Is Active Character](#is-active-character) | `scene/IsActiveCharacter` | | [Is Player Character](#is-player-character) | `scene/IsPlayerCharacter` | | [List Characters](#list-characters) | `scene/ListCharacters` | | [Make Character](#make-character) | `scene/MakeCharacter` | | [Remove All Characters](#remove-all-characters) | `scene/RemoveAllCharacters` | | [Remove Character](#remove-character) | `scene/RemoveCharacter` | | [Set Character Attribute](#set-character-attribute) | `scene/SetCharacterAttribute` | | [Set Character Description](#set-character-description) | `scene/SetCharacterDescription` | | [Set Character Detail](#set-character-detail) | `scene/SetCharacterDetail` | | [Unpack Character](#unpack-character) | `scene/UnpackCharacter` | | [Update Character Data](#update-character-data) | `scene/UpdateCharacterData` | ## Activate Character `scene/ActivateCharacter` Activate a character **Inputs** | Input | Type | Description | | --- | --- | --- | | `character` | `character` | The character to activate | **Outputs** | Output | Type | Description | | --- | --- | --- | | `character` | `character` | The activated character | ## Deactivate Character `scene/DeactivateCharacter` Deactivate a character **Inputs** | Input | Type | Description | | --- | --- | --- | | `character` | `character` | The character to deactivate | **Outputs** | Output | Type | Description | | --- | --- | --- | | `character` | `character` | The deactivated character | ## Get Character `scene/GetCharacter` Returns a character object from the scene by name **Inputs** | Input | Type | Description | | --- | --- | --- | | `character_name` | `str` | The name of the character | **Outputs** | Output | Type | Description | | --- | --- | --- | | `character` | `character` | The character object | **Properties** | Property | Type | Default | Description | | --- | --- | --- | --- | | `partial` | `bool` | `False` | Whether to match on partial name | ## Get Character Attribute `scene/GetCharacterAttribute` Get a base attribute from a character **Inputs** | Input | Type | Description | | --- | --- | --- | | `character` | `character` | The character object | | `name` | `str` | (optional) The name of the attribute | **Outputs** | Output | Type | Description | | --- | --- | --- | | `character` | `character` | The character object, passed through | | `name` | `str` | The attribute name, passed through | | `value` | `str` | The attribute value (None if the attribute does not exist) | | `context_id` | `context_id` | The context ID of the attribute (None if the attribute does not exist) | **Properties** | Property | Type | Default | Description | | --- | --- | --- | --- | | `name` | `str` | `""` | The name of the attribute | ## Get Character Description `scene/GetCharacterDescription` Get the description of a character **Inputs** | Input | Type | Description | | --- | --- | --- | | `character` | `character` | | **Outputs** | Output | Type | Description | | --- | --- | --- | | `character` | `character` | | | `description` | `str` | | ## Get Character Detail `scene/GetCharacterDetail` Get a detail from a character **Inputs** | Input | Type | Description | | --- | --- | --- | | `character` | `character` | The character object | | `name` | `str` | (optional) The name of the detail | **Outputs** | Output | Type | Description | | --- | --- | --- | | `character` | `character` | The character object, passed through | | `name` | `str` | The detail name, passed through | | `detail` | `str` | The detail value (None if the detail does not exist) | | `context_id` | `context_id` | The context ID of the detail (None if the detail does not exist) | **Properties** | Property | Type | Default | Description | | --- | --- | --- | --- | | `name` | `str` | `""` | name | | `detail` | `str` | `""` | The name of the detail | ## Get Player Character `scene/GetPlayerCharacter` Get the main player character from the scene **Outputs** | Output | Type | Description | | --- | --- | --- | | `character` | `character` | The player character | ## Is Active Character `scene/IsActiveCharacter` Returns whether a character is active **Inputs** | Input | Type | Description | | --- | --- | --- | | `character` | `character` | | **Outputs** | Output | Type | Description | | --- | --- | --- | | `active` | `bool` | | ## Is Player Character `scene/IsPlayerCharacter` Returns whether a character is the player character **Inputs** | Input | Type | Description | | --- | --- | --- | | `character` | `character` | The character object | **Outputs** | Output | Type | Description | | --- | --- | --- | | `yes` | `bool` | True if the character is the player character | | `no` | `bool` | True if the character is not the player character | | `character` | `character` | The character object | ## List Characters `scene/ListCharacters` Returns a list of characters in the scene, filtered by status **Inputs** | Input | Type | Description | | --- | --- | --- | | `character_status` | `str` | (optional) Which characters to include - "active", "inactive" or "all" | **Outputs** | Output | Type | Description | | --- | --- | --- | | `characters` | `list` | The list of matching character objects | **Properties** | Property | Type | Default | Description | | --- | --- | --- | --- | | `character_status` | `str` | `"all"` | Which characters to list (active, inactive or all). Choices: `active`, `inactive`, `all`. | ## Make Character `scene/MakeCharacter` Make a character **Inputs** | Input | Type | Description | | --- | --- | --- | | `name` | `str` | The name of the character | | `description` | `text` | (optional) The description of the character | | `color` | `color` | (optional) The color of the character name | | `base_attributes` | `dict` | (optional) The base attributes of the character | | `is_player` | `bool` | (optional) Whether the character is the player character | | `add_to_scene` | `bool` | (optional) Whether to add the character to the scene | | `is_active` | `bool` | (optional) Whether the character is active | **Outputs** | Output | Type | Description | | --- | --- | --- | | `character` | `character` | The character object | | `actor` | `actor` | The actor object | **Properties** | Property | Type | Default | Description | | --- | --- | --- | --- | | `name` | `str` | `unset` | The name of the character | | `description` | `text` | `""` | The description of the character | | `color` | `color` | `unset` | The color of the character name | | `base_attributes` | `dict` | `unset` | The base attributes of the character | | `is_player` | `bool` | `False` | Whether the character is the player character | | `add_to_scene` | `bool` | `True` | Whether to add the character to the scene | | `is_active` | `bool` | `True` | Whether the character is active | ## Remove All Characters `scene/RemoveAllCharacters` Remove all active characters from the scene (inactive characters are not affected) **Inputs** | Input | Type | Description | | --- | --- | --- | | `state` | `any` | The graph state | **Outputs** | Output | Type | Description | | --- | --- | --- | | `state` | `any` | The graph state | ## Remove Character `scene/RemoveCharacter` Remove a character from the scene **Inputs** | Input | Type | Description | | --- | --- | --- | | `state` | `any` | The graph state | | `character` | `character` | The character to remove | **Outputs** | Output | Type | Description | | --- | --- | --- | | `state` | `any` | The graph state | ## Set Character Attribute `scene/SetCharacterAttribute` Set an attribute on a character **Inputs** | Input | Type | Description | | --- | --- | --- | | `state` | `any` | | | `character` | `character` | | | `name` | `str` | (optional) | | `value` | `str` | (optional) | **Outputs** | Output | Type | Description | | --- | --- | --- | | `state` | `any` | | | `character` | `character` | | | `name` | `str` | | | `value` | `str` | | **Properties** | Property | Type | Default | Description | | --- | --- | --- | --- | | `name` | `str` | `""` | The name of the attribute | | `value` | `str` | `unset` | The value of the attribute | ## Set Character Description `scene/SetCharacterDescription` Set the description of a character **Inputs** | Input | Type | Description | | --- | --- | --- | | `state` | `any` | | | `character` | `character` | | | `description` | `str` | (optional) | **Outputs** | Output | Type | Description | | --- | --- | --- | | `state` | `any` | | | `character` | `character` | | | `description` | `str` | | **Properties** | Property | Type | Default | Description | | --- | --- | --- | --- | | `description` | `text` | `""` | The description of the character | ## Set Character Detail `scene/SetCharacterDetail` Set the details of a character **Inputs** | Input | Type | Description | | --- | --- | --- | | `state` | `any` | | | `character` | `character` | | | `name` | `str` | (optional) | | `value` | `str` | (optional) | **Outputs** | Output | Type | Description | | --- | --- | --- | | `state` | `any` | | | `character` | `character` | | | `name` | `str` | | | `value` | `str` | | **Properties** | Property | Type | Default | Description | | --- | --- | --- | --- | | `name` | `str` | `""` | The name of the detail | | `value` | `text` | `unset` | The content of the detail | ## Unpack Character `scene/UnpackCharacter` Unpack a character into its individual fields **Inputs** | Input | Type | Description | | --- | --- | --- | | `character` | `character` | The character object | **Outputs** | Output | Type | Description | | --- | --- | --- | | `name` | `str` | The name of the character | | `is_player` | `bool` | Whether the character is the player character | | `description` | `str` | The character description | | `base_attributes` | `dict` | The character base attributes dictionary | | `details` | `dict` | The character details dictionary | | `color` | `str` | The character name color | | `actor` | `actor` | The actor instance tied to the character | ## Update Character Data `scene/UpdateCharacterData` Update the data of a character **Inputs** | Input | Type | Description | | --- | --- | --- | | `character` | `character` | The character object | | `base_attributes` | `dict` | (optional) The base attributes dictionary | | `details` | `dict` | (optional) The details dictionary | | `description` | `str` | (optional) The description string | | `name` | `str` | (optional) A new name for the character (renames the character) | | `color` | `str` | (optional) The color of the character name | **Outputs** | Output | Type | Description | | --- | --- | --- | | `character` | `character` | The updated character object | **Properties** | Property | Type | Default | Description | | --- | --- | --- | --- | | `description` | `str` | `unset` | The character description | | `name` | `str` | `unset` | The character name | | `color` | `str` | `unset` | The color of the character name |