My accepted quests are not showing up in the journal UI.
The quest is added to the players activate quests but now showing up.
I tried with default prefab for ui. Same result.
Quests not showing up in Quest Journal UI
-
- Posts: 39
- Joined: Sat Apr 20, 2024 7:03 pm
Quests not showing up in Quest Journal UI
- Attachments
-
- Screenshot 2024-11-12 at 18.26.26.png (78.31 KiB) Viewed 180 times
-
- Screenshot 2024-11-12 at 18.25.50.png (18.73 KiB) Viewed 180 times
Last edited by dkrusenstrahle on Tue Nov 12, 2024 12:45 pm, edited 1 time in total.
Re: Quests not showing up in Quest Journal UI
Hi,
Are there any errors or warnings in the Console window?
If you play the game in the Unity editor's play mode, accept the quest, and then inspect the player (i.e., GameObject with QuestJournal component), what are the states of the quest nodes in the Quest Editor window? Is the main quest state set to Active?
If you download and play the completed tutorial scene (link in tutorial's description), does the quest show up in the quest journal UI?
Are there any errors or warnings in the Console window?
If you play the game in the Unity editor's play mode, accept the quest, and then inspect the player (i.e., GameObject with QuestJournal component), what are the states of the quest nodes in the Quest Editor window? Is the main quest state set to Active?
If you download and play the completed tutorial scene (link in tutorial's description), does the quest show up in the quest journal UI?
-
- Posts: 39
- Joined: Sat Apr 20, 2024 7:03 pm
Re: Quests not showing up in Quest Journal UI
No direct errors in the console (see screenshot).
The Quest is set to Successful (no journal entries during the quest either).
All nodes seems done.
I also tried the demo but there is no way to interact with the quest givers (I pressed B and all other keys) so I cannot start a quest to try to see if it ends up in the journal.
And yes, when I download the tutorial assets it shows up in the journal after accepting the quest.
I tried the Quest Machine prefab in my own scene and get the same result. The whole process works (just like with my prefab) but the quest does not show up in the Journal. I also tried with the Quest Giver from the working tutorial scene and the database and quest from that scene to. Still does not show up.
I also tried my prefab UI in the working scene and using that one the quest does NOT show up in my journal UI there either. Very strange. During runtime I check the actual UI parts that should be showing the quest in the journal and they are turned off and they are only templates (no actual data) so it can¨t be a UI hidden/visibility issue.
The Quest is set to Successful (no journal entries during the quest either).
All nodes seems done.
I also tried the demo but there is no way to interact with the quest givers (I pressed B and all other keys) so I cannot start a quest to try to see if it ends up in the journal.
And yes, when I download the tutorial assets it shows up in the journal after accepting the quest.
I tried the Quest Machine prefab in my own scene and get the same result. The whole process works (just like with my prefab) but the quest does not show up in the Journal. I also tried with the Quest Giver from the working tutorial scene and the database and quest from that scene to. Still does not show up.
I also tried my prefab UI in the working scene and using that one the quest does NOT show up in my journal UI there either. Very strange. During runtime I check the actual UI parts that should be showing the quest in the journal and they are turned off and they are only templates (no actual data) so it can¨t be a UI hidden/visibility issue.
- Attachments
-
- Screenshot 2024-11-13 at 00.11.28.png (85.94 KiB) Viewed 141 times
-
- Screenshot 2024-11-12 at 23.33.38.png (458.74 KiB) Viewed 146 times
-
- Screenshot 2024-11-12 at 23.22.33.png (38.52 KiB) Viewed 147 times
-
- Screenshot 2024-11-12 at 23.21.39.png (82.65 KiB) Viewed 147 times
-
- Screenshot 2024-11-12 at 23.21.01.png (58.47 KiB) Viewed 147 times
Last edited by dkrusenstrahle on Wed Nov 13, 2024 4:52 am, edited 2 times in total.
Re: Quests not showing up in Quest Journal UI
Hi,
> The Quest is set to Successful (no journal entries during the quest either).
> All nodes seem done.
Does this happen as soon as you accept the quest? If so, then the conditions on the "Enter circle" and "Return" nodes are become true immediately for some reason. The quest and those nodes should remain in the Active state until you complete their conditions. If you intend for the quest to be active at this point, check the conditions on the nodes.
> I also tried the demo but there is no way to interact with the quest givers (I pressed B and all other keys) so I cannot start a quest to try to see if it ends up in the journal.
The gamepad B button (East button) or right mouse click should interact with NPCs in Quest Machine's Demo scene. Note: The Demo scene assumes you're using Unity's built-in input manager with default input settings. If you've switched to a different input system, such as the Input System package, you'll need to update the Demo scene to work with whatever input system you're using.
> And yes, when I download the tutorial assets it shows up in the journal after accepting the quest.
> ...
> I also tried my prefab UI in the working scene and using that one the quest does NOT show up in my journal UI there either.
This sounds like it's an issue with the prefab UI. Are all of the fields of the UnityUIQuestJournalUI component assigned?
> The Quest is set to Successful (no journal entries during the quest either).
> All nodes seem done.
Does this happen as soon as you accept the quest? If so, then the conditions on the "Enter circle" and "Return" nodes are become true immediately for some reason. The quest and those nodes should remain in the Active state until you complete their conditions. If you intend for the quest to be active at this point, check the conditions on the nodes.
> I also tried the demo but there is no way to interact with the quest givers (I pressed B and all other keys) so I cannot start a quest to try to see if it ends up in the journal.
The gamepad B button (East button) or right mouse click should interact with NPCs in Quest Machine's Demo scene. Note: The Demo scene assumes you're using Unity's built-in input manager with default input settings. If you've switched to a different input system, such as the Input System package, you'll need to update the Demo scene to work with whatever input system you're using.
> And yes, when I download the tutorial assets it shows up in the journal after accepting the quest.
> ...
> I also tried my prefab UI in the working scene and using that one the quest does NOT show up in my journal UI there either.
This sounds like it's an issue with the prefab UI. Are all of the fields of the UnityUIQuestJournalUI component assigned?
-
- Posts: 39
- Joined: Sat Apr 20, 2024 7:03 pm
Re: Quests not showing up in Quest Journal UI
The whole process works fine (almost).
1. I approach the Quest Giver.
2. I am presented with a quest.
3. I accept it (and the node is active)
4. I visit the area (and that node is active)
5. I return to the captain (and now all nodes are active)
All GUI elements updates as they should, when they should. The only issue is that the quest never appears in the Journal (even though I complete all parts and there is texts in all relevant places).
I also tried the tutorial database (with quest) and same result.
And as I said, I even tried with the tutorial prefabs. Same result.
I created a script that checks the journal when hitting U key.
1. I check after accepting the quest and get this:
Quest in journal: ExploreCircleAndReturn
Quest state: Active
2. I check after completing first step and get this:
Quest in journal: ExploreCircleAndReturn
Quest state: Active
3. I check after returning to the captain (last step) and get this:
No quests found in the journal.
Debug says:
Quest Machine: ExploreCircleAndReturn.SetState(Disabled, informListeners=True)
UnityEngine.Debug:Log (object,UnityEngine.Object)
PixelCrushers.QuestMachine.Quest:SetState (PixelCrushers.QuestMachine.QuestState,bool) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest.cs:933)
PixelCrushers.QuestMachine.Quest:DestroyInstance (PixelCrushers.QuestMachine.Quest) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest.cs:679)
PixelCrushers.QuestMachine.QuestListContainer:DeleteQuest (PixelCrushers.QuestMachine.Quest) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest MonoBehaviours/Quest List/QuestListContainer.cs:327)
PixelCrushers.QuestMachine.QuestJournal:CheckQuestState (PixelCrushers.MessageArgs) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest MonoBehaviours/Quest List/QuestJournal.cs:172)
PixelCrushers.QuestMachine.QuestJournal:OnMessage (PixelCrushers.MessageArgs) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest MonoBehaviours/Quest List/QuestJournal.cs:139)
PixelCrushers.MessageSystem:SendMessageToListener (PixelCrushers.MessageSystem/ListenerInfo,object,object,string,string,PixelCrushers.MessageArgs) (at Assets/ThirdParty/Pixel Crushers/Common/Scripts/Message System/MessageSystem.cs:402)
PixelCrushers.MessageSystem:SendMessageWithTarget (object,object,string,string,object[]) (at Assets/ThirdParty/Pixel Crushers/Common/Scripts/Message System/MessageSystem.cs:377)
PixelCrushers.MessageSystem:SendMessage (object,string,PixelCrushers.StringField,object[]) (at Assets/ThirdParty/Pixel Crushers/Common/Scripts/Message System/MessageSystem.cs:489)
PixelCrushers.QuestMachine.QuestMachineMessages:QuestStateChanged (object,PixelCrushers.StringField,PixelCrushers.QuestMachine.QuestState) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Utility/QuestMachineMessages.cs:160)
PixelCrushers.QuestMachine.Quest:SetState (PixelCrushers.QuestMachine.QuestState,bool) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest.cs:948)
PixelCrushers.QuestMachine.QuestNode:SetState (PixelCrushers.QuestMachine.QuestNodeState,bool) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest Node/QuestNode.cs:473)
PixelCrushers.QuestMachine.QuestNode:SetState (PixelCrushers.QuestMachine.QuestNodeState,bool) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest Node/QuestNode.cs:465)
PixelCrushers.QuestMachine.QuestNode:OnParentStateChange (PixelCrushers.QuestMachine.QuestNode) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest Node/QuestNode.cs:540)
PixelCrushers.QuestMachine.QuestNode:SetState (PixelCrushers.QuestMachine.QuestNodeState,bool) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest Node/QuestNode.cs:450)
PixelCrushers.QuestMachine.QuestNode:OnConditionsTrue () (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest Node/QuestNode.cs:527)
PixelCrushers.QuestMachine.QuestConditionSet:SetTrue () (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest Condition Set/QuestConditionSet.cs:222)
PixelCrushers.QuestMachine.QuestConditionSet:OnTrueCondition () (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest Condition Set/QuestConditionSet.cs:217)
PixelCrushers.QuestMachine.QuestCondition:SetTrue () (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest Subasset/Quest Condition/QuestCondition.cs:75)
PixelCrushers.QuestMachine.MessageQuestCondition:PixelCrushers.IMessageHandler.OnMessage (PixelCrushers.MessageArgs) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest Subasset/Quest Condition/MessageQuestCondition.cs:171)
PixelCrushers.MessageSystem:SendMessageToListener (PixelCrushers.MessageSystem/ListenerInfo,object,object,string,string,PixelCrushers.MessageArgs) (at Assets/ThirdParty/Pixel Crushers/Common/Scripts/Message System/MessageSystem.cs:402)
PixelCrushers.MessageSystem:SendMessageWithTarget (object,object,string,string,object[]) (at Assets/ThirdParty/Pixel Crushers/Common/Scripts/Message System/MessageSystem.cs:377)
PixelCrushers.MessageSystem:SendMessageWithTarget (object,object,string,PixelCrushers.StringField,object[]) (at Assets/ThirdParty/Pixel Crushers/Common/Scripts/Message System/MessageSystem.cs:441)
PixelCrushers.QuestMachine.QuestMachineMessages:DiscussedQuest (object,object,PixelCrushers.StringField,PixelCrushers.StringField) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Utility/QuestMachineMessages.cs:235)
PixelCrushers.QuestMachine.QuestGiver:ShowActiveQuest (PixelCrushers.QuestMachine.Quest) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest MonoBehaviours/Quest List/QuestGiver.cs:774)
PixelCrushers.QuestMachine.QuestGiver:StartMostRelevantDialogue () (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest MonoBehaviours/Quest List/QuestGiver.cs:684)
PixelCrushers.QuestMachine.QuestGiver:StartDialogue (UnityEngine.GameObject) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest MonoBehaviours/Quest List/QuestGiver.cs:597)
PixelCrushers.QuestMachine.QuestGiver:StartDialogueWithPlayer () (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest MonoBehaviours/Quest List/QuestGiver.cs:567)
UnityEngine.Events.UnityEvent`1<UnityEngine.GameObject>:Invoke (UnityEngine.GameObject)
PixelCrushers.TriggerEvent:OnTriggerEnter (UnityEngine.Collider) (at Assets/ThirdParty/Pixel Crushers/Common/Scripts/UnityEvents/TriggerEvent.cs:36)
Quest Machine: ExploreCircleAndReturn.SetState(Disabled, informListeners=True)
UnityEngine.Debug:Log (object,UnityEngine.Object)
PixelCrushers.QuestMachine.Quest:SetState (PixelCrushers.QuestMachine.QuestState,bool) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest.cs:933)
PixelCrushers.QuestMachine.Quest:OnDestroy () (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest.cs:665)
This is my script:
At no point does the quest appear in the journal.
I am using More Mountains top down engine if that is important
1. I approach the Quest Giver.
2. I am presented with a quest.
3. I accept it (and the node is active)
4. I visit the area (and that node is active)
5. I return to the captain (and now all nodes are active)
All GUI elements updates as they should, when they should. The only issue is that the quest never appears in the Journal (even though I complete all parts and there is texts in all relevant places).
I also tried the tutorial database (with quest) and same result.
And as I said, I even tried with the tutorial prefabs. Same result.
I created a script that checks the journal when hitting U key.
1. I check after accepting the quest and get this:
Quest in journal: ExploreCircleAndReturn
Quest state: Active
2. I check after completing first step and get this:
Quest in journal: ExploreCircleAndReturn
Quest state: Active
3. I check after returning to the captain (last step) and get this:
No quests found in the journal.
Debug says:
Quest Machine: ExploreCircleAndReturn.SetState(Disabled, informListeners=True)
UnityEngine.Debug:Log (object,UnityEngine.Object)
PixelCrushers.QuestMachine.Quest:SetState (PixelCrushers.QuestMachine.QuestState,bool) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest.cs:933)
PixelCrushers.QuestMachine.Quest:DestroyInstance (PixelCrushers.QuestMachine.Quest) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest.cs:679)
PixelCrushers.QuestMachine.QuestListContainer:DeleteQuest (PixelCrushers.QuestMachine.Quest) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest MonoBehaviours/Quest List/QuestListContainer.cs:327)
PixelCrushers.QuestMachine.QuestJournal:CheckQuestState (PixelCrushers.MessageArgs) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest MonoBehaviours/Quest List/QuestJournal.cs:172)
PixelCrushers.QuestMachine.QuestJournal:OnMessage (PixelCrushers.MessageArgs) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest MonoBehaviours/Quest List/QuestJournal.cs:139)
PixelCrushers.MessageSystem:SendMessageToListener (PixelCrushers.MessageSystem/ListenerInfo,object,object,string,string,PixelCrushers.MessageArgs) (at Assets/ThirdParty/Pixel Crushers/Common/Scripts/Message System/MessageSystem.cs:402)
PixelCrushers.MessageSystem:SendMessageWithTarget (object,object,string,string,object[]) (at Assets/ThirdParty/Pixel Crushers/Common/Scripts/Message System/MessageSystem.cs:377)
PixelCrushers.MessageSystem:SendMessage (object,string,PixelCrushers.StringField,object[]) (at Assets/ThirdParty/Pixel Crushers/Common/Scripts/Message System/MessageSystem.cs:489)
PixelCrushers.QuestMachine.QuestMachineMessages:QuestStateChanged (object,PixelCrushers.StringField,PixelCrushers.QuestMachine.QuestState) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Utility/QuestMachineMessages.cs:160)
PixelCrushers.QuestMachine.Quest:SetState (PixelCrushers.QuestMachine.QuestState,bool) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest.cs:948)
PixelCrushers.QuestMachine.QuestNode:SetState (PixelCrushers.QuestMachine.QuestNodeState,bool) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest Node/QuestNode.cs:473)
PixelCrushers.QuestMachine.QuestNode:SetState (PixelCrushers.QuestMachine.QuestNodeState,bool) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest Node/QuestNode.cs:465)
PixelCrushers.QuestMachine.QuestNode:OnParentStateChange (PixelCrushers.QuestMachine.QuestNode) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest Node/QuestNode.cs:540)
PixelCrushers.QuestMachine.QuestNode:SetState (PixelCrushers.QuestMachine.QuestNodeState,bool) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest Node/QuestNode.cs:450)
PixelCrushers.QuestMachine.QuestNode:OnConditionsTrue () (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest Node/QuestNode.cs:527)
PixelCrushers.QuestMachine.QuestConditionSet:SetTrue () (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest Condition Set/QuestConditionSet.cs:222)
PixelCrushers.QuestMachine.QuestConditionSet:OnTrueCondition () (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest Condition Set/QuestConditionSet.cs:217)
PixelCrushers.QuestMachine.QuestCondition:SetTrue () (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest Subasset/Quest Condition/QuestCondition.cs:75)
PixelCrushers.QuestMachine.MessageQuestCondition:PixelCrushers.IMessageHandler.OnMessage (PixelCrushers.MessageArgs) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest Subasset/Quest Condition/MessageQuestCondition.cs:171)
PixelCrushers.MessageSystem:SendMessageToListener (PixelCrushers.MessageSystem/ListenerInfo,object,object,string,string,PixelCrushers.MessageArgs) (at Assets/ThirdParty/Pixel Crushers/Common/Scripts/Message System/MessageSystem.cs:402)
PixelCrushers.MessageSystem:SendMessageWithTarget (object,object,string,string,object[]) (at Assets/ThirdParty/Pixel Crushers/Common/Scripts/Message System/MessageSystem.cs:377)
PixelCrushers.MessageSystem:SendMessageWithTarget (object,object,string,PixelCrushers.StringField,object[]) (at Assets/ThirdParty/Pixel Crushers/Common/Scripts/Message System/MessageSystem.cs:441)
PixelCrushers.QuestMachine.QuestMachineMessages:DiscussedQuest (object,object,PixelCrushers.StringField,PixelCrushers.StringField) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Utility/QuestMachineMessages.cs:235)
PixelCrushers.QuestMachine.QuestGiver:ShowActiveQuest (PixelCrushers.QuestMachine.Quest) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest MonoBehaviours/Quest List/QuestGiver.cs:774)
PixelCrushers.QuestMachine.QuestGiver:StartMostRelevantDialogue () (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest MonoBehaviours/Quest List/QuestGiver.cs:684)
PixelCrushers.QuestMachine.QuestGiver:StartDialogue (UnityEngine.GameObject) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest MonoBehaviours/Quest List/QuestGiver.cs:597)
PixelCrushers.QuestMachine.QuestGiver:StartDialogueWithPlayer () (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest MonoBehaviours/Quest List/QuestGiver.cs:567)
UnityEngine.Events.UnityEvent`1<UnityEngine.GameObject>:Invoke (UnityEngine.GameObject)
PixelCrushers.TriggerEvent:OnTriggerEnter (UnityEngine.Collider) (at Assets/ThirdParty/Pixel Crushers/Common/Scripts/UnityEvents/TriggerEvent.cs:36)
Quest Machine: ExploreCircleAndReturn.SetState(Disabled, informListeners=True)
UnityEngine.Debug:Log (object,UnityEngine.Object)
PixelCrushers.QuestMachine.Quest:SetState (PixelCrushers.QuestMachine.QuestState,bool) (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest.cs:933)
PixelCrushers.QuestMachine.Quest:OnDestroy () (at Assets/ThirdParty/Pixel Crushers/Quest Machine/Scripts/Quest/Quest.cs:665)
This is my script:
Code: Select all
using UnityEngine;
using PixelCrushers.QuestMachine;
using System.Collections.Generic;
public class QuestDebugger : MonoBehaviour
{
private QuestJournal questJournal;
void Start()
{
questJournal = GetComponent<QuestJournal>();
if (questJournal == null)
{
Debug.LogWarning("QuestJournal component not found on this GameObject.");
}
}
void Update()
{
if (Input.GetKeyDown(KeyCode.U))
{
CheckQuestsInJournal();
}
}
public void CheckQuestsInJournal()
{
if (questJournal == null)
{
Debug.LogWarning("QuestJournal component is missing.");
return;
}
List<PixelCrushers.QuestMachine.Quest> quests = questJournal.questList;
if (quests == null || quests.Count == 0)
{
Debug.Log("No quests found in the journal.");
return;
}
foreach (PixelCrushers.QuestMachine.Quest quest in quests)
{
Debug.Log("Quest in journal: " + quest.id);
Debug.Log("Quest state: " + quest.GetState().ToString());
}
}
}
I am using More Mountains top down engine if that is important
Re: Quests not showing up in Quest Journal UI
The addition of TDE is fine; that shouldn't be a problem.
Would it be possible for you to send a reproduction project to tony (at) pixelcrushers.com?
Would it be possible for you to send a reproduction project to tony (at) pixelcrushers.com?