Depending on how much you want DIY on the client, the learning curve can be steep.
Imho the primary skills are knowing how the client works from the player perspective (i.e. the whole functionality available, without modifying it) and knowing the subject you want to include/exclude. Thus, if you want to deal with bots, you should also know how bots work and be able to setup and use one.
Further down, you have to deal with C++, machine code generated from C++ (assembler), disassembling, debugging and Win32 API. If you stumble upon graphics stuff, GDI and DirectX 7 are also topics of interest. If you deal with network code and packets, some background knowledge of TCP is also helpful.
Note, that some things are better to be done server-side rather than client-side for two reasons:
Players can undo your client-side changes, but not server-side.
Server-side is easier to edit, since you have all the source, whereas in the client you have only the gory machine code.