Try this:
Code:
optarray = table.pack("PRESETS...","Save","Delete",">Load", table.unpack(preset_list)),
table.unpack dumps the contents of a table out as multiple return values, and
table.pack takes all of its arguments and puts them into a new table.
By unpacking a table in a function call, all of the table elements are passed as separate function arguments.