V2.0 release:
Also, i will be putting up a version of both pages on a friends permanent host, instead of the current temporary one in a while for those who prefer to place links 
Readme:
/*/ ET Nickname Colors and Scripts Generator V2.0 \*\
This is am html/javascript Nickname generator made by unf4z3d for
Wolfenstein : Enemy Territory but will work for most Quake 3 based
game, and also Enemy Territory : Quake Wars.
to use either version, either host the html files as they are, or
copy all the code in the <body> tag and put it into another page :)
\*\anyone can use this, no need for credit, no copyrights. enjoy. /*/
Temporary download: http://unf4z3d.fileave.com/NickNameGenerator.zip
Temporary link: Nick + scripts: http://unf4z3d.fileave.com/nickGen_Scripts.html
Temporarly link: Nick_only: http://unf4z3d.fileave.com/nickGen.html
HTML with Script Generator:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Nickname Generator</title>
</head>
<body>
<div id="nickGen" style="width:800px;">
<div id="output" style="border:2px solid #000000; background-color:#0f110f; width:100%; height: 50px;text-align:center;font-family:Courier New; font-size:16px; font-weight:bold;">
</div>
<br />
<input type="text" id="input" name="input" value="" onkeyup="KeyUp()" style="width:100%;border:2px solid;text-align:center;font-size:16px;font-weight:bold;"/>
<div id="colorDrop">
</div>
<div id="scripts" style="border:2px solid #000000; background-color:#0f110f;width:100%;font-weight:bold;color:#FFFFFF;">
</div>
<br />
<br />
<div id="script" style="border:2px solid #000000; background-color:#0f110f;width:100%;font-weight:bold;color:#FFFFFF;">
</div>
</div>
<script type="text/javascript">
var hexa =
[
"000000",
"FF0000",
"00FF00",
"FFFF00",
"0000FF",
"00FFFF",
"FF00FF",
"FFFFFF",
"FF7F00",
"7F7F7F",
"BFBFBF",
"BFBFBF",
"007F00",
"7F7F00",
"00007F",
"7F0000",
"7F3F00",
"FF9919",
"007F7F",
"7F007F",
"007fFF",
"7F00FF",
"3399CC",
"CCFFCC",
"006633",
"FF0033",
"B21919",
"993300",
"CC9933",
"999933",
"FFFFBF",
"FFFF7F"
];
function populate ()
{
var optionList = "<form name='listColor'><select onChange='colorSelect(this.options[this.selectedIndex].value)' name='chooseColor' style='font-weight:bold;background-color:#99A099;'><option style='color:#FFFFFF;' value=''>choose color</option>";
for (var i = 0;i<32;i++)
{
var key = String.fromCharCode(i+48);
optionList += "<option style='color:#"+hexa[i]+"' value='"+key+"'>"+key+" = "+hexa[i]+"</option>"
}
loadScriptGenerator();
document.getElementById("colorDrop").innerHTML += optionList + "</select></form><br>";
document.getElementById("input").value = "your^8Name^5Here";
KeyUp();
}
function colorSelect (i)
{
var input = document.getElementById("input");
input.value += "^" + i;
input.focus();
keyUp();
}
function getIndex(char)
{
var ascii = char.charCodeAt(0);
var index = (ascii - 16) % 32;
return index;
}
function KeyUp()
{
var inp = document.getElementById("input").value;
inp = inp.replace(/"/g,"");
var name = inp.split("^");
var nameString = "<font color=#BFBFBF>"+name[0]+"</font>";
for(var i=1;i<name.length; i++)
{
if(name[i].substring(0,1) != "")
{
var index = getIndex(name[i].substring(0,1));
var color = hexa[index]
if(color === undefined)
{
nameString += "<span style='background-color:#FF0000'>^"+index+"</span><font color=#BFBFBF>"+name[i].substring(1)+"</font>"
}else{
nameString += "<font color=#"+color+">"+name[i].substring(1)+"</font>";
}
}else{
nameString += "<font color=#BFBFBF>^</font>"
}
}
document.getElementById("output").innerHTML = nameString;
document.getElementById("input").value = inp;
}
function loadScriptGenerator ()
{
var scripts = "";
j=7;
for (var i=1;i<j;i++)
{
scripts += "<div id='select"+i+"'><input type='button' id='name"+i+"bt' value='Use' onClick='use("+i+")'/><input type='button' id='name"+i+"btEdit' value='Edit' onClick='edit("+i+")'/><input type='button' id='name"+i+"btDel' value='Delete' onClick='del("+i+")'/><input type='button' id='name"+i+"btUp' value='^' onClick='up("+i+","+j+")'/><input type='button' id='name"+i+"btDown' value='v' onClick='down("+i+","+j+")'/>name "+i+": <span id='name"+i+"'></span> = <span id='nameSource"+i+"'></span><br></div>"
}
document.getElementById("scripts").innerHTML = scripts + "<br><input type='text' id='cycleKey' name='cycleKey' value='' style='width:40px;text-align:center;font-size:16px;font-weight:bold;'/> Cycle key (for multiple names)*<br><input type='text' id='chooseKey' name='chooseKey' value='' style='width:40px;text-align:center;font-size:16px;font-weight:bold;'/> Select key (Selects the name)*<br><br>* = Required<br><input type='button' id='genScript' value='Make my script!' onClick='generateScript("+j+")'/>";
}
function use(curr)
{
document.getElementById("name"+curr).innerHTML = document.getElementById("output").innerHTML;
document.getElementById("nameSource"+curr).innerHTML = document.getElementById("input").value;
}
function edit (curr)
{
document.getElementById("input").value = document.getElementById("nameSource"+curr).innerHTML;
document.getElementById("output").innerHTML = document.getElementById("name"+curr).innerHTML;
}
function del (curr)
{
document.getElementById("name"+curr).innerHTML = "";
document.getElementById("nameSource"+curr).innerHTML = "";
}
function up (curr,full)
{
next = curr - 1;
if(next < 1)
{
next = full - 1;
}
Swap(curr,next);
}
function down (curr,full)
{
next = curr + 1;
if(next > full - 1)
{
next = 1;
}
Swap(curr,next);
}
function Swap (curr,next)
{
var tempName = document.getElementById("name"+next).innerHTML;
var tempSrc = document.getElementById("nameSource"+next).innerHTML;
document.getElementById("name"+next).innerHTML = document.getElementById("name"+curr).innerHTML;
document.getElementById("nameSource"+next).innerHTML = document.getElementById("nameSource"+curr).innerHTML;
document.getElementById("name"+curr).innerHTML = tempName;
document.getElementById("nameSource"+curr).innerHTML = tempSrc;
}
function generateScript (amount)
{
var script = "";
var namesArray = [];
for (var i=1;i<amount;i++)
{
if(document.getElementById("nameSource"+i).innerHTML != "")
{
namesArray.push(document.getElementById("nameSource"+i).innerHTML);
}
}
amount=namesArray.length
if(amount == 1)
{
script = "bind "+document.getElementById("chooseKey").value+" \"set name "+namesArray[0]+"\"<br><br>//copy code into notepad and save as autoexec.cfg in your ETmain folder, then, in-game open console and type /exec autoexec.cfg";
}else if(amount == 0){
script = "Select names first!"
}else{
script = "bind "+document.getElementById("cycleKey").value+" vstr Nick<br>bind "+document.getElementById("chooseKey").value+" vstr setNick<br><br>"
for (var i=1;i<amount;i++)
{
script += "set Name"+i+" \"set name "+namesArray[i-1]+"\"<br>set echoName"+i+" \"echo ^0> ^7Nick^0: "+namesArray[i-1]+"\"<br>set N"+i+" \"vstr echoName"+i+"; set Nick vstr N"+(i+1)+"; set setNick vstr Name"+i+"\"<br><br>"
}
script += "set Name"+amount+" \"set name "+namesArray[amount-1]+"\"<br>set echoName"+amount+" \"echo ^0> ^7Nick^0: "+namesArray[amount-1]+"\"<br>set N"+amount+" \"vstr echoName"+amount+"; set Nick vstr N1; set setNick vstr Name"+amount+"\"<br>";
script += "<br>set Nick \"vstr N1\"<br>set setNick \"echo ^0>^7Choose a Nick first!^0<\"<br><br>//copy code into notepad and save as autoexec.cfg in your ETmain folder, then, in-game open console and type /exec autoexec.cfg";
}
document.getElementById("script").innerHTML = script;
}
populate();
</script>
</body>
</html>
No Script Generator
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Nickname Generator</title>
</head>
<body>
<div id="nickGen" style="width:800px;">
<div id="output" style="border:2px solid #000000; background-color:#0f110f; width:100%; height: 50px;text-align:center;font-family:Courier New; font-size:16px; font-weight:bold;">
</div>
<br />
<input type="text" id="input" name="input" value="" onkeyup="KeyUp()" style="width:100%;border:2px solid;text-align:center;font-size:16px;font-weight:bold;"/>
<div id="colorDrop">
</div>
</div>
<script type="text/javascript">
var hexa =
[
"000000",
"FF0000",
"00FF00",
"FFFF00",
"0000FF",
"00FFFF",
"FF00FF",
"FFFFFF",
"FF7F00",
"7F7F7F",
"BFBFBF",
"BFBFBF",
"007F00",
"7F7F00",
"00007F",
"7F0000",
"7F3F00",
"FF9919",
"007F7F",
"7F007F",
"007fFF",
"7F00FF",
"3399CC",
"CCFFCC",
"006633",
"FF0033",
"B21919",
"993300",
"CC9933",
"999933",
"FFFFBF",
"FFFF7F"
];
function populate ()
{
var optionList = "<form name='listColor'><select onChange='colorSelect(this.options[this.selectedIndex].value)' name='chooseColor' style='font-weight:bold;background-color:#99A099;'><option style='color:#FFFFFF;' value=''>choose color</option>";
for (var i = 0;i<32;i++)
{
key = String.fromCharCode(i+48);
optionList += "<option style='color:#"+hexa[i]+"' value='"+key+"'>"+key+" = "+hexa[i]+"</option>"
}
document.getElementById("colorDrop").innerHTML += optionList + "</select></form><br>";
document.getElementById("input").value = "your^8Name^5Here";
KeyUp();
}
function colorSelect (i)
{
var input = document.getElementById("input");
input.value += "^" + i;
input.focus();
keyUp();
}
function getIndex(char)
{
var ascii = char.charCodeAt(0);
var index = (ascii - 16) % 32;
return index;
}
function KeyUp()
{
var inp = document.getElementById("input").value;
inp = inp.replace(/"/g,"");
var name = inp.split("^");
var nameString = "<font color=#BFBFBF>"+name[0]+"</font>";
for(var i=1;i<name.length; i++)
{
if(name[i].substring(0,1) != "")
{
var index = getIndex(name[i].substring(0,1));
var color = hexa[index]
if(color === undefined)
{
nameString += "<span style='background-color:#FF0000'>^"+index+"</span><font color=#BFBFBF>"+name[i].substring(1)+"</font>"
}else{
nameString += "<font color=#"+color+">"+name[i].substring(1)+"</font>";
}
}else{
nameString += "<font color=#BFBFBF>^</font>"
}
}
document.getElementById("output").innerHTML = nameString;
document.getElementById("input").value = inp;
}
populate();
</script>
</body>
</html>