Object Spawning Output ====================== Use this output to spawn arbitrary Node3D objects or scenes dynamically. This is useful for placing buildings, trees, props, or any other game objects generated by your HDA. Point Attributes ---------------- Spawn configuration is specified via point attributes: .. list-table:: :header-rows: 1 :widths: 30 15 15 40 * - Attribute Name - Attribute Type - Attribute Owner - Description * - ``N`` - Vector - Point - Forward direction (positive Z) * - ``up`` - Vector - Point - Up vector * - ``pscale`` - Float - Point - Uniform scale * - ``scale`` - Vector - Point - Non-uniform scale, multiplied by pscale * - ``hego_spawn`` - Int - Point - Required. Set to 1 to enable object spawning * - ``hego_spawn_type`` - Int - Point - 0 = spawn registered class, 1 = spawn PackedScene by path * - ``hego_class_name`` - String - Point - Class name when ``hego_spawn_type`` = 0 * - ``hego_resource_path`` - String - Point - Scene resource path when ``hego_spawn_type`` = 1 * - ``hego_node_path`` - String - Point - Spawn path under HEGoNode3D/Outputs. Make unique per point to avoid name conflicts * - ``hego_custom_properties`` - Dictionary - Point - Nested property assignment dictionary using ``hego_val`` entries Custom Properties ----------------- The ``hego_custom_properties`` dictionary allows you to set almost any property on spawned objects in one pass. It must follow a specific format: - Each top-level key is a property name. - The value must be another dictionary containing at least ``hego_val``. - Additional nested keys can define sub-properties for complex value types. Example Dictionary Format ~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: json { "shape": { "hego_val": "CapsuleShape3D", "height": {"hego_val": 0.72}, "radius": {"hego_val": 0.5} } } This example creates a ``CapsuleShape3D``, sets its ``height`` and ``radius`` properties, and assigns it to the target node's ``shape`` property.