# MessageIdentifiers.h File Reference

All the message identifiers used by RakNet. Message identifiers comprise the first byte of any message. More...

## Enumerations

enum

DefaultMessageIDTypes {
ID_INTERNAL_PING, ID_PING, ID_PING_OPEN_CONNECTIONS, ID_CONNECTED_PONG,
ID_CONNECTION_REQUEST, ID_SECURED_CONNECTION_RESPONSE, ID_SECURED_CONNECTION_CONFIRMATION, ID_RPC_MAPPING,
ID_DETECT_LOST_CONNECTIONS, ID_OPEN_CONNECTION_REQUEST, ID_OPEN_CONNECTION_REPLY, ID_RPC,
ID_RPC_REPLY, ID_OUT_OF_BAND_INTERNAL, ID_CONNECTION_REQUEST_ACCEPTED, ID_CONNECTION_ATTEMPT_FAILED,
ID_ALREADY_CONNECTED, ID_NEW_INCOMING_CONNECTION, ID_NO_FREE_INCOMING_CONNECTIONS, ID_DISCONNECTION_NOTIFICATION,
ID_CONNECTION_LOST, ID_RSA_PUBLIC_KEY_MISMATCH, ID_CONNECTION_BANNED, ID_INVALID_PASSWORD ,
ID_MODIFIED_PACKET, ID_TIMESTAMP, ID_PONG, ID_ADVERTISE_SYSTEM,
ID_REMOTE_DISCONNECTION_NOTIFICATION, ID_REMOTE_CONNECTION_LOST, ID_REMOTE_NEW_INCOMING_CONNECTION , ID_FILE_LIST_TRANSFER_HEADER,
ID_FILE_LIST_TRANSFER_FILE , ID_DDT_DOWNLOAD_REQUEST, ID_TRANSPORT_STRING, ID_REPLICA_MANAGER_CONSTRUCTION,
ID_REPLICA_MANAGER_DESTRUCTION, ID_REPLICA_MANAGER_SCOPE_CHANGE, ID_REPLICA_MANAGER_SERIALIZE, ID_REPLICA_MANAGER_DOWNLOAD_STARTED,
ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE, ID_CONNECTION_GRAPH_REQUEST, ID_CONNECTION_GRAPH_REPLY, ID_CONNECTION_GRAPH_UPDATE,
ID_CONNECTION_GRAPH_NEW_CONNECTION, ID_CONNECTION_GRAPH_CONNECTION_LOST, ID_CONNECTION_GRAPH_DISCONNECTION_NOTIFICATION, ID_ROUTE_AND_MULTICAST,
ID_RAKVOICE_OPEN_CHANNEL_REQUEST, ID_RAKVOICE_OPEN_CHANNEL_REPLY, ID_RAKVOICE_CLOSE_CHANNEL, ID_RAKVOICE_DATA,
ID_AUTOPATCHER_GET_CHANGELIST_SINCE_DATE, ID_AUTOPATCHER_CREATION_LIST, ID_AUTOPATCHER_DELETION_LIST, ID_AUTOPATCHER_GET_PATCH,
ID_AUTOPATCHER_PATCH_LIST, ID_AUTOPATCHER_REPOSITORY_FATAL_ERROR, ID_AUTOPATCHER_FINISHED_INTERNAL , ID_AUTOPATCHER_RESTART_APPLICATION,
ID_NAT_PUNCHTHROUGH_REQUEST, ID_NAT_CONNECT_AT_TIME, ID_NAT_GET_MOST_RECENT_PORT, ID_NAT_CLIENT_READY,
ID_NAT_TARGET_NOT_CONNECTED, ID_NAT_TARGET_UNRESPONSIVE, ID_NAT_CONNECTION_TO_TARGET_LOST, ID_NAT_ALREADY_IN_PROGRESS,
ID_NAT_PUNCHTHROUGH_FAILED, ID_NAT_PUNCHTHROUGH_SUCCEEDED, ID_DATABASE_QUERY_REQUEST, ID_DATABASE_UPDATE_ROW,
ID_DATABASE_REMOVE_ROW, ID_DATABASE_QUERY_REPLY, ID_DATABASE_UNKNOWN_TABLE, ID_DATABASE_INCORRECT_PASSWORD,
ID_READY_EVENT_SET, ID_READY_EVENT_UNSET, ID_READY_EVENT_ALL_SET , ID_LOBBY_GENERAL,
ID_AUTO_RPC_CALL, ID_AUTO_RPC_REMOTE_INDEX, ID_AUTO_RPC_UNKNOWN_REMOTE_INDEX, ID_RPC_REMOTE_ERROR,
ID_FILE_LIST_REFERENCE_PUSH, ID_READY_EVENT_FORCE_ALL_SET, ID_ROOMS_EXECUTE_FUNC , ID_LOBBY2_SEND_MESSAGE ,
ID_FCM2_NEW_HOST , ID_UDP_PROXY_GENERAL, ID_SQLite3_EXEC, ID_SQLite3_UNKNOWN_DB,
ID_REPLICA_MANAGER_3_SERIALIZE_CONSTRUCTION_EXISTING , ID_NAT_TYPE_DETECTION_REQUEST, ID_NAT_TYPE_DETECTION_RESULT, ID_SQLLITE_LOGGER,
ID_ROUTER_2_INTERNAL, ID_ROUTER_2_FORWARDING_NO_PATH, ID_ROUTER_2_FORWARDING_ESTABLISHED, ID_ROUTER_2_REROUTED ,
ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING, ID_TEAM_BALANCER_TEAMS_LOCKED, ID_TEAM_BALANCER_TEAM_ASSIGNED, ID_LIGHTSPEED_INTEGRATION,
ID_RPC_4_PLUGIN, ID_SND_RECEIPT_ACKED, ID_SND_RECEIPT_LOSS
}

## Detailed Description

All the message identifiers used by RakNet. Message identifiers comprise the first byte of any message.

This file is part of RakNet Copyright 2003 Jenkins Software LLC

Usage of RakNet is subject to the appropriate license agreement.

## Enumeration Type Documentation

enum DefaultMessageIDTypes

You should not edit the file MessageIdentifiers.h as it is a part of RakNet static library To define your own message id, define an enum following the code example that follows.

     enum {
       ID_MYPROJECT_MSG_1 = ID_USER_PACKET_ENUM,
       ID_MYPROJECT_MSG_2,
        ...
     };

Note:
  All these enumerations should be casted to (unsigned char) before writing them to RakNet::BitStream

Enumerator:

  ID_INTERNAL_PING | These types are never returned to the user. Ping from a connected system. Update timestamps (internal use only) 0 is reserved for UDT's connect message
  ID_PING | Ping from an unconnected system. Reply but do not update timestamps. (internal use only).
  ID_PING_OPEN_CONNECTIONS | Ping from an unconnected system. Only reply if we have open connections. Do not update timestamps. (internal use only).
  ID_CONNECTED_PONG | Pong from a connected system. Update timestamps (internal use only).
  ID_CONNECTION_REQUEST | Asking for a new connection (internal use only).
  ID_SECURED_CONNECTION_RESPONSE | Connecting to a secured server/peer (internal use only).
  ID_SECURED_CONNECTION_CONFIRMATION | Connecting to a secured server/peer (internal use only).
  ID_RPC_MAPPING | Packet that tells us the packet contains an integer ID to name mapping for the remote system (internal use only).
  ID_DETECT_LOST_CONNECTIONS | A reliable packet to detect lost connections (internal use only).
  ID_OPEN_CONNECTION_REQUEST | Offline message so we know when to reset and start a new connection (internal use only).
  ID_OPEN_CONNECTION_REPLY | Offline message response so we know when to reset and start a new connection (internal use only).
  ID_RPC | Remote procedure call (internal use only).
  ID_RPC_REPLY | Remote procedure call reply, for RPCs that return data (internal use only).
  ID_OUT_OF_BAND_INTERNAL | RakPeer - Same as ID_ADVERTISE_SYSTEM, but intended for internal use rather than being passed to the user. Second byte indicates type. Used currently for NAT punchthrough for receiver port advertisement. See ID_NAT_ADVERTISE_RECIPIENT_PORT.
  ID_CONNECTION_REQUEST_ACCEPTED | RakPeer - In a client/server environment, our connection request to the server has been accepted.
  ID_CONNECTION_ATTEMPT_FAILED | RakPeer - Sent to the player when a connection request cannot be completed due to inability to connect.
  ID_ALREADY_CONNECTED | RakPeer - Sent a connect request to a system we are currently connected to.
  ID_NEW_INCOMING_CONNECTION | RakPeer - A remote system has successfully connected.
  ID_NO_FREE_INCOMING_CONNECTIONS | RakPeer - The system we attempted to connect to is not accepting new connections.
  ID_DISCONNECTION_NOTIFICATION | RakPeer - The system specified in Packet::systemAddress has disconnected from us. For the client, this would mean the server has shutdown.
  ID_CONNECTION_LOST | RakPeer - Reliable packets cannot be delivered to the system specified in Packet::systemAddress. The connection to that system has been closed.
  ID_RSA_PUBLIC_KEY_MISMATCH | RakPeer - We preset an RSA public key which does not match what the system we connected to is using.
  ID_CONNECTION_BANNED | RakPeer - We are banned from the system we attempted to connect to.
  ID_INVALID_PASSWORD | RakPeer - The remote system is using a password and has refused our connection because we did not set the correct password.
  ID_MODIFIED_PACKET | RakPeer - A packet has been tampered with in transit. The sender is contained in Packet::systemAddress.
  ID_TIMESTAMP | RakPeer - The four bytes following this byte represent an unsigned int which is automatically modified by the difference in system times between the sender and the recipient. Requires that you call SetOccasionalPing.
  ID_PONG | RakPeer - Pong from an unconnected system. First byte is ID_PONG, second sizeof(RakNetTime) bytes is the ping, following bytes is system specific enumeration data.
  ID_ADVERTISE_SYSTEM | RakPeer - Inform a remote system of our IP/Port. On the recipient, all data past ID_ADVERTISE_SYSTEM is whatever was passed to the data parameter.
  ID_REMOTE_DISCONNECTION_NOTIFICATION | ConnectionGraph plugin - In a client/server environment, a client other than ourselves has disconnected gracefully. Packet::systemAddress is modified to reflect the systemAddress of this client.
  ID_REMOTE_CONNECTION_LOST | ConnectionGraph plugin - In a client/server environment, a client other than ourselves has been forcefully dropped. Packet::systemAddress is modified to reflect the systemAddress of this client.

  ID_REMOTE_NEW_INCOMING_CONNECTION

  ConnectionGraph plugin - In a client/server environment, a client other than ourselves has connected. Packet::systemAddress is modified to reflect the systemAddress of the client that is not connected directly to us. The packet encoding is SystemAddress 1, ConnectionGraphGroupID 1, SystemAddress 2, ConnectionGraphGroupID 2 ConnectionGraph2 plugin: Bytes 1-4 = count. for (count items) contains {SystemAddress, RakNetGUID}

  ID_FILE_LIST_TRANSFER_HEADER | FileListTransfer plugin - Setup data.
  ID_FILE_LIST_TRANSFER_FILE | FileListTransfer plugin - A file.
  ID_DDT_DOWNLOAD_REQUEST | DirectoryDeltaTransfer plugin - Request from a remote system for a download of a directory.
  ID_TRANSPORT_STRING | RakNetTransport plugin - Transport provider message, used for remote console.
  ID_REPLICA_MANAGER_CONSTRUCTION | ReplicaManager plugin - Create an object.
  ID_REPLICA_MANAGER_DESTRUCTION | ReplicaManager plugin - Destroy an object.
  ID_REPLICA_MANAGER_SCOPE_CHANGE | ReplicaManager plugin - Changed scope of an object.
  ID_REPLICA_MANAGER_SERIALIZE | ReplicaManager plugin - Serialized data of an object.
  ID_REPLICA_MANAGER_DOWNLOAD_STARTED | ReplicaManager plugin - New connection, about to send all world objects.
  ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE | ReplicaManager plugin - Finished downloading all serialized objects.
  ID_CONNECTION_GRAPH_REQUEST | ConnectionGraph plugin - Request the connection graph from another system.
  ID_CONNECTION_GRAPH_REPLY | ConnectionGraph plugin - Reply to a connection graph download request.
  ID_CONNECTION_GRAPH_UPDATE | ConnectionGraph plugin - Update edges / nodes for a system with a connection graph.
  ID_CONNECTION_GRAPH_NEW_CONNECTION | ConnectionGraph plugin - Add a new connection to a connection graph.
  ID_CONNECTION_GRAPH_CONNECTION_LOST | ConnectionGraph plugin - Remove a connection from a connection graph - connection was abruptly lost. Two systems addresses encoded in the data packet.
  ID_CONNECTION_GRAPH_DISCONNECTION_NOTIFICATION | ConnectionGraph plugin - Remove a connection from a connection graph - connection was gracefully lost. Two systems addresses encoded in the data packet.
  ID_ROUTE_AND_MULTICAST | Router plugin - route a message through another system.
  ID_RAKVOICE_OPEN_CHANNEL_REQUEST | RakVoice plugin - Open a communication channel.
  ID_RAKVOICE_OPEN_CHANNEL_REPLY | RakVoice plugin - Communication channel accepted.
  ID_RAKVOICE_CLOSE_CHANNEL | RakVoice plugin - Close a communication channel.
  ID_RAKVOICE_DATA | RakVoice plugin - Voice data.
  ID_AUTOPATCHER_GET_CHANGELIST_SINCE_DATE | Autopatcher plugin - Get a list of files that have changed since a certain date.
  ID_AUTOPATCHER_CREATION_LIST | Autopatcher plugin - A list of files to create.
  ID_AUTOPATCHER_DELETION_LIST | Autopatcher plugin - A list of files to delete.
  ID_AUTOPATCHER_GET_PATCH | Autopatcher plugin - A list of files to get patches for.
  ID_AUTOPATCHER_PATCH_LIST | Autopatcher plugin - A list of patches for a list of files.
  ID_AUTOPATCHER_REPOSITORY_FATAL_ERROR | Autopatcher plugin - Returned to the user: An error from the database repository for the autopatcher.
  ID_AUTOPATCHER_FINISHED_INTERNAL | Autopatcher plugin - Finished getting all files from the autopatcher.
  ID_AUTOPATCHER_RESTART_APPLICATION | Autopatcher plugin - Returned to the user: You must restart the application to finish patching.
  ID_NAT_PUNCHTHROUGH_REQUEST | NATPunchthrough plugin: internal.
  ID_NAT_CONNECT_AT_TIME | NATPunchthrough plugin: internal.
  ID_NAT_GET_MOST_RECENT_PORT | NATPunchthrough plugin: internal.
  ID_NAT_CLIENT_READY | NATPunchthrough plugin: internal.
  ID_NAT_TARGET_NOT_CONNECTED | NATPunchthrough plugin: Destination system is not connected to the server. Bytes starting at offset 1 contains the RakNetGUID destination field of NatPunchthroughClient::OpenNAT().
  ID_NAT_TARGET_UNRESPONSIVE | NATPunchthrough plugin: Destination system is not responding to the plugin messages. Possibly the plugin is not installed. Bytes starting at offset 1 contains the RakNetGUID destination field of NatPunchthroughClient::OpenNAT().
  ID_NAT_CONNECTION_TO_TARGET_LOST | NATPunchthrough plugin: The server lost the connection to the destination system while setting up punchthrough. Possibly the plugin is not installed. Bytes starting at offset 1 contains the RakNetGUID destination field of NatPunchthroughClient::OpenNAT().
  ID_NAT_ALREADY_IN_PROGRESS | NATPunchthrough plugin: This punchthrough is already in progress. Possibly the plugin is not installed. Bytes starting at offset 1 contains the RakNetGUID destination field of NatPunchthroughClient::OpenNAT().
  ID_NAT_PUNCHTHROUGH_FAILED | NATPunchthrough plugin: This message is generated on the local system, and does not come from the network. packet::guid contains the destination field of NatPunchthroughClient::OpenNAT(). Byte 1 contains 1 if you are the sender, 0 if not.
  ID_NAT_PUNCHTHROUGH_SUCCEEDED | NATPunchthrough plugin: Punchthrough suceeded. See packet::systemAddress and packet::guid. Byte 1 contains 1 if you are the sender, 0 if not. You can now use RakPeer::Connect() or other calls to communicate with this system.
  ID_DATABASE_QUERY_REQUEST | LightweightDatabase plugin - Query.
  ID_DATABASE_UPDATE_ROW | LightweightDatabase plugin - Update.
  ID_DATABASE_REMOVE_ROW | LightweightDatabase plugin - Remove.
  ID_DATABASE_QUERY_REPLY | LightweightDatabase plugin - A serialized table. Bytes 1+ contain the table. Pass to TableSerializer::DeserializeTable.
  ID_DATABASE_UNKNOWN_TABLE | LightweightDatabase plugin - Specified table not found.
  ID_DATABASE_INCORRECT_PASSWORD | LightweightDatabase plugin - Incorrect password.
  ID_READY_EVENT_SET | ReadyEvent plugin - Set the ready state for a particular system First 4 bytes after the message contains the id
  ID_READY_EVENT_UNSET | ReadyEvent plugin - Unset the ready state for a particular system First 4 bytes after the message contains the id
  ID_READY_EVENT_ALL_SET | All systems are in state ID_READY_EVENT_SET First 4 bytes after the message contains the id
  ID_LOBBY_GENERAL | Lobby packets. Second byte indicates type.
  ID_AUTO_RPC_CALL | Auto RPC procedure call.
  ID_AUTO_RPC_REMOTE_INDEX | Auto RPC functionName to index mapping.
  ID_AUTO_RPC_UNKNOWN_REMOTE_INDEX | Auto RPC functionName to index mapping, lookup failed. Will try to auto recover.
  ID_RPC_REMOTE_ERROR | Auto RPC error code See AutoRPC.h for codes, stored in packet->data[1]
  ID_FILE_LIST_REFERENCE_PUSH | FileListTransfer transferring large files in chunks that are read only when needed, to save memory.
  ID_READY_EVENT_FORCE_ALL_SET | Force the ready event to all set.
  ID_ROOMS_EXECUTE_FUNC | Rooms function.
  ID_LOBBY2_SEND_MESSAGE | Lobby2 message.
  ID_FCM2_NEW_HOST | Informs user of a new host GUID. Packet::Guid contains this RakNetGuid.
  ID_UDP_PROXY_GENERAL | UDP proxy messages. Second byte indicates type.
  ID_SQLite3_EXEC | SQLite3Plugin - execute.
  ID_SQLite3_UNKNOWN_DB | SQLite3Plugin - Remote database is unknown.
  ID_REPLICA_MANAGER_3_SERIALIZE_CONSTRUCTION_EXISTING | Serialize construction for an object that already exists on the remote system.
  ID_NAT_TYPE_DETECTION_REQUEST | Sent to NatTypeDetectionServer.
  ID_NAT_TYPE_DETECTION_RESULT | Sent to NatTypeDetectionClient. Byte 1 contains the type of NAT detected.
  ID_SQLLITE_LOGGER | Events happening with SQLiteClientLoggerPlugin.
  ID_ROUTER_2_INTERNAL | Used by the router2 plugin.
  ID_ROUTER_2_FORWARDING_NO_PATH | No path is available or can be established to the remote system Packet::guid contains the endpoint guid that we were trying to reach

  ID_ROUTER_2_FORWARDING_ESTABLISHED

  You can now call connect, ping, or other operations to the destination system.

  Connect as follows:

  RakNet::BitStream bs(packet->data, packet->length, false); bs.IgnoreBytes(sizeof(MessageID)); RakNetGUID endpointGuid; bs.Read(endpointGuid); unsigned short sourceToDestPort; bs.Read(sourceToDestPort); char ipAddressString[32]; packet->systemAddress.ToString(false, ipAddressString); rakPeerInterface->Connect(ipAddressString, sourceToDestPort, 0,0);

  ID_ROUTER_2_REROUTED | The IP address for a forwarded connection has changed Read endpointGuid and port as per ID_ROUTER_2_FORWARDING_ESTABLISHED
  ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING | Cannot switch to the desired team because it is full. However, if someone on that team leaves, you will get ID_TEAM_BALANCER_SET_TEAM later. Byte 1 contains the team you requested to join.
  ID_TEAM_BALANCER_TEAMS_LOCKED | Cannot switch to the desired team because all teams are locked. However, if someone on that team leaves, you will get ID_TEAM_BALANCER_SET_TEAM later. Byte 1 contains the team you requested to join.
  ID_TEAM_BALANCER_TEAM_ASSIGNED | Team balancer plugin informing you of your team. Byte 1 contains the team you requested to join.
  ID_LIGHTSPEED_INTEGRATION | Gamebryo Lightspeed.
  ID_RPC_4_PLUGIN | Plugin based replacement for old RPC system, no boost required, but only works with C functions.

  ID_SND_RECEIPT_ACKED

  If RakPeerInterface::Send() is called where PacketReliability contains _WITH_ACK_RECEIPT, then on a later call to RakPeerInterface::Receive() you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS. The message will be 5 bytes long, and bytes 1-4 inclusive will contain a number in native order containing a number that identifies this message. This number will be returned by RakPeerInterface::Send() or RakPeerInterface::SendList(). ID_SND_RECEIPT_ACKED means that the message arrived.

  ID_SND_RECEIPT_LOSS

  If RakPeerInterface::Send() is called where PacketReliability contains _WITH_ACK_RECEIPT, then on a later call to RakPeerInterface::Receive() you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS. The message will be 5 bytes long, and bytes 1-4 inclusive will contain a number in native order containing a number that identifies this message. This number will be returned by RakPeerInterface::Send() or RakPeerInterface::SendList(). ID_SND_RECEIPT_LOSS means that an ack for the message did not arrive (it may or may not have been delivered, probably not). On disconnect or shutdown, you will not get ID_SND_RECEIPT_LOSS for unsent messages, you should consider those messages as all lost.