Some minor changes i propose:
Clientcommand(): should be added that libcod checks for CodeCallback_PlayerCommand(args) in maps\mp\gametypes\_callbacksetup.gsc every mapchange, but it will stop checking for it once it does not find it ONCE. So changing shit there might require you to fully restart your server.
disableGlobalPlayerCollision(): does NOT disable the global player collision, it just stops the game from setting contents on all players at the end of each frame, allowing for a custom setcontents() on spawn.
free_slot(): Only works for bots, not for normal players (something bad happened to me when i tried it on a player - probably a servercrash)
getClientState(): can never return free or zombie due to the fact that it has to be called on a player, not a slot (free slot = undefined player = cannot call function on undefined)
mysql_real_escape_string(): has mysql_free_result header, and it should NOT be called on the entire query but should instead just be called on a string you want to escape with ' in your query. In the example query on the manpage, it should be used to escape the 'name' thingy, so query = select stuff from somewhere where name = '" + mysql_real_escape_string(mysql, "hello world") + "' ";
setalive(): afaik setalive is used on non-player entities only, resulting in a notify("damage", amount) once they get shot at.
On a semi-related note: the libcod-list seems to be non-alphabetical