Difference between revisions of "User:Joshuadery"

From Kerbal Space Program Wiki
Jump to: navigation, search
(ModuleConnectedLivingSpace)
 
(31 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
{{TOC|align=right}}
 
== MODULES FROM MODS ==
 
== 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:
 
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:
Line 118: Line 119:
 
* True
 
* True
 
* False
 
* 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
 
|| unsure
 
|-
 
|-
Line 165: Line 183:
 
{|class="wikitable"
 
{|class="wikitable"
 
|-
 
|-
| attachnode ||
+
| attachNode ||
 
* top
 
* top
 
* bottom  
 
* bottom  
Line 172: Line 190:
 
| type ||
 
| type ||
 
* containerA
 
* containerA
* containerB
+
* container
 +
* hookBay
 
||
 
||
 
|-
 
|-
Line 188: Line 207:
 
   attachNode = top
 
   attachNode = top
 
   type = containerA
 
   type = containerA
        type = containerB
+
  type = containerB
 
  }
 
  }
 
}
 
}
Line 310: Line 329:
 
{|class="wikitable"
 
{|class="wikitable"
  
==== ModuleConnectedLivingSpace ====
+
==== KASModuleStrut ====
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
| passable ||
+
| nodeTransform ||
 +
* pipeNode
 +
* strutNode
 +
|| unknown
 +
|-
 +
| type ||
 +
* PipeSize1
 +
* StrutSize1
 +
|| Unkown
 +
|-
 +
| maxLength ||
 +
* 20
 +
* 8
 +
|| unknown
 +
|-
 +
| maxAngle ||
 +
* 100
 +
|| unknown
 +
|-
 +
| breakForce ||
 +
* 10
 +
|| unknown
 +
|-
 +
| allowDock ||
 +
* true
 +
* false
 +
|| unknown
 +
|-
 +
| allowPumpFuel ||
 
* true
 
* true
 
* false
 
* false
|| specifies whether Kerbals can commute to parts connected to this part
+
|| unknown
 
|-
 
|-
| passableWhenSurfaceAttached ||
+
| hasCollider ||
 
* true
 
* true
 
* false
 
* false
|| can be passed through even when connected to the ground?
+
|| 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
 
|-
 
|-
 
|}
 
|}
Line 329: Line 411:
 
MODULE
 
MODULE
 
{
 
{
  name = ModuleConnectedLivingSpace
+
  name = KASModuleStrut
  passable = true
+
  nodeTransform = pipeNode
  passableWhenSurfaceAttached = true  
+
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>
 
</pre>
 
|-
 
|-
 
|
 
|
 
{|class="wikitable"
 
{|class="wikitable"
==== ModuleConnectedLivingSpace ====
+
 
 +
==== 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
 
|-
 
|-
| passable ||
+
| 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
 
* true
 
* false
 
* false
|| specifies whether Kerbals can commute to parts connected to this part
+
|| Disable/enable attachment on parts.
 +
|-
 +
| rayDir  ||
 +
* (0,-1,0)
 +
|| Direction of the attach raycast. Attachment will be done only with objects in that direction.
 
|-
 
|-
| passableWhenSurfaceAttached ||
+
| rayLenght ||
* true
+
* 0.8
* false
+
|| Attach ray lenght.
|| can be passed through even when connected to the ground?
 
 
|-
 
|-
 
|}
 
|}
Line 356: Line 474:
 
MODULE
 
MODULE
 
{
 
{
  name = ModuleConnectedLivingSpace
+
  name = KASModuleGrapplingHook
  passable = true
+
  partBreakForce = 6
  passableWhenSurfaceAttached = true
+
staticBreakForce = 15
 +
aboveDist = 0.05
 +
forceNeeded = 4
 +
attachToPart = true
 +
  rayDir = (0,-1,0)
 +
rayLenght = 0.8
 
}
 
}
 +
 
</pre>
 
</pre>
 
|-
 
|-
 
|
 
|
 
{|class="wikitable"
 
{|class="wikitable"
==== ModuleConnectedLivingSpace ====
+
 
 +
==== KASModuleWinch ====
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
| passable ||
+
| 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
 
* true
 
* false
 
* false
|| specifies whether Kerbals can commute to parts connected to this part
+
||  
 +
|-
 +
| ejectForce ||
 +
* 20
 +
||
 +
|-
 +
| lockMinDist ||
 +
* 0.12
 +
||
 
|-
 
|-
| passableWhenSurfaceAttached ||
+
| lockMinFwdDot ||
* true
+
* 0.90
* false
+
||  
|| can be passed through even when connected to the ground?
 
 
|-
 
|-
 
|}
 
|}
Line 383: Line 578:
 
MODULE
 
MODULE
 
{
 
{
  name = ModuleConnectedLivingSpace
+
  name = KASModuleWinch
  passable = true
+
  maxLenght = 50
  passableWhenSurfaceAttached = true
+
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
 
}
 
}
 +
 
</pre>
 
</pre>
 
|-
 
|-
|
+
|}
 +
 
 +
 
 +
 
 +
=== Universal Storage ===
 +
Universal Storage.  By the by:  Excellently documented!
 +
 
 +
{|
 +
! !!
 +
|-
 +
|  
 
{|class="wikitable"
 
{|class="wikitable"
==== ModuleConnectedLivingSpace ====
+
==== ModuleAnimator ====
 +
Animation module.
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
| passable ||
+
| 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
 
* true
 
* false
 
* false
|| specifies whether Kerbals can commute to parts connected to this part
+
|| If the part tooltip is visible in flight
 
|-
 
|-
| passableWhenSurfaceAttached ||
+
| activeUnfocused ||  
 
* true
 
* true
 
* false
 
* false
|| can be passed through even when connected to the ground?
+
|| If the part tooltip is visible from EVA
 +
|-
 +
| unfocusedRange || 
 +
* 5
 +
|| EVA visible range
 
|-
 
|-
 
|}
 
|}
 
+
||  
||
 
 
<pre>
 
<pre>
MODULE
+
MODULE
{
+
{
name = ModuleConnectedLivingSpace
+
  name = ModuleAnimator
passable = true
+
  animationName = Take 001
passableWhenSurfaceAttached = true
+
  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>
 
</pre>
 
|-
 
|-
 +
 
|
 
|
 
{|class="wikitable"
 
{|class="wikitable"
==== ModuleConnectedLivingSpace ====
+
==== REGO_ModuleResourceConverter ====
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
| passable ||
+
| ConverterName ||
* true
+
* Water Electrolizer
* false
+
|| Flavor Text
|| specifies whether Kerbals can commute to parts connected to this part
+
|-
 +
| 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
 +
||  
 
|-
 
|-
| passableWhenSurfaceAttached ||
+
|}
* true
+
 
* false
+
||
|| can be passed through even when connected to the ground?
+
<pre>
 +
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
 +
}
 +
</pre>
 
|-
 
|-
 
|}
 
|}
  
 +
=== 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"
 +
==== USI_ClearIVA ====
 +
No calls.
 +
|}
 
||
 
||
 
<pre>
 
<pre>
 
MODULE
 
MODULE
 
{
 
{
  name = ModuleConnectedLivingSpace
+
  name = USI_ClearIVA
passable = true
 
passableWhenSurfaceAttached = true
 
 
}
 
}
 
</pre>
 
</pre>
Line 472: Line 778:
 
|
 
|
 
{|class="wikitable"
 
{|class="wikitable"
==== ModuleConnectedLivingSpace ====
+
==== KASModuleGrab ====
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
| passable ||
+
| 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
 
* true
 
* false
 
* false
|| specifies whether Kerbals can commute to parts connected to this part
+
|| 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
 
|-
 
|-
| passableWhenSurfaceAttached ||
+
| attachSendMsgOnly ||
 
* true
 
* true
 
* false
 
* false
|| can be passed through even when connected to the ground?
+
|| unknown
 
|-
 
|-
 
|}
 
|}
Line 491: Line 855:
 
MODULE
 
MODULE
 
{
 
{
name = ModuleConnectedLivingSpace
+
name = KASModuleGrab           
  passable = true
+
evaPartPos = (0.0, 0.40, -0.40)       
passableWhenSurfaceAttached = true  
+
evaPartDir = (0,0,-1)
 +
storable = true
 +
storedSize = 20
 +
attachOnPart = true
 +
attachOnEva = true
 +
bayType = hookBay
 +
bayNode = top
 +
bayRot = (0.0, 0.0, 0.0)
 
}
 
}
 
</pre>
 
</pre>
Line 499: Line 870:
 
|
 
|
 
{|class="wikitable"
 
{|class="wikitable"
==== ModuleConnectedLivingSpace ====
+
 
 +
==== KASModulePartBay ====
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
| passable ||
+
| BAY || {} ||
* true
+
{|class="wikitable"
* false
+
|-
|| specifies whether Kerbals can commute to parts connected to this part
+
| attachNode ||
 +
* top
 +
* bottom
 +
|| attachment placement
 +
|-
 +
| type ||
 +
* containerA
 +
* container
 +
* hookBay
 +
||
 
|-
 
|-
| passableWhenSurfaceAttached ||
+
|}
* true
 
* false
 
|| can be passed through even when connected to the ground?
 
 
|-
 
|-
 
|}
 
|}
Line 518: Line 896:
 
MODULE
 
MODULE
 
{
 
{
  name = ModuleConnectedLivingSpace
+
  name = KASModulePartBay
  passable = true
+
  BAY
  passableWhenSurfaceAttached = true
+
{
 +
  attachNode = top
 +
  type = containerA
 +
  type = containerB
 +
  }
 
}
 
}
 
</pre>
 
</pre>
Line 526: Line 908:
 
|
 
|
 
{|class="wikitable"
 
{|class="wikitable"
==== ModuleConnectedLivingSpace ====
+
 
 +
==== KASModulePort ====
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
| passable ||
+
| attachNode ||
* true
+
* top
* false
+
|| unsure
|| specifies whether Kerbals can commute to parts connected to this part
+
|-
 +
| nodeType ||
 +
* kasplug
 +
|| unknown
 +
|-
 +
| breakForce ||
 +
* 30
 +
|| unknown
 
|-
 
|-
| passableWhenSurfaceAttached ||
+
| nodeTransformName ||
* true
+
* plugNode
* false
+
|| unknown
|| can be passed through even when connected to the ground?
 
 
|-
 
|-
 
|}
 
|}
Line 545: Line 934:
 
MODULE
 
MODULE
 
{
 
{
  name = ModuleConnectedLivingSpace
+
  name = KASModulePort
  passable = true
+
  attachNode = top
  passableWhenSurfaceAttached = true
+
  nodeType = kasplug
 +
breakForce = 30
 +
nodeTransformName = plugNode
 
}
 
}
 +
 
</pre>
 
</pre>
 
|-
 
|-
 
|
 
|
 
{|class="wikitable"
 
{|class="wikitable"
==== ModuleConnectedLivingSpace ====
+
 
 +
==== KASModuleAnchor ====
 
! variable !! example !! definition
 
! variable !! example !! definition
 +
This module will set a custom drag value when the part touch the ground.
 
|-
 
|-
| passable ||
+
| groundDrag ||
* true
+
* 500
* false
+
|| Drag value of the anchor when it touch the ground
|| specifies whether Kerbals can commute to parts connected to this part
+
|-
 +
| bounciness ||
 +
* 0
 +
|| Bounciness of the anchor
 +
|-
 +
| dynamicFriction ||
 +
* 0.8
 +
|| Dynamic friction of the anchor when it touch the ground
 
|-
 
|-
| passableWhenSurfaceAttached ||
+
| staticFriction ||
* true
+
* 0.8
* false
+
|| Static friction of the anchor when it touch the ground
|| can be passed through even when connected to the ground?
 
 
|-
 
|-
 
|}
 
|}
Line 572: Line 972:
 
MODULE
 
MODULE
 
{
 
{
  name = ModuleConnectedLivingSpace
+
  name = KASModuleAnchor
  passable = true
+
  groundDrag = 500
  passableWhenSurfaceAttached = true
+
  bounciness = 0
 +
dynamicFriction = 0.8
 +
staticFriction = 0.8
 
}
 
}
 +
 
</pre>
 
</pre>
 
|-
 
|-
 
|
 
|
 
{|class="wikitable"
 
{|class="wikitable"
==== ModuleConnectedLivingSpace ====
+
 
 +
==== 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
 
|-
 
|-
| passable ||
+
| breakForce ||
 +
* 10
 +
|| The force that needs to be applied on the magnet joint to break.
 +
|-
 +
| attachToEva ||
 
* true
 
* true
 
* false
 
* false
|| specifies whether Kerbals can commute to parts connected to this part
+
|| Disable/enable attraction of eva
 +
|-
 +
| minFwdDot ||
 +
* 0.998
 +
|| Minimum magnet alignement needed to attach (1 is perfectly aligned)
 
|-
 
|-
| passableWhenSurfaceAttached ||
+
| powerDrain ||
* true
+
* 4
* false
+
|| Power consumption when the magnet is used
|| can be passed through even when connected to the ground?
 
 
|-
 
|-
 
|}
 
|}
Line 599: Line 1,011:
 
MODULE
 
MODULE
 
{
 
{
  name = ModuleConnectedLivingSpace
+
  name = KASModuleMagnet
  passable = true
+
  breakForce = 10
  passableWhenSurfaceAttached = true
+
  attachToEva = False
 +
minFwdDot = 0.998
 +
powerDrain = 4
 
}
 
}
 +
 
</pre>
 
</pre>
 
|-
 
|-
 
|
 
|
 
{|class="wikitable"
 
{|class="wikitable"
==== ModuleConnectedLivingSpace ====
+
 
 +
==== KASModuleStrut ====
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
| passable ||
+
| nodeTransform ||
 +
* pipeNode
 +
* strutNode
 +
|| unknown
 +
|-
 +
| type ||
 +
* PipeSize1
 +
* StrutSize1
 +
|| Unkown
 +
|-
 +
| maxLength ||
 +
* 20
 +
* 8
 +
|| unknown
 +
|-
 +
| maxAngle ||
 +
* 100
 +
|| unknown
 +
|-
 +
| breakForce ||
 +
* 10
 +
|| unknown
 +
|-
 +
| allowDock ||
 +
* true
 +
* false
 +
|| unknown
 +
|-
 +
| allowPumpFuel ||
 
* true
 
* true
 
* false
 
* false
|| specifies whether Kerbals can commute to parts connected to this part
+
|| unknown
 
|-
 
|-
| passableWhenSurfaceAttached ||
+
| hasCollider ||
 
* true
 
* true
 
* false
 
* false
|| can be passed through even when connected to the ground?
+
|| 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
 
|-
 
|-
 
|}
 
|}
Line 626: Line 1,105:
 
MODULE
 
MODULE
 
{
 
{
  name = ModuleConnectedLivingSpace
+
  name = KASModuleStrut
  passable = true
+
  nodeTransform = pipeNode
  passableWhenSurfaceAttached = true  
+
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>
 
</pre>
 
|-
 
|-
 
|
 
|
 
{|class="wikitable"
 
{|class="wikitable"
==== ModuleConnectedLivingSpace ====
+
 
 +
==== 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
 
|-
 
|-
| passable ||
+
| 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
 
* true
 
* false
 
* false
|| specifies whether Kerbals can commute to parts connected to this part
+
|| Disable/enable attachment on parts.
 +
|-
 +
| rayDir  ||
 +
* (0,-1,0)
 +
|| Direction of the attach raycast. Attachment will be done only with objects in that direction.
 
|-
 
|-
| passableWhenSurfaceAttached ||
+
| rayLenght ||
* true
+
* 0.8
* false
+
|| Attach ray lenght.
|| can be passed through even when connected to the ground?
 
 
|-
 
|-
 
|}
 
|}
Line 653: Line 1,168:
 
MODULE
 
MODULE
 
{
 
{
  name = ModuleConnectedLivingSpace
+
  name = KASModuleGrapplingHook
  passable = true
+
  partBreakForce = 6
  passableWhenSurfaceAttached = true
+
staticBreakForce = 15
 +
aboveDist = 0.05
 +
forceNeeded = 4
 +
attachToPart = true
 +
  rayDir = (0,-1,0)
 +
rayLenght = 0.8
 
}
 
}
 +
 
</pre>
 
</pre>
 
|-
 
|-
 
|
 
|
 
{|class="wikitable"
 
{|class="wikitable"
==== ModuleConnectedLivingSpace ====
+
 
 +
==== KASModuleWinch ====
 
! variable !! example !! definition
 
! variable !! example !! definition
 
|-
 
|-
| passable ||
+
| 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
 
* true
 
* false
 
* false
|| specifies whether Kerbals can commute to parts connected to this part
+
||  
 +
|-
 +
| ejectForce ||
 +
* 20
 +
||
 +
|-
 +
| lockMinDist ||
 +
* 0.12
 +
||
 
|-
 
|-
| passableWhenSurfaceAttached ||
+
| lockMinFwdDot ||
* true
+
* 0.90
* false
+
||  
|| can be passed through even when connected to the ground?
 
 
|-
 
|-
 
|}
 
|}
Line 680: Line 1,272:
 
MODULE
 
MODULE
 
{
 
{
  name = ModuleConnectedLivingSpace
+
  name = KASModuleWinch
  passable = true
+
  maxLenght = 50
  passableWhenSurfaceAttached = true
+
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
 
}
 
}
 +
 
</pre>
 
</pre>
 
|-
 
|-
 
|}
 
|}

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
}