Difference between revisions of "Parts/Engine/rapierEngine/rapierEngine.cfg"

From Kerbal Space Program Wiki
Jump to: navigation, search
(Whoops, saved wrong page. Undo revision 31300 by Artorp (talk))
m (Update config)
 
(6 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{Part config|R.A.P.I.E.R. Engine|2=PART
+
{{Part config|CR-7 R.A.P.I.E.R. Engine|2=PART
 
{
 
{
// this is a sample config file, for determining a good file format for defining part parameters
+
name = RAPIER
// comment line - ignored by cfg parser
+
module = Part
// empty lines, or lines without a '=' sign are also ignored
+
author = C. Jenkins
// all other lines are split at the '=' sign, and the left operand is used to know what parameter we are setting
+
mesh = rapier.mu
// diferent parameters require data in different formats (see docs), and each module has it's own parameters (again, see docs)
+
MODEL
// each assignment must be in a single line. Lines without assignments will be ignored. (You CAN turn on word wrap, though)
+
{
// each keyword here relates to an existing variable in the assigned module. If the keyword isn't found, it is ignored.
+
model = Squad/Parts/Engine/rapierEngine/rapier
// conversely, if a keyword is left unassigned (as in not in the file), it will be initialized with it's default value
+
}
// This is done automatically, so any public variable defined in the loaded module can be accessed this way (provided it's value can be parsed)
+
//MODEL
 
+
//{
 
+
// model = Squad/Parts/Engine/jetEngines/turbineInside
// --- general parameters ---
+
// position = 0.0, 0.741545, 0.0
name = RAPIER
+
// scale = 0.8, 0.8, 0.8
module = Part
+
//}
author = C. Jenkins
+
scale = 1.0
 
+
node_stack_top = 0.0,0.741545,0.0 , 0.0, 1.0, 0.0
// --- asset parameters ---
+
node_stack_bottom = 0.0,-0.2048244, 0.0, 0.0, -1.0, 0.0
mesh = rapier.mu
+
CoMOffset = 0.0, 2.6, 0.0
scale = 1.0
+
mass = 2.0
 
+
heatConductivity = 0.06 // half default
// --- node definitions ---
+
skinInternalConductionMult = 4.0
// definition format is Position X, Position Y, Position Z, Up X, Up Y, Up Z
+
emissiveConstant = 0.8 // engine nozzles are good at radiating.
 
+
dragModelType = default
node_stack_top = 0.0,0.741545,0.0 , 0.0, 1.0, 0.0
+
maximum_drag = 0.2
node_stack_bottom = 0.0,-0.2048244, 0.0, 0.0, 1.0, 0.0
+
minimum_drag = 0.2
 
+
angularDrag = 2
 
+
crashTolerance = 20
// --- editor parameters ---
+
maxTemp = 2000 // = 3600
mass = 1.75
+
TechRequired = aerospaceTech
dragModelType = default  
+
entryCost = 35000
maximum_drag = 0.2  
+
cost = 6000
minimum_drag = 0.2  
+
category = Engine
angularDrag = 2  
+
subcategory = 0
crashTolerance = 20  
+
title = #autoLOC_500469 //#autoLOC_500469 = CR-7 R.A.P.I.E.R. Engine
maxTemp = 3600
+
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
TechRequired = hypersonicFlight
+
bulkheadProfiles = size1
entryCost = 65000
+
tags = #autoLOC_500471 //#autoLOC_500471 = aircraft ascent closed cycle dual fuel hybrid jet liquid main mode plane propuls rapier rocket ssto
cost = 5900
+
EFFECTS
category = Propulsion
+
{
subcategory = 0
+
running_closed
title = R.A.P.I.E.R. Engine
+
{
manufacturer = C7 Aerospace Division and Rockmax Conglomerate
+
AUDIO
description = 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.  
+
{
 
+
channel = Ship
// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision
+
clip = sound_rocket_spurts
attachRules = 1,0,1,1,0
+
volume = 0.0 0.0
 
+
volume = 1.0 1.0
 
+
pitch = 0.0 0.2
EFFECTS
+
pitch = 1.0 1.0
{
+
loop = true
  running_closed
+
}
  {
+
PREFAB_PARTICLE
    AUDIO
+
{
    {
+
prefabName = fx_smokeTrail_aeroSpike
      channel = Ship
+
transformName = smokePoint
      clip = sound_rocket_spurts
+
emission = 0.0 0.0
      volume = 0.0 0.0
+
emission = 0.05 0.0
      volume = 1.0 1.0
+
emission = 0.075 0.25
      pitch = 0.0 0.2
+
emission = 1.0 1.25
      pitch = 1.0 1.0
+
speed = 0.0 0.25
      loop = true
+
speed = 1.0 1.0
    }
+
localOffset = 0, 0, 1
    PREFAB_PARTICLE
+
}
    {
+
MODEL_MULTI_PARTICLE
      prefabName = fx_smokeTrail_aeroSpike
+
{
      transformName = smokePoint
+
modelName = Squad/FX/shockExhaust_blue_small
      emission = 0.0 0.0
+
transformName = thrustTransform
      emission = 0.05 0.0
+
emission = 0.0 0.0
      emission = 0.075 0.25
+
emission = 0.05 0.0
      emission = 1.0 1.25
+
emission = 0.075 0.25
      speed = 0.0 0.25
+
emission = 1.0 1.25
      speed = 1.0 1.0
+
speed = 0.0 0.5
      localOffset = 0, 0, 1
+
speed = 1.0 1.2
    }
+
}
    MODEL_MULTI_PARTICLE
+
}
    {
+
power_open
      modelName = Squad/FX/shockExhaust_blue_small
+
{
      transformName = thrustTransform
+
AUDIO
      emission = 0.0 0.0
+
{
      emission = 0.05 0.0
+
channel = Ship
      emission = 0.075 0.25
+
clip = sound_rocket_spurts
      emission = 1.0 1.25
+
volume = 0.0 0.0
      speed = 0.0 0.5
+
volume = 0.05 0.0
      speed = 1.0 1.2
+
volume = 1.0 1.0
    }
+
pitch = 0.0 0.2
  }
+
pitch = 1.0 1.0
  power_open
+
loop = true
  {
+
}
    AUDIO
+
MODEL_MULTI_PARTICLE
    {
+
{
      channel = Ship
+
modelName = Squad/FX/shockExhaust_red_small
      clip = sound_rocket_spurts
+
transformName = thrustTransform
      volume = 0.0 0.0
+
emission = 0.0 0.0
      volume = 1.0 1.0
+
emission = 0.05 0.0
      pitch = 0.0 0.2
+
emission = 0.075 0.25
      pitch = 1.0 1.0
+
emission = 1.0 1.25
      loop = true
+
speed = 0.0 0.5
    }
+
speed = 1.0 1.2
    MODEL_MULTI_PARTICLE
+
}
    {
+
}
      modelName = Squad/FX/shockExhaust_red_small
+
running_open
      transformName = thrustTransform
+
{
      emission = 0.0 0.0
+
AUDIO
      emission = 0.05 0.0
+
{
      emission = 0.075 0.25
+
channel = Ship
      emission = 1.0 1.25
+
clip = sound_jet_deep
      speed = 0.0 0.5
+
volume = 0.0 0.0
      speed = 1.0 1.2
+
volume = 0.05 0.6
    }
+
volume = 1.0 1.0
  }
+
pitch = 0.0 0.7
  running_open
+
pitch = 1.0 1.4
  {
+
loop = true
    AUDIO
+
}
    {
+
PREFAB_PARTICLE
      channel = Ship
+
{
      clip = sound_jet_deep
+
prefabName = fx_smokeTrail_aeroSpike
      volume = 0.0 0.0
+
transformName = smokePoint
      volume = 1.0 1.0
+
emission = 0.0 0.0
      pitch = 0.0 0.2
+
emission = 0.05 0.0
      pitch = 1.0 1.0
+
emission = 0.075 0.25
      loop = true
+
emission = 1.0 1.25
    }
+
speed = 0.0 0.25
    PREFAB_PARTICLE
+
speed = 1.0 1.0
    {
+
localOffset = 0, 0, 1
      prefabName = fx_smokeTrail_aeroSpike
+
}
      transformName = smokePoint
+
}
      emission = 0.0 0.0
+
engage
      emission = 0.05 0.0
+
{
      emission = 0.075 0.25
+
AUDIO
      emission = 1.0 1.25
+
{
      speed = 0.0 0.25
+
channel = Ship
      speed = 1.0 1.0
+
clip = sound_vent_soft
      localOffset = 0, 0, 1
+
volume = 1.0
  }
+
pitch = 2.0
  }
+
loop = false
  engage
+
}
  {
+
}
    AUDIO
+
flameout
    {
+
{
      channel = Ship
+
PREFAB_PARTICLE
      clip = sound_vent_soft
+
{
      volume = 1.0
+
prefabName = fx_exhaustSparks_flameout_2
      pitch = 2.0
+
transformName = smokePoint
      loop = false
+
oneShot = true
    }
+
}
  }
+
AUDIO
  flameout
+
{
  {
+
channel = Ship
    PREFAB_PARTICLE
+
clip = sound_explosion_low
    {
+
volume = 1.0
      prefabName = fx_exhaustSparks_flameout_2
+
pitch = 2.0
      transformName = smokePoint
+
loop = false
      oneShot = true
+
}
    }
+
}
    AUDIO
+
}
    {
+
MODULE
      channel = Ship
+
{
      clip = sound_explosion_low
+
name = MultiModeEngine
      volume = 1.0
+
primaryEngineID = AirBreathing
      pitch = 2.0
+
primaryEngineModeDisplayName = #autoLOC_6001897 //#autoLOC_6001897 = AirBreathing
      loop = false
+
secondaryEngineID = ClosedCycle
    }
+
secondaryEngineModeDisplayName = #autoLOC_6001898 //#autoLOC_6001898 = ClosedCycle
  }
+
}
}
+
MODULE
 
+
{
MODULE
+
name = ModuleEnginesFX
{
+
engineID = AirBreathing
name = MultiModeEngine
+
powerEffectName = power_open
primaryEngineID = AirBreathing
+
//runningEffectName = running_open
secondaryEngineID = ClosedCycle
+
thrustVectorTransformName = thrustTransform
}
+
exhaustDamage = True
MODULE
+
ignitionThreshold = 0.33
{
+
minThrust = 0
name = ModuleEnginesFX
+
maxThrust = 105
engineID = AirBreathing
+
heatProduction = 60
directThrottleEffectName = power_open
+
useEngineResponseTime = True
runningEffectName = running_open
+
engineAccelerationSpeed = 0.2
thrustVectorTransformName = thrustPoint
+
engineDecelerationSpeed = 0.35
exhaustDamage = True
+
useVelocityCurve = False
ignitionThreshold = 0.33
+
spoolEffectName = running_open
minThrust = 0
+
engineSpoolIdle = 0.05
maxThrust = 190
+
engineSpoolTime = 2.0
heatProduction = 400
+
EngineType = Turbine
useEngineResponseTime = True
+
exhaustDamageMultiplier = 50
engineAccelerationSpeed = 0.2
+
exhaustDamageDistanceOffset = 0.19
engineDecelerationSpeed = 0.35
+
clampPropReceived = True
useVelocityCurve = True
+
PROPELLANT
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
 +
}
 +
}
 +
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
 +
}
 +
}
 +
MODULE
 
{
 
{
name = LiquidFuel
+
name = FXModuleAnimateThrottle
ratio = 1
+
animationName = HeatAnimationEmissiveRapier
DrawGauge = True
+
responseSpeed = 0.001
 +
dependOnEngineState = True
 +
dependOnThrottle = True
 +
preferMultiMode = True // bind to the parent multimode module, not the actual engines.
 
}
 
}
PROPELLANT
+
MODULE
 
{
 
{
name = IntakeAir
+
name = ModuleGimbal
ratio = 15
+
gimbalTransformName = obj_gimbal
 +
gimbalRange = 3
 
}
 
}
atmosphereCurve
+
MODULE
{
 
key = 0 1200
 
key = 0.3 2500
 
key = 1 800
 
}
 
velocityCurve
 
 
{
 
{
key = 0 0.5 0 0
+
name = ModuleTestSubject
key = 1000 1 0 0
+
useStaging = True
key = 2000 0.5 0 0
+
useEvent = True
key = 2200 0 0 0
+
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
}
 
MODULE
 
{
 
name = ModuleEnginesFX
 
engineID = ClosedCycle
 
runningEffectName = running_closed
 
thrustVectorTransformName = thrustPoint
 
exhaustDamage = True
 
ignitionThreshold = 0.1
 
minThrust = 0
 
maxThrust = 175
 
heatProduction = 650
 
fxOffset = 0, 0, 0.25
 
PROPELLANT
 
 
{
 
{
name = LiquidFuel
+
name = ModuleSurfaceFX
        ratio = 0.9
+
thrustProviderModuleIndex = 1
DrawGauge = True
+
fxMax = 0.5
 +
maxDistance = 20
 +
falloff = 2
 +
thrustTransformName = thrustTransform
 
}
 
}
PROPELLANT
+
MODULE
 
{
 
{
name = Oxidizer
+
name = ModuleSurfaceFX
ratio = 1.1
+
thrustProviderModuleIndex = 2
 +
fxMax = 0.6
 +
maxDistance = 30
 +
falloff = 1.6
 +
thrustTransformName = thrustTransform
 
}
 
}
atmosphereCurve
 
{
 
  key = 0 360
 
  key = 1 320
 
}
 
 
}
 
MODULE
 
{
 
      name = ModuleAnimateHeat
 
      ThermalAnim = HeatAnimationEmissiveRapier
 
}
 
 
MODULE
 
{
 
name = ModuleGimbal
 
gimbalTransformName = obj_gimbal
 
gimbalRange = 3
 
}
 
 
 
}
 
}
 
}}
 
}}

Latest revision as of 16:09, 10 October 2024

This is the configuration file for CR-7 R.A.P.I.E.R. Engine.
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
		}
	}
	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
		}
	}
	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
	}
}