I’m currently working on a project where there are multiple different features that I need to reset upon the character landing, but I just can’t figure out how to make the “Event On Landed” plug into multiple nodes without either A. Breaking a previous system, or B. Just refusing to plug into multiple nodes simultaneously. I really don’t feel like I understand much in this engine and this has been winding me up for a few hours now. Any help or potential alternatives would be greatly appreciated.
I am not sure I understand the question clearly. So would like to ask
what kind of systems you are trying to reset?
Are they encapsulated systems and code blocks?
What kind of trouble you are exactly having in terms of systems being broken?
Ex: Double Jump vs Dash Jump
Condition : Double jump can be performed 2 times before landing.
Condition : Double jump can be performed after a dash like on ground granting 2 additional jumps. (Dash resets double jump counts)
OnLand-> End double jump count or ability, reset counts.
OnLand->Shake Hud
OnLand->Play landing sound, shake camera
OnLand->Decrease movement speed briefly
OnLand->If speed above X calculate a damage and decrease player health.
etc?
Explain and elaborate your question further please in detail, community will help.
Sounds like you need to sequence it and run the other outputs to custom events to feed whatever.
You can use a Sequence, just keep in mind that it doesn’t wait for one thing to finish executing before starting the next one.
So if order of things isn’t important, use a Sequence, but if the order is important (something later down the line expects a bool to be false for example), then put it in a long line of things that happen (or look into async macros or event dispatchers that signal when what finished executing).
I have noticed a similar situation with the Do It Once Nodes, in a perfect world a situation is when you have a pair of do it once nodes, hence you can easily reset them off each other. Otherwise what I do is make custom events called RADO (Reset A Do Once). And then number them accordingly as needed.
When I was first getting into UE, I kind of thought that node was almost like a “splitter”, but the word is not splitter but “sequence”. And being a sequence it should fire in the order of the pins. I came to consider that with the speed of computers it might seem like a splitter but I trusted it was actually in the order of those pins. And thats the way I imagine the sequence node works unless or untill it is explained to me differently.
Sequence node: Do this, Then this, Then This, Then This
As soon as the last thing in the previous Then line executes the next sequence Then fires.
Take the following Function.
As soon as Function X is called Function Y is immediately called after.
Then immediately after that Function Z, then the Return.
Now If Function X has a return value it will be allowed to completely finish and return its value before moving to Function Y.
The same applies to Setting variables.
I typically calculate all my parameters on the first and second Thens before doing all the meat and potatoes functionality.
Sequences work just like Vertical C++ code
Then 0 = Line 1;
Then 1 = Line 2;
etc.
Functions in a Sequence chain will wait for the function to finish if it has a return value.
Variables being Set in a Sequence chain will wait until they are set.
Each THEN Line executes as it would as a C++ line. Lines below will not process until the one above is finished.
Not if it has a delay or timeline in there
Obviously anything that delays the execution is going to delay it. Semantics wise you generally wouldn’t add a delay to a sequence.