In 4.2 they apparently changed how high level scene swapping is timed (no longer deferred). Since beginners like to use change_scene_*() and autoloads combo instead of direct node management, we'll see a lot of confusion and complaints about "broken" projects in this department when switching to 4.2.

Gowydot You're not required to update to every new Godot version, and in fact that's usually a bad idea even if there aren't any immediate breaking changes. Standard practice in the industry is that you stick to the version you started with; this applies to all engines. If you wait for the "perfect" engine version you will wait forever.

    I had a look into it a bit more and this are what I find for my project.

    Scene change / Save load error-
    xyz is right. Those errors are caused by my scene change script. I need to read more into how to update it.

    Model mesh and textures not found-
    Majority of errors are from this but the solution turns out very simple (apart from project > tool > update mesh). Somehow it requires update the naming of import mesh eg, "playermodel"(4.1) to "player_model"(4.2). That was why the textures and model were missing and probably caused the corruption of my player.tscn. The fix is to get your original .gltf and copy over to your project again and it should update the name for you. (Then you need update your model path in your script too)

    Shader missing-
    I could still see the shader on the model but not while running the game. Probably same solution with updating the path, but haven't look it so not confirm yet.

    I guess I was a bit over reacting (tbf though with all those red errors popping up everywhere 😆). So yea with 4.2 you need to pay attention to your model update and scene change, as document suggests.

    @Rogarth
    That's why I jumped to work on 4 only and not 3. Though, I anticipate there will be major upgrade later on physics and IK so I don't bother doing anything on that just yet.

    5 days later

    Rogarth Standard practice in the industry is that you stick to the [major] version you started with;

    FTFY.

      Even that isn't always standard practice. Any version is subject to reaching end-of-life, and before that it may become less supported.

      Megalomaniak Unless there's something you REALLY need from a new version, minor versions included, it's typically not worth the risk to upgrade if what you have is already working, especially for large projects. Upgrading for the sake of upgrading has a potentially large technical cost for minimal benefit...if you started with a particular version, you presumably did your due diligence and determined that it was suitable for your project, so there usually wouldn't be a compelling reason to upgrade anyway. The exception is patch upgrades which contain no new or altered features, just bugfixes.

      If you do decide to upgrade the engine for whatever reason, you would do so with the expectation that some things may break and you will need to allocate development time for it (and of course you'd do that with a separate branch of your project in case you need to revert). If there's some sudden new requirement that requires an engine upgrade to continue publishing new updates of your game (e.g. Apple changing stuff), it would usually be better to fix that one specific thing in the engine source code yourself instead of doing an entire upgrade.

      Remember, I'm pushing back on the idea that "maybe you should only make small short-term projects with Godot because updates break stuff". Long-term projects are fine; there's no mandate to update the engine mid-project and in the industry it's generally discouraged. Upgrade to the latest when starting a new project, sure.

        Rogarth The exception is patch upgrades which contain no new or altered features, just bugfixes.

        That's particularly what I meant, yes.

        4 days later

        Tomcat I've scrutinized the changes in G4.2. My conclusion is that this version is largely transitional. Too many changes are hanging around "in the middle of the road". It is highly likely that G4.3 will also contain many critical changes.

        4.2 is way better than 4.1 though. I say use 4.2 or 3.6.

        Major reasons to stay on 3.6 are 3.x addons and html5 issues in 4.x. If neither apply and you're making a fairly simple game on a short timeframe (days, weeks, months) you can just do it all on 4.2. If you're starting a big multi-year project, you might as well bite the bullet and struggle with 4.x growing pains because you're going to want the newer features and 3.x will probably be obsolete by the time you're done anyway. But you could start on 3.6 and plan on porting to 4.x when it feels more compelling.

        And ALWAYS back up everything before every single upgrade. Git isn't enough, you need to back up your .godot folder in order to /easily/ roll back if there are problems.

          DaveTheCoder
          I should've said 3.x lol. I'm only using 4.x. I was just assuming 3.6 was released and it's more stable than 4.x. I mean, it has to be, right?