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!

GM login packet information

Joined
Aug 14, 2009
Messages
1,097
Reaction score
134
When the client authenticates with SystemServer, the server knows that the connection is a "client connection" and not a "GM tool connection". So, you can authenticate with SystemServer in the same way as G-OP, but from the client:

Packet ID 0x1454:
Code:
struct SS_GMLogin {
    uint8_t passwordLength;
    char[passwordLength] password; // NOT null terminated
}

Here, you will either receive packet 0x1455 in response or get disconnected because of a login failure.

If you've successfully logged in, SystemServer will let GameServer know that you've logged in as a GM, and you'll be able to send GM-only packets.

If you want to replicate the official client's login behavior, when it receives 0x1455 it will:
1. Make you invisible
2. Set your speed to 3
3. Make you invincible ("immortal")

If you didn't notice from above, the packets that G-OP sends are used by the GM client too. For example, this is the teleport character packet (also SystemServer):

Packet ID 0x145B:
Code:
struct SS_TeleportChar {
    uint8_t passwordLength;
    char[passwordLength] password;
    string fromCharName; // null terminated
    string toCharName; // null terminated
}

There are a multitude of ways that you can accomplish the sending of these packets. Perhaps the easiest would be to build a proxy between the server and your client which allows you to send packets to arbitrary connections.

My hope is that if someone does something with this information, that they will make their work open source. It's not a lot of information, but the structures become extremely obvious when you search around for these packet IDs in the server.
 
Back
Top