Free open source Splinterlands statistics tool v0.24.0

Splinterlands Statistics.png

Introduction

This release the tool is has expanded the hive blog generation that now includes the league rewards earned the last season.

How-to Manuals

Learn how to set up and use the Splinterlands Statistics tool on different platforms:

Demo environment

Try the demo environment to explore the tool’s features. Remember, for full control and to keep it free, you can easily set it up on your machine or server.
https://demo.spl-stats.com

Release:

To view all released versions:
Github splinterlands statistics release overview page

Previous release posts:

v0.23.1 - Rebellion value added to portfolio
v0.22.1 - Fix account connections towards SPL API
v0.22.0 - Add rebellion soulbound rewards units
v0.21.0 - Add dec/grain pool information
v0.20.3 - Add loot chests to hive blog
v0.19.0 - Add rarity draws and last played battles
v0.18.2 - Add glint to season rewards
v0.17.1 - Add Ability filter
v0.16.0 - Unclaimed SPS balance history SPL API update
v0.15.1 - SPL battle history API changed
v0.14.2 - Balance history and battle API updated
v0.13.0 - Battle view home team now in reverse order
v0.12.1 - Update losing page
v0.11.1 - Add land monitoring
v0.10.0 - Portfolio: land update
v0.9.1 - Fix rebellion pack values
v0.8.0 - Auto process season in server mode
v0.7.0 - Server/read only mode incl. how-to deploy on synology nas
v0.6.0 - Card overview + Nemesis expansion
v0.5.0 - Portfolio card edition and sps overview
v0.4.0 - Show categories in portfolio overview including history
v0.3.1 - Add generate hive blog
v0.2.0 - Add filter and sort options to home page
v0.1.0 - First implementation Splinterlands Statistics V2
Last "Old" Splinterstats tool V1

Main Features

Battle Insight

  • Performance Analysis: View your most used and best-performing cards based on customizable filters.
  • Detailed Filtering: Filter battles by rulesets, formats (Modern/Wild), opponents, and more to gain specific insights.
  • Identify Weaknesses: Discover which cards and strategies you frequently lose against.
  • Strategic Improvements: Analyze loss patterns to adjust and improve your gameplay tactics.
  • Opponent Analysis: Identify and analyze performance against frequent opponents.
  • Overall Nemesis Stats: Discover which players pose the biggest challenge to you over time.

Season Statistics

  • Comprehensive Overview: Access detailed statistics of your performance for each season.
  • Earnings Tracking: Monitor your season earnings across various reward types including DEC, SPS, and cards.
  • Hive Blog Generation: Automatically generate detailed Hive blog posts summarizing your seasonal performance.

Card Insights

  • Individual Card Stats: Explore specific statistics for each card in your collection.
  • Recent Battle Logs: Review the last five battles won and lost using a particular card.
  • Synergy Analysis: Understand how specific cards perform in combination with different summoners and units.

Portfolio Management

  • Investment Overview: Track the value and performance of your entire Splinterlands asset portfolio over time.
  • Category Breakdown: Analyze assets by categories such as Cards, SPS, DEC, and more at specific historical points.
  • Edition Analysis: Evaluate the value and BCX count across different card editions.
  • SPS Monitoring: Keep tabs on your SPS holdings, including staked amounts and historical value changes.

Rating Analysis

  • Daily Win Rates: View and compare your daily win rates in both Modern and Wild formats.
  • Rating Progression: Monitor changes in your rating over time to assess improvement and consistency.
  • Multi-Account Support: Track and compare ratings across multiple accounts simultaneously.

Land Monitoring

  • Trade Hub Tracking: Monitor liquidity pools and activity within the Trade Hub.
  • Resource Harvesting: View detailed logs of resources received from land harvests.
  • Tax Collection Insights: Track resources gained through tax collections from castles and keeps.
  • Cumulative Analysis: Analyze the accumulation of resources over time for better asset management.

What is new in this release...

  • ADD: league rewards chapter added to the hive blog

Elaborate on the new features

In this update, we've introduced several exciting new features to enhance your experience.

League season rewards added to hive blog generation

When you generate you hive blog of your last season now also the league rewards will be added:

image.png

example result:

League rewards

Format
https://images.hive.blog/150x0/https://d36mxiodymuqjm.cloudfront.net/website/ui_elements/shop/ranked/draws/img_chest-minor_250.webphttps://images.hive.blog/150x0/https://d36mxiodymuqjm.cloudfront.net/website/ui_elements/shop/ranked/draws/img_chest-major_250.webphttps://images.hive.blog/150x0/https://d36mxiodymuqjm.cloudfront.net/website/ui_elements/shop/ranked/draws/img_chest-ultimate_250.webp
SILVER_IGOLD_III
6x
3x
0x
CHAMPION_III
13x
10x
4x

League rewards special items earned

11859
3
39
9
0
0

League rewards cards earned


bcx: 1

bcx: 1

bcx: 6

bcx: 1

bcx: 1

Showcase main features...

Here’s a closer look at some of the key features that make the Splinterlands Statistics tool a must-have for players.

Main page

On this page, you can find your most frequently used and best-performing units or summoners. Clicking on any of them will take you to a detailed overview of that specific card. You can also define filters to refine your search.

For example, you can display your best-performing units under the standard ruleset, with a minimum of 10 battles played in the Modern format.

image.png

Losing

On this page, the cards you have been losing most against. Again with extensive filtering options.

image.png

Specific card overview

On this page, you can select you account and a specific card.
Note: only cards can be selected since battles are recording via this tool.

On the top an generic overview of the selected card.

image.png

Then with which card it is most paired with summoners and units

image.png

After that the most lost against cards with summoner and units are presented

image.png

Nemesis

On this page, information about who you lost most against. When a certain player is selected you will get an result of the last played matched against that player and some stats.
image.png

In the end of the page there is still the overval nemesis, the most lost battles against an player
image.png

Rating

Daily battle statistics:
In my case modern are played by myself and wild by xbot.

image.png

image.png

image.png

or view all of the accounts at once:

image.png

Season result tracking

Seasonal battle statistics:

image.png

Summarized seasonal earning:

earnings.png

Generate hive blog post about you last season:
image.png

Portfolio tracking

Tracking your complete portfolio value and view how your editions are valued:

image.png

image.png

Or view specific editions like riftwatchers compared to chaos:

rift-chaos.png

View you staked SPS value over time and zoom in:

image.png

What is next...

  • Investigate change from cvs store to parquet files, should have better performance.
  • Write how to deploy on cloud environment
  • Show cards that are not used or almost never used.
  • Make icons for navigation bar

How to use splinterlands statistics

⚠️When this tool is used for the first time and you are collecting seasonal data it has to retrieve all historical data. This can take a very long time, depending on how long you have played the game and how many transaction are done. Especially when an renting bot is used it probably has many small DEC transactions.

It an open-source free to use tool. If you do not trust it, do not use it or you can verify the source here:
https://github.com/gamerbeaker007/splinterlands-statistics/tree/main

With executable

Installation with Executable

  1. Download the Executable:
  2. Unzip the Downloaded File.
  3. Run spl_statistics_tool_<x>.exe on Windows or ./spl_statistics_tool_<x>.sh on Linux.
  4. Access the Tool: Open your browser and go to http://127.0.0.1:8050.
  5. In config page connect SPL account
  6. Add monitoring accounts

With Docker

docker pull gamerbeaker/splinterlands-statistics:latest
latest can also be replaced by a release tag those can be found here:
https://registry.hub.docker.com/r/gamerbeaker/splinterlands-statistics/tags

Command line options:

  -h, --help            show this help message and exit
  -d, --debug           Enable debug mode
  -l {WARN,ERR,DEBUG,INFO}, --log-level {WARN,ERR,DEBUG,INFO} Set log level
  -s, --server-mode     Enable server mode
  -st STORE, --store STORE Specify a store
  -ro, --read-only      Read only

Create an directory where to store the files, in this example C:\Temp or \temp

Windows (docker):

docker run --rm -it -v C:\Temp\:/app/store -p 8050:8050 --name splinterlands-statistics gamerbeaker/splinterlands-statistics:latest

For server mode

docker run --rm -it -v C:\Temp\:/app/store -p 8050:8050 --name splinterlands-statistics gamerbeaker/splinterlands-statistics:latest -s

Linux (docker):

docker run --rm -it -v \tmp\:/app/store -p 8050:8050 --name splinterlands-statistics gamerbeaker/splinterlands-statistics:latest

For server mode

docker run --rm -it -v \tmp\:/app/store -p 8050:8050 --name splinterlands-statistics gamerbeaker/splinterlands-statistics:latest -s

With python development or local execution

Download source and unpack, source link.
Use python 3.8 or higher.

pip install -r requirements.txt
python src/main.py

When installing on a window machine and you encounter this error message:

scrypt-1.2.1/libcperciva/crypto/crypto_aes.c(6): fatal error C1083: Cannot open include file: 'openssl/aes.h': No such file or directory

Then install Win64 OpenSSL (not the light version)

Disclaimer

This is a hobby project that I do in my spare time.

Why I created this project:

  • Passion for Data: I enjoy diving into data for a game I love to play and aim to improve my playstyle through detailed data analysis.
  • Skill Development: This project also helps me practice and keep my programming skills up to date.

Future updates:

I plan to update the data with newer versions of the game. However, please be aware that there may be times when you need to start over with data collection. I can't guarantee that everything will always work smoothly.

Important notes:

Performance with large datasets: I'm not yet sure how the project will perform with larger datasets, so consider this a big caveat.
Early-stage development: Since this is a new project, expect occasional crashes or issues that may not work in your particular situation.

If you encounter any problems, please feel free to reach out. I'll do my best to help resolve any issues.
Please note that the performance with large datasets is still uncertain and may require further optimization.

Feedback:

If you have any suggestions, remarks, improvements, or bug reports, please leave a comment or send me a message.

That's all for this week! I hope you enjoyed reading and that you'll start tracking your data to gain more insights.

See you all on the battlefield!

Not a splinterlands player yet, consider using my referral link.



0
0
0.000
10 comments
avatar

wow, excellent work @beaker007. I was looking at your repository and one of the parts that I liked the most was your spl.py file. It's all premium content, great for starting an API for any program that analyzes Splinterlands data. I am tempted to create a program that analyzes the battles in the bronze and silver leagues, which gives an idea of ​​what new players entering Splinterladns must face. You know, since in Splinterlands everything that has to do with the experience of new players is fashionable, I think it should be shown what these players are going to have to face in their beginnings. It seems like an outburst to me that a bronze player has to face a level 5 to 8 summoner in that league.

A question about the different features in the API you've developed for Splinterlands; To manage the data, do you only use CSV and Panda or are you also using SQLite?

0
0
0.000
avatar

Hi @quigua,

Thanks for your comment, indeed it has grown to extended api. Often tempted to create a python package for it.

@kalkulus is also busy with a spltools (python) repo.
checkout his latest post:
https://peakd.com/hive-13323/@kalkulus/a-strategy-for-spending-glint-based-on-current-collection-progress-and-updates-to-spltools

Indeed i currently only use csv files, it still performs good enough, with 3 accounts monitoring since 2023-04-30. But i should be moving towards a sql or at least Parquet files.

When you start with your tool and have questions let me known 👍

0
0
0.000
avatar

I understand that you have csv files per user. How big are those one-year files? Because I downloaded the battle data from the last few days for all active users and the csv files are around 5 GB. If I plan to keep permanent statistics on all users, I have to optimize the storage a lot. That's why I asked about using SQLite, but parquet files maybe a better solution.

0
0
0.000
avatar

I wanted to also try building it with mongodb. Had a small experiment with and is also nice for the way i handle the transactions.
This method with csv is just easy also for others to use without knowledge of setting up a database etc.

For now my biggest file is 40MB, not that much. I do not store all the data just the data i need.
The most important one is the transaction id (or battle_id), that always be use to migrate and extend data I'm really missing it in the future.

image.png

0
0
0.000
avatar

This looks great. So much to dig into. Now I just wish I had stored all my historical data already 😂

0
0
0.000
avatar

Congratulations @beaker007! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)

You received more than 6000 HP as payout for your posts, comments and curation.
Your next payout target is 7000 HP.
The unit is Hive Power equivalent because post and comment 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

0
0
0.000