-
-
Notifications
You must be signed in to change notification settings - Fork 11.6k
Description
EDIT 2026-01-12: See @sammyfreg WIP survey in this post: #9122 (comment)
Too many bindings
There is a list of Unreal Engine binding at:
https://github.com/ocornut/imgui/wiki/Bindings#unreal-engine
As of the time of writing this post, the list looks like this:
- UnrealImGui:
- original: https://github.com/segross/UnrealImGui (2017-2021)
- fork: https://github.com/benui-dev/UnrealImGui (2022-2023)
- fork: https://github.com/IDI-Systems/UnrealImGui (2022-2025)
- alt: https://github.com/sleeptightAnsiC/ImGui-for-Blueprints (2022) - VesCodes/ImGui (2023-2025) (w/ docking and multi-viewports) https://github.com/VesCodes/ImGui
- Cog (2023-2025) (w/ many ready to use tools): https://github.com/arnaud-jamin/Cog
- UnrealImGuiDocker (2023) (w/ docking and multi-viewports): https://github.com/Sharundaar/UnrealImGuiDocker
- amuTBKT/ImGuiPlugin (2025) (w/ docking and ImPlot etc.) https://github.com/amuTBKT/ImGuiPlugin
- UnrealEngine_ImGui (2017): https://github.com/sronsse/UnrealEngine_ImGui
- UnrealNetImgui (plugin for NetImgui, 2020-2024): https://github.com/sammyfreg/UnrealNetImgui
- Also see: Useful Extensions: Unreal Engine specific for: Cog, PropertyWatcher, UnrealImGuiTools etc.
If you know some missing let me know.
Honestly it is quite a problem that the list is so large. It makes it difficult for users to pick a binding, it makes it difficult for the community to support one, or for me to provide feedback to one. I've talked to dozen of studios using Dear ImGui over Unreal Engine, there is a clear trend of this happening, and I've heard frustration about small hiccups on bindings.
What Epic is doing and not doing
My sincere hope was that Epic would eventually show up and develop+maintain a binding that ticked all the boxes, make it a external / opt-in plugin and let users bring their own version Dear ImGui to it. But nope, they decided to ignore it and develop their own IMGUI API over Slate. I'm obviously not against competing technology, and it's great there's work on this topic, but the ratio of effort and their published reasoning seems a bit off.
Watch from 7:00 onward:
Creating Debug Tools with SlateIM | Unreal Fest Stockholm 2025
https://youtu.be/zilYOy1w2b0?si=-PnHZszoQtE3nr3T&t=420
- On maintenance: certainly it would be a drop in the ocean for them to develop and maintain a Dear ImGui bindings, certainly much lower maintenance that them developing a new API. It would solve the immediate issues that their users have. They wouldn't need to take responsibility of much, certainly not of providing Dear ImGui itself IMHO (best to allow users to bring their code drop). Generally they would take less responsibility allowing people to self organize and keep using what they already use.
- On consistency: I'm not sure if they tried to use matching font and colors but it would go half of the way. The purpose of Dear ImGui especially when above UE is to quickly develop debug tooling that will also work on target. If you try to 1:1 match with an existing toolkit it would come with a cost, and as a writer of tools you end up carrying extra arbitrary weight. I imagine they overlooked Dear ImGui as somehow clunky, which it is sort of, but for a good reason. Consistency is nice but if you start making efficiency/usage trade-offs in the name of visual consistency you are missing out on something. Bizarrely their current version of the poster-child code (in video above) doesn't show how to have aligned labels, which is an odd showcase for consistency.
- On tab management, easy windowing: that could be developed as part of a binding.
Other thoughts:
- For a third party studio, using Dear ImGui mean they can more likely share tools and tooling code with offline tools not developed inside UE.
- There are already tools build over Dear ImGui over UE, such as Property Watcher or Cog, or NetImGui for Unreal
Epic are currently asking some studios to evaluate SlateIM. Some private feedback I got suggested it seems impossible for many at this point to switch to SlateIM because of (1) too many lacking features and (2) code already written using Dear ImGui. Obviously SlateIM will likely improve over time (it was first pushed in UE in January 2025 and is now being promoted) and is likely to attract new users.
Regardless of how SlateIM evolves, my job today is sort of to ensure that Dear ImGui users can access the best backend for their platform of choices. It's perfectly fine if both cohabit and I see no reason to wait until they decide to better support Dear ImGui.
My prediction is that there is a possibility that in some time (e.g. a year or so) they observe adoption on AAA again and decide it is worth developing a Dear ImGui plugin to support their users, but we'll see.
Proposal
I think as a community we should aim to converge toward one principal supported plugin for Enreal Engine.
IMHO the first step would be:
- Help me update the list above if anything is missing.
- Help making a thorough comparison of all existing solutions.
- As an immediate step, if this comparison is widely publicized that would help users choose.
- If you or your team are users Dear ImGui on Unreal Engine, consider writing some feedback on this thread about what you are using, your wishes, problems, thoughts on this, etc.
- Please share this link to interested users.
Some ideas for criteria to compare backends, and to aim for an "ideal" backend:
- How simple the code/repo is.
- How simple it is to install/configure.
- Does it work on all targets.
- Does the integration creates constraints on how to use/access Dear ImGui? If so, which ones? (Compare to typical C++ app, where you can call
ImGui::Begin()in the middle of a random callstack to create controls to edit local variables that are on the stack. There are many flexible ways to use the API and we want to ensure a binding doesn't restraint it excessively. - What UE version are supported?
- What features are supported?
- Clipboard.
- Seamless Multi-viewports.
- Docking
- Embed popular extension such as ImPlot.
- Gamepad controls
- Cursor shapes
- Does it manages to integrate well with UE systems, e.g. dock imgui windows into slate container?
Based on this knowledge, we can try to get developers to gather and see if efforts could converge.
I don't have much resources to put into implementing UE adjacent code myself, but I could provide feedback and given that there is industry needs, if a good idea emerge I could be able to find financial support for longer maintenance.
I only very rarely do that, but I'm going to tag people who could be interested in this discussion: @segross @benui-dev @IDI-Systems @sleeptightAnsiC @VesCodes @Sharundaar @amuTBKT @sammyfreg @arnaud-jamin @guitarfreak @nakdeyes. Sorry for the spam 🙇
Random bonus pictures of stuff over Unreal:
