Kerbalism’s Part Modules¶
Comfort¶
The part provides comforts for the crew.
PROPERTY | DESCRIPTION |
---|---|
bonus | the comfort bonus provided |
desc | short description shown in part tooltip |
see Comforts for a list of allowed bonus’s
Configure¶
The part allows for different setups of modules and resources that can be selected by the user in-game.
PROPERTY | DESCRIPTION | DEFAULT |
---|---|---|
title | short string to show on part UI | |
slots | number of setups that can be selected concurrently | 1 |
reconfigure | string in the format trait@level, specifying that the part can be reconfigured in flight by the crew | |
symmetric | if true enforces same configuration on all parts in the symmetry group (useful for tanks) | false |
SETUP | one or more sub-nodes that describe a setup |
A SETUP sub-node has the following properties.
PROPERTY | DESCRIPTION |
---|---|
name | short string describing the setup |
desc | longer description of the setup |
tech | id of technology required to unlock the setup |
cost | extra cost, in space-bucks |
mass | extra mass, in tons. (1 = 1000Kg) |
MODULE | zero or more sub-nodes associating a module with the setup |
RESOURCE | zero or more sub-nodes defining a resource included in the setup |
A MODULE sub-node, inside a SETUP node, associates a specific module (that is already defined in the part) to that particular setup. The module will then be disabled (effectively acting like it wasn’t there) unless the user selects the setup. A module can be associated to only a setup. Not all modules in the part need to be associated to a setup, and those that aren’t will behave as usual.
PROPERTY | DESCRIPTION |
---|---|
type | module name |
id_field/id_value | the name of a field in the module definition and its value respectively, used to identify a module in particular if multiple ones of the same type exist in the part |
id_index | the zero-based index, selecting a specific module of type among all the ones present in the part |
A RESOURCE sub-node, inside a SETUP node, adds a specific resource amount and/or capacity to the setup. The resource definition is the same as the stock one you are familiar with. The resource doesn’t need to be defined in the part directly but only in the setup. When the setup is selected, the resource will be added to the part. If the part already contain the same resource, the amount and/or capacity will simply increase when the setup is selected.
Emitter¶
The part emits radiation. Use a negative radiation value for absorption.
PROPERTY | DESCRIPTION | DEFAULT |
---|---|---|
radiation | radiation in rad/s, can be negative | |
ec_rate | EC consumption rate per-second (optional) | |
toggle | true if the effect can be toggled on/off | false |
active | name of animation to play when enabling/disabling |
Experiment¶
Hooks experiments into the Kerbalism science system.
PROPERTY | DESCRIPTION | DEFAULT |
---|---|---|
experiment_id | The ID of the experiment (which must be defined elsewhere) | |
experiment_desc | A nice description of the experiment. | |
data_rate | sampling rate in Mb/s | 0.01 |
ec_rate | EC consumption rate per second while recording | 0.01 |
allow_shrouded | Allow the experiment to run while it’s part is shrouded | true |
sample_mass | If not 0, this is a sample and cannot be transmitted | 0.0 |
sample_reservoir | Amount of sampling material stored on the part | = sample_mass |
sample_collecting | If set to true, the experiment will produce mass. | false |
science_cap | A factor for the max. attainable science value | 1.0 |
requires | Additional requirements that must be met for recording. See below. | |
resources | Resources consumed while the experiment is running. Will stop if one of the resources is depleted. Rate is per sec. Malformed definitions or unknown resources will be ignored. Example: resources = Water@0.01,Food@0.02 | |
crew_operate | Requirements for crew on vessel for recording. If this is not set, the experiment can run on unmanned probes. | |
crew_reset | Requirements for crew to reset the experiment. If this is set, the experiment will only record data from within the situation where recording was started, until it is reset (either by a kerbal that has to match the requirement, or by a lab. | |
crew_prepare | If set, a kerbal has to prepare the experiment before it can record data. Once prepared, the experiment will only record data while it remains in the situation it was prepared for. The kerbal doing the preparation has to match the requiremens | |
hide_when_unavailable | Don’t show the UI when the experiment is unavailable. | |
anim_deploy | Name of the part animation to trigger when recording starts. |
Crew specifications (used in crew_operate, crew_reset or crew_prepare as well as in some other Kerbalism mods) have to be given according to true|trait|[trait]@level
Examples:
- “true”: any kerbal will do.
- “Scientist”: you need a Scientist, doesn’t matter how experienced. Other traits are “Pilot” and “Engineer”. We’re not assuming that you’ll want to use “Tourist”…
- If the value is “@3” any Kerbal with 3 or more stars will do
- If the value is “Scientist@2” you need a Scientist with 2 or more stars.
- Empty values usually turn the feature off.
Requirements of the experiments work as additional filters, and work ON TOP OF what the underlying experiment uses. If you create a Kerbalism Experiment for `seismicScan`it won’t work in orbit. The underlying experiment restrictions are checked first, then the additional requirements are checked.
The restrictions are case sensitive and comma-separated, and must ALL be met for recording. restriction = Shadow,Space,Body:Kerbin will only record data while in space near Kerbin AND in shadow. restriction = AltitudeMin:250000,Surface will never record anything for plainly obvious reasons.
Here is a list of currently supported requirements:
- OrbitMinInclination, OrbitMaxInclination: min./max. inclination of the orbit (f.i. OrbitMinInclination:30)
- OrbitMinEccentricity, OrbitMaxEccentricity: min./max. eccentricity of the orbit (f.i. OrbitMaxEccentricity:0.1)
- OrbitMinArgOfPeriapsis, OrbitMaxArgOfPeriapsis: min./max. argument of periapsis
- TemperatureMin, TemperatureMax: min./max. Temperature in Kelvin
- AltitudeMin, AltitudeMax: min./max. Altitude in Meters
- RadiationMin, RadiationMax: min./max. radiation in rad/h
- Microgravity: not on a surface, not in atmosphere.
- Body: body on which the experiment can run. More than one name can be given (separate with semicolon), to exclude a body prefix it with ! (f.i. Body:Eve;Duna;!Kerbin)
- Shadow: vessel must not be exposed to sunlight
- Sunlight: vessel must be in the presence of a supreme being that radiates warmth and light upon it
- Surface: vessel must be on a surface
- Atmosphere: vessel must be within an atmosphere
- AtmosphereBody: vessel must be within the SOI of a body with atmosphere
- AtmosphereAltMin / AtmosphereAltMax: Altitude of vessel as a multiplier of atmosphere thickness. On Kerbin, AtmosphereAltMin:1 equals 70km.
- Vacuum: the opposite of Atmosphere
- BodyWithAtmosphere, BodyWithoutAtmosphere: does what it says on the tin.
- Ocean: vessel must be submerged
- PlanetarySpace: in planetary space, i.e. not around the sun
- AbsoluteZero: temperature < 30 K
- InnerBelt: vessel must be in a inner Van Allen Belt
- OuterBelt: vessel must be in a outer Van Allen Belt
- MagneticBelt: vessel must be in any Van Allen Belt
- Magnetosphere: vessel must be inside a magnetosphere
- Thermosphere: vessel must be inside a thermosphere
- Exosphere: vessel must be inside an exosphere
- InterPlanetary: vessel must be in interplanetary space, i.e. in the SOI of the Sun
- InterStellar: vessel must be outside the sun magnetopause
- Greenhouse: there must be one greenhouse on the vessel.
- CrewMin, CrewMax: min./max. amount of crew on vessel
- CrewCapacityMin, CrewCapacityMax: min./max. crew capacity
- VolumePerCrewMin, VolumePerCrewMax: min./max. habitat volume per crew member
- Facility building levels: MissionControlLevelMin, MissionControlLevelMax, AdministrationLevelMin, AdministrationLevelMax, TrackingStationLevelMin, TrackingStationLevelMax, AstronautComplexLevelMin, AstronautComplexLevelMax
- MaxAsteroidDistance: max. distance to the nearest asteroid. For unloaded vessels this only works if the asteroid is set as the target.
- Part: name (or any of multiple names, separated by comma) of a part that has to be anywhere on the vessel
- Module: name of a module that is required anywhere on the vessel
- SunAngleMin, SunAngleMax: min./max. angle of sunlight on the surface of the body
The following might or might not work for unloaded vessels, please udpate this list when you find out:
- SurfaceSpeedMin,SurfaceSpeedMax: Speed above surface
- VerticalSpeedMin,VerticalSpeedMax: Vertical speed
- SpeedMin,SpeedMax: speed
- DynamicPressureMin,DynamicPressureMax: current dynamic pressure
- StaticPressureMin,StaticPressureMax: current static pressure
- AtmDensityMin,AtmDensityMax: current atmospheric density
- AltAboveGroundMin,AltAboveGroundMax: Altitude above ground. Note that this value can change rapidly as KSP loads/unloads the terrain of a body
GravityRing¶
Used by the Gravity Ring part.
PROPERTY | DESCRIPTION |
---|---|
ec_rate | EC consumed per-second when deployed |
deploy | a deploy animation can be specified |
rotate | a rotate loop animation can be specified |
Greenhouse¶
The part simulates a greenhouse. The crop grows over time, then it is harvested as a resource. Growth has lighting requirements that can be satisfied from the environment and/or the integrated lamps. Additional requirements can be specified, such as input resources, minimal pressure and maximal radiation. By-product resources can be produced.
PROPERTY | DESCRIPTION |
---|---|
crop_resource | name of resource produced by harvests |
crop_size | amount of resource produced by harvests |
crop_rate | growth per-second when all conditions apply |
ec_rate | EC/s consumed by the lamp at max capacity, set to 0 to disable the lamp |
light_tolerance | minimum lighting flux required for growth, in W/m^2 |
pressure_tolerance | minimum pressure required for growth, in sea level atmospheres (optional) |
radiation_tolerance | maximum radiation allowed for growth in rad/s, considered after shielding is applied (optional) |
lamps | object with emissive texture used to represent intensity graphically |
shutters | animation to manipulate shutters |
plants | animation to represent plant growth graphically |
Resource requirements and by-products (other than EC for the lamps) are specified using the stock resHandler specification
INPUT_RESOURCE
{
name = Water
rate = 0.00023148
}
OUTPUT_RESOURCE
{
name = Oxygen
rate = 0.00463
}
Habitat¶
The part has an internal habitat.
PROPERTY | DESCRIPTION | DEFAULT |
---|---|---|
volume | habitable volume in m³, deduced from bounding box if not specified | |
surface | external surface in m², deduced from bounding box if not specified | |
inflate | inflate animation, if any | |
toggle | show the enable/disable toggle | true |
HardDrive¶
The part has an interface to access the vessel hard drive, where the science data files are stored.
PROPERTY | DESCRIPTION | DEFAULT |
---|---|---|
dataCapacity | Storage capacity for transmissible data, in Mb (=Mib) | 102400 |
sampleCapacity | Capacity for experiment samples, in slots (=Mib). Note that Kerbalism will not display sample sizes in Mb, but uses a virtual size unit instead (slots, bags) (TBD) | 100 |
title | Name displayed in file manager | |
experiment_id | If set, restricts write access to the experiment with that id ON THE SAME PART with the given experiment_id. |
Harvester¶
The part harvests resources, similar to the stock resource harvester. The differences are that the output doesn’t scale with concentration, instead it has the specified rate when above a threshold and zero below it.
PROPERTY | DESCRIPTION | DEFAULT |
---|---|---|
title | name to show on UI | |
type | type of resource, same values accepted by stock harvester | 0 |
resource | resource to extract | |
min_abundance | minimal abundance required, in the range [0.0, 1.0] | |
min_pressure | minimal pressure required, in kPA | |
rate | amount of resource to extract per-second, when abundance is above threshold | |
ec_rate | amount of EC consumed per-second, irregardless of abundance | |
drill | the drill transform |
Laboratory¶
The part transforms non-transmissible science samples into transmissible science data over time.
PROPERTY | DESCRIPTION |
---|---|
ec_rate | EC consumed per-second |
analysis_rate | analysis speed in Mb/s |
researcher | required crew for analysis, in the format trait@level |
PlannerController¶
The Part has a toggle to enable/disable simulation in the Planner. The Planner simulates resource consumption and production for many types of modules, and most of the time it is useful to be able to toggle these on and off in the VAB/SPH to simulate different scenarios for the vessel.
Some modules do not offer any way to toggle them on and off in the VAB/SPH and that’s where the PlannerController comes in, once added to a part it will add an editor-only toggle button. The Planner will then consider or ignore all modules in that part depending on the toggle button state.
PROPERTY | DESCRIPTION | DEFAULT |
---|---|---|
toggle | show the toggle button in the editor | true |
considered | default button state | false |
ProcessController¶
The part has resource processing capabilities. This module allows the implementation of a scheme to provide converter-like modules on a vessel, while keeping the computation independent of the number of individual converters.
The trick is by using a Process which uses a hidden pseudo-resource created ad-hoc e.g. _WaterRecycler_.
This module then adds that resource to its part automatically, and provides a way to start/stop the process by a part UI button. Under the hood, starting and stopping the process is implemented by merely setting the resource flow to true and false respectively.
PROPERTY | DESCRIPTION | DEFAULT |
---|---|---|
resource | pseudo-resource to control | |
title | name to show on UI | |
desc | description to show on tooltip | |
capacity | amount of pseudo-resource to add | 1.0 |
toggle | show the enable/disable toggle | true |
running | start the process by default | false |
Reliability¶
The part has the capability of module failure. This module disables other modules when a failure happens.
PROPERTY | DESCRIPTION | DEFAULT |
---|---|---|
string | component module name | |
mtbf | mean time between failures, in seconds | 21600000.0 |
repair | trait and experience required for repair, in the form trait@experience | |
title | short description of component | |
redundancy | redundancy group | |
extra_cost | extra cost for high-quality, in proportion of part cost | 0.0 |
extra_mass | extra mass for high-quality, in proportion of part mass | 0.0 |
Sensor¶
The part has sensor capabilities that adds environmental readings to a parts UI and to the telemetry panel on the Monitor UI.
PROPERTY | DESCRIPTION |
---|---|
type | type of sensor |
pin | pin animation driven by telemetry value |
The types of sensors available are.
TYPE | READINGS |
---|---|
temperature | external vessel temperature in K |
radiation | environment radiation at vessel position, in rad/s (before shielding is applied) |
pressure | environment pressure in kPA |
gravioli | number of negative gravioli particles detected |
Patch injection¶
Enabled features are specified by the user in the Settings file and are detected automatically from the modifiers used in the current profile. They are then used to inject MM patches on-the-fly at loading time, so that it is possible to do conditional MM patching depending on the features enabled by using :NEEDS[FeatureXXX]. Likewise it is possible to use :NEEDS[ProfileXXX] to do conditional MM patching depending on the current profile.
FEATURE | HOW IT IS DEFINED | WHAT DOES IT ENABLE | |
---|---|---|---|
Reliability | user-specified in Settings file | component malfunctions and critical failures | |
Deploy | user-specified in Settings file | the deployment system | |
Science | user-specified in Settings file | the science system | |
SpaceWeather | user-specified in Settings file | coronal mass ejections | |
Automation | user-specified in Settings file | script UI and automatic execution | |
Radiation | detected from modifiers used | simulation and rendering of radiation | |
Shielding | detected from modifiers used | shielding resource added to habitats | |
LivingSpace | detected from modifiers used | volume is calculated for habitats | |
Comfort | detected from modifiers used | comfort parts are added | |
Poisoning | detected from modifiers used | atmospheric CO2 is simulated in habitats | |
Pressure | detected from modifiers used | atmospheric pressure is simulated in habitats | |
Humidity | detected from modifiers used | atmospheric humidity is simulated in habitats | |
Habitat | one or more features require it | the habitat module is added to parts |