Hello guys,
As a player and botter myself -I hold over 300k CP-, there are many misconceptions about botting/rewards and player pool, so I wanted to make a post explaining how it works, what can you expect, and the different solutions.
I dont think that botting is negative, the player pool is not big enough yet to fill all the bots blanks, but I do think that players staking sps/holding cards should be rewarded higher. So your DEC rewards should be based on assets held, CP owned and not rented, because the main goal should be "leveling up", like in any other game.
There are two ways to configure your bot:
The easy one. Crawling battles with same rulesets, and then getting the ones with the highest winrate based on your cards and play that lineup. So you get a tons of battles from bronze, silver, gold, diamond, champions, and then when your bot is about to play, you get battles with the same results. The main bot, or the original one as far as I know, is alffi's bot. https://github.com/alfficcadenti/splinterlands-bot/releases
The only problem about this bot is that it battles through PUPPETEER. So basically, it opens a browser -like you would do-, it clicks the battle button, gets the ruleset, and then take a look at your database (in this case a .json) and inputs similar battles. If you DONT HAVE A HUGE DATABASE YOUR WINRATE WILL BE LOW. So you would need an API, that we will talk about it later. This bot is extremely easy to use, and if you know about coding you can probably do an api of your own and it will work.The hard one . Even you crawl battles with the same ruleset, simulate the battles based on your cards -same as you would do in game, with flying, miss...-, rank the teams and then insert the cards. You need to be extremely talented to code something like this, and have a lot of free time. The only thing that I could crawl with something along the lines was this:
https://github.com/Bauloewe/SM_Simulation
Mad props for Bauloewe, I dont understand even 25% of his code in Github :D
Then bots started to evolve, and since there is a scaling problem with pupeteer -it consumes a lot of system resources and is almost impossible to run 20, 30 or 40 bots at the same time- you would need to battle through the blockchain. Instead of opening your browser, just sending the requests to hive, starting a match, getting back the info, submitting the team, and checking the results. It works exactly the same as #1,the main difference is that now you can run 20, 50, 100 or 1000 accounts in a same computer. But you still have a problem:
Even you can battle through the blockchain, you still need a huge database of battles that can provide a sustainable WR for your accounts. So what bots do battle through the blockchain and have a nice WR?
Option 1) Pc Jones
https://github.com/PCJones/Ultimate-Splinterlands-Bot-V2
He forked alffis original bot with Pupeteer, and since I guess alffi is quite busy with his real work, all the people who can not do a custom solution switched to this bot. So you input your keys in the account and voila, it will battle through the blockchain with your current cards, and almost no system resources consumed, so even a 7 years old computer could do the work. Problem is, as far as I know, his API is just a huge JSON. If you crawl battles from bronze, eventually you would have a huge bottleneck, because most bots are using similar lineups and your solution wont have the highest winrate.
Option 2, my personal favourite, and the most new one:
Alinubu SplinterRObot
https://github.com/Alinubu/SplinterlandsRObot
I helped debugging this one, talked a lot with the author, and he has a huge mysql api fetching the results. His code is quite clean and neat, and all of the backend work -the database- is build with a good logic. So basically I do believe that in terms of profitability, this bot is currently outperforming by a lot the other solutions. You can run multiple accounts, claim quests, advance through leagues, use 0 mana cards..., all through the blockchain and an API that is build with a good logic.
So when you feel tired, or even if you want to take a break for a week, you can just have a solution to keep playing for you and earning rewards. The last one, Alinubu, as of this day is still the best one, since it has the biggest crawler and the most advanced fetching logic through the entire database.
Most of them have free/paid versions, free version give 15 battles/30 minute calls -you can not battle more than 15 times in 30 minutes even the API is the same- and the paid version gives you unlimited battles.
Do your own research, feel free to give it a try, and if you have any questions you can probably ask the author himself since the guy is pretty open about coding/bot logic.
https://discord.gg/29jGFqsK
Ultimately the purpose of your bots should be feeding your main account so you can play higher and enjoy the game at a competitive level. Not selling the cards at market price looking for a couple dollars a day. Hodl :)
Hey @cardrunner,
just saw your post in Alinubu's discord. Glad that you like my simulator. But its way outdated by now. Overhauling everything right now. Simulator, framework etc.
On a sidenote: I used that simulator back in 2019/20 for a bot which simulated the whole game from scratch. No match data used. Used to run in champions league :).
One more thing: most bots right now don't run on the blockchain. They submit the matches directly to the splinterlands server. You can check by seeing their RC consumption. If you were to submit all matches (find, submit, reveal etc) on chain you'd use up a lot of RC. By Sending it directly to the splinterlands server you avoid the RC cost. You only need RC for claiming quest rewards and the like.
Keep in mind that this approach is different than using a headless browser like puppeteer. (Which is almost never a good idea tbh)
Anyways, have fun "playing" the game ;)
the original idea of using puppeteer was due to try to "replicate the human behaviour" as much as possible, since it wasn't clear to me the direction of the game with respect to bot banning :)
but I agree that resource wise might not be the best solution
Does Alinubu SplinterRObot also has the API limit of 15 battles per 30 minutes?
Hi, great post thanks! I downloaded Alinubu SplinterRObot and followed the configuration steps in the readme file. But now I can't find the executable file. I have opened a CMD window in the bot folder but what command should I type to start the bot?
@cardrunner nice post! I have the some opinion on botting... some are bad, some are useful to the game and its economy.
Also thanks for mentioning my bot as "the original" since it is true that has been copied/used by many others and sometimes without even share the credit.
I just wanted to add that the local db solution was intended to be just a backup to the more comprehensive solution I built originally which is a proper database with API. unfortunately as everyone like free stuff, the public server is often overloaded and therefore I kept the local database solution which works as you described.
But I also kept it opensource not only for transaprency but in the way that any one can use and tweak it as they wish... hopefully sharing the improvements with the community :)
Hello,
Firstly, thank you for the posts. It's really interesting to me as I've tried a few different bot solutions and haven't found one that works that great from me yet.
I've just tried to setup the Splinterlands RObot and am struggling to get it to run. Could you possible help?
Cheers, Sam