Skip to content

Flow asset params improvements#337

Closed
LindyHopperGT wants to merge 26 commits intoMothCocoon:5.xfrom
LindyHopperGT:FlowAssetParamsImprovements
Closed

Flow asset params improvements#337
LindyHopperGT wants to merge 26 commits intoMothCocoon:5.xfrom
LindyHopperGT:FlowAssetParamsImprovements

Conversation

@LindyHopperGT
Copy link
Contributor

@LindyHopperGT LindyHopperGT commented Feb 11, 2026

[Flow] Converted FlowDataPinValueSupplierInterface to C++ only
The blueprint functionality for this has been removed
Rationale:
The Execute_TrySupplyDataPin overhead is non-trivial vs. a simple virtual call in C++
Could still create custom supply logic in C++
It's a really technical thing to do in Blueprint
The new Data Pin Value wrappers for blueprint are highly functional and usable; providing a very clean and easy method to add data pins to blueprint nodes
Removing the support could allow me to simplify the Pin authoring interface in blueprint (for exec pins) to make it more clear, since they wouldn't need to also support authoring data pins in that way.

[Flow] Added FlowNode_BlueprintDataPinSupplierBase
This is a thin c++ class that exposes TrySupplyDataPin override capability for blueprint if they need it.
Suggested by a thread on the Flow Discord, where a user indicated a legitimate use case for still wanting to override TrySupplyDataPin in blueprint
This class provides a targeted override capability to blueprint, while still leaving the blueprint dispatch out of the UFlowNode base implementation (for better perf in the general case)
CR - BJarvinen, ECalder

[Flow] Added factory creation method for FlowAssetParams
Previously, we only supported flow asset params by right-clicking the desired parent asset, now we also have a Create Asset entry (like Flow Asset, or Flow Node Blueprint, etc.)
The new factory create still requires a parent params asset, which is selected via an asset-picker.
Created common child asset creation code for both methods of creating child FlowAssetParams to share
CR - BJarvinen

[Flow] FlowAssetParams configuration for Subgraph nodes
Can now statically assign AssetParams to use on a Subgraph node for the associated (flow) Asset
Can also dynamically source the AssetParams to use via an input data pin for the Subgraph node
If the Subgraph node pins are connected, the connected supplier is preferred over the FlowAssetParams
Otherwise, the FlowAssetParams object (if chosen) will supply the value (this is the new part)
If no assigned FlowAssetParams, the Start node in the subgraph's default values are used (this was pre-existing behavior)
Also:
Fixed some code in and around sourcing subgraph Start node pin values to allow this sourcing to work properly
Fixed some issues preventing the tooltip inspection for data pins in subgraphs from correctly finding the correct source value
Removed an incorrect IsHalted check, which was preventing subgraphs from starting when at a breakpoint (as they aren't queued, this would just drop the start of the subgraph rather than deferring it)
CR - BJarvinen, ECalder

[Flow] Data Pin Reroute support
Added Reroute node support for Flow Data Pins (previously was Exec pins only)
Slight cost during lookup due to passing through the reroute node(s) to get to the actual node
Same cost as regular reroutes in the form of full flow node for a clerical purpose. (It would be nice to strip these out of the graph for shipping flow graphs, but that's a future goal)
CR - JDurica, BJarvinen

LindyHopperGT and others added 25 commits January 12, 2026 11:57
Data Pin Values displayed in Tooltips
Flow debugger stops at breakpoints bugfix
This is a change to the core flow triggering logic to fix a category of sequencing bugs from the previous behavior.  It would immediately fully process a triggered input and so on down the chain of flow nodes, without allowing the current flow node to finish executing, this caused a whole category of problems where the node wasn't able to finish its execution before being interrupted by a retirgger (from downstream) and AddOns wouldn't execute at the same time as their owning flow node reliably
Now FlowAsset will queue any triggers generated while processing a trigger, and flush them when ending the processing of that trigger.
We also integrated the debugger queued trigger caching mechanism to use the same syste.
Subclasses of UFlowAsset that do their own deferred asset triggering can disable this feature, except for the debugger portion, which is still processed using the UFlowAsset queue.

CR - JDurica, BJarvinen
- AddOns can now include data pins, which show up as pins on their owning node
- Duplicate outputs are disambiguated with different names
- UFlowNode has a map for non-trivial data pins  (trivial are those which exist in the 0th object source and have a PinName that exactly matches their source PropertyName)

CR (Riot) - JDuriva, BJarvinen
- Added Reroute node support for Flow Data Pins (previously was Exec pins only)
- Slight cost during lookup due to passing through the reroute node(s) to get to the actual node

Same cost as regular reroutes in the form of full flow node for a clerical purpose.  (It would be nice to strip these out of the graph for shipping flow graphs, but that's a future goal)

CR (riot)- JDurica, BJarvinen
- The blueprint functionality for this has been removed

Rationale:
- The Execute_TrySupplyDataPin overhead is non-trivial vs. a simple virtual call in C++
- Could still create custom supply logic in C++
- It's a really technical thing to do in Blueprint
- The new Data Pin Value wrappers for blueprint are highly functional and usable; providing a very clean and easy method to add data pins to blueprint nodes
- Removing the support could allow me to simplify the Pin authoring interface in blueprint (for exec pins) to make it more clear, since they wouldn't need to also support authoring data pins in that way.

CR - BJarvinen
- Can now statically assign AssetParams to use on a Subgraph node for the associated (flow) Asset
- Can also dynamically source the AssetParams to use via an input data pin for the Subgraph node
- If the Subgraph node pins are connected, the connected supplier is preferred over the FlowAssetParams
- Otherwise, the FlowAssetParams object (if chosen) will supply the value (this is the new part)
- If no assigned FlowAssetParams, the Start node in the subgraph's default values are used (this was pre-existing behavior)

Also:
- Fixed some code in and around sourcing subgraph Start node pin values to allow this sourcing to work properly
- Fixed some issues preventing the tooltip inspection for data pins in subgraphs from correctly finding the correct source value
- Removed an incorrect IsHalted check, which was preventing subgraphs from starting when at a breakpoint (as they aren't queued, this would just drop the start of the subgraph rather than deferring it)
@MothDoctor MothDoctor self-assigned this Feb 13, 2026
@MothDoctor
Copy link
Contributor

Changelist superseded by #343

@MothDoctor MothDoctor closed this Feb 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants