This is an old revision of the document!
Arma 3 MFD Creator User Guide
Purpose
The MFD Creator is a browser-based drawing tool for building Arma 3 `class MFD` HUD/HMD config fragments. It lets you draw HUD symbols on a normalized 0..1 coordinate plane, edit their properties, and export Arma config-friendly code.
The tool runs fully in your browser. It does not need a database, login, or server-side processing.
Screen Layout
The editor now uses top-menu pages:
Project Setup: set export target, HUD class, mount type, color, font, and memory points. Drawing is locked until setup is complete.
Editor: draw and edit HUD geometry on the 0..1 plane.
Draw: Manager: manage Draw Groups, condition wrappers, and fixed bones.
Config: Export: review, copy, or download generated config.
Admin: edit the browser-side library copy.
The top menu also has a “Library” dropdown. Choosing an item adds it to the current project.
Use the tool buttons on the left:
Select: select and move existing elements.
Line: draw a straight line.
Box: draw a rectangle. Exports as a closed line shape.
Circle: draw a circle. Exports as a multi-point line approximation.
Polygon: draw a filled `type = “polygon”` element. The inspector limits it to 3 or 4 points.
Text: place text. Can be static text or a dynamic Arma MFD string source.
Bone Cue: place a vector bone cue. Exports a `class Bones` vector bone plus a `class Draw` Draw Group that uses it.
PylonIcon: place a `type = “pylonIcon”` element with editable `pos[]`, `pylon`, and `name` fields.
HUD Scale: create an exported Arma `type = “scale”` element. Use this for speed, altitude, heading, or similar source-driven scale strips.
Radar / RadarToView / Turret / TurretToView: create projected MFD elements with editable projection/source fields and an extra config text area for advanced setup.
Eraser: removes a line segment. For circles, the circle is converted into a grouped polyline with the nearest segment removed.
Transform Scale: scales the selected editor element around its center by dragging. This is an editor transform, not an exported `type = “scale”` element.
Rotate: rotates selected line, grouped-line, polygon, or box geometry around its center. Rotated boxes are converted to polygons so the exported point geometry remains accurate.
To draw:
Select a tool.
Click or drag on the HUD Plane.
Select the created Draw Group.
Edit its properties in the inspector.
Grid And Snap
The HUD Plane uses normalized coordinates.
Grid controls only the visible grid spacing.
Snap distance controls how coordinates are rounded while drawing or moving.
Snap enables or disables coordinate snapping.
Examples:
`0.1` gives coarse placement at tenths.
`0.05` is useful for rough layout.
`0.025` gives finer placement.
`0.001` gives near-free placement while still rounding the exported values.
Draw Groups
In this tool, a Draw Group means one `class <NAME>` inside `class Draw`.
Draw Group actions:
Select a Draw Group to edit it.
Ctrl-click Draw Groups to multi-select individual Draw Groups.
Shift-click Draw Groups to select a range.
`{}` merges selected line/grouped-line Draw Groups into one exported `type = “line”` class.
`][` splits the selected grouped-line Draw Group into individual line segments.
`++` duplicates the selected element.
`x` deletes the selected element.
`^` and `v` move the selected element up or down in export/draw order.
Draw Group order affects the order of generated config classes. Grouped-line Draw Groups preserve Arma `points[]` line breaks by exporting `{}` between point chains.
Condition Wrappers
Use Draw Manager to create optional Arma `type = “group”` condition wrappers around Draw Groups.
Add Condition creates a new condition wrapper and makes it active.
Delete Condition removes the selected condition wrapper and leaves its Draw Groups unwrapped.
The selected condition wrapper controls which wrapper new Draw Groups are assigned to.
Wrapper 'condition' exports as `condition = “…”;`.
Supported condition values include normal Arma MFD conditions such as:
Bones
Use 'Draw Manager' to create fixed bones.
Enter a bone name and select Add Bone.
The bone is created at the selected Draw Group center, or at `0.5,0.5` when no Draw Group is selected.
Set the selected bone to make new lines relative to that bone.
Existing lines and grouped lines can be assigned to a bone in the selected element inspector.
Bone-relative lines export in this form:
{"pos_airbrake_lh", {-0.025, -0.025}, 1}
Element Library
The top-menu 'Library' dropdown contains reusable MFD elements generated from scanned Arma 3 and RKSL config files.
Choose a library item to add it to the center of the HUD plane. Library items are copied into the current project as normal editable Draw Groups. Their class names are made unique if the current project already has a matching class name.
Project Settings
Set these before final export:
Export target
`Vehicle class MFD`: exports a `class MFD` fragment.
`Magazine mfdElements`: exports a `class mfdElements` fragment for pylon/dynamic loadout use.
HUD class: the generated root class name, for example `AirplaneHUD` or `HelmetHUD`.
Mount
'Cockpit fixed`: uses `topLeft`, `topRight`, and `bottomLeft` memory points.
`Helmet mounted`: uses `helmetMountedDisplay`, `helmetPosition`, `helmetRight`, and `helmetDown`.
Color / Alpha: default HUD color used by elements unless overridden.
Font: config font name used by the HUD. The dropdown contains font names found in local Arma/RKSL configs:
For cockpit HUDs, confirm the memory point names match the model. For HMDs, confirm the helmet vectors are correct for the intended aircraft/view.
Element Properties
Select a Draw Group to edit its properties.
Common properties:
Class name: generated config class name. Use Arma-safe names with letters, digits, and underscores.
Color override: optionally give one element its own color.
Coordinates: normalized `0..1` values.
Width: line width in MFD config terms.
Line-specific:
`x1`, `y1`, `x2`, `y2`: line endpoints.
`lineType`: solid, dotted, dashed, or dot-dashed.
Grouped-line-specific:
Chains: number of point chains that will be separated by `{}` in `points[]`.
Points: total point count across all chains.
Width / lineType: exported once on the grouped line class.
Box-specific:
`x`, `y`: start position.
`w`, `h`: width and height.
Circle-specific:
Text-specific:
`source`: `static`, `speed`, `altitudeAGL`, `heading`, `fuel`, `weapon`, `ammo`, `userText`, etc.
`Static text`: used when `source` is `static`.
`sourceScale`: multiplier for dynamic values.
`sourcePrecision`: decimal precision for dynamic values.
`sourceIndex`: index for sources such as weapon, ammo, pylon, `user`, or `userText`.
`align`: left, center, or right.
`scale`: text size.
Bone-cue-specific:
`source`: vector source such as `impactpoint`, `impactpointtoview`, `target`, `targetToView`, `weaponToView`, or `wppointtoview`.
`condition`: optional condition wrapper value such as `bomb`, `missilelocked`, `laseron`, or `user0`.
`pos10x`, `pos10y`: vector projection scale.
`size`: cue size around the vector bone.
For helmet-mounted displays, prefer `ToView` vector sources such as `impactpointtoview`, `targetToView`, and `wppointtoview`.
Exporting Config
The generated config appears in Config Export.
Use:
Paste the exported fragment into the relevant Arma config file:
Review the exported config before packing:
Confirm class names are unique.
Confirm cockpit memory points or HMD vectors are correct.
Confirm vector sources match cockpit vs HMD use.
Confirm text sources and `sourceIndex` values are correct.
Confirm line/circle complexity is reasonable.
Use Import to load either an editor project JSON file or an Arma config extract.
Supported import file types:
`.json`: full editable MFD Creator project.
`.hpp`, `.txt`, `.cpp`, `.h`: Arma config extract.
Config import supports common `class MFD` and `class mfdElements` fragments containing:
root HUD class settings,
`color[]`, `font`, cockpit memory points, and HMD vectors,
`class Bones` vector bones,
`class Draw` line elements,
absolute and fixed-bone line point triplets,
text elements,
simple `type = “group”` condition wrappers,
bone cue patterns that use a vector bone.
Imported line geometry is converted into editable elements where possible:
two points become a Line;
rectangular closed lines become a Box;
circular closed line approximations become a Circle;
longer polylines and classes with `{}` line breaks become one grouped line layer.
Config import is intended for practical extracts and round-tripping this tool's own exports. It is not a full Arma preprocessor.
Saving And Loading Projects
Use Save JSON to download an editable project file:
arma_mfd_editor_project.json
This stores:
project settings,
grid and snap settings,
all drawn elements,
Draw Group order.
Use Import to load a saved project JSON back into the editor.
NOTE: JSON project files are for the editor only. They are not Arma config files.
Keyboard Shortcuts
When not typing in an input:
Practical Workflow
Choose export target and mount type.
Set the HUD class name and default color.
Set grid and snap distance.
Draw static reference symbols first, such as waterline, reticle, or frame.
Add dynamic text values.
Add bone cues where the Draw Group needs to follow a vector source.
Name Draw Groups with config-safe class names.
Export config.
Paste into the addon config.
Validate with your normal Arma config build/static-check process.
Test in game and return to the editor for coordinate adjustments.
Public Use Notes
The tool is static and client-side. Multiple users can use it at the same time because each browser tab has its own local state.
It does not provide:
accounts,
shared projects,
live collaboration,
central storage,
permission control,
audit history.
Known Limitations
It exports useful config fragments, not a complete addon.
It does not fully parse arbitrary Arma config syntax, macros, includes, inheritance, or preprocessor output.
It imports supported MFD/HUD config extracts into editable shapes where possible.
Circle export uses line segments, not a native Arma circle primitive.
Bone cues are a simple generated pattern around a vector bone.
It cannot verify model memory points, turret paths, or source behavior in game.
Final validation still needs Arma config checking and in-game testing.