User Manual

Table of Contents


Join and Enable GrooveStats #

In order to use this BoogieStats instance as your score aggregator you will first have to set up GrooveStats integration. If you already have GrooveStats up and running in ITGmania (BoogieStats don't support GrooveStats Launcher method anymore), you can skip to Join and Enable BoogieStats section.
  1. Download and install ITGmania from the official website. Optionally, migrate your profile form SM5 (if you have one) using the following guide.
  2. Start the game, create a profile (if you haven't migrated a profile) and set it to a desired player slot.
  3. Set Enable GrooveStats to Yes in the GrooveStats Options inside the Game Options submenu of Options.
  4. Turn off the game (it's important, because Stepmania overwrites config files).
  5. Go to GrooveStats website and Sign Up. Then log in and go to the Edit Profile page to generate and/or copy an API Key.
  6. Configure GrooveStats in your game profile by creating/editing a GrooveStats.ini file inside your profile's directory. If you need help locating your profile, see Locating Game Settings section. The file must have the following contents:
    
    [GrooveStats]
    ApiKey=your API key from groovestats.com
    IsPadPlayer=1
    
    Make sure that there are no spaces around the pasted API Key and that IsPadPlayer is set to 1, otherwise the game will only fetch scores without ability to send them.

Join and Enable BoogieStats #

You don't have to create any accounts, just configure the game using this guide and start playing. If you don't have a GrooveStats integration in your ITGmania, please start with Join and Enable GrooveStats section. There's a common configuration needed no matter what theme you use.

First you need to allow ITGmania to make network requests to BoogieStats address. Make sure to turn your game off before modifying the configuration. Locate your Preferences.ini file in the configuration directory. Find the line that starts with HttpAllowHosts= and append ,boogiestats.andr.host. Make sure that there are no extra spaces or protocol, just the address after a comma. It's important to keep GrooveStats in the list to allow downloads of unlockable songs in the contests held on GrooveStats.

For example, change:

HttpAllowHosts=*.groovestats.com
to:

HttpAllowHosts=*.groovestats.com,boogiestats.andr.host

Now pick the theme-specific instructions that apply to you. If you start with a fresh ITGmania installation and don't know what to choose, zmod offers the best BoogieStats user experience at the moment.

Zarzob's Simply Love Fork (zmod) #

Zarzob's fork of Simply Love, commonly referred to as zmod, has an extended support for BoogieStats. You can download it from the project's GitHub page.

If you run already have a recent version of zmod, just set Use BoogieStats to Yes in the GrooveStats Options inside the Game Options submenu of Options.

Stock Simply Love #

Modify Simply Love theme to redirect requests from api.groovestats.com to this BoogieStats instance. Find and modify ITGMANIA_PATH/Themes/Simply Love/Scripts/SL-Helpers-GrooveStats.lua — change line that starts with local url_prefix from:

local url_prefix = "https://api.groovestats.com/"
to:

local url_prefix = "https://boogiestats.andr.host/"

Make sure that the trailing forward slash (/) is included and that there are no extra spaces on either end of the address.

Other Themes #

There's a chance that if your current theme supports automatic score submissions from ITGmania without GrooveStats Launcher, the method described for Stock Simply Love theme could also be adapted for your theme, but it's not been tested.


Your First BoogieStats Score #

When you completed all required configuration you can just start playing. All songs will now appear as "ranked" in game. If you use zmod theme, the leaderboards will display the source of scores (either GS or BS).

After you play and pass any song and your score is not disqualified locally by the game, your score will appear on the recent scores page. Make sure that the bottom of the result screen in game says Submitted!. If for any reason the score is disqualified, the panel with QR code should give you more details.

When the score has been submitted by game, a BoogieStats player profile will be created automatically. If you chose to play a GS-ranked song, the profile will already have your nickname and machine tag pulled from GS, otherwise they will remain randomly generated until you complete a GS-ranked song or set them manually on the Edit Profile page. Use your GrooveStats API Key to log in (you can paste the whole key, it will be automatically cut to the limit inside the form), the same one that's been set in GrooveStats.ini file. You can also disable the automatic name and tag updates on that page.

Edit Profile also allows you to choose rivals. Historically you could only set up to 3 rivals but BoogieStats currently allows you to choose as many as you want. All of them will be shown on your BoogieStats profile with option to open the comparison page, but only the top 3 scores of your rivals on a given chart will be displayed on the leaderboards in the game. If you don't like this in-game behavior, just set up to 3 rivals.

If you ever need to change your GS API Key, Edit Profile page will also allow to update it in your BoogieStats account. If you submit a score with a new GS API Key without updating it first there, a new account will be created. See Q&A section for details.


Locating Game Settings #

Stepmania keeps configuration and player profiles inside a directory that depends on type of installation and your system. Remember to only modify the configuration when the game is not running, otherwise it will be overwritten.

Portable Installations #

Your configuration will be in GAME_INSTALLATION_DIR/Save directory.

Windows #

Your configuration will be in %appdata%/ITGmania/Save directory (paste this path to a navigation bar of file explorer and hit enter).

Linux #

Your configuration will be in ~/.itgmania/Save directory.

macOS #

Your configuration will be in ~/Library/Preferences/ITGmania directory. Please note that by default it might be hidden in Finder. You can display Library directory by navigating to your home directory, pressing Cmd+J and checking Show Library Folder.

Player Profiles #

Profiles are stored inside LocalProfiles directory, they are usually named using consecutive ids, for example: Save/LocalProfiles/00000000/. If you have more than one profile, you can check the Editable.ini inside a profile to make sure that you picked the correct one.

This BoogieStats instance has a search feature that allows you to search songs that have already been played. Please note that this is still an experimental feature and might not work in all the cases. Additionally, the used search engine (RediSearch) imposes several limitations on the queries but on the other hand brings some features for power-users.

Below you can find a list of example queries with explanations which can help you figure out how the search works. You can use multiple special terms in a single query.


Q&A #

Q: Will the scores be saved to GrooveStats when I use BoogieStats? #

Yes! BoogieStats acts as a proxy for GrooveStats. It records all received scores and also passes them to GrooveStats. You can select which leaderboards you want to see in game in your Profile.

Q: How to enable EX Score leaderboards? #

Go to Edit Profile page and select BoogieStats EX Scores from the Leaderboard source drop-down list and and click Update to enable EX Scores for the in-game leaderboards. UI has a toggle for ITG/EX Scores in the navbar at the top.

Q: Is it safe? #

It's probably as safe as using a USB Profile on a public machine in an arcade or during a convention. I don't store your GrooveStats API key in a clear form, and the whole key is used only during forwarding scores to GrooveStats. You can inspect the code on GitHub or host the app for yourself if you don't plan to use the comparison & leaderboards features.

Q: What if I play a song that's not in your database? #

BoogieStats will automatically accept and track its scores. It will look like any other ranked song in your game. In the UI, the song will display a song hash instead of a title until its information is added to the public chart database. Please send me a list of packs that are missing when you encounter this issue. Once the song metadata is added to the database, the UI will show it for the scores sent in the past as well.

Q: Will you support Stats.xml or simply.training jsons? #

Not in the current form. They don't use the unique song identifiers, therefore BoogieStats is not going to try and match songs by their paths, which has already been proven by GrooveStats to be a tedious, troublesome and ambiguous.

Q: Do events held by GrooveStats and the related leaderboards work with BoogieStats? #

ITL and SRPG as well as their custom leaderboards are supported. As for the other events, it's probably a matter of a little time if they introduce a custom API.

Q: Will it work in a public arcade with a USB Profile? #

Yes, as long as the machine is set up to use BoogieStats. If you run a public machine, please let your players know that their GrooveStats API key would be exposed to a 3rd-party proxy.

Q: I generated a new API Key, now what? #

Don't panic and please don't send any scores before updating your BoogieStats profile. Use your old Api Key to log in to Edit Profile page and paste the new key into New GrooveStats API key field and click Update. You can now send scores using the new API Key.

Q: I already sent a score with a new API Key and there are two profiles on the site, now what? #

Currently there's no way to merge profiles, but it's planned for the future. Please keep your old API Key saved somewhere so that you can claim your profile and scores later in the future.

Q: How can I support the development of the project? #

If you spot a bug or would like to request a new functionality, please create an issue on project's GitHub page. Source code contributions are also welcome, please create an issue before submitting a Pull Request so we can talk about it first.

Q: Where can I track updates and maintenance break information? #

This BoogieStats instance is primarily, but not exclusively, hosted for the members of the Polish Dance Game Community (PDGC). There's a section dedicated to BoogieStats on PDGC Discord server. The maintenance windows are always announced there. Maintenance usually happens at 10PM CET/CEST and takes less than a minute if there are no unforseen events. The #bs-announcements channel is updated in English and can be subscribed to another Discord server (using the built-in subscribe feature by a user with web-hook permissions on the target server) for automatic updates cross-posting.

Q: How can I contact an administrator of this BoogieStats instance? #

This BoogieStats instance is hosted and administrated by andrzej. The quickest way to reach me is via Discord, my handle is andrzej_. Please note that I'm based in Europe so our "active hours" overlap might be limited. No hello and Don't ask to ask, just ask are your friends in async communication ;) If you don't need my personal assistance, consider posting a message publicly on the #bs-general channel on PDGC Discord server.

Q: Can I donate money to support BoogieStats? #

I don't take any personal donations at the moment, but you can consider donating to a registered non-profit organization, GSPS, I'm volunteering for in my free time. We organize a bi-yearly charity speedrunning events in Poland in similar manner as GDQ and we are always short on sponsors. We still don't have an English version of the website, but you can easily find the big yellow PayPal donation button on our website. Over the years we've managed to raise over 300k PLN ($75k) for various charities without ever taking any cuts from the proceeds during the events.