Skip to content

FlowKit can't do if/elseif/else #53

@Lexian-droid

Description

@Lexian-droid

Issue

FlowKit currently cannot properly interface with nodes such as CharacterBody2D.

After looking into this, I believe the root cause is that FlowKit does not support branching actions (e.g., if / elseif / else logic structures).

This limitation was not as noticeable in Clickteam Fusion because its event system could often function without explicit branching. However, in Godot — especially when working with systems like physics and movement — conditional branching appears to be necessary for correct behavior and proper engine integration.

Without branching logic, certain behaviors (such as directional input handling and physics application) do not work as expected.


Proposed Solution

Add support for branching actions within the Event Sheet.

These would function similarly to traditional if / elseif / else blocks, visually separated into structured sections inside an event. This would allow more complex and controlled logic flow.

Example Problem

When working with CharacterBody2D, applying physics-based movement requires combining directional inputs properly.

For example:

  • Event: "Pressing Up" → Apply upward movement
  • Event: "Pressing Left" → Apply leftward movement

Intuitively, pressing both keys should result in diagonal movement (up + left).

However, in the current system, the lower event takes priority and overrides the previous one. Instead of combining movement vectors, the last processed event wins. This prevents proper multi-directional input and makes physics-based movement unreliable.

Branching logic would allow directional input to be evaluated within a single structured block, enabling combined movement instead of priority-based overrides.


Feedback

I’d appreciate any thoughts on whether branching is the correct architectural solution, or if there’s a better way to handle conditional logic within FlowKit.

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingenhancementNew feature or request

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions