For Prop Makers - MOARdV/AvionicsSystems GitHub Wiki

Creating a prop config file is different than it is for RPM. For starters, props typically have one MODULE node. MFDs with buttons will have two.

The MODULE that all props use is MASComponent. This Module will contain one or more (possibly many, many more) nodes underneath it that describe how the prop works and how it appears. There are many examples of how to configure props under MOARdV/MAS_ASET.

The most important difference is in the concept of variables. In RasterPropMonitor, most variables provided information. These variables were statically defined in the RPM plugin, and it was extremely difficult for an prop maker to extend that behavior. In MAS, all of the 'variables' are functions, and the prop maker may use mathematical computations to customize behavior.

For instance, if an alarm light should activate when there's less than 10% Liquid Fuel remaining:

  variable = fc.ResourcePercent("LiquidFuel") < 0.1

If you want the altitude to display as kilometers instead of meters, fc.Altitude() * 0.001.

There is a master list of every function available to MAS at the Index of Functions. In addition to the list of functions, there is a list of the categories that the functions are grouped in.

If the functions are inadequate - especially for triggering actions - then MAS also supports Lua Scripting. Most of the Lua language is supported by the interpreter bundled with MAS. As a general rule, you'll want to reserve scripting for player-triggered actions, not variable computations, since the Lua interpreter is quite slow compared to the MAS inline evaluator.

There are a number of examples on this wiki that include explanations:

A few other pages to look at as you develop props:

  • 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.
  • Lua Scripting is a key advantage for Avionics Systems.
  • The COLLIDER_ADVANCED MASComponent allows for Touch Screens and other position-aware props.
  • Multiple Fonts are available for use on MASMonitor displays, and [MASComponent]] TEXT.
  • Shaders are included to apply post-processing effects to MASCamera output.

Important documentation that alexustas provided for the modular props:

  • Modular Push Buttons - For designing many different styles of modern push buttons.
  • Modular Toggle Switch - For designing many different styles of mechanical switches.
  • Advanced Indicators - An upgrade to the Advanced Indicator (colored bar graph instrument) that provides a fully-configurable caption/label panel.

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.

Prop Generation Tool

The Prop Config tool is a Windows executable written in C#. It is designed to simplify much of the copy/paste/edit tedium of batch creation of MAS-compatible props.