Waves Data
Enemy composition and formation data. Each wave defines which enemy ships appear, their formation, and stat scaling within a stage.
Table Structure
TableDataManager.wave_dict
Struct
GeneralWaveTable (value type)
Key Type
int → List<GeneralWaveTable> — maps stage key to a list of waves
Records
15,115 wave entries (the largest entity table by record count)
The wave table is the bridge between stages and enemy ships. The dict maps an int key to a
List<GeneralWaveTable>, so each key references multiple waves. A wave defines
a group of enemy units including their ship IDs, formation string, and stat scaling via
quotient/exponent pairs for both ATK and HP.
At 15,115 records, this is the largest entity table. Many stages share common wave patterns, with variations only in enemy stat scaling (which comes from the stage/boss tables, not the wave table).
Key Fields
Wave composition| Field | Type | Notes |
|---|---|---|
ID | int (0x0) | Primary key; unique wave ID |
eType | WaveType (0x4) | Wave type enum |
iSector | int (0x8) | Sector number — part of the stage coordinate triple |
iWorld | int (0xC) | World number — part of the stage coordinate triple |
iStage | int (0x10) | Stage number — part of the stage coordinate triple |
iWave | int (0x14) | Ordering within the stage (wave 1, wave 2, etc.) |
sFormation | string (0x18) | Formation pattern for enemy positioning |
sShipIds | string (0x20) | Comma-separated enemy ship IDs in this wave |
fQuotient | float (0x28) | ATK power quotient — value = fQuotient × 10^iExponent |
iExponent | int (0x2C) | ATK power exponent |
fHpQuotient | float (0x30) | HP quotient — value = fHpQuotient × 10^iHpExponent |
iHpExponent | int (0x34) | HP exponent |
iTimeAttack | int (0x38) | Time attack value for this wave |
ShipIDs | int[] (0x40) | Parsed array of ship IDs (from sShipIds) |
Stage-Wave Relationship
A single stage typically has 3-5 waves. Each wave defines a formation of enemies. The wave's ship IDs reference the ship table for base stats. HP and ATK power are encoded using the standard quotient/exponent pairs (value = quotient × 10^exponent).
- How many distinct
sFormationvalues exist, and what spatial patterns do they define? - What are the possible
WaveTypeenum values foreType? - What does
iTimeAttackcontrol — a time limit, bonus threshold, or something else? - Are there elite or rare wave variants that spawn conditionally?