A guide to setting up your own Splinterlands bot

in Splinterlands3 years ago (edited)

Back in January, I wrote about my success in getting a script working that can play my Splinterlands cards. Since I have so many monsters and summoners, especially low level cards I divided them up into 10 accounts. See below for Peakmonsters links to each to better understand the collection power I am working with.

@soloalpha00
@solobeta00
@soloazmare01
@solo00
@solo01
@solo02
@solo03
@solo04
@solo05
@solo06

Even with all of these accounts funded with cards I still have enough with my account to get up to Diamond II. Honestly I have only been in Diamond once ever, usually find myself somewhere in Gold by seasons end.

With these accounts, I am finding myself earning about 30k DEC every season, which is around $200. Along with many great cards. With 3x more bots (around 30) I would be earning around as much as 3rd place in champs in DEC. Pretty amazing honestly....

Now I must point out, I do not use the bot that I will be showing in this guide. As the one I use is closed source and only shared with me for testing, I cannot share the code out of respect to the devs. But I can show you how to use a free one, though expect errors at the time of writing this.

Alfficcadenti has been quite busy making many updates to this bot, so if you tried it back around the time of my previous post on this it has changed quite a bit. Including prioritizing quest rewards.

Link to the bot:

https://github.com/alfficcadenti/splinterlands-bot

Your only cost are spell books if you got the cards already and a machine to run the bot on. If you already have an Splinterlands account then you can just use that on the bot.

Below are the steps to set up your own bot, we will start in the very beginning. If you already have a Linux environment ready to go you can skip this and go straight to part 2.

Part 1: Installing the operating system

In this guide I will be setting up a virtual machine, but you do not need to. If you want you can install it directly on your machine. But I like VMs so I will use that in this guide.

Minimum / Preferred specs for host machine. If you install on "bare metal", meaning not on a virtual machine you can just go with the minimum. Otherwise you may find your virtual machine slow, and the script may time out on very slow machines if it cannot load the webpages fast enough.

Windows 10 Machine
6GB of RAM / 16GB of RAM
2 CPU cores / 4 CPU cores
60GB free disk space

To start download Ubuntu 20.04 LTS from the link below along with Oracle Virtualbox 6.1.26

Download Link to Ubuntu 20.04 LTS

https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso

Download Link to Oracle Virtualbox

https://download.virtualbox.org/virtualbox/6.1.26/VirtualBox-6.1.26-145957-Win.exe

Install Virtualbox and save the .iso for later.

Create a Virtual machine
Type: Linux
Version: Ubuntu 64-bit
Memory: between 4-8GB, the more you can spare the better.
Hard drive: 60GB

Upon setting up your new virtual machine you will need to mount the linux .iso you downloaded. You can find it under Settings>Storage>Attributes>Choose a disk file.

Next is to reboot your PC and enable virtualization. You will do this from your BIOS. This can vary depending on each manufacturer. (if you are not using a VM then this is not needed)

Once completed boot up your virtual machine and Linux livecd should come up. Click on "Install Ubuntu"

Click through the defaults until you reach "Install now" Keep in mind if you are doing this outside of a VM it can affect your currently installed Operating system. This is why I am doing it on a Virtual machine, makes it easier to manage.

Next you set the timezone and password. I suggest setting it to auto login for this simple bot machine.

Let the OS install, this can take anywhere from a few minutes to an hour depending on your machine.

Once installed and the virtual machine has been rebooted I suggest turning off screen lock. Goto Settings>Privacy>Screen Lock> Uncheck Automatic screen lock and change blank screen delay to never

Install Virtualbox guest additions by going to the Devices menu in Virtualbox and selecting "insert Virtualbox guest additions cd image" Installing this will help with compatibility between the virtual machine and host machine.

Part 2: Setting up the bot and dependencies

Download the bot using terminal
wget https://github.com/alfficcadenti/splinterlands-bot/archive/refs/heads/master.zip

Extract the downloaded zip in your Home directory, I like to place it in my documents.

add an .env text file that includes your Splinterlands account, posting key and bot settings. If you set it to true it can go after quests as well. I will use nano in this example, first navigate to your splinterlands-bot-master folder using the cd command.

nano .env

add the following four lines to the file.

ACCOUNT=youraccountname
PASSWORD=yourpostingpassword
QUEST_PRIORITY=true
MINUTES_BATTLES_INTERVAL=30

change youraccountname and yourpostingpassword to your own. Then press Ctrl-O, then enter and then Ctrl-X to save and close it.

Next is to install Nodejs as the bot is programmed in HTML and Javascript.

Update your repositories

sudo apt update

Install Nodejs

sudo apt install nodejs

Check that its up to date and functioning. Mine reads 10.19.0

node -v

Install Node Package Manager.

sudo apt install npm

Check that its up to date and functioning. Mine reads 6.14.4

npm -v

Navigate using cd to your splinterlands-bot-master folder.

Install needed Node dependencies

npm install

Run the bot

node index.js

Animation of the bot in action.

RAM and CPU usage while the bot is running, taken from inside the virtual machine.

API Errors

If you are getting errors and surrenders due to API errors it is due to the public API server that the dev is hosting. Below is his response.

A screenshot from his API server, showing the traffic is slammed right now. The popularity of this game growing so massively has alot to do with this.

Join the discord to talk with the bots creator and the community:

https://discord.com/invite/bR6cZDsFSX

Alternatives

Dec404 is a service ran by @nealmcspadden that you can have your cards played by real people.

Peakd.com Link:
https://peakd.com/@nealmcspadden/dec404-is-open-splinterlands-rental-accounts-are-back

Link to their Dec404 discord: https://discord.gg/trQpvCt

Or

Contact @almightymelon or AlmightyMelon#6301 on discord and inquire about plans of a paid subscription service where a bot will play your cards.

For reference a link to my first post about this:

https://peakd.com/hive-13323/@solominer/set-up-my-own-splinterlands-bots

Sort:  

love it :)

Hey Alfficcadenti,

Glad you liked how it came out, thanks alot for the help on discord and best of luck with more development on your bot.

Hey, I know this is a bit of and old post, but I was wondering how you go about adding multiple accounts? I don't see that described anywhere. Thanks!

Oops. Nevermind, I found it. Thanks for the info!

no problem, best of luck botting.

Never tried to set up a virtual machine, or had any experience with Linux.

Finna learn today I guess. 😆 Been wanting to fiddle with both those things for awhile. This gave me a reason to. Thanks!

Just so you know, if my dumbass deletes sys32, or launches skynet, or accidently hacks the NSA, I'm blaming you. 😜

Give it a try, worst comes to worst it just does not work. But at least you learned something while trying.

Lol nah it wont affect your system files, thats why I say use a VM. So it wont affect your host computer.

I got the virtual machine set up thanks to your guide (thanks again)! I'm on step 2 there. Dog got parvo, so had to put the project to the side for now to take care of her. So far so good though!

I got stuck on creating the text file with the user name and posting key. Been trying to learn how to do that. I use to be familiar with using a terminal to do things like that with DOS (different, I know but somewhat similar) Hell, I was 6 or 7 years old last time I used a terminal to do anything though. 😆

So everybody is just running bots? X)
So thats the way to play splinterlands now :c

lol nah only a fraction of people are, with all the new people coming in the last few months I think they will become less and less noticed.

Ye well. I don't know if I think its sad since its allowed and I kinda want to join ya haha xD

Its a great way make use of your idle cards.. Besides renting them out its the best way to help your collection keep earning.

Indeed its allowed, I have listened into the AMAs and they stated there are no plans on getting rid of them.

Well, all of my cards are idle. I don't really play anymore, the few cards I had is rented out and earning me shit since I didn't it before the spike :p

Based on your cwow2 account you may not have enough, but you can try and see what happens.

https://peakmonsters.com/@cwow2/collection

My bots have close to 100 cards each and with less it tends to miss battles sometimes.

I can always just buy some cards, might be too expensive at the moment.

ye well, I just wanted to get some free Dec :p

Seems a lot easier to just rent out idle cards.
It would have to be a way better return to justify the above effort.

Depends, I earn about 3000 DEC a season per bot. Not sure what cards earn renting them out....

Awesome post! Reblogged and upvoted due to its awesomness and quality.

!PIZZA

!LUV

Welcome to 🍕the Cool Pool Pizza Party!🍕

@solominer! I sent you a slice of $PIZZA on behalf of @coolpoolparty.

Did you know you can earn $VFT through the PIZZA farm? (1/10)

<><

<><

LUV

Connect

Trade


@solominer, you've been given LUV from @coolpoolparty.

Check the LUV in your H-E wallet. (1/3)

Oh sweet thanks alot for the LUV

!BEER

Oh man everyone is giving me beers today.

!BEER !PIZZA

@solominer! I sent you a slice of $PIZZA on behalf of @globetrottergcc.

Have you voted for Pizza teams Hive witness (pizza.witness)? (16/20)

hah thanks alot

Hi @solominer
Very interesting your post, I have never used or considered using a bot for Splinterlands but your post made me consider this possibility :)
Could you recommend a bot that I can try and that works well?
It's ok even if it's paid
!BEER
@tipu curate

Ah very nice, yes well the paid options are more reliable. Alfficcadenti offer a $10 a month service to his bot that gives you a better API connection.

DEC404 is probably good too, since its ran by one of the most well known members of the Splinterlands community. Not sure of their costs, best to inquire.

thanks alot for the tipu tip :-)


Hey @solominer, here is a little bit of BEER from @coolpoolparty for you. Enjoy it!

Did you know that you can use BEER at dCity game to **buy dCity NFT cards** to rule the world.


Hey @solominer, here is a little bit of BEER from @libertycrypto27 for you. Enjoy it!

Do you want to win SOME BEER together with your friends and draw the BEERKING.

man all this BEER is gonna get me drunk!

love it
img_7579.png

congrats! its nice to have your cards working for you when you dont have to.

Hi @solominer.

Do you know where I can find some api for python?

!LUV the content and info here... Than you.

oh nice, thanks alot for the tokens.

<><

<><

LUV

Connect

Trade


@solominer, you've been given LUV from @pinkfloyd878.

Check the LUV in your H-E wallet. (1/3)

I love it! I wish I knew how!!!
I will reread this post slowly and see if I understand it fully.
How I wish we were neighbors so you can set me up, @solominer!

If you dont understand its all good, its not a simple computer task.

Hehe yeah I am sure we would trade alot of cuttings of plants ;-)

That we'll do for sure, @solominer hehehe👍😆😍😜

Congratulations @solominer! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s) :

You received more than 44000 HP as payout for your posts and comments.
Your next payout target is 45000 HP.
The unit is Hive Power equivalent because your rewards can be split into HP and HBD

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out the last post from @hivebuzz:

Hive Power Up Day - September 1st 2021 - Hive Power Delegation

I would love to learn how to create my own API for the bot instead of using the public one. I know I can replace this part of the code "https://splinterlands-data-service.herokuapp.com/" with a private one so it works better. I was just wondering if you know of a video to teach me to do that?

Yeah you are correct, if you could set up your own API server you would get much better results.

I am planning on setting up a Hive API server in the future. So if I can get that working maybe I can do one for Splinterlands too.

Hello,

first of all, very nice job, it was very easy to setup and start running it. Congrats!

Only one question, is it possible to change the time delay between battles? I try to set 5 or 10 minutes, but it always says 30 min before the next battle.

There is a way to change that setting?

Ah thanks alot, glad you got it up and running. I beliebe in the .env file there is a MINUTES_BATTLES_INTERVAL=30 field where you would define the battle delays. Try to change that and then restart the app.

How does the bot fair with the new update?

I have not played much with Alfficcadenti's bot since writing this post. Was using a closed source project, and unfortunately its not doing so well after the CL introduction. So I plan on just renting cards until lands is released.