MUD Administration

Triggers, scripts, and bots

Most mudders use mud clients like zmud, mushclient, tinyfugue, etc., and many of them take advantage of the clients' features to create aliases, triggers, and scripts to assist them in gameplay. Most of the time it isn't a problem-- an alias to cast an ice spell, or trigger to alert the player of an event, for example. However, some players go above and beyond, creating complicated scripts in order to automate parts of combat, gain experience automatically, etc., in order to create an unfair advantage My questions are this: how concerned are you about scripting or "bots," and what are some steps (if any) you've taken to discourage botting and/or catch players?

I find that I am with many others when I say I can aceppt triggers and scripting but not accept afk triggers and scripting. I do not fault someone for using triggers and scripts in normal MOB hunting (or other forms of XP gain) if they are alert, at their keyboard and responsive to the game environment.

The main thing I currently do is message a player that has been reported (or is suspected) of being afk while gaining experience and ask them a game question. Usually something to do with an idea, forum post, bug etc. that they themselves have brought up.

If I am in a strange mood I may create an aggressive MOB of an appropriate level to the character (and appropriate to an area) and transfer it close to the character. Assigning combat behaviors that force choices to be made beyond what an observed script is capable of is not that hard with the correct tools.

I understand that even if a MUD is role-play encouraged/required a player's concept of a character usually has them doing more then hunting rats or slaying viscious squirrels. Most combat systems have a great amount of repetition and it is up to a game designer to make experience-gaining tasks neither overly repetitive nor boring while allowing a player to build their character toward their envisioned goals.

With the power of scripting it would be very hard to make a game that both provided proper event messaging and randomized that messaging to the extent that it could not be scripted.

One method to cut down on triggers and scripting could be to force usage of a game-specific client. This would likely lose players, and within a short bit of time some enterprising player would hack the client and have a "triggers and scripts mod".

I guess it just comes down to presenting the rules on this type of player action in a manner that noone can say they did not know, trusting that most players will follow the rules, then finding those that do not and consistantly applying whatever penalty you wish.

The mud I used to play on had many quests with varying points
depending on difficulty. If you solved a simple quest, you got
a few quest points. Solve a major one, and you get much qp.

The "obligatory" part was that you ccould not advance levels
without sufficient quest points. Your abilities were limited by
your level, and your level was limited by the amount of
at-keyboard, actual playing you did. Sure, people would cheat and
give away quest info, but scripting a quest would be
a monstrous task so difficult you might as well just do it
the old fashioned way and *earn* the qp.

If you want to stop a behavior, take away the reward. If a
country is *seriously* against illegal immigration, then they
should make hiring an illegal immigrant a felony. This makes
it unprofitable for everyone involved in the activity. If you
want to stop botters, make it unprofitable to bot. Make
advancement dependent on activities that require human
intelligence.

My opinion is that bots aren't bad. If people want to bot,
and that's how they have fun, who am I to tell them they're
wrong? To me it's like telling someone how to drive the
car you built. Unless it's causing harm to other people, it's
not really my business. So long as they aren't increasing their
PK ability, or lagging my mud, or depriving others of
fun, I don't care much.

Where I play, the rule is, "You must be at your keyboard for "anything" to happen "period". The only exception being some triggers to help keep members of your party informed of spell failures, etc, and maybe some communication based things, which don't directly effect the game itself. But it it makes you "do" anything to the game world, not just the client end, you better not try it. Getting suspected means teleportation to a jail for questioning. Having the staff conclude that you are unresponsive or something is suspicious about how you are doing things, can mean everything from suspension of the skill you botted, to out right nuking and a ban on your personal IP (when possible).

Its taken quite seriously, maybe too seriously at times. The honest players can work within the rules. If they are not honest... do you really want them anyway? The prior staff used to let more stuff slide, they eventually got coders telling secrets to players, people hacking acounts and a team of super players that knew every bug in the game and how to take advantage of all of them. One very scary day dozens of people started dropping like flies and disappearing of the player list. Not the sort of thing you want to have to do because the rule benders keep bending things until something is outright broken.

Now, we only get the occational fool that doesn't "get" that they can't use looting triggers or ressurrection triggers and is, most of the time, just told to stop. A few still don't get it though, and at least one discovered that his ressurection spell stopped working.

It really depends on how serious you feel it is. Frankly, I wouldn't mind being about to keep connected and gain 25M exp in a day, without doing anything myself, it would get me my next divine power faster. lol However, I spent nearly three years to get where I am, and its not fair if someone else came along, botted for a month, and was suddenly my equal in exp and skill, while not actually having the slightest clue how to "play" the game.

Use of automated scripts to play the mud is illegal. One-line aliases
using the mud's alias system or in a client is permitted. For example
using a trigger to avoid linkdeath ages your character without your
being actively involved with it. Hence, it is illegal and you
could find yourself demoted for it.

There is not a lot of enforcement done. In some areas where scripting was problematic there was code added to make it less desirable. For example, "speedwalking" by stuffing 80 directional commands in at once might occasionally cause a player to trip over their feet or suffer a minor injury.

Use of automated scripts to play the mud is illegal. One-line aliases
using the mud's alias system or in a client is permitted. For example
using a trigger to avoid linkdeath ages your character without your
being actively involved with it. Hence, it is illegal and you
could find yourself demoted for it.

There is not a lot of enforcement done. In some areas where scripting was problematic there was code added to make it less desirable. For example, "speedwalking" by stuffing 80 directional commands in at once might occasionally cause a player to trip over their feet or suffer a minor injury.

Completely understand on botting/scripting. Curious to hear the rationale behind limiting speedwalks though, which are effectively just aliases.

Not saying it's wrong, but I think it's the first time I've heard of a mud trying to prevent speedwalk aliases. What value does it add to the game / player experience requiring them to type the commands? (Or more realistically, build their speedwalks with a slight random pause between moves).

The only one I could think of off-hand is trying to "encourage" players to read room descs. But you can't force someone to read something, all you can really do is force them to ignore it more slowly.

Our mud has rules against client-side scripting, specifically:
There is not a lot of enforcement done. In some areas where scripting was problematic there was code added to make it less desirable. For example, "speedwalking" by stuffing 80 directional commands in at once might occasionally cause a player to trip over their feet or suffer a minor injury.

So what would you do about someone like me who would make the script send one direction command at a time, and then compensate appropriately for when I "trip"? Such a script would be pretty trivial to write. And how do you determine how quickly is too quickly? Do you have a threshold for command input speed? Would players have to slow down command input on purpose because you might start screwing with them just because you can?

There is not a lot of enforcement done. In some areas where scripting was problematic there was code added to make it less desirable. For example, "speedwalking" by stuffing 80 directional commands in at once might occasionally cause a player to trip over their feet or suffer a minor injury.

I agree with Fiendish, attempts like this would only stop a few of the less inclined people. Any good client will have the ability to inject a pause between command executions, and any trips can be easily corrected for with a little scripting.

It is impossible to police a no trigger, macro, alias rule as you can never be sure exactly who is doing those things. You might get some right, but you will miss a whole lot more. Also a great many do not use simple triggers and macros but use the power of languages like Lua to make simple the very things mud developers want to make hard.

Someone mentioned a proprietary client as one solution, this is also a failed idea, as there are plenty of tools out there to help you create bots including the likes of cheat engine to discover all your memory addresses and auto-it to program bot logic and manipulate the memory of your client down to simple macro programs like quickmacro to script up some repetitive task.

About the only real thing you can do is ensure that the people who are scripting your game are at the keyboard while their bot is in action, i can think of plenty of muds where i have done just that, botted every single level while chatting to my clan mates and having a good time socially.

My game rules have always been simple, you can use whatever tools you like as long as you can respond to a tell from an immortal within a couple of minutes, failing that test your send to jail for 24 hours, every successive time caught afk botting will be double the last penalty. The i didn't see the tell is no excuse either, if your good enought to script the game, your more than good enough to script a chat redirection.

I agree with Fiendish, attempts like this would only stop a few of the less inclined people. Any good client will have the ability to inject a pause between command executions, and any trips can be easily corrected for with a little scripting.

You could of course ban certain clients, and only allow certified clients to connect to the game.

Quote:

It is impossible to police a no trigger, macro, alias rule as you can never be sure exactly who is doing those things. You might get some right, but you will miss a whole lot more. Also a great many do not use simple triggers and macros but use the power of languages like Lua to make simple the very things mud developers want to make hard.

Many bots are very simple. Echoing out suspect text to the botter can be a very good tool to indicate if there are triggers running the character. Forcing a recall to start room to a suspect bot also is good indication if it gets stuck.

Quote:

Someone mentioned a proprietary client as one solution, this is also a failed idea, as there are plenty of tools out there to help you create bots including the likes of cheat engine to discover all your memory addresses and auto-it to program bot logic and manipulate the memory of your client down to simple macro programs like quickmacro to script up some repetitive task.

I haven't used such a tool but I imagine it might not be as pleasant to use as a builtin solution. The next step is of course to have the client scan the memory for suspect tools and report its findings back to the server.

About the only real thing you can do is ensure that the people who are scripting your game are at the keyboard while their bot is in action, i can think of plenty of muds where i have done just that, botted every single level while chatting to my clan mates and having a good time socially.

My own opinion is that if a lot of people write bots then it is not anything wrong with the people but with the MUD. If a MUD's game play can be summarized by {kill %1, gain %1} then it is definitely understandable. There's also those players who actually seem to find it to be more fun to construct bots than actually playing the game due to the challenge alone to construct a well working bot. Thinking about it that might in many MUDs be way more constructive than actually playing the game.

I have very limited sympathy with people who get worked up about 'botting.

The main objection to 'botting seems to be that it is somehow "cheating" because someone who bots a lot is able to get to be a high level character "without doing the work" that a non-botter has to put in. The simple fact that the above phrase contains the word "work" should be enough to tell you that it is absolute BS. MUDs are not about work, they're about fun! Too many MUD admins seem to apply a bizarre protestant work ethic to their MUDs. "No!" they shriek, "you're not allowed to enjoy yourself on my MUD! You don't deserve to enjoy yourself! You haven't earned the right to enjoy yourself! You haven't done enough work to be allowed to have fun!"

If someone decides that they want to progress by 'botting, why the hell should you care? They've decided, for some bizarre reason, that your game is more enjoyable if they aren't at the keyboard while they're "playing" it. If they've decided to do that, they're only cheating themselves out of what should be an enjoyable experience. If they want to short-change themselves, let them.

And if 'botting is extremely prevalent on your MUD then you need to ask yourself some very serious questions about why that is. Why is it that so many people think that the game is more enjoyable if they don't play it than if they do? Is it, perhaps, because the game is actually boring as hell in the early stages and only becomes enjoyable when you're playing it as a high level character? If so, then that is your problem; and it's your problem, it's not the 'botters who are to blame. The solution is to make your MUD more fun to play.

And if your attitude really is that players should be forced to spend enormous amounts of time online doing stuff which is really, really boring before they "earn the right" to play the sections of the game that are actually fun, then you really, seriously need to consider a change of career: no sane player would want to play a MUD whose admin thinks like that.

If you really want to eliminate 'botting then Cratylus has it absolutely right: you need to make progression within the game work in such a way that 'botting doesn't help you to progress. Remove the incentive, and the practice will die out.

I have very limited sympathy with people who get worked up about 'botting.

The main objection to 'botting seems to be that it is somehow "cheating" because someone who bots a lot is able to get to be a high level character "without doing the work" that a non-botter has to put in. The simple fact that the above phrase contains the word "work" should be enough to tell you that it is absolute BS. MUDs are not about work, they're about fun! Too many MUD admins seem to apply a bizarre protestant work ethic to their MUDs. "No!" they shriek, "you're not allowed to enjoy yourself on my MUD! You don't deserve to enjoy yourself! You haven't earned the right to enjoy yourself! You haven't done enough work to be allowed to have fun!"

It's not so much that the admins object, but that the player base doesn't put up with botting. Imagine you work a year to buy a nice car, yet your neighbor simply steals one, and whoever is in charge doesn't give a damn. Next you find out that it's relatively easy to move to a neighbourhood where people don't steal, or at least, get their ass kicked when they steal.

Certainly it's petty for players to fuss over virtual goods, but keep in mind that players are petty, many are achievers who pride in their hard work, and that especially women like the sense of security that comes along with a tightly governed mud.

Anarchistic muds are generally small and populated by tough minded individuals who swear, slaughter newbies, and complain. So much for the general enjoyment of a MUD.

Regarding speedwalks, most big muds seem to have movement restrictions, to the degree that I ended up adding hardwired delayed speedwalking to tintin after the 10th person complained about their inability to script it.

My questions are this: how concerned are you about scripting or "bots," and what are some steps (if any) you've taken to discourage botting and/or catch players?

I once experimented with removing all rules on my MUD, and it wasn't a success, pretty much destroyed the player base in fact.

The bad news is that you can't stop the really good scripters, or proof that they're scripting if they stay and watch the screen. Keep in mind that a good script is generally four times more efficient than a player because the player picks his nose, stares quazy puzzled at the who list for a minute, checks his email and gets distracted, etc, etc. So even non afk script leveling causes a huge imbalance in the game, and the more complex the game becomes, the less people script due to added complexity, and the bigger the gains of the people who actually script. There is however a cut off point where the combat is so complex that people will start buying or being given scripts and the scripting becomes an extention of the game. From what I gathered Achaea is a good example of this trend where everyone scripts. So once you add enough complexity, the game will come full circle, and end up back at Diku's automated combat - though it will obviously look cooler and give people the idea that some scripts are better than others - which could however be obtained by letting people train a limitted amount of modifiers that unclearly impact combat.

The good news is that even though you can't really proof if someone is scripting, you can simply ban someone who plays too efficiently, or even better, use someone like that to make the game harder to script. Stopping speedwalks is one of the methods to add unwanted complexity to a script while not affecting the non scripting players.

It's not so much that the admins object, but that the player base doesn't put up with botting. Imagine you work a year to buy a nice car, yet your neighbor simply steals one, and whoever is in charge doesn't give a damn. Next you find out that it's relatively easy to move to a neighbourhood where people don't steal, or at least, get their ass kicked when they steal.

Yes but the whole point I was making is:

MUDS are not work!

The reason you are supposed to spend time on a MUD is because you enjoy spending time on it, not because you don't enjoy it but you have to go through a whole lot of mindless, boring slog in order to get to the bit that you actually like.

A better analogy would be if everyone had a choice between spending a few hours having a few (free) drinks in a pub with their mates, going home late, sleeping off the alcohol, and then getting a free car the next morning, or watching some TV at home alone, going to bed early, and then getting a new car for (also for free) in the morning. Some people might choose to go and enjoy themselves in the pub for a few hours and stay up late because they enjoy it, other people don't particularly enjoy pubs and just want to get their free car so they will watch TV instead and get an early night instead. The people who decide that they want to go for a drink cannot then (legitimately) complain that the people who chose to go home instead "didn't put in enough drinking time" to be allowed to get a car.

Actually, no, an even better analogy: heterosexual men are given a choice. They can either have sex with a different beautiful woman every day for six months, and then get a free car, or they can construct their own sex robot which gets to have sex with the women instead and then get the car if the robot survives for six months without breaking. Would you then have all the men who chose to have the sex grumbling about the 'bot makers not putting in the work they should have done to get the car?

You could of course ban certain clients, and only allow certified clients to connect to the game.

Yeah, right. That's a GREAT way to get new players. Make them use your crappy client instead of one they actually like.

Quote:

The next step is of course to have the client scan the memory for suspect tools and report its findings back to the server.

Good luck with that.

Quote:

Originally Posted by shasarak

MUDs are not about work, they're about fun!

You don't seem to understand that there are many different types of players looking for different types of experiences. Many people actually want to grind levels and collect points, and they want to do it in an environment where other people can't cheat.

Quote:

If someone decides that they want to progress by 'botting, why the hell should you care?

Because players don't live in a vacuum. And if the majority of the MUD population does something the "proper" way, and they enjoy doing it the "proper" way as long as everyone else is also doing it the "proper" way, then a small faction not doing it the "proper" way will make the rest of the group not enjoy it anymore.

The MUD administrator's duty is to try to make the majority happy, otherwise the majority may just leave. If the majority of players want botters eliminated, then you have to make an effort or risk losing your base.

Yeah, that's the spirit. Let's let players start out at maximum level, with maxed stats as well, not to mention the biggest and baddest equipment too. While we're at it, let's give them every bit of quest and game information as well. That'd be fun for both coders and non-coders!

Hell, let's change the rules of soccer, so everyone can handle the ball with their hands as well, and throw out the goalkeepers, and widen the goals by several meters. That way everyone could score, without any effort and all - because we all know, it's the scoring that's the rewarding part - not the years of practice and dedication because of the love of the sport, to get there.

I find your ideas intriguing and would like to subscribe to your newsletter.

Completely understand on botting/scripting. Curious to hear the rationale behind limiting speedwalks though, which are effectively just aliases.

Not saying it's wrong, but I think it's the first time I've heard of a mud trying to prevent speedwalk aliases. What value does it add to the game / player experience requiring them to type the commands? (Or more realistically, build their speedwalks with a slight random pause between moves).

The only one I could think of off-hand is trying to "encourage" players to read room descs. But you can't force someone to read something, all you can really do is force them to ignore it more slowly.

It is nothing so idealistic as wanting them to read room descriptions - but rather bandwidth. At some point in the past, we had enough people using very large speedwalk scripts (we've got a large mud) that they'd cause noticeable lag from saturating our connection. It isn't an issue now, but the code hasn't been removed.

Yeah, that's the spirit. Let's let players start out at maximum level, with maxed stats as well, not to mention the biggest and baddest equipment too. While we're at it, let's give them every bit of quest and game information as well. That'd be fun for both coders and non-coders!

Hell, let's change the rules of soccer, so everyone can handle the ball with their hands as well, and throw out the goalkeepers, and widen the goals by several meters. That way everyone could score, without any effort and all - because we all know, it's the scoring that's the rewarding part - not the years of practice and dedication because of the love of the sport, to get there.

I don't know if you're being deliberately stupid or merely stupid, but I'll have a go at clarifying things for you.

Think about why a typical person would want to play soccer. Does a person play a sport because he hates the experience, because every single second of the game he is desparately longing to be doing something, anything else except play this awful, dull, insufferable, pointless thing, but he is nonethless obliged to keep playing anyway because it's the only way he is able to obtain an orange (at half-time)?

If a person actually were in that position he might understandably resent someone who is able to go to the shop and buy his own oranges. "Damn it, he doesn't deserve an orange, he hasn't done the work he needs to do to earn the right to eat an orange!" he might say.

However, it is considerably more likely that the reason a person plays soccer is because he enjoys playing soccer. If someone else chooses not to play soccer (because he doesn't like the game) but instead decides to go to the shop and buy an orange instead, that does not mean he is cheating at soccer. Sure the "reward" that he gets is the same, and it is obtained by other, more direct means, and requires less physical effort; but if that's the way you view soccer (that it's an inherently horrible and unejoyable activity whose sole function or purpose is to obtain oranges) then, frankly, you've missed the point. Actually the purpose and function of soccer is that it is enjoyable to play. Paying soccer is an end in itself: the pleasurable experience of playing is why people do it. If someone chooses not to play it and obtain oranges by another method, there is no earthly reason why soccer players should be upset by that. The sensible reaction is to shrug and say "well, I don't understand why that guy doesn't enjoy sport, but if he doesn't, that's his prerogative."

Similarly, the purpose of playing a MUD is to have fun. Part of the way in which the average player has fun is by completing tasks that require effort or ingenuity to complete, and he quite rightly derives satisfaction from doing that. A MUD in which everyone starts out at max level and which has no challenge isnot fun. So, clearly MUDs shouldn't function like that precisely because MUDs are supposed to be about fun not about hard, unenjoyable labour that you only endure because of the reward you get at the end. If any MUD admin thinks it's okay for MUDs not to be enjoyable to play (and that does, of course, include those who think that a complete absence of challenge is not a problem) then I have no desire to play his MUD.

This is what I mean by "MUDs are not work": the purpose of a MUD is to have fun.

To elaborate a little more: suppose you're playing a game of soccer and someone on the next pitch along decides to play their own version of the game in which you're allowed to pick up the ball: why would that bother you?

Even if they come up to you afterwards and say "hey, I'm a really great footballer!" all you have to do is smile and say "kid, the only person you're fooling is yourself" and walk away. You know the truth of the matter, so why do you care what anyone else thinks?

The only time it becomes a problem is if someone tries to play by different rules on the same pitch at the same time right in the middle of your own soccer game and ends up disrupting it. That is certainly antisocial activity; but that has nothing whatever to do with 'botting. A good 'bot is virtually indistinguishable from a connected player, so, by definition, you cannot have any objection to any effect that a 'bot has on the game world without having exactly the same objection about other actual, real, connected players; and if you object to the presence of other players in the game, then why are you playing a multi-player game?

I think some of the objections people have to 'botting are to do with what they perceive to be undesirable consequences to the game world; things like wiping out every single mob in a zone, or harvesting all the good equipment. But the thing is, a real, connected player could do exactly the same thing if he chose to, and you would object to it just as strongly if he did. So 'botting is actually a red herring in that situation: what you're really objecting to is griefing. There may well be a legitimate case for controlling or banning certain types of in-MUD behaviour which make the game less enjoyable for other players, but whether that behaviour is carried out by players or 'bots make no conceivable difference.

So long as 'bots don't prevent you from playing the game as you enjoy playing it, why do you care if other people choose to play it differently? The only sense in which they are "cheating" is that they are cheating themselves out of an enjoyable gaming experience. That's their problem, not yours.

So, here's a possible solution to think about: suppose you allow any and all forms of 'botting so long as the 'botting player a) publicises exactly which scripts he is using at any given moment, and b) publishes all of the scripts that he ever uses in a public forum where any other player can download and use them himself if he chooses? This would put everyone on an exactly equal footing: every player would have access to any and all scripts that any other player has access to, and can use them, or not, as he chooses. This completely eliminates the idea that "scripting is cheating" because everyone is now playing by exactly the same rules.

This is not a simple solution, of course: checking that players are actually using the scripts they say they're using would require some ingenuity. But I think it's a more practical way to go than trying to eliminate 'botting. Eliminating 'botting is not only impossible, but the more elaborate your 'bot-detection procedures become, the more intensely annoying they will be for people who are not using scripts.

The only time it becomes a problem is if someone tries to play by different rules on the same pitch at the same time right in the middle of your own soccer game and ends up disrupting it. That is certainly antisocial activity; but that has nothing whatever to do with 'botting. A good 'bot is virtually indistinguishable from a connected player, so, by definition, you cannot have any objection to any effect that a 'bot has on the game world without having exactly the same objection about other actual, real, connected players

Real connected players don't play 24 hours a day, 7 days a week - no matter how fun the game is.

Quote:

Originally Posted by shasarak

So long as 'bots don't prevent you from playing the game as you enjoy playing it, why do you care if other people choose to play it differently? The only sense in which they are "cheating" is that they are cheating themselves out of an enjoyable gaming experience. That's their problem, not yours.

It becomes your problem when the only way to keep up with them is to bot as well. You're forced to "cheat" yourself out of an enjoyable gaming experience if you wish to compete - in effect, you're forced to choose between "having fun" and "being competitive".