Logic Driver - Easily Design Gameplay Systems with State Machines

@Skeptis Have you installed it previously to 4.24? If you click on Installed Plugins below 4.24.3 it should show you if it’s there or if it needs updating.
If not, can you try restarting your launcher? I verified yesterday and again just now that 2.0 is available for 4.23 and 4.24.

Ah your post disappeared, I’m guessing you resolved it :slight_smile:

Finally put together patch notes for 2.0.

Highlights -

  • Custom Nodes in BP or C++
  • Expose Variables on Nodes
  • Text Graph Properties for parsing text on a node
  • Auto-bind multicast delegates to transitions via dropdown
  • New AnyState node which represents any other state node in a graph
  • Conduits now can behave like transitions or states
  • Actor Components support templating so the instance defaults can be edited directly in the details panel

Hi everyone. Could I execute a forcing transition from statemachine caller?
Or I have to transit by transition’s condition?
For example: StateA could transit to StateB. StateA is current state. I want to transit from StateA to StateB without changing the transition condition. I want to use StateMachineComponent force transit it.

That’s a really meaty update! Thank you!

It’s possible but the best way is to use a transition condition or an event.
https://logicdriver.recursoft.net/do…ed-transitions

You could add an event delegate to your actor, then bind to it on the transition and fire it from your actor to switch the states. That would make it really clean and efficient.

https://i.imgur.com/Ng58ggD.png

Back to your original question, there’s a function available for state instances SwitchToLinkedState which does what you want, but it was meant to be called from either a state class or within a state node.

If you really want to do it from an actor component, you could do something like this. It’s kinda messy because you can’t directly search for a state by name, you would have to check the active state instance.

This is from a state node, if it’s possible to place the logic here, or from within a state class, it will work much better.

You’re welcome! I hope the component templates help you- I made it a point to make sure that got added in for 2.0, I still feel bad that local state variables never got added.

Thank you very much!
I have another question. I got logic driver’s copy from my company other project worker. If I want to use LogicDriver in a new project for the same company, should I buy it again?

I believe the license through Epic allows you to continue to use it in the same company.

From: https://www.unrealengine.com/en-US/marketplace-faq

Edit:
I may have interpreted the licensing wrong, I e-mailed the marketplace team your exact question and got this as a response:

2.0.1 Released

  • Nodes that are impacted by an Any State Node will have their color updated appropriately and additional information displayed on their tooltip.
  • Properties exposed on the node can no longer be edited while in debug mode.
  • Fixed crash for conduits that loop back on themselves and are configured to evaluate as transitions.
  • Added missing button images for TextGraphProperty variables.

@JimPhoenix the missing button images will resolve the warnings you were getting and text graph variables will look nicer now too. Thanks again for bringing that up!

Version 2.1 Released
Unreal Engine 4.23 - 4.25

When updating it is important everyone working on the same project also updates. Assets saved on this version are not fully compatible with older versions.

Enhancements
General

  • Added user tooltips to graph properties.
  • Added IsActive and GetGuid to node instances.
  • Added documentation links to blueprint editor help menus.

Replication

  • Added bIncludeSimulatedProxies to actor components so actors that aren’t possessed by a player controller can execute logic when configured for the client domain.

  • Improved initial instance replication which should resolve issues when leaving bInitializeOnBeginPlay checked not always starting the state machine on simulated proxies.

  • Initial replication now replicates the current state(s) of the authority state machine rather than rely on the default initial state being accurate.

  • Can be disabled by unchecking bReplicateStatesOnLoad

Ticking Optimization

  • Actor components are now responsible for ticking their instances.
  • Instances that don’t need to tick (such as references) never register their tick function.
  • Instances no longer tick before they are initialized.
  • Added bLetInstanceManageTick to components as an advanced option.
  • Added bTickBeforeInitialize to instances as an advanced option.
  • Added bTickRegistered to instances as an advanced option so they can unregister their tick function all together.

Changes

  • Manually calling the actor component Initialize function and not passing in a context will now automatically set the context to the component owner.

  • Renamed Editor and ProjectEditor settings from State Machine Editor to Logic Driver.

  • Deprecated bCanEnterTransition of conduit classes.

  • Creating a new conduit class no longer automatically wires a parent node to CanEnterTransition.

  • Instance compile validation skips blueprints that are new or loading.

  • Updated custom K2 node pin names to be consistent with UE4 naming conventions.

  • Once you save a state machine on this version you cannot open it in an earlier version of Logic Driver or connections may be broken.

Bug Fixes

  • Fixed intermittent crash during garbage collection for Stand Alone Game builds.
  • Fixed actor component state machine templates from being selectable debug objects.
  • Fixed const mismatch on GetNodeIconSize which could prevent compiling from source using strict warnings.

It was just brought to my attention that 4.24 did NOT receive the Logic Driver 2.1 update, but 4.23 and 4.25 did. If anyone is still on 4.23 and planning to update to 4.24 check the Logic Driver version you have installed first. If it’s 2.0.1 or less you’re fine, if it’s 2.1 you should hold off until this is resolved or contact support@recursoft.net.

I have asked to Epic to rebuild / redistribute the 4.24 version.

Wow, Epic fixed this fast. The 2.1 update is now available for UE 4.24.

Hey everyone! Just an FYI that because of the 2.0 update, the original Logic Driver product is now considered PRO, and a new LITE version is available.

Everything in Lite is already part of Pro. No need to buy anything else.

Version 2.1.1 is out for 4.23-4.25 with some bug fixes.

Patch Notes

Logic Driver is absolutely the right thing for my project, I was keeping finding a proper FSM plugin in UE4 environment. After several days using, I found that there is a limitation about reusing the ‘State’. According the design now, I need put all the logic in one state node. But in our game project, there are various logic unit in a state, such as, add buff to some players, open a door somewhere, set a timer and disable AI and so on. All these logic unit may be reused in anytime and anywhere. Game designers could use these logic units to make all kinds of gameplay. As time goes by, we could accumulate many logic units, the more logic units we developed the less work we will do in the future, and the more stable of the game logic.
So in Logic Driver, I think there should have a logic unit(we can call it Action) under the state object. An action object contains all the generic logic. It can expose some config fields display in the UE details panel so that the designers can adjust gameplay by changing these fields. Maybe you have realized that it is the same thing with Playmaker in Unity. Yes it is.

Please could this feature in the future updates ? I would provide more detail information in your email

2 Likes

In case anyone missed the Discord announcement,

Version 2.2 is now available!
Patch Notes

Currently in development: Parallel States

https://www.youtube.com/watch?v=xprqXSDhurw

And what yinpsoft suggested is also being worked on, most likely by allowing multiple state classes to be stacked per state node.

2.3 is now available for 4.24 & 4.25

Is there s way to pass a BP struct through a state machine rather than just an object?

hello, is this plugin supported on PS5 and XSX builds?

@IslandQuest Hi, structs can’t be edited on the node unless the struct has its own built-in pin for it, like Vectors and Rotators do. You could also not make the variable public and instead edit it in the details panel of the node.

@Mykel_Illogika Hi, the run-time modules are designed to be cross platform and there are projects with Logic Driver being made for PS5 and XSX. To my knowledge there aren’t any issues, but I don’t have console SDKs to test against locally.

Apologies for the late replies. I think I’ve corrected notification settings going forward.