RPE Chart Root Structure
Warning: The following is written for RPE 1.4.1 as of 2024-07-25. Older versions and version history are TBD.
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.
judgeLineGroup
Not needed for simulators.
judgeLineGroupis astring[]; each string is a judge line group. Actual behavior TBD.
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.