How do clientless mode Works?

I was thinking how do bots with clientless mode work, how do they send commands like run, attack, use skills, etc, without having to be running the game, and consequently be able to open a lot of clients without lagging the PC. I want to develop my own bot, but i want to be able to open at least 4 or 5 clients without lagging my PC, and clientless mode can help me with that(i hope), but o have no idea how to implement a clientless mode on my bot.

I googled about clientless and many questions like mine had answers saying something that i need to analyse the network traffic of the game, and then “make my own client” (i didn’t understood that part). But i am not sure if i have to make It this way, or If there are other methods.

Also, is there a way to implement clientless with c++? All the questions i saw about clientless mentioned other languages like node.js, javascript and even autoit.

Any suggestions? Sorry for the long text…

Clientless is an amazing piece of software. If Ryan explains a little bit that would be so helpful for new developers.

1 Like

You have to emulate what most of the client does then you can get rid of the client entirely.

1 Like

As I know anything you do in game, it works by triggering the codes on background. That means everything that you see on screen just basicly is a code…

So let the GPU free, CPU can do all the job. :v GPU is a useless hardware in the coder’s world. :v Maybe GPU is better than CPU if you cracking a hash file like WPA2-PSK packets.

Clientless in C++ is possible and I’m 99% sure that’s the language that phBot is implemented in (based on the sources that Ryan has released).

If you understand how to create a client-based bot, you would understand enough to create a clientless bot. I would recommend checking out the C++ source code released by Ryan called phConnector. As the readme states, some things might not work anymore, but it’s a good starting point to get an understanding.

As the game is currently, the sro_client will open a network connection to the Joymax server. Imagine that instead, you could get the sro_client to connect to your own program (like phconnector). Once that connection is made, then your program would create a connection to the Joymax server. If the client sends any packets to you, you can forward them to the server. Similarly, if the server sends you any packets, your program can forward them to the sro_client.

This is the gist of most sro bots. If you want to do clientless, you have to “emulate” every packet from the client according to the specifications so that the server cannot tell the difference. This would require a good understanding of the packet flow between client and server.

If I were you, I’d focus on a client-based bot first. During the development process, clientless will eventually become obvious how to implement.

1 Like