Coding

From Anarchy Online Wiki [AOWiki]

Anarchy Online Chat Protocol

Anarchy Online has its own chat protocol for communicating between the Chat Client and the Chat Servers. The game client has its own chat client for communication with the chat server and third party programs created to interact with the chat server or provide automated functions are called Bots

AO Chat Packet Types

Packet names are from a unofficial attempt at standardizing the names to make it easier for developers to work on other projects. The standardization for the packet names was discussed in a Thread on AODevs

Bi-Directional Types - ToServer

  • 21: CharacterRequest
    • int - Character ID
    • String - Character Name
  • 30: PrivateMessage
    • int - Character ID
    • String - Message
    • String - ???
  • 40: FriendUpdate
    • int - Character ID
    • bool - Online
    • byte - Flags (0 means temporary, anything else means permanent)
  • 41: FriendRemove
    • int - Character ID
  • 50: PrivateChannelInvite
    • int - Character ID
  • 51: PrivateChannelKick
    • int - Character ID
  • 57: PrivateChannelMessage
    • int - Character ID
    • String - Message
    • String - ???
  • 65: ChannelMessage
    • byte[] - Channel ID (40bit)
    • int - Character ID
    • String - Message
    • String - ???
  • 100: Ping
    • String - ???

Bi-Directional Types - ToClient

  • 21: CharacterLookupReply
  • 30: PrivateMessage
  • 40: FriendUpdate
  • 41: FriendRemove
  • 50: PrivateChannelInvite
  • 51: PrivateChannelKick
  • 57: PrivateChannelMessage
  • 65: ChannelMessage
  • 100: Ping

To Client

  • 0: LoginSeed
  • 5: LoginOk
  • 6: LoginError
  • 7: CharacterList
  • 10: CharacterUnknown
  • 20: CharacterUpdate
  • 34: VicinityMessage
  • 35: BroadcastMessage
  • 36: SimpleSystemMessage
  • 37: SystemMessage
  • 55: PrivateChannelCharacterJoin
  • 56: PrivateChannelCharacterLeave
  • 60: ChannelUpdate
  • 61: ChannelLeave

To Server

  • 2: LoginRequest
  • 3: LoginSelect
  • 52: PrivateChannelAccept
  • 53: PrivateChannelLeave
  • 54: PrivateChannelKickAll
  • 120: ChatCommand