Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

WarRock v258:441M Packet Documentation

Status
Not open for further replies.
◝(⁰▿⁰)◜Smile◝ (⁰▿⁰)◜
Developer
Joined
May 29, 2007
Messages
2,167
Reaction score
899
WarRock Packet Documentation

This packet documentation is written for the Chapter 1 client (v258:441M).

This documentation is work in progress.

Table of contents

  1. Packet structure
  2. Login Server Packets
  3. Game Server Packets
 
Last edited:
◝(⁰▿⁰)◜Smile◝ (⁰▿⁰)◜
Developer
Joined
May 29, 2007
Messages
2,167
Reaction score
899
Packet Structure

The WarRock packet structure exists out of an string that has been encrypted by a simple XOR cipher. The keys of were the same in the earlier versions of the game but they changed the plan once more private servers where created. The keys are always the same for the login server. But in the newer versions of WarRock the keys of the game server change every update.

XOR Keys used v285:441M:

  • Server To Client: 0x
  • Client To Server: 0x

The packet it self is a string that has been all the data concatenated by a SPACE character. Every packet ends with an end line character (0xA). You should decoded the packet immediately when you receive any data and split them by the end line character Once you've done that you can parse the packet by separating them into blocks by splitting the packet on it's spaces.

An example packet send by the server to the launcher:
1234567 4112 0 25 40 100 0 0

The first data block is the time stamp of the packet, this one is used to indicate when the packet was sent by the client. The value of this packet is the amount of ticks since the computer has been started.
1234567 4112 0 25 40 100 0 0

The second block indicates the packet (ID) to tell the server what the rest of the data is. Packets can only contain an ID to ask the server for a certain response. It's easier to remember the packet IDs if you convert them to hexadecimal.
1234567 4112 0 25 40 100 0 0

All the other data blocks are data for the client or server.
1234567 4112 0 25 40 100 0 0

Start of a new connection
Every connection of all the servers start with a basic handshake. The server sends out the packet 4608(0x1200) with a random integer that has a length of 8 numbers as data block. The client responds with it's next packet after this packet was received. I'll remove the time stamp from the packets since it isn't important and makes it easier to read the packets.
4608 50039730
 
Last edited:
◝(⁰▿⁰)◜Smile◝ (⁰▿⁰)◜
Developer
Joined
May 29, 2007
Messages
2,167
Reaction score
899
Login Server Packets

The login server is the first server that gets contacted by the launcher, updater and client. The launcher and updater will ask the same client information such as launcher version, client version, sub version version and base link of the patch files.

Launcher information 0x1010 (Client To Server):
This packet is used by the launcher and updater to check if the client files are different. If they are different then the launcher or updater might update certain files.

Packet Id: 0x1010
Client: 4112
Server Response:
Code:
Append(0x1010) // Packet Id
Append(0); // Format
Append(0); // Launcher Version
Append(0); // Updater Version
Append(0); // Client Version
Append(0); // Sub Version
Append(0); // Option
Append("http://"); // URL

Login Packet 0x1100 (Client To Server):
This packet is used to authenticate and authorize an user access to the client. It sets up the client permissions and user information.

Packet Id: 0x1100
Client: 4352 897602780 0 codedragon 123456 0 0
Code:
4352 // Packet Id
897602780 // ?
0 // ?
codedragon // Username
123456 // Password
0 // ?
0 // ?
Server Response:

  • On Error: LoginError 0x1100
  • On Succes: ServerList 0x1100
LoginError 0x1100 (Server To Client):
If an error occurrences during login you send this packet back.

Packet Id: 0x1100
Server Response:
Code:

List of error codes:



Set Nickname 0x1101 (Client To Server):
This packet is send after the user enters an nickname in the nickname box. This box can be opened by sending the enter new nickname error code. If the nickname is valid and not in use then you can reply the serverlist.

Packet Id: 0x1101
Client:
Server Response:
 
Last edited:
Status
Not open for further replies.
Back
Top