HousingAuthority HousingAuthority is a library used to make easy configurations that go into OptionHouse . You only need to pass the frame if you ' re doing some sort of custom modification to it , otherwise you can just skip it and it ' ll handle everything . Table data . frameData . If you do pass a frame , do not rely on it being the one you should register with OptionHouse if your widgets are going to overlap off the OptionHouse display frame we wrap it a scroll frame around it . widgetData . All HousingAuthority widgets ( input , color , dropdown , slider , checkbox , button ) accept these by default as fields so aren ' t listed . Grouping Grouping is a way to break up configuration so it doesn ' t look like a single mass of options , if one widget has the group field passed all of them must , the value should be the text that you want displayed , for example the below will show an input and color widget inside a frame labeled " Frame " and a check inside a frame labeled " General " . Callbacks These are how the callback functions are handled along with arguments used . " No handlers passed " set ( var , value ) onSet ( var , value ) validate ( var , value ) get ( var ) " Handler passed " handler [ set ] ( handler , var , value ) handler [ onSet ] ( handler , var , value ) handler [ validate ] ( handler , var , value ) handler [ get ] ( handler , var ) List of widget types that can be used Most of the time , all you want is to call this and just pass the table with all the configuratiions , if you need more flexability you can use the below HAObject API ' s . HousingAuthority API . HA : CreateConfiguration ( widgets [ , frameData ] ) . Tables should look like this , and so on . Once you call this , you can no longer call any of the widget creation functions , if the total height of all the widgets is creater then 280 then we wrap the passed frame around a ScrollFrame and return the ScrollFrame instead . HousingAuthority Object API . HAObj : GetObject ( frame ) . Returns the HAObj that created the frame that was passed in . This is a way to configure how your group frames will look , not required if you ' re using grouping due to the defaults , you should pass the tables formatted as { r = # , g = # , b = # } for both background and border . HAObj : CreateDropdown ( data ) . Dropdown for selecting a list of options , useful when you don ' t want them to be able to enter anytihng like in an input HAObj : UpdateDropdown ( data ) . Allows you to update an already created dropdown with a new default and list You should only call this when you know the dropdown is hidden , meanning either OnShow for the frame or in response to set / onSet , if you try and call it with it open then it ' ll show the old rows followed by the new ones . var is used for identify the dropdown , if the dropdown is a table then the values of each must match 100 % , if you have multiple dropdowns with the same var then it ' ll update the first it finds . HAObj : CreateLabel ( data ) . Adds a simple text that can be used to break up configuration to prevent them all looking clustered together , can be used in place or grouping or with it if need be . HAObj : CreateColorPicker ( data ) . Creates a small button that can be used for setting colors , the middle of the button is the currnet color used When calling set and onSet we call return the value as { r = # , g = # , b = # } , get must return it in this same format . HAObj : CreateButton ( data ) . Simple button that lets you respond when it ' s clicked This only responds to the set and onSet fields from widgetData , no value will be passed to them . HAObj : CreateCheckBox ( data ) . Simple check box HAObj : CreateInput ( data ) . Text or number inputt field Validate allows you to restrict thats considered acceptable , if it returns nil then it ' s considered rejected and a red " [ ! ] " will appear using the message you provided from the error field , once validate returns anything except nil then set / onSet is called . An example of how this works would be only allowing numeric input . If the user enters " abc " then nil is returned because no numbers can be found in it , if he entered " ab10 " then it would return 10 and thats what would be passed to the set and onSet functions . HAObj : CreateSlider ( data ) . Slider for things like opacity or scale