Zedaf Posted August 30 Share Posted August 30 (edited) I was recently trying to explain to some people in a discord server how to get started with the process of private server development as far as I've seen in my first week of doing it and thought it might be valuable to some other beginners and save them some time. So here is what I have so far. I will update this post as I progress through my own journey. Please bare in mind that for any of the steps that I outline, there will be other choices of which tools to use, where to get your sources/clients and how to approach the process. Note: Clients beyond around 5065(?) start to get a bit trickier to work on because of `server.dat` encryption, this can also be circumvented with client modification of course but it's quite tricky and I'd advise starting with an earlier client. Client side: Download a client https://cooldown.dev/topic/6-guide-client-downloads/ Download a server which the client can connect to https://gitlab.com/spirited/comet Download Ollydbg https://www.ollydbg.de/ AND/OR x64dbg (but you will use the included x32dbg instead) https://x64dbg.com/ AND/OR Ghidra (I don't know much about this yet) https://github.com/NationalSecurityAgency/ghidra Start looking at some guides on client modification and giving it a try: https://cooldown.dev/topic/19-client-using-decrypted-serverdat/page/2/#comment-1322 https://www.elitepvpers.com/forum/co2-programming/452076-guide-how-make-multiclient.html#post4149373 https://www.elitepvpers.com/forum/co2-programming/157593-ollydbg-co.html Open the client and see if your changes have taken effect Server Side Download a skeleton server and follow the steps outlined in the Comet README to get the server running https://gitlab.com/spirited/comet Download a corresponding client https://cooldown.dev/topic/6-guide-client-downloads/ Download ConquerLoader https://mega.nz/file/dU5GCbJY#gGpIZaiGCX_EN1XzRTE0xVnIx0KoX5J9wwluFgY_LbE OR https://conquerloader.com/ Configure the client/ConquerLoader and connect to your server Upon connecting and moving around, you will see some messages in the chat and console about missing packets Start working through each of these missing packets e.g. `MapJump` by going to the appropriate packet handler e.g. `MsgAction` in the server code and writing a switch case for it. Try to find other sources for patches as close as possible to your own and reference how certain things are done (but be mindful of bad server code, there is lots of it out there) This should provide you with a very rough guide on getting started. As I say, I have only been working on this stuff for little over a week now but the above has been my process and I've made a decent amount of progress so far. I will update this post whenever I gain more insights and I hope that it's useful to someone. Edited August 30 by Zedaf Quote Link to comment Share on other sites More sharing options...
Zedaf Posted August 31 Author Share Posted August 31 Potentially ignore what I've said about client side stuff. I have just heard from a perhaps reputable source that client side modifications may more commonly be done with DLL injection instead of direct client modification with Ollydbg. Will update when I have more info. Admin feel free to delete the thread if this is now providing bad/misleading info. Quote Link to comment Share on other sites More sharing options...
Spirited Posted August 31 Share Posted August 31 I love the inclusion of Comet in your guide, but I'm not sure it's the best getting started server project. There're servers that are much easier to get started with and that require much less work. Quote Link to comment Share on other sites More sharing options...
Zedaf Posted August 31 Author Share Posted August 31 My reasoning is that it provides a very clean and largely unopinionated starting point with nice architecture. I definitely think that it should be used in conjunction with a more "complete" source for reference. The way I worked with 4274 was having CoFuture (4267) as a reference and then coding bits into Comet on my own. Quote Link to comment Share on other sites More sharing options...
Spirited Posted September 1 Share Posted September 1 15 hours ago, Zedaf said: My reasoning is that it provides a very clean and largely unopinionated starting point with nice architecture. I definitely think that it should be used in conjunction with a more "complete" source for reference. The way I worked with 4274 was having CoFuture (4267) as a reference and then coding bits into Comet on my own. Well, thanks for utilizing it. And feel free to contribute back to the project if you have a desire to. Also, I have an article written about multi threading in game servers for Comet, if people want to develop on it with a bit of direction: https://spirited.io/multi-threaded-game-server-design/ Quote Link to comment Share on other sites More sharing options...
Sasu Posted October 5 Share Posted October 5 What Discord server were you talking about this in if you don't mind sharing? I've only come across one COPS dev discord and its.. dead Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.