RPE Chart Root Structure
Warning: This page was written based on RPE 1.4.1 as of 2024-07-25. Information such as added versions for older content has not been added yet.
Root structure
BPMList
BPMList is a JsonArray of JsonObjects. Each object has:
| Field | Type | Description | Version |
|---|---|---|---|
| bpm | float | BPM value | - |
| startTime | beat | BPM start time | - |
META
META is a JsonObject with:
| Field | Type | Description | Version |
|---|---|---|---|
| RPEVersion | int | RPE version, 100–160 | - |
| background | string | Background image path relative to chart root | - |
| charter | string | Charter name | - |
| composer | string | Composer | - |
| id | string | Chart ID (used by RPE to identify chart) | - |
| illustration | string | Illustrator | 141 |
| level | string | Chart level | - |
| name | string | Chart name | - |
| offset | int | Music offset in milliseconds | - |
| song | string | Music file path relative to chart root | - |
- When
offsetis negative, music starts-offsetms before chart start; when positive,offsetms after. - When auto-generated by RPE,
idis a long; in practice it can be any string.
DANGER
RPE 1.5.0–1.6.0 (excluding 1.6.0, including Alpha): META RPEVersion stayed 150.
DANGER
RPE 1.6.1: META RPEVersion stayed 160.
chartTime
Not needed for simulators.
chartTimeis adoublein seconds (editing duration), added in version 141.- If RPE loses focus, timing continues; when focus returns, time is rolled back to when focus was lost. The previous behavior where the timer stopped changing after 30 seconds of inactivity has been removed.
judgeLineGroup
Not needed for simulators.
judgeLineGroupis astring[]; each string represents a judge line group. Its exact behavior still needs to be documented.
judgeLineList
judgeLineListis aJsonArrayof JudgeLine.
multiLineString
Not needed for simulators.
multiLineStringis astringfor RPE multi-line editing: space-separated numbers for judge lines.1:20selects lines 1 through 20.
multiScale
Not needed for simulators.
multiScaleis afloatfor scaling the multi-line edit view in RPE.
xybind
Simulators may ignore.
xybindis abool: whether X/Y are bound. Iftrue, everyXEventhas a matchingYEventof the same length.