Skip to content

Changes in previous versions

MOARdV edited this page Apr 19, 2016 · 49 revisions

RasterPropMonitor v0.24.2

For KSP 1.0.5

RasterPropMonitor integrates with the following mods, providing additional control and information options when these mods are available. None of these mods are required - they simply provide additional IVA control or information options. Versions indicate the version of the mod that RPM was tested against.

  • Docking Port Alignment Indicator v6.2
  • Ferram Aerospace Research v0.15.5.2
  • MechJeb v2.5.5
  • Pilot Assistant v1.12.3
  • RealChute v1.3.2.4

Fixes

  • Log spamming when using MATH_ subtraction variables has been eliminated. Issue #450.

New Features

  • Configurable horizontal bars in JSIHUD, allowing for scrollable displays other than the heading strip. Issue #329.
  • MAPPED variables may now use variables for the mapped range, not just numbers. Issue #456.

RasterPropMonitor v0.24.1

For KSP 1.0.5

RasterPropMonitor integrates with the following mods, providing additional control and information options when these mods are available. None of these mods are required - they simply provide additional IVA control or information options. Versions indicate the version of the mod that RPM was tested against.

  • Docking Port Alignment Indicator v6.2
  • Ferram Aerospace Research v0.15.5.2
  • MechJeb v2.5.3 dev build 520
  • Pilot Assistant v1.12.1
  • RealChute v1.3.2.4

Fixes

  • HORZSPEED no longer generates a NaN sometimes (like when sitting on the runway). Issue #431.
  • RPM no longer generates exceptions during menu load. Issue #433.
  • Fixed some precision problems when looking at large numbers (such as UTSECS) as part of MATH_ custom variables. Issue #440.
  • Looping audio continues to play when exiting / re-entering IVA. Issue #446.
  • JSIRadar no longer tries to lock on to targets when it's not on the active vessel.

New Features

  • A JSIActionGroupSwitch can now be configured to function as a momentary switch by setting momentarySwitch = true in its config. A momentary switch is 'on' only which the switch is held. Issue #312.
  • JSIPilotAssistant allows RasterPropMonitor to interact with the Pilot Assistant mod. Issue #368.
  • TARGETPLANELAUNCHTIMESECS provides a countdown until a target's orbital plane crosses the craft's launch site. Issue #421.
  • JSIInternalRPMButtons methods TrimNeutralState, SetAllTrimNeutral, SetPitchTrimNeutral, SetPitchTrim (and their Roll and Yaw siblings) allow setting trim, as well as determining if the trim parameters are all near neutral. Issue #434.
  • TIMEOFDAYSECS returns the time of day (the hours, minutes, and seconds of UT), correctly calibrated to Kerbin time or Earth time, depending on the game's configuration. Issue #436.
  • HOTTESTPARTTEMP, HOTTESTPARTMAXTEMP, HOTTESTPARTTEMPRATIO and HOTTESTPARTNAME provide the hottest part's current temperature (in K), its maximum temperature, its temperature ratio (current / max), and the name of the part. "Hottest" is defined as the part whose temperature is closest to the max temp. It checks skin temperature as well as internal temperature. HOTTESTENGINETEMP, HOTTESTENGINEMAXTEMP, and HOTTESTENGINETEMPRATIO do the same thing, but only considering engines (parts with ModuleEngines or ModuleEnginesFX). Issue #438.
  • TIMETOATMOSPHERESECS returns the time until the next time the craft crosses the edge of the atmosphere, or 0 if the craft doesn't enter / exit the atmosphere. Issue #447.
  • JSIMechJeb:MatchVelocities allows MechJeb to generate a "match velocities at closest approach" maneuver. JSIMechJeb:MatchVelocitiesState returns true when MJ can generate such a maneuver.
  • Resource consumption (SYSR_*DELTA and SYSR_*DELTAINV) are updated every time other values are updated, so gauges tracking resource consumption are much more responsive.

Miscellany

  • Mk1 cockpits no longer have RPM-enabled IVAs, since the stock IVAs have changed. The config files have been renamed to .noconfig so KSP doesn't try to load them.
  • Tinkering to possibly improve behavior and performance.

Known Issues

  • Using a MATH_ subtraction variable will spam the log with debug messages. Issue #450.
  • RPM is unable to set speed in Pilot Assistant v1.12.3. Issue #453.

RasterPropMonitor v0.24.0

For KSP 1.0.5

RasterPropMonitor integrates with the following mods, providing additional control and information options when these mods are available. None of these mods are required - they simply provide additional IVA control or information options. Versions indicate the version of the mod that RPM was tested against.

  • Docking Port Alignment Indicator v6.2
  • Ferram Aerospace Research v0.15.5.2
  • MechJeb v2.5.3 dev build 520
  • RealChute v1.3.2.4

Fixes

  • KSP 1.0.5 compatibility
  • Fix MechJeb SetSmartass method so it works again. Issue #417.

New Features

  • JSIMechJeb.SetLaunchInclination and .GetLaunchInclination can be used to control launch inclination.
  • JSIParachute.ParachutesSafeState now works with RealChute (requires RealChute 1.3.2.4). Issue #296.
  • JSIParachute.ParachuteSafetyValue returns 1 if all parachutes may be deployed safely, 0 is some of them may be, and -1 if none of them may safely deploy.
  • JSINavBall is a replacement for the InternalNavBall module that allows a variable to control whether the navball is enabled or not, and provides a parameter to control how quickly the navball can move. Issue #403.

New Variables

  • ACCELPROGRADE, ACCELRADIAL, ACCELNORMAL decompose the craft's current acceleration into the local orbit coordinate system. ACCELFORWARD, ACCELRIGHT, ACCELTOP do the same, but within the craft's own local frame of reference. ACCELSURFACEPROGRADE provides the surface velocity relative acceleration. Issue #420.
  • The SYSR_ suffix DEPLETED returns 1 when a craft or stage has capacity for a resource, but the resource is effectively depleted (< 0.01 units).
  • IASPEED returns indicated air speed in m/s.

Miscellany

  • TIMETONEXTAPSIS returns 0 instead of NaN when the orbit is invalid.
  • ATMOSPHEREDEPTH uses the stock value (same as the atmosphere gauge) when it is available. Issue #426.
  • Updated to MM 2.6.13 (included).

Known Issues

  • The new Mk1 cockpit does not have an RPM IVA. I don't have time to work on one soon, so if someone wants to share their IVA, I'll be happy to incorporate it. Issue #428.

RasterPropMonitor v0.23.2

For KSP 1.0.4

RasterPropMonitor integrates with the following mods, providing additional control and information options when these mods are available. None of these mods are required - they simply provide additional IVA control or information options. Versions indicate the version of the mod that RPM was tested against.

  • Docking Port Alignment Indicator v6.2
  • Ferram Aerospace Research v0.15.5.1
  • MechJeb v2.5.3
  • RealChute v1.3.2.3

Fixes

  • Text rendering colors in OpenGL matches (closely enough) colors in DirectX. Issue #318.
  • JSIHUD ladder depth has been nudged slightly so vertical / horizontal bars are above it, instead of coplanar with it. Issue #328.
  • JSIRadar's ability to automatically target a docking port is now functional. Issue #409.
  • The MechJeb RPM page works again. Issue #410.
  • MechJeb Ascent Autopilot works with MJ dev builds 514 and later. Issue #413.

RasterPropMonitor v0.23.1

For KSP 1.0.4

Fixes

  • InvalidCastException in JSIInternalBackgroundNoise is fixed (and several other potential ICE errors were fixed as well). Issue #383
  • Wiki documentation for JSINumericInput's switchSound and switchSoundVolume were corrected. Issue #384.
  • JSIMechJeb SpaceplaneHoldHeading* and SpaceplaneAutoland* now work (an overlooked typo in the name caused them to fail). Issue #385.
  • Error in JSIHeadsUpDisplay where the horizon texture was not sized correctly in the window has been fixed. Issue #386.
  • JSIActionGroupSwitches using plugin state methods failed to respond correctly to forced shutdown events. Issue #392.
  • Plugin handlers were failing to initialize. Issue #393.
  • NULLREF errors in the VAB with transparent pods have been fixed, courtesy JPLRepo.
  • Problems with IVA portraits and transparent pods have been fixed, also courtesy JPLRepo.

New Variables

  • YAWRATE, PITCHRATE, and ROLLRATE report the rate of change (degrees per second) on each axis based on an inertial reference (vessel.angularVelocity). Issue #387.
  • SELECT_ variables (see Custom Variables) return different variables depending on the evaluation of control variables (similar to JSIVariablePageTextSwitcher). Issue #389.
  • THRUSTMAXRAW, EFFECTIVERAWTHROTTLE return THRUSTMAX and EFFECTIVETHROTTLE when ignoring the thrust limit tweakable on the engines.
  • THRUSTLIMIT returns the current setting of the thrust limit tweakable (as a weighted average if multiple engines have different settings).
  • JSIInternalRPMButtons now has GetSASMode and SetSASMode to allow directly setting SAS mode using JSINumericInput.

New Features

  • JSIActionGroupSwitch, JSIInternalBackgroundNoise, and RasterPropMonitor all now have a resourceName variable used to determine if there is sufficient power to run the prop (when the option needsElectricCharge is true). This resourceName uses a defined variable (by default, 'SYSR_ELECTRICCHARGE'). Issue #397.
  • Related, the JSIVariableAnimator now allows specifying a resourceName for the consumption of resources. In this case, it's the resource's internal name ('ElectricCharge' if none is specified). Issue #397.
  • JSIVariableAnimator VARIABLESET groups can use maxRateChange to control how quickly an animation can transition from off to on. This value indicates how many times per second the animation can switch from full on to full off (and vice versa), so a '2.0' means it takes 1/2 second for the animated object to go from off to on. This field can be used to supply effects like an incandescent bulb fade to a color animation, and to simulate mechanical limits on 'physical' props like gauge needles. Issue #402.
  • MATH_ variables now can return MAXINDEX and MININDEX, which return the index (starting at 0) of the maximum or minimum value, respectively. Issue #407.
  • JSIActionGroupSwitch now has optional parameters loopingSound and loopingSoundVolume that can play an audio loop while the switch is on. This sound can be used in addition to switchSound. Issue #408.

Miscellaneous

  • Internal redesign of variable fetching logic to (hopefully) reduce CPU demand during updates.

RasterPropMonitor v0.23.0

For KSP 1.0.4.

Supported Mod Versions

RasterPropMonitor integrates with the following mods, providing additional control and information options when these mods are available. None of these mods are required - they simply provide additional IVA control or information options. Versions indicate the version of the mod that RPM was tested against.

Fixes

  • The HUD ladder texture and navball texture have been resized to help with some video card / driver combinations that do not like their dimensions. Appears to resolve Issue #298 and Issue #355.
  • YAW* variables now report values in the range of [-180, 180], so you can tell when the direction you're interested in is behind you.

New Features

  • JSIKAC (see Action handlers) provides access to some Kerbal Alarm Clock information (specifically, information on the current vessel's alarm count and next alarm). Issue #144.
  • JSIRadar (see Part modules) is a new PartModule that will automatically target vessels. There are many options to tune the behavior (range, scan angle, and optional rules for maintaining target lock). Issue #336.
  • JSIInternalRPMButtons (see Action handlers) DockUndock and DockDetach allow a button / switch to undock or release something attached to a docking port. DockDocked, DockAttached, and DockReady provide status. RadarEnable and RadarEnableState provide RPM control over JSIRadar modules. Issue #336.
  • Triggered Events can be defined to cause RPM to trigger events automatically when proper conditions are met. Issue #321.
  • JSIVariablePageTextSwitcher (see Page handlers) now supports multiple pages with separate conditions on each. Issue #344.
  • Custom variables that can do math operations on multiple defined variables (add, subtract, multiply, divide, max, and min), as well as a couple of predefined constants to convert meters to feet and m/s to knots. Issue #353.
  • Waypoint navigation markers appear on the Primary Flight Display (MFD NavBall). Issue #152.
  • Transparent pods Part modules now have a button on the part menu (right-click menu) in the VAB and during flight to control whether the pod IVA is always drawn, never drawn, or drawn only when it is the active reference part or on mouseover. Transparent Pods also have a tuning option in the config to control the distance where they will stop rendering their IVA (no sense drawing IVA when the craft is too far away to see the IVA). Issue #361. Courtesy JPLRepo, who also made a few other performance tweaks in the transparent pod code as well.
  • TIMETOIMPACTSECS will use MechJeb's landing computer (when MechJeb is installed and the computer enabled) to predict the time to impact. This value can also be queried with JSIMechJeb:GetLandingTime.
  • The RPMVesselComputer can be told to update variables by external mods using reflection to call the public method RPMVesselComputer.UpdateVariables(). Courtesy ndevenish.
  • JSINumericInput (see Prop Modules) allows for persistent variables to be changed by button presses, which dovetails in with...
  • JSIActionGroupSwitch (see Prop Modules) now has a transfer actionName, which allows the value stored in a persistent variable to be read from a plugin method or written to a plugin method.
  • JSIMechJeb (see Action handlers) can now enable spaceplane guidance autoland and hold altitude/heading. It is also able to provide the current target altitude and heading, as well as glideslope, and it can provide a simple yes/no response to whether the aircraft is within 500 meters of the target altitude. In addition, the new transfer action in JSIActionGroupSwitch can be used to set ascent guidance target altitude, spaceplane hold heading, spaceplane hold altitude, and spaceplane landing glideslope.

New Variables

  • New variables LIFT, DRAG, LIFTACCEL, and DRAGACCEL report the lift and drag forces in kN and m/s^2. These values work with stock aerodynamics and FAR.
  • TARGETLAUNCHTIMESECS can be used to count down for a timed launch when a craft is targeted. It is roughly tuned for a low-to-mid altitude target over Kerbin.
  • YAWSURFPROGRADE, YAWSURFRETROGRADE and their PITCH companions join the other YAW* and PITCH* variables.
  • RADARALTVERTSPEED provides a smoothed measure of the vertical speed as measured by the radar altimeter. Be aware that radar altitude is very noisy, especially at higher speed over land.
  • MAXISP reports the weighted maximum ISP of enabled engines (it can be used with REALISP to determine when engines are below their maximum efficiency).

Miscellaneous

  • MFD button configs have been updated for new SCANsat v14.2 features, courtesy DMagic. These will not affect the stock MFDs, but it provides a reference if you're going to add SCANsat to a different MFD.
  • The JSIGimbal plugin has been removed. GimbalLock and GimbalLockState are part of JSIInternalRPMButtons. A backwards-compatibility map to support JSIGimbal will remain available for a couple of releases, so please update any props you have that currently use JSIGimbal.
  • Many, many internal changes. Of note for modders writing plugins that interface with RPM, you no longer need a PersistenceAccessor to call ProcessVariable().

RasterPropMonitor v0.22.2

For KSP 1.0.4.

Supported Mod Versions

RasterPropMonitor integrates with the following mods, providing additional control and information options when these mods are available. None of these mods are required - they simply provide additional IVA control or information options. Versions indicate the version of the mod that RPM was tested against.

Fixes

  • Initialization errors after undocking in certain circumstances have been fixed. Issue #345.

Known Issues

  • Some flavors of Linux 64-bit choke on a couple of the DDS images in this package. Issue #298.

RasterPropMonitor v0.22.1

For KSP 1.0.4.

Supported Mod Versions

RasterPropMonitor integrates with the following mods, providing additional control and information options when these mods are available. None of these mods are required - they simply provide additional IVA control or information options. Versions indicate the version of the mod that RPM was tested against.

New Variables

  • YAWNODE, PITCHNODE, YAWTARGET, PITCHTARGET now report the yaw and pitch angles between the front of the craft and the next maneuver node or the target. If a node doesn't exist or there is no target, the variables report 0.

Fixes

  • External plugins may successfully access RPM variables. Pull request #338 courtesy GitHub user ndevenish.
  • HEATSHIELDTEMPERATUREFLUX now works (it was named incorrectly in the code). Issue #337.
  • AoA and sideslip markers on the HUD now work correctly. Issue #335.

Known Issues

  • Some flavors of Linux 64-bit choke on a couple of the DDS images in this package. Issue #298.

RasterPropMonitor v0.22.0

For KSP 1.0.4.

Supported Mod Versions

RasterPropMonitor integrates with the following mods, providing additional control and information options when these mods are available. None of these mods are required - they simply provide additional IVA control or information options. Versions indicate the version of the mod that RPM was tested against.

Fixes

  • Switching from JSITransparentPod-enabled craft to JSINonTransparentPod craft no longer leaves IVA visible under some circumstances. Courtesy forum user JPLRepo.
  • The JSIHeadsUpDisplay optional camera has been restored. Issue #320.

New Features

  • JSIInternalRPMButtons now has ButtonPrecisionMode and ButtonPrecisionModeState to allow props to switch precision control mode on and off. Issue #306.
  • HUD vertical bars can now be configured with enablingVariable and enablingVariableRange to control when the vertical bar is visible. Issue #311.
  • TARGETALTITUDE now reports the altitude of celestial bodies when the active vessel is not orbiting the body. Issue #305.
  • JSIParachute now has ParachuteSafeState, which reports true if all parachutes may safely deploy (NOTE: this feature is limited to stock parachutes at this time; RealChute parachutes require changes to RealChute). Issue #296.
  • Computations and updates have been moved to a VesselModule. This may help performance on complex spacecraft where multiple RPM-enabled IVAs are present. Issue #282.
  • NAND and NOR operations now work for Custom Variables. Issue #327.
  • JSISASMenu now has a menuTitleFormatString for customizing the menu display. Issue #326.
  • The HUD ladder and heading bar may use custom textures for the prograde markers. Issue #322.
  • Generators and Resource Converters that generate electricity may be controlled via JSIInternalRPMButtons:ButtonEnableElectricGenerator (and queried with ButtonEnableElectricGeneratorState). Issue #332.

New Variables

  • PRECISIONCONTROL returns 1 when the inputs are configured for precision control (the KSP UI shows blue arrows), and 0 when precision control is off (default orange arrows). Issue #306.
  • PITCHPROGRADE, PITCHRETROGRADE, ..., YAWPROGRADE, YAWRETROGRADE, ... new variables provide the pitch and yaw angles for all six cardinal orbital directions relative to the craft's nose. Issue #269.

Miscellany

  • RasterPropMonitor now includes ModuleManager 2.6.7.
  • Other (major) internal tweaks / refactoring.

Known Issues

  • Some flavors of Linux 64-bit choke on a couple of the DDS images in this package. Issue #298.
  • AoA and sideslip markers on the HUD are inaccurate when banking. Issue #335.

RasterPropMonitor v0.21.2

For KSP 1.0.4.

Supported Mod Versions

RasterPropMonitor integrates with the following mods, providing additional control and information options when these mods are available. None of these mods are required - they simply provide additional IVA control or information options. Versions indicate the version of the mod that RPM was tested against.

Fixes

  • Assorted Null Reference Exceptions (including Issue #307).
  • Props sometimes don't start until you click something (Issue #308).
  • The HUD ladder no longer draws outside of its bounds (Issue #272).
  • The HUD now correctly says kPa instead of Pa for dynamic pressure.

New Features

  • JSIActionGroupSwitch now includes an optional config field refreshRate like many other prop configs.
  • The ability to query spoiler state and flap position from FAR, along with the ability to toggle spoilers and adjust flaps, is available using FAR v0.15.4.

Known Issues

  • The 64 bit version of KSP in Linux chokes on two of the DDS textures in this package. Issue #298.

RasterPropMonitor v0.21.1

For KSP 1.0.4.

Supported Mod Versions

Fixes

  • Various bugs related to MechJebRPM and JSIFAR have been fixed. Issue #293.
  • The JSI external camera now can be found in the basicScience tech node instead of scienceTech. Thanks to forum user Yemo for pointing out the tech tree change.

New Features

  • The ability to query spoiler state and flap position from FAR, along with the ability to toggle spoilers and adjust flaps. At the present, this requires building a dev version of FAR (it is unsupported in the latest released version of FAR). Issue #280.

Miscellany

  • A couple of minor tweaks were done to text rendering.

Known Issues

  • The HUD ladder draws outside its bounds (drawing on the vertical strips / heading strip) when rolled. Issue #272.
  • The 64 bit version of KSP in Linux chokes on two of the DDS textures in this package. Issue #298.

RasterPropMonitor v0.21.0

For KSP 1.0.4.

Supported Mod Versions

Breaking Changes

  • JSIHeadsUpDisplay has been completely rewritten. Existing HUD configs written by other authors will have to be updated to the new format, or the HUD will only partially work. One benefit of the change is that the "black HUD textures in OpenGL" bug is dead.
  • JSIPrimaryFlightDisplay has been completely rewritten, as well. Existing PFD (navball) configs will need to be updated, or you won't see much of anything. Static Overlay textures have changed, as well (they now should be sized to match the size of the screen).

New Variables

  • PERIOD_#HZ - a customizable periodic variable that toggles from 0 to 1 at the frequency specified by the '#' - for instance, PERIOD_2HZ toggles 0-1-0-1 every game second. Any positive number may be used for the '#'.
  • PODSKINTEMPERATURE - reports the skin temperature of the current command pod.
  • When MechJeb is installed, PREDICTEDLANDINGLATITUDE, PREDICTEDLANDINGLONGITUDE, and PREDICTEDLANDINGALTITUDE will tell you where your vessel is likely to land. All three return 0 if MJ is not installed or landing predictions are unavailable. Issue #253.
  • SCIENCECOUNT - a count of the number of experiments stored on the vessel, courtesy Tahvohck.
  • TARGETLATITUDE, TARGETLONGITUDE - these are aliases for LATITUDETGT and LONGITUDETGT.
  • TERMINALVELOCITY reports the terminal velocity at the vessel's current location. It's not useful in space.

New Features

  • MechJebRPM.dll is no longer required. RPM will interface with MechJeb 2.5.2 without requiring a separate DLL. If you are installing this version of RPM over an older version, please delete MechJebRPM.dll and BundledVariableHandlers.cfg. Issue #251.
  • MechJebRPMButtons now supports activating MechJeb's docking autopilot through ButtonDockingGuidance() and ButtonDockingGuidanceState(). Issue #253.
  • JSIGimbal is now available for IVA developers. At present, it supports the GimbalLock action and GimbalLockState state method.
  • Related to MechJebRPM.dll no longer being needed: RPM will now automatically use MechJeb for some variables (DELTAV, DELTAVSTAGE, for instance), instead of using RPM's own internal computations.
  • When FAR is installed, RPM will use FAR for TERMINALVELOCITY and DYNAMICPRESSURE.
  • A JSIVariableAnimator using loop animations can now specify a "stop animation" using stopAnimationName. When specified, this animation is called instead of stopping the "on" animation.
  • JSISASMenu is now available. This is a simple menu that allows toggling SAS as well as setting the SAS mode. It is available on the default MFD as an alternate autopilot page. Press the autopilot button to switch between MechJeb and SAS control.
  • Formatting prefixes U2K (units to kilo-units) and U2M (units to milli-units) have been added to apply fixed scaling to defined variables. U2K rescales the value by 1/1000 (for instance, it will convert ALTITUDE from meters to kilometers), while U2M rescales the value by 1000 (converting DYNAMICPRESSURE from kPa to Pa). Issue #278.

Fixes

  • MechJeb-reported DELTAV and DELTAVSTAGE are more accurate.
  • Initialization error on entering flight has been fixed. Issue #261.
  • Pages using obsolete resource names have been fixed, courtesy user bgse.
  • The HUD textures no longer appear black in OpenGL. Issue #155.
  • Resource consumption tests for JSIActionGroupSwitch have been fixed. Partial fix for Issue #197.
  • The sign of ROLL has been reversed to comply with MISB ST 0601.8 standards. Issue #273.
  • Audio alarms are no longer fixed in space (causing them to fade as you move away). Issue #250.

Miscellany

  • Many of the PFD and HUD on-screen textures have been converted to DDS.
  • More internal code reorganization.
  • PFD, HUD, and text use custom shaders.
  • DYNAMICPRESSURE now reports Q in kPa, not Pa.

Known Issues

  • The HUD ladder draws outside its bounds (drawing on the vertical strips / heading strip) when rolled. Issue #272.

RasterPropMonitor v0.20.0

For KSP 1.0.2. MechJebRPM linked to MechJeb 2.5.1.

Breaking Changes:

  • Resource variables names deprecated in v0.17.0 have been removed. If you start seeing names instead of numbers on your pages, you need to update your pages.
  • An old upgrade MM patch (0.16-0.17-upgrade-patch.cfg) has been removed. If some of your MFDs disappear, the IVA that used it needs to be updated. The update can be done manually by finding the internal config file and replacing "RasterPropMonitorExampleMFD" with "RasterPropMonitorBasicMFD".

New Variables:

  • DISTTOATMOSPHERETOP returns the vertical distance from the vessel to the top of the atmosphere (or a negative value if the craft is above the atmosphere, or there is no atmosphere). Issue #221.
  • IMPACTALARM returns 1 any time the surface velocity of the craft exceeds the crashTolerance rating of the pod. This variable is intended for IVA makers in creating custom variables.
  • Per-pod persistent variables can be queried with PERSISTENT_(variable name). Keep in mind that persistent variables are case-sensitive, so this variable is, as well. Issue #168.
  • HEATSHIELDTEMPERATURE, HEATSHIELDTEMPERATUREKELVIN, HEATSHIELDTEMPERATUREFLUX - reports the temperature of the hottest heat shield on the craft (in Celsius and Kelvin), as well as the net flux on the part (to track whether it is heating or cooling).
  • Plugin state functions can be queried using variable names of the form PLUGIN_(module):(function) - for instance, PLUGIN_JSIParachute:DeployParachuteState will return '1' if any parachutes have been deployed, or 0 if none have.
  • ANGLEOFATTACK and SIDESLIP report ... angle of attack, and side slip angle. When FAR is installed, FAR is used to compute these values. Part of Issue #269.

New Features:

  • JSISteerableCameras now has a parameter skipMissingCameras that will skip over missing cameras when the user changes cameras (next camera / previous camera).
  • JSIActionGroupSwitch has a parameter initialState that can be used to set a switch to 'on' at startup. This feature only applies to custom switches ('intlights' or 'dummy', or 'plugin' if the plugin function is missing).
  • JSIActionGroupSwitch has a parameter switchGroupIdentifier that can be used to make a group of switches function like a "radio button group", where only one of the switches can be on at a time.
  • JSIActionGroupSwitch also has paramaters masterVariableName and masterVariableRange that can be used to enable the switch only when the named variable falls within the specified range.
  • JSISteerableCamera stores the index of its active camera in a special per-prop field, allowing the value of the index to be used like a regular defined variable.
  • The Target Menu will use Docking Port Alignment Indicator names when DPAI is installed; otherwise, it displays the part name (such as "Clamp-o-Tron Docking Port"). Lots of internal changes on the target menu, as well.
  • The External Camera page in the RPM stock MFD now uses JSISteerableCamera with skipMissingCameras, so only installed / existing cameras are displayed. You now need to use the Prev / Next buttons to select cameras.
  • The new module JSIParachute allows IVA buttons to control deploying and cutting parachutes. If RealChute is installed, the player can also arm and disarm RealChute parachutes (in addition to deploying and cutting them). Issue #239.
  • New JSIInternalRPMButtons functions are available to select full throttle or cut throttle at the push of a button (the same as default US keyboard shortcuts 'Z' and 'X').
  • Custom Variables can use defined variables for their range parameter, not just numbers.

Fixes:

  • HORZVELOCITYRIGHT and HORZVELOCITYFORWARD both report surface-relative values. HORZVELOCITYRIGHT is defined as the left-right component of the surface velocity vector, while HORZVELOCITYFORWARD is defined as the forward-back component of the surface velocity vector (where forward-back is derived from the cross product of local "up" and craft "right"). Issue #225.
  • Tourists can no longer EVA, or use any RPM controls, for that matter. Issue #219.
  • Transparent pods that are not the root of a craft now show interiors correctly. Issue #220.
  • Lots of internal code refactoring (compute fewer variables per update to reduce computation costs of the update).
  • DELTAV and DELTAVSTAGE provide better results when MechJeb is installed.
  • Various time displays on the MFDs have been corrected to use the MET formatter instead of KDT.

Known Issues:

  • The HUD looks bad in OpenGL. Issue #155.

###RasterPropMonitor v0.19.4

For KSP 1.0.2. MechJebRPM built against MechJeb 2.5.1.

####New Variables

  • ENGINEFLAMEOUTALARM - triggered when any active engine flames out (out of fuel, out of oxygen, etc).

####New Features

  • JSIGraphingBackground - allows multiple highly-configurable bar graphs and "indicator lamps" to be drawn on the background of a page. Issue #203.
  • JSIActionGroupSwitch can be configured to be disabled unless a separate switch identified by perPodMasterSwitchName is switched on. Issue #169.
  • New SURF MechJebRPM options (in the MJ menu and through RPMButtons callbacks) for surface prograde, retrograde, horizontal +, horizontal -, and Up (Vertical +). Issue #206.
  • JSIVariableAnimator can query an RPM button state (or any method in a module that takes no parameters and returns a bool) using stateMethod.
  • MFD pages now "remember" which page was showing when they were switched away, and they restore that page when they're switched back. Issue #207.
  • Mk1 inline and M3 cockpit RPM treatments courtesy Enceos on the forum. Issue #174.
  • Some textures converted to DDS courtesy Enceos.

####Fixes:

  • NREs initializing JSISwitchableVariableLabel have been eliminated (didn't affect game play, but did show up in the log). Issue #209.
  • Fixed JSITransparentPod (for real, this time) in flight. Issue #205.
  • A bug that caused the HUD ladder to flicker when on the launch pad (for rockets) has been fixed. Issue #213.
  • The MFD now uses RADARALTOCEAN instead of RADARALT. Issue #223.

RasterPropMonitor v0.19.3

For KSP 1.0.2. MechJebRPM built against MechJeb 2.5.

####New Variables:

  • EXTERNALTEMPERATURE and EXTERNALTEMPERATUREKELVIN report external temperature. Issue #177.
  • LATERALBRAKEDISTANCE - estimate of how far the craft will travel if it used maximum thrust to kill horizontal velocity. Issue #162.
  • PODTEMPERATUREKELVIN reports the pod hull temperature in Kelvin. PODTEMPERATURE reports the temperature in Celsius (like it did pre-1.0). Issue #177.
  • PODMAXTEMPERATURE and PODMAXTEMPERATUREKELVIN report the maximum pod temperature. Issue #196.
  • PODNETFLUX reports the flux affecting the pod - positive values mean temperature is increasing, negative values mean temperature is decreasing.
  • SUICIDEBURNSTARTSECS - estimates how soon a full-thrust retrograde burn needs to start in order to land. Issue #162.
  • SURFSPEEDMACH - reports the surface speed as a Mach number (or zero in a vacuum).
  • TARGETGROUNDDISTANCE - the distance between the vessel and the target, as measured on the ground. Issue #162.

####New Features:

  • HullCam VDS wide-angle camera is now supported. Issue #189.
  • New props in the library using stock models.
  • A mechanical switch model in the prop library created by Alexustas, available under the terms of CC 3.0 BY-NC-SA, plus some props using them.
  • Custom mapped variables, allowing IVA makers to rescale values. Issue #202.
  • Looping animation support in JSIVariableAnimator, as well as optional electrical charge consumption. Currently only available for threshold variables. Issue #197.

####Fixes:

  • VesselView flicker has been resolved. Issue #178.
  • Can no longer EVA when the Astronaut Complex is level 1. Issue #183.
  • Max Thrust computation is correct when in atmosphere. Issue #186.
  • JSITransparentPod problem in the ASET ERS command pod is fixed. Issue #201.

RasterPropMonitor v0.19.2

####New Features:

  • JSITransparentPod now supports a field disableLoadingInEditor (defaults to false) to allow people with low-spec computers to disable IVA rendering while in the VAB / SPH. A Module Manager patch to make this default behavior on all parts can be enabled by removing ".noload" from GameData/JSI/RPMPodPatches/DisableTransparencyInEditor.cfg.noload (Issue #157).
  • Fixed bug with camera backgrounds not being erased (Issue #172).
  • Fixed bug with missing skybox in external camera views (Issue #175).

RasterPropMonitor v0.19.1

####Significant Changes:

  • The formatting string KDT (previously used for displaying UT and MET) now adds one to the day field (lower-case 'ddd'). This change will allow UTSECS displayed with yyy:ddd to match the UT displayed by the KSP UI. A new formatting string MET can be used for situations where that feature is undesirable (such as for METSECS). The whole days field DDD is unchanged, so displays using KDT+DDDD:hh:mm:ss for METSECS are unaffected by this change. Existing configs using METSECS and time to apses will need to be updated.

####New Features:

  • New variables SASMODESTABILITY, SASMODEPROGRADE, SASMODENORMAL, SASMODERADIAL, SASMODETARGET, SASMODEMANEUVER to report the new 0.90 SAS modes.
  • New variables TARGETDISTANCESCALEDX and TARGETDISTANCESCALEDY that provide a value between -100 and +100 for each axis courtesy artwhaley.
  • New crew member suffixes TITLE, LEVEL, and EXPERIENCE (eg. CREW_0_TITLE).
  • A page for NavyFish's Docking Port Alignment Indicator in the included RPM MFD.
  • Add JSIInternalRPMButtons for all of the SAS modes added in 0.90, so IVA builders can add SAS control switches.
  • Add Custom Variables (prefixed by CUSTOM_) that allow IVA developers to create their own custom compound alerts.
  • Variables for asteroids: TARGETSIGNALSTRENGTH, TARGETSIGNALSTRENGTHCAPTION, TARGETLASTOBSERVEDTIMEUT, TARGETLASTOBSERVEDTIMESECS, and TARGETSIZECLASS.
  • Add support to control arming / disarming asteroid grapples in the Target Menu.
  • Added nli2work's SPP configs to the RPM distro.

####Bug Fixes:

  • TGTRELX, TGTRELY, TGTRELZ fixed courtesy artwhaley.
  • KSP 1.0 compatibility fixes.

####Miscellany:

  • Bundled Module Manager updated to version 2.6.1.
  • MechJebRPM compiled against MechJeb 2.5.

RasterPropMonitor v0.19.0

This was a KSP 1.0 compatibility release that accidentally had some debug stuff in it.

RasterPropMonitor v0.18.3

This is a maintenance release to make RPM work with KSP 0.25 again.

  • Bundled ModuleManager version updated to 2.5.1.
  • Bug where transparent pods would cause spurious configuration error warnings has been fixed.

RasterPropMonitor v0.18.2

This is a bugfix point release to take care of problems that cropped up after all the changes introduced by KSP 0.24+

Bugs fixed:

  • In certain cases, when used with transparent pods, RPM monitors could report initialization errors in editor, even though they work fine in flight. That's because some things they need simply don't exist before they go to flight, and as such, generate errors while in the editor. A few of such problems were caught and fixed.
  • JSISwitchableVariableLabel would trigger a spurious configuration error warning if the label has no text.
  • The ModuleManager patch to install the RPM-ified Mk1 pod IVA into every pod would also install it into the DERP lifeboat, where it would spam the user with error messages asking where's the IVA when the pod is not inflated. An exception has been added. Thanks to Kaa253 for catching this.

New features

  • Not much of a feature, but thanks to ArcFurnace, the Basic MFD now has more data on the PFD screen, because it's a good idea.

RasterPropMonitor v0.18.1

This is a maintenance release, mostly to get rid of the version compatibility warnings with KSP 0.24.2 (it worked fine) and shoehorning in a few bug fixes for certain obscure issues.

Bugs fixed:

  • It was possible to hear an alarm sound while out of IVA by going out of IVA while it is playing. Now, if you do that, the volume of the alarm sound is reduced to zero, so that you don't hear it, but when you come back, it won't attempt to continue playing from the same position it had when you left.
  • Transparent pods had a chance to misplace the portraits of their denizens in certain cases, hopefully this will no longer be the case.
  • More advanced error detection should distinguish between cases of being broken by a third party mod killing the startup chain and being incorrectly configured.
  • BasicMFD's MODEL {} had incorrect texture URLs in it. They still worked, but they were wrong.

New features:

  • Not much of a feature, but Junk Systems Inc. now has a flag and will offer contracts in the same manner as the stock agencies do -- please don't blame me when those become silly.
  • Monitors within transparent pods will update even when the user is not in IVA, so if they're visible from outside their contents will change.

RasterPropMonitor v0.18

This is (mostly) a maintenance release corresponding with the release of KSP 0.24 and includes certain minor renovations.

  • A minor change in version numbering policy -- version numbers now change after a release, not before. This should not affect anyone.
  • MechJeb version 2.3 is now required if you want interfacing with MechJeb. (That's the earliest version that runs with 0.24 anyway, I believe.)
  • KSP-AVC version-file format is now supported for stating the version of RPM.
  • SCANsat will support RPM directly in the release that should be uploaded very soon. As such, SCANsatRPM.dll is no longer supplied -- if you have the appropriate version of SCANsat installed, it will Just Work. If you still somehow have any copies of SCANsatRPM.dll in your game, get rid of them.
  • Bundled version of ModuleManager updated to current.

Bugs fixed:

  • The lost texture on the primitive camera model has been returned.
  • The model for the internal flag plate prop has been updated with a new one that correctly handles transparent flag textures, but is otherwise identical.

New features:

  • FUNDS, REPUTATION variables show what you would expect.

RasterPropMonitor v0.17

Breaking changes

  • A new system for addressing resources by name is meant to future-proof RPM against mods coming up with new resources. Every resource can now be addressed as SYSR_<system name of resource in upper case>. Old names for resources are now undocumented and deprecated. They will keep working for a few more months, but in version 1.0 at the latest they will be gone.
  • Due the the introduction of JSITransparentPod, the example model of the MFD had to be replaced with a new one. (The old one has broken colliders, which cause Unity to complain profusely when it is exposed to rigors of real space.) The new one has identical dimensions and orientation, but has more buttons, which is likely to screw up your customization.
  • Since I had to introduce a new model, I reorganized the structure of the distribution to finally settle the question 'Mod X wants to use RPM, but it messes with the rest of my pods' for good. It is recommended that the users delete GameData/JSI/RasterPropMonitor AND GameData/MechJeb2RPM completely before installing this version. Please double check your IVAs using RPM and look at the fresh Distribution Notes in the wiki.
  • Because blizzy78 told me that Mu finally disclosed how KSPAssembly and KSPAssemblyDependency work, (why isn't this written anywhere?) MechJebRPM.dll no longer requires it's own separate GameData directory. So now it lives in JSI/RasterPropMonitor/Plugins where it should have been from the start.
  • Just in case, the files will continue henceforth to have the AssemblyVersion number of 0.17.0.0, to facilitate things for people who hardlink to RPM instead of using the API cleanly like they should. (Yes, HoneyFox, that's about you.) The actual visible version of the DLL is kept in AssemblyFileVersion instead, and that is what will change in the future. That should further cut down on the number of incompatibilities.
  • A side effect of the above, the modified IndicatorPanel prop is now called IndicatorPanelRPM, and no longer attempts to install itself into every pod that ever used IndicatorPanel.
  • At the request of K3|Chris, a contributor to B9 Aerospace, the patches for B9 cockpits were moved to GameData/B9_Aerospace/RPM/Patches, so be careful when installing if you want to keep your B9 cockpits with RPM monitors. In the upcoming release of B9, B9 components will natively include RPM support and overwrite these files. When this happens, the next RPM release will no longer include them.

Bug fixes

  • UTSECS did not observe Kerbin time game setting. Oops.
  • MechJebRPM is now compiled against the latest development version of MechJeb. Since version numbering in MechJeb builds has been changed to accomodate Squad's plugin loader braindead versioning policies, this should make it possible to always use the most current version of MechJeb. Due to API changes in MechJeb, a developer build number 254 or later is required, though.
  • SCANsatRPM is now compiled against the version of SCANsat maintained by technogeeky at https://github.com/S-C-A-N/SCANsat -- this should stay compatible throughout. Use the 6.0 build of SCANsat with the SCANsatRPM.dll from this package. In the foreseeable future, SCANsatRPM will be integrated into SCANsat proper, and this particular source of annoyance will be gone.
  • The bundled version of ModuleManager has been updated to 2.1.5.

New features

  • New variable ISLOADED_<assembly name in upper case> returns 1 if a specific plugin is loaded and 0 otherwise.
  • New variable RPMVERSION reports the version number of RPM itself.
  • Stored strings. RasterPropMonitorComputer module configuration can contain a 'storedStrings' parameter which is a list of pipe-separated strings, accessible as variables STOREDSTRING_0, STOREDSTRING_1, etc.
  • JSIActionGroupSwitch module can now be configured to actually consume resources when toggling as well as when whatever it switches is active.
  • JSISelectivelyVisibleProp module permits you to make a prop that is only visible to the occupant of one specific seat, which is handy for transparent projection HUD displays.
  • The JSITransparentPod module will clean your pod windows just like the infamous sfr's plugin would. The drawback is that you can't see any internals within transparent pods if you are IVA. I'm not sure this KSP limitation is possible to work around -- the challenge isn't that you can't see them, the challenge is that you would see double. Warning, this is still highly experimental because I keep finding new things wrong with it.
  • Access to pages can now be limited depending on whether a specific tech has been purchased in career mode.
  • New variables: SEMIMAJORAXIS, TARGETSEMIMAJORAXIS
  • A patch to add RPM into K-P0110 capsule by Ledenko is now included, up until the time Ledenko decides to make his own.

RasterPropMonitor v0.16

This is a maintenance release, released early because MechJeb's version number changed yet again. This version now requires MechJeb version 2.2.1 or a subsequent development build that still has this version number. (0.15 was compiled for 2.2.0).

Bugs fixed

  • Courtesy of John FX, the provided camera model now has a marking on it allowing you to tell where the top side is.
  • textOverlay option would obey localMargins, when the intent was specifically that it would not do so.
  • Paths for the Orbital Orb patch have been corrected to conform to the new installation locations.

New features

  • It is now possible to change the default filter mask for JSITargetMenu. The default has been changed to include landers.

RasterPropMonitor v0.15

Known issues in this version

  • There is still no way to arm and disarm the grappling claw from IVA, even though you can release it from the targeting menu just like a docking port. There will be in the future, but in the meantime you can use action group buttons.

Bugs fixed

  • Variables that have been deprecated and undocumented since version 0.10 have been completely removed.
  • TARGETDISTANCEZ would be negative if the target was in front of the ship and positive if it was behind. The sign on that was flipped to get it to make more sense.
  • LONGITUDETGT actually returned latitude.
  • Looping alarm sounds did not actually work.
  • STAGEREADY accounts for manual stage locking/disabling.
  • JSIActionGroupSwitch's "stage" feature likewise checks to see if staging is locked.
  • Fixed a bug where showing JSIOrbitalDisplay and JSIHUD at the same time would show incorrect colors for the HUD textures.
  • Fixed a bug where the prograde icon in the JSIHeadsUpDisplay pitch ladder was drawn upside down.
  • Fixed a bug where the prograde icons in JSIHUD were invisible if drawn on a transparent prop (like a HUD).
  • Time formatter now observes the KERBIN_TIME system settings. If the system says your day is 6 hours long and year is 426 days long, so will your monitors. For your convenience, a variable named ISONKERBINTIME will return 1 if the game is set to use Kerbin time.
  • Courtesy of angavrilov, closest approach calculations now correctly work with landed vessels.
  • Courtesy of angavrilov, SCANsatRPM now correctly plots post-node trajectory.

New features

  • The new grappling claws had cameras installed in them, available just as docking port cameras are, and are otherwise supported in the targeting menu. ISCLAWREFERENCE variable tells you if the current reference point is a claw, ISREMOTEREFERENCE tells you if the current reference port is not a pod.
  • Claws can be disengaged from the targeting menu just like docking ports.
  • The Target Menu can now select asteroids that are being tracked under the Space Objects menu item.
  • The needsElectricCharge option in JSIActionGroupSwitch is now applicable to all actions.
  • A new option in handler configuration now lets you write background and page handlers which are aware of each other.
  • textOverlay option in page definition can now overlay a static text print over other sources of text, like a page handler, allowing you to make button hints on screen with text.
  • By popular request, you can now disable taking the screenshots of individual monitors by setting doScreenshots option in their configuration to false.
  • By popular request, most of the informational logging can be turned off.
  • JSIVariableAnimator can now also scale props.
  • JSIExternalCameraSelector has a configuration option that disables the light cone automatically turning on when it's picked up.
  • JSIOrbitDisplay now makes better decisions on what to display, making it more useful.
  • JSIOrbitDisplay will now draw the orbits and positions of all celestial bodies orbiting the body that the vessel is orbiting (for instance, the Mun and Minmus when the ship orbits Kerbin).
  • JSISteerableCamera supports multiple cameras (selected with the new nextCamera and prevCamera config parameters). JSISteerableCamera now also has a seekHome config parameter. When the button associated with this parameter is pressed, the currently-displayed camera returns to its initial position (pitch and yaw are set to 0).
  • MechJebRPM new buttons: Force Roll 0, Force Roll +90, Force Roll 180, and Force Roll -90. Landing Guidance (Land at Target / Land Somewhere) and Docking Autopilot are both in the MJRPM page handler. A Rendezvous Autopilot button exists, but it requires a MechJeb update to function.
  • JSIHeadsUpDisplay now displays a prograde icon on the heading bar and the pitch ladder to represent slip and angle-of-attack.
  • Stage locking can now be done using RPM with JSIInternalRPMButtons.ButtonStageLock().
  • And the speed display mode (ORB / SRF / TGT) can be changed with JSIInternalRPMButtons.ButtonSpeedMode().
  • The prograde icon in the JSIHeadsUpDisplay heading strip can be suppressed with showHeadingBarPrograde = false.
  • Added NEXTAPSIS, TIMETONEXTAPSIS, and NEXTAPSISTYPE variables.
  • Added JSIOdometer, which emulates a mechanical odometer to display numerical values in either raw numeric format (8 digits + sign), SI format (3.3 precision plus an SI prefix), or HHH:MM:SS time format.

RasterPropMonitor v0.14

Bugs fixed

  • JSIHeadsUpDisplay computed pitch upside down.
  • Shader in JSIHeadsUpDisplay changed so the ladder will now render correctly on transparent screens.
  • Radial markers on JSIPrimaryFlightDisplay were backwards. Why do people only notice this now?
  • Numerous problems in stock and mod IVA patches fixed. (sigh)
  • Hauling kerbals in IVA-less pods beside RPM-based pods should no longer cause breakage.

New features

  • Sam Hall's Mk2 cockpit got the full prop replacement treatment. If it is installed as distributed, the patch will be automatically used, otherwise you will get the usual Generic Space with props.
  • Certain plane cockpits now have a special transparent HUD prop.
  • Numerous improvements to JSIOrbitDisplay.
  • Custom formatters now support ;-splitting (somewhat).
  • Courtesy of MOARdV, JSISwitchableVariableLabel permits you to have a VariableLabel-style prop that cycles between multiple display strings based on button clicks.
  • JSIInternalEVAHatch can now play an animation of the hatch opening.
  • Action handler API permits JSIActionGroupSwitch actions to be defined in foreign plugins. Thanks to this, the MechJeb control buttons in ALCOR will now work. :)
  • JSIActionGroupSwitch can now also animate things on the pod exterior. BobCat wanted this one.
  • So can JSIVariableAnimator, for completeness. Now you can have your pod lit up if it has electric charge, or something of the sort.
  • JSIVariableAnimator can now also animate texture offset and scale.
  • JSISCANsatRPM will now draw maneuver nodes, post-node projected orbits, and ascending/descending nodes.
  • JSIVariableGraph can now have graphs with adaptive vertical scale.
  • Variable handler API now permits other modules to provide variables. This is the first step towards mathematical expressions in variables, by the way.
  • MASSPROPELLANT and MASSPROPELLANTSTAGE will give you the masses of propellant resources only. Consequently, very, very rough delta V calculation is available in DELTAV and DELTAVSTAGE variables. Due to the variable handler API, this calculation magically becomes about as precise as they get if you have MechJeb installed on the vessel.
  • AGSTATE group of variables returns the state of action group toggles.
  • TARGETISVESSELORPORT, TERRAINDELTA.
  • Resource variables now have a DELTA qualifier. Also a DELTAINV qualifier in case you prefer resource drain to be a negative value.

RasterPropMonitor v0.13

Bug fixes

  • Adjustments to conditions for DOCKINGSPEEDALARM, GEARALARM, ALTITUDEALARM, SLOPEALARM to be slightly less conservative.
  • DOCKINGANGLEALARM would not detect negative angles. Fixed.
  • GROUNDPROXIMITYALARM considerably more sensible now.
  • Thrust calculation now properly accounts for limiting maximum thrust with tweakables.
  • Indicator panel replacement had a broken FUEL indicator due to a typo.

Breaking changes

  • Module functions have been consolidated to simplify some things and enable certain new features. Everywhere you would previously write "JSIInternalPersistence", you need to replace it with "RasterPropMonitorComputer" instead. There's a ModuleManager patch included to that will do it automatically, but it's best that you update for this. Saves should not be affected, except by losing non-critical persistence information.
  • JSISetInternalCameraFOV can now also set the internal camera's maximum rotation and pitch to enable you to see those hatch handles that you can't normally get at, but the syntax has changed completely to enable doing this per-seat. Well, it's not like anyone used this module before anyway, so nobody should be affected.

New features

  • You can now use vessel descriptions (you did know KSP had them for a while, didn't you?) to record your action group assignments (On a new line, 'AG0=Air brakes', etc) and the capsules to have buttons with actual labels with what you wrote, providing an equivalent of the Firespitter's FSInfoPopup that works in line with RPM components. The rest of the text can be available on a monitor page.
  • SCREENSHOT! as the debug logs like to say. If you're currently in IVA and controlling a kerbal, (rather than just watching with a camera from an InternalCameraSwitch) pressing F1 to take a screenshot will also make every monitor in the capsule take a screenshot of it's own screen and save it directly to your screenshots directory -- which is very handy both for debugging monitor output and for mementos. Beware of screens with transparent backgrounds -- they will stay transparent.
  • JSISteerableCamera now has an optional targeting crosshair that points at the original pre-steering direction of the camera and changes size with zoom.
  • JSIVariableLabel now has an extra option for labels which you don't expect to change after being created. Labels that can't change after being created because they don't contain variables work like that by default.
  • JSITargetMenu will now give you the direction a docking port is pointing into relative to the capsule you're in (when you're selecting a reference part) or to the target vessel's reference part (when you're selecting a target port) which will help figuring out which port is which.
  • JSITargetMenu now also has an 'Undock' submenu which will decouple pre-attached or undock docked ports without going out of IVA. Be careful with that.
  • Kerbal Space Center has been forced to cough up access to SURGEON console. Crew list now permits you to access the data on STUPIDITY, COURAGE, BADASS -- which was kind of obvious, just nobody wanted it, but most importantly, current WHEE and PANIC levels. Which are the base values that go into facial expressions of your Kerbals and can be used to construct a biomonitor.
  • There is now also a separate pod-local crew list as opposed to the vessel-global list it was previously.
  • JSIInternalEVAHatch allows the kerbal you currently control in IVA to go EVA by doubleclicking on the hatch from the inside.
  • Stock IVAs that have visible hatches or hatch handles on the inside -- namely, Mk1 pod, Mk1 lander can, Mk2 lander can, cupola and the crew cabin have been equipped with this feature. Mk1-2 pod needed a new prop to be the hatch -- the stock IVA itself seems to be welded shut otherwise. Mk1 cockpit had a special handle installed. The location you want to click is the hatch handle in Mk1 pod, a handle in Mk1 cockpit, and the middle of the cross on the door everywhere else.
  • JSIExternalCameraSelector can now also translate camera transforms for better compatibility with Hullcam VDS. The package now comes with a patch that makes Hullcam VDS cameras into RPM external cameras where possible.
  • JSIVariableAnimator can now also rotate and translate transforms.
  • Which enabled the packaged Mk1 cockpit IVA to have knobs showing current trim settings without adding any extra models or textures.
  • Bar formatter now has an option to fill the string right to left rather than just left to right, as well as terminate it with a different character.
  • Courtesy of MOARdV, we now have a full implementation of the data you would typically get from the Protractor plugin, i.e. phase angles, ejection angles and other things helpful in computing interplanetary transfers.
  • Likewise, MOARdV actually completed what I couldn't and made JSIHeadsUpDisplay, an aviation-style primary flight display module, with 'ladder' instead of the usual navball.
  • But most importantly, he actually wrote JSIOrbitDisplay -- an on-screen representation of orbital map. There's still a few more things it needs before we'll call it complete, but that's already good enough for most purposes.
  • It is now possible to have context-aware page buttons, though the syntax is kind of convoluted. This involves lots of extra new options for PAGE blocks.
  • By request, for added realism, there are now options to make the cameras randomly cut out for a random number of frames.
  • Resource variables now have per-stage versions, as well as masses and densities. Per-stage versions MAY return nonsense, because they exactly mimic what KSP shows in the resource tab -- and that is sometimes nonsense. The list of other new variables added got too long for this change list, there's an unholy bloody lot.
  • B9 cockpits got the full prop replacement treatment.
  • Orbital Orb internal got an RPM-based patch in this version.
  • Bundled ModuleManager version updated to 1.5.6.
  • Patch files for internals rewritten to take advantage of ModuleManager wildcard functionality and cover mod capsules that use stock internals automatically.

RasterPropMonitor v0.12

Bugs fixed

  • JSIExternalCameraSelector would start all parts with cameras in them in show FOV mode, which would create problems when loading a craft with a large number of them. It will now remember the state of FOV cones, so if you saved the craft with them off, they will remain off upon loading.
  • More kicking to JSIPrimaryFlightDisplay. If that doesn't get you a correct target vector now, I don't know what will.
  • Force roll settings would fail to change if force roll was actually enabled.
  • Illegal characters would actually produce worse log spam than before. Fixed.
  • ALTITUDEBOTTOM was actually returning nonsense instead of the altitude of the lowest point of the ship above the terrain. Fixed.
  • Visual Enhancements clouds and city lights are now shown in cameras as good as they're probably ever going to, provided you're using release 6-3 of Visual Enhancements.
  • Multi-mode engines should now be supported correctly for ISP and other calculations. Hopefully.
  • Now the MechJebRPM plugin is compiled for the latest full release of MechJeb, which should maintain the MechJeb control menu compatibility for the subsequent development builds of MechJeb. Hopefully.

New features

  • PartModules can now provide page and background handler functions, with certain restrictions.
  • There is now a special reserved camera transform name, "CurrentReferenceDockingPortCamera", which always looks out from the current reference (i.e. 'control from here') docking port, if that reference transform is in fact a docking port. And you can change the current reference transform from the targeting menu, thus permitting you to look out of any docking port, no matter how many do you have or whether they're mod or stock. It works with JSISteerableCamera too.
  • Consequently, the patch to include external camera selector modules into docking ports has been removed and the docking port cameras button has been freed up for other pursuits, because that feature makes separate docking cameras completely extraneous.
  • By popular demand, the package now comes with an explicit external camera part, for those people who don't wish to use the ALCOR one.
  • A new formatter extension lets you draw values as horizontal bar charts, handy for resource screens.
  • Fonts can now be printed in half width and double width using tags. They are compatible with subscript/superscript, i.e. [hw][sub]m/s[/hw][/sub] will work just fine.
  • Font definition files now permit you to create fonts that contain any unicode character. I.e. if you wanted to write page definition files in Russian without resorting to transliteration, now you can.
  • A monitor can now have as many fonts as you like, provided their dimensions are the same, and they can be switched using [font...] tags.
  • JSIVariableAnimator now supports handling multiple indicators using one instance of the module and shifting texture colors instead of animations.
  • JSIActionGroupSwitch can also do color shifting in addition to animations.
  • JSIInternalFlagDecal is the equivalent of the stock FlagDecal PartModule for use inside IVA -- now you can have a mission flag inside the IVA as well.
  • Most components which can fail to initialise due to configuration errors will now display an unhelpful message saying that they're broken if that happens.
  • Page locking/unlocking options to support touchscreen-style page selectors.
  • There is now an option to plaster a texture over a page as the last step in rendering it, as well as do the same after the background has finished rendering but before text starts printing.
  • New IVA patches for Mk1 pod, Mk1 cockpit, Mk1 lander can, Mk2 lander can, Cupola and Mk1-2 pod with much more monitors -- basically redoing the stock IVA prop placement entirely and preferentially using monitors for instruments, leaving stock instruments in only as backups when appropriate console space is available.
  • A separate included patch completely guts the stock indicator panel and fits it with JSIVariableAnimator-driven lights, all of which actually work.
  • JSISCANsatRPM now also displays AP/PE markers on orbits.
  • New variables: STAGEREADY, APPROACHSPEED, VERTSPEEDROUNDED, TERRAINHEIGHT, GEARALARM, GROUNDPROXIMITYALARM, ISDOCKINGPORTREFERENCE, ALTITUDEALARM, TUMBLEALARM, SLOPEALARM, DOCKINGANGLEALARM, DOCKINGSPEEDALARM.

RasterPropMonitor v0.11

Bugs fixed

  • A massive, ancient bug which resulted in color values never being actually read from config files has been uncovered and squashed. Why am I only learning about this now?... Well, since I had to fix that, might as well declare that from now on, colors are to be given in the much easier to read format where individual color values range from 0 to 255 instead of 0 to 1 -- it didn't work properly before anyway.
  • Icons in JSISCANsatRPM will no longer have the washed-out overbright colors.
  • Despite all precautions, targeting the Sun would still produce nonsensical results and log spam because it has no orbit. Fixed.
  • Failure to specify any noSignalTextureURL could cause the monitor to fail to load. Fixed. Until the release of 0.11, please make sure the option is present in the config file and empty even if you don't want to use a noSignalTextureURL;
  • Incorrectly giving the name of a button transform will not cause log spam obscuring the real problem. Now it will just output an error message in the log and continue on it's merry way with a non-working button. Time will tell if that's a better way to deal with what actually is a fatal error that should cause the entire program to quit.
  • Trying to print a character that isn't present in the font will no longer cause log spam either, instead producing a warning only once.
  • Turns out, the position of prograde/retrograde markers is supposed to be dependent on speed display modes, which JSIPrimaryFlightDisplay previously did not handle at all. In "Target" speed display mode, prograde and retrograde markers point at what MechJeb calls "TGT+" and "TGT-" respectively. This necessitated introducing a button to switch display modes and a SPEEDDISPLAYMODE variable to show the current mode. Strangely, markers on PFD correspond nicely to MechJeb's directions, but are off from what the stock IVA navball shows when the reference part is not itself, but from that I conclude that the stock IVA navball doesn't expect the reference part could be something other than the pod. (The sun's light source certainly doesn't either!) If you have previously used JSIPrimaryFlightDisplay to make your own navball page, please check the manual for changes.
  • JSIFlightLog gave no indication that the log is empty when it actually was, which confused users. Fixed.

New features

  • All buttons can now be located on any other prop in the pod, not just the same prop the module lives in. They can even be located on the internal model itself. One button can now be used to trigger any number of things simultaneously. If you wanted to make an Enterprise display with a control pad located by the captain's seat, you have the tools now.
  • JSITargetMenu now has a submenu that lets you select the reference point of your vessel, as if you clicked "control from here" on it while you're still in IVA. (Going IVA normally makes the pod you're in the reference point.) That's the last missing piece for docking without ever poking your nose out of IVA. An annoying side effect is that the sun shines from the wrong direction when you do that -- I'll see what I can do about manually moving the sun later. (Well, I know I can turn it off...)
  • JSIVariableGraph background handler lets you draw pretty graphs of variables changing over time, with certain limitations.
  • Courtesy of MOARdV, JSISteerableCamera background handler lets you make a camera that doesn't just zoom in and out but can also yaw and pitch, and MechJebRPM page handler will give you a menu that lets you control SmartASS and execute maneuver nodes from the comfort of your cozy IVA.
  • A useful side effect of that is that now handler modules can also take action not only on when buttons are pressed, but also when they are released.
  • Color tags now permit you to omit the alpha value, in which case it will be assumed to be maximum -- that's less of a mouthful to type.
  • The introduction of 'nudge tags' allows you to shift symbols by specific number of pixels, which may be important when adjusting them to fit a graphical background.
  • There are now tags for superscript and subscript, which do exactly what you would expect. It doesn't look particularly good, but should suffice for things like "m/s²"
  • JSIVariablePageTextSwitcher page handler permits you to select between two different page definition files based on the value of a variable, which can take away some of the pain involving particularly complex screens which exist in one of two states.
  • A side effect of the above is that in JSIVariableAnimator, "variableName" can also be a fixed number if you like.
  • New variables SPEEDDISPLAYMODE and SELECTEDSPEED (to make the PFD more closely match the capabilities of the stock navball) and TARGETANGLEDEV (look at the target screen in the example prop and you'll see how this can be used).
  • Switches made with JSIActionGroupSwitch are no longer required to be animated.
  • DLL files of the package will now detect being installed into incorrect locations and complain bitterly.
  • Because more than a few users were confused about which external camera to use when and how to configure that, the MFD in the package now has buttons configured both for the cameras it embeds into the docking ports and ASET ALCOR external cameras.
  • JSIExternalCameraSelector now runs mostly on tweakables.
  • Patches to make the GenericSpace cockpits actually usable, courtesy of therealcrow, are now included.
  • Patches to support more mod docking ports as cameras, courtesy of therealcrow, are now included.

RasterPropMonitor v0.10

Special thanks to MOARdV who is responsible for numerous bug fixes and improvements in this release.

Bugs fixed

  • The SI prefix formatter is now very definitely behaving to spec.
  • Targeting variables now correctly handle special targetable types introduced by MechJeb, i.e. a point on the ground, as well as their names.
  • Targeting variables applicable to celestial bodies will now return correct information about those.
  • Cameras will now try to show the effects produced by the Visual Enhancements mod, inadequately. Proper support will be available when an upcoming release of Visual Enhancements gives unique names to the special camera objects it creates.
  • Color tags were handled incorrectly in cases of two consecutive color tags or a color tag ending the line with no subsequent spaces, which is now fixed.
  • JSISCANsatRPM now correctly draws lines that cross the map around the back, which it previously had to avoid drawing at all.
  • InternalCameraTargetHelper will now prevent all doubleclicking from clearing your target while you're in IVA, not just doubleclicking that results in looking through windows. If you dislike that behaviour, you just need to remove MODULE {name=InternalCameraTargetHelper} from configuration.
  • Time to impact calculations should handle descent in atmosphere and under acceleration better.
  • Some inconsistencies in monitors handling the absence of electric charge in the ship were fixed.

New features

  • One more small breaking API change before I catch anyone else using it, hopefully the last one of those: Background handlers now receive the cameraAspect as a parameter beyond the actual RenderTexture. Which means that JSIPrimaryFlightDisplay no longer needs the screenAspect parameter and will ignore it.
  • There are now custom string formatters for degrees-minute-second coordinates and time. Variables that previously returned either of that as pre-made strings still work, but are deprecated and no longer documented, to be removed no later than in v1.0. Yes, you need to go through your page definition files again, but on the up side, you can customise the way these values are displayed to a much higher degree now.
  • The newly introduced JSITargetMenu page handler does exactly what it says on the tin -- gives you an on-monitor-screen menu to select a target. Yes, it can select a docking port.
  • JSISCANsatRPM can now draw arbitrary lines on the map, which permits you to draw airstrip approach "funnels" and other useful information. There are no such markings bundled with the package yet, because nothke, who originally requested this feature, has not yet sent any in, and I have no clue where they should be. :)
  • JSIExternalCameraSelector now has an option to apply extra rotation to the camera transform, which is handy if you're using it with a model you cannot edit. That involves a minor change for the requirements to create a part for it deliberately -- please check the manual.
  • JSIPrimaryFlightDisplay now also displays a docking orientation marker the same way the Navball docking alignment mod does it.
  • Resources from Extraplanetary Launchpads, KSP Interstellar and Near Future are now available by name.
  • All named resources and alphabetically listed resources now also have variables that return percent of total capacity as a number from 0 to 1.
  • Reference information about planetary bodies is now available as variables, for body currently being orbited and for a target celestial body.
  • New ATMOSPHEREDEPTH variable lets you replace the stock atmosphere depth gauge.
  • Multiple pages within the same monitor can now coexist on the same button. They will be cycled between when this button is pressed. This ensures the example prop will remain in service for quite a while. :)
  • Multiple handler blocks (both page and background) are now allowed per page. The first one that successfully loads will be used -- which will be important when there are more alien plugin integration handlers.
  • Cameras can now optionally have their zoom levels (i.e. FOV) controllable by globalButtons.
  • Cameras can now optionally display a "no signal" texture if the camera was not found.
  • Supplied patch for docking ports now also adds cameras to all IACBM and SDHI docking ports. (Except the developer preview version. Because sumghai mentioned native RPM use in Karmony IVAs.)
  • Numerous patches for stock and mod capsules by Nazari and therealcrow are included.

Please pay special attention to documentation on new formatters. See the full list of deprecated variables and their suggested replacements.

I think I'll finalise version 1.0 once KSP 0.23 is well tested. At that time, deprecated variables will be gone.

RasterPropMonitor 0.9

Bugs fixed

  • Monitor would choke on pages which contained no sources of text. Not anymore.
  • When switching from a page with a working camera to a page where a camera is missing, the screen would keep showing the working one. Fixed.
  • An obscure API issue has been caught before anyone but me used it, whee.
  • Some inconsistencies which could have hindered using transparent colors for certain elements were corrected, if you previously tried to make a transparent display and it didn't work, try again the same way.

New features

  • I promised SCANsat integration, and here it is, for suitably small values of "here": Meet JSISCANsatRPM. I'd wager those suitably small values will suffice for just about anyone, though. There probably still are some bugs in it. It will obviously remain inactive if SCANsat is not installed.
  • Colortags! All text on the monitors can now be colorised letter by letter by using [#rrggbbaa] color sequences in the text -- see the documentation. Associated changes make it easier to create a transparent display, since default text transparency can also be set.
  • JSISetInternalCameraFOV module can help you get around the fact that the FOV of IVA cameras is not configurable and fisheye deformation can be too high for some pod layouts.
  • By popular demand, slope of the surface in degrees is now available as a variable. Also, biome name. (Exactly the way MechJeb displays it). Also a shortened biome name for when you can't be bothered to use the full one.
  • Pages with background handlers that could not be loaded (for example, if JSISCANsatRPM did not load, because the user doesn't have SCANsat) will now fallback to camera or texture background if those are also present in the page configuration. The same thing will happen with page handlers -- if the handler did not load, the page will fallback to text defined by other means.
  • The example prop is replaced by the new MFD courtesy of alexustas, which lets me enable the navball plugin and the map plugin on it -- there's enough buttons now and some are left over. The old example prop will continue working if you installed it into any other pods, unless you do the silly thing and delete it.

RasterPropMonitor 0.8

Bug fixes

  • JSIActionGroupSwitch would make sounds even if you're out of IVA, which is silly when JSIInternalBackgroundNoise makes a point not to.
  • JSIPrimaryFlightDisplay had the icons for direction to target and direction from target backwards.

New features

  • JSIVariableLabel module introduced, to be used when making short variable-based labels that don't warrant the full monitor treatment... though that was out with version 0.7b.
  • A small breaking API change before anyone actually releases anything using it -- page handler functions now get the screen size in characters as arguments. If anyone has been using it and not telling me, sorry folks.
  • JSIExternalCameraSelector now displays a rough indication of where the camera is pointing while in the editor, (it's "rough" because it does not reflect the final field of view and uses the default of 60 degrees, since external camera parts can't know what it will be) and allows you to select the camera ID during construction. Mouse over the camera and press space to do increment the ID. Hold down U to display the fields of view of all bolt-on cameras. Camera IDs are selected in order as you add parts. (Except when you're adding parts in symmetry, in which case all symmetric parts start out with the same ID and changing it breaks symmetry.) This works for the cameras patched the into stock docking ports by the enclosed package as well. It might still be a little buggy, so if you break it, I'd love to see exact steps to replication.
  • Monitors and internal light switches, as well as the background noise module now require electric charge to work. They do NOT actually consume power -- I believe ModuleCommand's electric charge consumption is sufficient to reflect the power needs of flight instruments, and you should mess with that number instead -- they just shut down as ElectricCharge falls below 0.01 units. There's an option to turn that requirement off.
  • A few more new variables -- total effective ISP of all active engines, maneuver node burn time, pod temperature, support for ECLSS-specific resource names, and maybe something else that I missed.

RasterPropMonitor 0.7

Bug fixes

  • Bug introduced in 0.6 which caused RPM to be unable to use page text defined in prop.cfg fixed. Who'd have thought that the exception KSP throws when a file isn't found is not FileNotFound, but something else entirely!
  • More issues with SI prefix formatter caught. If anyone's up to getting this right, I'd love patches, because right now it's a fairly crude hack of a function originally taken from MechJeb and not actually meant to fit specific numbers of characters. I can't get it to mess up display alignment anymore, but it doesn't behave completely true to spec either.
  • Stage switch in JSIActionGroupSwitch now actually activates the next stage as it was meant to. Parts with no physical significance still had their mass computed, which is kinda wrong.
  • Package of the monitors fitted into the stock pods now uses JSIExternalCameraSelector to let you select which of the available docking ports is going to be your camera -- so you can switch between cameras inside ports as desired, though not from the inside. Duh, I've been using the wrong transform for it.
  • InternalCameraTargetHelper did not account for the fact that when you switch back from a window view by doubleclicking, your target also gets lost.

New features

  • The biggest addition to the package is the JSIPrimaryFlightDisplay background handler module, which is exactly what it sounds like -- an overcomplicated building block for a page that can replace the stock navball with something flatter, because a 3D navball in a 3D world is obviously not high tech enough looking. So we render a 3D navball to a 2D plane to display on a 2D screen in a 3D world to heighten your immersion. Like the Enhanced Navball (where many of the ideas and a little code comes from) it displays more directional markers than the stock ball. This example package does not enable it on it's screens, as all of them remain side by side with the stock navball. But you can uncomment the lines in the prop.cfg to take a look at it with my really rough placeholder textures... For a properly polished example, you will want to see ALCOR.
  • There are now variables for time to ascending and descending node with target. Also equivalent airspeed. And an altitude measurement that takes your landing legs into account. There's probably a few more miscellaneous variables I forget.
  • There's a considerable block of new variables to support addressing all the ModularFuels resources by name. And Kethane. And life support resources.
  • Another block of new variables pertaining to input state lets you create a moving joystick using JSIVariableAnimator, or at least should.
  • Monitor can now beep or make other sounds when buttons are pressed. So do switches and buttons made using JSIActionGroupSwitch. Sounds come from the prop itself.
  • JSIVariableAnimator now includes options specifically meant for alarm lights which sound an alarm. (Which you can turn off, of course.)
  • Speaking of sounds, there is now a JSIInternalBackgroundNoise module which can play a background hum for your IVA.
  • Lots of API improvements. Page and background handlers can now subscribe to notifications of when their page becomes active or inactive. They can also subscribe to button clicks from non-page buttons, so making a menu becomes considerably easier. You can also make one instance of a module handle multiple pages, or serve as both a background and a page handler, so it's easier to make a complex system of pages act in concert.
  • The example prop is updated to make use of some of the new features.

RasterPropMonitor 0.6

Bug fixes

  • Format specifiers for SI prefixes had a few bugs which were fixed, and now behave mostly as advertised.

New features

  • Syntax of prop.cfg files has been significantly changed, so if you customized anything in this package, you might have to do some fixing -- see the wickied documentation. This is very much worth it though, because the upsides of that change are...
  • You can now have an unlimited number of pages per prop. Well, it'll crash at around 2.1 billion, but I think you'll run out of memory well before that.
  • Page handlers now no longer need to be loaded as separate modules, RPM will take care of loading them by itself and passing them module configuration.
  • The notion of a camera takes a step back, and now there's a more generalized notion of a page background -- which can be a camera, but it can be something else instead. Which permits such a nicety as a Background Handler plugin. Which permits me to make a Primary Flight Display, which is in the works for the next version(s), because I have finally figured out how to draw something rotated on a RenderTexture.
  • But right now, you can assign a texture to be a page background already, which I'm sure you can find useful.
  • In other news, JSIExternalCameraSelector PartModule is introduced to permit one to have a large array of external cameras without actually creating multiple unique parts and cluttering the part list. Amusingly, while it works on stock docking ports, the resulting cameras are facing the opposite direction of what you need...

RasterPropMonitor 0.5

Bug fixes

  • The only bug actually reported so far fixed, if you want your currently selected page to persist between vessel switches, you need to have MODULE { name = JSIInternalPersistence } on your pod part. It'll keep working if that module is not present, but obviously, won't remember active pages.

New features

  • The new JSIVariableAnimator module lets you create animated gauge props (or any other kind of props with animations on them) driven by the same variables as the RasterPropMonitorGenerator uses -- still using one calculator per pod, even.
  • String.Format is extended by a special format specifier that lets you turn 802975628m into 802Mm right in the page definition file, which should make data displays considerably neater. I'll probably also make the degree/minute/second coordinates formatter and kerbal time formatter into format specifiers later, which will also involve some rewriting of page definitions, but make things much more flexible.
  • Page handler mechanism. It is now possible to create your own plugins that can generate page data during execution in whichever way you please, while the pages are still processed through the same variable substitution system. This lets you do things like creating an onscreen menu in quite a trivial fashion. This might also be the way to hook kOS into the whole thing... I'm not up to doing an actual keyboard with buttons you have to click to make your kerbals type in kOS scripts, but if you want to, this is what I can do from my end to make it easier for you.
  • Lots and lots and lots of minor refactoring all over the place, some of which might result in marginal speed improvements, but I doubt it.