A quick skim of the script, I think this should do it. Line 928 is where this function starts, the first .sort() will sort the option keys, the second one is the checks: getConfigTable = () => { return "<h4>Current Options</h4>" + "<table style= \" margin:3px; \" >" + "<tr style= \" font-weight:bold \" ><td>Name</td><td>Value</td></tr>" + Object . entries ( state . groupCheck . options ) . sort () // optionally add this . map (([ key , value ]) => `<tr><td> ${ key } </td><td> ${ value } </td></tr>` ) . join ( "" ) + "</table>" + "<h4>Checks</h4>" + "<table style= \" margin:3px; \" >" + "<tr style= \" font-weight:bold \" ><td>Command</td><td>Name</td><td>Formula</td><td>Special</td></tr>" + Object . entries ( state . groupCheck . checkList ) . sort () // add this . map (([ key , value ]) => `<tr><td> ${ key } </td><td> ${ value . name } </td><td> ${ htmlReplace ( value . formula ) } </td><td> ${ value . special || "" } </td></tr>` ) . join ( "" ) + "</table>" ; }, I can post the full code somewhere if you like, probably easier to just grab it from <a href="https://raw.githubusercontent.com/Roll20/roll20-api-scripts/master/GroupCheck/GroupCheck.js" rel="nofollow">https://raw.githubusercontent.com/Roll20/roll20-api-scripts/master/GroupCheck/GroupCheck.js</a> - click the Raw button, then ctrl-A to select all quickly, paste it into a new script and add the two (or just one) sort() methods. edit - I'm... actually not sure why this works, now I think about it. The array is full of Object.entries() arrays and sort shouldn't really be doing anything unless those are also unwrapped. Maybe sort() spreads them internally? Anyway, if you want a more sophisticated sort (for example, uppercase 'Z' comes before lowercase 'a' in a default sort due the character code order) that can also be done . sort (([ keyA ,], [ keyB ,]) => keyA . toLowerCase () > keyB . toLowerCase () ? 1 : - 1 )