If you haven’t yet seen Foxy dragging around a craft-table as part of her new drop/explore/build/take/move/drop ritual, it’s only because you haven’t been looking at Eulora lately1. So better go and grab yourself the latest client2, start compiling it and while it compiles, come back and read the story of the little bot that could do wonders with a humble craft-table. And yes, Foxybot 1.4 is now part and parcel of Eulora’s client 0.1.2, hooray!
When Foxybot was as little as 1.3, it could happily explore for quite a while, but it horribly mixed items of different qualities and it inevitably got stuck when all it got was too heavy to even move any further. To avoid this, the whole explore got a few more steps of dancing with the craft-table. All you have to do is to make sure that the first table in your inventory is empty(first table, but not necessarily in the first slot – so you can have an empty table in the 10th slot, as long as in slots 1-9 you have anything *other* than a craft-table or just nothing) and then start the bot, for instance like this:
/bot explore 10000 line 10 1 7 7500 8500
The above means that the bot will do 10000 explore attempts, going in a line that is 10 attempts long, leaving the key in the claim after building (flip that 1 to 0 if you prefer to keep the keys), checking every 7.5 seconds to see how things are going and giving up on waiting (timeout) after 15 seconds (technically after 8.5, but because of 7.5 seconds between checks, it will be 15 seconds in total until timeout). More precisely, the bot will do the following:
- Get first table in inventory and drop it.
- Build claim (if any)
- Take resources
- Put key in claim (if flag is 1)
- Move resources to the first slot in the table that is on the ground and *assign* this slot to that resource AND that type of claim (for instance: flotsam_tiny or flotsam_small)3.
- Move one step
- Pickup table
- Drop the table that was just picked up (hence NOT whatever other table might happen to be first now) and *repeat* from step 2.
The sequence above means that resources from tiny and small claims of the same type are kept separate. It also means that you really can explore for as long as you wish without becoming overweight, since everything is in the table and the table is just dragged on one step at a time (the movement is done when table is on the ground so there is no overweight issue). However, there are a few caveats, namely:
- CaveAtAbundance: Like it or not, the craft-table has “only” 16 slots and each resource will take in the end two slots (1 for small and 1 for tiny). Hence, poor bot can fit only 8 different resources before it runs out of space in the table. Being a stubborn bot as it befits a machine, it will keep going nevertheless by keeping separated what it can (what is already in the table) and otherwise mixing (despite its best efforts) everything else. Hey, it’s your bot, not your master to know what is what!
- CaveAtPoverty: Bot works hard and finds claims, but claims are hungry for lbn and cft. Feed your bot appropriately with enough cft and lbn to last it or you’ll come back to an inventory full of keys to tiny and small claims (mostly). You’ve been warned – have fun and ignore it, bot won’t care either way.
- CaveAtMeddling: The bot knows what it knows and nothing more – it’s a state-machine! More to the point, if you start moving things around in its table, it won’t know and it won’t care – you are the master, you are free to mess things up – the bot will just keep doing precisely what it was doing. So if you for instance move some grass to its previously flotsam-tiny slot, then it will still try to move its next stack of flotsam into that slot. The server being quite uppity about it, will simply stack the flotsam instead into the next free slot in the table. In turn, this will cause further grief when the bot tries to put in *that* “free” slot something else and that gets moved further by the uppity server and so on and so forth. Hey, you wanted meddling? There’s no better chance than this to turn it all into disgusting goop. Bon appetit!
- CaveAtRestarting: If you stop your bot for any reason, be aware that you are probably better off by first stashing somewhere all resources found so far before starting the bot again. Otherwise the resources will probably mix horribly (server mixes what you take with anything in your inventory, including something that is *inside* a table). So either go with them to storage or dump them in a claim and lock it, but really, get rid of them, reset the bot (/bot reset) and only then start it again.
Some of the caveats above also have workarounds if you know what you are doing4. For instance, if you really have some stuff you want in that first table (maybe because it is too heavy and you can’t move with it), you *can* still make it work fine: just put that stuff in the *last* slots in the table, since the bot will nicely start with the first slots. And make sure that you don’t end up in the CaveAtAbundance dark corner, since there will be therefore space for even fewer than 8 resources.
Other than the above and as always, Foxybot is not only easy to change, but also easy to replace: simply replace any of its files or its whole folder with the corresponding files/folder of a previous (or your own) Foxybot version, as you wish. Recompile the client and you are all set, there is no incompatibility as such.
First users have already reported quite inventive uses in getting the bot to explore all the way to a mining spot. There certainly are others, so go bend the bot in new ways all of your own. Enjoy!
And if you haven’t looked at it until now, you already missed more than meets the eyes, but that’s your loss, not mine. ↩
Version 0.1.2b, as older versions won’t work with the server freshly deployed this Wednesday. ↩
For the curious but too lazy to read the code: this is implemented with a hashmap that has as key a string created from the type of the claim (tiny or small) and the resource’s name and as value the number of the slot assigned in the table. This is because currently the client is dumber than the dumbest terminal and therefore there is no reasonable way for the bot to actually know what is in the table (short of asking the server *every* time). So the bot is basically blind to the world as it is, having only its own limited image of the world as it *should be* according to its previous actions. Feel free to discuss the Foxybot philosophy but keep in mind it’s not even of school-age yet. ↩
Better know – or find out – what you are doing at least half as well as the bot does. ↩