Difference between revisions of "User:Joshuadery"

From Kerbal Space Program Wiki
Jump to: navigation, search
m
 
(47 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Modules define what specific parts can doThey are generally calls to C-coded or hard-coded functions that define what functionality these parts have in-game.   
+
{{TOC|align=right}}
 +
== MODULES FROM MODS ==
 +
Defining a module is a task in and of itself and one that I'm sure has already been covered in other placesMany 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 belowBy mod, they are:
  
{|class="wikitable"
+
=== Kerbal Assembly System ===
|-
+
Kerbal Assembly System is most noted for adding the option to grab and move parts using KerbalsIt also allows for storage of certain parts in containers.
| name ||names define the module in use and are a general indication of what the module subtype doesSpecific 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.
 
|}
 
  
== STOCK MODULES ==
+
MODULE:NEEDS[KAS]
 +
for the module
  
{|  
+
{|
! explanation !! code examples
+
! !!
 
|-
 
|-
|
+
|  
=== FlagDecal ===
 
 
{|class="wikitable"
 
{|class="wikitable"
 +
==== 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
 
! variable !! example !! definition
 
|-
 
|-
| textureQuadName
+
| maxSize ||  
||  
+
* 5
* flagTransform 
+
* 20
|| specifies whether there is a flag displayed on the exterior surface of the object.
+
* 80
|}
+
|| specifies the size of the container relative to Kerbal Attachment System parts.
||
+
|-
 
+
| maxOpenDistance ||  
 +
* 1
 +
* 5
 +
|| Kerbals must be at least this close (in meters) in order to open the container
 
|-
 
|-
 
+
| sndStorePath || 
|
+
* KAS/Sounds/hookBayStore
=== FXModuleAnimateThrottle ===
+
|| sound stuff
{|class="wikitable"
 
! variable !! example !! definition
 
 
|-
 
|-
 +
| sndOpenPath || 
 +
* KAS/Sounds/containerOpen
 +
|| sound stuff for opening the container 
 
|-
 
|-
| animationName ||
+
| sndClosePath ||  
colorAnimation
+
* KAS/Sounds/containerClose
|| specifies the animation to be used
+
|| sound stuff for closing the container
 
|-
 
|-
| depondOnEngineState ||  
+
| bipWrongSndPath ||  
* True
+
* KAS/Sounds/bipwrong
* False
+
|| sound stuff
|| specifies whether the animation is dependent on the throttle
 
 
|-
 
|-
| responseSpeed || 
 
* 0.5
 
|| specifies the rate at which the animation reacts to the change in engine state
 
 
|}
 
|}
 +
||
 +
<pre>MODULE
 +
{
 +
name = KASModuleContainer
 +
maxSize = 80
 +
}
 +
</pre>
 +
|-
  
||
 
|-
 
 
|
 
|
=== FXModuleConstrainPosition ===
 
 
{|class="wikitable"
 
{|class="wikitable"
 +
==== ModuleConnectedLivingSpace ====
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
|-
+
| passable ||
| matchRotation ||
 
 
* true
 
* true
 
* false
 
* false
|| unknown 
+
|| specifies whether Kerbals can commute to parts connected to this part
 
|-
 
|-
| matchPosition ||
+
| passableWhenSurfaceAttached ||
 
* true
 
* true
 
* false
 
* false
|| unknown
+
|| can be passed through even when connected to the ground?
 
|-
 
|-
| CONSTRAINFX ||  || unknown
 
|-
 
| targetName ||
 
* Steering
 
* steering
 
|| unknown
 
|-
 
| moversName ||
 
* wheelCollider
 
* steering
 
|| unknown
 
 
|}
 
|}
  
||  
+
||
 
<pre>
 
<pre>
 
MODULE
 
MODULE
 
 
{
 
{
name = FXModuleConstrainPosition
+
name = ModuleConnectedLivingSpace
matchRotation = true
+
passable = true
matchPosition = false
+
passableWhenSurfaceAttached = true
CONSTRAINFX
 
{
 
targetName = steering
 
moversName = lateral
 
}
 
 
 
 
}
 
}
 
</pre>
 
</pre>
 
 
|-
 
|-
 
|
 
|
=== FXModuleLockAtConstraint ===
+
{|class="wikitable"
{|class="wikitable"  
+
==== KASModuleGrab ====
This might be an error on my part.
 
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
|}
+
| evaPartPos ||
||
+
* (0.0, 0.40, -0.40)
 +
* (0.0, 0.0, -0.15)
 +
|| three dimensional array, offset for carrying
 +
|-
 +
| evaPartDir ||
 +
* (0,0,-1)
 +
|| three dimensional array for orientation
 
|-
 
|-
|
+
| storable ||
=== FXModuleLookAtConstraint ===
+
* true
{|class="wikitable"
+
* false
! variable !! example !! definition
+
|| specifies whether the part can be stored
 
|-
 
|-
 +
| storedSize ||
 +
* 20
 +
* 14
 +
|| specifies whether the part can be stored
 
|-
 
|-
| CONSTRAINLOOKFX ||   ||  
+
| attachOnPart ||
 +
* true
 +
* false
 +
|| uncertain
 
|-
 
|-
| targetName || ||  
+
| attachOnEva ||
 +
* true
 +
* false
 +
|| unsure
 
|-
 
|-
| rotatorsName || ||  
+
| attachOnStatic ||
|}
+
* True
 
+
* False
||
+
|| unsure
 
|-
 
|-
|
+
| customGroundPos ||
=== KerbalSeat ===
+
* True
{|class="wikitable"
+
* False
! variable !! example !! definition
+
|| unsure
 
|-
 
|-
| seatPivotName || seatPivot  || Unknown
+
| attachNodeName ||
 +
* bottom
 +
|| unsure
 
|-
 
|-
| ejectDirection || 0,1,0.2 ||  specifies the direction from which your Kerbal will exit the vehicle. Try to line up with a hatch!
+
| dropPartPos ||
|}
+
* (0.0, -0.2, -0.7)
 
+
|| unsure
||
 
 
|-
 
|-
|
+
| dropPartRot ||
 
+
* (-10.0, 0.0, 0.0)
=== LaunchClamp ===
+
|| unsure
{|class="wikitable"
 
! variable !! example !! definition
 
 
|-
 
|-
| trf_towerPivot_name || obj_girdercap  ||  
+
| bayType ||
 +
* hookbay
 +
|| unsure
 
|-
 
|-
| trf_towerStretch_name || obj_girder  ||  
+
| bayNode ||
 +
* top
 +
|| unsure
 
|-
 
|-
| trf_anchor_name || obj_ground  ||  
+
| bayRot ||
 +
* (0.0., 0.0, 0.0)
 +
|| something to do with rotation
 
|-
 
|-
| trf_animationRoot_name || launchclamp  ||  
+
| attachSendMsgOnly ||
 +
* true
 +
* false
 +
|| unknown
 
|-
 
|-
| anim_decouple_name || launchclamp  || 
 
 
|}
 
|}
  
 
||
 
||
 +
<pre>
 +
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)
 +
}
 +
</pre>
 
|-
 
|-
 
|
 
|
 +
{|class="wikitable"
  
=== ModuleAlternator ===
+
==== KASModulePartBay ====
Specifies that this part produced a resource, based on the percentage of thrust produced by the engine.
+
! variable !! example !! definition
 
 
{|class="wikitable"
 
|-
 
! variable !! example  
 
 
|-
 
|-
| RESOURCE ||
+
| BAY || {} ||  
 
{|class="wikitable"
 
{|class="wikitable"
 
|-
 
|-
! variable !! example !! definition
+
| attachNode ||
|
+
* top
| name || ElectricCharge || name of the resource produced
+
* bottom
 +
|| attachment placement
 
|-
 
|-
| rate || 1.0 || rate at which the resource is produced at 100% thrust, expressed in units/second
+
| type ||
|}
+
* containerA
|}
+
* container
 
+
* hookBay
 
||
 
||
 
|-
 
|-
|
+
|}
 
 
=== ModuleAnchoredDecoupler ===
 
{|class="wikitable"
 
! variable !! example !! definition
 
|-
 
| anchorName || anchor  || specifies the name of the anchored part
 
|-
 
| ejectionForce || 450 || dV applied to part upon separation
 
|-
 
| explosiveNodeID ||  ||  specifies the location of the explosion.
 
 
|-
 
|-
| srf ||  ||  surface of the attachment
 
 
|}
 
|}
  
 
||
 
||
 +
<pre>
 +
MODULE
 +
{
 +
name = KASModulePartBay
 +
BAY
 +
{
 +
  attachNode = top
 +
  type = containerA
 +
  type = containerB
 +
}
 +
}
 +
</pre>
 
|-
 
|-
 
|
 
|
 +
{|class="wikitable"
  
=== ModuleAnimateGeneric ===
+
==== KASModulePort ====
{|class="wikitable"
 
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
| animationName ||  
+
| attachNode ||
* Deploy
+
* top
* CrewCabinLight
+
|| unsure
* dish
 
* dockingring
 
* dockingporthull
 
||
 
 
|-
 
|-
| isOneShot ||  
+
| nodeType ||
* false
+
* kasplug
|| specifies whether the animation can occur only once
+
|| unknown
 
|-
 
|-
| startEventGUIName || Flavor text  ||  
+
| breakForce ||  
to describe turning the animation to its 'On' State
+
* 30
 +
|| unknown
 
|-
 
|-
| endEventGUIName || Flavor text  || 
+
| nodeTransformName ||
to describe turning the animation to its 'Off' State
+
* plugNode
|-
+
|| unknown
| actionGUIName || Flavor text  ||  
 
to describe switching the animation between it's 'on' and 'off' states
 
 
|-
 
|-
| allowManualControl ||
 
* '''true'''
 
* false
 
|| 
 
 
|}
 
|}
  
 
||
 
||
 +
<pre>
 +
MODULE
 +
{
 +
name = KASModulePort
 +
attachNode = top
 +
nodeType = kasplug
 +
breakForce = 30
 +
nodeTransformName = plugNode
 +
}
 +
 +
</pre>
 
|-
 
|-
 
|
 
|
 +
{|class="wikitable"
  
=== ModuleAnimateHeat ===
+
==== KASModuleAnchor ====
{|class="wikitable"
 
 
! variable !! example !! definition
 
! variable !! example !! definition
 +
This module will set a custom drag value when the part touch the ground.
 
|-
 
|-
 +
| groundDrag ||
 +
* 500
 +
|| Drag value of the anchor when it touch the ground
 
|-
 
|-
| ThermalAnim ||
+
| bounciness ||
* HeatAnimationEmissiveLiquidEngine3
 
* HeatAnimationEmissiveTurbofan
 
* HeatAnimationEmissiveJet
 
* overheat
 
|| animation for applying heat to an object
 
|}
 
 
 
||
 
|-
 
|
 
 
 
=== ModuleAsteroid ===
 
no procedures or calls
 
 
 
||
 
|-
 
|
 
 
 
=== ModuleCommand ===
 
Applies Command to vessels
 
{|class="wikitable"
 
! variable !! example !! definition
 
|-
 
| minimumCrew ||  
 
 
* 0
 
* 0
* 1
+
|| Bounciness of the anchor
* 2
 
|| Specifies the minimum number of crew needed to operate this module. 
 
 
|-
 
|-
| RESOURCE ||
+
| dynamicFriction ||
{|class="wikitable"
+
* 0.8
 +
|| Dynamic friction of the anchor when it touch the ground
 
|-
 
|-
| name || ElectricCharge  || This is the name of that resource
+
| staticFriction ||
 +
* 0.8
 +
|| Static friction of the anchor when it touch the ground
 
|-
 
|-
| rate || 15.0 || and the rate in units/second of resource consumed
 
|}
 
|| If this Module requires a resource
 
 
|}
 
|}
  
 
||
 
||
 +
<pre>
 +
MODULE
 +
{
 +
name = KASModuleAnchor
 +
groundDrag = 500
 +
bounciness = 0
 +
dynamicFriction = 0.8
 +
staticFriction = 0.8
 +
}
 +
 +
</pre>
 
|-
 
|-
 
|
 
|
 +
{|class="wikitable"
  
=== ModuleControlSurface ===
+
==== KASModuleMagnet ====
{|class="wikitable"
+
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
 
! variable !! example !! definition
 
|-
 
|-
 +
| breakForce ||
 +
* 10
 +
|| The force that needs to be applied on the magnet joint to break.
 
|-
 
|-
| dragCoeff ||   ||  
+
| attachToEva ||
this value overrides the maximum_drag value
+
* true
0.5 (advanced Canard)
+
* false
 +
|| Disable/enable attraction of eva
 
|-
 
|-
| deflectionLiftCoeff ||   || 
+
| minFwdDot ||
0.7 (advanced Canard)
+
* 0.998
 +
|| Minimum magnet alignement needed to attach (1 is perfectly aligned)
 
|-
 
|-
| ctrlSurfaceRange ||   ||  
+
| powerDrain ||
20 (advanced Canard)
+
* 4
 +
|| Power consumption when the magnet is used
 
|-
 
|-
| ctrlSurfaceArea ||  || 
 
0.95 (advanced Canard)
 
 
|}
 
|}
  
 
||
 
||
 +
<pre>
 +
MODULE
 +
{
 +
name = KASModuleMagnet
 +
breakForce = 10
 +
attachToEva = False
 +
minFwdDot = 0.998
 +
powerDrain = 4
 +
}
 +
 +
</pre>
 
|-
 
|-
 
|
 
|
 +
{|class="wikitable"
  
=== ModuleDataTransmitter ===
+
==== KASModuleStrut ====
{|class="wikitable"
 
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
| packetInterval || 0.18, 0.4, 0.3  ||  
+
| nodeTransform ||
 +
* pipeNode
 +
* strutNode
 +
|| unknown
 
|-
 
|-
| packetSize || 2, 2, 2  ||  
+
| type ||
 +
* PipeSize1
 +
* StrutSize1
 +
|| Unkown
 
|-
 
|-
| packetResourceCost || 20, 10, 12.5  ||  
+
| maxLength ||
 +
* 20
 +
* 8
 +
|| unknown
 
|-
 
|-
| requiredResource || ElectricCharge  ||  
+
| maxAngle ||
 +
* 100
 +
|| unknown
 
|-
 
|-
| DeployFxModules || ||  
+
| breakForce ||
 +
* 10
 +
|| unknown
 
|-
 
|-
| ProgressFxModules || 1  || 
+
| allowDock ||
|}
+
* true
 
+
* false
||
+
|| unknown
 
|-
 
|-
|
+
| allowPumpFuel ||
 
+
* true
=== ModuleDecouple ===
+
* false
{|class="wikitable"
+
|| unknown
! variable !! sample !! definition
 
 
|-
 
|-
| isOmniDecoupler ||  
+
| hasCollider ||
 
* true
 
* true
* '''false''' 
+
* false
|| Specifies whether this decoupler separates on both ends or not.  Defaults to false.
+
|| unknown
 
|-
 
|-
| ejectionForce || 100 || specifies the DeltaV with which the part separates
+
| tubeScale ||
 +
* 0.15
 +
|| unknown
 
|-
 
|-
| explosiveNodeID ||  
+
| jointScale ||
* top
+
* 0.15
* srf 
+
|| unknown
|| for non-OmniDecouplers, specifics the Node of separation
 
|}
 
 
 
||
 
 
|-
 
|-
|
+
| textureTiling ||
 
+
* 1
=== ModuleDeployableSolarPanel ===
+
* 4
{|class="wikitable"
+
|| unknown
! variable !! example !! definition
 
 
|-
 
|-
| animationName ||   || 
+
| tubeSrcType ||
unknown for sure.  Assumed to refer to an animation describing part transformation from its closed state to its open state.  known parameters are:
+
* Joined
* solarpanels
+
* Rounded
* solarpanels2
+
|| Unknown
* solarpanels4
 
* altsolarpanelbase
 
* bigsolarpanel
 
 
 
 
|-
 
|-
| sunTracking ||   ||  
+
| tubeTgtType ||
Boolean argument.  unknown purpose.  Assumed to indicate whether the animation will turn the panel towards the sun.
+
* Joined
 +
* Rounded
 +
|| unknown
 
|-
 
|-
| raycastTransformName ||   || 
+
| evaStrutPos ||
optional. unknown. Known arguments:
+
* (0.05, 0.059, -0.21)
* suncatcher
+
|| unknown
 
 
 
|-
 
|-
| pivotName ||   || 
+
| evaStrutRot ||
optional. unknown. Known arguments:
+
* (190.0, 0.0, 0.0)
* suncatcher
+
|| unknown
 
 
 
|-
 
|-
| isBreakable ||   ||  
+
| tubeTexPath ||
optional.  unknown purpose, assumed to indicate whether the part will break on high-dynamic stress.  true or false
+
* KAS/Textures/pipe
 
+
|| unknown
 
|-
 
|-
| 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
 
 
|}
 
|}
  
 +
||
 +
<pre>
 +
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
 +
}
  
||
+
</pre>
 
|-
 
|-
 
|
 
|
 +
{|class="wikitable"
  
=== ModuleDockingNode ===
+
==== KASModuleGrapplingHook ====
A module for docking ports
+
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.
{|class="wikitable"
 
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
| referenceAttachNode ||  
+
| partBreakForce ||
* top
+
* 6
* bottom 
+
|| The force that needs to be applied on the grapple/part joint to break.
||  
+
|-
Specifies the node on the part that is used for the docking port, generally top or bottom
+
| staticBreakForce ||
 +
* 15
 +
|| The force that needs to be applied on the grapple/static joint to break.
 +
|-
 +
| aboveDist ||
 +
* 0.05
 +
|| Distance from the attach point to the center of the part
 +
|-
 +
| forceNeeded ||
 +
* 4
 +
|| Collision force needed to attach the grapple.
 +
|-
 +
| attachToPart ||
 +
* true
 +
* false
 +
|| Disable/enable attachment on parts.
 
|-
 
|-
| deployAnimationController ||
+
| rayDir  ||
* 1
+
* (0,-1,0)
* 0
+
|| Direction of the attach raycast. Attachment will be done only with objects in that direction.
|| Boolean
 
 
|-
 
|-
| nodeType ||  
+
| rayLenght ||
* size1
+
* 0.8
* size2
+
|| Attach ray lenght.
* size0
 
|| 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.
 
 
|-
 
|-
| controlTransformName ||
 
* controlNode
 
|| apparently only used for docking nodes that have related animations, see dockingPortInline
 
 
|}
 
|}
  
 
||
 
||
 +
<pre>
 +
MODULE
 +
{
 +
name = KASModuleGrapplingHook
 +
partBreakForce = 6
 +
staticBreakForce = 15
 +
aboveDist = 0.05
 +
forceNeeded = 4
 +
attachToPart = true
 +
rayDir = (0,-1,0)
 +
rayLenght = 0.8
 +
}
 +
 +
</pre>
 
|-
 
|-
 
|
 
|
 +
{|class="wikitable"
  
=== ModuleEngines ===
+
==== KASModuleWinch ====
{|class="wikitable"
 
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
| thrustVectorTransformName ||  
+
| maxLenght ||
* thrustTransform 
+
* 50
|| unknown purpose.  Known arguments:
+
* 80
 +
|| unknown
 
|-
 
|-
| throttleLocked ||  
+
| cableSpring ||
* True
+
* 1000
* '''False''' 
+
||  
|| Used to create engines without controllable thrust.
 
 
|-
 
|-
| exhaustDamage ||  
+
| cableDamper ||
* True
+
* 0.1
* False 
+
||  
|| assumed to indicate whether the exhaust from this engine will damage other parts.
 
 
|-
 
|-
| ignitionThreshold ||  
+
| cableWidth ||
* 0.
+
* 0.04
|| appears to not be used.  Suggests a minimum thrust output value, below which the engine will no longer operate.
+
||  
 
|-
 
|-
| minThrust ||  
+
| motorMaxSpeed ||
* 0
+
* 2
* 10
+
||  
* 100
 
|| Minimum thrust value.  Engines will be considered 'off' at or below this value.
 
 
|-
 
|-
| maxThrust ||  
+
| motorAcceleration ||
* 200
+
* 0.05
* 215
+
||  
* 80
 
|| 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 ||  
+
| powerDrain ||
*400
+
* 0.5
*900
+
* 0.3
|| a measure of the amount of heat energy produced per second.  measured in degrees Kerbius (degrees Celsius)
+
||  
 
|-
 
|-
| fxOffset ||  
+
| headTransformName ||
* 0,0,0
+
* head
* 0,0,1
+
||  
|| 3-dimensional vector coordinates specifying the location of thrust effects
 
 
|-
 
|-
| useEngineResponseTime ||  
+
| headPortNodeName ||
* True
+
* portNode
* False 
 
 
||  
 
||  
 
|-
 
|-
| engineAccelerationSpeed ||  
+
| connectedPortNodeName ||
* 0.2
+
* bottom
* 0.12
+
* front
||
+
||  
 
|-
 
|-
| engineDecelerationSpeed ||  
+
| anchorNodeName ||
* 0.35
+
* anchorNode
* 0.21
+
||  
||  
 
 
|-
 
|-
| allowShutdown ||  
+
| evaGrabHeadPos ||
* '''True'''
+
* (0.05, 0.01, -0.11)
* False 
+
||  
|| Specifies engines that cannot be turned off, regardless of whether their thrust can be controlled.
 
 
|-
 
|-
| useVelocityCurve ||  
+
| evaGrabHeadDir ||
* True
+
* (0,0,1)
* False 
+
||  
||  
 
 
|-
 
|-
| PROPELLANT || {}
+
| evaDropHeadPos ||
|| resource utilized in the operation of this part, generally a fuel or other propellant. Engines may use multiple propellant types.
+
* (0.05, 0.01, -0.16)
 +
||
 
|-
 
|-
| name ||
+
| evaDropHeadRot ||
* LiquidFuel
+
* (180.0, 0.0, 0.0)
* Oxidizer
+
||  
|| name of the resource consumed while this part is in operation
 
 
|-
 
|-
| ratio ||  
+
| ejectEnabled ||
* 0.9
+
* true
* 1.1
+
* false
|| rate at which this resource is consumed, per second.  Not to be confused with ratio relative to other propellants.
+
||  
 
|-
 
|-
| DrawGauge ||  
+
| ejectForce ||
* true
+
* 20
* '''false'''
+
||  
|| 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
+
| lockMinDist ||
 +
* 0.12
 +
||  
 
|-
 
|-
| key || ||  
+
| lockMinFwdDot ||
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).
+
* 0.90
Translates directly to ISP.  In order to make a more efficient engine, set the second number of this array higher. 
+
||
 
|-
 
|-
| velocityCurve ||  || 
 
uncertain as to how exactly this works, but appears to control the degree of acceleration at particular velocities.  uses a 4 part key, the first part of the key is definitely specific accelerations, the second part is percentage of velocities.
 
<nowiki>
 
{
 
  key = 0 0.5 0 0
 
  key = 1000 1 0 0
 
  key = 2000 0.5 0 0
 
  key = 2400 0 0 0
 
}
 
</nowiki>
 
<nowiki>
 
{
 
  key = 1000 0 0 0
 
  key = 850 0.2 0 0
 
  key = 0 1 0 0
 
}
 
</nowiki>
 
 
|}
 
|}
  
||  
+
||
 
<pre>
 
<pre>
 
MODULE
 
MODULE
{
+
{
name = ModuleEngines
+
name = KASModuleWinch
thrustVectorTransform
+
maxLenght = 50
Name = thrustTransform
+
cableSpring = 1000
throttleLocked = True
+
cableDamper = 0.1
exhaustDamage = True
+
cableWidth = 0.04
allowShutdown = False
+
motorMaxSpeed = 2
ignitionThreshold = 0.1
+
motorAcceleration = 0.05
minThrust = 0
+
powerDrain = 0.5
maxThrust = 18
+
headTransformName = head
heatProduction = 550
+
headPortNodeName = portNode
fxOffset = 0, 0, 0.02
+
connectedPortNodeName = bottom
PROPELLANT
+
anchorNodeName = anchorNode
{
+
evaGrabHeadPos = (0.05, 0.01, -0.11)
name = SolidFuel       
+
evaGrabHeadDir = (0,0,1)
ratio = 1.0
+
evaDropHeadPos = (0.05, 0.01, -0.16)
DrawGauge = True
+
evaDropHeadRot = (180.0, 0.0, 0.0)
}
+
ejectEnabled = true
atmosphereCurve
+
ejectForce = 20
+
lockMinDist = 0.12
key = 0 100 
+
lockMinFwdDot = 0.90
key = 1 100
 
}
 
 
}
 
}
 +
 
</pre>
 
</pre>
 
|-
 
|-
|
+
|}
=== ModuleEnginesFX ===
+
 
 +
 
 +
 
 +
=== Universal Storage ===
 +
Universal Storage.  By the by:  Excellently documented!
 +
 
 +
{|
 +
! !!
 +
|-
 +
|
 
{|class="wikitable"
 
{|class="wikitable"
 +
==== ModuleAnimator ====
 +
Animation module.
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
 +
| animationName || 
 +
* Take 001
 +
|| Name of the animation from the model.
 
|-
 
|-
| engineID ||   ||  
+
| guiEnableName ||  
<nowiki>LES, KS25</nowiki>
+
* Wedge Locks Off
 +
|| Part tooltip name to display for deployment
 
|-
 
|-
| runningEffectName ||  ||  
+
| guiDisableName ||   
<nowiki> running_closed </nowiki>
+
* Wedge Locks Off
 +
|| Part tooltip name to display for retraction
 
|-
 
|-
| thrustVectorTransformName ||  ||  
+
| actionEnableName ||   
unknown purpose. Known arguments:
+
* Wedge Locks Off
* thrustTransform
+
|| Action group name for deployment  
* obj_gimbal
 
 
|-
 
|-
| exhaustDamage ||   ||  
+
| actionDisableName ||  
True or False.  assumed to indicate whether the exhaust from this engine will damage other parts.
+
* Wedge Locks On
 +
|| Action group name for retraction
 
|-
 
|-
| throttleLocked ||  ||  
+
| animationSpeed ||   
uncertain.  Boolean values of True or False.  Assumed to specify that solid Rocket Boosters cannot have their throttle adjusted while in flight.
+
* 100000
 +
|| Speed of the animation
 
|-
 
|-
| ignitionThreshold ||  ||  
+
| oneShot ||   
appears to not be used.  Suggests a minimum thrust output value, below which the engine will no longer operate.  Typical values are 0.1 (10%)
+
* true
 +
* false
 +
|| If the animation can only be played once
 
|-
 
|-
| minThrust ||  ||  
+
| activeEditor ||   
Minimum thrust value.  Engines will be considered 'off' at or below this value.
+
* true
 +
* false
 +
|| If the part toolitp is visible in the editor
 
|-
 
|-
| maxThrust ||  ||  
+
| activeFlight ||   
Just like the name implies, this is the maximum thrust a single unit of this module can produce.
+
* true
 +
* false
 +
|| If the part tooltip is visible in flight
 
|-
 
|-
| heatProduction ||  ||  
+
| activeUnfocused ||   
a measure of the amount of heat energy produced per second.  measured in degrees Kerbius (degrees Celsius)
+
* true
 +
* false
 +
|| If the part tooltip is visible from EVA
 
|-
 
|-
| fxOffset ||  || 
+
| unfocusedRange ||   
3-dimensional vector coordinates specifying the location of thrust effects
+
* 5
|-
+
|| EVA visible range
| PROPELLANT ||  || 
 
resource utilized in the operation of this part, generally a fuel or other propellant.
 
 
|-
 
|-
| 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).
 
 
|}
 
|}
 
+
||
=== ModuleEnviroSensor ===
+
<pre>
{|class="wikitable"
+
MODULE
! variable !! example !! definition
+
{
|-
+
  name = ModuleAnimator
 +
  animationName = Take 001
 +
  guiEnableName = Wedge Locks Off
 +
  guiDisableName = Wedge Locks On
 +
  actionEnableName = Wedge Locks Off
 +
  actionDisableName = Wedge Locks On
 +
 
 +
  animationSpeed = 100000
 +
  oneShot = false
 +
  activeEditor = true
 +
  activeFlight = false
 +
  activeUnfocused = false
 +
  unfocusedRange = 5
 +
}
 +
</pre>
 
|-
 
|-
| sensorType ||  || 
 
* ACC
 
* PRES
 
* GRAV
 
* TEMP
 
|}
 
  
=== ModuleGenerator ===
+
|
 
{|class="wikitable"
 
{|class="wikitable"
 +
==== REGO_ModuleResourceConverter ====
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
 +
| ConverterName ||
 +
* Water Electrolizer
 +
|| Flavor Text
 
|-
 
|-
| isAlwaysActive ||   ||  
+
| StartActioName ||
specifies whether this module is always active or not.  true/false
+
* Start Water Electrolizer
 +
|| Flavor Text
 
|-
 
|-
| OUTPUT_RESOURCE ||   ||  
+
| StopActioName ||
 +
* Stop Water Electrolizer
 +
|| Flavor Text
 
|-
 
|-
| name || ||  
+
| RecipeInputs ||
specifies the name of the produced resource. 
+
* ElectricCharge, 14, Water, 0.0000176697
 +
||  
 
|-
 
|-
| rate || ||  
+
| RecipeOutputs ||
specifies the rate of resource produced, expressed in units per second.
+
* Hydrogen, 0.0219907427, True, Oxygen, 0.0109953713, False
|}
+
||  
 
 
=== ModuleGimbal ===
 
{|class="wikitable"
 
! variable !! example !! definition
 
 
|-
 
|-
| gimbalTransformName ||  || 
 
thrustTransform
 
|-
 
| 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.
 
 
|}
 
|}
  
=== ModuleGrappleNode ===
 
{|class="wikitable"
 
! variable !! sample !! definition
 
|-
 
| nodeTransformName || 
 
* ArticulatedCap
 
 
||
 
||
|-
+
<pre>
| deployAnimationController ||
+
MODULE
*1
+
{
||    
+
   name = REGO_ModuleResourceConverter
|-
+
  ConverterName = Water Electrolizer
| nodeType ||
+
  StartActionName = Start Water Electrolizer
*size1
+
  StopActionName = Stop Water Electrolizer
||    
+
   RecipeInputs = ElectricCharge, 14, Water, 0.0000176697
|-
+
   RecipeOutputs = Hydrogen, 0.0219907427, True, Oxygen, 0.0109953713, False
| captureRange ||
+
}
* 0.05
+
</pre>
||    
 
|-
 
| captureMinFwdDot ||
 
* 0.866
 
|| 
 
|-
 
| captureMaxRvel ||
 
* 1
 
|| 
 
 
|-
 
|-
 
|}
 
|}
  
=== ModuleJettison ===
+
=== Umbra Space Industries: ExpPack ===
 +
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.
 +
 
 +
{|
 +
! !!
 +
|-
 +
|
 
{|class="wikitable"
 
{|class="wikitable"
|-
+
==== USI_ClearIVA ====
! variable !! example !! definition
+
No calls.
|-
 
|specifies that pieces of this craft are able to be jettisoned, what they are and how to jettison them
 
|-
 
| jettisonName ||  || 
 
node_fairing_collider
 
fairingL
 
fairingR
 
fairing
 
|-
 
| bottomNodeName ||  || 
 
bottom
 
|-
 
| isFairing ||  || 
 
Boolean.  True or False
 
|-
 
| jettisonedObjectMass ||  || 
 
0.1, 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.
 
 
|}
 
|}
 
+
||
=== ModuleLandingGear ===
+
<pre>
{|class="wikitable"
+
MODULE
! variable !! example !! definition
+
{
 +
name = USI_ClearIVA
 +
}
 +
</pre>
 
|-
 
|-
|-
+
|
| BrakeTorque || 12  || Amount of torque applied during breaking
 
|-
 
| BrakeSpeed || 3 || Reduction in speed over time, expressed in m/s
 
|}
 
 
 
=== ModuleLandingLeg ===
 
 
{|class="wikitable"
 
{|class="wikitable"
 +
==== ModuleConnectedLivingSpace ====
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
|-
+
| passable ||
| animationName || 
 
* Deploy
 
* newlandingleg
 
* probeleg
 
|| specifies the animation to use
 
|-
 
| wheelColliderName || wheelCollider  || 
 
|-
 
| suspensionTransformName ||
 
* Piston
 
* piston
 
* leg
 
||
 
|-
 
| orientFootToGround ||  
 
 
* true
 
* true
 
* false
 
* false
||  
+
|| specifies whether Kerbals can commute to parts connected to this part
|-
 
| landingFootName ||
 
* foot
 
|| 
 
 
|-
 
|-
| alignFootUp ||  
+
| passableWhenSurfaceAttached ||
 
* true
 
* true
 
* false
 
* false
|| Aligns to up Axis instead of forward axis if true
+
|| can be passed through even when connected to the ground?
|-
 
| suspensionUpperLimit ||
 
* 0.60
 
* 0.47
 
* 0.65
 
|| unknown 
 
|-
 
| impactTolerance ||
 
* 300
 
* 450
 
* 150 
 
|| specifies the dV in m/s before the part breaks 
 
|-
 
| suspensionSpring ||
 
* 1.25
 
* 5
 
* 1 
 
|| specifies the maximum degree of compression in the part
 
|-
 
| suspensionDamper ||
 
* 1
 
* 2 
 
|| Uncertain
 
 
|-
 
|-
| suspensionOffset ||
 
* 0
 
* 0.02 
 
|| Uncertain
 
 
|}
 
|}
  
=== ModuleLiftingSurface ===
+
||
{|class="wikitable"
+
<pre>
! variable !! example !! definition
+
MODULE
 +
{
 +
name = ModuleConnectedLivingSpace
 +
passable = true
 +
passableWhenSurfaceAttached = true
 +
}
 +
</pre>
 
|-
 
|-
| deflectionLiftCoeff ||  || 
+
|
0.3 (BSLmk2ScienceFuselage)
 
|-
 
| dragAtMaxAoA ||  || 
 
0.15 (BSLmk2ScienceFuselage)
 
|-
 
| dragAtMinAoA ||  || 
 
0.1 (BSLmk2ScienceFuselage)
 
|}
 
 
 
=== ModuleLight ===
 
 
{|class="wikitable"
 
{|class="wikitable"
 +
==== KASModuleGrab ====
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
| lightName ||   ||  
+
| evaPartPos ||
spotlight
+
* (0.0, 0.40, -0.40)
landinglight
+
* (0.0, 0.0, -0.15)
 +
|| three dimensional array, offset for carrying
 
|-
 
|-
| useAnimationDim ||   ||  
+
| evaPartDir ||
true or false
+
* (0,0,-1)
 +
|| three dimensional array for orientation
 
|-
 
|-
| lightBrightenSpeed ||   ||  
+
| storable ||
2.5
+
* true
 +
* false
 +
|| specifies whether the part can be stored
 
|-
 
|-
| lightDimSpeed ||   ||  
+
| storedSize ||
2.5
+
* 20
 +
* 14
 +
|| specifies whether the part can be stored
 
|-
 
|-
| resourceAmount ||   ||  
+
| attachOnPart ||
0.4
+
* true
 +
* false
 +
|| uncertain
 
|-
 
|-
| animationName ||   ||  
+
| attachOnEva ||
LightAnimation
+
* true
 +
* false
 +
|| unsure
 
|-
 
|-
| useResources ||   ||  
+
| attachOnStatic ||
true or false
+
* True
 +
* False
 +
|| unsure
 
|-
 
|-
| useAutoDim ||   || 
+
| customGroundPos ||
true or false
+
* True
|}
+
* False
 
+
|| unsure
=== ModuleParachute ===
 
{|class="wikitable"
 
 
|-
 
|-
! variable !! example !! definition !! in use
+
| attachNodeName ||
 +
* bottom
 +
|| unsure
 
|-
 
|-
| semiDeployedAnimation ||  
+
| dropPartPos ||
* semiDeploySmall 
+
* (0.0, -0.2, -0.7)
||  specifies the animation to use in the semi-deployed state
+
|| unsure
|| <pre>semiDeployedAnimation = semiDeploySmall</pre>
 
 
|-
 
|-
| fullyDeployedAnimation ||  
+
| dropPartRot ||
* fullyDeploySmall 
+
* (-10.0, 0.0, 0.0)
|| specifies the animation to use in the fully deployed state
+
|| unsure
|| <pre>fullyDeployedAnimation = fullyDeploySmall</pre>
 
 
|-
 
|-
| invertCanopy ||
+
| bayType ||
* '''true'''
+
* hookbay
* false
+
|| unsure
|| unknown purpose.
 
|| <pre>invertCanopy = true</pre>
 
 
|-
 
|-
| autoCutSpeed || 0.5  || specifies the speed at which the parachute will be automatically cut, rendering it ineffective.
+
| bayNode ||
|| <pre>autoCutSpeed = 0.5</pre>
+
* top
 +
|| unsure
 
|-
 
|-
| capName ||  
+
| bayRot ||
* cap 
+
* (0.0., 0.0, 0.0)
||  
+
|| something to do with rotation
|| <pre>capName = cap</pre>
 
 
|-
 
|-
| canopyName ||  
+
| attachSendMsgOnly ||
* canopy 
+
* true
|| 
+
* false
|| <pre> canopyName = canopy </pre>
+
|| unknown
|-
 
| stowedDrag || 0.22 || specifies the drag effect while the parachute is still stowed
 
|| <pre>stowedDrag = 0.22</pre>
 
|-
 
| semiDeployedDrag || 1  || specifies the drag effect while the parachute is in its semi-deployed state
 
|| <pre>semiDeployedDrag = 1</pre>
 
|-
 
| fullyDeployedDrag || 500  || specifies the drag effect while the parachute is in its fully deployed state
 
|| <pre>fullyDeployedDrag = 500</pre>
 
|-
 
| minAirPressureToOpen || 0.01  || specifies the minimum Air pressure (or atmosphere) required for the parachute to enter its semi-deployed state
 
|| <pre>minAirPressureToOpen = 0.01</pre>
 
|-
 
| deployAltitude || 500  || configurable, sets the altitude above the planetary collision mesh at which the parachute will enter its fully deployed state
 
|| <pre>deployAltitude = 500</pre>
 
|-
 
| deploymentSpeed ||  1 || specifies the speed at which the parachute will enter its fully deployed state
 
|| <pre>deploymentSpeed = 1</pre>
 
|-
 
| semiDeploymentSpeed || 1  || specifies the speed at which the parachute will enter its semi-deployed state
 
|| <pre>semiDeploymentSpeed = 1</pre>
 
 
|-
 
|-
 
|}
 
|}
  
=== ModuleRCS ===
+
||
 +
<pre>
 +
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)
 +
}
 +
</pre>
 +
|-
 +
|
 
{|class="wikitable"
 
{|class="wikitable"
|-
+
 
 +
==== KASModulePartBay ====
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
|Note:  ModuleRCS can use either a single resource, or a series of PROPELLANT calls. 
+
| BAY || {} ||
 +
{|class="wikitable"
 
|-
 
|-
| thrusterTransformName ||   ||  
+
| attachNode ||
RCSthruster
+
* top
 +
* bottom
 +
|| attachment placement
 
|-
 
|-
| thrusterPower ||   ||  
+
| type ||
This is the power that the RCS thrusters provide.  To make stronger RCS, use a higher numer
+
* containerA
 +
* container
 +
* hookBay
 +
||
 
|-
 
|-
| resourceName -------- interchangeable with PROPELLANT calls ||  || 
+
|}
The name of the resource used by the RCS thruster, typically MonoPropellant
 
|-
 
| resourceFlowMode -- for resourceName only --||  || 
 
Specifies the manner in which the resource is requested from the vessel
 
* STAGE_PRIORITY_FLOW
 
* STACK_PRIORITY_FLOW
 
* ALL_VESSEL
 
* NONE
 
|-
 
| 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 || ||
 
name of the resource consumed
 
 
|-
 
|-
| ratio || ||
 
ratio of the resource consumed
 
|-
 
| resourceFlowMode || ||
 
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)
 
 
|}
 
|}
  
=== ModuleReactionWheel ===
+
||
 +
<pre>
 +
MODULE
 +
{
 +
name = KASModulePartBay
 +
BAY
 +
{
 +
  attachNode = top
 +
  type = containerA
 +
  type = containerB
 +
}
 +
}
 +
</pre>
 +
|-
 +
|
 
{|class="wikitable"
 
{|class="wikitable"
 +
 +
==== KASModulePort ====
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
 +
| attachNode ||
 +
* top
 +
|| unsure
 
|-
 
|-
| PitchTorque ||   ||  
+
| nodeType ||
numerical value, denotes amount of change can be applied to pitch using reaction wheel power
+
* kasplug
 +
|| unknown
 
|-
 
|-
| YawTorque ||   ||  
+
| breakForce ||  
numerical value, denotes amount of change can be applied to yaw using reaction wheel power
+
* 30
 +
|| unknown
 
|-
 
|-
| RollTorque ||   || 
+
| nodeTransformName ||
numerical value, denotes amount of change can be applied to roll using reaction wheel power
+
* plugNode
|-
+
|| unknown
| 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.
 
 
|}
 
|}
  
=== ModuleResourceIntake ===
+
||
 +
<pre>
 +
MODULE
 +
{
 +
name = KASModulePort
 +
attachNode = top
 +
nodeType = kasplug
 +
breakForce = 30
 +
nodeTransformName = plugNode
 +
}
 +
 
 +
</pre>
 +
|-
 +
|
 
{|class="wikitable"
 
{|class="wikitable"
|-
+
 
 +
==== KASModuleAnchor ====
 
! variable !! example !! definition
 
! variable !! example !! definition
 +
This module will set a custom drag value when the part touch the ground.
 
|-
 
|-
|used to create a part that produces a resource.
+
| groundDrag ||
 +
* 500
 +
|| Drag value of the anchor when it touch the ground
 
|-
 
|-
| resourceName ||   ||  
+
| bounciness ||
defines the type of resource produced by this module.  Any resource may be used for this purpose, including those not defined at all
+
* 0
 +
|| Bounciness of the anchor
 
|-
 
|-
| checkForOxygen ||   ||  
+
| dynamicFriction ||
An optional method that specifies this module must check to see if oxygen/atmosphere is present whenever attempting to generate the requested resource.  true/false
+
* 0.8
 +
|| Dynamic friction of the anchor when it touch the ground
 
|-
 
|-
| area ||   ||  
+
| staticFriction ||
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.
+
* 0.8
 +
|| Static friction of the anchor when it touch the ground
 
|-
 
|-
| intakeSpeed ||  || 
 
unknown.  Assumed to be a minimum m/s measure to determine if this module operates or not.
 
|-
 
| intakeTransformName ||  || 
 
unknown.  known arguments are:
 
* Intake
 
 
|}
 
|}
  
=== ModuleSAS ===
+
||
no known parameters. Possibly used a reference to determine whether this part is activated by the SAS function of the interfaceie. when you turn on SAS, turn on this part.
+
<pre>
 +
MODULE
 +
{
 +
name = KASModuleAnchor
 +
groundDrag = 500
 +
bounciness = 0
 +
  dynamicFriction = 0.8
 +
  staticFriction = 0.8
 +
}
  
=== ModuleScienceContainer ===
+
</pre>
 +
|-
 +
|
 
{|class="wikitable"
 
{|class="wikitable"
 +
 +
==== 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
 
! variable !! example !! definition
 
|-
 
|-
 +
| breakForce ||
 +
* 10
 +
|| The force that needs to be applied on the magnet joint to break.
 
|-
 
|-
| reviewActionName ||   || 
+
| attachToEva ||
Flavor text for reviewing the data contained in a science container.
+
* true
|-
+
* false
| storeActionName ||  || 
+
|| Disable/enable attraction of eva
Flavor text for placing data into a science container.
 
|-
 
| collectActionName ||  || 
 
Flavor text for removing data from a science container.
 
 
 
 
|-
 
|-
| evaOnlyStorage ||   ||  
+
| minFwdDot ||
Boolean, True or False
+
* 0.998
Specifies whether or not data storage is restricted to EVA activities.
+
|| Minimum magnet alignement needed to attach (1 is perfectly aligned)
 
|-
 
|-
| storageRange ||   ||  
+
| powerDrain ||
Distance, expressed in meters, a Kerbal must be within in order to interact with data and this container.
+
* 4
 +
|| Power consumption when the magnet is used
 
|-
 
|-
| allowRepeatedSubjects ||  || 
 
Boolean, True or False
 
 
|}
 
|}
  
=== ModuleScienceExperiment ===
+
||
 +
<pre>
 +
MODULE
 +
{
 +
name = KASModuleMagnet
 +
breakForce = 10
 +
attachToEva = False
 +
minFwdDot = 0.998
 +
powerDrain = 4
 +
}
 +
 
 +
</pre>
 +
|-
 +
|
 
{|class="wikitable"
 
{|class="wikitable"
 +
 +
==== KASModuleStrut ====
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
| experimentID ||   || 
+
| nodeTransform ||
* atmosphereAnalysis
+
* pipeNode
* mysteryGoo
+
* strutNode
* crewReport
+
|| unknown
* seismicScan
 
* barometerScan
 
 
|-
 
|-
| experimentActionName ||   ||  
+
| type ||
Flavor text for contextual menu to describe to the player what the part does when collecting data
+
* PipeSize1
 +
* StrutSize1
 +
|| Unkown
 
|-
 
|-
| resetActionName ||   ||  
+
| maxLength ||
Flavor text for contextual menu to describe to the player what the part does when collecting data
+
* 20
 +
* 8
 +
|| unknown
 
|-
 
|-
| reviewActionName ||   ||  
+
| maxAngle ||
Flavor text for contextual menu to describe to the player what the part does when collecting data
+
* 100
 +
|| unknown
 
|-
 
|-
| useStaging ||   ||  
+
| breakForce ||
Boolean True/False - speficies whether this module can be activated through the normal staging system
+
* 10
 +
|| unknown
 
|-
 
|-
| useActionGroups ||   ||  
+
| allowDock ||
Boolean True/False - specifies whether this module can be activated by an Action Group
+
* true
 +
* false
 +
|| unknown
 
|-
 
|-
| hideUIwhenUnavailable ||   ||  
+
| allowPumpFuel ||
Boolean True/False - specifies whether this module will show its activation buttons through the contextual menu, even if it is not available
+
* true
 +
* false
 +
|| unknown
 
|-
 
|-
| rerunnable ||   ||  
+
| hasCollider ||
Boolean True/False.  Defaults to false.
+
* true
 +
* false
 +
|| unknown
 
|-
 
|-
| xmitDataScalar ||   || 
+
| tubeScale ||
0.35
+
* 0.15
 +
|| unknown
 
|-
 
|-
| FxModules ||   ||  
+
| jointScale ||
0 (gooExperiment)
+
* 0.15
 +
|| unknown
 
|-
 
|-
| dataIsCollectable ||   ||  
+
| textureTiling ||
Boolean True/False
+
* 1
 +
* 4
 +
|| unknown
 
|-
 
|-
| collectActionName ||   ||  
+
| tubeSrcType ||
Flavor text
+
* Joined
 +
* Rounded
 +
|| Unknown
 
|-
 
|-
| interactionRange ||   || 
+
| tubeTgtType ||
The range, expressed in meters, from which a Kerbal on EVA can interact with this module (for example to reset the experiment)
+
* Joined
|}
+
* Rounded
 
+
|| unknown
=== ModuleScienceLab ===
 
{|class="wikitable"
 
! variable !! example !! definition
 
 
|-
 
|-
 +
| evaStrutPos ||
 +
* (0.05, 0.059, -0.21)
 +
|| unknown
 
|-
 
|-
| containerModuleIndex ||   || 
+
| evaStrutRot ||
numerical, 0
+
* (190.0, 0.0, 0.0)
 +
|| unknown
 
|-
 
|-
| dataTransmissionBoost ||   ||  
+
| tubeTexPath ||
numerical, 1.5
+
* KAS/Textures/pipe
 +
|| unknown
 
|-
 
|-
| 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
 
 
|}
 
|}
  
=== ModuleSteering ===
+
||
 +
<pre>
 +
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
 +
}
 +
 
 +
</pre>
 +
|-
 +
|
 
{|class="wikitable"
 
{|class="wikitable"
 +
 +
==== 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
 
! variable !! example !! definition
 
|-
 
|-
 +
| partBreakForce ||
 +
* 6
 +
|| The force that needs to be applied on the grapple/part joint to break.
 
|-
 
|-
| controlAxisType || Forward  || Unsure. May have something to do with directional control
+
| staticBreakForce ||
 +
* 15
 +
|| The force that needs to be applied on the grapple/static joint to break.
 
|-
 
|-
| steeringAxis ||  
+
| aboveDist ||
* 0, 0, 1 
+
* 0.05
|| specifies the 3-dimensional axis of steering control. 
+
|| Distance from the attach point to the center of the part
 
|-
 
|-
| steeringTransformName || Steering  || unknown
+
| forceNeeded ||
 +
* 4
 +
|| Collision force needed to attach the grapple.
 
|-
 
|-
| steeringLocked ||  
+
| attachToPart ||
 
* true
 
* true
 
* false
 
* false
|| specifies whether the part's steering starts locked
+
|| Disable/enable attachment on parts.
 
|-
 
|-
| steeringCurve ||  
+
| rayDir  ||
{|
+
* (0,-1,0)
|  
+
|| Direction of the attach raycast. Attachment will be done only with objects in that direction.
 
|-
 
|-
| 0 || 16
+
| rayLenght ||
 +
* 0.8
 +
|| Attach ray lenght.
 
|-
 
|-
| 10 || 9
 
|-
 
| 30 || 2
 
|-
 
| 100 || 1
 
|}
 
|| multi-array of keys,
 
 
|}
 
|}
  
 
||
 
||
|-
 
|
 
 
=== 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.
 
{|class="wikitable"
 
|-
 
! variable !! example !! definition
 
|-
 
|
 
|-
 
| environments ||
 
* 15
 
* 1
 
|| 
 
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 ||
 
* True
 
* False
 
|| specifies whether the part can be tested using the Staging Process
 
|-
 
| useEvent ||
 
* True
 
* False
 
|| specifies whether the part can be tested using the "Perform Test" action.
 
|}
 
 
||
 
 
<pre>
 
<pre>
 
MODULE
 
MODULE
{
+
{
name = ModuleTestSubject
+
name = KASModuleGrapplingHook
// nowhere: 0, srf: 1, ocean: 2, atmo: 4, space: 8
+
partBreakForce = 6
environments = 15
+
staticBreakForce = 15
useStaging = False
+
aboveDist = 0.05
useEvent = True
+
forceNeeded = 4
 +
attachToPart = true
 +
rayDir = (0,-1,0)
 +
rayLenght = 0.8
 
}
 
}
 +
 
</pre>
 
</pre>
 
|-
 
|-
 
|
 
|
 +
{|class="wikitable"
  
=== ModuleWheel ===
+
==== KASModuleWinch ====
{|class="wikitable"
 
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
| hasMotor ||  
+
| maxLenght ||
* true
+
* 50
* false
+
* 80
|| specifies whether the wheel has a powered propulsion system 
+
|| unknown
 
|-
 
|-
| resourceName ||
+
| cableSpring ||
* ElectricCharge
+
* 1000
|| specifies the resource(s) used by powered propulsion system
+
||  
 
|-
 
|-
| resourceConsumptionRate ||  
+
| cableDamper ||
* 1.0
+
* 0.1
|| specifies the rate of consumption of resources for the powered propulsion system in units/second
+
||  
 
|-
 
|-
| canSteer ||  
+
| cableWidth ||
* true
+
* 0.04
* false
+
||  
|| specifies whether this wheel is steerable
 
 
|-
 
|-
| controlAxisType ||  
+
| motorMaxSpeed ||
* Forward
+
* 2
|| If steerable, specifies the axis type
+
||  
 
|-
 
|-
| steeringModeType ||  
+
| motorAcceleration ||
* AutomaticSteer
+
* 0.05
* TankSteer
+
||  
|| 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 
+
| powerDrain ||
 +
* 0.5
 +
* 0.3
 +
||  
 
|-
 
|-
| brakeSpeed || 1.2 || the dV (in m/s) that braking will slow the vehicle under optimum conditions
+
| headTransformName ||
 +
* head
 +
||  
 
|-
 
|-
| impactTolerance || 2000  || dV that this part can withstand before breaking 
+
| headPortNodeName ||
 +
* portNode
 +
||  
 
|-
 
|-
| 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
+
| connectedPortNodeName ||
 +
* bottom
 +
* front
 +
||  
 
|-
 
|-
| WHEEL ||   ||  
+
| anchorNodeName ||
 +
* anchorNode
 +
||  
 
|-
 
|-
| wheelName || ||  
+
| evaGrabHeadPos ||
wheel
+
* (0.05, 0.01, -0.11)
 +
||  
 
|-
 
|-
| wheelColliderName || ||  
+
| evaGrabHeadDir ||
wheelCollider
+
* (0,0,1)
 +
||  
 
|-
 
|-
| suspensionTransformName || ||  
+
| evaDropHeadPos ||
suspensionTraverse
+
* (0.05, 0.01, -0.16)
 +
||  
 
|-
 
|-
| suspensionNeutralPointName || ||  
+
| evaDropHeadRot ||
suspensionNeutralPoint
+
* (180.0, 0.0, 0.0)
 +
||  
 
|-
 
|-
| damagedObjectName || ||  
+
| ejectEnabled ||
bustedwheel
+
* true
 +
* false
 +
||  
 
|-
 
|-
| rotateX || ||  
+
| ejectForce ||
0
+
* 20
 +
||  
 
|-
 
|-
| rotateY || ||  
+
| lockMinDist ||
1
+
* 0.12
 +
||  
 
|-
 
|-
| rotateZ || ||  
+
| lockMinFwdDot ||
0
+
* 0.90
 +
||  
 
|-
 
|-
| 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
 
 
 
|}
 
|}
  
||  
+
||
 
<pre>
 
<pre>
 
MODULE
 
MODULE
 
{
 
{
name = ModuleWheel
+
name = KASModuleWinch
hasMotor = true
+
maxLenght = 50
resourceName = ElectricCharge
+
cableSpring = 1000
        resourceConsumptionRate = 0.5
+
cableDamper = 0.1
canSteer = true
+
cableWidth = 0.04
controlAxisType = Forward
+
motorMaxSpeed = 2
steeringModeType = AutomaticSteer
+
motorAcceleration = 0.05
brakeTorque = 180
+
powerDrain = 0.5
brakeSpeed = 1.0
+
headTransformName = head
impactTolerance = 65
+
headPortNodeName = portNode
overSpeedDamage = 20
+
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
 +
}
  
WHEEL
+
</pre>
{
 
    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
 
}
 
 
 
 
 
}</pre>
 
|-
 
|
 
 
 
=== RetractableLadder ===
 
{|class="wikitable"
 
! variable !! example !! definition
 
|-
 
|-
 
| ladderAnimationRootName ||   
 
* TelusBay
 
* Telescopic ladder
 
|| name of the beginning animation for this module
 
|-
 
| ladderColliderName ||
 
* ladderCollider
 
|| name of the collider mesh for this module
 
|-
 
| ladderRetractAnimationName ||
 
* Retract
 
|| name of the retraction animation for this module
 
|}
 
 
 
== 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:
 
 
 
MODULE:NEEDS[KAS]
 
for the module
 
=== KASModuleContainer ===
 
{|class="wikitable"
 
! 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
 
 
|}
 
|}

Latest revision as of 23:44, 28 December 2014

MODULES FROM MODS

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

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.

MODULE:NEEDS[KAS] for the module

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
  • 5
  • 20
  • 80
specifies the size of the container relative to Kerbal Attachment System parts.
maxOpenDistance
  • 1
  • 5
Kerbals must be at least this close (in meters) in order to open the container
sndStorePath
  • KAS/Sounds/hookBayStore
sound stuff
sndOpenPath
  • KAS/Sounds/containerOpen
sound stuff for opening the container
sndClosePath
  • KAS/Sounds/containerClose
sound stuff for closing the container
bipWrongSndPath
  • KAS/Sounds/bipwrong
sound stuff
MODULE
{
 name = KASModuleContainer
 maxSize = 80
}

ModuleConnectedLivingSpace

variable example definition
passable
  • true
  • false
specifies whether Kerbals can commute to parts connected to this part
passableWhenSurfaceAttached
  • true
  • false
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
  • (0,0,-1)
three dimensional array for orientation
storable
  • true
  • false
specifies whether the part can be stored
storedSize
  • 20
  • 14
specifies whether the part can be stored
attachOnPart
  • true
  • false
uncertain
attachOnEva
  • true
  • false
unsure
attachOnStatic
  • True
  • False
unsure
customGroundPos
  • True
  • False
unsure
attachNodeName
  • bottom
unsure
dropPartPos
  • (0.0, -0.2, -0.7)
unsure
dropPartRot
  • (-10.0, 0.0, 0.0)
unsure
bayType
  • hookbay
unsure
bayNode
  • top
unsure
bayRot
  • (0.0., 0.0, 0.0)
something to do with rotation
attachSendMsgOnly
  • true
  • false
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
  • top
  • bottom
attachment placement
type
  • containerA
  • container
  • hookBay
MODULE
{
 name = KASModulePartBay
 BAY
 {
  attachNode = top
  type = containerA
  type = containerB
 }
}

KASModulePort

variable example definition
attachNode
  • top
unsure
nodeType
  • kasplug
unknown
breakForce
  • 30
unknown
nodeTransformName
  • plugNode
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
  • 500
Drag value of the anchor when it touch the ground
bounciness
  • 0
Bounciness of the anchor
dynamicFriction
  • 0.8
Dynamic friction of the anchor when it touch the ground
staticFriction
  • 0.8
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
  • 10
The force that needs to be applied on the magnet joint to break.
attachToEva
  • true
  • false
Disable/enable attraction of eva
minFwdDot
  • 0.998
Minimum magnet alignement needed to attach (1 is perfectly aligned)
powerDrain
  • 4
Power consumption when the magnet is used
MODULE
{
 name = KASModuleMagnet
 breakForce = 10
 attachToEva = False
 minFwdDot = 0.998
 powerDrain = 4
}

KASModuleStrut

variable example definition
nodeTransform
  • pipeNode
  • strutNode
unknown
type
  • PipeSize1
  • StrutSize1
Unkown
maxLength
  • 20
  • 8
unknown
maxAngle
  • 100
unknown
breakForce
  • 10
unknown
allowDock
  • true
  • false
unknown
allowPumpFuel
  • true
  • false
unknown
hasCollider
  • true
  • false
unknown
tubeScale
  • 0.15
unknown
jointScale
  • 0.15
unknown
textureTiling
  • 1
  • 4
unknown
tubeSrcType
  • Joined
  • Rounded
Unknown
tubeTgtType
  • Joined
  • Rounded
unknown
evaStrutPos
  • (0.05, 0.059, -0.21)
unknown
evaStrutRot
  • (190.0, 0.0, 0.0)
unknown
tubeTexPath
  • KAS/Textures/pipe
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
  • 6
The force that needs to be applied on the grapple/part joint to break.
staticBreakForce
  • 15
The force that needs to be applied on the grapple/static joint to break.
aboveDist
  • 0.05
Distance from the attach point to the center of the part
forceNeeded
  • 4
Collision force needed to attach the grapple.
attachToPart
  • true
  • false
Disable/enable attachment on parts.
rayDir
  • (0,-1,0)
Direction of the attach raycast. Attachment will be done only with objects in that direction.
rayLenght
  • 0.8
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
  • 50
  • 80
unknown
cableSpring
  • 1000
cableDamper
  • 0.1
cableWidth
  • 0.04
motorMaxSpeed
  • 2
motorAcceleration
  • 0.05
powerDrain
  • 0.5
  • 0.3
headTransformName
  • head
headPortNodeName
  • portNode
connectedPortNodeName
  • bottom
  • front
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
  • false
ejectForce
  • 20
lockMinDist
  • 0.12
lockMinFwdDot
  • 0.90
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

Universal Storage. By the by: Excellently documented!

ModuleAnimator

Animation module.

variable example definition
animationName
  • Take 001
Name of the animation from the model.
guiEnableName
  • Wedge Locks Off
Part tooltip name to display for deployment
guiDisableName
  • Wedge Locks Off
Part tooltip name to display for retraction
actionEnableName
  • Wedge Locks Off
Action group name for deployment
actionDisableName
  • Wedge Locks On
Action group name for retraction
animationSpeed
  • 100000
Speed of the animation
oneShot
  • true
  • false
If the animation can only be played once
activeEditor
  • true
  • false
If the part toolitp is visible in the editor
activeFlight
  • true
  • false
If the part tooltip is visible in flight
activeUnfocused
  • true
  • false
If the part tooltip is visible from EVA
unfocusedRange
  • 5
EVA visible range
 MODULE
 {
  name = ModuleAnimator
  animationName = Take 001
  guiEnableName = Wedge Locks Off
  guiDisableName = Wedge Locks On
  actionEnableName = Wedge Locks Off 
  actionDisableName = Wedge Locks On 
  
  animationSpeed = 100000
  oneShot = false
  activeEditor = true
  activeFlight = false
  activeUnfocused = false
  unfocusedRange = 5
 }

REGO_ModuleResourceConverter

variable example definition
ConverterName
  • Water Electrolizer
Flavor Text
StartActioName
  • Start Water Electrolizer
Flavor Text
StopActioName
  • Stop Water Electrolizer
Flavor Text
RecipeInputs
  • ElectricCharge, 14, Water, 0.0000176697
RecipeOutputs
  • Hydrogen, 0.0219907427, True, Oxygen, 0.0109953713, False
MODULE
{
  name = REGO_ModuleResourceConverter
  ConverterName = Water Electrolizer
  StartActionName = Start Water Electrolizer
  StopActionName = Stop Water Electrolizer
  RecipeInputs = ElectricCharge, 14, Water, 0.0000176697
  RecipeOutputs = Hydrogen, 0.0219907427, True, Oxygen, 0.0109953713, False
}

Umbra Space Industries: ExpPack

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.

USI_ClearIVA

No calls.

MODULE
{
 name = USI_ClearIVA
}

ModuleConnectedLivingSpace

variable example definition
passable
  • true
  • false
specifies whether Kerbals can commute to parts connected to this part
passableWhenSurfaceAttached
  • true
  • false
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
  • (0,0,-1)
three dimensional array for orientation
storable
  • true
  • false
specifies whether the part can be stored
storedSize
  • 20
  • 14
specifies whether the part can be stored
attachOnPart
  • true
  • false
uncertain
attachOnEva
  • true
  • false
unsure
attachOnStatic
  • True
  • False
unsure
customGroundPos
  • True
  • False
unsure
attachNodeName
  • bottom
unsure
dropPartPos
  • (0.0, -0.2, -0.7)
unsure
dropPartRot
  • (-10.0, 0.0, 0.0)
unsure
bayType
  • hookbay
unsure
bayNode
  • top
unsure
bayRot
  • (0.0., 0.0, 0.0)
something to do with rotation
attachSendMsgOnly
  • true
  • false
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
  • top
  • bottom
attachment placement
type
  • containerA
  • container
  • hookBay
MODULE
{
 name = KASModulePartBay
 BAY
 {
  attachNode = top
  type = containerA
  type = containerB
 }
}

KASModulePort

variable example definition
attachNode
  • top
unsure
nodeType
  • kasplug
unknown
breakForce
  • 30
unknown
nodeTransformName
  • plugNode
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
  • 500
Drag value of the anchor when it touch the ground
bounciness
  • 0
Bounciness of the anchor
dynamicFriction
  • 0.8
Dynamic friction of the anchor when it touch the ground
staticFriction
  • 0.8
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
  • 10
The force that needs to be applied on the magnet joint to break.
attachToEva
  • true
  • false
Disable/enable attraction of eva
minFwdDot
  • 0.998
Minimum magnet alignement needed to attach (1 is perfectly aligned)
powerDrain
  • 4
Power consumption when the magnet is used
MODULE
{
 name = KASModuleMagnet
 breakForce = 10
 attachToEva = False
 minFwdDot = 0.998
 powerDrain = 4
}

KASModuleStrut

variable example definition
nodeTransform
  • pipeNode
  • strutNode
unknown
type
  • PipeSize1
  • StrutSize1
Unkown
maxLength
  • 20
  • 8
unknown
maxAngle
  • 100
unknown
breakForce
  • 10
unknown
allowDock
  • true
  • false
unknown
allowPumpFuel
  • true
  • false
unknown
hasCollider
  • true
  • false
unknown
tubeScale
  • 0.15
unknown
jointScale
  • 0.15
unknown
textureTiling
  • 1
  • 4
unknown
tubeSrcType
  • Joined
  • Rounded
Unknown
tubeTgtType
  • Joined
  • Rounded
unknown
evaStrutPos
  • (0.05, 0.059, -0.21)
unknown
evaStrutRot
  • (190.0, 0.0, 0.0)
unknown
tubeTexPath
  • KAS/Textures/pipe
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
  • 6
The force that needs to be applied on the grapple/part joint to break.
staticBreakForce
  • 15
The force that needs to be applied on the grapple/static joint to break.
aboveDist
  • 0.05
Distance from the attach point to the center of the part
forceNeeded
  • 4
Collision force needed to attach the grapple.
attachToPart
  • true
  • false
Disable/enable attachment on parts.
rayDir
  • (0,-1,0)
Direction of the attach raycast. Attachment will be done only with objects in that direction.
rayLenght
  • 0.8
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
  • 50
  • 80
unknown
cableSpring
  • 1000
cableDamper
  • 0.1
cableWidth
  • 0.04
motorMaxSpeed
  • 2
motorAcceleration
  • 0.05
powerDrain
  • 0.5
  • 0.3
headTransformName
  • head
headPortNodeName
  • portNode
connectedPortNodeName
  • bottom
  • front
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
  • false
ejectForce
  • 20
lockMinDist
  • 0.12
lockMinFwdDot
  • 0.90
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
}