Ultimate Steve Posted November 17, 2024 Share Posted November 17, 2024 During the time the forum was dead, I watched a wonderful YouTube video about the rarest moves in Chess notation. That got me wondering what the rarest parts in KSP were, and I got the idea of making a Python script that would download every craft from KerbalX and add up all of the parts. Unfortunately, interfacing with another site and trying to not spam KerbalX scared me a little, so I scaled it back to just something that would look through craft files and tally up the stock parts. The hard parts involved figuring out which parts were stock, filtering out any craft included in the game, and the game using like 3 separate naming schemes and using underscores in some places and periods in other places. Eventually I found (hopefully) most of the bugs, and set it loose on my large collection of KSP save files spanning probably nearly 10 years of gameplay. The current implementation does not count DLC parts and it does not deal with repeats caused by copying over saves when copying over installations, so the methodology isn't perfect, but here are the results: Spoiler 996968 strutConnector - 73231 occurrences sepMotor1 - 42238 occurrences structuralPanel2 - 20636 occurrences launchClamp1 - 19668 occurrences strutCube - 17262 occurrences solarPanels5 - 16356 occurrences MassiveBooster - 16241 occurrences SSME - 15091 occurrences Size3LargeTank - 14702 occurrences fuelLine - 12605 occurrences R8winglet - 11979 occurrences vernierEngine - 11629 occurrences wingConnector - 11496 occurrences mk3CrewCabin - 10466 occurrences structuralIBeam1 - 10342 occurrences asasmodule1-2 - 10053 occurrences ionEngine - 9149 occurrences radialDecoupler - 9009 occurrences parachuteRadial - 8582 occurrences MK1Fuselage - 8302 occurrences nuclearEngine - 8138 occurrences trussPiece3x - 7830 occurrences linearRcs - 7745 occurrences miniFuelTank - 7647 occurrences structuralPanel1 - 7638 occurrences stackPoint1 - 7608 occurrences fuelTank - 7078 occurrences dockingPort3 - 7035 occurrences structuralIBeam3 - 6717 occurrences mk3FuselageLF.100 - 6614 occurrences ksp.r.largeBatteryPack - 6586 occurrences SmallGearBay - 6209 occurrences largeSolarPanel - 6068 occurrences solidBooster.sm.v2 - 5825 occurrences radialDecoupler1-2 - 5755 occurrences dockingPort2 - 5626 occurrences fuelTank.long - 5583 occurrences noseCone - 5466 occurrences wingConnector2 - 5267 occurrences winglet3 - 4792 occurrences Mk1FuselageStructural - 4697 occurrences advSasModule - 4628 occurrences trussPiece1x - 4455 occurrences batteryBankLarge - 4439 occurrences seatExternalCmd - 4428 occurrences radialDecoupler2 - 4326 occurrences RCSBlock.v2 - 4263 occurrences Size3EngineCluster - 4257 occurrences rtg - 4216 occurrences batteryPack - 4167 occurrences pointyNoseConeA - 4131 occurrences sasModule - 3924 occurrences landingLeg1-2 - 3879 occurrences FuelCellArray - 3865 occurrences StandardCtrlSrf - 3815 occurrences fuelTankSmall - 3728 occurrences batteryBank - 3718 occurrences crewCabin - 3674 occurrences structuralWing - 3639 occurrences smallCtrlSrf - 3466 occurrences structuralIBeam2 - 3407 occurrences fuelTankSmallFlat - 3305 occurrences longAntenna - 3288 occurrences solarPanels2 - 3113 occurrences radialDrogue - 3109 occurrences airbrake1 - 3090 occurrences standardNoseCone - 2974 occurrences omsEngine - 2961 occurrences adapterMk3-Size2 - 2949 occurrences sensorThermometer - 2886 occurrences LgRadialSolarPanel - 2879 occurrences landingLeg1 - 2812 occurrences dockingPortLarge - 2750 occurrences wingShuttleRudder - 2707 occurrences structuralWing4 - 2659 occurrences GooExperiment - 2659 occurrences LargeTank - 2642 occurrences batteryBankMini - 2621 occurrences mk1pod.v2 - 2616 occurrences wingConnector3 - 2525 occurrences xenonTankLarge - 2518 occurrences sensorGravimeter - 2492 occurrences miniFuselage - 2483 occurrences deltaWing - 2433 occurrences IntakeRadialLong - 2402 occurrences shockConeIntake - 2334 occurrences sensorBarometer - 2153 occurrences Size3MediumTank - 2104 occurrences adapterSize2-Size1 - 2037 occurrences miniLandingLeg - 2000 occurrences RAPIER - 1928 occurrences radialRCSTank - 1914 occurrences mk2CrewCabin - 1896 occurrences telescopicLadderBay - 1881 occurrences Decoupler.1 - 1875 occurrences pointyNoseConeB - 1856 occurrences strutOcto - 1852 occurrences solarPanels4 - 1840 occurrences airlinerCtrlSrf - 1828 occurrences ladder1 - 1826 occurrences elevon3 - 1806 occurrences winglet - 1793 occurrences rcsTankRadialLong - 1786 occurrences probeStackSmall - 1779 occurrences adapterSize3-Mk3 - 1776 occurrences airlinerMainWing - 1754 occurrences wheelMed - 1741 occurrences radPanelSm - 1726 occurrences sensorAccelerometer - 1713 occurrences adapterEngines - 1701 occurrences Decoupler.0 - 1591 occurrences xenonTankRadial - 1555 occurrences wingConnector5 - 1546 occurrences wingShuttleElevon1 - 1523 occurrences turboFanEngine - 1501 occurrences GearSmall - 1470 occurrences elevon5 - 1421 occurrences wingShuttleElevon2 - 1396 occurrences radialEngineBody - 1386 occurrences HeatShield1 - 1366 occurrences science.module - 1364 occurrences wingConnector4 - 1360 occurrences elevon2 - 1357 occurrences sweptWing2 - 1301 occurrences parachuteSingle - 1299 occurrences RCSFuelTank - 1260 occurrences MK1CrewCabin - 1254 occurrences probeStackLarge - 1226 occurrences Rockomax64.BW - 1186 occurrences miniIntake - 1163 occurrences delta.small - 1158 occurrences radPanelLg - 1146 occurrences fairingSize1 - 1146 occurrences mediumDishAntenna - 1137 occurrences tailfin - 1127 occurrences Size3AdvancedEngine - 1122 occurrences airScoop - 1110 occurrences mk3CargoBayL - 1090 occurrences radialLiquidEngine1-2 - 1089 occurrences xenonTank - 1087 occurrences mk3FuselageMONO - 1055 occurrences toroidalAerospike - 1039 occurrences CanardController - 1039 occurrences mk2SpacePlaneAdapter - 1035 occurrences smallRadialEngine.v2 - 1035 occurrences Rockomax32.BW - 1019 occurrences FuelCell - 1017 occurrences airlinerTailFin - 1017 occurrences rcsTankMini - 1003 occurrences Size3SmallTank - 977 occurrences CircularIntake - 956 occurrences fairingSize2 - 951 occurrences GearLarge - 908 occurrences miniJetEngine - 894 occurrences GearMedium - 877 occurrences RadialDrill - 866 occurrences fairingSize3 - 859 occurrences Mark2Cockpit - 835 occurrences trussAdapter - 831 occurrences telescopicLadder - 829 occurrences Clydesdale - 824 occurrences dockingPort1 - 821 occurrences commDish - 804 occurrences Mark1Cockpit - 799 occurrences probeCoreOcto2.v2 - 798 occurrences landerCabinSmall - 781 occurrences GearFree - 781 occurrences flagPartSize0 - 779 occurrences mk2.1m.Bicoupler - 747 occurrences cupola - 743 occurrences wingStrake - 734 occurrences adapterSmallMiniTall - 721 occurrences liquidEngine3.v2 - 697 occurrences adapterMk3-Size2Slant - 693 occurrences RadialOreTank - 679 occurrences mk3FuselageLFO.100 - 677 occurrences ramAirIntake - 669 occurrences AdvancedCanard - 663 occurrences largeAdapter - 661 occurrences parachuteLarge - 661 occurrences airplaneTail - 660 occurrences HeatShield2 - 652 occurrences mk3CargoBayS - 648 occurrences mk3CargoBayM - 645 occurrences mk2Fuselage - 638 occurrences JetEngine - 634 occurrences Decoupler.2 - 629 occurrences SurfaceScanner - 624 occurrences externalTankCapsule - 611 occurrences sweptWing - 603 occurrences flagPartSize3 - 600 occurrences LaunchEscapeSystem - 578 occurrences rocketNoseCone.v3 - 573 occurrences SurfAntenna - 559 occurrences GrapplingDevice - 554 occurrences externalTankRound - 522 occurrences mk2Cockpit.Standard - 520 occurrences turboJet - 510 occurrences HeatShield0 - 506 occurrences sensorAtmosphere - 491 occurrences roverWheel2 - 484 occurrences ISRU - 484 occurrences noseConeAdapter - 456 occurrences Large.Crewed.Lab - 456 occurrences mk3Cockpit.Shuttle - 456 occurrences foldingRadMed - 454 occurrences roverWheel1 - 452 occurrences foldingRadLarge - 439 occurrences structuralWing2 - 424 occurrences SmallTank - 416 occurrences radialEngineMini.v2 - 414 occurrences InflatableHeatShield - 414 occurrences wingShuttleStrake - 414 occurrences GearFixed - 410 occurrences foldingRadSmall - 392 occurrences RCSTank1-2 - 385 occurrences liquidEngineMini.v2 - 385 occurrences largeAdapter2 - 380 occurrences Rockomax16.BW - 377 occurrences ScienceBox - 375 occurrences stationHub - 365 occurrences RelayAntenna100 - 363 occurrences mk2.1m.AdapterLong - 358 occurrences mk2CargoBayL - 348 occurrences HeatShield3 - 346 occurrences RelayAntenna50 - 344 occurrences RelayAntenna5 - 341 occurrences mk3FuselageLFO.25 - 326 occurrences probeCoreOcto.v2 - 321 occurrences solidBooster.v2 - 316 occurrences adapterSize2-Size1Slant - 316 occurrences mk2CargoBayS - 314 occurrences airplaneTailB - 306 occurrences structuralPylon - 306 occurrences turboFanSize2 - 302 occurrences liquidEngine2-2.v2 - 296 occurrences engineLargeSkipper.v2 - 291 occurrences ServiceBay.125.v2 - 288 occurrences SurveyScanner - 288 occurrences structuralWing3 - 287 occurrences liquidEngine2.v2 - 284 occurrences externalTankToroid - 275 occurrences mk2FuselageLongLFO - 259 occurrences OrbitalScanner - 255 occurrences mk3CargoRamp - 249 occurrences mk2Cockpit.Inline - 244 occurrences sweptWing1 - 239 occurrences mk3FuselageLF.50 - 238 occurrences flagPartFlat - 235 occurrences microEngine.v2 - 228 occurrences mk2FuselageShortLiquid - 227 occurrences rocketNoseConeSize3 - 225 occurrences liquidEngineMainsail.v2 - 223 occurrences probeCoreCube - 204 occurrences HighGainAntenna - 204 occurrences Separator.0 - 203 occurrences solarPanels1 - 200 occurrences roverWheel3 - 200 occurrences Mite - 200 occurrences mk3FuselageLF.25 - 199 occurrences Shrimp - 196 occurrences Decoupler.3 - 194 occurrences RCSLinearSmall - 193 occurrences Rockomax8BW - 181 occurrences adapterSmallMiniShort - 170 occurrences Separator.1 - 164 occurrences mk1-3pod - 155 occurrences spotLight3 - 154 occurrences adapterLargeSmallQuad - 153 occurrences adapterMk3-Mk2 - 147 occurrences adapterLargeSmallTri - 143 occurrences radPanelEdge - 142 occurrences mk2DroneCore - 141 occurrences nacelleBody - 138 occurrences parachuteDrogue - 133 occurrences MiniDrill - 133 occurrences smallHardpoint - 131 occurrences Size3To2Adapter.v2 - 130 occurrences domeLight1 - 125 occurrences structuralMiniNode - 124 occurrences Size2LFB.v2 - 122 occurrences mk3FuselageLFO.50 - 120 occurrences mk2DockingPort - 116 occurrences ServiceBay.250.v2 - 108 occurrences mk2FuselageShortLFO - 95 occurrences smallCargoContainer - 88 occurrences Separator.3 - 87 occurrences probeCoreHex.v2 - 85 occurrences ConformalStorageUnit - 83 occurrences avionicsNoseCone - 79 occurrences HECS2.ProbeCore - 78 occurrences MiniISRU - 78 occurrences adapterSize2-Mk2 - 77 occurrences probeCoreSphere.v2 - 73 occurrences adapterLargeSmallBi - 68 occurrences RCSblock.01.small - 68 occurrences mk2LanderCabin.v2 - 66 occurrences MK1IntakeFuselage - 66 occurrences flagPartSize2 - 65 occurrences stripLight1 - 65 occurrences Thoroughbred - 62 occurrences solarPanels3 - 60 occurrences Magnetometer - 53 occurrences solarPanelOX10C - 51 occurrences ReleaseValve - 43 occurrences solarPanelOX10L - 38 occurrences stackQuadCoupler - 36 occurrences flagPartSize1 - 35 occurrences roverBody.v2 - 35 occurrences smallClaw - 35 occurrences spotLight1.v2 - 30 occurrences Separator.2 - 28 occurrences mk2FuselageShortMono - 28 occurrences dockingPortLateral - 27 occurrences stackBiCoupler.v2 - 22 occurrences InfraredTelescope - 19 occurrences HighGainAntenna5.v2 - 15 occurrences cargoContainer - 13 occurrences liquidEngine.v2 - 13 occurrences fireworksLauncherBig - 9 occurrences spotLight2.v2 - 9 occurrences CargoStorageUnit - 5 occurrences stackTriCoupler.v2 - 3 occurrences fireworksLauncherSmall - 1 occurrences navLight1 - 1 occurrences solarPanelSP10L - 0 occurrences solarPanelSP10C - 0 occurrences MtmStage - 0 occurrences MpoProbe - 0 occurrences 329 parts, 4 never used Barring methodology errors and saves on other computers, the craft I have built in KSP total 996,968 parts, or very nearly a million! As for my most used parts: Unsurprisingly, the strut is the most common part with 73k uses, especially as many of these craft predate autostrut, and there are still some things autostrut can't do or can't do very well. The sepratron is in second with 42k uses. For an average player this seems very high, but this is likely because I do a lot of things with stock part combat. Each missile typically uses 2-8 sepratrons, each craft carries a LOT of missiles, and I built a lot of these craft, some of which got copied over through multiple installs and some of which had several revisions saved under different files. Add this on top of normal sepratron usage and sprinkle in a few meme craft with a few hundred sepratrons each, and you get a lot of them. The 2x2 structural panel occurred 20k times. This number is likely inflated by 2 atypical use cases. Firstly, it is armor for the stock combat ships. Secondly, I (used to) do a lot of mission reports involving building sets and taking screenshots of them, the 2x2 panel was a good part for that, in addition to the wing parts. Launch clamps have 19k uses. Not surprising, though also inflated by sets. Cubic octagonal struts have 17k uses. Not surprising, those things are handy. Small static solar panel 16k uses, also not surprising. Interestingly my most commonly used SRB besides the sepratron is the Thumper at 16k uses. It is a convenient form factor I guess. IDK what I expected but this tracks. The Vector engine I'm not surprised by with 15k uses, it is probably my favorite engine and I build a lot of very big ships that make use of clustered Vectors. To go along with it, the large 3.75m fuel tank has 14k uses. The fuel line is at 12k, unsurprising, especially as many of these craft predate the new fuel flow control system, and that can often be more clunky to use than the fuel lines so I still use them often. I'll stop listing every single one here, but some interesting ones: Most used aero piece: AV-R8 Winglet at almost 12k, just barely eclipsing one of the rectangular wing pieces Ion and Nuclear engine have 9k and 8k uses respectively Somehow I've used over 1000 fuel cells. Likely only for memes or as aesthetic parts, or from my experiments into ion planes back in like 1.1 or 1.2. Now for the least used parts: Four parts I've never used at all! Those are the ESA BepiColumbo probe parts and the 1x5 solar panel parts. I'm very surprised that I haven't used the probe parts as greebles at all, but I'm not surprised I never used them on a mission. And I'm very surprised I haven't used the 1x5 solar panels at all. I didn't think I'd use them often, but never once? The small fireworks launcher and one of the navigation lights have each been used once. Fireworks makes sense, if I'm gonna do them I'm gonna use the big ones. Nav light, generally when I use the lights it is so that I can see, and I gravitate overwhelmingly towards the original 2 lights in that case. The stack tri coupler I've only used 3 times. I'm very confused at this. That's a part that has been in the game since 0.7.3. It is the most classic "feels like KSP" part from that era. And I've only used it 3 times??? Granted it isn't a very convenient part to use for modern designs, as it was built for a time when you couldn't attach fuel tanks radially and long before 2.5m parts. But only 3 times???????? One of the EVA storage containers has only been used 5 times, unsurprising, I only ever use those to store tire repair kits and 90% of the time I just repair wheels with the debug menu anyway. Another new light at 9 uses, and the large fireworks at 9 uses - I haven't played around with the fireworks nearly enough. The reliant engine has only been used 13 times according to this list. This isn't that surprising as I just straight up use a swivel if I need an engine in that class. But it might be misleading as the engine did get redone in like 1.11 or something, I forget. The internal name may have changed, so this may not be counting it properly. There's other interesting stuff too, like how the Infrared Telescope has been used 19 times, but I can tell you that I've only actually used it for its intended purpose once if I remember right, the rest are because it looks cool. Or how I just don't use stack separators or n-couplers/n-stack adapters very often. Or how like somehow I've used the utterly useless avionics nose cone 79 times, more than several dozen other parts including the magnetometer. But you're welcome to go through the list and make some conclusions yourself! Just be aware that several parts have had new versions made, their internal IDs may have changed so this may not be a perfect list. I might also clean up the code and release it so you can run this on your own saves, or maybe you can send me your saves folder and I can run the analysis for you. Or maybe I'll get around to making the full version that can scrape every craft on KerbalX. Quote Link to comment Share on other sites More sharing options...
Gargamel Posted November 18, 2024 Share Posted November 18, 2024 21 hours ago, Ultimate Steve said: I might also clean up the code and release it so you can run this on your own saves, Please do! You could make a full release thread over in Tools and Applications. Quote Link to comment Share on other sites More sharing options...
Lisias Posted November 18, 2024 Share Posted November 18, 2024 You may want to check this: https://bitbucket.org/net-lisias-ksp/ksp-tools-public/ in special: https://bitbucket.org/net-lisias-ksp/ksp-tools-public/src/master/src/ksp/metadata/ Every single part, with every single PartModule, from every Steam available KSP ever released. With DLCs. On a Python data structure (hopefully) easily usable. As a bônus, a lint for CFG files - but this is offtopic here . You may be interested on the CFG parser, based on the taniwha's but (IMHO) improved - granted, I didn't implemented any converters for craft files... Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.