Features: - 6 different types of UI elements: singles (buttons and panels), passthrough (text and images), input fields, state-switch buttons (toggles, etc.), sliders, grids - Various types of input detection to interact with UI elements - Layouts can be created in the editor then stored as strings to be used in other projects Costs: - About half a megabyte JSON overhead (excluding editor) - Only supports stamping, not cloning, for text and images - Relies on a series of callback broadcasts to function - Uses 4 sprites if you want all features (text engine, input, UI input, UI layout) So this is best for bigger bitmap-only projects with a lot of UI that are going to use a centralized broadcast loop. It’ll be well worth it for some of my own planned projects, but is not a 1-size-fits-all UI system. The code for this editor (modified so it makes sense when you press run_test): stateswitch/-230/-40/20/20/*/1/#snap/snap/1/4|5|8|10|20/\slider/0/-140/10/120/*///e_scroll/#my_elements_V.I/*/#my_elements_V/1/0/\grid/-200/-140/200/120/*///my_elements/1/1/10/200/20/0/0/l/h/0/#e_scroll/0/0/v|0|0|e_scroll/\passthrough/-230/-10/240/180/*///\single/-230/-65/20/15/*/1/UP/layer_up/1/\single/-230/-80/20/15/*/1/DN/layer_down/1/\input/-230/-110/20/20/*/1/I/import/1/\stateswitch/-230/-140/20/20/*/1/E/export/1/hide|show/\single/-230/-170/20/20/*/1/|>/run_test/1/\single/-200/-170/180/20/*/1/+/add_element/1/\single/-10/-170/20/20/*/1/-/delete_element/1/\grid/-230/-10/240/180/-///element_drawer/1/inf/inf/10/10/0/0/l/l/0/0/0/0//\passthrough/20/80/210/90/*/2/#tooltip\input/20/55/210/15/*/1/#label/label/1/\stateswitch/20/30/100/15/*/1//type/1/single|passthrough|stateswitch|input|slider|grid\input/20/5/50/15/*/1//x/1\input/70/5/50/15/*/1//y/1\input/20/-20/50/15/*/1//width/1\input/70/-20/50/15/*/1//height/1\input/20/-45/100/15/*/1//image/1\input/20/-70/100/15/*/1//text_style/1\input/20/-145/100/65/*/1//text/1\input/20/-170/100/15/*/1//interactable/1/\input/130/30/100/15/*/1//columns/1\input/130/5/100/15/*/1//rows/1/\input/130/-20/50/15/*/1//element_width/1/\input/180/-20/50/15/*/1//element_height/1/\input/130/-45/50/15/*/1//x_spacing/1/\input/180/-45/50/15/*/1//y_spacing/1/\stateswitch/130/-70/50/15/*/1//x_align/1/l|c|h/\stateswitch/180/-70/50/15/*/1//y_align/1/l|c|h/\stateswitch/130/-95/50/15/*/1//x_flip/1/0|1/\stateswitch/180/-95/50/15/*/1//y_flip/1/0|1/\input/130/-120/100/15/*/1//x_scroll/1/\input/130/-145/100/15/*/1//y_scroll/1/\input/130/-170/100/15/*/1//scroll_report_data/1/\