Dialogue manager [conditional responses]

Godot Version

Godot v4.5.stable.official [876b29033]

Godot Dialogue Manager v3.10.1

Question

I can’t get conditional responses to work, ie:
- A response [if variable == true] => a_label

Instead the response is always shown and selectable, regardless of what the variable evaluates to. Here is my test example:

~ start
Speaker: test_boolean evaluates to {{test_boolean}}
- Response A [if test_boolean == true] => label_a
- Response B [if test_boolean == false] => label_b
- Always visible
	Speaker: Some text

~ label_a
Speaker: This is label A

~ label_b
Speaker: This is label B

The resulting in-game dialogue looks like this:

Speaker: test_boolean evaluates to true
- Response A
- Response B
- Always visible

The responses all behave as if no conditional is applied, and all display and function as normal. I should mention that regular if statements work, so this (condensed) example works :

if test_boolean == true
	- Response A
	- Always visible
else
	- Response B
	- Always visible

Has anyone gotten these to work? I have a lot of dialogue trees, and it would really make my life easier if I could use the nice [if something == true] syntax, rather than the slightly more unwieldy if blocks. All the other dialogue manager functionality works fine, so I’m a bit perplexed.

I don’t know if this is exactly what your looking for, but theres a dialogue manager tutorial part 1/2 in godot 4 by Chevifier on youtube. it has something like this i think you could adapt?

(the 1/2 is because he has parts 1 and 2, not 1/2 of a part lol)

1 Like