// Hide all the existing RF SRB parts. @PART[proceduralTankSRBRF*]:NEEDS[RealFuels&!ModularFuelTanks] { @category = -1 } PART:NEEDS[RealFuels&!ModularFuelTanks] { // --- general parameters --- name = proceduralSRBRealFuels module = Part author = AncientGammoner, NK, Tiberion, NathanKell, Swamp Ig // --- asset parameters --- MODEL { model = ProceduralParts/Parts/cylinderTank scale = 1,1,1 } // The model is positioned so it looks right in the icon for the VAB // If you alter the default params, then change the position MODEL { model = ProceduralParts/Parts/SRBBell position = 0.0, -1.25, 0.0 scale = 1,1,1 } // If you want to make another SRB bell, you'll need to have a good look at // the structure of these ones and keep it the same. You can add an extra // SRB_BELL node to the ProceduralSRB module below. MODEL { model = ProceduralParts/Parts/HighRatio position = 0.0, -1.25, 0.0 scale = 1,1,1 } MODEL { model = ProceduralParts/Parts/LowRatio position = 0.0, -1.25, 0.0 scale = 1,1,1 } scale = 1 rescaleFactor = 1 // --- node definitions --- node_stack_top = 0.0, 0.5, 0.0, 0.0, 1.0, 0.0, 1 node_stack_bottom = 0.0, -0.5, 0.0, 0.0, -1.0, 0.0, 1 node_attach = 0.5, 0.0, 0.0, 1.0, 0.0, 0.0, 1 fx_exhaustFlame_yellow = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, running fx_exhaustSparks_yellow = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, running // fx_exhaustLight_yellow = 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, running fx_smokeTrail_medium = -5.0, 0.0, 0.0, 0.0, 1.0, 0.0, running sound_vent_medium = engage sound_rocket_hard = running sound_vent_soft = disengage sound_explosion_low = flameout // --- editor parameters --- cost = 0 // 4000 category = Propulsion TechRequired = start entryCost = 15000 subcategory = 0 title = Procedural Real Fuels SRB manufacturer = Kerbchem Industries description = Made from viscoelastic nanopolymers (which were discovered by accident... growing in the back of the office mini-fridge) this solid rocket can be stretched to accommodate fuel loads of a range of sizes and shapes. Can be optimized for sea-level or high altitude uses. Hardens to a rigid structure before launch! // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision attachRules = 1,1,1,1,0 // --- standard part parameters --- mass = 3.737 dragModelType = default maximum_drag = 0.3 minimum_drag = 0.3 angularDrag = 2 crashTolerance = 7 breakingForce = 200 breakingTorque = 200 maxTemp = 3600 bulkheadProfiles = size1, srf stagingIcon = SOLID_BOOSTER MODULE { name = ProceduralPart textureSet = SegmentedSRB costPerkL = 40 diameterMin = 0.125 // Lengths for the stock tanks are approximate as one needs to account for the bell. TECHLIMIT { // RT-5 - 1.25 x 1.2 m = 1.45 kL name = start diameterMin = 1.0 diameterMax = 1.75 lengthMin = 1.0 lengthMax = 2.0 volumeMin = 1.0 volumeMax = 2.0 } TECHLIMIT { // RT-10 - 1.25 x 2.4 m = 2.95 kL name = start diameterMin = 1.0 diameterMax = 1.75 lengthMin = 1.0 lengthMax = 3.0 volumeMin = 2.0 volumeMax = 4.0 } TECHLIMIT { // Allow cone shaped tanks to have reasonable initial shapes name = basicRocketry volumeMin = 1.5 } TECHLIMIT { // BACC - 1.25 x 7.1 m = 8.71 kL // Sepatron - 0.15 x 0.5 = 0.009 kl name = generalRocketry lengthMin = 0.125 lengthMax = 10.0 volumeMin = 0.001 volumeMax = 10.0 } // Seems fair that heavy rocketry should enable 2.5 dia TECHLIMIT { name = heavyRocketry diameterMax = 3.0 volumeMax = 15.0 } TECHLIMIT { name = heavierRocketry volumeMax = 40.0 } TECHLIMIT { name = veryHeavyRocketry lengthMax = 15.0 volumeMax = 50.0 } TECHLIMIT { // Make everything unlimited for metaMaterials name = metaMaterials diameterMin = 0.01 diameterMax = Infinity lengthMin = 0.01 lengthMax = Infinity volumeMin = 0.01 volumeMax = Infinity } } // Don't change the default length without also altering the default position above. MODULE { name = ProceduralShapeCylinder displayName = Cylinder techRequired = start length = 2.5 diameter = 1.25 } MODULE { name = ProceduralShapeCone displayName = Cone techRequired = generalConstruction // We need the bottom mode to be limit min so that it doesn't // get to small to allow the bell to be attached nicely coneBottomMode = LimitMin length = 2.5 topDiameter = 0.625 bottomDiameter = 1.25 } MODULE { name = ProceduralShapePill displayName = Fillet Cylinder techRequired = advConstruction length = 2.5 diameter = 1.25 fillet = 0.25 } MODULE { name = ProceduralShapeBezierCone displayName = Smooth Cone techRequired = advConstruction // We need the bottom mode to be limit min so that it doesn't // get to small to allow the bell to be attached nicely coneBottomMode = LimitMin selectedShape = Round #1 length = 2.5 topDiameter = 0.625 bottomDiameter = 1.25 } MODULE { name = ModuleFuelTanks volume = 1060 dedicated = true type = Solid } MODULE { name = ModuleEngineConfigs techLevel = 0 origTechLevel = 0 engineType = S gimbalTransform = SRBBell configuration = Normal modded = false CONFIG { name = Normal heatProduction = 157 PROPELLANT { name = SolidFuel ratio = 1.0 DrawGauge = True } IspSL = 1 IspV = 1 } } MODULE { name = ModuleEngines thrustVectorTransformName = thrustTransform throttleLocked = True exhaustDamage = True ignitionThreshold = 0.1 minThrust = 0 maxThrust = 52 heatProduction = 157 useEngineResponseTime = True engineAccelerationSpeed = 10.0 allowShutdown = False fxOffset = 0, 0, 0 PROPELLANT { name = SolidFuel ratio = 1.0 DrawGauge = True } atmosphereCurve { key = 0 250 key = 1 230 } } MODULE { name = ProceduralSRB costMultiplier = 0.5 srbBellName = SRBBell thrustVectorTransformName = thrustTransform bottomAttachNodeName = bottom selectedBellName = Surface // Burn time for the SRB on part place (default). burnTimeME = 30 // The thrust that an SRB with a 1m base could put out. // Make this higher to allow for more powerful SRBs at the same diameter. // If you don't want tiny bells, use a smaller number. If you want a higher thrust limit, use a bigger number. // Note that this goes up on the square of diameter, so a 2m diameter part will give you 2^2 * thrust1m = 2000kN max thrust. // Does not affect ships in flight (as in their bells will not rescale) thrust1m = 500 // To replicate Advanced Booster SRB // See thread here: http://forum.kerbalspaceprogram.com/threads/70676-WIP-Procedural-Parts-The-next-phase-of-Stretchy-SRBs?p=1116650&viewfull=1#post1116650 // Changing this will not affect ships in flight (but will affect anything loaded into the VAB) //thrust1m = 1500 // Heat Produced = heatPerThrust * sqrt(thrust) / (1+total mass). // All stock parts are around 50 // I realize this model is not very physical, but the way heat is handled in the game is pretty daft // Note anything with heat production much above 700 tends to explode. // Does not affect ships in flight (as in their heat production will not rescale) heatPerThrust = 40 // If heat is still causing you issues, use the old equation from stretchy SRBs which is easier //useOldHeatEquation = true SRB_BELL { name = Surface realFuelsEngineType = S // Degrees of gimble gimbalRange = 0.25 // Config intrinsic to the model, don't change unless you know what you're doing modelName = LowRatioBell // Diameter of the bell's choke (in the unscaled model) bellChokeDiameter = 0.55 // Ratio between the bell choke and the bottom of the SRB // Should never be > 1.0. Ideal depends on the model somewhat, but big numbers look funny. chokeEndRatio = 0.55 } SRB_BELL { name = Vacuum realFuelsEngineType = S+ gimbalRange = 0.1 modelName = HighRatioBell bellChokeDiameter = 0.32 chokeEndRatio = 0.32 } } MODULE { name = ModuleGimbal gimbalTransformName = SRBBell gimbalRange = 0.25 } } @PART[*]:HAS[@MODULE[ProceduralSRB],@MODULE[ModuleGimbal]] { @MODULE[ModuleGimbal] { @gimbalTransformName = thrustTransform } }