Server's side patch
Our servers use a patch to enhance gameplay a little, but main purpose is to provide backend to gather various game data to players.
Patch is designed so that servers are accessible for unpatched clients.
Quest and goal system
Part of code which controls goals. Some data are gathered and evaluated according to the goal or quest and something can happen when the goal or quest is finished.
This is used for denying certain commands to client, for example building on a place which virtually belongs to another company, like claimed town, or is forbidden on server, like buying bankrupted companies or building canals.
Simple IRC layer to join IRC server and recieve chat from other servers.
MySQL++ library is used to send/recieve data from mysql server. In case of MySQL server inaccessibility, the game continues, but no data are stored and functions, which require data from database, will do nothing.
External ban system
Bans are stored in database and prevent banned players from joining to any other server, not just the one where the ban occured.
And some more smaller things that control the game flow.