# iornman1213/mig29-nuclearoption architecture

> Architecture diagram of the GitHub repository iornman1213/mig29-nuclearoption, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/iornman1213/mig29-nuclearoption
- Repository: https://github.com/iornman1213/mig29-nuclearoption
- Video tour (about a minute): https://gitdiagram.com/iornman1213/mig29-nuclearoption/video

## Overview

This repository produces a flyable MiG-29 mod for Nuclear Option, plus the editor tooling and model/texture assets used to create it. The player-facing workflow is installing the mod and plugin, then flying an aircraft with working cockpit instruments, weapons, countermeasures, gear and liveries. The map includes those distinct runtime capabilities and the Unity aircraft-builder layer. Some subsystems are represented from the README or source index rather than inspected implementation; uncertain links are omitted.

Main entry points: [`unity/MiG29Instruments/Plugin.cs`](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Instruments/Plugin.cs) (Instrument plugin), [`unity/MiG29Tools/MiG29Builder.cs`](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29Builder.cs) (Aircraft builder), [`unity/MiG29Tools/MiG29Polish.cs`](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29Polish.cs) (Aircraft polish), [`unity/MiG29Instruments/Chaff.cs`](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Instruments/Chaff.cs) (Chaff behavior)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_build["Aircraft authoring"]
  node_builder["Aircraft builder<br/>[MiG29Builder.cs]"]
  node_cockpitbuild["Cockpit setup<br/>[MiG29Cockpit.cs]"]
  node_polish["Aircraft polish<br/>[MiG29Polish.cs]"]
end

subgraph group_plugin["In-flight plugin"]
  node_instruments["Instrument plugin<br/>[Plugin.cs]"]
  node_instrumentmath["Instrument math"]
  node_cockpitsetup["Cockpit setups<br/>[CockpitSetups.cs]"]
  node_hotkeys["Plugin hotkeys<br/>[Hotkeys.cs]"]
  node_chaff["Chaff behavior<br/>[Chaff.cs]"]
  node_holes["Damage display<br/>[Holes.cs]"]
  node_mirrors["Rear-view mirrors<br/>[Mirrors.cs]"]
  node_cobra["Cobra maneuver<br/>[Cobra.cs]"]
  node_liveries["Livery runtime<br/>[Liveries.cs]"]
end

subgraph group_aircraft["Aircraft systems"]
  node_flightmodel["Flight model"]
  node_weapons["Weapons and tanks<br/>[MiG29Weapons.cs]"]
  node_countermeasures["Countermeasure setup"]
  node_maingear["Main gear<br/>[MiG29MainGear.cs]"]
  node_nosegear["Nose gear<br/>[MiG29NoseGear.cs]"]
  node_airbrakes["Airbrakes<br/>[MiG29Airbrakes.cs]"]
end

subgraph group_content["Visual content"]
  node_liverybuilder["Livery builder"]
  node_cockpitatlas["Cockpit atlas<br/>[cockpit_atlas.py]"]
  node_cockpitmodel["Cockpit model<br/>[cockpit_build.py]"]
  node_missilegen["Missile generator<br/>[missile_gen.py]"]
  node_baygrid["Bay geometry<br/>[bay_grid.py]"]
  node_storedata["Aircraft assets<br/>[ModelExport.cs]"]
end

node_player(("Player"))
node_game["Nuclear Option"]

node_player -->|"flies modded aircraft"| node_game
node_game -->|"hosts plugin"| node_instruments
node_builder -->|"configures"| node_flightmodel
node_builder -->|"delegates to"| node_cockpitbuild
node_builder -->|"delegates to"| node_weapons
node_builder -->|"delegates to"| node_countermeasures
node_builder -->|"delegates to"| node_maingear
node_builder -->|"delegates to"| node_nosegear
node_builder -->|"delegates to"| node_airbrakes
node_builder -->|"delegates to"| node_polish
node_instruments -->|"uses calculations"| node_instrumentmath
node_instruments -->|"attaches"| node_cockpitsetup
node_instruments -->|"checks shortcuts"| node_hotkeys
node_instruments -->|"integrates"| node_chaff
node_instruments -->|"integrates"| node_holes
node_instruments -->|"integrates"| node_mirrors
node_instruments -->|"integrates"| node_cobra
node_weapons -->|"configures pods"| node_countermeasures
node_countermeasures -->|"references behavior"| node_chaff
node_chaff -->|"references"| node_holes
node_polish -->|"references"| node_mirrors
node_polish -->|"references"| node_cobra
node_cockpitbuild -->|"shares calculations"| node_instrumentmath
node_cockpitmodel -->|"reads atlas layout"| node_cockpitatlas
node_liverybuilder -.->|"builds livery data"| node_liveries
node_missilegen -.->|"supplies generated content"| node_weapons
node_baygrid -.->|"supports geometry authoring"| node_storedata
node_player -->|"creates liveries"| node_liverybuilder
node_instruments -->|"reads aircraft state"| node_game

click node_builder "https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29Builder.cs"
click node_flightmodel "https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29FlightModel.cs"
click node_cockpitbuild "https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29Cockpit.cs"
click node_weapons "https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29Weapons.cs"
click node_countermeasures "https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29Countermeasures.cs"
click node_maingear "https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29MainGear.cs"
click node_nosegear "https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29NoseGear.cs"
click node_airbrakes "https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29Airbrakes.cs"
click node_polish "https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29Polish.cs"
click node_instruments "https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Instruments/Plugin.cs"
click node_instrumentmath "https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29InstrumentMath.cs"
click node_cockpitsetup "https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Instruments/CockpitSetups.cs"
click node_hotkeys "https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Instruments/Hotkeys.cs"
click node_chaff "https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Instruments/Chaff.cs"
click node_holes "https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Instruments/Holes.cs"
click node_mirrors "https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Instruments/Mirrors.cs"
click node_cobra "https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Instruments/Cobra.cs"
click node_liverybuilder "https://github.com/iornman1213/mig29-nuclearoption/blob/main/liveries/MiG29LiveryBuilder.cs"
click node_liveries "https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Instruments/Liveries.cs"
click node_cockpitatlas "https://github.com/iornman1213/mig29-nuclearoption/blob/main/tools/cockpit_atlas.py"
click node_cockpitmodel "https://github.com/iornman1213/mig29-nuclearoption/blob/main/blender/cockpit_build.py"
click node_missilegen "https://github.com/iornman1213/mig29-nuclearoption/blob/main/tools/missile_gen.py"
click node_baygrid "https://github.com/iornman1213/mig29-nuclearoption/blob/main/tools/bay_grid.py"
click node_storedata "https://github.com/iornman1213/mig29-nuclearoption/blob/main/tools/model_export/ModelExport.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_builder,node_cockpitbuild,node_polish toneBlue
class node_instruments,node_instrumentmath,node_cockpitsetup,node_hotkeys,node_chaff,node_holes,node_mirrors,node_cobra,node_liveries toneAmber
class node_flightmodel,node_weapons,node_countermeasures,node_maingear,node_nosegear,node_airbrakes toneMint
class node_liverybuilder,node_cockpitatlas,node_cockpitmodel,node_missilegen,node_baygrid,node_storedata toneRose
class node_player,node_game toneIndigo
```

## Components

### Aircraft authoring

- [Aircraft builder](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29Builder.cs): `unity/MiG29Tools/MiG29Builder.cs`
- [Cockpit setup](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29Cockpit.cs): `unity/MiG29Tools/MiG29Cockpit.cs`
- [Aircraft polish](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29Polish.cs): `unity/MiG29Tools/MiG29Polish.cs`

### In-flight plugin

- [Instrument plugin](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Instruments/Plugin.cs): `unity/MiG29Instruments/Plugin.cs`
- [Instrument math](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29InstrumentMath.cs): `unity/MiG29Tools/MiG29InstrumentMath.cs`
- [Cockpit setups](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Instruments/CockpitSetups.cs): `unity/MiG29Instruments/CockpitSetups.cs`
- [Plugin hotkeys](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Instruments/Hotkeys.cs): `unity/MiG29Instruments/Hotkeys.cs`
- [Chaff behavior](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Instruments/Chaff.cs): `unity/MiG29Instruments/Chaff.cs`
- [Damage display](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Instruments/Holes.cs): `unity/MiG29Instruments/Holes.cs`
- [Rear-view mirrors](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Instruments/Mirrors.cs): `unity/MiG29Instruments/Mirrors.cs`
- [Cobra maneuver](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Instruments/Cobra.cs): `unity/MiG29Instruments/Cobra.cs`
- [Livery runtime](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Instruments/Liveries.cs): `unity/MiG29Instruments/Liveries.cs`

### Aircraft systems

- [Flight model](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29FlightModel.cs): `unity/MiG29Tools/MiG29FlightModel.cs`
- [Weapons and tanks](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29Weapons.cs): `unity/MiG29Tools/MiG29Weapons.cs`
- [Countermeasure setup](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29Countermeasures.cs): `unity/MiG29Tools/MiG29Countermeasures.cs`
- [Main gear](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29MainGear.cs): `unity/MiG29Tools/MiG29MainGear.cs`
- [Nose gear](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29NoseGear.cs): `unity/MiG29Tools/MiG29NoseGear.cs`
- [Airbrakes](https://github.com/iornman1213/mig29-nuclearoption/blob/main/unity/MiG29Tools/MiG29Airbrakes.cs): `unity/MiG29Tools/MiG29Airbrakes.cs`

### Visual content

- [Livery builder](https://github.com/iornman1213/mig29-nuclearoption/blob/main/liveries/MiG29LiveryBuilder.cs): `liveries/MiG29LiveryBuilder.cs`
- [Cockpit atlas](https://github.com/iornman1213/mig29-nuclearoption/blob/main/tools/cockpit_atlas.py): `tools/cockpit_atlas.py`
- [Cockpit model](https://github.com/iornman1213/mig29-nuclearoption/blob/main/blender/cockpit_build.py): `blender/cockpit_build.py`
- [Missile generator](https://github.com/iornman1213/mig29-nuclearoption/blob/main/tools/missile_gen.py): `tools/missile_gen.py`
- [Bay geometry](https://github.com/iornman1213/mig29-nuclearoption/blob/main/tools/bay_grid.py): `tools/bay_grid.py`
- [Aircraft assets](https://github.com/iornman1213/mig29-nuclearoption/blob/main/tools/model_export/ModelExport.cs): `tools/model_export/ModelExport.cs`

### Other components

- **Player**
- **Nuclear Option**

## Connections

- Player → Nuclear Option: flies modded aircraft (evidence: `README.md`)
- Nuclear Option → Instrument plugin: hosts plugin (evidence: `README.md`)
- Aircraft builder → Flight model: configures (evidence: `unity/MiG29Tools/MiG29Builder.cs`)
- Aircraft builder → Cockpit setup: delegates to (evidence: `unity/MiG29Tools/MiG29Builder.cs`)
- Aircraft builder → Weapons and tanks: delegates to (evidence: `unity/MiG29Tools/MiG29Builder.cs`)
- Aircraft builder → Countermeasure setup: delegates to (evidence: `unity/MiG29Tools/MiG29Builder.cs`)
- Aircraft builder → Main gear: delegates to (evidence: `unity/MiG29Tools/MiG29Builder.cs`)
- Aircraft builder → Nose gear: delegates to (evidence: `unity/MiG29Tools/MiG29Builder.cs`)
- Aircraft builder → Airbrakes: delegates to (evidence: `unity/MiG29Tools/MiG29Builder.cs`)
- Aircraft builder → Aircraft polish: delegates to (evidence: `unity/MiG29Tools/MiG29Builder.cs`)
- Instrument plugin → Instrument math: uses calculations (evidence: `unity/MiG29Instruments/Plugin.cs`)
- Instrument plugin → Cockpit setups: attaches (evidence: `unity/MiG29Instruments/Plugin.cs`)
- Instrument plugin → Plugin hotkeys: checks shortcuts (evidence: `unity/MiG29Instruments/Plugin.cs`)
- Instrument plugin → Chaff behavior: integrates (evidence: `unity/MiG29Instruments/Plugin.cs`)
- Instrument plugin → Damage display: integrates (evidence: `unity/MiG29Instruments/Plugin.cs`)
- Instrument plugin → Rear-view mirrors: integrates (evidence: `unity/MiG29Instruments/Plugin.cs`)
- Instrument plugin → Cobra maneuver: integrates (evidence: `unity/MiG29Instruments/Plugin.cs`)
- Weapons and tanks → Countermeasure setup: configures pods (evidence: `unity/MiG29Tools/MiG29Weapons.cs`)
- Countermeasure setup → Chaff behavior: references behavior (evidence: `unity/MiG29Tools/MiG29Countermeasures.cs`)
- Chaff behavior → Damage display: references (evidence: `unity/MiG29Instruments/Chaff.cs`)
- Aircraft polish → Rear-view mirrors: references (evidence: `unity/MiG29Tools/MiG29Polish.cs`)
- Aircraft polish → Cobra maneuver: references (evidence: `unity/MiG29Tools/MiG29Polish.cs`)
- Cockpit setup → Instrument math: shares calculations (evidence: `unity/MiG29Tools/MiG29Cockpit.cs`)
- Cockpit model → Cockpit atlas: reads atlas layout (evidence: `blender/cockpit_build.py`)
- Livery builder → Livery runtime: builds livery data
- Missile generator → Weapons and tanks: supplies generated content
- Bay geometry → Aircraft assets: supports geometry authoring
- Player → Livery builder: creates liveries (evidence: `README.md`)
- Instrument plugin → Nuclear Option: reads aircraft state (evidence: `README.md`)
