Irrlicht’s GUI editor started as a test tool for the GUI serialization which was my first big job as a new member of the Irrlicht dev team. The editor itself inherits IGUIElement and is created by the GUIEditorFactory so it’s a widget in its own right, it can be added anywhere to edit its siblings. Nothing is hard-coded, it uses the built-in factory and other factories to create things and uses the serialization methods to read the attributes of the objects it is editing.
It saves to and loads XML files and can change the global GUI options too:
It is of course skinnable, so good for editing your games:
The editor has been part of Irrlicht since version 1.3, so you can find it at the usual place