Logic Driver - Easily Design Gameplay Systems with State Machines

Awesome! I’m looking forward to it!

I have 2 feature requests. v1.7 perhaps?

The first is regarding inheriting state machines, ex: B inherits from A.
To access the A state Machine from B, I am adding a reference to A inside B. This is based on advice given above. This seems to work and allows me to extend it because the context is passed in automatically and I’m only ever referencing the character directly for variables checked etc. However, I suspect it’s not a good way to proceed since if I add variables to the base (A) state machine, I can see and use them in all of the children (B, C, D, etc), but they are not accessible to the referenced instance (A) since its a reference to it’s own separate external instance instead of the parent itself…
Reading the wiki this morning, I guess I can use an intermediate graph to forward my variables to the reference… but this all has a code smell as they say. Variables defined in A are forwarded back to a reference of A from B… yeah. Just the way the code folded in the end, nothing done wrong here. This would be flawless if not for my desire to share inherited variables.

Is it possible to maybe add a node for getting the parent graph? It would be nice to treat the parent like a nested state machine so we can just transition in and out of it…
A could contain states like travel, jump, dash, etc which are shared with many characters. B would contain melee states unique to each character . Both can make use of the same global variables defined in A and it’s handy to use A as a base class in each character. but again, I’m working around this by keeping variables in the character, which is ok so long as I don’t forget they are used only in the state machine when i check reference on them in 6 weeks during code cleanup.
I imagine maybe only 1 instance of “parent State Machine” node should be allowed? Food for thought.

The second request is to do with the actor component. maybe I missed it, but is there a way to construct a new one from blueprints to assign it a new state machine class reference?
If I wanted characters to “change powers” and each power would be its own state machine (which inherits from the basics of A above :wink: , I didn’t see a way to do that. I’ve worked around this easily because using variables is so easy (thanks to the clean workflow!) but I think a function to maybe “reset” the actor component and giving it a new class reference as part of it might help recycling the actor component.

Neither of these are critical features. Nice to haves to minimize workflow overhead at best.
I’m happy to test out and provide feedback if you like. I’ll send you an email with my receipt as requested in the link. No rush if you are out for the holidays.

Happy Holidays!