Some time ago, a friend got me into an online card game called Urban Rivals. It is similar to other card games such as Magic the Gathering, but played online either via iPhone/iPad app or in your browser. One aspect of the game that quickly got my attention (other than the game itself), was the card marketplace where you can buy and sell playing cards.
It didn’t take long for me to realize that it was an inefficient market. Profitable trades presented themselves quite regularly, and with a bit of automation it would be easy to take advantage of the market. I proceeded with developing a Google Chrome extension that would allow me to do so, and it worked quite well.
Over the course of a few days, I had it up and running, automating both buying and selling of cards. Essentially, it continually scans the marketplace until a profitable buy appears, buys the card (or cards), and immediately posts them for sale at one clintz (the in-game currency) below the lowest price. I told a friend of mine about it, and with some trepidation at first, he decided to try it out and helped me test and tweak it. Eventually, he realized it worked great and used it extensively as I did.
When it was all said and done, I had accumulated probably over 6 million worth of clintz and cards, having started with just a few thousand. My friend had probably accumulated on the order of about 5 million. Ultimately, my friend and I were both banned. I told him if ever I did get banned, I would likely release the extension into the wild to see what sort of havoc it might wreak on the marketplace. Well, I did get banned, so here we are. Even before I was banned, I had a morbid curiosity to learn what might happen if I were to give it to more than just one or two other players. Having been banned was just the excuse I was looking for, as I (and my friends) no longer have a vested interest in keeping it a secret.
Words of Wisdom in Using the Urban Rivals Market Bot
First and foremost, Use at Your Own Risk.
If the good folks of Urban Rivals find out you’re using a bot, they will ban you. If you use it in moderation, you may not get caught. Of course, I can make no guarantees. If you get banned for using this, don’t blame me as you’ve been warned!
Be very careful if you set up a separate account.
My friend set up an account for using the bot, in case if he got banned, so he would still have the original account. Unfortunately this plan backfired on him, as he was banned not for the bot but both accounts were banned for having duplicate accounts.
If you do use decide to set up an additional account, do not ever connect to them from the same internet connection. You could try using Tor to connect from an anonymous internet connection for the bot account, and use your regular internet connection for your regular account. I haven’t tried this, but this method of using multiple accounts would probably work without a problem. You just have to be very careful you never connect via the same method/connection.
It may not work for long, or at all at this point.
Since I no longer have a valid Urban Rivals account, I have no mechanism to see if it even still works. The last time I used it, it worked without issue so it’s likely it still works, but I make no guarantees. So that my “legacy” may still live on, I’ll include the source code as well.
Be prepared for personal attacks.
Because the bot works by looking for good deals, occasionally it picks up deals that were posted in error. Sometimes people forget a 0, and end up posting a card worth thousands for hundreds, or even hundreds of thousands for tens of thousands. The bot will pick these up for a song and repost them for sale and make 10x profit. Of course, when this happens it sometimes solicits inflammatory language from those that posted the price in error.
I would gladly exchange the card back to players that asked politely and patiently. Either I would tell them to sell me a cheap card for slightly less than the value of the card so I could still make a profit, or sell the card back to them (if I still had it) for a profit. I would recommend you do the same, if you do not wish to draw the attention of the UR gods. If you want to remain even more transparent, you may even wish to throw the impolite requestors a bone as well.
I would also recommend disabling your online presence for your UR login. I think in many cases, the players I pissed off thought I was online, when in fact it was simply that my browser window was open conducting market transactions on my behalf. In some cases, I was receiving many messages from incensed players within minutes of each other, but I did not see the messages for many hours later and sometimes even days.
When I finally realized my online presence was the reason I was receiving so many messages so quickly from the same angry players, I disabled my online presence. This helped quite a bit to quell the angry messages coming in rapid succession, but they did still happen. Be nice to those who make mistakes in their market transactions and ask you to sell their card back to them.
- If you don’t have it, download Google Chrome, the best web browser known to man
- Download and install the Urban Rivals Market Bot Extension for Google Chrome
- Configure the bot however you like:
- Enable Profitability Filter: This enables/disables the filtering of the market to only show profitable trades, according to the profitability settings.
- Enable Stars Filter: You can filter the market to only show cards with a certain number of stars
- Min and Max Price: The minimum and max price to filter on. Cards less than the minimum or more than the maximum will be removed from the market list.
- Min Profit: The minimum amount of profit to make on the purchase and sale of a card, if sold for 1 clintz less than the lowest listed card. Any cards that do not meet this criteria will not be displayed in the market.
- Min Percent Profit: The minimum percent profit to make on the purchase/sale. Cards must meet both the min profit and min percent profit criteria to be displayed.
- Autobuy: Buy cards that meet the profit filter criteria. Without the profitability filter enabled, this does nothing.
- Autosell: Sell cards that are autobought. Without autobuy enabled, this won’t do anything. If disabled while autobuy runs, cards will be accumulated in a profitable manner, but not sold.
- Refresh Delay: How many seconds to wait before refreshing the market page to try autobuying again. You can set it to 0. If you set it too fast, you’ll probably get a captcha, at which point the bot will stop working until you manually clear the captcha.
- Max # of Cards to Buy: Sometimes there are profitable trades where there is a big breakpoint in the price of cards. You can buy perhaps the two or three cheapest cards, and sell at the price of the remaining cheapest card. If you want to be conservative, just leave it at 1.
- Max Premium on Sale: Sometimes players buy up a lot of cards to raise the lowest price so they can sell the cards they buy at a higher price. This is a safeguard to avoid buying/selling a card when this has happened, otherwise you could fall victim to this market manipulation tactic. This is how far you are willing to resell a card marked up above the lowest price of the day, week, and month. If you set it too high, you could end up paying too much for a card and you won’t be able to sell it profitably. I typically ran it at 10 percent, which served me well.
- Visit the first page of the UR market. Be sure to sort the market by date, with the most recent listings first (this is the default, so you really shouldn’t have to change anything). The page will continually refresh according to the refresh delay setting, and as profitable listings are found it will attempt to buy them and resell them 1 clintz lower than the cheapest. Please note, that it will only deal with cards with maxed experience.
The Autosale of Doubles Feature
One last note on using the plugin. If your sales expire, you may end up with many doubles in your collection. I eventually grew tired of manually selling all of my doubles, so I also added functionality to autosell doubles when visiting my collection page. When you visit your collection page, if you have doubles you’ll be prompted if you want to sell them.
If you use this feature to sell a lot of doubles at once (perhaps 50 or more), it could result in a temporary ban from using the market. This is a bit more severe than being captchad, as you can’t do anything but wait on the order of about 7-8 hours to access the marketplace again. Don’t panic if it does happen, but you won’t be able to access ANY market pages (even your pending sales, sold cards, etc.) until enough time has passed. I ultimately wanted to make this a feature that could be enabled/disabled in the settings popup, but I never got around to implementing that.
A Small Request
If someone could do me a favor, please contact mrdisco and tell him about my bot. He went on a rant in the forums to tell everyone what an asshole I am (scroll to the bottom of this post to read it). Someone please send him the link to this post. At least he can recoup his clintz using my bot, and even make a good bit more.
I attempted to contact him via UR messaging to tell him I would have gladly refunded him, if he had given me a chance to respond. He sent me a barrage of messages in a span of maybe an hour, probably while I was sleeping or at work, so I never got to respond. By the time I was able to respond, he added me to is ignore list so I couldn’t message him on UR although I wanted to.
At the time, I decided it best I not even try to explain myself in the forum. He obviously had no interest in hearing what I had to say since he never even gave me the chance to explain. At this point, I think this post is sufficient explanation and perhaps he may even no longer feel ill will.
Unfortunately, I was banned from UR (I’m sure mrdisco will be happy about that) so I am not able to post this in the UR forums, so here it is on my blog. If any discussion does take place in the UR forums about it, please feel free to repost it here. I’m very curious to know what people might say about it, if anything at all.
Oh, I almost forgot the source code!