A Project Sekai Tiering Discord Bot that stores user and tiering data and visualizes them in the form of graphs and heatmaps
All visualization is based from a central database that tracks two things
- All users that have linked with the bot
- The current top 120 people on the leaderboard
With that information many different visualizations can be made
/statistics shows the current statistics for a specific user or current tier on the leaderboard (T100).
This show multiple useful values. The most useful are the event points and games played in the last hour, to see a user's current pace. Additionally this command shows the last 6 games played, the timestamp of when they played, and the energy usage of the game.
/graph cutoff(tier, by_tier=None, event=None)
/graph user(user, event=None)
/graph shows the event point graph for a specific user or current tier on the leaderboard (T100).
This is a simple line graph of your event points over time, it's useful to see your usual pace over a period of time. This graph uses quickchart.io to generate the graph.
/heatmap cutoff(tier, offset=None, event=None, pallete=None, annotategames=None, bypoints=None)
/heatmap user(user, offset=None, event=None, pallete=None, annotategames=None, bypoints=None)
/heatmap shows the games played or points gained for every hour of an event. This uses plotly to generate the graph.
additionally it can be configured in the settings with a different color palette and to show numbers on the heatmap (example with default color palette and numbers shown).
/hist cutoff(tier, binsize=None, min=None, max=None, event=None, hourly=None, games=None)
/hist user(user, binsize=None, min=None, max=None, event=None, hourly=None, games=None)
/hist shows the histogram of your event points for each individual game. This uses plotly to generate the graph.
This can also be configured to show event points per hour, and games played per hour.
/bar cutoff(tier, hour, event=None)
/bar user(tier, hour, event=None)
/bar shows a bar graph of every game played for a given hour, there are buttons at the bottom to move between hours. This uses plotly to generate the graph.
/leaderboard(rank=None)
/leaderboard shows the current top 120 players separated into 6 pages
This also shows their change in current tier, their change in event points over the last hour Additionally, an alternative view shows the score per game over the last hour, their total games played, and the games they played in the last hour.
Aside from visualization GhostNeneRobo has other functions useful for tiering and for fun
/gacha automatically generates an image with a 10 roll on the in game gacha. Due to copyright I cannot give an example image here.
/rm is a function that renames a channel for a specific room code and amount of open players
/bonk allows you to "bonk" another user to go to sleep. This also stored the amount of times a single user has been bonked
/pray is a command that lets you pray to a specific character in Project Sekai, this command gives luck varying from -1 to 80
/stock is a command with 5 subcommands These subcommands are
- get
- buy
- sell
- list
- portfolio
/stock get(symbol)
This command gets a specific stock by it's symbol, this works both for custom-named stock tickers and normal ones
/stock buy(symbol, amount)
This command buys a given amount of a specific stock ticker of a given amount, this uses luck gained from the command /pray to buy stock
/stock sell(symbol, amount)
This command sells a given amount of a stock (given that the user has enough) and gives luck from the current price
/stock list()
This command lists all tickers for custom stocks
This command lists the users current stock portfolio and their current prices
Rename config.sample.json
to config.json
Fill token: ""
with your own discord bot token, obtainable from Discord Developer Portal
Make sure that you have enabled applications.commands as a scope when generating an invite URL
npm init
to install all of the required dependencies
npm run load
to load all the slash commands
node index.js
to run the bot
Due to the sensitive nature of the game API, the script to pull data from the game is not included in this code.
If you have any issues with the bot or would like to contribute, please contact Ai0 on Discord.
Code
- Potor10#3237
- Ai0
- Ult#0001
- Redside#1337
- Yuu#6883
- Maid