diff --git a/src/Debugger.svelte b/src/Debugger.svelte
index 108c791dbe3d8f1d0c7eaeed0857f642a43320c5..247fb853cd48a4584178eb82698c1bf8c4647b06 100644
--- a/src/Debugger.svelte
+++ b/src/Debugger.svelte
@@ -8,10 +8,23 @@
   $: dialogNames = Object.keys(dialogSet.dialogs)
   export let selectedDialogName: string
 
+  /**
+   * Collect all facts referenced in these dialogs
+   */
   function getDialogFacts(dialogMap: DialogMap): String[] {
-      const dialogs = [];
+    const dialogs: Dialog[] = [];
       for (const dmKey of Object.keys(dialogMap)) dialogs.push(dialogMap[dmKey]);
-      return dialogs.map(dialog => [...(dialog.addFacts || []), ...(dialog.removeFacts || [])]).flat()
+    const allFacts = dialogs
+      .map((dialog) => [
+        ...(dialog.addFacts || []),
+        ...(dialog.removeFacts || []),
+        ...dialog.options.map((opt) => opt.requiredFacts).flat(),
+        ...dialog.options.map((opt) => opt.forbiddenFacts).flat(),
+      ])
+      .flat();
+    // Deduplicate entries
+    const factsSet = new Set(allFacts);
+    return [...factsSet];
   }
 
   let seenFactIds = new Set<String>([...$gameFactsStore, ...getDialogFacts(dialogSet.dialogs)]);