Modules define what specific parts can do. They are generally calls to C-coded or hard-coded functions that define what functionality these parts have in-game. If you are a new part designer, modder, engineer, or someone else who makes parts, please check the STOCK modules list before designing a new module. Each additional module increases the CPU workload and reduces FPS and Physics. All 0.90 stock modules are now included.
explanation
|
code examples
|
CModuleFuelLine
No known arguments or variables at this time. This module is used by fuelLine, presumably to specify that it is fuel Transfer enabled. More research is clearly called for. This module is new in 0.90.
|
MODULE
{
name = CModuleFuelLine
}
|
CModuleLinkedMesh
This module is new in 0.90 and is used by fuelLine and strutConnector, presumably to created the variable length connectors between two parts (and add end caps on both sides).
variable |
example |
definition
|
lineObjName
|
|
specifies whether there is a flag displayed on the exterior surface of the object.
|
targetAnchorName
|
|
Unknown
|
anchorCapName
|
|
name of the part on the source part that this part attaches from
|
targetCapName
|
|
name of the part on the target part to which this mesh attaches
|
|
MODULE
{
name = CModuleLinkedMesh
lineObjName = obj_line
targetAnchorName = obj_targetAnchor
anchorCapName = obj_anchorCap
targetCapName = obj_targetCap
}
|
CModuleStrut
This module is new in 0.90 and is used by strutConnector, presumably to indicate that it is a structural support part.
variable |
example |
definition
|
linearStrength
|
|
the push/pull strength of the strut
|
angularStrength
|
|
the sheering strength of the strut
|
|
MODULE
{
name = CModuleStrut
linearStrength = 150
angularStrength = 150
}
|
FlagDecal
Parts with this module have a place for a flag on their sides. You don't have to turn it on, but this is how it gets there.
variable |
example |
definition
|
textureQuadName
|
|
specifies whether there is a flag displayed on the exterior surface of the object.
|
|
MODULE
{
name = FlagDecal
textureQuadName = flagTransform
}
|
FXModuleAnimateThrottle
Animation for engines and engine bells showing them as they fire up and operate, based on the amount of throttle applied. See ion Engines for a good example.
variable |
example |
definition
|
animationName |
|
specifies the animation to be used
|
depondOnEngineState |
|
specifies whether the animation is dependent on the throttle
|
responseSpeed |
|
specifies the rate at which the animation reacts to the change in engine state
|
|
MODULE
{
name = FXModuleAnimateThrottle
animationName = colorAnimation
dependOnEngineState = True
responseSpeed = 0.5
}
|
FXModuleConstrainPosition
Copies the rotation and/or position (matchRotation/matchPosition) from targetName to moversName. Used by for example wheels to copy the rotation of the steering part to the wheel collider.
variable |
example |
definition
|
matchRotation |
|
Should targetNames rotation be applied to moversName?
|
matchPosition |
|
Should targetName's position be applied to moversName?
|
CONSTRAINFX |
{} |
unknown
|
targetName |
|
gameObject to copy local position/rotation of.
|
moversName |
|
gameObject to apply targetNames local position/rotation to.
|
|
MODULE
{
name = FXModuleConstrainPosition
matchRotation = true
matchPosition = false
CONSTRAINFX
{
targetName = steering
moversName = lateral
}
}
|
FXModuleLookAtConstraint
Makes two gameObject "look" at each other, for example in suspensions where the piston must "look" at the cylinder. The gameObjects must be aligned so it rotates around it's local X axis and looks down it's local Z axis.
variable |
example |
definition
|
CONSTRAINLOOKFX |
{} |
|
targetName |
|
gameObject to target rotatorsName at.
|
rotatorsName |
|
gameObject to rotate so that it looks at targetName
|
|
MODULE
{
name = FXModuleLookAtConstraint
CONSTRAINLOOKFX
{
targetName = susp2-1
rotatorsName = susp2-2
}
CONSTRAINLOOKFX
{
targetName = susp2-2
rotatorsName = susp2-1
}
CONSTRAINLOOKFX
{
targetName = susp1-2
rotatorsName = susp1-1
}
CONSTRAINLOOKFX
{
targetName = susp1-1
rotatorsName = susp1-2
}
}
|
KerbalSeat
This module makes the part have an EXTERIOR seat.
variable |
example |
definition
|
seatPivotName
|
|
Unknown
|
ejectDirection
|
|
specifies the direction from which your Kerbal will exit the vehicle. Try to line up with a hatch!
|
|
MODULE
{
name = KerbalSeat
seatPivotName = seatPivot
ejectDirection = 0, 1, 0.2
}
|
LaunchClamp
This module enables the part to hold a vessel in suspension on the launch pad.
variable |
example |
definition
|
trf_towerPivot_name |
|
specifies the model used for the pivot point
|
trf_towerStretch_name |
|
specifies the model for the ground to pivot girder
|
trf_anchor_name |
|
specifies the model for the ground mount point
|
trf_animationRoot_name |
|
specifies the base animation
|
anim_decouple_name |
|
specifies the animation for the release of the clamp
|
|
MODULE
{
name = LaunchClamp
trf_towerPivot_name = obj_girdercap
trf_towerStretch_name = obj_girder
trf_anchor_name = obj_ground
trf_animationRoot_name = launchclamp
anim_decouple_name = launchclamp
}
|
ModuleAlternator
Specifies that this part produced a resource, based on the percentage of thrust produced by the engine.
variable |
example
|
RESOURCE |
variable |
example |
definition
|
name |
ElectricCharge |
name of the resource produced
|
rate |
1.0 |
rate at which the resource is produced at 100% thrust, expressed in units/second
|
|
|
MODULE
{
name = ModuleAlternator
RESOURCE
{
name = ElectricCharge
rate = 5.0
}
}
|
ModuleAnchoredDecoupler
This module specifies that the part is attached (anchored) to another part, and will decouple from yet a third part, forcing the third part away from it.
variable |
example |
definition
|
anchorName |
|
specifies the name of the anchored part
|
ejectionForce |
|
dV applied to part upon separation
|
explosiveNodeID |
|
specifies the location of the explosion.
|
|
MODULE
{
name = ModuleAnchoredDecoupler
anchorName = anchor
ejectionForce = 450
explosiveNodeID = srf
}
|
ModuleAnimateGeneric
Generic Animations will be applied to parts with this module. This module is slowly replacing other animation modules as progression is made towards the release version of KSP.
variable |
example |
definition
|
animationName |
- Deploy
- CrewCabinLight
- dish
- dockingring
- dockingporthull
|
specifies the name of the animation to be used
|
isOneShot |
|
specifies whether the animation can occur only once
|
startEventGUIName |
Flavor text |
to describe turning the animation to its 'On' State
|
endEventGUIName |
Flavor text |
to describe turning the animation to its 'Off' State
|
actionGUIName |
Flavor text |
to describe switching the animation between it's 'on' and 'off' states
|
allowManualControl |
|
specifies whether the part can be manually animated
|
actionAvailable |
|
???
|
eventAvailableEditor |
|
specifies whether the animation can be toggled in the VAB/SPH scene
|
eventAvailableFlight |
|
specifies whether the animation can be toggled in the flight scene
|
eventAvailableEVA |
|
specifies whether the animation can be toggled by a Kerbal on EVA near the vessel or part containing the animation
|
evaDistance |
|
specifies the maximum distance (in meters) from which a Kerbal on EVA can toggle an animation on the part
|
|
MODULE
{
name = ModuleAnimateGeneric
animationName = dish
isOneShot = false
startEventGUIName = Extend
endEventGUIName = Retract
actionGUIName = Toggle Antenna
}
|
ModuleAnimateHeat
This module specifies that heating animation will be applied to this part.
variable |
example |
definition
|
ThermalAnim |
- HeatAnimationEmissiveLiquidEngine3
- HeatAnimationEmissiveTurbofan
- HeatAnimationEmissiveJet
- overheat
|
animation for applying heat to an object
|
|
MODULE
{
name = ModuleAnimateHeat
ThermalAnim = HeatAnimatioEmissiveLiquidEngine3
}
|
ModuleAsteroid
Because it has no procedures or calls, is new in [0.90] and only appears on a part that you must hack to have available, it is impossible to say for certain what this module does, but it has something to do with being an asteroid.
no procedures or calls
|
MODULE
{
name = ModuleAsteroid
}
|
ModuleCargoBay
Allows a cargo bay to shield its contents from airflow and heat.
variable |
example |
definition
|
DeployModuleIndex |
|
Specifies the index (starting with zero) of the MODULE which controls whether the bay is open or closed. Said MODULE must implement IScalarModule (e.g. ModuleAnimateGeneric and its descendents, or ModuleAnimatedDecoupler from AnimatedDecouplers).
|
closedPosition |
|
Specifies whether the cargo bay is closed by default (0) or open by default (1).
|
lookupRadius |
|
Radius within which the part should search for parts to be shielded.
|
lookupCenter |
|
Optional (default is 0,0,0). Specifies the point from which the search is centered. Rays are cast from here; any parts that are struck are shielded, while the rays stop when the part's own colliders are hit.
|
- nodeOuterForeID
- nodeOuterAftID
- nodeInnerForeID
- nodeInnerAftID
|
|
Optional. For hollow cargo bay parts without end walls (e.g. Mk2 Cargo Bay CRG-04), node IDs are given to determine where the cargo bay ends.
|
|
MODULE
{
name = ModuleCargoBay
DeployModuleIndex = 1
closedPosition = 1
lookupRadius = 1
nodeOuterForeID = top
nodeOuterAftID = bottom
nodeInnerForeID = top2
nodeInnerAftID = bottom2
}
|
ModuleCommand
Applies Command to vessels
variable |
example |
definition
|
minimumCrew |
|
Specifies the minimum number of crew needed to operate this module.
|
RESOURCE |
name |
ElectricCharge |
This is the name of that resource
|
rate |
15.0 |
and the rate in units/second of resource consumed
|
|
If this Module requires a resource
|
|
MODULE
{
name = ModuleCommand
minimumCrew = 1
}
|
ModuleControlSurface
This module gives the part the ability to respond to inputs, generally used for aerodynamic parts to expose more or less effective surface to lift and braking forces in atmospheres.
variable |
example |
definition
|
dragCoeff |
* 0.5 |
this value overrides the maximum_drag value
|
deflectionLiftCoeff |
* 0.7 |
specifies the Coefficient of lift for the part
|
ctrlSurfaceRange |
* 20 |
specifies the degrees of operation for the part
|
ctrlSurfaceArea |
* 0.95 |
specifies how much of the part affects lift
|
|
MODULE
{
name = ModuleControlSurface
dragCoeff = 0.5
deflectionLiftCoeff = 0.7
ctrlSurfaceRange = 20
ctrlSurfaceArea = 0.95
}
|
ModuleDataTransmitter
This module specifies that the part acts as a transmitter of data, typically an antenna of some sort, for broadcasting science data back to the KSC.
variable |
example |
definition
|
packetInterval |
|
Mits per second
|
packetSize |
|
Mits per packet
|
packetResourceCost |
|
Resource per packet
|
requiredResource |
|
Required resource (usually ElectricCharge)
|
DeployFxModules |
|
Deployment
|
ProgressFxModules |
|
Animations that play while transmitting
|
|
MODULE
{
name = ModuleDataTransmitter
packetInterval = 0.18
packetSize = 2
packetResourceCost = 20.0
requiredResource = ElectricCharge
DeployFxModules = 0
}
|
ModuleDecouple
ModuleDecouple is a slightly upgraded version of ModuleAnchoredDecoupler, and may replace it in the future. Allows for decouplers that separate from both parts to which it is attached.
variable |
sample |
definition
|
isOmniDecoupler |
|
Specifies whether this decoupler separates on both ends or not. Defaults to false.
|
ejectionForce
|
|
specifies the DeltaV with which the part separates
|
explosiveNodeID |
|
for non-OmniDecouplers, specifics the Node of separation
|
|
MODULE
{
name = ModuleDecouple
ejectionForce = 250
explosiveNodeID = srf
}
|
ModuleDeployableSolarPanel
Solar panels cannot deploy without this module. May be possible to use for other modules which unfold. Optionally specifies whether the part will automatically turn to face the sun. This is one place where you can say how a part breaks.
variable |
example |
definition
|
animationName |
- solarpanels
- solarpanels2
- solarpanels4
- altsolarpanelbase
- bigsolarpanel
|
unknown for sure. Assumed to refer to an animation describing part transformation from its closed state to its open state. known parameters are:
|
sunTracking |
|
Assumed to indicate whether the animation will turn the panel towards the sun.
|
raycastTransformName |
|
optional. unknown.
|
pivotName |
|
optional. unknown.
|
isBreakable |
|
Indicates whether the part will break on high-dynamic stress.
|
resourceName |
|
The resource provided by this module. Any resource may be used, including resources not defined.
|
chargeRate |
|
Amount of resource provided per second at 100% output. Positive values only, please.
|
powerCurve |
|
powerCurve is a special call consisting of subtypes called [key]. Each [key] uses four numbers to define what it will do at a specific distance from a source. In the case of solar panels, where powerCurve is typically used, there are typically 4 [key]s. [powerCurve] defines the rate at which resources are provided relative to the [chargeRate] and distance from the specified source (ie. Kerbol)
- 206000000000 0.00 0 0
- 013599840256 1.00 0 0
- 068773560320 0.50 0 0
- 000000000000 10.0 0 0
|
|
MODULE
{
name = ModuleDeployableSolarPanel
animationName = solarpanels2
resourceName = ElectricCharge
chargeRate = 2
powerCurve
{
key = 206000000000 0 0 0
key = 13599840256 1 0 0
key = 68773560320 0.5 0 0
key = 0 10 0 0
}
}
|
ModuleDockingNode
A module for docking ports
variable |
example |
definition
|
referenceAttachNode |
|
Specifies the node on the part that is used for the docking port, generally top or bottom
|
deployAnimationController |
|
Boolean
|
nodeType |
|
Specifies the type of node for attachment. When perform docking operations, nodes must have the same value for nodeType in order to dock with one another.
|
nodeTransformName |
|
unknown
|
controlTransformName |
|
apparently only used for docking nodes that have related animations, see dockingPortInline
|
undockEjectionForce |
|
Force in d/v applied on undock
|
minDistanceToReEngage |
|
Docking Nodes must separate by this many meters before being able to reengage
|
acquireForce |
|
magnetic grip, in d/v
|
acquireTorque |
|
rotational magnetic grip, in d/v
|
acquireRange |
|
maximum distance to begin applying magnetic grip
|
captureRange |
|
maximum range to begin docking
|
snapRotation |
|
specifies whether to enforce docking at multiple rotational offsets rather than a single allowable angle
|
snapOffset |
|
specifies what rotational offsets (in degrees) docking is allowed
|
acquireMinRollDot |
|
specifies the minimum angular accuracy between docking ports for applying magnetic grip; higher values imply better accuracy
|
captureMinRollDot |
|
specifies the minimum angular accuracy between docking ports to begin docking; higher values imply better accuracy
|
gendered |
|
specifies whether to enforce gendered docking; defaults to false (androgynous)
|
genderFemale |
|
if gendered (see above) is true, this specifies whether the docking port can only docking with another port of the same type but different gender; defaults to true, which means it can only dock with another port with genderFemale=false
|
|
MODULE
{
name = ModuleDockingNode
referenceAttachNode = top
nodeType = size2
undockEjectionForce = 0.25
minDistanceToReEngage = 3.5
acquireForce = 3.5
acquireTorque = 3.5
acquireRange = 3.0
captureRange = 1.5
snapRotation = false
}
|
ModuleEngines
Everything about your engine, all in one module!
variable |
example |
definition
|
thrustVectorTransformName |
|
specifies gameObject to be used as point of applied thrust, force is applied in local +Z. standard name is thrustTransform, but it can be anything as long as gameObject in the MU matches thrustVectorTransformName value in module config
|
throttleLocked |
|
Used to create engines without controllable thrust.
|
exhaustDamage |
|
assumed to indicate whether the exhaust from this engine will damage other parts.
|
ignitionThreshold |
|
minimum required resource(s) for engine to start. If engine has less than specified value in resource(s), it will not start. Think of it as if your car needs at least half full tank to start.
|
minThrust |
|
Minimum thrust value. Engines will be considered 'off' at or below this value.
|
maxThrust |
|
Just like the name implies, this is the maximum thrust a single unit of this module can produce. In order to create a more powerful engine, set this value higher.
|
heatProduction |
|
a measure of the amount of heat energy produced per second. measured in degrees Kerbius (degrees Celsius)
|
fxOffset |
|
3-dimensional vector coordinates specifying the location of thrust effects
|
useEngineResponseTime |
|
|
engineAccelerationSpeed |
|
|
engineDecelerationSpeed |
|
|
allowShutdown |
|
Specifies engines that cannot be turned off, regardless of whether their thrust can be controlled.
|
useVelocityCurve |
|
|
PROPELLANT |
{}
|
resource utilized in the operation of this part, generally a fuel or other propellant. Engines may use multiple propellant types.
|
name |
|
name of the resource consumed while this part is in operation
|
ratio |
|
rate at which this resource is consumed, per second. Not to be confused with ratio relative to other propellants.
|
DrawGauge |
|
Boolean value that indicates whether or not the 'fuel remaining' indicator in the staging selection is displayed or not.
|
atmosphereCurve |
{} |
specifies variances in operational efficiency
|
key |
|
uses two values to specify engine efficiency relative to the depth of the atmosphere (based on Kerbin sea-level!) First number indicates the relative pressure (0 = vacuum, 1 Kerbin sea-level), second numer indicates ISP value).
Translates directly to ISP. In order to make a more efficient engine, set the second number of this array higher.
|
velocityCurve |
{} |
Control the degree of acceleration of an engine at specified speeds. It uses keys to generate a curve of the amount of thrust generated by the engine according to the speed of the craft. First part of the key is speed in m/s and then comes the thrust multiplier ( the effective thrust will be : maxThrust * multiplier). Used stock by jet engines.
|
|
MODULE
{
name = ModuleEngines
thrustVectorTransform
Name = thrustTransform
throttleLocked = True
exhaustDamage = True
allowShutdown = False
ignitionThreshold = 0.1
minThrust = 0
maxThrust = 18
heatProduction = 550
fxOffset = 0, 0, 0.02
PROPELLANT
{
name = SolidFuel
ratio = 1.0
DrawGauge = True
}
atmosphereCurve
{
key = 0 100
key = 1 100
}
}
|
ModuleEnginesFX
An updated and more customizable version of ModuleEngines. Required for and allows implementation of multi-modal engines and engines with custom exhaust FX.
variable |
example |
definition
|
engineID
|
|
Hidden name of the engine
|
runningEffectName
|
|
effect used for when the engine is running
|
thrustVectorTransformName
|
- thrustTransform
- obj_gimbal
|
specifies gameObject to be used as point of applied thrust, force is applied in local +Z. standard name is thrustTransform, but it can be anything as long as gameObject in the MU matches thrustVectorTransformName value in module config
|
exhaustDamage |
|
Indicates whether the exhaust from this engine will damage other parts.
|
throttleLocked |
|
Assumed to specify that solid Rocket Boosters cannot have their throttle adjusted while in flight.
|
ignitionThreshold
|
|
minimum required resource(s) for engine to start. If engine has less than specified value in resource(s), it will not start. Think of it as if your car needs at least half full tank to start.
|
minThrust
|
|
Minimum thrust value. Engines will be considered 'off' at or below this value.
|
maxThrust
|
|
Just like the name implies, this is the maximum thrust a single unit of this module can produce.
|
heatProduction
|
|
a measure of the amount of heat energy produced per second. measured in degrees Kerbius (degrees Celsius)
|
fxOffset
|
|
3-dimensional vector coordinates specifying the location of thrust effects
|
PROPELLANT
|
{}
|
resource utilized in the operation of this part, generally a fuel or other propellant.
|
name
|
- LiquidFuel
- Oxidizer
- XenonGas
|
name of the resource consumed while this part is in operation
|
ratio
|
|
rate at which this resource is consumed, per second. Not to be confused with ratio relative to other propellants.
|
DrawGauge
|
|
Boolean value that indicates whether or not the 'fuel remaining' indicator in the staging selection is displayed or not.
|
atmosphereCurve |
{} |
specifies variances in operational efficiency
|
key |
|
uses two values to specify engine efficiency relative to the depth of the atmosphere (based on Kerbin sea-level!) First number indicates the relative pressure (0 = vacuum, 1 Kerbin sea-level), second numer indicates ISP value).
|
|
MODULE
{
name = ModuleEnginesFX
thrustVectorTransformName = thrustTransform
exhaustDamage = True
ignitionThreshold = 0.1
minThrust = 0
maxThrust = 30
heatProduction = 150
fxOffset = 0, 0, 0.125
PROPELLANT
{
name = LiquidFuel
ratio = 0.9
DrawGauge = True
}
PROPELLANT
{
name = Oxidizer
ratio = 1.1
}
atmosphereCurve
{
key = 0 350
key = 1 300
}
}
|
ModuleEnviroSensor
Environmental sensor definitions. Specifies that this part is one of these types of sensors.
variable |
example |
definition
|
sensorType |
|
Type of experiment / sensor. Not sure of the utility of this definition, could be used in Science modules to determine what type of experiment was conducted. Could be used in contracts for determining contract requirements.
|
|
MODULE
{
name = ModuleEnviroSensor
sensorType = ACC
}
|
ModuleGenerator
Generators and Alternators serve must the same purpose, but generators are not linked to the percentage of thrust output of an engine, they simply produce. Some cannot be shut off. A generator may produce any available resource.
variable |
example |
definition
|
isAlwaysActive |
|
specifies whether this module is always active or not. true/false
|
OUTPUT_RESOURCE |
{} |
|
name
|
- ElectricCharge
- LiquidFuel
- XenonGas
|
specifies the name of the produced resource.
|
rate
|
|
specifies the rate of resource produced, expressed in units per second.
|
|
MODULE
{
name = ModuleGenerator
isAlwaysActive = true
OUTPUT_RESOURCE
{
name = ElectricCharge
rate = 0.75
}
}
|
ModuleGimbal
Gimballing represents an engine-bells ability to move around in relation to the engine body, provided a degree of ability to steer the vessel. Higher numbers indicate a higher range, but don't set it too high. Strange things will happen. Recommend limiting range to .90 at the absolute maximum.
variable |
example |
definition
|
gimbalTransformName
|
|
Uncertain.
|
gimbalRange
|
|
represents the maximum angle, in degrees, that gimballing is supported. Recommend keeping this number relatively low (under 20 for sure), as setting the number too high can have catastrophic effects on ship design.
|
|
MODULE
{
name = ModuleGimbal
gimbalTransformName = thrustTransform
gimbalRange = 0.5
}
|
ModuleGrappleNode
Added in [0.90], specifically for the KASA asteroid capture missions, this part functions much like a dockingNode, however, it does not require a matching docking node on the capture-side. Grapplers can attach to anything (as far as we know).
variable |
sample |
definition
|
nodeTransformName |
|
Uncertain. Assumed to relate to animations used.
|
deployAnimationController |
|
Uncertain.
|
nodeType |
|
Size of the connection. Relates to Docking port sizes.
|
captureRange |
|
Maximum distance between grappler and target at which grappling can occur
|
captureMinFwdDot |
|
Unknown
|
captureMaxRvel |
|
Maximum speed, relative to target, at which target can be grappled
|
|
MODULE
{
name = ModuleGrappleNode
nodeTransformName = ArticulatedCap
deployAnimationController = 1
nodeType = size1
captureRange = 0.05
captureMinFwdDot = 0.866
captureMaxRvel = 1
}
|
ModuleJettison
specifies that pieces of this craft are able to be jettisoned, what they are and how to jettison them
variable |
example |
definition
|
jettisonName |
- node_fairing_collider
- fairingL
- fairingR
- fairing
|
Name of the part to be jettisoned
|
bottomNodeName
|
|
Name of the node from which the part will be jettisoned
|
isFairing |
|
Specifies whether the ejected part is a fairing. Uncertain as to why this important. May have to do with debris tracking.
|
jettisonedObjectMass
|
|
Specifies the mass of the jettisoned object. It is uncertain, yet, if this mass is removed from the total mass of the vehicle. It is also uncertain if, when a fairing is added in vehicle assembly, this mass is added to the parent object.
|
jettisonForce
|
|
DeltaV with which the object is jettisoned from its parent object. Typically very low values, such as 1, 2 or 5
|
jettisonDirection
|
|
Three-dimensional array which specifies the direction of the jettisonForce relative to the original part, laterally is 0 0 1 and 0 0 -1, for example.
|
|
MODULE
{
name = ModuleJettison
jettisonName = fairing
bottomNodeName = bottom
isFairing = True
jettisonedObjectMass = 0.1
jettisonForce = 5
jettisonDirection = 0 0 1
}
|
ModuleLandingGear
Specifies that the part is a landing gear, implying a wheel, and the traits of that wheel. Hopefully being deprecated in favor of moduleWheel below.
variable |
example |
definition
|
BrakeTorque |
|
Amount of torque applied during breaking
|
BrakeSpeed |
|
Reduction in speed over time, expressed in m/s
|
|
MODULE
{
name = ModuleLandingGear
BrakeTorque = 12
BrakeSpeed = 3
}
|
ModuleLandingLeg
Specifies that this part is a landing leg and describes compression and resistance factors for the part.
variable |
example |
definition
|
animationName |
- Deploy
- newlandingleg
- probeleg
|
specifies the animation to use
|
wheelColliderName
|
|
|
suspensionTransformName |
|
|
orientFootToGround |
|
|
landingFootName |
|
|
alignFootUp |
|
Aligns to up Axis instead of forward axis if true
|
suspensionUpperLimit |
|
unknown
|
impactTolerance |
|
specifies the dV in m/s before the part breaks
|
suspensionSpring |
|
specifies the maximum degree of compression in the part
|
suspensionDamper |
|
Uncertain
|
suspensionOffset |
|
Uncertain
|
|
MODULE
{
name = ModuleLandingLeg
animationName = Deploy
wheelColliderName = wheelCollider
suspensionTransformName = Piston
orientFootToGround = true
landingFootName = foot
// Foot is aligned to up Axis instead of forward
alignFootUp = true
suspensionUpperLimit = 0.60
impactTolerance = 300
suspensionSpring = 1.25
suspensionDamper = 1
suspensionOffset = 0, 0.02,0
}
|
ModuleLight
Specifies that this part is a light source, and how that light is produced and directed.
variable |
example |
definition
|
lightName
|
|
Name of the light source
|
useAnimationDim |
|
Uncertain. Assumed to specify an animation to dim the light
|
lightBrightenSpeed |
|
When you turn it off, how long it takes to turn off
|
lightDimSpeed |
|
Speed at which the light dims
|
resourceAmount |
|
rate of consumption (in units/second) of the needed resource
|
animationName |
|
|
useResources |
|
specifies whether this light source requires resources
|
useAutoDim |
|
Sets the autodim
|
|
MODULE
{
name = ModuleLight
lightName = spotlight
useAnimationDim = true
lightBrightenSpeed = 2.5
lightDimSpeed = 2.5
animationName = LightAnimation
resourceAmount = 0.02
useResources = true
}
|
ModuleParachute
specifies that this part is a parachute and describes the operational parameters for parachute operations. Includes default settings for opening height and deployment atmospheric conditions.
variable |
example |
definition
|
semiDeployedAnimation |
|
specifies the animation to use in the semi-deployed state
|
fullyDeployedAnimation |
|
specifies the animation to use in the fully deployed state
|
invertCanopy |
|
unknown purpose.
|
autoCutSpeed |
|
specifies the speed at which the parachute will be automatically cut, rendering it ineffective.
|
capName |
|
|
canopyName |
|
|
stowedDrag |
|
specifies the drag effect while the parachute is still stowed
|
semiDeployedDrag |
|
specifies the drag effect while the parachute is in its semi-deployed state
|
fullyDeployedDrag |
|
specifies the drag effect while the parachute is in its fully deployed state
|
minAirPressureToOpen |
|
specifies the minimum Air pressure (or atmosphere) required for the parachute to enter its semi-deployed state
|
deployAltitude |
|
configurable, sets the altitude above the planetary collision mesh at which the parachute will enter its fully deployed state
|
deploymentSpeed |
|
specifies the speed at which the parachute will enter its fully deployed state
|
semiDeploymentSpeed |
|
specifies the speed at which the parachute will enter its semi-deployed state
|
|
MODULE
{
name = ModuleParachute
semiDeployedAnimation = semiDeploySmall
fullyDeployedAnimation = fullyDeploySmall
invertCanopy = true
autoCutSpeed = 0.5
capName = cap
canopyName = canopy
stowedDrag = 0.22
semiDeployedDrag = 1
fullyDeployedDrag = 500
minAirPressureToOpen = 0.01
deployAltitude = 500
deploymentSpeed = 1
semiDeploymentSpeed = 1
}
|
ModuleRCS
Specifies that this is a Reaction Control System part. Uses variable resources to control directionality of the spacecraft. Unlike engines, RCS parts are generally oriented perpendicular to all directions of a spacecraft in order to provide steering, rather than thrust. Typically, monopropellant is decompressively expelled from an RCS port to push the spacecraft in one direction.
Note: ModuleRCS can use either a single resource, or a series of PROPELLANT calls.
variable |
example |
definition
|
thrusterTransformName |
|
|
thrusterPower |
|
This is the power that the RCS thrusters provide. To make stronger RCS, use a higher numer
|
resourceName -------- interchangeable with PROPELLANT calls |
|
The name of the resource used by the RCS thruster, typically MonoPropellant
|
resourceFlowMode -- for resourceName only -- |
- STAGE_PRIORITY_FLOW
- STACK_PRIORITY_FLOW
- ALL_VESSEL
- NONE
|
Specifies the manner in which the resource is requested from the vessel
|
PROPELLANT |
|
Introduced with the inclusion of the Vernor RCS, it is recommended to use PROPELLANT calls only when using multiple resources. It is expected that older RCS will be updated to the new convention prior to final release.
|
name |
- MonoPropellant
- LiquidFuel
- Oxidizer
|
name of the resource consumed
|
ratio |
|
ratio of the resource consumed
|
resourceFlowMode
|
- STAGE_PRIORITY_FLOW
- STACK_PRIORITY_FLOW
- ALL_VESSEL
- NONE
|
using the same pull method as a single resource, specifies how to pull the resource from the rest of the vessel
|
atmosphereCurve |
|
Specifies the efficiency of the RCS thruster using 2-part keys
0 specifies the ISP in atmosphere
1 specifies the ISP at Kerbin Sea Level
entries in between specify the ISP at specific percentages of Kerbin Sea Level (e.g: 0.5 = 1/2 Kerbin Atmosphere)
|
|
MODULE
{
name = ModuleRCS
thrusterTransformName = RCSthruster
thrusterPower = 12
resourceName = LiquidFuel
resourceFlowMode = STAGE_PRIORITY_FLOW
PROPELLANT
{
name = LiquidFuel
ratio = 0.9
DrawGauge = True
resourceFlowMode = STAGE_PRIORITY_FLOW
}
PROPELLANT
{
name = Oxidizer
ratio = 1.1
resourceFlowMode = STAGE_PRIORITY_FLOW
}
atmosphereCurve
{
key = 0 260
key = 1 140
}
}
|
ModuleReactionWheel
Specifies that this part contains reaction wheels, used to stabilize the directionality of a spacecraft. Typically used for stability, rather than producing change, both are possible. If you're thinking that this does the same thing as RCS, you wouldn't be far off.
variable |
example |
definition
|
PitchTorque |
|
numerical value, denotes amount of change can be applied to pitch using reaction wheel power
|
YawTorque |
|
numerical value, denotes amount of change can be applied to yaw using reaction wheel power
|
RollTorque |
|
numerical value, denotes amount of change can be applied to roll using reaction wheel power
|
RESOURCE |
{} |
The resource used by reaction wheels in order to affect the changes they can produce
|
name |
|
name of the relevant resource, typically ElectricCharge
|
rate |
|
Rate of consumption, expressed in units/second at full usage.
|
|
MODULE
{
name = ModuleReactionWheel
PitchTorque = 30
YawTorque = 30
RollTorque = 30
RESOURCE
{
name = ElectricCharge
rate = 0.6
}
}
|
ModuleResourceHarvester
Used to create a part that harvestes resources from the environment.
variable |
example |
definition
|
HarvesterType |
|
Defines the type of harvester.
- 0 = Planetary use
- 1 = Oceanic use
- 2 = Atmospheric use
- 3 = Vacuum use?
Harvester types other then 0 require use of a deploy animation before they can be activated (tested with KSP version 1.1.3).
|
Efficiency |
|
Harvester efficiency. Seems to work differently depending on harvester type.
|
ResourceName |
|
Resource to harvest.
|
ConverterName |
|
Name displayed when right-clicking the part.
|
StartActionName |
|
Text displayed for the start action.
|
StopActionName |
|
Text displayed for the stop action.
|
ToggleActionName |
|
Text displayed for the toggle action.
|
ImpactTransform |
|
Seems to be only relevant for surface harvesters. Resource is only harvested when in contact to the ground. Further details of this parameter are unknown.
|
ImpactRange |
|
Seems to be only relevant for surface harvesters. May be the distance between where the drillhead is when it is deployed and where the actual part is. Further details of this parameter are unknown.
|
AutoShutdown |
|
If set to true the harvester will automatically shut off if it overheats.
|
GeneratesHeat |
|
If set to true the harvester operation will generate heat.
|
UseSpecialistBonus |
|
If set to true crew members can give a bonus to harvester efficiency.
|
SpecialistEfficiencyFactor |
|
Efficieny bonus multiplier based on the number of specialists and their skill.
|
SpecialistBonusBase |
|
Efficieny bonus base amount for each specialist of the given type.
|
Specialty |
|
Type of specialist required to get the efficiency bonus.
|
EfficiencyBonus |
|
Added efficiency for having a specialist.
|
INPUT_RESOURCE |
|
Defines the resource consumed when the harvester is active. Can have multiple INPUT_RESOURCE definitions.
|
TemperatureModifier |
- Temperature modifier defintion
|
Unknown.
|
ThermalEfficiency |
- Thermal efficiency definition
|
Efficiency related to part temperature.
|
|
MODULE
{
name = ModuleResourceHarvester
HarvesterType = 0
Efficiency = 1.5
ResourceName = Ore
ConverterName = Surface Harvester
StartActionName = Start Surface Harvester
StopActionName = Stop Surface Harvester
ToggleActionName = Toggle Surface Harvester
ImpactTransform = ImpactTransform
ImpactRange = 5
AutoShutdown = true
GeneratesHeat = true
UseSpecialistBonus = true
SpecialistEfficiencyFactor = 0.2
SpecialistBonusBase = 0.05
Specialty = Engineer
EfficiencyBonus = 1
INPUT_RESOURCE
{
ResourceName = ElectricCharge
Ratio = 15
}
TemperatureModifier
{
key = 0 10000
key = 250 7500
key = 500 5000
key = 750 500
key = 1000 0
}
ThermalEfficiency
{
key = 0 0.1
key = 250 .1
key = 500 1
key = 750 .1
key = 1000 0
}
}
|
|
ModuleResourceIntake
Used to create a part that produces a resource based on interaction with the environment.
variable |
example |
definition
|
resourceName |
|
defines the type of resource produced by this module. Any resource may be used for this purpose, including those not defined at all
|
checkForOxygen |
|
An optional method that specifies this module must check to see if oxygen/atmosphere is present whenever attempting to generate the requested resource.
|
area |
|
area is the amount of space used for determining how much resource to produce. The larger the number, the more of the resource is produced per second.
|
intakeSpeed |
|
unknown. Assumed to be a minimum m/s measure to determine if this module operates or not.
|
intakeTransformName |
|
unknown.
|
|
MODULE
{
name = ModuleResourceIntake
resourceName = IntakeAir
checkForOxygen = true
area = 0.006
intakeSpeed = 10
intakeTransformName = Intake
}
|
|
ModuleSAS
Used as a reference to determine whether this part is activated by the SAS function of the interface. ie. when you turn on SAS, turn on this part. NOTE: [0.90] added SASServiceLevel (0-3)
variable |
example |
definition
|
SASServiceLevel |
|
defines the required level of building development for each different SAS capabilities (markers on the nav ball)
|
|
MODULE
{
name = ModuleSAS
SASServiceLevel = 1
}
|
ModuleScienceContainer
A place to store the results of a science experiment.
variable |
example |
definition
|
reviewActionName |
Flavor Text |
for reviewing the data contained in a science container.
|
storeActionName |
Flavor text |
for placing data into a science container.
|
collectActionName |
Flavor text |
for removing data from a science container.
|
evaOnlyStorage |
|
Specifies whether or not data storage is restricted to EVA activities.
|
storageRange |
|
Distance, expressed in meters, a Kerbal must be within in order to interact with data and this container.
|
allowRepeatedSubjects |
|
Uncertain
|
|
MODULE
{
name = ModuleScienceContainer
reviewActionName = Review Stored Data
storeActionName = Store Experiments
evaOnlyStorage = True
storageRange = 4.0
}
|
ModuleScienceExperiment
A place to conduct a science experiment.
variable |
example |
definition
|
experimentID |
- evaReport
- mysteryGoo
- surfaceSample
- mobileMaterialsLab
- temperatureScan
- barometerScan
- seismicScan
- gravityScan
- atmosphereAnalysis
- asteroidSample
|
This refers to the Experiment IDs listed in ScienceDefs.cfg under each EXPERIMENT_DEFINITION{}
|
experimentActionName |
Flavor text |
for contextual menu to describe to the player what the part does when collecting data
|
resetActionName |
Flavor text |
for contextual menu to describe to the player what the part does when collecting data
|
reviewActionName |
Flavor text |
for contextual menu to describe to the player what the part does when collecting data
|
useStaging |
|
specifies whether this module can be activated through the normal staging system
|
useActionGroups |
|
specifies whether this module can be activated by an Action Group
|
hideUIwhenUnavailable |
|
specifies whether this module will show its activation buttons through the contextual menu, even if it is not available
|
rerunnable |
|
specifies whether this experiment can be rerun.
|
xmitDataScalar |
|
Uncertain. Presumed to relate to Mits for transmission / recovery
|
FxModules |
|
Unknown - presumed to relate to animation for the module when activated
|
dataIsCollectable |
|
Uncertain. Presumed to indicate whether a Kerbal on EVA can retrieve data from this experiment
|
collectActionName |
Flavor text |
If data is collectible, this is the flavor text for collecting that data
|
interactionRange |
|
The range, expressed in meters, from which a Kerbal on EVA can interact with this module (for example to reset the experiment)
|
usageReqMaskInternal |
(ExperimentUsageReqs) |
How the experiment can be triggered by the parent Vessel.
|
usageReqMaskExternal |
(ExperimentUsageReqs) |
How the experiment can be triggered by EVA Kerbals.
|
ExperimentUsageReqs
Name |
Value |
Notes
|
Never |
-1 |
Experiment can't be used at all
|
Always |
0 |
Experiment can always be used
|
VesselControl |
1 |
Experiment can be used if vessel is (see ExperimentUsageReqs)under control (probe or crew)
|
CrewInVessel |
2 |
Experiment can only be used if vessel is crewed.
|
CrewInPart |
4 |
Experiment can only be used if part contains crew.
|
ScientistCrew |
8 |
Experiment can only be used if crew is scientist.
|
|
MODULE
{
name = ModuleScienceExperiment
experimentID = atmosphereAnalysis
experimentActionName = Run Atmosphere Analysis
resetActionName = Discard Data
reviewActionName = Review Data
useStaging = False
useActionGroups = True
hideUIwhenUnavailable = True
rerunnable = True
xmitDataScalar = 0.35
dataIsCollectable = True
collectActionName = Download Data
interactionRange = 1.2
}
|
ModuleScienceLab
A place to modify a science experiment prior to transmission in order to gain more research points from it.
variable |
example |
definition
|
containerModuleIndex |
|
Unkown
|
dataTransmissionBoost |
|
Unknown
|
crewsRequired |
|
Minimum number of Kerbals in the part needed to operate this module
|
canResetConnectedModules |
|
Unknown. Presumed to indicate whether modules attached to this part can be reset from this module
|
canResetNearbyModules |
|
Presumed to indicate whether modules attached to this vessel can be reset from this module
|
interactRange |
|
Limit of range (in meters) that modules attached to this vessel can be reset. Uncertain.
|
REOURCE_PROCESS |
{} |
|
name |
|
names the resource required, e.g.: ElectricCharge
|
amount |
|
specified, numerical, the number of units of the specified resource expended
|
|
MODULE
{
name = ModuleScienceLab
containerModuleIndex = 0
dataTransmissionBoost = 1.15
crewsRequired = 2
canResetConnectedModules = True
canResetNearbyModules = True
interactionRange = 5
RESOURCE_PROCESS
{
name = ElectricCharge
amount = 10
}
}
|
ModuleSteering
Specifies that this part is steerable and provides the axis and animation information for steering the part.
variable |
example |
definition
|
controlAxisType |
|
Unsure. May have something to do with directional control
|
steeringAxis |
|
specifies the 3-dimensional axis of steering control.
|
steeringTransformName |
|
unknown
|
steeringLocked |
|
specifies whether the part's steering starts locked
|
steeringCurve |
|
multi-array of keys,
|
|
MODULE
{
name = ModuleSteering
controlAxisType = Forward
steeringAxis = 0, 0, 1
steeringTransformName = Steering
steeringLocked = true
steeringCurve
{
key = 0 16
key = 10 9
key = 30 2
key = 100 1
}
}
|
ModuleTestSubject
Used for the contract system, determines atmospheric conditions under which this part may be considered for testing. Also specifies whether the part is able to be tested using the Staging process or must be manually selected and "Perform Test" used to satisfy contract requirements.
variable |
example |
definition
|
environments (Deprecated. Use situationMask instead) |
|
A single numerical value, between 0 (nowhere) and 15 (anywhere), that specifies the atmospheric conditions the part may be tested under. Add numbers together to specify multiple environments
- 0 = nowhere
- 1 = the surface of; srf
- 2 = the ocean of; ocean
- 3 = the surface or ocean of; srf, ocean
- 4 = the atmosphere of; atmo
- 5 = the surface or atmosphere of; srf, atmo
- 6 = the ocean or atmosphere of; ocean, atmo
- 7 = the surface, ocean or atmosphere of; srf, ocean, atmo
- 8 = the space above; space
- 9 = the surface or space above; srf, space
- 10 = the ocean or space of; srf, ocean, space
- 11 = the surface, ocean or space of; srf, ocean, space
- 12 = the space or atmosphere of; atmo, space
- 13 = the surface, space or atmosphere of; srf, atmo, space
- 14 = the ocean, space, or atmosphere of; ocean, atmo, space
- 15 = anywhere; srf, ocean, atmo, space
|
useStaging |
|
specifies whether the part can be tested using the Staging Process
|
useEvent |
|
specifies whether the part can be tested using the "Perform Test" action.
|
situationMask |
|
A binary mask for defining the situation.
- SrfLanded = 1,
- SrfSplashed = 2,
- FlyingLow = 4,
- FlyingHigh = 8,
- InSpaceLow = 16,
- InSpaceHigh = 32
- Hidden Flag (not sure what this does, but several engine cfgs have a 7th flag tripped, value equaling 127) = 64
|
CONSTRAINT |
{
type = REPEATABILITY
value = ALWAYS
prestige = Trivial
}
{
type = ALTITUDEENV
test = LT
value = 1000
situationMask = 8
prestige = Trivial
}
|
Constraints define different attributes of a test.
type - The type of constraint. Can have values such as :
- SPEED
- SPEEDENV
- ALTITUDE
- ALTITUDEENV
- DENSITY
- DYNAMICPRESSURE
- OXYGEN
- ATMOSPHERE
- SITUATION
- REPEATABILITY
test - An optional parameter. Relevant when type isn't set to 'REPEATABILITY'. Can have values such as:
value - Defines whether or not this test can be repeated. Can have values such as:
- ALWAYS
- BODYANDSITUATION
- ONCEPERPART
prestige - Defines the prestige level for the test. Can have values such as:
- Trivial
- Significant
- Exceptional
body - Defines what celestial body can be used for the test . Can have values such as:
- _NotHome (disables every flag but Kerbin)
- _NotSun (unclear what this does, but might disable every celestial body but Kerbol?)
situationMask - Overrides the situationMask value for this constraint only:
- SrfLanded = 1,
- SrfSplashed = 2,
- FlyingLow = 4,
- FlyingHigh = 8,
- InSpaceLow = 16,
- InSpaceHigh = 32
|
|
MODULE
{
name = ModuleTestSubject
useStaging = True
useEvent = True
situationMask = 60
CONSTRAINT
{
// disable all but home
type = SITUATION
value = 0
body = _NotHome
prestige = Trivial
}
CONSTRAINT
{
// disable all but home
type = SITUATION
value = 0
body = _NotHome
prestige = Significant
}
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 = 0
situationMask = 8
prestige = Significant
}
CONSTRAINT
{
type = SPEED
test = LT
value = 900
situationMask = 8
prestige = Significant
}
CONSTRAINT
{
type = SPEED
test = GT
value = 300
situationMask = 8
prestige = Exceptional
}
CONSTRAINT
{
type = SPEED
test = LT
value = 1200
situationMask = 8
prestige = Exceptional
}
CONSTRAINT
{
type = SPEEDENV
test = LT
value = 200
prestige = Trivial
}
}
|
ModuleWheel
The better version of landingGear, with lots more options for the operation of wheels, including adding power, steering, and damage information.
variable |
example |
definition
|
hasMotor |
|
specifies whether the wheel has a powered propulsion system
|
resourceName |
|
specifies the resource(s) used by powered propulsion system
|
resourceConsumptionRate |
|
specifies the rate of consumption of resources for the powered propulsion system in units/second
|
canSteer |
|
specifies whether this wheel is steerable
|
controlAxisType |
|
If steerable, specifies the axis type
|
steeringModeType |
|
uncertain: may refer to rack-and-pinion versus Track-type steering
|
brakeTorque |
|
the dV (in m/s) of torque applied when using the breaks
|
brakeSpeed |
|
the dV (in m/s) that braking will slow the vehicle under optimum conditions
|
impactTolerance |
|
dV that this part can withstand before breaking
|
overSpeedDamage |
|
uncertain. possibly reserved for future use, possible that this is the amount of dV of damage applied to this part whenever it exceeds it's rated speed
|
WHEEL |
{} |
|
wheelName |
|
Internal name of the wheel
|
wheelColliderName |
|
Internal name of the collider mesh for the wheel
|
suspensionTransformName |
|
Animation for suspension usage
|
suspensionNeutralPointName |
|
Animation for the neutral point of the suspension
|
damagedObjectName |
|
If you break it, you bought, and this is what you'll call it
|
rotateX |
|
|
rotateY |
|
|
rotateZ |
|
|
steeringCurve |
{} |
keys, 0 16
10 9
30 2
|
torqueCurve |
{} |
keys
0 250 0 0
20 100 0 0
30 14 0 0
34 0 0 0
|
|
MODULE
{
name = ModuleWheel
hasMotor = true
resourceName = ElectricCharge
resourceConsumptionRate = 0.5
canSteer = true
controlAxisType = Forward
steeringModeType = AutomaticSteer
brakeTorque = 180
brakeSpeed = 1.0
impactTolerance = 65
overSpeedDamage = 20
WHEEL
{
wheelName = wheel
wheelColliderName = wheelCollider
suspensionTransformName = suspensionTraverse
suspensionNeutralPointName = suspensionNeutralPoint
damagedObjectName = bustedwheel
rotateX = 0
rotateY = 1
rotateZ = 0
}
steeringCurve
{
key = 0 18
key = 15 6
}
torqueCurve
{
key = 0 170 0 0
key = 2.5 100 0 0
key = 12 0 0 0
}
}
|
MultiModeEngine
Specifies that this part is an engine with multiple modes. Added in [0.90], it allows for engines that use different types of resources and provides different flight characteristics depending on which mode it is operating in. This module defines the different modes and passes them to moduleEnginesFX.
variable |
example |
definition
|
primaryEngineID |
|
this is passed to ModuleEnginesFX to determine the properties for this mode
|
secondaryEngineID |
|
this is passed to ModuleEnginesFX to determine the properties for this mode
|
|
MODULE
{
name = MultiModeEngine
primaryEngineID = AirBreathing
secondaryEngineID = ClosedCycle
}
|
RetractableLadder
Just like the name implies, this module is attached to parts that are or contain a retractable or collapsible ladder.
variable |
example |
definition
|
ladderAnimationRootName |
- TelusBay
- Telescopic ladder
|
name of the beginning animation for this module
|
ladderColliderName |
|
name of the collider mesh for this module
|
ladderRetractAnimationName |
|
name of the retraction animation for this module
|
|
MODULE
{
name = RetractableLadder
ladderAnimationRootName = TelusBay
ladderColliderName = ladderCollider
ladderRetractAnimationName = Retract
}
|
|
Defining a module is a task in and of itself and one that I'm sure has already been covered in other places. Many modules defined by mods are duplicating effects that could be created with stock modules, but for one reason or another, the mod owner has decided to create their own modules (possibly for degree of control, possibly because the stock module didn't quite do everything they needed). In any event, I've looked at some of the Mod modules, and detailed them below. By mod, they are:
Kerbal Assembly System is most noted for adding the option to grab and move parts using Kerbals. It also allows for storage of certain parts in containers.
|
|
KASModuleContainer
Specifies that this part can serve as a container for other parts, and how much storage space the part has. Also included is an interaction distance. Kerbals must be this close or closer to open the container. Lots of sounds.
variable |
example |
definition
|
maxSize |
|
specifies the size of the container relative to Kerbal Attachment System parts.
|
maxOpenDistance |
|
Kerbals must be at least this close (in meters) in order to open the container
|
sndStorePath |
|
sound stuff
|
sndOpenPath |
|
sound stuff for opening the container
|
sndClosePath |
- KAS/Sounds/containerClose
|
sound stuff for closing the container
|
bipWrongSndPath |
|
sound stuff
|
|
MODULE
{
name = KASModuleContainer
maxSize = 80
}
|
ModuleConnectedLivingSpace
variable |
example |
definition
|
passable |
|
specifies whether Kerbals can commute to parts connected to this part
|
passableWhenSurfaceAttached |
|
can be passed through even when connected to the ground?
|
|
MODULE
{
name = ModuleConnectedLivingSpace
passable = true
passableWhenSurfaceAttached = true
}
|
KASModuleGrab
variable |
example |
definition
|
evaPartPos |
- (0.0, 0.40, -0.40)
- (0.0, 0.0, -0.15)
|
three dimensional array, offset for carrying
|
evaPartDir |
|
three dimensional array for orientation
|
storable |
|
specifies whether the part can be stored
|
storedSize |
|
specifies whether the part can be stored
|
attachOnPart |
|
uncertain
|
attachOnEva |
|
unsure
|
attachOnStatic |
|
unsure
|
customGroundPos |
|
unsure
|
attachNodeName |
|
unsure
|
dropPartPos |
|
unsure
|
dropPartRot |
|
unsure
|
bayType |
|
unsure
|
bayNode |
|
unsure
|
bayRot |
|
something to do with rotation
|
attachSendMsgOnly |
|
unknown
|
|
MODULE
{
name = KASModuleGrab
evaPartPos = (0.0, 0.40, -0.40)
evaPartDir = (0,0,-1)
storable = true
storedSize = 20
attachOnPart = true
attachOnEva = true
bayType = hookBay
bayNode = top
bayRot = (0.0, 0.0, 0.0)
}
|
KASModulePartBay
variable |
example |
definition
|
BAY |
{} |
attachNode |
|
attachment placement
|
type |
- containerA
- container
- hookBay
|
|
|
|
MODULE
{
name = KASModulePartBay
BAY
{
attachNode = top
type = containerA
type = containerB
}
}
|
KASModulePort
variable |
example |
definition
|
attachNode |
|
unsure
|
nodeType |
|
unknown
|
breakForce |
|
unknown
|
nodeTransformName |
|
unknown
|
|
MODULE
{
name = KASModulePort
attachNode = top
nodeType = kasplug
breakForce = 30
nodeTransformName = plugNode
}
|
KASModuleAnchor
variable |
example |
definition
This module will set a custom drag value when the part touch the ground.
|
groundDrag |
|
Drag value of the anchor when it touch the ground
|
bounciness |
|
Bounciness of the anchor
|
dynamicFriction |
|
Dynamic friction of the anchor when it touch the ground
|
staticFriction |
|
Static friction of the anchor when it touch the ground
|
|
MODULE
{
name = KASModuleAnchor
groundDrag = 500
bounciness = 0
dynamicFriction = 0.8
staticFriction = 0.8
}
|
KASModuleMagnet
This module will make the part acting like a magnet, collided part will be automatically attached. Only work when attached on a winch.
variable |
example |
definition
|
breakForce |
|
The force that needs to be applied on the magnet joint to break.
|
attachToEva |
|
Disable/enable attraction of eva
|
minFwdDot |
|
Minimum magnet alignement needed to attach (1 is perfectly aligned)
|
powerDrain |
|
Power consumption when the magnet is used
|
|
MODULE
{
name = KASModuleMagnet
breakForce = 10
attachToEva = False
minFwdDot = 0.998
powerDrain = 4
}
|
KASModuleStrut
variable |
example |
definition
|
nodeTransform |
|
unknown
|
type |
|
Unkown
|
maxLength |
|
unknown
|
maxAngle |
|
unknown
|
breakForce |
|
unknown
|
allowDock |
|
unknown
|
allowPumpFuel |
|
unknown
|
hasCollider |
|
unknown
|
tubeScale |
|
unknown
|
jointScale |
|
unknown
|
textureTiling |
|
unknown
|
tubeSrcType |
|
Unknown
|
tubeTgtType |
|
unknown
|
evaStrutPos |
|
unknown
|
evaStrutRot |
|
unknown
|
tubeTexPath |
|
unknown
|
|
MODULE
{
name = KASModuleStrut
nodeTransform = pipeNode
type = PipeSize1
maxLenght = 20
maxAngle = 100
breakForce = 10
allowDock = true
allowPumpFuel = true
hasCollider = false
tubeScale = 0.15
jointScale = 0.15
textureTiling = 1
tubeSrcType = Joined
tubeTgtType = Joined
evaStrutPos = (0.05, 0.059, -0.21)
evaStrutRot = (190.0, 0.0, 0.0)
tubeTexPath = KAS/Textures/pipe
}
|
KASModuleGrapplingHook
This module will make the part acting like a grappling-hook, any collided part in front of the grapple will be automatically attached if the inpact is strong enough. Only work when attached on a winch.
variable |
example |
definition
|
partBreakForce |
|
The force that needs to be applied on the grapple/part joint to break.
|
staticBreakForce |
|
The force that needs to be applied on the grapple/static joint to break.
|
aboveDist |
|
Distance from the attach point to the center of the part
|
forceNeeded |
|
Collision force needed to attach the grapple.
|
attachToPart |
|
Disable/enable attachment on parts.
|
rayDir |
|
Direction of the attach raycast. Attachment will be done only with objects in that direction.
|
rayLenght |
|
Attach ray lenght.
|
|
MODULE
{
name = KASModuleGrapplingHook
partBreakForce = 6
staticBreakForce = 15
aboveDist = 0.05
forceNeeded = 4
attachToPart = true
rayDir = (0,-1,0)
rayLenght = 0.8
}
|
KASModuleWinch
variable |
example |
definition
|
maxLenght |
|
unknown
|
cableSpring |
|
|
cableDamper |
|
|
cableWidth |
|
|
motorMaxSpeed |
|
|
motorAcceleration |
|
|
powerDrain |
|
|
headTransformName |
|
|
headPortNodeName |
|
|
connectedPortNodeName |
|
|
anchorNodeName |
|
|
evaGrabHeadPos |
|
|
evaGrabHeadDir |
|
|
evaDropHeadPos |
|
|
evaDropHeadRot |
|
|
ejectEnabled |
|
|
ejectForce |
|
|
lockMinDist |
|
|
lockMinFwdDot |
|
|
|
MODULE
{
name = KASModuleWinch
maxLenght = 50
cableSpring = 1000
cableDamper = 0.1
cableWidth = 0.04
motorMaxSpeed = 2
motorAcceleration = 0.05
powerDrain = 0.5
headTransformName = head
headPortNodeName = portNode
connectedPortNodeName = bottom
anchorNodeName = anchorNode
evaGrabHeadPos = (0.05, 0.01, -0.11)
evaGrabHeadDir = (0,0,1)
evaDropHeadPos = (0.05, 0.01, -0.16)
evaDropHeadRot = (180.0, 0.0, 0.0)
ejectEnabled = true
ejectForce = 20
lockMinDist = 0.12
lockMinFwdDot = 0.90
}
|
Universal Storage. By the by: Excellently documented!
USI is widely known for building an entire add-on family of interconnected and cross-supported parts and extensions. Here we detail mods added by the ExpPack.