I use Spartan supplemented with some of the better functions of AAC and with a very light layer of NCP on top. When you mix them up (enabling/disabling checks to prevent conflicts of course) it tends to mess with a lot of client anticheat detection and it forces the cheaters to go through a lot of work to make a custom configuration just for one server. Top it off with orefubscator, public banlists, and anti-proxy plugins and you end up warding off 99% of them.