command = { name = 'short name', desc = 'long description', type = 'execute', set = "MethodName", } command = { name = 'short name', desc = 'long description', type = 'set', values = { 'one', 'two', 'three' }, get = "GetterMethod", set = "SetterMethod", } command = { name = 'short name', desc = 'long description', type = 'text', usage = "name of that guy", get = "GetterMethod", -- optional set = "SetterMethod", } command = { name = 'short name', desc = 'long description', type = 'range', start = 0 -- optional, 0 default end = 1 -- optional, 1 default isPercent = true -- optional, false default get = "GetterMethod", set = "SetterMethod", } command = { name = 'short name', desc = 'long description', type = 'toggle', get = "GetterMethod", set = "SetterMethod", -- this can be a toggle method, but the new true/false value will be passed in anyway. } command = { name = 'short name', desc = 'long description', type = 'color', get = "GetterMethod", -- returns r, g, b [, a] set = "SetterMethod", -- takes r, g, b [, a] hasAlpha = true, -- optional, default false } command = { name = 'short name', desc = 'long description', type = 'pass', passType = 'text' get = "GetterMethod", -- optional, depending on passType set = "SetterMethod", args = { one = { name = 'short name', desc = 'long description', }, two = { name = 'short name', desc = 'long description', }, } } command = { name = 'short name', desc = 'long description', type = 'group', -- optional, group is default args = { one = { -- fully formed command }, two = { -- fully formed command }, } }