Hello everyone... If you have not heard already, there was a particular feature I have been waiting on for almost a year now... Lua GUIs! My first project is to implement a IMGUI Hybrid library to help everyone else (And myself of course) in developing these GUIs. I already plan on implementing the following: Button Text Box Image Check Boxes Radio Buttons If anyone else has any particular selection or suggestions for a GUI element that they would like added / feel that they need then be sure to make a suggestion! I also would like any feedback/suggestions on how these elements should behave... Should they hold to the tried-and-true IMGUI, or should they be more of a OOP/Form like system. Any other implementation suggestions are highly encouraged. I can do whatever I feel like to meet my own needs, but if this is going to be a starter library to help people prototype their GUI's it needs to be easy, quick, and understandable. Again... comments/suggestions strongly encouraged. Since we have 3 votes on "What the hell is an IMGUI" I might as well explain it... And IMGUI stands for Immediate Mode Graphical User Interface. Basically what that means is the entire element's functionality is taken care of with a simple statement (usually within an If for things like buttons) and all the logic for that element is done at that very instant. They do not "exist" from an OOP standpoint, and their lifespan does not even reach out to the current scope - only during their execution of the Widget's code itself do they exist. Each widget is assigned an ID which is automatically generated and assigned to differentiate between the two. However, since these widgets do not "exist" there is no such thing as communicating between them with lookup functions. Hell you could even have 10 different widgets use the same variable at the same time - of which they would ALL be updated synchronously across all widgets without ANY extra code. There are plenty of benefits and only a few drawbacks to implementing these once you understand how they work. Here is an IMGUI coded button and then a traditional RMGUI: Code: --IMGUI Style if button("label", 100, 100) then buttonAction() end --Windows Form/OOP Style local button = IMGUI.button("label",100,100) -- Adds this to some global list to be looped through button.setLabel("NewLabel") button.setVisible(true) button.onClick = buttonAction local textbox = IMGUI.textbox("Default Text", 250, 100) textbox.onTextChanged = textChange textbox.onEnterPressed = submit local currentText = textbox.getCurrentText() Pros: Less memory needed to store states and information about the elements Very minimal syncronization - You dont need to do things like "setLabel()" each update to change a value in real time Quick - Less functions lookups/ops to do things means more performance (Mainly for other languages... no really Lua) No complicated callback systems Uses "widgets" rather than individual classes - which in turn lowers the code size Cons: Needs to be drawn each frame - But the new Starbound Console behaves like this ANYWAY so its still a win Requires a different way of thinking and not easy to grasp to those who are new to it - Slight learning curve Since there is no storage in states for these buttons, it relies on many global variables... most of which will be coming from your Starbound Objects anyway in real time. Making this both a pro and a con. I really suck at explaining things, so if you are still confused, be sure to do some Googling on the topic. This type of GUI has been around for quite some time.