Jump to content

Nuclear Turbojet RAPIER engine


Ultimate Steve

Recommended Posts

I think this would fit in with KSP Interstellar Extended or Near Future Propulsion fairly well (the latter more than the former).

There are mods with excellent nuclear engines. There are mods with nuclear turbo and ram jets.

In stock KSP we have the RAPIER (and in real world we sort of have the SABRE) which combines a jet and a rocket... So how hard would it be to do the same with a nuclear engine?

The idea came to me while trying to make a small Earth SSTO in RSS with a bunch of mods. I was using the nuclear turbojet (which can get me up to half of orbital velocity!) and I was trying to slap on a nuclear engine to get the last Delta-V required. It then occurred to me "Why do I need two reactors for this?"

If this is a thing already, I would appreciate being directed to it. If not, I think this would be a great addition to an existing mod or a good standalone. It would basically be the mother of all engines, though. SSTO from basically anywhere.

Link to comment
Share on other sites

1 hour ago, Ultimate Steve said:

I think this would fit in with KSP Interstellar Extended or Near Future Propulsion fairly well (the latter more than the former).

There are mods with excellent nuclear engines. There are mods with nuclear turbo and ram jets.

In stock KSP we have the RAPIER (and in real world we sort of have the SABRE) which combines a jet and a rocket... So how hard would it be to do the same with a nuclear engine?

The idea came to me while trying to make a small Earth SSTO in RSS with a bunch of mods. I was using the nuclear turbojet (which can get me up to half of orbital velocity!) and I was trying to slap on a nuclear engine to get the last Delta-V required. It then occurred to me "Why do I need two reactors for this?"

If this is a thing already, I would appreciate being directed to it. If not, I think this would be a great addition to an existing mod or a good standalone. It would basically be the mother of all engines, though. SSTO from basically anywhere.

You could edit the cfg of the RAPIER or make a patch not knowing what you use but here is from 2 engines from Near Future mods in one 

Spoiler

//RAPIER EDIT

PART
{
    name = RAPIER
    module = Part
    author = C. Jenkins
    mesh = rapier.mu
    MODEL
    {
        model = Squad/Parts/Engine/rapierEngine/rapier
    }
    //MODEL
    //{
    //    model = Squad/Parts/Engine/jetEngines/turbineInside
    //    position = 0.0, 0.741545, 0.0
    //    scale = 0.8, 0.8, 0.8
    //}
    scale = 1.0
    node_stack_top = 0.0,0.741545,0.0 , 0.0, 1.0, 0.0
    node_stack_bottom = 0.0,-0.2048244, 0.0, 0.0, -1.0, 0.0
    CoMOffset = 0.0, 2.6, 0.0
    mass = 2.0
    heatConductivity = 0.06 // half default
    skinInternalConductionMult = 4.0
    emissiveConstant = 0.8 // engine nozzles are good at radiating.
    dragModelType = default
    maximum_drag = 0.2
    minimum_drag = 0.2
    angularDrag = 2
    crashTolerance = 20
    maxTemp = 2000 // = 3600
    TechRequired = aerospaceTech
    entryCost = 35000
    cost = 6000
    category = Engine
    subcategory = 0
    title = #autoLOC_500469 //#autoLOC_500469 = CR-7 R.A.P.I.E.R. Engine
    manufacturer = #autoLOC_501640 //#autoLOC_501640 = C7 Aerospace Division and Rockomax Conglomerate
    description = #autoLOC_500470 //#autoLOC_500470 = The R.A.P.I.E.R. (Reactive Alternate-Propellant Intelligent Engine for Rockets) is a joint venture between C7 Aerospace and the Rockomax Conglomerate. Designed to fill a gap in the design requirements for sustainable single stage to orbit aircraft, this engine combines the best of rocket and air-breathing thrust technology.
    attachRules = 1,0,1,1,0
    bulkheadProfiles = size1
    tags = #autoLOC_500471 //#autoLOC_500471 = aircraft ascent closed cycle dual fuel hybrid jet liquid main mode plane propuls rapier rocket ssto
    EFFECTS
    {
        running_closed
        {
            AUDIO
            {
                channel = Ship
                clip = sound_rocket_spurts
                volume = 0.0 0.0
                volume = 1.0 1.0
                pitch = 0.0 0.2
                pitch = 1.0 1.0
                loop = true
            }
            PREFAB_PARTICLE
            {
                prefabName = fx_smokeTrail_aeroSpike
                transformName = smokePoint
                emission = 0.0 0.0
                emission = 0.05 0.0
                emission = 0.075 0.25
                emission = 1.0 1.25
                speed = 0.0 0.25
                speed = 1.0 1.0
                localOffset = 0, 0, 1
            }
            MODEL_MULTI_PARTICLE
            {
                modelName = Squad/FX/shockExhaust_blue_small
                transformName = thrustTransform
                emission = 0.0 0.0
                emission = 0.05 0.0
                emission = 0.075 0.25
                emission = 1.0 1.25
                speed = 0.0 0.5
                speed = 1.0 1.2
            }
        }
        power_open
        {
            AUDIO
            {
                channel = Ship
                clip = sound_rocket_spurts
                volume = 0.0 0.0
                volume = 0.05 0.0
                volume = 1.0 1.0
                pitch = 0.0 0.2
                pitch = 1.0 1.0
                loop = true
            }
            MODEL_MULTI_PARTICLE
            {
                modelName = Squad/FX/shockExhaust_red_small
                transformName = thrustTransform
                emission = 0.0 0.0
                emission = 0.05 0.0
                emission = 0.075 0.25
                emission = 1.0 1.25
                speed = 0.0 0.5
                speed = 1.0 1.2
            }
        }
        running_open
        {
            AUDIO
            {
                channel = Ship
                clip = sound_jet_deep
                volume = 0.0 0.0
                volume = 0.05 0.6
                volume = 1.0 1.0
                pitch = 0.0 0.7
                pitch = 1.0 1.4
                loop = true
            }
            PREFAB_PARTICLE
            {
                prefabName = fx_smokeTrail_aeroSpike
                transformName = smokePoint
                emission = 0.0 0.0
                emission = 0.05 0.0
                emission = 0.075 0.25
                emission = 1.0 1.25
                speed = 0.0 0.25
                speed = 1.0 1.0
                localOffset = 0, 0, 1
            }
        }
        engage
        {
            AUDIO
            {
                channel = Ship
                clip = sound_vent_soft
                volume = 1.0
                pitch = 2.0
                loop = false
            }
        }
        flameout
        {
            PREFAB_PARTICLE
            {
                prefabName = fx_exhaustSparks_flameout_2
                transformName = smokePoint
                oneShot = true
            }
            AUDIO
            {
                channel = Ship
                clip = sound_explosion_low
                volume = 1.0
                pitch = 2.0
                loop = false
            }
        }
    }
    MODULE
    {
        name = MultiModeEngine
        primaryEngineID = AirBreathing
        primaryEngineModeDisplayName = #autoLOC_6001897 //#autoLOC_6001897 = AirBreathing
        secondaryEngineID = ClosedCycle
        secondaryEngineModeDisplayName = #autoLOC_6001898 //#autoLOC_6001898 = ClosedCycle
    }
    MODULE
    {
        name = ModuleEnginesFX
        engineID = AirBreathing
        powerEffectName = power_open
        //runningEffectName = running_open
        thrustVectorTransformName = thrustTransform
        exhaustDamage = True
        ignitionThreshold = 0.33
        minThrust = 0
        maxThrust = 105
        heatProduction = 60
        useEngineResponseTime = True
        engineAccelerationSpeed = 0.2
        engineDecelerationSpeed = 0.35
        useVelocityCurve = False        
        spoolEffectName = running_open
        engineSpoolIdle = 0.05
        engineSpoolTime = 2.0
        EngineType = Turbine
        exhaustDamageMultiplier = 50
        exhaustDamageDistanceOffset = 0.19
        clampPropReceived = True
        //PROPELLANT
        //{
        //    name = IntakeAir
        //    ignoreForIsp = True
        //    ratio = 6
        //}
        //PROPELLANT
        //{
        //    name = LiquidFuel
        //    resourceFlowMode = STAGE_STACK_FLOW_BALANCE
        //    ratio = 1
        //    DrawGauge = True
        //}
        //atmosphereCurve
        //{
        //    key = 0 3200 0 0
        //}
        // Jet params
        //atmChangeFlow = True
        //useVelCurve = True
        //useAtmCurve = True
        //flowMultCap = 3.0
        // no mach (heat) limit
        //velCurve
        //{
        //    key = 0 1 0 0.08333334
        //    key = 0.2 0.98 0.42074 0.42074
        //    key = 0.7 1.8 2.290406 2.290406
        //    key = 1.4 4.00 3.887193 3.887193
        //    key = 3.75 8.5 0 0
        //    key = 4.5 7.3 -2.831749 -2.831749
        //    key = 5.5 3 -5.260566 -5.260566
        //    key = 6 0 -0.02420209 0
        //}
        //atmCurve
        //{
        //    // higher thrust at altitude than even TRJ
        //    key = 0 0 0 0
        //    key = 0.018 0.09 7.914787 7.914787
        //    key = 0.08 0.3 1.051923 1.051923
        //    key = 0.35 0.5 0.3927226 0.3927226
        //    key = 1 1 1.055097 0
        //}
                PROPELLANT
        {
            name = IntakeAtm
            ratio = 1
            DrawGauge = True
        }
        atmosphereCurve
        {
            key = 0 3000 0 0
        }
        // Jet params
        atmChangeFlow = True
        useVelCurve = True
        useAtmCurve = True
        machLimit = 5
        machHeatMult = 5.0
        velCurve
        {
            key = 0 0.45 0 0
            key = 0.2 0.86 0 0
            key = 0.72 1.0 2.433527 2.433527
            key = 1.36 3.2 1.986082 1.986082
            key = 2.15 4.9 1.452677 1.452677
            key = 3 4.8 0.0005786046 0.0005786046
            key = 5.5 3.5 -4.279616 -4.279616
            key = 5.5 0 -0.02420209 0
        }
        atmCurve
        {
            // Similar to turbojet curve from 0 ~ 1 atm
            key = 0 0 0 0
            key = 0.045 0.166 4.304647 4.304647
            key = 0.16 0.5 0.5779132 0.5779132
            key = 0.5 0.6 0.4809403 0.4809403
            key = 1 1 1.013946 0.318541
            key = 20 3 0.01778008 0.1578947
        }
    }
    }
    MODULE
    {
        name = ModuleEnginesFX
        engineID = ClosedCycle
        runningEffectName = running_closed
        thrustVectorTransformName = thrustTransform
        exhaustDamage = True
        ignitionThreshold = 0.1
        minThrust = 0
        maxThrust = 180
        heatProduction = 133
        fxOffset = 0, 0, 0.25
        EngineType = LiquidFuel
        exhaustDamageDistanceOffset = 0.19
        //PROPELLANT
        //{
        //    name = LiquidFuel
        //    resourceFlowMode = STAGE_STACK_FLOW_BALANCE
        //    ratio = 0.9
        //    DrawGauge = True
        //}
        //PROPELLANT
        //{
        //    name = Oxidizer
        //    resourceFlowMode = STAGE_STACK_FLOW_BALANCE
        //    ratio = 1.1
        //}
        //atmosphereCurve
        //{
        //    key = 0 305
        //    key = 1 275
        //    key = 9 0.001
        //}
                PROPELLANT
        {
            name = LqdHydrogen
            ratio = 1.5
            DrawGauge = True
        }
        PROPELLANT
        {
            name = Oxidizer
            ratio = 0.1
        }

        atmosphereCurve
        {
            key = 0 500
            key = 1 290
            key = 4 95
        }

    }
    }
    MODULE
    {
        name = FXModuleAnimateThrottle
        animationName = HeatAnimationEmissiveRapier
        responseSpeed = 0.001
        dependOnEngineState = True
        dependOnThrottle = True
        preferMultiMode = True // bind to the parent multimode module, not the actual engines.
    }
    MODULE
    {
        name = ModuleGimbal
        gimbalTransformName = obj_gimbal
        gimbalRange = 3
    }
    MODULE
    {
        name = ModuleTestSubject
        useStaging = True
        useEvent = True
        situationMask = 127
        CONSTRAINT
        {
            type = REPEATABILITY
            value = ALWAYS
            prestige = Trivial
        }
        CONSTRAINT
        {
            type = REPEATABILITY
            value = BODYANDSITUATION
            prestige = Significant
        }
        CONSTRAINT
        {
            type = REPEATABILITY
            value = ONCEPERPART
            prestige = Exceptional
        }
        CONSTRAINT
        {
            type = ALTITUDEENV
            test = GT
            value = 4000
            prestige = Trivial
        }
        CONSTRAINT
        {
            type = ALTITUDEENV
            test = LT
            value = 8000
            prestige = Trivial
        }
        CONSTRAINT
        {
            type = ALTITUDEENV
            test = GT
            value = 2000
            prestige = Significant
        }
        CONSTRAINT
        {
            type = ALTITUDEENV
            test = LT
            value = 4000
            prestige = Significant
        }
        CONSTRAINT
        {
            type = ALTITUDEENV
            test = GT
            value = 1000
            prestige = Exceptional
        }
        CONSTRAINT
        {
            type = ALTITUDEENV
            test = LT
            value = 2000
            prestige = Exceptional
        }
        CONSTRAINT
        {
            type = ALTITUDE
            test = GT
            value = 0 // this just registers altitude as something to care about
            situationMask = 8
        }
        CONSTRAINT
        {
            type = ALTITUDE
            test = LT
            value = 300000
            situationMask = 16
            body = _NotSun
        }
        CONSTRAINT
        {
            type = ALTITUDE
            test = LT
            value = 600000
            situationMask = 32
            body = _NotSun
        }
        CONSTRAINT
        {
            type = SPEED
            test = GT
            value = 0
            situationMask = 8
            prestige = Trivial
        }
        CONSTRAINT
        {
            type = SPEED
            test = LT
            value = 600
            situationMask = 8
            prestige = Trivial
        }
        CONSTRAINT
        {
            type = SPEED
            test = GT
            value = 300
            situationMask = 8
            prestige = Significant
        }
        CONSTRAINT
        {
            type = SPEED
            test = LT
            value = 1200
            situationMask = 8
            prestige = Significant
        }
        CONSTRAINT
        {
            type = SPEED
            test = GT
            value = 600
            situationMask = 8
            prestige = Exceptional
        }
        CONSTRAINT
        {
            type = SPEED
            test = LT
            value = 2500
            situationMask = 8
            prestige = Exceptional
        }
        CONSTRAINT
        {
            type = SPEEDENV
            test = LT
            value = 200
            prestige = Trivial
        }
        CONSTRAINT
        {
            type = SPEEDENV
            test = GT
            value = 100
            prestige = Trivial
        }
        CONSTRAINT
        {
            type = SPEEDENV
            test = LT
            value = 100
            prestige = Significant
        }
        CONSTRAINT
        {
            type = SPEEDENV
            test = GT
            value = 50
            prestige = Significant
        }
        CONSTRAINT
        {
            type = SPEEDENV
            test = LT
            value = 50
            prestige = Exceptional
        }
        CONSTRAINT
        {
            type = SPEEDENV
            test = GT
            value = 20
            prestige = Exceptional
        }
    }
    MODULE
    {
        name = ModuleSurfaceFX
        thrustProviderModuleIndex = 1
        fxMax = 0.5
        maxDistance = 20
        falloff = 2
        thrustTransformName = thrustTransform
    }
    MODULE
    {
        name = ModuleSurfaceFX
        thrustProviderModuleIndex = 2
        fxMax = 0.6
        maxDistance = 30
        falloff = 1.6
        thrustTransformName = thrustTransform
    }
}
 

 

 

Link to comment
Share on other sites

9 minutes ago, Nertea said:

Pretty sure I have one. 

Oh hi. Yes you do, but it (well, they) have no config to, as quoted below:

2 hours ago, Ultimate Steve said:

get me up to half of orbital velocity!

-- in air-breathing mode in real scale!

 

Link to comment
Share on other sites

Oh. Well, I just realized that the nuclear ramjet I'm using actually does have a RAPIER-like function, it was just hidden, strangely. Hmm... I could use that for something SSTO-like but I'm almost there using an inertial fusion engine...

Thank you all for the responses!

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...