Making a scrollable list using FauxScrollFrameTemplate " This HOWTO describes how to create a list view using the [ FauxScrollFrameTemplate ] FrameXML class . An alternative is to simply create a Slider object of your own , but there is no HOWTO on that at the moment . Using CreateFrame ( ) to create the list items dynamically may also be a good idea . " How to do it . Before starting out , it helps to visualize that the Scrollbar is nothing more than a vertical slider . We set a min , max , steps to the slider and then react to changes in its offset . The slider doesn ' t keep tabs of any of our data beyond this . It ' s up to us to handle the actual movement of data as the user moves the thumb . You can look at ItemTextFrame . xml / lua , QuestFrame . xml / lua for other examples of how to make ScrollFrames . This will focus on the FauxScrollFrameTemplate route , for a series of rows we define in detail . FauxScrollFrameTemplate is inherited from UIPanelScrollFrameTemplate , both in UIPanelTemplates . xml . FriendsFrame . xml is a good reference for how to flesh out a FauxScrollFrame with things such as highlights and " gutter " textures . But for simplicity ' s sake ours will be very basic : An up + down arrow at the ends of the scrollbar and a thumb to move the data . First , we need data to scroll through : Now we have an array of 50 entries with " Test ( some random number up to 100 ) " Next , we need a scrollbar on the window : The components of the ScrollFrame that we care about now : < Anchors > " Note : The OnShow can happen BEFORE your mods ' OnLoad . In 99 % of cases this is not important but for testing purposes you may need to delay the OnShow to the mod ' s " primary " OnLoad . " The all - important MyModScrollBar _ Update will look something like this in its most essential form : In UIPanelTemplates . lua , the function is documented as : If the function that ' s the second parameter of FauxScrollFrame _ OnVerticalScroll doesn ' t contain a FauxScrollFrame _ Update , we will get an error . Once we have an update function within < OnVerticalScroll > , and a FauxScrollFrame _ Update call within that function , the scrollbar is functional . We can test it by getting the offset and printing it : Try that and scroll the bar around . You ' ll see that _ GetOffset will return from 0 to 45 , which happens to be 50 - 5 . We now have an indexed array of data and a scrollbar . Now we need to display the data based on the scrollbar ' s position . First we need to construct the xml elements of the display . Start simple and make one button template to play around with : This is a virtual button , 150 pixels wide and 16 pixels tall , that can be used to display text . Now use this template to draw our series of buttons : The above draws the first entry with top - left aligned to top - left of the scrollbar ' s scrollable area , 8 pixels to the right , then it draws each one below aligned with top - left of next one aligned to bottom - left of previous . Now we go back to the update function and add the code to display our data depending on the position of the bar : We have 5 lines on the screen at all times : MyModEntry1 , MyModEntry2 , etc . Each entry has a text inside named MyModEntry1 _ Text , MyModEntry2 _ Text , etc . Now we have a scrollbar that scrolls through the data and redisplays it when we move . Now you can customize it to your mod ' s needs . First step would be to make the values fit your mod , especially the size and shape of the data . Remember to check out FriendsFrame . xml / . lua to see how to select entries by locking / unlocking its highlight , how to draw a gutter , create multiple columns , etc . Completed example . MyModScrollBar . toc . # # Interface : 30000 MyModScrollBar . lua . function MyMod _ OnLoad ( ) MyModScrollBar . xml . < Ui >