Files
Sylpheed/docs/re/data/unit-substructures.txt
Sylpheed RE agent 4a5e5d55e6 re: the destructible-subsystem model -- a unit's sub-records
The corpus has named these since unit-struct-runtime.md but never
opened them.  Per unit table: Turret_NNN 835 records (max 63 on one
unit), ShieldGenerator_NNN 46, Thruster_NNN 38, Hatch_NNN 26,
Bridge_NNN 25, plus one each of Shield/Mass/SE/Explosion/
StructureCount and NS_Body on 68 of 114.

Turret/ShieldGenerator/Thruster/Hatch/Bridge are ONE record shape: a
shared 19-field destructible-part base (ID, Name, ParentStructureID,
Frame = a mesh NODE name, NomalModel, CollisionModel, Radius, HP, the
four Is* flags, SpreadDamage, damaged/destroy motion + time, and the
three Effect_*), with per-kind extras.  Turrets add WeaponID,
AngularVelocity, YawLimit, PitchLimit_Elevation/_Depression, CoverArea,
IsAuto, HasBarrel and up to 80 CannonModel_NNN/CannonFrame_NNN.  Shield
generators, thrusters and bridges add PowerRatio.  Hatches add
SquadronID, LoadedCount, MaxAvailableCount, TakeoffInterval -- a
carrier's launch bay.

Control 1: StructureCount.<Kind>Count == #<Kind>_NNN records, over 684
comparisons -- 612 equal, 55 "0 declared, one blank placeholder"
(55/55 blank in Name AND NomalModel AND Frame), 11 differ, 6 kind
absent.  All 11 exceptions are Turret and all are declared < records.

Control 2: 835/835 Turret_NNN.WeaponID resolve to an ID in the
131-record Weapon datasheet, zero unresolved; 26 weapons are never
mounted on a turret.

Refuted in the same pass: "the DeltaSaber's 59 non-NULL hardpoints are
the 59-name WEAPONS arsenal roster".  The counts match exactly and the
sets overlap in 0 values -- two namespaces, one coincidence.

New structure doc, artefact and regenerator; other artefacts unchanged.
2026-08-27 12:39:50 +00:00

403 lines
17 KiB
Plaintext

# Sub-records inside the 114 unit tables of GP_MAIN_GAME_E.pak
# Regenerate: python3 tools/re-capture/unit_substructures.py
# See docs/re/structures/unit-substructure-records.md
## families (records, max per unit, distinct non-indexed field names)
Turret_NNN 835 max/unit 63 fields 38
Maneuver 114 max/unit 1 fields 101
Effect 114 max/unit 1 fields 9
Shield 114 max/unit 1 fields 4
Mass 114 max/unit 1 fields 2
SE 114 max/unit 1 fields 8
Generic 114 max/unit 1 fields 37
Explosion 114 max/unit 1 fields 9
StructureCount 114 max/unit 1 fields 6
NS_Body 68 max/unit 1 fields 12
ShieldGenerator_NNN 46 max/unit 4 fields 21
Thruster_NNN 38 max/unit 4 fields 21
Hatch_NNN 26 max/unit 4 fields 23
Bridge_NNN 25 max/unit 2 fields 20
NS_Body_2 1 max/unit 1 fields 12
Hatch_??? 1 max/unit 1 fields 19
ShieldGenerator_??? 1 max/unit 1 fields 16
NS_* 1 max/unit 1 fields 10
Bridge_??? 1 max/unit 1 fields 16
Thruster_??? 1 max/unit 1 fields 19
Turret_??? 1 max/unit 1 fields 25
Versatile_??? 1 max/unit 1 fields 15
## Turret_NNN -- non-indexed fields (records carrying it, of 835)
AngularVelocity 835
CoverArea 835
Effect_Explosion 835
Effect_Flare 835
Frame 835
HP 835
ID 835
IsAuto 835
IsDestructible 835
IsInvolved 835
IsRadarVisible 835
IsShielded 835
Name 835
NomalModel 835
ParentStructureID 835
PitchLimit_Depression 835
PitchLimit_Elevation 835
Radius 835
SequencingCount 835
SequencingInterval 835
SpreadDamage 835
WeaponID 835
YawLimit 835
CollisionModel 831
CommonCannonFrame 831
CommonCannonModel 831
HasBarrel 831
DamagedMotionName 829
DestroyMotionName 829
DestroyMotionTime 829
Effect_Paralyze 824
DisableCollision_Lost 240
CurveAngle 120
FCSAngle 120
FollowView 40
ShellModel 40
CoverModel 26
DamagedModel 6
## Effect -- non-indexed fields (records carrying it, of 114)
FadeIn 113
FadeOut 113
JumpIn 113
JumpOut 113
Shield 79
Effect_Paralyze 74
ShieldHitEffectName 35
ShieldRecoverEffectName 35
Thruster 1
## Shield -- non-indexed fields (records carrying it, of 114)
ChargeDelay 114
ChargeDelay_Break 114
ChargeSpeed 114
MaxValue 114
## Mass -- non-indexed fields (records carrying it, of 114)
DryMass 114
GrossMass 114
## SE -- non-indexed fields (records carrying it, of 114)
ExplosionSE 114
Thruster 114
JumpIn 113
JumpOut 113
LowerHPSE 113
LowerHPThresholdRatio 113
ShipEnvironmentSE 113
SideThruster 113
## Explosion -- non-indexed fields (records carrying it, of 114)
Delay 114
DelayAdjustment 114
ExplosionFxModel 113
LowerHPFxModel 113
DestroyMotionTime 112
DestroyMotionName 109
ExplosionMotionName 109
ExplosionFxMotion 3
LowerHPFxMotion 3
## StructureCount -- non-indexed fields (records carrying it, of 114)
BridgeCount 114
HatchCount 114
ShieldGeneratorCount 114
ThrusterCount 114
TurretCount 114
VersatileCount 114
## NS_Body -- non-indexed fields (records carrying it, of 68)
AttenuationAlpha 68
AttenuationVolume 68
Color_B 68
Color_G 68
Color_R 68
Deceleration 68
DeleteFadeSpeed 68
Interval 68
Model 68
NodeCount 68
StartingVelocity 68
Volume 68
## ShieldGenerator_NNN -- non-indexed fields (records carrying it, of 46)
CollisionModel 46
DamagedMotionName 46
DestroyMotionName 46
DestroyMotionTime 46
Effect_Explosion 46
Effect_Flare 46
Effect_Paralyze 46
Frame 46
HP 46
ID 46
IsDestructible 46
IsInvolved 46
IsRadarVisible 46
IsShielded 46
Name 46
NomalModel 46
ParentStructureID 46
PowerRatio 46
Radius 46
SpreadDamage 46
DisableCollision_Lost 25
## Thruster_NNN -- non-indexed fields (records carrying it, of 38)
CollisionModel 38
DamagedMotionName 38
DestroyMotionName 38
DestroyMotionTime 38
Effect_Explosion 38
Effect_Flare 38
Effect_Paralyze 38
Frame 38
HP 38
ID 38
IsDestructible 38
IsInvolved 38
IsRadarVisible 38
IsShielded 38
Name 38
NomalModel 38
NozzleCount 38
ParentStructureID 38
PowerRatio 38
Radius 38
SpreadDamage 38
## Hatch_NNN -- non-indexed fields (records carrying it, of 26)
CollisionModel 26
DamagedMotionName 26
DestroyMotionName 26
DestroyMotionTime 26
Effect_Explosion 26
Effect_Flare 26
Effect_Paralyze 26
Frame 26
HP 26
ID 26
IsDestructible 26
IsInvolved 26
IsRadarVisible 26
IsShielded 26
LoadedCount 26
MaxAvailableCount 26
Name 26
NomalModel 26
ParentStructureID 26
Radius 26
SpreadDamage 26
SquadronID 26
TakeoffInterval 26
## Bridge_NNN -- non-indexed fields (records carrying it, of 25)
CollisionModel 25
DamagedMotionName 25
DestroyMotionName 25
DestroyMotionTime 25
Effect_Explosion 25
Effect_Flare 25
Effect_Paralyze 25
Frame 25
HP 25
ID 25
IsDestructible 25
IsInvolved 25
IsRadarVisible 25
IsShielded 25
Name 25
NomalModel 25
ParentStructureID 25
PowerRatio 25
Radius 25
SpreadDamage 25
## NS_Body_2 -- non-indexed fields (records carrying it, of 1)
AttenuationAlpha 1
AttenuationVolume 1
Color_B 1
Color_G 1
Color_R 1
Deceleration 1
DeleteFadeSpeed 1
Interval 1
Model 1
NodeCount 1
StartingVelocity 1
Volume 1
## Hatch_??? -- non-indexed fields (records carrying it, of 1)
DamagedModel 1
Effect_Explosion 1
Effect_Flare 1
Frame 1
HP 1
ID 1
IsDestructible 1
IsInvolved 1
IsRadarVisible 1
IsShielded 1
LoadedCount 1
MaxAvailableCount 1
Name 1
NomalModel 1
ParentStructureID 1
Radius 1
SpreadDamage 1
SquadronID 1
TakeoffInterval 1
## ShieldGenerator_??? -- non-indexed fields (records carrying it, of 1)
DamagedModel 1
Effect_Explosion 1
Effect_Flare 1
Frame 1
HP 1
ID 1
IsDestructible 1
IsInvolved 1
IsRadarVisible 1
IsShielded 1
Name 1
NomalModel 1
ParentStructureID 1
PowerRatio 1
Radius 1
SpreadDamage 1
## NS_* -- non-indexed fields (records carrying it, of 1)
AttenuationAlpha 1
AttenuationVolume 1
Color_B 1
Color_G 1
Color_R 1
Deceleration 1
DeleteFadeSpeed 1
Interval 1
NodeCount 1
StartingVelocity 1
## Bridge_??? -- non-indexed fields (records carrying it, of 1)
DamagedModel 1
Effect_Explosion 1
Effect_Flare 1
Frame 1
HP 1
ID 1
IsDestructible 1
IsInvolved 1
IsRadarVisible 1
IsShielded 1
Name 1
NomalModel 1
ParentStructureID 1
PowerRatio 1
Radius 1
SpreadDamage 1
## Thruster_??? -- non-indexed fields (records carrying it, of 1)
DamagedModel 1
Effect_Explosion 1
Effect_Flare 1
Frame 1
HP 1
ID 1
IsDestructible 1
IsInvolved 1
IsRadarVisible 1
IsShielded 1
Name 1
NomalModel 1
NozzleCount 1
NozzleFrame_??? 1
NozzleSpec_??? 1
ParentStructureID 1
PowerRatio 1
Radius 1
SpreadDamage 1
## Turret_??? -- non-indexed fields (records carrying it, of 1)
AngularVelocity 1
CannonFrame_??? 1
DamagedModel 1
Effect_Explosion 1
Effect_Flare 1
Frame 1
HP 1
ID 1
IsAuto 1
IsDestructible 1
IsInvolved 1
IsRadarVisible 1
IsShielded 1
MuzzleFrame_??? 1
Name 1
NomalModel 1
ParentStructureID 1
PitchLimit_Depression 1
PitchLimit_Elevation 1
Radius 1
SequencingCount 1
SequencingInterval 1
SpreadDamage 1
WeaponID 1
YawLimit 1
## Versatile_??? -- non-indexed fields (records carrying it, of 1)
DamagedModel 1
Effect_Explosion 1
Effect_Flare 1
Frame 1
HP 1
ID 1
IsDestructible 1
IsInvolved 1
IsRadarVisible 1
IsShielded 1
Name 1
NomalModel 1
ParentStructureID 1
Radius 1
SpreadDamage 1
## CONTROL StructureCount.<Kind>Count == #<Kind>_NNN records
## (a 0 count still emits one blank slot)
684 comparisons (114 units x 6 kinds)
equal 612
0 declared, 1 blank placeholder 55
DIFFERS 11
no field 6
exceptions:
kind=Turret declared=4 records=63 x7
UN_f001_TCAF_DeltaSaber_T
UN_f001_TCAF_DeltaSaber_T_EX5
UN_f001_TCAF_DeltaSaber_T_EX5_el
UN_f001_TCAF_DeltaSaber_T_Player
UN_f002_TCAF_DeltaSaber_W
UN_f002_TCAF_DeltaSaber_W_Player
UN_f004_TCAF_DeltaSaber_A_Player
kind=Turret declared=4 records=5 x2
UN_f001_TCAF_DeltaSaber_T_Player_Ttrl1
UN_f001_TCAF_DeltaSaber_T_Player_Ttrl2
kind=Turret declared=1 records=2 x1
UN_e001_ADAN_Elan_EX4
kind=Turret declared=8 records=9 x1
UN_e107_ADAN_AAFrigate_EX4
## CONTROL Turret_NNN.WeaponID resolves into the Weapon datasheet
Weapon.ID values: 131
turrets: 835, distinct WeaponID: 105
resolve: 835 do NOT resolve: 0
weapons never mounted on a turret: 26