The Guild Gold Edition

The Guild Gold Edition

Not enough ratings
Multiplayer Network/VPN Stability Patch: The Guild Gold Edition 2.05
By lycanthrope and 1 collaborators
Die Gilde or "The Guild" Gold Edition 2.05 never provided a sufficient multiplayer experience. This guide introduces a patch, i.e. hook-DLLs for the server.dll, that solves the network stability issue within two minutes - including gaming via VPN. No installation required.

This is for all of you: For those old-fashioned fans who survived till today and still consider The Guild Gold 2.05 as the biggest what-if of their childhood. The hook-DLLs should stabilize the multiplayer data package transfer, leading to fewer or even no connection errors.

All the best for you,
HarryTheBird
2
2
2
3
   
Award
Favorite
Favorited
Unfavorite
The solution (using Windows 10 or higher)
The latest stable patch version can be applied within two minutes by everyone:
Download the folder (29thJune 2025) [1drv.ms] and copy it straight into your directory of The Guild. Overwrite if necessary. The server subdirectory should look like this:




Additionally, the injector.exe and the start_game_steam.bat can now be found in the games directory, where the exe of The Guild is also located:





To load the game, execute the start_game_steam.bat file in the future with admin rights instead of using the game exe directly. If you get a warning about a virus on the way, be assured: I got the same! :-) - And if you have any problems with the batch files (especially when not using the Steam version or Windows, i.e., using start_game_offline.bat), make sure you provide the correct name of the game exe in the bat file, for instance, by using a text editor.

Note that this is a work in progress.. Be kind.

That's it for those who are in a hurry and just starve for the solution, but please be aware that I was doing this in my spare time following my obsession as a "The Guild" Enthusiast. I built it with care, and I do not aim for any commercial or similar goals. Use the patch or don't. However, despite they working properly for me, I can not guarantee that they are working properly for you as well: I played 15 ingame-years for testing using VPN, i.e. Radmin[www.radmin-vpn.com]. One notebook was connected via the Hotspot of my mobile phone. The other notebook was connected to the WiFi. Without the patch, such a setup usually leads to an almost immediate OOS error.


Anyway, if the DLLs turn things worse for you, simply restore the original server.dll using server_backup.dll and delete the hooks, the injection.exe, and the batch files, and nothing happened at all! :-)

Technical details are provided below, i.e. for people who may be interested in continuing this work.
Why was the multiplayer experience so bad?
Nice to see you here in the technical sections!

The reason why the multiplayer experience is so bad, especially via Radmin, Hamachi, etc., is extensively described in this post:
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=1673930620

There is nothing to add, but it heavily inspired the development of this patch, i.e. hook-DLLs. I used Ghidra[github.com] to decompile the problematic server.dll and do some reverse engineering and inspection of its functionality afterwards. Eventually, the critical functions were identified and tackled by consistent workarounds.

Better late than never....
The way to the solution
As we learned in the previous section, some functions in server.dll cause severe trouble even if just minor fluctuations appear in the transmitted data packages. A fact that is, however, barely avoidable, especially for VPN environments.
Hence, one needs to manipulate the associated critical functions in the server.dll to ease such harsh treatment and thus to overcome network instability. Luckily, those critical functions within the game's original server.dll are imported from native Windows DLLs in turn, namely ws2_32.dll and kernel32.dll.

Thus, we can implement hook-DLLs that import the Windows DLLs above, intercept the output of critical functions, and simply parse the remaining functions without any change. These hook-DLLs are named alike their Windows counterparts, respectively, and are additionally placed in the server folder within the game's directory. As Windows will always look in the current working directory for imports while handling the server.dll, the hook-DLLs are preferably loaded instead of the built-in Windows DLLs. <- At least I was thinking so. Instead, we needed to implement injection DLLs using MinHook. This is because DLLs like ws2_32.dll are so-called "known DLLs" and Windows is always using them instead of custom implementations. For more details, just ask!

Why do I tell you the full story and not just simply provide the solution? - Well, I want to sort of motivate other people to maybe do further decompiling. Of course, it is rather painful: All of the functions are restored based on the binary compiled files without any comments, without documentation, with names like "FUN 10008800" and parameters "param_1, param_2, ...".
It may be a dream, but: What if one could restore the "original" source code from the binary files? - This, in turn, would allow extensive modding, etc.

For the moment, fixing the multiplayer network stability issue was a milestone for me.
The patch implements:
  • A routine that avoids the server.dll from directly ending up in terminal error handlers after a checksum deviation is registered. Instead, the data packages are requested to be resent.
  • Additionally, time-out errors do not occur within the data transfer process. Therefore, the internal game ticks are ignored by the function that handles the data package orchestration. Hence, the game will 1) simply "freeze" until the packages get valid again or 2) abort the network session due to basic Windows routines.
Anyway, the pedantic data deviation handling is replaced by meaningful routines that only sense catastrophic events.

The source code to derive the DLLs can be found on GitHub[github.com]. The compiled DLLs are in the bin folder.

If you have any questions, do not hesitate to contact me!
10 Comments
lycanthrope  [author] 6 Aug @ 11:33am 
Hello! 1. Only the server needs to the best of my knowledge. 2. I do this non-profit as a Guild enthusiast and had plenty of inspiring people to pave my way.. :-) enjoy it so far. There are plenty of other bugs to be targeted..
OutBreaker 6 Aug @ 12:59am 
You. Are. Amazing!

Do you have a Patreon or PayPal or something similar to send you a "Thank You!"?
Manstein 5 Aug @ 12:12pm 
i am so happy and thankful ! i waited for 10 years to be able to play in MP again !
Darrok78 3 Aug @ 6:59pm 
Who needs this?
Server host or all players?
YoungBuddha 2 Aug @ 12:16pm 
I have been waiting for this fix for 20 years. I managed to play MP on one occasion in my childhood via serial LAN for about 30-40 ingame years without an OOS error. Ever since then, I have never gotten it to work again. Even though I am no programmer whatsoever, I contemplated mailing the original developer to see if he had any idea on how to make this work. You, sir, are my hero. Eternal gratitude. I never thought I would see this happen. Dream come true!
Feli 21 Jul @ 12:29pm 
We'll have to try this out! Thanks for the hard work!
Manstein 21 Jun @ 4:33pm 
played for 6 hours with 2 players with the new update !
lycanthrope  [author] 18 Jun @ 1:54pm 
I made a new update! Using some injection stuff.
Uncle_Q 16 Jun @ 2:22pm 
My deepest gratitude! It's a dream come true if it works.
Manstein 13 Jun @ 5:46am 
wow ! great work! this is insane! :steamhappy: