The NeL interface system is a data-driven GUI: windows, widgets, layout, styling, game-data bindings and most behavior are described in XML interface files, reactive state lives in an interface database, behavior hooks are action handlers and Lua scripts. The C++ engine (the NeL GUI library) parses the XML, renders everything from a texture atlas, and routes input. A complete UI, including whole mini-applications, can be authored without touching engine code.
This section is for anyone building a UI: interface authors, scripters, and programmers. The library internals and the embedding contract for new applications are documented separately under NeL GUI.

Everything on this page tree is verified against the GUI widget sample (nel/samples/gui/), a standalone showcase you can run natively or in the browser. It is the quickest way to experiment: nl_sample_gui --xml your_file.xml -d your_data_dir parses extra interface XML on top of the showcase.
ui:sample:editors:content:eb_text.<root id="sample"> → ui:sample). Only registered windows draw; a stray group at the root parses fine and renders never.UI:..., SERVER:...). Widgets bind to leaves; <link> elements evaluate expressions when leaves change and write the result into element properties. See Database, links and expressions.onclick_l="proc" params_l="proc_toggle|help"). Sequences of them are procedures. See Action handlers and procedures.ui('views').active = false) and can drive the whole interface at runtime. See Lua scripting.Historical: the GUI Editor OVQT plugin and old UI editing notes from the Atlassian archive; the client-side /loadui reload workflow described there still exists in the Ryzom client.