Module
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.
name | names define the module in use and are a general indication of what the module subtype does. Specific variables are associated with each [module].[name]. For example, the Clamp-O-Tron Docking Port Sr. has the MODULE.name ModuleDockingNode and its' associates variables are [referenceAttachNode] and [nodeType]. Some [MODULE]s share variables with other modules, which can make deciphering their purpose difficult. |
Contents
- 1 STOCK MODULES
- 1.1 FlagDecal
- 1.2 FXModuleAnimateThrottle
- 1.3 FXModuleConstrainPosition
- 1.4 FXModuleLookAtConstraint
- 1.5 KerbalSeat
- 1.6 LaunchClamp
- 1.7 ModuleAlternator
- 1.8 ModuleAnchoredDecoupler
- 1.9 ModuleAnimateGeneric
- 1.10 ModuleAnimateHeat
- 1.11 ModuleAsteroid
- 1.12 ModuleCommand
- 1.13 ModuleControlSurface
- 1.14 ModuleDataTransmitter
- 1.15 ModuleDecouple
- 1.16 ModuleDeployableSolarPanel
- 1.17 ModuleDockingNode
- 1.18 ModuleEngines
- 1.19 ModuleEnginesFX
- 1.20 ModuleEnviroSensor
- 1.21 ModuleGenerator
- 1.22 ModuleGimbal
- 1.23 ModuleGrappleNode
- 1.24 ModuleJettison
- 1.25 ModuleLandingGear
- 1.26 ModuleLandingLeg
- 1.27 ModuleLight
- 1.28 ModuleParachute
- 1.29 ModuleRCS
- 1.30 ModuleReactionWheel
- 1.31 ModuleResourceIntake
- 1.32 ModuleSAS
- 1.33 ModuleScienceContainer
- 1.34 ModuleScienceExperiment
- 1.35 ModuleScienceLab
- 1.36 ModuleSteering
- 1.37 ModuleTestSubject
- 1.38 ModuleWheel
- 1.39 RetractableLadder
- 2 MODULES POSSIBLY FROM MODS
STOCK MODULES
explanation | code examples | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
FlagDecal
|
MODULE { name = FlagDecal textureQuadName = flagTransform } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FXModuleAnimateThrottle
|
MODULE { name = FXModuleAnimateThrottle animationName = colorAnimation dependOnEngineState = True responseSpeed = 0.5 } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FXModuleConstrainPosition
|
MODULE { name = FXModuleConstrainPosition matchRotation = true matchPosition = false CONSTRAINFX { targetName = steering moversName = lateral } } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FXModuleLookAtConstraint
|
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
|
MODULE { name = KerbalSeat seatPivotName = seatPivot ejectDirection = 0, 1, 0.2 } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LaunchClamp
|
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 } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleAlternatorSpecifies that this part produced a resource, based on the percentage of thrust produced by the engine.
|
MODULE { name = ModuleAlternator RESOURCE { name = ElectricCharge rate = 5.0 } } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleAnchoredDecoupler
|
MODULE { name = ModuleAnchoredDecoupler anchorName = anchor ejectionForce = 450 explosiveNodeID = srf } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleAnimateGeneric
|
MODULE { name = ModuleAnimateGeneric animationName = dish isOneShot = false startEventGUIName = Extend endEventGUIName = Retract actionGUIName = Toggle Antenna } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleAnimateHeat
|
MODULE { name = ModuleAnimateHeat ThermalAnim = HeatAnimatioEmissiveLiquidEngine3 } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleAsteroidno procedures or calls |
MODULE { name = ModuleAsteroid } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleCommandApplies Command to vessels
|
MODULE { name = ModuleCommand minimumCrew = 1 } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleControlSurface
|
MODULE { name = ModuleControlSurface dragCoeff = 0.5 deflectionLiftCoeff = 0.7 ctrlSurfaceRange = 20 ctrlSurfaceArea = 0.95 } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleDataTransmitter
|
MODULE { name = ModuleDataTransmitter packetInterval = 0.18 packetSize = 2 packetResourceCost = 20.0 requiredResource = ElectricCharge DeployFxModules = 0 } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleDecouple
|
MODULE { name = ModuleDecouple ejectionForce = 250 explosiveNodeID = srf } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleDeployableSolarPanel
|
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 } } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleDockingNodeA module for docking ports
|
MODULE { name = ModuleDockingNode referenceAttachNode = top nodeType = size2 } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleEngines
|
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
|
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
|
MODULE { name = ModuleEnviroSensor sensorType = ACC } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleGenerator
|
MODULE { name = ModuleGenerator isAlwaysActive = true OUTPUT_RESOURCE { name = ElectricCharge rate = 0.75 } } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleGimbal
|
MODULE { name = ModuleGimbal gimbalTransformName = thrustTransform gimbalRange = 0.5 } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleGrappleNode
|
MODULE { name = ModuleGrappleNode nodeTransformName = ArticulatedCap deployAnimationController = 1 nodeType = size1 captureRange = 0.05 captureMinFwdDot = 0.866 captureMaxRvel = 1 } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleJettisonspecifies that pieces of this craft are able to be jettisoned, what they are and how to jettison them
|
MODULE { name = ModuleJettison jettisonName = fairing bottomNodeName = bottom isFairing = True jettisonedObjectMass = 0.1 jettisonForce = 5 jettisonDirection = 0 0 1 } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleLandingGear
|
MODULE { name = ModuleLandingGear BrakeTorque = 12 BrakeSpeed = 3 } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleLandingLeg
|
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
|
MODULE { name = ModuleLight lightName = spotlight useAnimationDim = true lightBrightenSpeed = 2.5 lightDimSpeed = 2.5 animationName = LightAnimation resourceAmount = 0.02 useResources = true } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleParachute
|
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 } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleRCSNote: ModuleRCS can use either a single resource, or a series of PROPELLANT calls.
|
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
|
MODULE { name = ModuleReactionWheel PitchTorque = 30 YawTorque = 30 RollTorque = 30 RESOURCE { name = ElectricCharge rate = 0.6 } } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleResourceIntakeUsed to create a part that produces a resource.
|
MODULE { name = ModuleResourceIntake resourceName = IntakeAir checkForOxygen = true area = 0.006 intakeSpeed = 10 intakeTransformName = Intake } |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleSASno known parameters. Possibly used 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)
|
MODULE { name = ModuleSAS SASServiceLevel = 1 } |
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 |
Boolean, True or False 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 |
Boolean, True or False |
MODULE { name = ModuleScienceContainer reviewActionName = Review Stored Data storeActionName = Store Experiments evaOnlyStorage = True storageRange = 4.0 }
ModuleScienceExperiment
variable | example | definition |
---|---|---|
experimentID |
| |
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 |
Boolean True/False - speficies whether this module can be activated through the normal staging system | |
useActionGroups |
Boolean True/False - specifies whether this module can be activated by an Action Group | |
hideUIwhenUnavailable |
Boolean True/False - specifies whether this module will show its activation buttons through the contextual menu, even if it is not available | |
rerunnable |
Boolean True/False. Defaults to false. | |
xmitDataScalar |
0.35 | |
FxModules |
0 (gooExperiment) | |
dataIsCollectable |
Boolean True/False | |
collectActionName |
Flavor text | |
interactionRange |
The range, expressed in meters, from which a Kerbal on EVA can interact with this module (for example to reset the experiment) |
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
variable | example | definition |
---|---|---|
containerModuleIndex |
numerical, 0 | |
dataTransmissionBoost |
numerical, 1.5 | |
crewsRequired |
numerical, 2 | |
canResetConnectedModules |
Boolean, True or False | |
canResetNearbyModules |
Boolean, True or False | |
interactRange |
numerical, possible integers only, 5 | |
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
variable | example | definition | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
controlAxisType | Forward | Unsure. May have something to do with directional control | |||||||||
steeringAxis |
|
specifies the 3-dimensional axis of steering control. | |||||||||
steeringTransformName | Steering | 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 |
|
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
|
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. |
MODULE { name = ModuleTestSubject // nowhere: 0, srf: 1, ocean: 2, atmo: 4, space: 8 environments = 15 useStaging = False useEvent = True }
ModuleWheel
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 | 300 | the dV (in m/s) of torque applied when using the breaks |
brakeSpeed | 1.2 | the dV (in m/s) that braking will slow the vehicle under optimum conditions |
impactTolerance | 2000 | dV that this part can withstand before breaking |
overSpeedDamage | 60 | 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 |
wheel | |
wheelColliderName |
wheelCollider | |
suspensionTransformName |
suspensionTraverse | |
suspensionNeutralPointName |
suspensionNeutralPoint | |
damagedObjectName |
bustedwheel | |
rotateX |
0 | |
rotateY |
1 | |
rotateZ |
0 | |
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 } }
RetractableLadder
variable | example | definition |
---|---|---|
ladderAnimationRootName |
|
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 }
MODULES POSSIBLY FROM MODS
defining a module has it's own problems, of course, and I'm no expert, but I did find this along the way:
ModuleLiftingSurface
variable | example | definition |
---|---|---|
deflectionLiftCoeff |
0.3 (BSLmk2ScienceFuselage) | |
dragAtMaxAoA |
0.15 (BSLmk2ScienceFuselage) | |
dragAtMinAoA |
0.1 (BSLmk2ScienceFuselage) |
MODULE:NEEDS[KAS] for the module
KASModuleContainer
variable | example | definition |
---|---|---|
maxSize |
specifies the size of the container relative to Kerbal Attachment System parts. | |
maxOpenDistance | ||
sndStorePath |
KAS/Sounds/hookBayStore | |
sndOpenPath |
KAS/Sounds/containerOpen | |
sndClosePath |
KAS/Sounds/containerClose | |
bipWrongSndPath |
KAS/Sounds/bipwrong |