I hoped to not use dozens new global flags, so I made quest like
if _return == "House_5":
if pytfall.world_quests.get("Sixth Sense").stage < 1:
$ renpy.hide_screen("pyt_hiddenVillage_entrance")
$ pytfall.world_quests.get("Sixth Sense").stage = 1
ie when you do it in matrix for the first time, you set quest stage to 1.
And then I made
register_event("karin_first_meeting", quest="Sixth Sense", dice=None, run_conditions=["pytfall.world_quests.get('Sixth Sense').stage = 1"], max_runs=1)
ie that event should run when quest stage is 1.
Of course that doesn't work.
I know that $ pytfall.world_quests.get("Sixth Sense").stage = 1 works, because I have else line after it that leads to normal GMs. And after you click the second time, you run GMs indeed.
Meaning quest cannot see its own stage. Wtf? It was supposed to work with any conditions, not only with those that I don't want to use