Important
BepInEx 5 (x64) required - install BepInEx before this mod.
Note
Fullscreen never touches the cockpit camera - seeker video is a dedicated RenderTexture on a UI RawImage. See Fullscreen/CAMERA_SAFETY.md in the source tree.
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. No selected target required — dumb-fire / no-lock launches still open the MFD feed. On destruction, a brief TV-static burst plays before the panel closes. - Fullscreen feed:
RightAlt+F— dedicated seeker RenderTexture on a fullscreenRawImage(same as MFD). Never hijacks vanillaCameraStateManager/ cockpit camera. First enter per mission plays a ~3.5s boot (tile assemble → symbol cal → hex/value drums + diagnostics). FLIR chrome overlay; CombatHUD unit markers only. - Fullscreen zoom / filters: mouse wheel optical zoom up to 50× (MMB reset); J cycles vision modes (Color / NVG / WhiteHot / BlackHot / Contour±). MFD keeps keyboard zoom + auto IR when dark.
- Fullscreen FLIR HUD: green sensor chrome with live
— MSL —/— TGT —telemetry, scrolling compass, dials; vanilla CombatHUD target markers — fullscreen only. MFD keeps the classic S/A/R corner HUD. - Classic MFD HUD: S/A/R corners + salvo (1.30.1 style).
- Post-FX: optional scanlines / motion blur / chromatic / bloom (
MissileCameraEffects) — inactive with a startup warning if shaders are missing from the embedded bundle. - Aircraft mini-cam: optional second feed (
MissileCameraAircraftCam, default off). No-op whenDisplayMode=skip. - Auto B/W IR (WhiteHot): When dark at the missile — low
GetDaylightFactor(night / under thick clouds) or very lowGetAmbientLight— the feed switches to black-and-white IR. Not a fixed clock window. Disable withInfraredAutoEnabled=false. - 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.
- VT-7 Vagrant: MissileCamera replaces the right-column NOZZLE + ENGINE block (weapons silhouette kept).
- 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). Every keybind is a Configuration Manager KeyboardShortcut under MissileCameraControls / MissileCameraFullscreen / MissileCameraAircraftCam.
| Keybind | Default | Action |
|---|---|---|
| NextMissile | Right Alt + / |
Next missile (newer; wraps) |
| PreviousMissile | Right Alt + , |
Previous missile (older; wraps) |
| ZoomIn | Right Alt + ; |
MFD zoom in (narrower FOV) |
| ZoomOut | Right Alt + . |
MFD zoom out (wider FOV) |
| ResetZoom | Right Shift + . |
MFD reset zoom offset to 0.0 |
| Mouse wheel | — | Fullscreen only: optical zoom 1×…50× |
| ZoomResetKey | Middle mouse | Fullscreen only: reset magnification to 1× |
| Toggle | K |
Fullscreen missile camera toggle |
| VisionCycle | J |
Fullscreen vision cycle |
| CycleMode | Right Alt + V |
Aircraft mini-cam mode cycle (when enabled) |
Vision cycle (fullscreen): Color → NightVision → WhiteHot → BlackHot → WhiteContour → BlackContour. NightVision uses a local feed Volume only — never toggles stock cockpit NVG.
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 (MFD): each zoom change shows the current offset for 0.5 s above feed center. Fullscreen FLIR shows MAG xN from optical magnification.
Player-facing settings only (Config/MissileCameraBepInConfig.cs). Advanced tuning (layout geometry, IR picture math, HUD colors, zoom feel, FX intensities) is hardcoded in the *Config classes. Use Configuration Manager in-game, or edit:
BepInEx\config\com.at747.missilecamera.bepinex.cfg
Tip
After this config slim, delete the old .cfg once (game closed) if orphaned keys clutter Configuration Manager — defaults recreate cleanly. Fullscreen toggle is now Toggle = K (no Right Alt).
| Key | Default | Description |
|---|---|---|
Enabled |
true |
Turns MFD layout splitting on/off |
DisplayMode |
split |
Which aircraft get the missile panel: auto | skip | split |
| Key | Default | Description |
|---|---|---|
Enabled |
true |
Turns live missile nose camera on MFD on/off |
Fov |
60 |
Seeker base FOV before MFD zoom (degrees) |
FeedWidth |
512 |
MFD feed render texture width |
FeedHeight |
512 |
MFD feed render texture height |
PostLossInterferenceSeconds |
0.5 |
NO SIGNAL flash length on switch/destroy/FS exit (0 = off) |
RenderFps |
30 |
MFD feed render rate (Hz) |
InfraredAutoEnabled |
true |
Auto B/W IR from lighting at missile |
InfraredDaylightThreshold |
0.12 |
IR ON threshold for daylight factor |
InfraredAmbientThreshold |
0.06 |
IR ON threshold for ambient light |
InfraredLightHysteresis |
0.03 |
Anti-flicker margin before IR turns off |
| Key | Default | Description |
|---|---|---|
Enabled |
true |
Turns MFD HUD overlay on/off |
ShowCenterCluster |
true |
Center reticle and intercept ring |
ShowTargetMarker |
true |
Target diamond marker |
CockpitPipEnabled |
true |
Bottom-left cockpit PiP |
| Key | Default | Description |
|---|---|---|
Enabled |
true |
Turns keyboard missile cycling and MFD zoom on/off |
NextMissile |
RightAlt + / |
Keybind: next missile |
PreviousMissile |
RightAlt + , |
Keybind: previous missile |
ZoomIn |
RightAlt + ; |
Keybind: MFD zoom in |
ZoomOut |
RightAlt + . |
Keybind: MFD zoom out |
ResetZoom |
RightShift + . |
Keybind: MFD zoom reset |
| Key | Default | Description |
|---|---|---|
Enabled |
true |
Turns fullscreen missile feed on/off |
Toggle |
K |
Keybind: enter/exit fullscreen |
VisionCycle |
J |
Keybind: cycle Color / NVG / IR / Contour |
ZoomResetKey |
Middle mouse | Keybind: reset optical zoom to 1× |
FeedWidth |
1920 |
Fullscreen render texture width |
FeedHeight |
1080 |
Fullscreen render texture height |
ZoomMax |
50 |
Max optical magnification (mouse wheel) |
ZoomResetOnExit |
true |
Reset to 1× when leaving fullscreen |
PitchLadderEnabled |
true |
Stock pitch ladder on fullscreen FLIR |
| Key | Default | Description |
|---|---|---|
ScanlinesEnabled |
false |
Scanlines post-FX (shader bundle) |
MotionBlurEnabled |
false |
Motion blur post-FX |
ChromaticEnabled |
false |
Chromatic aberration post-FX |
BloomEnabled |
false |
Bloom post-FX |
| Key | Default | Description |
|---|---|---|
Enabled |
false |
Aircraft mini-cam overlay |
Mode |
Rear |
Mini-cam view: Rear / TopDown / Chase |
HideInFullscreen |
false |
Hide mini-cam in fullscreen |
CycleMode |
RightAlt + V |
Keybind: cycle mini-cam mode |
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.