Important
BepInEx 5 (x64) required - install BepInEx before this mod.
Warning
- Third-party aircraft and MFD mods may break layout - custom
TargetScreenUI/ tactical overlays can conflict; setDisplayMode=skipin Configuration Manager or disable conflicting MFD mods.
Tip
Configuration Manager recommended - in-game UI for com.at747.missilecamera.bepinex.cfg. After game updates, delete BepInEx\cache\harmony_interop_cache.dat if patches behave oddly.
BepInEx 5 plugin for the flight sim Nuclear Option that adds a live seeker-eye view (Missile Nose Cam) and a tactical HUD overlay directly onto your cockpit MFD Target display.
Plugin GUID: com.at747.missilecamera.bepinex
- Features
- Requirements
- Player installation
- Controls & keybinds
- Configuration (BepInEx Configuration Manager)
- Project layout
- Changelog
- Licence
- MFD split-screen UI: Splits the wide tactical MFD (Target view) into zones and embeds the missile feed in the weapons panel area.
- Seeker cam (missile nose cam): Renders a live
RawImagefeed from your latest player-owned in-flight missile while it guides toward the target. - Tactical HUD overlay: Telemetry (
SPD,ALT,RNG), horizon reticle, salvo info, and target markers drawn on the live feed. - Manual feed controls: Cycle in-flight owned missiles and adjust camera zoom while the MFD overlay is active (see Controls below).
- Per-aircraft layout (
DisplayMode=auto):- Dedicated split (e.g. KR-67): wide target cam on the left, missile panel on the right.
- Small tac overlay (e.g. Cricket): mod skipped — vanilla tactical MFD unchanged.
- Mission-only bootstrap: Harmony patches and the feed driver attach on the first mission scene, not in the main menu.
- Nuclear Option (Steam).
- BepInEx 5 (x64) in the game root (
BepInEx\core\must exist for build reference paths). - Configuration Manager (recommended) — in-game UI for plugin settings.
-
Install BepInEx 5 for Nuclear Option.
-
Install Configuration Manager (recommended).
-
Copy into:
Nuclear Option\BepInEx\plugins\MissileCamera\MissileCamera.dll
-
Settings are stored in
BepInEx\config\com.at747.missilecamera.bepinex.cfg(auto-created on first run). Edit in-game via Configuration Manager, or edit the.cfgfile while the game is closed. -
Do not rename the plugin folder or install duplicate copies under different names.
-
See
release/v0.27.1/INSTALL.txtor GitHub Releases for a checklist.
Active only while the missile feed overlay is on and you have player-owned in-flight missiles. US English keyboard layout (Right Alt may act as AltGr on some EU keyboards). Keybinds are fixed in code (not in Configuration Manager).
| Keybind | Unity KeyCode |
Action |
|---|---|---|
Right Alt + / |
RightAlt + Slash |
Next missile (newer; wraps 6/6 → 1/6) |
Right Alt + , |
RightAlt + Comma |
Previous missile (older; wraps 1/6 → 6/6) |
Right Alt + ; |
RightAlt + Semicolon |
Zoom in (narrower FOV) |
Right Alt + . |
RightAlt + Period |
Zoom out (wider FOV) |
Right Shift + . |
RightShift + Period |
Reset zoom offset to 0.0 |
Sticky selection: after Next/Prev the camera stays on your chosen missile when new ones launch. If it is destroyed, the feed falls back to the newest remaining missile.
Zoom HUD: each zoom change shows the current offset for 0.5 s above feed center. Zoom step/limits: MissileCameraControls in Configuration Manager.
All settings are exposed through BepInEx.Configuration (Config.Bind in Config/MissileCameraBepInConfig.cs). Use Configuration Manager in-game, or edit:
BepInEx\config\com.at747.missilecamera.bepinex.cfg
| Key | Default | Description |
|---|---|---|
Enabled |
true |
Master switch for MFD layout changes |
DisplayMode |
split |
auto | skip | split |
OverlayMaxWidth |
0.45 |
Max normalized width for tac overlay detection |
LeftWidth |
0.58 |
Target cam column width (0–1) |
MissilePanelBottom |
0.38 |
Bottom edge of missile panel |
WeaponsStripHeight |
0.12 |
Compressed weapons strip height |
ShowDivider |
true |
Zone divider lines |
DebugStub |
false |
Bright magenta test panel |
StubLabel |
MISSILE CAMERA |
Label on debug stub |
| Key | Default | Description |
|---|---|---|
Enabled |
true |
Live missile camera feed |
NoseSkinInset |
0.08 |
Keep camera outside nose mesh (meters) |
CameraBackOffset |
0.35 |
Pull camera back from nose point (meters) |
Fov |
60 |
Base field of view (degrees) |
FeedWidth |
512 |
RenderTexture width |
FeedHeight |
512 |
RenderTexture height |
HorizonLock |
true |
World-up roll lock |
TurnLookBankScale |
1 |
G-load turn look scale |
MaxTurnLookDegrees |
90 |
Max turn-look offset (degrees) |
DefaultMissileGLimit |
20 |
Fallback G limit |
TurnLookGDeadband |
0.15 |
G deadband |
TurnLookGFilterHz |
7 |
G filter cutoff (Hz) |
TurnLookSlewDegPerSec |
120 |
Turn-look slew rate (deg/s) |
TurnLookSmoothTime |
0.18 |
Turn-look smoothing |
PostExplosionHoldSeconds |
0 |
Hold last frame after missile loss (0 = off) |
RenderFps |
30 |
Feed refresh rate |
| Key | Default | Description |
|---|---|---|
Enabled |
true |
HUD overlay on feed |
SalvoWindowSeconds |
0.5 |
Salvo grouping window (seconds) |
ShowCenterCluster |
true |
Center reticle / intercept ring |
ShowTargetMarker |
true |
Target diamond marker |
InterceptColor |
0,1,0,1 |
Intercept ring RGBA (0–1) |
ReticleColor |
0,0.4,1,1 |
Reticle RGBA |
HorizonColor |
0.05,0.35,0.08,1 |
Horizon fill |
HorizonOutlineColor |
0.2,1,0.25,1 |
Horizon outline |
MissileNameColor |
1,0,1,1 |
Missile name label |
TargetNameColor |
0.4,0.9,1,1 |
Target name label |
LabelBackgroundColor |
0.18,0.18,0.18,0.62 |
Label backdrop |
LabelBackgroundAlpha |
0.62 |
Backdrop alpha |
| Key | Default | Description |
|---|---|---|
Enabled |
true |
Keyboard missile cycling and zoom (keybinds fixed in code) |
ZoomStep |
0.5 |
Offset change per zoom key press |
ZoomMin |
-4 |
Minimum zoom offset |
ZoomMax |
4 |
Maximum zoom offset |
ZoomFovDegreesPerUnit |
5 |
FOV delta (degrees) per offset unit |
IndicatorSeconds |
0.5 |
Zoom HUD readout duration (seconds) |
MissileCamera/
├── MissileCamera.csproj
├── MissileCamera.sln
├── MissileCameraPlugin.cs # BepInPlugin entry, Config.Bind
├── MissileCameraHost.cs # DDOL host, mission-scene bootstrap
├── AppVersion.cs
├── CHANGELOG.md
├── Harmony/ # Harmony patches + hooks
├── Camera/ # Feed rig, config, controller
├── Hud/ # Overlay widgets
├── Layout/ # MFD zone split
├── Config/ # BepInEx config bindings, paths
├── Access/ # Game API wrappers
├── Ui/ # HUD graphics helpers
├── Logging/
├── release/
│ └── v0.27.1/
│ └── INSTALL.txt
└──
See CHANGELOG.md.
MIT License — see LICENSE.