Skipping because no entries are currently valid?

Announcements, support questions, and discussion for the Dialogue System.
User avatar
wiverson
Posts: 22
Joined: Wed Feb 13, 2019 7:49 pm

Skipping because no entries are currently valid?

Post 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!
User avatar
wiverson
Posts: 22
Joined: Wed Feb 13, 2019 7:49 pm

Re: Skipping because no entries are currently valid?

Post by wiverson »

So the Dialog System Controller is attached to the Dialogue Manager prefab which I dragged into my project. Hmm.
User avatar
Tony Li
Posts: 21925
Joined: Thu Jul 18, 2013 1:27 pm

Re: Skipping because no entries are currently valid?

Post 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.
User avatar
wiverson
Posts: 22
Joined: Wed Feb 13, 2019 7:49 pm

Re: Skipping because no entries are currently valid?

Post 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.
User avatar
wiverson
Posts: 22
Joined: Wed Feb 13, 2019 7:49 pm

Re: Skipping because no entries are currently valid?

Post 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.
User avatar
Tony Li
Posts: 21925
Joined: Thu Jul 18, 2013 1:27 pm

Re: Skipping because no entries are currently valid?

Post 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
User avatar
wiverson
Posts: 22
Joined: Wed Feb 13, 2019 7:49 pm

Re: Skipping because no entries are currently valid?

Post by wiverson »

Nope, checked to make sure earlier and just checked again.
User avatar
wiverson
Posts: 22
Joined: Wed Feb 13, 2019 7:49 pm

Re: Skipping because no entries are currently valid?

Post by wiverson »

FWIW Unity 2018.3.12f1 on Mac OS X.
User avatar
Tony Li
Posts: 21925
Joined: Thu Jul 18, 2013 1:27 pm

Re: Skipping because no entries are currently valid?

Post 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?
User avatar
wiverson
Posts: 22
Joined: Wed Feb 13, 2019 7:49 pm

Re: Skipping because no entries are currently valid?

Post 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...
Post Reply