Stormy's Realm of RS Classic

Cheating history

I'm keeping this here because it's community history, so probably out of scope for the RSC Wiki.

RS Classic has always been a game that was easy to script, and meant a thriving cheating community existed right from the game's genesis in 2001. The cheating side of things always fascinated me, because it posed an interesting programming challenge and many of the cheating programs used were very unique and interesting. The game was essentially unmonitored after 2006, which allowed a lot of room for experimentation.

With time, I became fascinated with the design of the RS Classic game engine. It's written in very fast, minimal, C-like Java, and is entirely software rendered. It definitely feels very unique, and my history of reverse engineering it (and helping manage the cheating community) gave me niche skills that have proved useful throughout life.

The early history of the cheating community is comprehensively documented in the Black Book of RuneScape Cheating, by Evilcowgod. You might also find Kaitnieks' website and the History of Reinet interesting.

Origins

The very first cheat program for RS Classic was Pirax's Autominer. It relied on fixed mouse coordinates to function, and was quickly rendered obsolete by an update by Andrew Gower that gradually rotated the game's camera by single pixels at a time. It was succeeded by programs like Nick's Autominer, which instead relied on colour detection, a reliable method that's stood the test of time.

Modified clients

Since RS Classic is written in Java, people quickly realized that the game client can be decompiled and modified. The very first modified client was Runebot by Vee, from early in 2002. It had many interesting features - it allowed you to play with an increased screen size, and had a system where it could record and play back actions.

Andrew Gower quickly reacted to this, and started to increase the obfuscation to make decompiling the client more difficult. Traps were also inserted that made certain bots "stick out" from legitimate clients when they were lazily updated, like the famous "banking trap" from 2005, where an extra number was added to every deposit and withdraw packet.

Probably the most popular modified client in the later years of the game (after 2004) was STS (Skulltorcha Scriptable), by Reines, hosted on reinet.co.uk and later wartnet.org. Skulltorcha was an earlier non-scriptable bot by Reines, named after a 3D model in the RS Classic client.

STS was not particularly revolutionary (earlier bots like SBot were mostly the same in design), but it lasted for a long time after RS Classic was closed to new members. The distinctive red interface of STS is visible in many RS Classic videos from 2005-2008. It was also mentioned by long-time RuneScape content developer Mod Mark in a documentary, since famously crowds of STS users would say "Oh hi Mod Mark, back soon, dinner :P" and log out when he appeared in the game due to its "anti-moderator" feature.

Similarly to the foundation laid by bot developer winterLove and their RS2 private server, Reines and others from his community would later create RSCDaemon, one of the original RS Classic private servers and a foundation of later preservation projects, including OpenRSC.

Shell bots

Shell bots started to appear in 2004, and were typically modified clients that took things a step further, by entirely removing the graphics rendering engine. There was only the network protocol and your bot script. Predictably, this caused the free-to-play worlds to quickly fill up, and is blamed by some for the demise of free-to-play RS Classic.

I think the first "shell bot" was developed by Evo, a talented C++ developer who took over maintainership of AutoRune after it was sold by Kaitnieks to the scammer RaW. Evo also designed ixBot, an advanced modified client, and maintained a version of Runebot for years. Reines later created a shell bot based on STS named STSHell.

Deobfuscators

After 2002, the RS Classic client was no longer easy to decompile. Developing workarounds became a top priority for cheaters. I believe the first was RSParser by Kaitnieks, a simple Delphi program for reversing the Zelix KlassMaster obfuscation used by Andrew Gower. A later, more advanced Java deobfuscator was written by saevion (also involved with TheLoveMachine project). saevion was a very talented programmer, and sadly died at a young age.

So-called "deobs" (deobfuscated clients) became a prime currency in the cheating world, since only a few people could release them and make efficient cheating possible.

I eventually developed a deobfuscator that could at least reverse 90% of the post-2009 client obfuscation. Some was irreversible (e.g. scattering of static members).

APOS (Awesome Piece of Software)

In 2009, RS Classic received its last major update. Nostalgia for earlier RuneScape versions was growing, and Jagex's new CEO saw dollar signs. The RSCDaemon private server reached thousands of concurrent players and was shut down with a DMCA notice from Jagex. Game engine developer Mod Jack H was assigned to modernize the RS Classic backend, and the RS Classic client was updated. STS203C broke immediately.

Among RS Classic's new features were compatibility with RuneScape's new display name system, and "withdraw-x", "buy-x", "trade-x", and "duel-x" options to offer an arbitrary amount of an item. A fair number of bugs were also introduced. Obfuscation was synced with RuneScape 2, which meant modifying the RS Classic client was more difficult than ever before, and straightforward modifications like STS were no longer trivial.

Developer RLN realized that an "extension bot" could be easily developed with minimal modifications to the new RS Classic client. A bytecode editor could be used to insert "hooks" to allow it to run single-threaded, which resulted in legendary stability, but made scripting more difficult than STS (which also meant that most scripts were higher quality). Previously, only short lived open source project TheLoveMachine and the expensive ixBot had such an advanced design. I've seen pictures of APOS gaining XP without even logging out for months at a time.

Runtime on my Firemaking script
Runtime on blood's Agility script

By 2012, RLN had moved on. I became maintainer of APOS after I wanted to add shop buying and trading capabilities. After repeated re-opening attempts by Jagex resulted in an empty game until APOS was released, the APOS forum community had become the core community of RS Classic. We organized many events and became a core gathering spot for all kinds of players who were willing to pay 5 dollars a month for an abandoned, buggy game. The remainder stayed on private servers.

An in-game party celebrating the APOS community

The final version of APOS was for version 235 of official RSC. Before RSC closed, I'd decided that APOS was well designed to become a "universal" RS Classic bot, and ported it to several private servers.

True to my mission, APOS has outlived the game for which it was designed, and continues to be used to play RS Classic-based idle game "RSC Uranium" from the OpenRSC project. Its script format has become a standard implemented by other projects like IdleRSC, and my own proxy bot VoidFruit, which could also run AutoRune scripts.

I was interviewed by YouTuber Colonello about my history with APOS.

Cheating sleep

A relevant note in all of this is the implementation of the Fatigue system by the Gower brothers, intended as an anti-bot measure. The earliest version of Fatigue from 2002 was designed to stump primitive colour-detection macros, and was successful in this. Ever so often, you'd have to run to a bed or consume some food in-game, or you wouldn't gain any more XP. Walking to beds with colour bots became difficult due to randomized mini-map rotation, which people solved with simple bytecode edits, called "justclients".

The later version of Fatigue from 2003 targeted more complex bots, and introduced a CAPTCHA to solve, as well as sleeping bags, removing the need to walk to a bed. Cheaters initially used an IRC-based crowdsourcing system for solving the sleep words.

Eventually (2004-2005), development of an artificial intelligence based Support Vector Machine OCR capable of solving the sleep words was outsourced by RichyT of SBot to a programmer named Natalie. This became FOCR, and forms the core component of every Fatigue OCR for RS Classic to this day.

There's also a YouTube video about the history of sleepers.