Waves Data

Enemy composition and formation data. Each wave defines which enemy ships appear, their formation, and stat scaling within a stage.

15,115 records GeneralWaveTable v1.1.80

Table Structure

Source 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.

Note

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
FieldTypeNotes
IDint (0x0)Primary key; unique wave ID
eTypeWaveType (0x4)Wave type enum
iSectorint (0x8)Sector number — part of the stage coordinate triple
iWorldint (0xC)World number — part of the stage coordinate triple
iStageint (0x10)Stage number — part of the stage coordinate triple
iWaveint (0x14)Ordering within the stage (wave 1, wave 2, etc.)
sFormationstring (0x18)Formation pattern for enemy positioning
sShipIdsstring (0x20)Comma-separated enemy ship IDs in this wave
fQuotientfloat (0x28)ATK power quotient — value = fQuotient × 10^iExponent
iExponentint (0x2C)ATK power exponent
fHpQuotientfloat (0x30)HP quotient — value = fHpQuotient × 10^iHpExponent
iHpExponentint (0x34)HP exponent
iTimeAttackint (0x38)Time attack value for this wave
ShipIDsint[] (0x40)Parsed array of ship IDs (from sShipIds)

Stage-Wave Relationship

GeneralStageTable iWaveID GeneralWaveTable sShipIds GeneralShipTable

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).

Open Questions
  • How many distinct sFormation values exist, and what spatial patterns do they define?
  • What are the possible WaveType enum values for eType?
  • What does iTimeAttack control — a time limit, bonus threshold, or something else?
  • Are there elite or rare wave variants that spawn conditionally?