# Packaging Nodes Package node modules for reuse and installation into scenes — see [Package](../../core-concepts/package.md) for the packaging workflow. _4 nodes._ | Node | Registry path | | --- | --- | | [Dynamic Storyline Package](#dynamic-storyline-package) | `package/talemate/DynamicStoryline` | | [Install Node Module](#install-node-module) | `util/packaging/InstallNodeModule` | | [Package](#package) | `util/packaging/Package` | | [Promote Config](#promote-config) | `util/packaging/PromoteConfig` | ## Dynamic Storyline Package `package/talemate/DynamicStoryline` Node module (base type `util/packaging/Package`) defined in `src/talemate/game/engine/nodes/modules/scene/dynamic-storyline-package.json`. **Properties** | Property | Type | Default | Description | | --- | --- | --- | --- | | `package_name` | `str` | `"Dynamic Storyline"` | The name of the node module | | `author` | `str` | `"Talemate"` | The author of the node module | | `description` | `str` | `"Generate a random story premise at the beginning of the scene."` | The description of the node module | | `installable` | `bool` | `True` | Whether the node module is installable to the scene | | `restart_scene_loop` | `bool` | `True` | Whether the scene loop should be restarted after the package is installed | ## Install Node Module `util/packaging/InstallNodeModule` Marks a node module for installation when placed inside a Package graph. When the package is installed to a scene, each InstallNodeModule node causes the referenced node module to be instantiated and added to the scene loop. **Properties** | Property | Type | Default | Description | | --- | --- | --- | --- | | `node_registry` | `str` | `unset` | The registry path of the node module to package | ## Package `util/packaging/Package` Graph that defines an installable package of node modules for easy scene installation. Place InstallNodeModule nodes inside it to mark node modules for installation, and PromoteConfig nodes to expose module properties as package configuration. **Properties** | Property | Type | Default | Description | | --- | --- | --- | --- | | `package_name` | `str` | `""` | The name of the node module | | `author` | `str` | `""` | The author of the node module | | `description` | `str` | `""` | The description of the node module | | `installable` | `bool` | `True` | Whether the node module is installable to the scene | | `restart_scene_loop` | `bool` | `False` | Whether the scene loop should be restarted after the package is installed | ## Promote Config `util/packaging/PromoteConfig` Promotes a single module property to be configurable through the scene once the package is installed. Place inside a Package graph alongside the InstallNodeModule node whose module property should be exposed. **Properties** | Property | Type | Default | Description | | --- | --- | --- | --- | | `node_registry` | `str` | `unset` | The registry path of the node module to package | | `property_name` | `str` | `unset` | Property Name | | `exposed_property_name` | `str` | `unset` | Exposed Property Name | | `required` | `bool` | `False` | Whether the property is required | | `label` | `str` | `""` | Label |