Skip to content
MOARdV edited this page Jan 11, 2019 · 101 revisions

MOARdV's Avionics Systems (MAS)

MAS is a plugin for Kerbal Space Program that greatly enhances the IVA experience in-game. It makes it possible (and hopefully fun) to fly entire missions from the perspective of the Kerbal crew aboard the spacecraft. MAS replaces RasterPropMonitor as the premier IVA experience.

From a player's perspective, MAS has a couple of advantages. First, it feels more responsive. Many of the props in RPM, including the MFDs, are configured so they do not update every FixedUpdate (1/10 of a second). This was done in an attempt to reduce the CPU overhead of RPM, since Unity polls every RPM prop on every FixedUpdate. MAS props use a notification method so Unity doesn't need to visit them every FixedUpdate. Second, it allows more immersive (and complex) IVA designs.

For prop creators, MAS provides an extensive selection of functionality and configuration options. And for the exceptional props, MAS supports Lua scripting, allowing the prop creator to write small programs that can run on the props.

For IVA makers, MAS provides a look similar to RPM, since it uses the same ASET Props and ASET Avionics models that are found in many RPM IVAs. However, the MAS IVA brings a better experience to the player.

Requirements

The following mods are required. They are not included in the MAS distribution.

  • ASET Props: Required for most of the prop configs included in MAS. Visit ASET Props on the KSP forum.
  • ASET Avionics: Required for the rest of the prop configs included in MAS. Visit ASET Avionics on the KSP forum.
  • Module Manager: Required to apply MM patches that enable MAS IVAs in existing command pods. Visit Module Manager on the KSP forum.

Optional Features

Some features in MAS require other mods in order to function. If the prerequisite mod is not installed, then MAS will still operate, but that feature will be unavailable.

  • Advanced Jet Engine: Required for some engine. features. Visit AJE on the KSP forum.
  • Chatterer: Required for the chatterer. features. Visit Chatterer on the KSP forum.
  • Docking Port Alignment Indicator: Optional. MAS can display the DPAI name for docking ports. Visit DPAI on the KSP forum.
  • Ferram Aerospace Research: Required for the far. features. Visit FAR on the KSP forum.
  • Kerbal Actuators: Required for the vtol. features. Visit Kerbal Flying Saucer on the KSP forum or one of the other WBI mods that include VTOL components.
  • Kerbal Alarm Clock: Required for the kac. features. Visit KAC on the KSP forum.
  • Kerbal Engineer Redux: Optional for some of the core features. Visit Kerbal Engineer Redux on the forum or the jrbudda branch of KER on GitHub.
  • MechJeb: Required the mechjeb. functionality, optional for some core features. Visit MechJeb on the KSP forum.
  • RealChute: Required for some parachute. features. Visit RealChute on the KSP forum.

Installation Quick Start

The quick start guide for Installation should help you through the manual installation process. Once you're ready to fly, the Yarbrough Quickstart will guide you through the basics of going to space. Note that the Yarbrough pod is no longer included in MAS, but the guide is still useful for basic navigation of IVA tasks.

This mod includes version checking using MiniAVC. If you opt-in, it will use the internet to check whether there is a new version available. Data is only read from the internet and no personal information is sent.

Using MAS for Players

There are several options available on the MAS Settings page, which is accessible from the Space Center scene. Some of these options may help on lower-performance computers, while others can be used to enhance IVA game play (such as adding custom waypoints for MAS radio navigation beacons, or adding custom waypoints for the stock Ground Stations).

There are guides available (still in progress) for the modern MFDs included in MAS:

Development Builds

Dev builds are available occasionally on DropBox. Development builds are released haphazardly when fixes or features are implemented. Be aware that older dev builds disappear without warning, and I may overwrite dev builds when updating them. These are not formal releases. Dev builds are geared towards IVA developers and testers testing new features or bug fixes.

Frequently Asked Questions

The FAQ will (hopefully) answer common questions.

Want to request a feature? Want to report a bug? Please visit the Issues page and create a new issue.

Review the Changelog for updates and a list of known issues. Releases are on the Releases page.

Getting Started for IVA Makers

While most of the gameplay experience with MAS takes place in the IVA, there are many part modules available. Some of these modules are used to enable features within the IVA, such as the MASIdEngine and MASIdEngineGroup. Some modules enhance gameplay even without using MAS IVAs, such as MASRadar.

Avionics Systems Part Modules

  • MASCamera - This part module allows MFDs to show external camera views. It is similar to JSIExternalCameraSelector, but it has some key differences, such as support for multiple modes and shaders.
  • MASCameraMount - This part module rotates the part around specified axes in response to pan and tilt commands so that the part can visibly show where the camera is aimed.
  • MASContextMenu - This part module allows a MAS action to be accessed from the context menu of a part. It may only be placed on a part that has a MASFlightComputer.
  • MASIdEngine - Used to provide unique identifiers for engines; primarily for use with the engine Category.
  • MASIdEngineGroup - Used to group engines together, allowing them to be switched on or off independently of the master engine controls.
  • MASIdGeneric - The basis for the MAS Identification part modules. It should not be used directly.
  • MASDeployableCamera - This part module allows a MASCamera to be on an extendable boom or other animated part. Deployable cameras are subject to damage from excessive aerodynamic forces.
  • MASFlightComputer - This part module is required on all pods that use MAS-enabled IVAs.
  • MASRadar - This part module provides a simple automatic target selection feature. It has context menu controls, allowing it to be used without being in IVA.
  • MASThrustReverser - This part module is a simple module used to help MAS identify animations that behave as thrust reversers on engines that use them.

A key feature in MAS is the MAS Action Group (MAS AG). The MAS AG allows an IVA maker to create a highly customized gameplay experience for a particular IVA when used with a mod's parts. For instance, the MAS Apollo IVA is designed specifically for use with the Bluedog Design Bureau's Apollo/Saturn (Kane/Sarnus) parts. The IVA has bespoke switches that connect to specific parts in the mod, giving the player a much more detailed immersive gameplay environment. The MAS AG allows the IVA and prop creator to design an IVA around a specific set of parts, and tie control of those parts to specific switches, without requiring the player to configure his or her vessel correctly.

Getting Started for Prop Makers

For a first look at a MAS config file, with an explanation of the what's and why's, look at Tutorial 1 Throttle. For an interactive prop, look at Tutorial 2 Action Group Button. A more involved example is Tutorial 3 RPM Modules, which shows suggested values for using external modules designed to interact with RasterPropMonitor. Tutorial 4 JSIActionGroupSwitch shows how to use MASComponent to duplicate JSIActionGroupSwitch, JSILabel, and JSICallbackAnimator. Another description of converting a prop to MAS is available on the KSP Forum. It's primarily geared towards converting an ASET toggle switch to MAS.

Some general discussion for prop makers can be found in the notes for Porting from RPM. There are some examples listed below, but perusing the props in MOARdV/MAS_ASET and MOARdV/Props will give you concrete examples. Tips and Tricks provides some guidelines on how to take advantage of MAS. There are a few Keyword values that may be useful when configuring props. Familiarity with Persistent Variables is a must for immersive IVA development. The Formatted Rich Text used in MAS is very similar to that used in RasterPropMonitor.

Named Colors allow for a consistent look-and-feel in a set of props, and they allow the IVA creator to change those colors by editing only one file, instead of hundreds of prop configurations. In addition, all of the colors from the XKCD color table, as well as some KSP custom colors are available through the Named Color system.

Lua Scripting is a key enhancement for Avionics Systems. Basic MAS has a lot of capability, but you can do much, much more with a little bit of scripting.

Make sure to look at the paragraph in the preceding section about MAS Action Groups. While a general-purpose IVA can be a lot of fun, designing an IVA and controls specific to a particular set of parts can make for compelling gameplay.

If you're suffering from insomnia, you can always peruse the Introduction for some background information and rationale for this mod. If that doesn't put you to sleep, there's also a lengthy look Under the Hood.

Prop Generation Tool

The Prop Config tool is a Windows executable written in C#. It is designed to automate most of the copy/paste/edit tedium of generating MAS-compatible prop configurations for the ASET prop packs.

Avionics Systems Prop Modules

MAS uses two prop modules to provide functionality in IVA, and one to extend stock behavior. The first two modules can contain multiple components. The modules are:

  • MASComponent - The general-purpose prop module. It can be used for handling colliders, animating props, providing labels, and so forth.
  • MASMonitor - The prop module for MFDs and other "monitor" style displays.
  • MASNavBall - A drop-in enhancement for the stock InternalNavBall module that allows the navball to be switched off, and provides an option to limit the max navball spin rate to simulate mechanical limitations.

Avionics Systems Function Documentation

This documentation is automatically generated from the source code. In addition to the detailed listing below, there is the Index of Functions that lists all functions / methods / variables available in MAS in a single, alphabetized index (close to 800 functions as of July 2018). Generally, I update the wiki documentation at about the same time that I update the source code. In addition to the documentation below, there's also a mapping of RPM variables to MAS variables in this document.

  • MASFlightComputerProxy, MASFlightComputerProxy2, and MASFlightComputerProxy3 - fc - The interface with the core Flight Computer module. The module is split across three pages, grouped by category.
  • MASIChatterer - chatterer - The interface with the Chatterer mod.
  • MASIEngine - engine - The interface with aircraft-oriented engine features (thrust reverser) and the Advanced Jet Engine mod.
  • MASIFAR - far - The interface with the Ferram Aerospace Research mod.
  • MASIKAC - kac - The interface with the Kerbal Alarm Clock mod.
  • MASIMechJeb - mechjeb - The interface with the MechJeb mod.
  • MASINavigation - nav - Interfaces to planetary navigation functions, including Radio Navigation emulation and Waypoint selection.
  • MASIRealChute - parachute - The interface with the RealChute mod and methods to control stock parachutes.
  • MASITransfer - transfer - The interface to interplanetary transfer calculations such as those found in the Protractor mod and the MAS Maneuver Planner, which allows for basic orbital maneuvers.
  • MASIVTOL - vtol - The interface with the WBI VTOL Manager mod.

Fonts

Available fonts (for use on MASMonitor displays, and for MASComponent TEXT) are detailed on the Fonts page.

Shaders

MASCamera cameras may apply a post-processing shader to the camera output it creates. The available shaders and the tunable properties of those shaders are described on the Shaders page.

Credits

MOARdV's Avionics Systems coding is primarily the work of MOARdV. Alexustas created the prop models included in the mod, as well as the Mun and Minmus maps used on the MAS MFD. MOARdV thanks Alexustas for the high quality props in the ASET mods, as well as for the many feature requests and bug reports that have made MAS a much better mod. MOARdV also thanks DeputyLOL and theonegalen for their feedback during this mod's development.

Configuring Avionics Systems

MAS Settings Button

Avionics Systems may be configured using the Application Launcher button from the Space Center scene. Take a look at MAS Settings for more detail.

Additionally, custom radio navigation beacons may be added using MAS_NAVAID config files, as described under Radio Navigation.

Clone this wiki locally