function serverCmdTownfolk(%client)
{
bottomPrintAll("\c2" @ %client.name @ " \c6 has become a Townfolk!", 25, 3);
%client.player.setShapeName(%client.name SPC "[Is a" SPC %client.Ranger SPC "Townfolk]");
}
You're problem is that when a player respawns, their name is reset (and doesn't include the "[Is a ___ Townsfolk]" part).
So logically, the solution would be to change the respawn function (I would use a package), so that when it respawns the player, it names them properly.
Here's the pseudo-code which I'll deliberately leave for you to finish:
package NameThemProperly
{
function GameConnection::createPlayer(%client, %position)
{
Parent::createPlayer(%client, %position);
if (%client.is_a_townsfolk)
%client.setShapeName(%client.name SPC "[Is a" SPC %client.Ranger SPC "Townfolk]");
}
};
activatePackage(NameThemProperly);