Skip to content

Importing levels

fumiko edited this page May 20, 2023 · 9 revisions

Importing levels


Making your levels compatible with AstroDX

Some levels aren't prepared to be imported into AstroDX out of the box. In order to have AstroDX install them properly, we should begin by inspecting the level!

Go into your newly downloaded level folder, and check for the files:

[1] level folder
│    [2] bg.jpg
│    [3] track.ogg
╵    [4] maidata.txt
  1. The level folder you just downloaded. If you got a compressed file, unzip it, and try to find a folder that somewhat looks like this.
  2. The background image of the level. (*.jpg or *.png files are accepted)
  3. The music of the level. (*.mp3 or *.ogg files are accepted, preferably *.ogg since it has lower latency)
  4. The chart contents of the level.

Both the music file and the chart file are required for a level to be recognized. AstroDX automatically looks for files with these names during import, so no worries about the file names! However, if the level you downloaded contains differently named files, see if you can identify what they are and rename them.


Now that you've got your levels to import, it's time to put them into the game.

To be able to import the files, you need access to Internal Storage/Android/data. We recommend using a file explorer that allows you to do so, like MT管理器.

After you've gained access, navigate to Internal Storage/Android/data, and we'll start from there.

The file system has undergone major changes in 2.x. you can skip to the 2.x section directly.

1.x

Find ./com.Reflektone.MaipadDX/, you should be able to see the following:

com.Reflektone.MaipadDX
│   [0] chart-meta.fufu
│   [1] settings.json
├───[2] il2cpp
└───[3] local
    └───[4] default
  1. Scores and offsets attached to installed levels. (⚠AstroDX stores these data based on the folder addresses of charts, you'll lose the data if the chart is renamed, moved, or deleted)
  2. Stores preferences and settings. These settings can also be edited in-game through the settings screen (recommended).
  3. IL2CPP enables Unity to pre-compile code for better performance. Read more...
  4. Stores levels. All levels and categories should be managed in this folder.
  5. The default category created at launch. You can also create categories under the same parent folder local.

AstroDX 1.x groups levels by folders. However, it doesn't support top-level level imports, meaning levels can only be imported under categories.

To import a level, simply move your level folder inside a category (e.g. default).

⚠ Make sure there aren't any residues inside local or any of the categories! AstroDX won't be able to finish importing with stray files.


2.0.0.dev

1.x to 2.0.0.dev migration guide

Since 1.x, we've changed the package name from MaipadDX to AstroDX to clarify that AstroDX is not part of the Maipad series, and we've also made some changes to the way levels are stored. Because of this, you'll have to manually migrate the levels.

Here are the steps to migrate your levels:

WARNING: Scores and level-specific data are not transferrable.

  1. Ensure both AstroDX and MaipadDX are installed and launched at least once.
  2. Navigate to ./com.Reflektone.MaipadDX/local/<any category folder>/.
  3. Select all level folders, and compress them into a .zip file.
  4. On the compressed file, change the .zip extension to .axco.
  5. Tap on the .axco file. In the Open with... pop-up, select AstroDX. AstroDX will import your levels automatically.
  6. Import is complete. Delete ./com.Reflektone.MaipadDX/local/<any category folder>/ to get rid of leftover data.
  7. Repeat steps 2 - 6 until all categories are migrated.

File structure

Navigate to ./com.Reflektone.AstroDX/, and observe the file structure.

Here's a brief dissection:

com.Reflektone.AstroDX
│   [0] level-index.nya
│   [1] settings.json
├───[2] il2cpp
└───[3] levels
    └───[4] tutorial
            │    [5] bg.jpg
            │    [6] maidata.txt
            ╵    [7] track.ogg
  1. This file enables AstroDX to store local scores, offsets, as well as collection data. These data directly correspond to the folder name. If you rename the folders, your achievement will be erased.
  2. This file stores configuration files related to the game. It's directly editable in-game through settings, but you can also edit it manually.
  3. IL2CPP enables Unity to pre-compile code for specific platforms. AOT compilation does increase build time, but it also improves compatibility with the target platform and can improve performance. Read more...
  4. The default category created at launch. You can also create categories under the same parent folder levels.
  5. The built-in level imported at launch. You can import levels of the same structure under any category manually.
  6. The background illustration for the level
  7. Required - The core file containing chart data. The game won't mark this as a valid import without this file.
  8. Required - The music file associated with the level. The game won't mark this as a valid import without this file.

Automatic import methods

Warning This feature is no longer supported: Automatic import support has been dropped as of 2.0.0.pre.beta, but it will be added back later with better functionalities.

Starting from 2.0.dev-10, there are two automatic import methods. Level import, and collection import. To use them, simply tap on these files and select AstroDX in the Open with... pop-up.

Essentially, these are just .zip files with a modified extension name so that AstroDX recognizes these files.

Level import

This allows you to import one level at a time. The creation process is as follows:

  1. Navigate inside any level folder.
  2. Select all files, and compress them into a .zip file.
  3. On the compressed file, change the .zip extension to .axlv.

Collection import

This allows you to import multiple levels at a time, as well as create an internal collection relationship. The creation process is as follows:

  1. Select all level folders you wish to add and compress them into a .zip file.
  2. On the compressed file, change the .zip extension to .axco.

2.0.0.pre.beta (latest)

In 2.0.0.beta, we re-implemented folder-based categories. On top of that, you can also opt out of categorizing levels altogether, and just put them under levels.

1.x/2.0.0.dev to 2.0.0.pre.beta migration guide

Since 2.0.0.pre.beta uses a new signature, you may need to uninstall the game first.

  • backup your levels, along with the chart-meta.fufu file to a location outside of com.Reflektone.MaipadDX
  • uninstall the game
  • install 2.0, open the game at least once
  • close the game
  • copy your chart-meta.fufu inside com.Reflektone.AstroDX/files/ (make a backup just in case conversion fails)
  • start the game
  • scores and level data will be transferred if possible

If the above migration fails, you may need to resolve some issues manually:

  • migrate your levels to com.Reflektone.AstroDX/files/levels/
  • if chart-meta.fufu.backup exists, rename it back to chart-meta.fufu to re-activate the score transfer

File structure

Find ./com.Reflektone.AstroDX/, you should be able to see the following:

com.Reflektone.AstroDX
│   [0] cache
│   [1] settings.json
├───[2] il2cpp
└───[3] levels
    └───[4] default
  1. Scores and offsets attached to installed levels. (⚠AstroDX stores these data based on the folder addresses of charts, you'll lose the data if the chart is renamed, moved, or deleted)
  2. Stores preferences and settings.
  3. IL2CPP enables Unity to pre-compile code for better performance. Read more...
  4. Stores levels. All levels and categories should be managed in this folder.
  5. The default category created at launch. You can also create categories under the same parent folder levels.

That's all!

Hopefully, you've learned a bit about how importing works in AstroDX, and have fun playing!