This is a bot that I made many years ago. It has been almost a year since I quit this game. I did release a bot back then, however, the bot I released was just one of my early prototypes for the numerous other bots that I had. I was working on a “clientless” bot. Before I made the bot clientless, I first made the trade bot logic using K-Relay - where it is easy to debug. Here is the last of my prototypes! I’m not going to release my clientless bot, however, this K-Relay prototype has most of the features of my clientless bot. I’m releasing this because I noticed that there isn’t a decent public trade bot in the ROTMG community anymore since the leading trade bot has been deprecated and has got a fatal bug (from what I have gathered). In fact, from what I understand, the ROTMG community hasn’t had a public trade bot in quite a while. So much so, that people are turning to my rubbish TradeBot v0.1.1 prototype. I have quit ROTMG for quite some time and to put it bluntly, I don’t really care if releasing this bot publicly will ruin the game. So here you have it! I shall also be releasing my source code! :)
Perspective: The version I am releasing today is build 226, the previous version was build 1
It’s been so long since I used this bot that I don’t even remember the features. Here are the ones I remember:
- User-friendly UI
- Queue up trades and execute them after each other
- Uses packets and so is fast and un-scammable
- Can be minimised and runs in the background
- Quite reliable - does not need to be checked on and is fully automatic
- Not very CPU intensive
- Supports selling and buying multiple types of items (e.g sell 3 dex AND 1 vit)
- Can give items your own nickname
- Saving and loading trade queues are supported
- Can pipe tradebot output to a "converter" or a "storage" bot
- Can save a "snapshot" of the trade-bot status and load it later - the snapshot saves all the current data such as trade queues, at what index your bots are in the trade queue, the piping of the bots (above), etc but best of all: player position. So when you load a snapshot, your bots automatically move back to that position they were when you saved the snapshot and everything runs exactly as how it was before
- much more
This is a TradeBot for ROTMG - written in entirely C#
First set up the trade settings and the TradeBot will begin spamming a message to advertise the trade once the settings UI is closed
If there is an incoming trade, the TradeBot will accept it.
If the person does not have the item(s) you are looking for, it will be immediately canceled.
If the person does, your item(s) will be selected.
If the person then selects the item(s) you want - the TradeBot will accept the trade and wait for the other person to accept too.
If the person deselects the item you want at any time, the TradeBot will deselect your item.
How To Run:
To run this, you will need KrazyShank’s K-Relay
Download the .zip file in
Download it, right click it, go to properties and click “unblock” if there is such option (if not continue)
Extract the zip and place ALL the .dll files in your krelay/plugin folder
Launch K Relay
You must use the Orape client or similar to use this.
In the client, choose your server from the main menu and select”Proxy Server” from the list.
/tb on its own will bring up the Settings UI (more info on that below)
/tb start and
/tb stop will stop/start the bot and the spamming
/tb startspam and
/tb stopspam will stop/start the bot from spamming (but still accept trades, etc…)
This command shows the
Give Dialog, in which you can make the bot give some items to another connected client. This was mostly just used during development for debugging but might also come in handy when using the bot.
This is a command to debug the work-in-progress feature which detects if you have been scammed or not (if you have, it will add the person who scammed you to the trading blacklist). This feature does not currently work.
Firstly, use the command
/tb in your character to bring up the settings UI for it.
Here’s what the UI will look like:
You will see that the name of the character you are changing the settings for will be in the bar of the window.
Setting Up Trades:
Click on “new” to add a new trade to the tradequeue, which is displayed in the listbox on the left.
A new empty trade will be added to the tradequeue:
Click on the trade to select it. Once it is selected, you can use the buttons at the bottom of the listbox and you can also edit the trade in the panel on the right hand side.
Here, you can add things to the sell list and the buy list. The bot will select everything in the sell list and will only accept everything in the buy list when trading. NB: You can adjust how much space the buy list and the sell list by moving the separator.
In order to add an item, input the quantity of the item and select an item from the ROTMG item list by pressing the
Once you have selected the item and the amount, you have the option to also give it a nickname by simply changing the text in the box (alternatively, you can leave it how it is): Once you are done setting up the item, make sure to add it to the item list using the
+button. If you made a mistake, you can remove it from the item list again by selecting it in the list and clicking the
Once you have set up the trade, don’t forget to click
Apply at the bottom in order to apply your edits:
You will notice that you can now see the trade details in the tradequeue
You can use the two buttons at the top of the tradequeue listbox in order to export the tradequeue to a file and also load it again. (BTW: It is exported into a JSON file):
To save, just click on
Save and give your tradequeue a name:
You can then load it later by selecting it in the dialog that is launched when you press the
The number next to the two buttons is the current index in the tradequeue (where 0 is the first trade). You can modify that if you wish.
This is an exciting feature that allows you to pipe (direct) the outputs of your bots to other bots that will handle the items (by either converting them or storing them).
For example, you can use this feature to make a setup in which you have 5 trading bots, merching using a cyclical tradequeue (such as the 1def-3dex-1dex;1def-4dex-1def;2dex-2def cycle). The output (1 def) gets given to a Converter bot which converts takes the output of the tradebots and once it has 4 def, converts it to 1 mana. This mana is then passed on to another converter bot which takes 2 mana and converts it into a life. This life (the output of the second converter) then gets distributed among 2 storage bots (storage bots just recieve items and keep them in their inventory).
That is exactly what is going on in this picture: (ooEangoo and Motemakura are the converters and Blxgvtihjc and iiOrothii are storages, the rest are traders)
Here’s how to make this kind of setup:
In the setting UI, you will notice there is a button
Helper Settings. Clicking on it, will bring up the Helper UI:
Use the buttons at the bottom of each list box in order to set up the system as you desire. Don’t forget to press
Add after selecting each client and they will appear in the listbox. Once you are done, check the
Enabled checkbox at the top right of the UI.
Snapshots are saved automatically when the trade bots are running, but if you really need to save a snapshot, you can click the
Save Snapshot button.
To load a snapshot, click on the
Load Snapshot button:
There may be some snapshots there, even if you did not take them yourself because they are Autosave snapshots. These Autosave snapshots begin with
AutosaveSnapshot then the Year, Month, Day and then the Tick Number and Hash (don’t worry about this, it is just to differentiate the AutoSaves). The Autosave file gets replaced every time there is an Autosave, unless that Autosave Snapshot was not taken today (in other words: Autosave snapshots wont be replaced automatically if they were taken in previous days). Snapshots saved using the
Save Snapshot button will follow the same naming format, except it will begin with
Snapshot rather than
AutosaveSnapshot and will not be replaced by Autosaves.
Make sure that you have the same account(s) open as you did when you saved the snapshot (if you don’t - the snapshot data for the accounts that you did have open when taking the snapshot but do not now will be ignored). Your clients will then start moving to the position they where when taking the snapshot (may not always work and you might need to move them yourself) and all the tradequeues, Helper Setting, etc will be loaded from the snapshot.
type: K-Relay Plugin