Chart Const and Related Files
Chart Data
The chart const data are stored in the chart
table of the main database database/arcaea_database.db
.
song_id
is the unique primary key and should be consistent with theid
in thesonglist
file.- The
name
is a song name easy for humans to understand and has no practical effect on the client. It can be left blank, but it is still recommended to fill it in. Currently, multiple languages are not supported. rating_***
is the chart const of different difficulty charts, using integers in the database, which is ten times the true value. In addition, negative numbers indicate that this chart does not exist or is not included in the potential.
Info
Official chart consts will be not directly provided. You can obtain partial data from the following repositories and use update_song.py
in the tools
folder for data migration and import:
Downloaded Data
The data that need to be remotely downloaded in the client are stored in the database/songs
folder on the server, and the data for each song are placed in the same sub folder with a unique song_id
folder name.
Description of Various Files
Chart File
The chart file is a text file in UTF-8 unsigned encoding format, and the file name must be *.aff
, with asterisks representing difficulty numbers of 0 to 4. The specific format will not be repeated here.
Song File
- The song file is an audio file in OGG format, with a fixed file name of
base.ogg
. Please pay attention to format conversion. - For special audio of Beyond chart, the file name is fixed as
3.ogg
. - The audio file of the video has a fixed file name
video_audio.ogg
.
Video File
- The video file is in MPEG-4 format, with a fixed file name of
video.mp4
, and its audio file is calledvideo_audio.ogg
. - Special background video files are named
video_720.mp4
andvideo_1080.mp4
. Pay attention to the video resolution and avoid audio.
Particular songlist
You can selectively place the database/songs/songlist
file. This file will be used to restrict downloadable files, and there will be no restrictions on song data files that are not mentioned. On the other hand, when this file does not exist, the server will assume that all files in the database/songs/<song_id>
folder that comply with the aforementioned naming conventions need to be provided, which may lead to redundant downloads.
This file has another function. When enabling DOWNLOAD_FORBID_WHEN_NO_ITEM
in the Config Document, it can provide the server with purchase item information and restrict non purchasing users from downloading music packs and singles.
Client Download Mechanism
- The client only needs to download the missing files, and redundant downloads can cause problems.
- The client needs to download all missing files. If the server cannot provide all of them, the client will prompt to continue downloading, making it impossible to play.
- The file that can be downloaded correctly has a minimum file size. Please do not use empty file placeholders (especially chart files). There may also be a maximum file size, which is not yet clear.
- For downloading music packs, you need to provide all the data of all charts in the pack, otherwise the client will also prompt to continue downloading.
- Special files, currently some video files, have client hard coding restrictions and do not have the possibility of general downloading.
Server Cache
- When the server starts or receives the corresponding request for the first time, it will retrieve, calculate, and cache song related data. Any modifications made to the
database/songs
folder will not take effect there after. Unless the server is restarted or cache refresh is performed on the front-end page. - The cache content includes the file names of all files in the
database/songs
folder, the content of thesonglist
file, and the MD5 hash value of the files that need to be downloaded.
Tips
Caching calculations can take a lot of time, and if necessary, you can adjust the timing of caching calculations through the Configure Document. However, in any case, this calculation must be completed, otherwise the file download function will be invalidated.