public static void Chat(Creature creature, string message)
{
var packet = new Packet(Op.Chat, creature.EntityId);
packet.PutByte(0); // speech (0) vs thought (1) bubble
packet.PutString(creature.Name);
packet.PutString(message);
// The following part is not required for normal chat
packet.PutByte(0); // 1 hides chat bubble and enables --v
packet.PutUInt(0); // custom color (supports alpha transparency, FF is 100% opaque)
packet.PutInt(0);
packet.PutByte(0);
creature.Region.Broadcast(packet, creature);
}