Server Chat Channels
Server chat channels are the built-in channels used internally by the servers, as opposed to the user-created global chat channels.
List of Channels
Channel | Name | Notes |
1 | INFO_COMBAT | // This is damage the player deals |
2 | INFO_DAMAGE | // This is damage the player recieves |
3 | INFO_SVR_COM | // This is for generic server messages |
4 | INFO_NPC_SAYS | // NPC text |
5 | INFO_VILLAIN_SAYS | // Essentially same as NPC text |
6 | INFO_PET_COM | // User controlled pet chat |
7 | INFO_PRIVATE_COM | // Private message |
8 | INFO_TEAM_COM | |
9 | INFO_SUPERGROUP_COM | |
10 | INFO_NEARBY_COM | |
11 | INFO_SHOUT_COM | |
12 | INFO_REQUEST_COM | |
13 | INFO_FRIEND_COM | |
14 | INFO_ADMIN_COM | // Global Admin messages |
15 | INFO_USER_ERROR | // Any failure message |
16 | INFO_DEBUG_INFO | // Debug only commands, users should never see this |
17 | INFO_EMOTE | // Emotes |
18 | INFO_AUCTION | // Auction House messages |
19 | INFO_COMBAT_SPAM | // Power information |
20 | INFO_GMTELL | // Tell Sent by GM's get special color |
21 | INFO_TAB | // Message being sent to the current tab |
22 | INFO_REWARD | // Used for any rewards a user gets |
23 | INFO_COMBAT_ERROR | // Combat messages used to relate why a power failed |
24 | INFO_HEAL | // Heals recieved |
25 | INFO_HEAL_OTHER | // Heals given |
26 | INFO_HELP | // Guide/Help channel |
27 | INFO_ARENA | // Arena Channel |
28 | INFO_ARENA_ERROR | // Arena Errors, falls though to INFO_USER_ERROR if arena window isn't open |
29 | INFO_ARENA_GLOBAL | // This is a server wide arena channel |
30 | INFO_ALLIANCE_OWN_COM | // Alliance chat: own SG talking |
31 | INFO_ALLIANCE_ALLY_COM | // Alliance chat: ally talking |
32 | INFO_COMBAT_HITROLLS | |
33 | INFO_PET_SAYS | |
34 | INFO_EVENT | |
35 | INFO_CHANNEL | |
36 | INFO_PAYMENT_REMAIN_TIME | |
37 | INFO_PET_COMBAT | |
38 | INFO_PET_DAMAGE | |
39 | INFO_PET_COMBAT_SPAM | |
40 | INFO_PET_HEAL | |
41 | INFO_PET_HEAL_OTHER | |
42 | INFO_PET_COMBAT_HITROLLS | |
43 | INFO_EVENT_HERO | |
44 | INFO_EVENT_VILLAIN | |
45 | INFO_CAPTION | |
46 | INFO_LEVELINGPACT_COM | |
47 | INFO_ARCHITECT | |
48 | INFO_ARCHITECT_GLOBAL | |
49 | INFO_LEAGUE_COM | |
50 | INFO_EVENT_PRAETORIAN | |
51 | INFO_LOOKING_FOR_GROUP | |
52 | INFO_PRIVATE_NOREPLY_COM | //just like the private channel, but does not allow reply/autoreply |
53 | (Unused) | |
54 | (Unused) | |
55 | (Unused) | |
56 | (Unused) | |
57 | (Unused) | |
58 | (Unused) | |
59 | (Unused) | |
60 | (Unused) | |
61 | (Unused) | |
62 | (Unused) | |
63 | (Unused) |
Unused Channels
What are all these unused channels at the end?
The channel numbers are indices into a bitmask. The bitmask is calculated as
((INFO_TOTAL+31)/32)
where INFO_TOTAL is equal to the highest channel number, plus 1. The current highest channel number is 52, so INFO_TOTAL is 53, and this leads to a mask size of 2. This is the number of 32-bit words needed to store the channel mask, and so we currently have space for 64 channels in total. Note that channel 64 would cause INFO_TOTAL to be 65, triggering an increase in the bitmask to 3 words. Therefore, we can use 63 channels before we have to start looking into what happens if the bitmask becomes larger.
To actually use one of the unused channels, we will need to investigate how the channels work better. At bare minimum, we are going to need to add a slash command to the client, comms in both client and server to move the message around, and UI code in the client to add the channel to the interface and put it on a default tab.
Pseudo Channels
These seem to slot into the unused part of the bitmask. Is this coincidence, or do we need to expand the bitmask after all? Further investigation is needed. INFO_CHAT_TEXT is defined as INFO_TOTAL+1, so this enum dynamically shifts itself to the end of the channel list.
Channel | Name | Notes |
54 | INFO_CHAT_TEXT | |
55 | INFO_PROFILE_TEXT | |
56 | INFO_HELP_TEXT | |
57 | INFO_STD_TEXT | |
58 | INFO_SCRAPPER | |
59 | INFO_CHANNEL_TEXT | |
60 | INFO_CHANNEL_TEXT1 | |
61 | INFO_CHANNEL_TEXT2 | |
62 | INFO_CHANNEL_TEXT3 | |
63 | INFO_CHANNEL_TEXT4 |
Channel Attributes
Text Styles
Name | Italic | Bold | Outline | DropShadow | SoftShadow | OutlineWidth | DropShadowXOffset | DropShadowYOffset | SoftShadowSpread |
INFO_EMOTE | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
INFO_ADMIN_COM | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Text Colours
Channel Name | Color1 | Color2 | ColorHover | ColorSelect | ColorSelectBG | LinkSelect | LinkSelectBG |
INFO_COMBAT | CLR_YELLOW | CLR_RED | CLR_YELLOW | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_COMBAT_SPAM | 0xff8800ff | 0xff8800ff | 0xff8800ff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_COMBAT_ERROR | 0xff9966ff | 0xff9966ff | 0xff9966ff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_HEAL | 0x66ff44ff | 0x44ff22ff | 0x66ff44ff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_HEAL_OTHER | 0x88ffaaff | 0x44ff88ff | 0x88ffaaff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_DAMAGE | CLR_ORANGE | CLR_RED | CLR_ORANGE | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_SVR_COM | 0x90ff90ff | CLR_GREEN | 0x90ff90ff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_NPC_SAYS | 0xa0a0ffff | CLR_BLUE | 0xa0a0ffff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_VILLAIN_SAYS | 0xa0a0ffff | CLR_BLUE | 0xa0a0ffff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_PET_COM | CLR_WHITE | CLR_BLUE | CLR_WHITE | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_PRIVATE_COM | CLR_YELLOW | CLR_YELLOW | CLR_YELLOW | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_TEAM_COM | 0x88ff88ff | 0x00aa00ff | 0x88ff88ff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_LEVELINGPACT_COM | 0xf3f8a4ff | 0xf130c8ff | 0xff6633ff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_SUPERGROUP_COM | CLR_PARAGON | CLR_PARAGON | CLR_PARAGON | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_NEARBY_COM | CLR_WHITE | CLR_WHITE | CLR_WHITE | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_SHOUT_COM | 0xbbbbbbff | 0xbbbbbbff | 0xbbbbbbff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_REQUEST_COM | 0xff44ffff | 0xa0a0ffff | 0xff44ffff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_FRIEND_COM | CLR_YELLOW | CLR_ORANGE | CLR_YELLOW | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_ADMIN_COM | CLR_RED | CLR_RED | CLR_RED | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_EMOTE | CLR_WHITE | CLR_WHITE | CLR_WHITE | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_AUCTION | 0x00ffffff | 0x0060ffff | 0x00ffffff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_ARCHITECT | CLR_MM_TEXT | CLR_MM_TITLE_OPEN | CLR_MM_TEXT | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_GMTELL | CLR_ONLINE_ITEM | CLR_ONLINE_ITEM | CLR_ONLINE_ITEM | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_TAB | CLR_ONLINE_ITEM | CLR_ONLINE_ITEM | CLR_ONLINE_ITEM | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_REWARD | 0xffff88ff | 0xffff88ff | 0xffff88ff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_ARENA | CLR_WHITE | CLR_WHITE | CLR_WHITE | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_ARENA_ERROR | CLR_YELLOW | CLR_ORANGE | CLR_YELLOW | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_ARENA_GLOBAL | CLR_WHITE | 0xff44ffff | CLR_WHITE | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_HELP | 0xccffccff | CLR_BLUE | 0xccffccff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_ALLIANCE_OWN_COM | 0xffd700ff | 0xffd700ff | 0xffd700ff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_ALLIANCE_ALLY_COM | 0xdaa520ff | 0xdaa520ff | 0xdaa520ff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_USER_ERROR | CLR_YELLOW | CLR_WHITE | CLR_YELLOW | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_DEBUG_INFO | 0xffaaffff | 0xffaaffff | 0xffaaffff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_COMBAT_HITROLLS | 0xffed61ff | 0xffed61ff | 0xffed61ff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_EVENT | 0xff2222ff | 0xff2222ff | 0xff2222ff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_CHAT_TEXT | CLR_WHITE | CLR_WHITE | CLR_WHITE | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_PROFILE_TEXT | CLR_BLACK | CLR_BLACK | CLR_BLACK | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_HELP_TEXT | CLR_GREEN | CLR_GREEN | CLR_GREEN | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_STD_TEXT | CLR_ONLINE_ITEM | CLR_ONLINE_ITEM | CLR_ONLINE_ITEM | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_SCRAPPER | 0xff8800ff | 0xff8844ff | 0xff8800ff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_CHANNEL_TEXT | 0xccffccff | 0xccffccff | 0xccffccff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_CHANNEL_TEXT1 | 0xccff99ff | 0xccff99ff | 0xccff99ff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_CHANNEL_TEXT2 | 0x99ffccff | 0x99ffccff | 0x99ffccff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_CHANNEL_TEXT3 | 0x99ff99ff | 0x99ff99ff | 0x99ff99ff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_CHANNEL_TEXT4 | 0x77ffffff | 0x77ffffff | 0x77ffffff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_PET_COMBAT | CLR_YELLOW | CLR_RED | CLR_YELLOW | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_PET_COMBAT_SPAM | 0xff8800ff | 0xff8800ff | 0xff8800ff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_PET_HEAL | 0x66ff44ff | 0x44ff22ff | 0x66ff44ff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_PET_HEAL_OTHER | 0x88ffaaff | 0x44ff88ff | 0x88ffaaff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_PET_DAMAGE | CLR_ORANGE | CLR_RED | CLR_ORANGE | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_PET_COMBAT_HITROLLS | 0xffed61ff | 0xffed61ff | 0xffed61ff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_EVENT_HERO | 0xbbbbffff | 0x802080ff | 0xbbbbffff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_EVENT_VILLAIN | 0xff2222ff | 0x802080ff | 0xff2222ff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_EVENT_PRAETORIAN | 0xffffffff | 0x444444ff | 0xffffffff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_ARCHITECT_GLOBAL | CLR_MM_TEXT | CLR_MM_TEXT | CLR_MM_TITLE_OPEN | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_LOOKING_FOR_GROUP | 0x00ffffff | 0x008080ff | 0xffffffff | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_PRIVATE_NOREPLY_COM | CLR_YELLOW | CLR_YELLOW | CLR_YELLOW | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_LEAGUE_COM | CLR_MM_TEXT | CLR_MM_TEXT | CLR_MM_TITLE_OPEN | 0 | 0x333333ff | 0 | 0x666666ff |
INFO_CAPTION | 0xa0a0ffff | CLR_BLUE | 0xa0a0ffff | 0 | 0x333333ff | 0 | 0x666666ff |