This is going to be a very very long reply, and after this I'm also out.
I'll put ALL your messages in quotes here, and number your points. Then, I'll go through them on a point-by-point basis, and try to answer your questions/concerns.
1. The reason to use libcod is that it applies patches (on runtime) to the game. These are similar to Aluigi's patches, but due to it being on runtime, the scope of the patches can be extended by quite a lot. This means that for modders (not server admins, mind you) there are a whole bunch of new functions to use while writing a mod (like the extreme mod, or some botzom mod). I know badboy's servers run libcod, and you might have heard of his king-clan.
2. If you cannot find anything different, then you're looking at the wrong kind of scripts. We're not talking rcon tools or .cfg execute style scripts, we're talking mods, the .gsc files that make your mod.
3. The servers with libcod do not actually have a ping increase. Feel free to add me on steam (see link in my profile) and I'll set up a proper libcod server for you. You can then draw your own conclusions.
4. You're still talking about installing mysql. Mysql is ONLY a requirement for compiling libcod, and ONLY if you want to enable mod-access to a mysql server. This mysql server can be hosted on the same server, or on an external server. I have a server in australia, which talks to a mysql server in germany. This way, I can keep player statistics synced through my big network of servers. And to re-iterate: You ONLY need the mysql client, not the mysql server. If your linux distribution forces you to also install the server when installing the client, don't blame libcod. You can even disable the mysql requirement in the config files, eliminating the need for the entire thing.
5. See 1.
6. Libcod is not scripts. Libcod is what enables scripters/modders to use more functionality of the cod engine. For example, you can make a mod in which you drive a car with wasd. You cannot do that without libcod. Believe me, I tried (before libcod existed)
7. If you have much more cpu and memory load, then you mis-configured something. See 3.
8. See 1.
9. No, I have not actually tested this on the same server. I can however tell you that my ping cannot physically be lower than the result from a cmd ping, and my ingame ping is only 4ms higher than the cmd ping, which seems reasonable for cod2 overhead.
10. See 9.
11. The list I posted is a list of functions that libcod adds. It is by no means the list of STOCK functionality, all functions listed there are NEW functions, added by libcod.
12. See 1.
13. See 11, and the "php rcon [sic]" is a third-party add-on that only adds to the memory/cpu intensity of cod, and most likely communicates with cod through a log file. I have seen many server lag due to the log file growing too large. Libcod avoids that by having direct, mod-access to the things a player types, and control over wether that command should be executed. You can mute certain players by catching and disabling their "say" command.
14. See 4.
15. The point is to keep backwards compatibility (all old mods still run on libcod), but to add more functionality for modders that want to use it. If you don't want to read the docs (I admit, they're well-hidden), you're not cut out for using libcod.
16. Standalone scripts leave gaping holes in the cod binary unpatched. Any cod 1.0/1.2 server with sv_allowdownload 1 that does not run libcod can easily be taken down by a simple command. Libcod hooks into the function that gets called when that command gets executed, and instead of crashing the server, it kicks the player.
17. The point of this site is indeed to further the development of cod2 modding.
18. I run a jumpmod, with record times being stored on a mysql server. The lists can be accessed by the mod, or through a website. Other modders have used the mysql plugin to avoid having to write to disk synchronously for storing data, which can make servers lag.
19. The exec is not a rcon command, it is a linux command. I can for example, start a second server from inside my first server through this method. I know voron uses it for determining the player's country of origin, but theoretically there's no limit to what you can do with it. I could even call my backup script from within the server, without using any b3-like third party software.
20. As mentioned in 18, I run a jumpmod server. At this moment, I have 375 custom maps uploaded (2GB of mapfiles). When a client joins, he only downloads the currently-playing map (10mb of download). Then, when the server changes map, the client will download the next map if he doesn't have it already. This saves so much time when a client connects, and even more on 1.0, which does not have fastdl.
I see you tried to emulate this by putting your maps in main. This is a crappy practice, given that clients trying to run a local server afterwards will most likely be greeted by the iwd sum/name mismatch error. Also, it can cause some (incorrectly packed) other mods to crash clients.
21. Yes, but your rcon tool cannot show a reason to the player. It only shows the client that he's kicked.
22. Memory stuff is not intended for cleaning memory. That is something entirely different. It is intended for a way to store big amounts of data that the mod might need, without getting a "max variables reached" error. As of today, I am not aware of any mods that actually use it. Then again, you can disable it before compiling libcod.
23. Disabling the console will not do much for your performance if your mod is properly coded. If your mod is constantly spewing errors and warnings, then you might look into disabling the console. For developing a mod however, the printf functionality is quite nice to debug stuff, and make mods more bug-free.
24. Here's an example, where I input a string-indexed array into a function, which then slowly sets a lot of client cvars, as to not drop them due to a reliablemessages overflow error:
25. If you do not understand what a function does, you could try googling the terms it uses. However, you can use this for example to sort an array of strings alphabetically when you code around it for a bit.PHP Code:
setalot(array)
{
self endon("disconnect");
cvars = getarraykeys(array);
for(i = 0; i < cvars.size; i++)
{
while(self getQueuedReliableMessages() > 20)
wait 0.05;
self setclientcvar(cvars[i], array[cvars[i]]);
}
}
26. I have no idea what you mean by this. gettype() gets a script variable, which is inside a .gsc, not a .cfg.
27. I use the combo of configstrings+sendgameservercommand myself to be able to set over 400 different images to hud elements. This is normally limited to about 32-64, and would require lots of precaching. Precaching will increase the gamestate, making 1.0 and 1.2 clients unable to connect to servers.
28. If you want to add a powerup to your zombiemod, like "shoot 2x as fast", the weapon functions are very easy. You can quickly have the script (mod) edit the weapon variables for 10 seconds, and change them back after the powerup ends.
29. The fact that you do not see what the functions could be used for is a lack of imagination on your end, not a failure of libcod. Although it has some functions that I personally do not use, it is open-source, giving me the freedom to remove those functions if I like so.
30. Throwing around age is a very nice way to kill a discussion. Yet, I dispute your claim of being my elder. For goals of libcod, see 1.
31. Libcod is indeed a way to implement a few of the "known scripts", that are currently available as third-party addons, which add to ram and cpu usage. Yet, I dare say that over 50% of the libcod functions cannot in any way be approximated by any third party add-on, as they do not tie in low-level enough to catch the function calls.
32. Yes, you can block some fake players by that. Yet, by looking at that rule, I can see that you can easily get 1 fake player in every 4 seconds. Using libcod, you can compare the ip addresses of clients, and kick (and ban) them when there's too many of them stuck in connecting mode.
33. Your getstatusban is a third-party tool that takes overhead. Having it included in the game executable saves ram and execution time. In libcod, the getstatus exploit is actually patched exactly the same way as in the (open-source, community-maintained) q3 engine.
34. As I mentioned in one of my previous posts, the DDoS is not about GETTING DDoSSed, it's about being used to send DDoSSes. Here's a short explanation of how that works:
Spoiler:
Using a third-party tool to do this adds overhead, especially given that you're using tcpdump. A quick look through that getstatus ban thingy shows me that the tcpdump is not configured to ONLY listen for udp packets. This will mean that it will also examine tcp packets, adding even more overhead.
35. True, but as per 34. I was talking about being (ab)used to help ddossers take down other sites.
36. That's nice, but with libcod you can control the namechanges, and deny them entirely. I can configure it in such a way that the other clients will not even see "x changed his name to y". Conventional (read: all other) tools do not have this, and cause this message to be shown, and to be shown again when forcing the player to rename back again.
37. I am. If you disable console, there are LOADS of ways to bypass that. Furthermore, most players like to be able to change their binds on the fly (at least I like to). Disabling console is an inconvenience, and it's like giving your son a helmet for skateboarding. You know he's going to take it off anyway to look cool.
38 and 39. Very little third-party servers use the scripts provided here, as they're very specific tools. However, libcod is used way more widely, if only to prevent servers from crashing due to malicious clients.
40. See 20.
41. That's like saying that, because you don't like fast driving, no more fast cars should be build. Ever.
42. See 1., and for install instructions, see the sticky thread that is inside the same subforum as the one you posted this topic in. As of right now, it is literally 2 spots above this topic.
43. If your provider does not provide ddos protection, then you're already one step behind. If you don't use any measures to disable the getstatus amplification attack, then you're 2 steps behind. Your provider (combahton) seems to be providing ddos protection. (they also charge ridiculous prices. I mean, 120 euro/month for a 1230v5 with 150 euro setup? I present you: https://www.hetzner.de/hosting/produ...erver/ex41sssd . Better performance (ssd), cheaper, and on a network able to sink more ddos than your current host.)
44. Changing binds, being able to quickly type /quit, being able to /connect to other servers.
45. That answers your own 44 already.
46. Cheaters ask you why you disable console, as it adds no extra layer of protection. It only adds inconvenience to your server.
47. See 46. It's a major inconvenience to players. Then again, you seem to be overwriting the clients main menu, which is also a big no-no in my book.
48. Same here, and I do that without the use of b3.
49. Show me ANY cheat that you can do through the console. Please.
50. As I am reading your replies, it seems that you speedread these. As such, you are the one coming back to your starting question of "why use libcod". This question has been answerred by me, and by others, many times by now.
51. See 49.
52. I have yet to encounter a cheater able to bypass my scripts. Even the most hardened cheaters have not bypassed my fps-check thingy yet.
53. I see no real reason to disable console to begin with.
When replying, please use the numbering as I have applied here. That will keep your reply readable, instead of making it a gigantic wall of text (Which i pressume this comment will already look like)