Just gonna copy paste.
I’ve macro’d/botted for most of my MMO career, and I will say that you will not, and cannot stop it in code. There are far too many tools and very talented programmers who gladly spend months of their time ripping apart any game to abuse it and potentially profit from said abuse. Stopping it in code only gets you in trouble with legit players, all you need is a few keys things combined.
The game needs an upfront cost, the bigger the better. B2P is a decent way to combat this, $60 is a good reason to not bot/macro for anyone.
Get in-game support and lots of it. If things are slow they can run around and help players or do GM events, either way your actual players are grateful.
Create honeypots. Bots are very susceptible to getting stuck on things like instantly respawning monsters or bugged mobs. Many things like this are completely ignored by real players.
Data is your friend, keep metrics on items, gold, exp. Where people are getting levels, what monster they are leveling off of, etc.
This all comes back to #2, you absolutely need a huge in-game presence for any macro/botter to take you even the slightest bit seriously. And if your game is F2P it’s the bot’s world and you are just living in it.
Its a combination of all these things together and even then it doesnt 100% eliminate them. We all agreed on that ages ago or should I say 100 MMORPG games ago.
But like he closed with
And if your game is F2P it’s the bot’s world and you are just living in it
Here’s some more useful info.
https://www.internetsociety.org/sites/default/files/blogs-media/you-are-game-bot-uncovering-game-bots-mmorpgs-via-self-similarity-wild.pdf
There has to be multiple layers. I guess just pick and choose what they think will work best.