> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/function-blocks/blocks-reference/data-logic/flow-control/subsystem-out.md).

# Subsystem Out

This function block provides a single export point inside a subsystem. Use it to push data from the local subsystem context to the parent (main) scene or to other parts of your scenario. It is typically used in groups — each export point is mapped to a corresponding entry point in the parent scene.

## 📥 Inputs <a href="#inputs" id="inputs"></a>

`Generic` This input accepts any type of data you want to expose outside the subsystem (images, numbers, lists, dictionaries, etc.).

## 📤 Outputs <a href="#outputs" id="outputs"></a>

This function block does not produce direct outputs in its local view — instead it exposes the connected input to the parent context where corresponding entry points receive it.

## 🕹️ Controls <a href="#controls" id="controls"></a>

This block has no interactive controls.\
When used inside a subsystem, the block displays a small numeric title/index to indicate its export position relative to other export points.

## 🎨 Features <a href="#features" id="features"></a>

* `Expose Local Data` Allows any value from inside a subsystem to be made available to the parent scene.
* `Multiple Exports` Adding several such blocks in a subsystem creates multiple, ordered export channels. The displayed index helps you track the mapping order.
* `Type Syncing` The export point will adapt to the type of data connected so the parent entry point can match the same data type.
* `Safe Use in Main Scene` Placing the block in the main scene will forward its input value as a normal passthrough output for convenience during testing or when the subsystem is open.

## 📝 Usage Instructions <a href="#usage" id="usage"></a>

1. Add a subsystem container (use the `Subsystem` block) and work inside it.
2. Place one or more `Subsystem Out` blocks inside the subsystem where you want to export values.
3. Connect your internal processing results to the `Generic` input of each `Subsystem Out` block.
4. In the parent scene, add corresponding entry points to receive the exported data. The numeric label on each `Subsystem Out` helps match the correct parent input.

## 📊 Evaluation <a href="#evaluation" id="evaluation"></a>

When the scenario runs, this block exposes the current value present at its `Generic` input to the outer (parent) context. Multiple export blocks create an ordered list of exported values that the parent can consume in the same order.

## 💡 Tips and Tricks <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Pair with `Subsystem In` to receive the exported values inside your main scene or another subsystem.
* Use `Subsystem Enabled` to control whether a subsystem is active and thus whether its exports are meaningful at a given time.
* If you need to expose multiple heterogeneous values through a single export channel, use `Mux` inside the subsystem to bundle values into one structured output, and use `Demux` or unpacking in the parent as needed.
* For persistent sharing or when implementing feedback loops, consider `Data Write Local` and `Data Read Local` to store and read data outside the regular direct export/import mapping.
* During debugging, route exported data to `Debug Input` or to logging/ export blocks such as `CSV Export` or `Image Logger` (for image data) to verify what the subsystem is producing.
* Keep export ordering explicit: add or remove export blocks in the subsystem carefully — the parent mapping follows the order of export points, and the numeric title will help you verify alignment.

## 🛠️ Troubleshooting <a href="#troubleshooting" id="troubleshooting"></a>

* If the parent scene is not receiving the expected value, confirm that the number of export blocks inside the subsystem matches the number of corresponding entry points in the parent scene.
* If data types appear mismatched, ensure the value connected to the `Generic` input is the same type the parent expects (use `Data Type Converter` or `Mux` to normalize data before export).
* When experimenting, you can place the block in the main scene to preview outputs directly, then move it into a subsystem once the flow is stable.
