Setting up a UI

Godot Version

4.5

Question

I’m currently making a UI, but I don’t know whether or not its bad practice to have multiple UI’s on different scenes or condense all of the UI’s into one scene. Currently the UI’s I plan on having is a main menu, shop, UI displaying resources, and a UI that displays information on a unit.

I would also like to know if it is a good idea to instaniate UI’s into one main node.

TL;DR: Yes, it’s good practice to keep your UIs in separate scenes and instance them under a single UI root.
It keeps things modular, clean, and scalable as your project grows.


If the UI will be the same in more than one scene, just save it as it’s own scene for reusability sake.

But know that there’s no “one correct way” to organize UI in Godot, but here are the practices that tend to work best in real projects:

Keep each major UI as its own scene

Main menu, shop, resources HUD, unit info panel are are completely different parts of the interface, so giving each one its own scene keeps things modular and easier to maintain.

Use a single UI root to organize them

It’s totally fine (and very common) to instantiate all UI scenes under one main UI node in your main scene:

Main.tscn
 └─ UI
      ├─ ResourcesUI
      ├─ UnitInfoUI
      └─ ShopUI (shown only when needed)

This gives you a clean place to control visibility, transitions, and messaging.

Avoid one giant all-in-one UI scene
Putting everything inside a single massive scene quickly becomes hard to manage.
Separate scenes = cleaner hierarchy, easier testing, and better reusability.

Instantiate only when needed
Things like HUD elements can stay loaded all the time.
Menus such as the shop or unit info can be instanced only when opened.

1 Like