Skip Navigation

Daily Godot Tip #22: The replace_by function can be used if you need to replace a certain node with another while keeping all children within the scene

If you do this remember to free the old one (or have some way of accessing it) since the engine won't do it for you

5
5 comments
  • @Ategon I knew of this, but have literally never needed it. Do you know of a case where it's useful? Just curious if other people structure their games differently or something.

    5
    • It definitely has more niche use due to the children interactions. Its pretty much just a shorthand for one specific case of function calls you would do so that you dont have to mess with all of reparenting, position, etc. for that case

      Its more useful for engine and tool development (and is used in the engine for the change type button when you right click)

      Off the top of my head a use case in a game would if for some reason you have placeholders, replacing the placeholder with the actual node. Another one is if your enemies change based on a specific metric in the game (e.g. once a run hits 1 minute all enemies change to be a harder enemy), you can just replace the old enemy node/script with the new one so that you get the updated script (would have to also manage the sprite in that case though)

      9
    • Not sure about the context of a game, but I've used this to replace some UI nodes when the game switches to portrait mode on mobile. Sometimes it's just easier to use different containers.

      4
    • Using nodes to compose art (or even component-based code?) would be my guess. Though sure, for many scenarios/designs a node swap wouldn't be needed.

      1