You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Mar 7, 2026. It is now read-only.
🔗 Is your feature request related to a specific issue?
Dialogue is rarely just text on a screen; it often needs to trigger gameplay actions like giving an item to the player, starting a quest, or moving an NPC. There needs to be a clean, decoupled way for the narrative script to initiate these actions.
💡 Feature Description
Integrate the dialogue module with the global Event system, allowing narrative scripts (Ink, Yarn Spinner) to broadcast events.
Expected outcome or effect: A mechanism for writers to trigger any defined gameplay event from within their narrative scripts.
Specific implementation ideas: The following definitions are for reference only and are subject to change. Implementation could include:
Define a special syntax within the narrative scripts to signify an event call.
For Ink: A tag like #EVENT StartQuest TheFirstMission
For Yarn Spinner: A custom command like <<fire_event StartQuest "TheFirstMission">>
The dialogue runner will parse these special syntaxes and, when encountered, publish the corresponding event to the global EventBus. Other systems (QuestManager, InventoryManager) will subscribe to these events and react accordingly.
Usage scenarios or benefits: This creates a powerful and fully decoupled workflow. A writer can add give_item(gold_key) to their script, and as long as an InventoryManager is listening for that event, the logic will just work. It completely separates the responsibilities of narrative design and systems programming.