You completely mis understand arguments. for a console command if you type it in it has 3 arguments(make that more but 3 to pay attention to)
now if you type in console test BOO it will make you say anti-fla just ran test with args BOO
for k,v in pairs(args) do
RunConsoleCommand("say",ply:Nick().."just ran"..cmd.."with args"..argss)
you cannot set anything within those parenthesis at the top of the function all it simply does is pass information from one point to another (aka arguments) so in a practical use you could send information from a local variable in a function to another function to use or you could also get returned info but that gets into a little more complex. so your function name(a=1) is invalid syntax.