Hey, I looked at your first example again (try1) and the reason for the lag was because the ComponentCreator had the CreateSignal set as Transitionsignal. The problem with this is everytime a Component is created the Transitionsignal, which in this case is CreateSignal, will become True and once the Component is out it will become False again.
If you need this information then you should use another signal. The CreateSignals should only be used to signal the creation of components.
The component is already only being created on the rising edge of the signal in the first example.
The OnSignal event is called everytime the value switches between True and False. That’s why we have the second condition in the if statement: and signal.Value. This checks if the signal is True and only then does it create the component.
You can also change the signal to False again after creating the component. That way you don’t have to change the signal twice.
signal.Value = False