Forum rules - please read before posting.

Clarification on Global Conversations

Hi,

I have ran into some problems using Global Conversations, where the Conversations just keep resetting to their original states or dialogue options that were previously disabled (using turn off forever) are "randomly" enabled again.
I recently updated AC to 1.67.5 and I was wondering if there was something I'm not aware that could have changed the way Global Conversations work. I searched through the change log, but didn't notice anything.

I can't nail down the problem, and it's giving me quite a headache. Couple of things I wanted to double check and understand better are:

  • What happens if one of the scenes doesn't have a global conversation? Not all scenes require access to all of the Conversations, so I didn't want clutter every scene with all Global Conversations. Could that cause problems?
  • When do Global Conversations load / are set? I have turns in my game, and essentially when you click a "next button", it takes you to the next turn. In between the turns, I use a separate scene that is used to set a bunch of variables (update turn number, nothing too complicated). It turns on for a second or so, and I run another scene straight after that - this is usually when all things break. I tried both - adding all of the Global Conversations to this scene, and removing all of them, but somehow this scene is always breaking things.

Are there any other issues / things I should keep in mind, or are worth double checking that could be causing the problems? I understand this may be a bit vague, but I can't quite grasp the exact issue I'm having, so I'm just looking for some pointers into the right direction.

Thank you!

Comments

  • You should be seeing messages in the Console that tell you exactly what's going on. What are you seeing?

    The basic principle of the "SyncConversations" script is that - upon changing scene - it attempts to find the previous scene's RememberConversation data for an object that has global Conversation's Constant ID, and then apply it to the one in the new scene.

    You shouldn't have to place it in scenes in which it's not needed, because if "previous scene data" can't be found, no change will be made.

    So this was working before upgrading to v1.67.5? What version were you working with before? I shall attempt a recreation.

  • edited May 2019

    Upgraded from 1.65.2 ->1.67.5 (I don't think this is the cause anymore).

    When going from scene to scene where both of them have the same Global Conversations I get something like:
    "Load data for scene Gardens - 3, Searching for data ID: 1786954"
    "Found save data in last scene, applying to self."
    Multiple times, for each of the Global Conv.

    If there isn't any matching Global Convs, it just searches through all of them, but there's no "Applying to self" and that's when things break. The "next turn" I mentioned earlier doesn't really matter, as it looks to me that whenever I go to any scene that doesn't have the Global Conv from last scene, and then you go back to the scene with that Global Conv, it breaks.

    As an example:
    Scene#1 with Global Conv#1 -> Scene#2 without the Global Conv#1 -> Scene#1 with Global Conv#1 = Wrong Options enabled/disabled.

    That's the only pattern I have managed to spot, but once or twice that wasn't even the case, so I'm totally lost to be fair.

    EDIT:
    Example above works fine as far as I can test now.

    What does break, however is something like this:
    Scene#1 with Global Conv#1 -> Scene#2 without the Global Conv#1 -> Scene#3 with Global Conv#1 = Wrong Options enabled/disabled.

    If you leave Scene#1 go to scene without the Global Conv and return to the same scene, it works.

    If you leave Scene#1, go to scene without the Global Conv, and then go to another scene that does have the same Global Conv, then it breaks.

  • After further testing, it became apparent that the main issue was that I didn't have the Global Convs in every scene.

    I've now added all Global Convs to every scene, even the ones that don't really need it. This solved half the problem.

    The "next turn" scene I've mentioned before, created most of the issues now.

    How it worked:
    Press "Next Turn" -> Switches to "Next Turn" scene, which has OnStart Actionlist that after setting some variables, takes you straight away to the next Scene.

    It seems that ConversationSync script didn't get a chance to run, and to fix this I've removed automatic switch to next scene and instead, made it so that you have to click a hotspot to progress - this seems like it solved all the issues.

    Should the ConversationSync script be able to work in my previous setup?

  • I stand corrected - in your example, you would need to have an instance of the Conversation in Scene #2 for it to work. Otherwise, the Conversation in Scene #3 won't know what scene to load data from.

    The loading of this data hooks into the OnAfterChangeScene event, which is triggered after OnStart. I shall consider if this can/should be amended, but there are a couple of workarounds you can try:

    1. Amend the script so that the data-loading occurs in an Awake() function, which will occur before OnStart.
    2. Insert a brief delay into your OnStart cutscene with an Engine: Wait Action. Setting a value of -1 causes a single-frame delay - this may be all you need.
  • Hi, sorry for late reply.

    I've just tested the option #2 as it seemed more straightforward. The -1 didn't do the trick, but 0.1 instead works like a charm.

    The OnStart Action runs another action in the scene that starts with 0.1 delay. That simple addition allows for the dialogues to be loaded and everything works as expected!

    Thank you for the help!

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Welcome to the official forum for Adventure Creator.