The following code would break seeing player's name's in blue when they're typing since it redirects to the wrong parent function.
function ServerCmdStartTalking(%client)
{
if(%client.AcceptedMaturity == 1)
{
parent::ServerCmdStopTalking(%client);
}
}
You have to use parent::ServerCmdStartTalking(%client);
Also, someone can still set a non integer if it's above -1, and %t = getWord(%msg,0); is useless since it's never used in the script.