What I always do is make a class variable, set it when I set the timer, and then use that variable when the function gets called.
var string TestString;
function OnTestNode (SeqAct_TestNode Action, optional string NewTestString = "Default String")
{
// Do something here
SetTimer(1.5, false, nameof(DelayedFunction));
TestString = NewTestString;
}
function DelayedFunction (SeqAct_TestNode Action)
{
Action.TestVariable = TestString;
}
That wouldn’t work if you set the timer again before the original timer goes off, but there are ways around that too.