These two seem to be slightly broken, "SteamWorks_GCRetrieveMessage" doesn't work at all and "SteamWorks_GCSendMessage" only works if there is no "SteamWorks_GCRetrieveMessage" forward.

Looking at the source on Github it seems to be the fault of lines 132 and 134.

Code:

this->pGCSendMsg

should be

Code:

this->pGCRetMsg

Attempting to fix and compile this myself made the entire extension not do anything anymore while apparently loading successfully. Maybe something related to what SM/MM/SteamWorks version I compile it against though I tried a few different combinations and none worked.

These two seem to be slightly broken, "SteamWorks_GCRetrieveMessage" doesn't work at all and "SteamWorks_GCSendMessage" only works if there is no "SteamWorks_GCRetrieveMessage" forward.

Looking at the source on Github it seems to be the fault of lines 132 and 134.

Code:

this->pGCSendMsg

should be

Code:

this->pGCRetMsg

Attempting to fix and compile this myself made the entire extension not do anything anymore while apparently loading successfully. Maybe something related to what SM/MM/SteamWorks version I compile it against though I tried a few different combinations and none worked.

Thanks, sadly this didn't resolve the issue. Everything is the same as before, the forward simply doesn't get executed. I looked a bit more through the code and turns out that line 42 where the "SteamWorks_GCRetrieveMessage" forward is created defines 5 arguments, but in reality there are only 4. Its suppose to be Cell, String, Cell, Cell.

Other than that I don't think there are any more problems, though I could be missing something.

Thanks, sadly this didn't resolve the issue. Everything is the same as before, the forward simply doesn't get executed. I looked a bit more through the code and turns out that line 42 where the "SteamWorks_GCRetrieveMessage" forward is created defines 5 arguments, but in reality there are only 4. Its suppose to be Cell, String, Cell, Cell.

Other than that I don't think there are any more problems, though I could be missing something.

I tried it on CSGO a long time ago on Windows, sadly don't remember the SM & MM versions back then and TF2 most recently on Windows and Linux, both tested with SM 1.11 - build 6522 & MM 1.11 - build 1130. As well as SM 1.10 and MM 1.10 a little bit prior to that.

This simple plugin does not output anything, while NetHook2 clearly says there are incoming GC messages:

Gross. Which version of the Steam Client do you have on the server? if it's ancient it won't have the hooks, thus won't be able to get the interface, and won't be able to hook.

This definitely worked on CSGO at one point as people were intercepting/sending GC messages way back when.

Sorry but how do I check the Steam version my server is running? Shouldn't SteamCMD and the CSGO/TF2 installation automatically update everything as needed to the latest version?

In the meanwhile I did another test to try and maybe narrow down the problem further:

- Tested on Windows & Ubuntu for both games
- All 64-bit
- All SourceMod 1.11 (build 6522)
- All MetaMod 1.11 (build 1130)
- All updated and validated minutes before doing the test

I added a "SteamWorks_GCSendMessage" and "SteamWorks_GCMsgAvailable" forward to my test plugin and turns out CSGO doesn't log anything at all while TF2 only logs GCMsgAvailable and GCSendMessage but no GCRetrieveMessage, it also repeatedly sends out a GCMessage every 30 seconds for some reason. According to NetHook2 it keeps sending out GCHello messages, Steam sends a GCWelcome back but it seems to get swallowed somewhere.