Protocol Documentation

From XfirePlusWiki

Jump to: navigation, search

Links to pages about parts of the protocol go here

Note: During the development of the client in some point packets started using Short attribute names instead of human readable long names.

The meaning of all attributes is not known. Packets containing such attributes are listed in Category:Unknown_attributes.

All type numbers are in hex.

Contents

Open Connection

Server: cs.xfire.com Port: 25999

To Server

Packet UA01 - Special packet to start the whole communication process

Misc

Packet test - Special packet to test the connection to the server

Logging in

For the order of the packets, see Login sequence.

To Server

Packet 01 00 - Log in (XFPIDC_LOGIN)

Packet 03 00 - Xfire version (XFPIDC_CLIENTVERSION)

Packet 10 00 - Collective statistics (XFPIDC_CLIENTINFO)

Packet 11 00 - Network info (XFPIDC_PEERINFO)

To Client

Packet 80 00 - Login Salt (XFPIDS_LOGINSALT)

Packet 81 00 - Wrong username or password (XFPIDS_INVALIDLOGIN)

Packet 82 00 - Client information (XFPIDS_CLIENTINFO)

Packet 86 00 - Wrong client version (XFPIDS_WRONGVERSION)

Packet 8d 00 - Client preferences (XFPIDS_PREFS)

Packet 9d 00 - My screenshots (XFPIDS_MYSCREENSHOTS)

Packet af 00 - New server IP (XFPIDS_CONNECTIP)


Miscellaneous

To Server

Packet 0a 00 - Change preferences (XFPIDC_PREFS)

Packet 0d 00 - Heartbeat (XFPIDC_HEARTBEAT)

Packet 1f 00 - Random statistics

To Client

Packet 90 00 - Heartbeat (XFPIDS_HEARTBEAT)


Friends List

To Server

Packet 04 00 - Game status change (XFPIDC_GAMESTATUS)

Packet 05 00 - Friend network request (XFPIDC_FNETWORK)

Packet 06 00 - Send friend invitation (XFPIDC_FRIENDINVITE)

Packet 07 00 - Accept friend invitation (XFPIDC_ACCEPTINVITE)

Packet 08 00 - Reject friend invitation (XFPIDC_REJECTINVITE)

Packet 09 00 - Delete friend (XFPIDC_DELETEFRIEND)

Packet 0c 00 - Search for friends (XFPIDC_FRIENDSEARCH)

Packet 0e 00 - Change nickname (XFPIDC_CHANGENICK)

Packet 0f 00 - Voice software status change (XFPIDC_VOICESTATUS)

Packet 1a 00 - Create new custom group (XFPIDC_GROUPCREATE)

Packet 1b 00 - Delete a custom group (XFPIDC_GROUPDELETE)

Packet 1c 00 - Rename custom group (XFPIDC_GROUPRENAME)

Packet 1d 00 - Add a friend into custom group (XFPIDC_ADDTOGROUP)

Packet 1e 00 - Remove a friend from custom group (XFPIDC_REMOVEFROMGROUP)

Packet 20 00 - Change status text (XFPIDC_TEXTSTATUS)

Packet 23 00 - Game info (XFPIDC_GAMEINFO)

Packet 25 00 - Request advanced infoview content for user (XFPIDC_ADVINFOREQUEST)


To Client

Packet 83 00 - Friends list (XFPIDS_FRIENDS)

Packet 84 00 - Friends' online state changed (XFPIDS_ONLINESTATUS)

Packet 87 00 - Friends' game status changed (XFPIDS_GAMESTATUS)

Packet 88 00 - Friend's friend network info (XFPIDS_FNETWORK)

Packet 89 00 - Respond to friend invite (XFPIDS_INVITESTATUS)

Packet 8a 00 - Receive friend invitations (XFPIDS_FRIENDINVITE)

Packet 8b 00 - Friend removed (XFPIDS_DELETEFRIEND)

Packet 8f 00 - Friend search results (XFPIDS_FRIENDSEARCH)

Packet 93 00 - Friends' voice software status changed (XFPIDS_VOICESTATUS)

Packet 97 00 - Custom friends groups (XFPIDS_GROUPS)

Packet 98 00 - Friend group associations (XFPIDS_INGROUPS)

Packet 99 00 - Custom group added (XFPIDS_GROUPCREATE)

Packet 9a 00 - Friends' status text changed (XFPIDS_TEXTSTATUS)

Packet 9c 00 - Game info (XFPIDS_GAMEINFO)

Packet a1 00 - Friend's nickname changed (XFPIDS_CHANGENICK)

Packet ac 00 - Friend's screenshots info (XFPIDS_SCREENSHOTS)

Packet ad 00 - Friend's advanced info changed (XFPIDS_ADVINFOUPDATE)

Packet ae 00 - Friend's avatar info (XFPIDS_AVATAR)

Packet b0 00 - Friend's clan membership info (XFPIDS_CLANS)

Packet b6 00 - Friend's videos (XFPIDS_VIDEOS)

Packet b7 00 - The logged in user started playing an external game (XFPIDS_EGAME)


Instant Messaging

Note: IM's are supported for both TCP and UDP with specific limitations.

To Server

Packet 02 00 - 00 00 - Send IM message (XFPIDC_IM_IM)

Packet 02 00 - 01 00 - Send confirmation (XFPIDC_IM_ACK)

Packet 02 00 - 02 00 - Send/Request P2P info (XFPIDC_IM_P2P)

Packet 02 00 - 03 00 - Send typing status (XFPIDC_IM_TYPING)

To Client

Packet 85 00 - 00 00 - Receive IM message (XFPIDS_IM_IM)

Packet 85 00 - 01 00 - Receive confirmation (XFPIDS_IM_ACK)

Packet 85 00 - 02 00 - Receive/Request P2P info (XFPIDS_IM_P2P)

Packet 85 00 - 03 00 - Receive typing status (XFPIDS_IM_TYPING)

Packet a9 00 - System Broadcast (XFPIDS_BROADCAST)


Download System

To Server

Packet 17 00 - 9c 3a - Peer info (XFPIDC_DLPEER_INFO)

Packet 17 00 - 9d 3a - Status of files (XFPIDC_DLPEER_FILES)

Packet 17 00 - 9e 3a - Peer status (XFPIDC_DLPEER_STATUS)

Packet 17 00 - a0 3a - File download request (XFPIDC_???)

Packet 17 00 - a1 3a - Check again... (XFPIDC_???)

Packet 18 00 - 24 45 - Check again... (XFPIDC_???)


To Client

Packet 90 01 - Peer info (self) (XFPIDS_PEERINFO)

Packet 91 01 - Peer info (other) (XFPIDS_PEERINFO_OTHER)

Packet 92 01 - List of peers (XFPIDS_???)

Packet 94 01 - File information (XFPIDS_???)

Packet c2 01 - New download channel (XFPIDS_NEWCHANNEL)

Packet c3 01 - New files on a download channel (XFPIDS_???)

Packet c4 01 - File checksum (XFPIDS_???)


Clan System

To Server

To Client

Packet 9e 00 - My clans (XFPIDS_MYCLANS)

Packet 9f 00 - Clan member list (XFPIDS_CLANMEMBERS)

Packet a0 00 - Clan member left a clan (XFPIDS_LEFTCLAN)

Packet a2 00 - Clan member nickname changed (XFPIDS_CLANNICK)

Packet a3 00 - Clan group order (XFPIDS_CLANORDER)

Packet a5 00 - Clan invitation (XFPIDS_CLANINVITE)

Packet aa 00 - Clan events (XFPIDS_CLANEVENTS)

Packet ab 00 - Clan event deleted (XFPIDS_CLANEVENTDELETED)

Packet b1 00 - News posted on clan page (XFPIDS_CLANNEWS)


Group Chat

For the order of the packets, see the following pages:

To Server

Packet 19 00 - f4 4c - Join a chat room (XFPIDC_GC_JOIN)

Packet 19 00 - f5 4c - Leave a chat room (XFPIDC_GC_LEAVE)

Packet 19 00 - f6 4c - Message a chat room (XFPIDC_GC_MESSAGE)

Packet 19 00 - f7 4c - 'Mysterious Update 47'

Packet 19 00 - f8 4c - Change room name (XFPIDC_GC_CNAME)

Packet 19 00 - f9 4c - Change user's permission level (XFPIDC_GC_CLVL)

Packet 19 00 - fa 4c - Request info about chat rooms (XFPIDC_GC_REQINFO)

Packet 19 00 - fb 4c - Kick a person from chat room (XFPIDC_GC_KICK)

Packet 19 00 - fc 4c - Invite friends to chat room (XFPIDC_GC_INVITE)

Packet 19 00 - fd 4c - Change "saved" room status (XFPIDC_GC_CPERSISTENT)

Packet 19 00 - fe 4c - Start or stop group voice chat (XFPIDC_GC_CVOICE)

Packet 19 00 - ff 4c - Deny chat room invitation (XFPIDC_GC_INVITEDENY)

Packet 19 00 - 00 4d - Random...

Packet 19 00 - 01 4d - Join group voice chat (XFPIDC_GC_VOICEJOIN)

Packet 19 00 - 02 4d - Leave group voice chat (XFPIDC_GC_VOICELEAVE)

Packet 19 00 - 04 4d - Force voice server off (obsolete) (XFPIDC_GC_VOICEOFF)

Packet 19 00 - 05 4d - Host group voice chat (XFPIDC_GC_VOICEHOST)

Packet 19 00 - 06 4d - Query server for sending info about a chat room (XFPIDC_GC_QUERY)

Packet 19 00 - 08 4d - Change default permission level (XFPIDC_GC_CDEFLVL)

Packet 19 00 - 0c 4d - Change MotD (XFPIDC_GC_CMOTD)

Packet 19 00 - 0d 4d - Change 'Voice chat allowed' setting obsolete? (XFPIDC_GC_CVOICEALLOW)

Packet 19 00 - 11 4d - Join voice chat session (XFPIDC_GC_VOICEJOINSESSION)

Packet 19 00 - 14 4d - Ask if a chat room name is available (XFPIDC_GC_QNAME)

Packet 19 00 - 15 4d - Set chat room password (XFPIDC_GC_SETPASSWORD)

Packet 19 00 - 16 4d - Change chat room accessibility (XFPIDC_GC_CACCESS)

Packet 19 00 - 17 4d - Change chat room silenced status (XFPIDC_GC_CSILENCE)

Packet 19 00 - 18 4d - Enable or disable show/leave messages in a chat room (XFPIDC_GC_CJOINPARTMSG)


To Client

Packet 9b 00 - Chat room list for Servers tab on login (XFPIDS_GC_LIST)

Packet 5e 01 - Chat room name changed, or entered for the first time (XFPIDS_GC_CNAME)

Packet 5f 01 - Chat room information on join (XFPIDS_GC_JOININFO)

Packet 61 01 - Someone joined the chat room (XFPIDS_GC_JOIN)

Packet 62 01 - Someone left the chat room (XFPIDS_GC_LEAVE)

Packet 63 01 - Someone sent a message to the chat room (XFPIDS_GC_MESSAGE)

Packet 64 01 - Invitation to a chat room (XFPIDS_GC_INVITE)

Packet 65 01 - User's permission level changed (XFPIDS_GC_CLVL)

Packet 66 01 - Send info about chat rooms (XFPIDS_GC_REQINFO)

Packet 67 01 - User kicked fom a chat room (XFPIDS_GC_KICK)

Packet 68 01 - Voice chat status changed (XFPIDS_GC_VOICESTATUS)

Packet 69 01 - Force saved room?

Packet 6b 01 - Voice host info (XFPIDS_GC_VOICEHOSTINFO)

Packet 6d 01 - Someone left voice chat (XFPIDS_GC_VOICELEAVE)

Packet 6f 01 - Someone joined voice chat (XFPIDS_GC_VOICEJOIN)

Packet 70 01 - Room Information (XFPIDS_GC_ROOMINFO)

Packet 72 01 - Default permission level changed (XFPIDS_GC_CDEFLVL)

Packet 76 01 - MotD has been changed (XFPIDS_GC_CMOTD)

Packet 77 01 - Allow Voice Chat changed obsolete? (XFPIDS_GC_CALLOWVOICE)

Packet 7f 01 - Voice session information (XFPIDS_GC_VOICESESSION)

Packet 80 01 - Response to chat room name availability (XFPIDS_GC_QNAME)

Packet 81 01 - Chat room password changed (XFPIDS_GC_CPASSWORD)

Packet 82 01 - Chat room accessibility changed (XFPIDS_GC_CACCESS)

Packet 83 01 - Denied chat room invitation (XFPIDS_GC_INVITEDENY)

Packet 84 01 - Chat room silenced option changed (XFPIDS_GC_CSILENCE)

Packet 85 01 - Chat room join/leave messages enabled or disabled (XFPIDS_GC_CJOINPARTMSG)


Server List

To Server

Packet 13 00 - Add a favorite server (XFPIDC_ADDFAV)

Packet 14 00 - Remove a favorite server (XFPIDC_DELFAV)

Packet 15 00 - Request for list of servers - Friends' Favorites (XFPIDC_FRIENDFAV)

Packet 16 00 - Request for list of servers - All (XFPIDC_SERVERS)

To Client

Packet 94 00 - Favorite servers (XFPIDS_FAVORITES)

Packet 95 00 - Server list - Friends' Favorites (XFPIDS_FRIENDFAV)

Packet 96 00 - Server list - All (XFPIDS_SERVERS)


Screenshots and videos

To Server

HTTP Video upload - HTTP request to upload a video

Packet 26 00 - Start or stop broadcast (XFPIDC_LIVEVIDEO)


To Client

Packet b3 00 - List of uploaded videos (XFPIDS_MYVIDEOS)

Packet b8 00 - A friend started or stopped broadcast (XFPIDS_LIVEVIDEO)

Personal tools