Ok great,
I"m off to a great start !
So I searched all files containing "root" and *.vp on my hard drive
These two contain the same ships.tbl file
D:\knossos.net\Freespace\root.vp
D:\knossos.net\Freespace\data1\root.vp
These two contain the same ships.tbl file
D:\knossos.net\library\FS2\root_fs2.vp
D:\knossos.net\Freespace 2\Root_fs2.vp
These do not contain a ship.tbl but a mv_root-ship.tbm
Which conviently demonstrate the use of .tbm syntax and +nocreate syntax !
D:\knossos.net\library\FS2\MVPS-3.8.2\mv_root.vp
D:\knossos.net\library\FS2\MVPS-4.6.8\mv_root.vp
D:\knossos.net\library\FS2\MVPS-4.4.2\mv_root.vp
D:\knossos.net\library\FS2\MVPS-4.7.3\MV_Root.vp
I notice that the MVPS mv_root-shp.tbm files are not all the same
Name: MVPS-3.8.2-mv_root-shp.tbm
Size: 14487 bytes (14 KiB)
SHA256: bab8f1e935398b3a76c84238069816a22f3da13de173349f530c4eb913b04a0e
Name: MVPS-4.4.2-mv_root-shp.tbm
Size: 17323 bytes (16 KiB)
SHA256: ba748a101d6c86394509aab99f77f403e8bcaaa2a990c54ded2939f29fe7b6bc
Name: MVPS-4.6.8-mv_root-shp.tbm
Size: 17323 bytes (16 KiB)
SHA256: ba748a101d6c86394509aab99f77f403e8bcaaa2a990c54ded2939f29fe7b6bc
Name: MVPS-4.7.3-mv_root-shp.tbm
Size: 16980 bytes (16 KiB)
SHA256: 9407ade8567cba9adca14600e31f78d9880835b96f44282180d5565cc40e4680
Ok, the file
D:\knossos.net\Freespace\root.vp/ships.tbl is not a text file
Hopefully I don't need it ?
https://i.imgur.com/CDqFwrk.pngOk, now looking at fs2's ship.tbl
The ships are after the line
#Ship Classes
Here is the first ship definition, the GTF Ulysses
$Name: GTF Ulysses
$Short name: TFight
$Species: Terran
+Type: XSTR("Space Superiority", 2939)
+Maneuverability: XSTR("Excellent", 2940)
+Armor: XSTR("Light", 2941)
+Manufacturer: XSTR("Triton / Mekhu", 2942)
+Description: XSTR( " ", 2943)
$end_multi_text
+Tech Description:
XSTR("Affectionately nicknamed 'The Bat' by its pilots, the GTF Ulysses is a well-designed craft that has had a far longer useful life than its engineers ever imagined. Developed jointly by Terran and Vasudan contractors, the Ulysses was first deployed near the end of the Great War. Its excellent maneuverability and high top speed give it an agility that pilots love, but at a cost of thin armor and a small secondary weapon loadout. The Ulysses is a better choice for offensive missions than defensive ones.", 2944)
$end_multi_text
+Length: 16 m
+Gun Mounts: 4
+Missile Banks: 1
$POF file: fighter01.pof
$Detail distance: (0, 80, 300, 900)
; $ND: 42 42 244
$Show damage: YES
$Density: 1
$Damp: 0.1
$Rotdamp: 0.35
$Max Velocity: 0.0, 0.0, 70.0 ;; in x/y/z -- z only specified forward. use special tokens for backward movement
$Rotation time: 3.0, 2.6, 5.0
$Rear Velocity: 0.0
$Forward accel: 2.0
$Forward decel: 1.5
$Slide accel: 0.0
$Slide decel: 0.0
$Expl inner rad: 25.0
$Expl outer rad: 55.0
$Expl damage: 15.0
$Expl blast: 1000.0
$Expl Propagates: NO ;; If set to Yes, then when the ship dies, the explosion propagates through it.
$Shockwave Speed: 0.0 ;; speed shockwave expands at, 0 means no shockwave
$Allowed PBanks: ( "Subach HL-7" "Akheton SDG" "Morning Star" "Prometheus S" "Prometheus R" "Lamprey" "Circe" "Maxim" "Targeting Laser")
$Allowed Dogfight PBanks: ( "Subach HL-D" "Prometheus D" )
$Default PBanks: ( "Subach HL-7" "Prometheus R" )
$Allowed SBanks: ( "Rockeye" "Tempest" "Hornet" "Tornado" "Hornet#Weak" "Harpoon" "Harpoon#Weak" "EMP Adv." "TAG-A" )
$Allowed Dogfight SBanks: ( "Tempest D" "Hornet D" "Harpoon D" )
$Default SBanks: ( "Harpoon" )
$SBank Capacity: ( 40 )
$Shields: 380
$Shield Color: 100 100 255
$Power Output: 2.0
$Max Oclk Speed: 94.0
$Max Weapon Eng: 80.0
$Hitpoints: 180
$Flags: ( "player_ship" "default_player_ship" "fighter" "in tech database")
$AI Class: Captain
$Afterburner: YES
+Aburn Max Vel: 0.0, 0.0, 150.0
+Aburn For accel: 0.7
+Aburn Fuel: 300.0
+Aburn Burn Rate: 50.0
+Aburn Rec Rate: 25.0
$Countermeasures: 25
$Scan time: 2000
$EngineSnd: 128 ;; Engine sound of ship
$Closeup_pos: 0.0, 0.0, -22
$Closeup_zoom: 0.5
$Shield_icon: shield-f01
$Ship_icon: iconfighter01
$Ship_anim: ssfighter01
$Ship_overhead: loadfighter01
$Score: 8
$Trail:
+Offset: -7.75 -2.8 0.75
+Start Width: 0.25
+End Width: 0.05
+Start Alpha: 1.0
+End Alpha: 0.0
+Max Life: 1.0
+Spew Time: 60
+Bitmap: Contrail01
$Trail:
+Offset: 7.75 -2.8 0.75
+Start Width: 0.25
+End Width: 0.05
+Start Alpha: 1.0
+End Alpha: 0.0
+Max Life: 1.0
+Spew Time: 60
+Bitmap: Contrail01
$Subsystem: communication, 10, 0
$Subsystem: navigation, 10, 0
$Subsystem: weapons, 20, 0
$Subsystem: sensors, 10, 0
$Subsystem: engines, 35, 0
I compared the various mv_root-shp.tbm files in this video
https://youtu.be/D3hIhqmu0LsHere is the GTF Hercules entry in mv_root-shp.tbm for MVPS 4.7.3
$Name: GTF Hercules
+nocreate
+Gun Mounts: 2 (4, 2)
+Missile Banks: 2 (60, 60)
$Detail distance: ( 0, 76, 203, 574 )
So next I created a command line to output only the #section, $names, $slide and $Max Velocity
findstr /i /r /c:"$Slide" /c:"$Name" /c:"^#" fs2-ships.tbl
And the output is
#Default Player Ship
$Name: GTF Ulysses
#End
#Engine Wash Info
$Name: Default
$Name: Default100
$Name: Default150
$Name: Default200
$Name: Default300
$Name: Default500
$Name: Default700
$Name: Default800
$Name: Default900
$Name: Default1000
$Name: Default1100
$Name: Default1500
#End
#Ship Classes
$Name: GTF Ulysses
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTF Hercules
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTF Hercules Mark II
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTF Ares
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTF Erinyes
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTF Loki
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTF Pegasus
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTF Perseus
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTF Myrmidon
$Slide accel: 0.0
$Slide decel: 0.0
$Name: SF Mara (terrans)
$Slide accel: 2.0
$Slide decel: 2.0
$Name: GTB Artemis
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTB Artemis D.H.
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTB Medusa
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTB Ursa
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTB Zeus
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTB Boanerges
$Slide accel: 0.0
$Slide decel: 0.0
$Name: @GTDR Amazon
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTDR Amazon Advanced
$Slide accel: 0.0
$Slide decel: 0.0
$Name: @GTS Hygeia
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTFR Triton
$Slide accel: 0.0
$Slide decel: 0.0
$Name: TC-TRI
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTFR Poseidon
$Slide accel: 0.0
$Slide decel: 0.0
$Name: @TC 2
$Slide accel: 0.0
$Slide decel: 0.0
$Name: TSC 2
$Slide accel: 0.0
$Slide decel: 0.0
$Name: @TAC 1
$Slide accel: 0.0
$Slide decel: 0.0
$Name: TTC 1
$Slide accel: 0.0
$Slide decel: 0.0
$Name: @GTC Fenris
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTM Hippocrates
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTC Leviathan
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTSC Faustus
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTG Zephyrus
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTA Charybdis
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTD Orion
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTD Hecate
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTD Orion#2 (Bastion)
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTD Hades
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTI Arcadia
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTVA Colossus
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTCv Deimos
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTC Aeolus
$Slide accel: 0.0
$Slide decel: 0.0
$Name: NTF Iceni
$Slide accel: 0.0
$Slide decel: 0.0
$Name: NTF Boadicea
$Slide accel: 0.0
$Slide decel: 0.0
$Name: @GTT Elysium
$Slide accel: 0.0
$Slide decel: 0.0
$Name: @GTT Argo
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTNB Pharos
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTI Ganymede
$Slide accel: 0.0
$Slide decel: 0.0
$Name: Knossos
$Slide accel: 0.0
$Slide decel: 0.0
$Name: Asteroid
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTSG Watchdog
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTSG Cerberus
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTSG Alastor
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTEP Hermes
$Slide accel: 0.0
$Slide decel: 0.0
$Name: TC-Meson Bomb
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVF Seth
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVF Horus
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVF Thoth
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVF Serapis
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVF Tauret
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVB Sekhmet
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVB Osiris
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVB Bakha
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVF Ptah
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVS Nephthys
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVT Isis
$Slide accel: 0.0
$Slide decel: 0.0
$Name: @PVFR Ma'at
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVFr Bes
$Slide accel: 0.0
$Slide decel: 0.0
$Name: VAC 5
$Slide accel: 0.0
$Slide decel: 0.0
$Name: @VAC 4
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVFr Satis
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVG Anuket
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVC Aten
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVC Mentu
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVCv Sobek
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVD Typhon
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVSG Ankh
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVSG Edjo
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVEP Ra
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVA Setekh
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GVD Hatshepsut
$Slide accel: 0.0
$Slide decel: 0.0
$Name: SF Dragon
$Slide accel: 2.0
$Slide decel: 2.0
$Name: SF Basilisk
$Slide accel: 2.0
$Slide decel: 2.0
$Name: SF Manticore
$Slide accel: 2.0
$Slide decel: 2.0
$Name: SF Aeshma
$Slide accel: 2.0
$Slide decel: 2.0
$Name: SF Mara
$Slide accel: 2.0
$Slide decel: 2.0
$Name: SF Astaroth
$Slide accel: 2.0
$Slide decel: 2.0
$Name: SB Nephilim
$Slide accel: 2.0
$Slide decel: 2.0
$Name: SB Taurvi
$Slide accel: 2.0
$Slide decel: 2.0
$Name: SB Nahema
$Slide accel: 2.0
$Slide decel: 2.0
$Name: SB Seraphim
$Slide accel: 2.0
$Slide decel: 2.0
$Name: ST Azrael
$Slide accel: 0.0
$Slide decel: 0.0
$Name: SFr Dis
$Slide accel: 0.0
$Slide decel: 0.0
$Name: SAC 3
$Slide accel: 0.0
$Slide decel: 0.0
$Name: SFr Mephisto
$Slide accel: 0.0
$Slide decel: 0.0
$Name: SC 5
$Slide accel: 0.0
$Slide decel: 0.0
$Name: SFr Asmodeus
$Slide accel: 0.0
$Slide decel: 0.0
$Name: SAC 2
$Slide accel: 0.0
$Slide decel: 0.0
$Name: SC Lilith
$Slide accel: 0.0
$Slide decel: 0.0
$Name: SC Rakshasa
$Slide accel: 0.0
$Slide decel: 0.0
$Name: SC Cain
$Slide accel: 0.0
$Slide decel: 0.0
$Name: SD Demon
$Slide accel: 0.0
$Slide decel: 0.0
$Name: SD Ravana
$Slide accel: 0.0
$Slide decel: 0.0
$Name: SD Lucifer
$Slide accel: 0.0
$Slide decel: 0.0
$Name: SSG Trident
$Slide accel: 0.0
$Slide decel: 0.0
$Name: SSG Belial
$Slide accel: 0.0
$Slide decel: 0.0
$Name: SSG Rahu
$Slide accel: 0.0
$Slide decel: 0.0
$Name: SCv Moloch
$Slide accel: 0.0
$Slide decel: 0.0
$Name: SJ Sathanas
$Slide accel: 0.0
$Slide decel: 0.0
$Name: SJD Sathanas
$Slide accel: 0.0
$Slide decel: 0.0
$Name: SpaceHunk
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTSG Mjolnir
$Slide accel: 0.0
$Slide decel: 0.0
$Name: GTSG Mjolnir#home
$Slide accel: 0.0
$Slide decel: 0.0
$Name: Shivan Comm Node
$Slide accel: 0.0
$Slide decel: 0.0
$Name: @Volition Bravos
$Slide accel: 0.0
$Slide decel: 0.0
#End