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:
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:
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
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