01.22.05

Macroing in EQ2

Posted in General at 12:30 pm by jw

I’ve read a lot of posts about macros and tradeskills and while I appreciate the arguments against the practice, I can’t help but be horrified at how little people really understand about just how complex and sophisticated these macros can be. Accurate detection of macros is next to impossible because they can be programmed to act and behave just like players, given the critical step of identifying the in-game events can be made to happen.

Here’s what macros can do:

  • Send any keystroke to the game
  • Read any pixel or set of pixels from the screen
  • Read anything from a log file
  • Do any sort of calculations, loops and delays imaginable

Frequently I come across the following arguments for how to “detect and ban” macro users:

  1. Detect people who miss 5 in a row, or make crafting more deadly!

    This is seriously the dumbest idea out there. Plenty of people just ignore events/reactions when making low level stuff because it’s just not worth the effort. That hardly flags them as macro users. In fact, a decent macro user will have code to detect the events and respond precisely to them so this action will tend to catch non-macro users far more than macro users. That’s a winner!

  2. Pop up a message box randomly.Remember where I said that macros can read anything from the screen? Guess what popping up a message box is going to do? Yep – make the macro user put simple code into his macro to hit the appropriate button. Again, you catch the sleepy regular crafters and not the macro users.
  3. Have GMs directly attempt to interact with the toon.Well, this has possiblities but the smart macro user will avoid positive detection by simply coding their macro to camp and log out when a GM attempts to interact with the toon, or even when a GM is detected in the zone. Looks suspicious sure, but probably not enough to get you banned.
  4. Time the responses because macros repeat things down to millisecond accuracy.Macros can and do exhibit random response times for a number of reasons. First it’s possible to simply code in random variations to the timing of the keystrokes the macro program is sending to the application. Next, Windows XP has a timeslice of around 100ms for each process, so there’s another source of timer variation. Lastly, the internet varies greatly in packet timing, at least 50-100ms at times depending on how far you are from the server. All that added makes it rather unlikely that a simple timing analysis is going to catch any macro user at all, unless the macro is exceptionally poorly written.

There’s also the convenient fiction that if you suspect someone of macroing you should send them a tell. When I’m tradeskilling I tend to ignore anyone I don’t know sending me random stupid tells like “Hi”. Seriously, I’ve got better things to do than justify my level to some self-appointed vigilante. Whatever floats their boat though I guess.

Here’s the real way to stop macroing, at least until the hackers get their grubby hands into the internals of the EQ2 program itself and reliably detect anything and everything in the game – remove the silly little event box from the bottom of the tradeskill window and integrate events into the 3d view. Also, have events cause significant problems in casting – a missed event should drop the product a whole tier of durability. That itself is much, much harder to macro against because you have to somehow judge the meaning of a 3d image instead of a little 2d bitmap, then respond correctly to preserve your crafting progress. Of course, adding more complexity would be good too so it’s not just hours of mindless key mashing.

Detecting macroers though? Never going to be very reliable if you don’t accept false positives. It wasn’t in EQ1 and I don’t see anything in EQ2 that would make it easier (or WoW or any current MMOG for that matter).

One of the original comments which was very good:

I wrote some insane FFXI macros in my day. What he says is right. I can detect and react to any 2D image like what EQ2 has now. If they display the crafting data in 3D however, it becomes VERY difficult to detect what is going. I think it still theoretically can be done, but only with some amazing scanning code that is ultra efficient… I know I couldn’t pull it off.

But the pop-up window idea that GMs send to potential botters could be a good idea, if the windows had no set colors/sizes/shapes, and if they were totally random blobs with totally random text sizes/fonts/colors. Humans could read that, but bots could not (well, theoretically they could, but not without millions in funding for the code developement – hehe).

2 Comments »

  1. RangerInEstateOfUnrest Said:

    November 8, 2005 at 8:54 pm

    I have to say this becuase everyone gets so bent out of shape about botters…

    Relax…

    Yes, relax. Thats it. Let it go. Who cares if they bot? Is there a race to 60 with some golden ticket at the end so you can run the chocolate factory? Give me a break. Im not saying I bot but hey if my guild needed a woodworker for our monks, rangers, zerkers…whatever I wouldnt hesitate a second to bot one up as fast as I could. Why should we have to go out and pay outrageous prices for some guys to mash a few buttons and put together all the pieces I gave him.

    Not everyone has time to play 10 hours a day, most of us have just enough time to level a toon and then when it comes to tradeskilling we have to chose the darkside.

    You dont like botters then make sure you buy from legitimate crafters. Because you know SoE is NOT going to start refusing the $15/mo from the botters. Their money is as green as yours.

    /rant off

  2. jw Said:

    November 9, 2005 at 5:20 am

    Honestly, it never bothered me a great deal. I was far more amused with the fact and fiction that went around about how SoE was detecting the botters at the time.

    Interestingly enough, WoW has taken a far more proactive approach and actively scans every running program on your machine for botting utilities. Personally I’m not too comfortable with that idea, but I do see both sides of the equation.