Page 1 of 2

Skipping because no entries are currently valid?

Posted: Fri Apr 12, 2019 5:03 pm
by wiverson
I have a simple conversation set to begin on start - basically integrating the quick start into my project. I'm getting this error message:

Code: Select all

Dialogue System: Conversation triggered on Tutorial Quest Giver but skipping because no entries are currently valid.
Here's the full log:

Code: Select all

Dialogue System: Lua(Actor = {}; Item = {}; Quest = Item; Location = {}; Conversation = {}; Variable = {}; Variable["Alert"] = "")
Dialogue System: Lua(Actor = {}; Item = {}; Quest = Item; Location = {}; Conversation = {}; Variable = {}; Variable["Alert"] = "")
Dialogue System: Dialogue System Trigger is firing OnStart.
Dialogue System: Conversation triggered on Tutorial Quest Giver but skipping because no entries are currently valid.
Dialogue System: Unregistering transform Player Navigator from actor 'Player'.
Dialogue System: Unregistering transform Tutorial Quest Giver from actor 'Planita Shipyard'.
Poking in with the debugger, I found that in this section:

Assembly-CSharp-firstpass\Assets\Plugins\Pixel Crushers\Dialogue System\Scripts\Manager\DialogueManager.cs : 330

Code: Select all

public static bool ConversationHasValidEntry(string title, Transform actor, Transform conversant)
{
return hasInstance ? instance.ConversationHasValidEntry(title, actor, conversant) : false;
}
The actor/conversant appear to be fine in the debugger, but hasInstance is always evaluating to false. Am I missing a manual setup of a DialogSystemController object...?

Thanks!

Re: Skipping because no entries are currently valid?

Posted: Fri Apr 12, 2019 5:05 pm
by wiverson
So the Dialog System Controller is attached to the Dialogue Manager prefab which I dragged into my project. Hmm.

Re: Skipping because no entries are currently valid?

Posted: Fri Apr 12, 2019 5:14 pm
by Tony Li
Hi,

Does your scene have a DialogueSystemController component? Typically you'll add the Dialogue Manager prefab found in Assets / Plugins / Pixel Crushers / Dialogue System / Prefabs, which has a DialogueSystemController and some other scripts.

If your scene was missing a Dialogue Manager and you add it, make sure to assign your dialogue database to its Initial Database field.

---

EDIT: Sorry, our replies crossed. Yes, there needs to be a Dialogue Manager.

Re: Skipping because no entries are currently valid?

Posted: Fri Apr 12, 2019 5:23 pm
by wiverson
Something is destroying the entire Dialogue Manager object in the runtime hierarchy. It's there when it starts running - I set a breakpoint on setting m_instance, and then it disappears by the time I get to the call stack.

Re: Skipping because no entries are currently valid?

Posted: Fri Apr 12, 2019 5:30 pm
by wiverson
This is super weird. The Dialogue Manager object is in the hierarchy when I hit run, and something is deleting it without any error message. Huh.

Early in the run (between when I hit play and the Debug.Log for the no entries are currently valid) I see in the breakpoint that m_instance is finding the DialogueSystemController fine. Then, the breakpoint for the stack chain I posted hits, and by that point the entire Dialogue Manager object has disappeared from the hierarchy.

- I have flipped off the Input Device Manager and Instantiate Prefab components on the Dialogue Manager.
- I unpacked the Dialogue Manager prefab completely.
- Under Other Settings on the Dialogue Manager object, Allow Only One Instance, Dont Destroy On Load and Preload Resources are checked.
- Save System is active, but Save Current Scene is not checked.
- There is a dialogue database selected.

Re: Skipping because no entries are currently valid?

Posted: Fri Apr 12, 2019 5:31 pm
by Tony Li
Do you have another DialogueSystemController in the scene? By default, they are exclusive. If one already exists, it will destroy duplicates. (That's the Allow Only One Instance checkbox.) Also by default they are marked Don't Destroy On Load, meaning they survive scene changes.

A quick way to check for duplicates is to type this into the Hierarchy window's search bar:

t:DialogueSystemController

Re: Skipping because no entries are currently valid?

Posted: Fri Apr 12, 2019 5:34 pm
by wiverson
Nope, checked to make sure earlier and just checked again.

Re: Skipping because no entries are currently valid?

Posted: Fri Apr 12, 2019 5:35 pm
by wiverson
FWIW Unity 2018.3.12f1 on Mac OS X.

Re: Skipping because no entries are currently valid?

Posted: Fri Apr 12, 2019 5:38 pm
by Tony Li
Very strange. Does the Dialogue System's DemoScene1 work correctly?

What if you try this as a test:

1. Create a new, empty scene.
2. Add the Dialogue Manager prefab.
3. Assign your dialogue database.
4. Set up a Dialogue System Trigger to play a conversation OnStart.

Does that work?

Re: Skipping because no entries are currently valid?

Posted: Fri Apr 12, 2019 5:43 pm
by wiverson
So, I added a debug line to DialogueSystemController, and something is definitely calling Destroy on it. OnDestroy appears to be called lazy, so I'm not getting any stack trace to see what's destroying it. :\

I'll try with an empty scene and see what I can see...