The RO bot could do all that and more. To include responding to specific text, the simplest response being to single words so if you say anything with “bot” in the text, it can respond with a pre-written response by the bot user, or a list of responses and pick one randomly.
Responding to “bot” at all was functionality that comes pre-programmed with the program but because of this, all bots had the same responses unless the botters turned that off manually, so it was easy to detect who was a botting noob just by saying “bot” in chat. The most frequent responses were “lol, no”, “I’m not a bot”, and “you’re wrong”, and you could just keep sending “bot” at them and they’d repeat the same response.
Functionality was pretty good as long as the botter was willing to sit down and type out a long list of responses to certain scenarios. The bot could also string together multiple phrases with a timed delay.
Other functionality goes as far as avoiding specific zones, specific players, and changing pathing based on time of day.
for knowledge
If you’re interested in looking at the program for RO (for the purpose of better understanding how bots work) look up “OpenKore”.