Forum rules - please read before posting.

Adventure Creator not initializing in second scene after Xbox init in first (non-AC) scene

Hi Chris,

I’m running into an issue with Adventure Creator not initializing correctly in my Xbox GDK Unity build, and I’d appreciate your insight.

In my setup:
• Scene 1 (non-AC): This is the startup scene where I initialize Xbox services (sign-in, achievements, save handlers, etc.).
• Scene 2 (AC): This is the first scene that contains Adventure Creator logic. It includes the PersistentEngine prefab and AC components.

The problem: When the game transitions from Scene 1 to Scene 2, AC doesn’t appear to initialize. I don’t see the usual KickStarter logs or any expected AC behavior. Menus don’t show, and AC Actions are not triggered.

When I test Scene 2 in isolation (i.e., if I start the game directly from the AC scene), it works fine. So it seems something about loading into an AC scene from a non-AC one is breaking the initialization.

Questions:
1. Is there anything specific that needs to happen when transitioning into an AC scene from a non-AC one to ensure proper initialization?
2. Are there any known limitations with initializing AC mid-game after Unity has already loaded other systems?
3. Could AC require a fresh boot scene with the PersistentEngine already present to work correctly?

Let me know what you think or if there are specific debug steps I can take.

Thanks,
James

Comments

  • Starting a game from a non-AC scene, and then moving to an AC scene, should be the same process as starting the game from an AC scene directly. You shouldn't need any extra steps beyond that.

    What are your AC/Unity versions, how are you switching from Scene 1 to Scene 2, and does it work if you remove all of the services code from Scene 1 (so that Scene 1 merely switches to Scene 2)?

  • Hi Chris,

    Following your advice, I tested loading straight into the Credits scene (which is the first AC scene in the build) — however, on Xbox, this results in a black screen. There are no menus, no camera movement, and no UI. It works perfectly in the Unity Editor, and the PersistentEngine is correctly marked as DontDestroyOnLoad.

    We’ve confirmed the following:

    • KickStarter.stateHandler and all other AC managers are null on Xbox
    • PersistentEngine is never instantiated at runtime
    • We are not stripping AC manually, and the managers are all assigned via the Game Editor
    • The initial scene (Credits) is 100% an AC scene and works on all other platforms
    • Our build includes AdventureCreator.asmdef and relevant asset bundles
    • If we skip Xbox initialization and go straight to the Title Screen (another AC scene), the same issue occurs — zoomed-in camera and no menus, confirming PersistentEngine is not there
    • All of this strongly suggests the AC bootstrap is silently failing on Xbox — even in scenes where it should initialize by default. Is there any known reason why AC's KickStarter might not run in an Xbox (GDK) build, even with a valid AC scene?
    • Thanks again for all your support — we’re happy to provide logs or build configs if helpful.
  • Following your advice, I tested loading straight into the Credits scene (which is the first AC scene in the build)

    That's not what I was suggesting. I was referring to testing out having your first scene still be a non-AC one, but one that does not initialise XBox services.

    I need to know your AC/Unity versions, and how you are switching scenes - see above.

    The AC bootstrap is as follows:

    • MultiSceneChecker (inside GameEngine) calls RegisterAsMain from its Awake function
    • This calls KickStarter's Initialise function
    • Initialise will stop if it detects that you are in the "Loading" scene. If you have one defined, undefining this in the Settings Manager
    • Initialise will then run KickStarter's SetPersistentEngine function, which will attempt to spawn in PersistentEngine from Resources. If it cannot be found, it will generate a new one programatically

    RegisterAsMain is a public function and can be called manually if need be - but try placing down Debug.Log statements through the above route and see which ones show up in the log.

  • Hi Chris,

    Thanks for the clarification earlier.

    v1.79.3
    Unity 2022.3.51.f1

    Following your suggestion, we tested the setup where the first scene is still a non-AC scene, but this time we disabled all Xbox service initialization in that scene. The Credits scene (our first proper AC scene) follows directly after.

    Here's what we found:

    The scene does load, and we confirmed it reaches our usual objects (e.g. InitSaveHandlerWhenReady).

    However, Adventure Creator does not initialize at all on Xbox in this flow — there are no logs from KickStarter.Initialise() or any AC bootstrap systems.

    It behaves as if AC has been completely stripped or skipped, even though everything works as expected in the Unity Editor and on other platforms.

    We tested forcibly instantiating the PersistentEngine prefab manually and calling MultiSceneChecker.RegisterAsMain(). This successfully kicks off AC initialization — confirming that AC’s bootstrap simply isn't running on its own on Xbox in this scene flow.

    So in short: we believe AC is not bootstrapping on Xbox unless we manually instantiate PersistentEngine and trigger RegisterAsMain(), even though the Credits scene is a full AC scene.

    Let me know if you’d recommend a different approach here, or if there’s a known issue with AC not bootstrapping on certain platforms unless it's the very first loaded scene.

    Thanks again for the support — really appreciate it!

    Best,
    James

  • edited June 22

    I need details on how you are switching scene.

    Did you place a log in MultiSceneChecker's Awake function?

  • Hi Chris,

    Thanks again for continuing to look into this with us.

    You're right to suggest placing a Debug.Log inside MultiSceneChecker.Awake() — that’s a good next step, and we’ll test that specifically to see if it gets called on Xbox. Since standard Unity Debug.Log output isn’t captured in Xbox Watson logs, we're also considering alternative ways to verify if that method runs — such as toggling an in-scene object or writing to a file, if possible.

    Our broader question is: how can we confirm whether AC’s initialization logic is running on Xbox, especially when entering an AC scene from a non-AC one? On other platforms, this works fine, but on Xbox, it seems like AC’s bootstrap may not be triggering at all — unless we manually instantiate the PersistentEngine and call RegisterAsMain().

    Any recommendations for how best to debug this path on console would be much appreciated.

    Thanks again,
    James

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.