Overview

DCS Export Manager is a dedicated Windows application built for DCS World sim pilots who run multi-monitor setups. It solves two major headaches: keeping your monitors locked into position when Windows decides to rearrange them, and exporting cockpit displays (MFDs, DDIs, RWR, HUD) to dedicated external screens β€” all without ever touching a Lua file by hand.

πŸ–₯
Monitor Setup
Detect, arrange, and lock your display topology. Drag monitors into position, save profiles, and let the app guard your layout against Windows display changes.
✈
Aircraft Exports
Pick an aircraft, choose which cockpit displays to export, assign them to monitors, position and resize them visually, then generate all the Lua files automatically.
πŸ”’
Layout Locking
Aggressive locking system that monitors your display arrangement every 15 seconds and hooks into Windows display-change events to instantly restore your layout.
🎯
DCS Window Pull
Detects when DCS launches and moves its window onto your configured monitors, then steps aside once it has landed. No more DCS spawning on the wrong screen.

Requirements

Tip
The application is fully DPI-aware (PerMonitorV2), so it works correctly across mixed-resolution setups β€” for example, a 4K primary with 1080p side panels.

First Launch

When you launch DCS Export Manager for the first time, the application will:

1

Open the main window centered on your screen. You'll see the sidebar on the left with module buttons, DCS path controls, DCS tools, and options checkboxes at the bottom.

2

Attempt to auto-detect your DCS Saved Games path. It looks for the standard DCS or DCS.openbeta folders under your Windows user profile. If found, the path status in the sidebar will display the folder name in orange text.

3

Begin watching for DCS launches in the background. Every 3 seconds, the app checks whether the DCS process is running. When detected, it moves the DCS window onto the spot your export profile describes (see Pull DCS Window).

It also looks for your DCS install folder (from the registry, or the default Steam library). That folder is only used if you let the app make file edits for you.

The main content area will be blank until you click one of the module buttons. Let's start by making sure your DCS path is correct.

Setting Your DCS Path

The DCS Saved Games path is where DCS World stores its configuration files, Lua scripts, and monitor setup files. DCS Export Manager needs this path to write the export configuration files that DCS reads on startup.

1

Look at the sidebar under DCS PATH. If auto-detection succeeded, you'll see the folder name (e.g., DCS or DCS.openbeta) in orange. Hover over it to see the full path in a tooltip.

2

If it says "Not Set", click the πŸ“‚ Set DCS Directory button. A folder picker dialog will open.

3

Navigate to your DCS Saved Games folder. The default locations are:

C:\Users\YourName\Saved Games\DCS
C:\Users\YourName\Saved Games\DCS.openbeta

Select the folder and click OK. The status will update to show the folder name in orange.

Important
Make sure you select the correct DCS variant. If you fly on Open Beta, choose the DCS.openbeta folder. If you fly on Stable, choose DCS. Selecting the wrong one means your export files will be written to a location DCS doesn't read.

Interface Overview

The application window is divided into three regions:

The left sidebar is always visible and contains the following sections:

Options Panel

The OPTIONS section at the bottom of the sidebar contains five checkboxes. Each one saves immediately when toggled β€” there's no separate save button needed. These are covered in detail under Startup Options.

DCS Tools

The Pull DCS Window button searches for a running DCS process and moves its main window to the position defined in your export profile. Status feedback appears directly below the button. The two switches under it control the automatic pull; see Pull DCS Window.

Monitor Setup Module

Click πŸ–₯ Monitor Setup in the sidebar to open this module. This is where you detect, arrange, configure, and lock your display layout.

Detecting Monitors

1

Click the πŸ”„ Refresh button in the top toolbar. The app will query Windows for all active displays using the Win32 display enumeration API.

2

All connected and active monitors will appear on the canvas as dark rectangles, scaled to fit. The status bar at the bottom will show how many monitors were detected (e.g., "5 monitor(s) detected").

3

Each rectangle displays the monitor number, its resolution, and whether it's the primary display. If you've set friendly names previously, those will appear instead of the monitor number.

Tip
If you add or remove a monitor, click Refresh again to update the canvas. The app also restores exclusion flags and friendly names from any previously saved layout. Hold Shift while clicking Refresh to copy a display report to the clipboard for support.

The Canvas

The canvas is the large dark area in the center of the module. It shows a scaled-down representation of your entire display topology β€” all monitors at their actual pixel positions, proportionally sized. The canvas automatically recalculates its scale when the window is resized.

Each monitor rectangle shows:

Very small monitors (like WinWing MIP displays) will show a condensed label to fit within the rectangle. The font size adapts automatically based on available space.

Selecting a Monitor

Click on any monitor rectangle in the canvas. It will become highlighted and the Edit Panel on the right side will populate with that monitor's information and controls.

Dragging & Repositioning

1

Click and hold on any monitor rectangle in the canvas.

2

Drag it to the desired position. The monitor's actual Windows pixel position is updated in real-time as you drag β€” the movement is converted from canvas pixels back to real display coordinates using the current scale.

3

Release the mouse button. If Snap is enabled, the monitor will snap to the nearest edge of any adjacent monitor.

Snap-to-Edge

When snap is enabled (it's on by default), dropping a monitor near the edge of another monitor will automatically align it flush against that edge. This prevents pixel gaps between monitors that would cause issues with DCS exports.

Toggle snap on or off by clicking the 🧲 Snap: ON / 🧲 Snap: OFF button in the top toolbar. The button label updates to reflect the current state.

Overlap Detection & Position Swapping

If you drag a monitor directly on top of another monitor, the app will detect the overlap and automatically swap their positions. This makes it easy to rearrange monitors β€” just drop one onto another and they'll trade places.

Edit Panel

The Edit Panel is the vertical panel on the right side of the Monitor Setup module. It appears when you click on a monitor in the canvas and shows all configurable properties for that monitor:

Friendly Names

The FRIENDLY NAME text field lets you assign a human-readable label to each monitor, such as "Main Display", "Left MIP", "Center MFD", etc. This name appears on the canvas rectangle and is saved with your layout profile.

To set a friendly name, click on a monitor, type the name in the FRIENDLY NAME field, then click somewhere else (or press Tab) to confirm. The canvas label updates immediately.

Exclude from DCS

The Exclude from DCS checkbox tells the application that this monitor should not be considered when generating DCS export files. Excluded monitors won't appear in the Aircraft Exports module's monitor list.

Use this for monitors that are dedicated to Windows desktop, Discord, web browsers, or anything else that shouldn't be part of the DCS rendering pipeline.

Set as Primary

Clicking ⭐ Set as Primary will change the Windows primary display to the selected monitor. This is a system-level change β€” your taskbar and default application launch position will move to this monitor.

Warning
Changing your primary monitor may cause windows and icons to rearrange. Make sure you know which monitor you want as primary before clicking this.

Resolution & Refresh Rate

The RESOLUTION dropdown lists every resolution mode your monitor hardware reports as supported. The REFRESH RATE dropdown filters to show only the refresh rates available at the currently selected resolution.

Changing either dropdown does not immediately apply the change. You must click ⚑ Apply Changes to commit the resolution and refresh rate to Windows.

Brightness Control (DDC/CI)

If your monitor supports DDC/CI (Display Data Channel / Command Interface), the brightness slider will be active. This controls the monitor's hardware brightness β€” the same as using the physical buttons on the monitor itself.

The slider range shows the minimum and maximum values reported by the monitor. The current value is displayed to the right of the slider. Below the slider, a status line indicates whether DDC/CI is supported.

Tip
Most standard desktop monitors support DDC/CI. Some specialized displays (like WinWing MIP panels or certain gaming monitors with hardware bypass modes) may not. If the slider appears disabled, your monitor does not expose DDC/CI brightness control.

Position & Nudge Buttons

The X and Y fields show the monitor's pixel position in the Windows virtual desktop coordinate space. You can type exact values or use the arrow buttons to nudge the position by 1 pixel in any direction.

Nudge buttons update the canvas instantly but do not apply the change to Windows until you click ⚑ Apply Changes.

Apply Changes

The ⚑ Apply Changes button applies the configured resolution, refresh rate, orientation, and position for every monitor you moved or changed, not just the selected one. This uses the Win32 ChangeDisplaySettingsEx API to commit the changes to the Windows display registry.

Identify Monitors

Click πŸ” Identify Monitors in the top toolbar. A large numbered badge will appear in the center of each physical monitor, showing which monitor number corresponds to which screen. Click the button again (or wait a few seconds) to dismiss the badges.

This is extremely useful when you have many monitors and need to verify which rectangle on the canvas corresponds to which physical display.

Apply All Positions

Click πŸ“ Apply All Positions to apply the position of every monitor on the canvas to Windows in a single batch. This is useful after dragging multiple monitors around β€” instead of selecting each one and clicking Apply Changes individually, this button commits all positions at once.

Monitor Profiles

Profiles let you save and restore complete monitor configurations β€” positions, resolutions, refresh rates, orientations, friendly names, exclusion flags, and brightness levels for every connected display.

Creating a Profile

1

In the bottom bar of the Monitor Setup module, click the + button next to the PROFILE dropdown.

2

A dialog will appear asking for a profile name. Type a descriptive name (e.g., "DCS Racing Setup", "Full Sim Pit", "Development Layout").

3

Click OK. The new profile will be selected in the dropdown and the current monitor state will be captured when you click Save Layout.

Saving a Layout

Click πŸ’Ύ Save Layout to capture the current state of all monitors into the selected profile. This saves: positions, resolutions, refresh rates, orientations, hardware IDs, friendly names, exclusion flags, and DDC/CI brightness values.

Tip
The app uses hardware IDs (from Windows display device enumeration) rather than device names like \\.\DISPLAY1. This means your profiles survive monitor number shuffles that can happen after reboots or driver updates.

Loading a Profile

Select a profile from the dropdown and click πŸ“‚ Load. The app will restore all monitors to the positions, resolutions, refresh rates, and orientations stored in that profile.

The restore process uses a three-pass system to handle Windows display driver sequencing:

  1. Pass 1: Applies positions and refresh rates
  2. Pass 2: Applies orientation and resolution changes (for rotated monitors)
  3. Pass 3: Re-applies positions after orientation changes have settled

This multi-pass approach is necessary because Windows display drivers can reorder operations internally, and a single-pass restore often results in incorrect positioning for rotated displays.

Deleting a Profile

Select a profile and click the βœ• button. A confirmation dialog will appear. Click Yes to permanently delete the profile.

Locking a Layout

Locking is the killer feature of the Monitor Setup module. When a layout is locked, the application actively guards your display arrangement against any changes.

1

Save your desired layout to a profile first (you must have a saved layout to lock).

2

Click πŸ”’ Lock Layout. The lock indicator in the top-right corner will turn orange and display "Locked: [Profile Name]".

3

The app now begins two layers of protection:

  • 15-second polling timer β€” Checks all monitor positions against the locked profile and restores any that have drifted.
  • WM_DISPLAYCHANGE event hook β€” Instantly responds to Windows display topology changes (monitor disconnection, resolution changes, driver resets) with a debounced restore.
Important
The locked profile name is saved to your settings file. If you close and reopen the app, or if you enable "Restore Layout on Start," the lock will be automatically re-engaged. See Auto-Lock on Startup.

Unlocking

Click πŸ”“ Unlock to stop the layout guard. The lock indicator will turn gray and show "Unlocked". The polling timer will stop and the display change hook will no longer trigger restores.

Auto-Lock on Startup

When you lock a layout, the profile name is saved to the application settings. The next time DCS Export Manager launches, it will automatically:

  1. Look up the last locked profile name
  2. Find the matching saved layout
  3. Select it in the profile dropdown
  4. Engage the lock (start the 15-second timer and display change hook)
  5. Run an immediate check and restore any drift
  6. Show a tray notification: "Auto-locked to '[Profile Name]'"

This happens automatically β€” you don't need to have the Monitor Setup module open. The auto-lock fires during the main window's initialization.

Aircraft Exports Module

Click ✈ Aircraft Exports in the sidebar to open this module. This is where you configure which cockpit displays from each aircraft get exported to which monitors, and where on those monitors they appear.

Shared Viewport Names Across Aircraft

Before diving into configuration, there's something critical to understand. DCS uses viewport names to identify exported displays, and several aircraft share the same viewport names even though their cockpit displays are physically different instruments. When two aircraft use the same viewport name, they share the same position and size settings in the generated Lua files β€” DCS only allows one definition per viewport name.

This means if you assign the Hornet's Left DDI to a specific monitor at a specific position, the Viper's Left MFD will render in exactly the same spot, because they both use the LEFT_MFCD viewport under the hood.

The app tells you when this applies. Select a display and the edit panel shows a Same spot for line listing every other aircraft on that viewport. Assign one where another aircraft in the same profile already put that viewport somewhere else and you get a warning straight away, and Generate warns again before writing anything instead of letting the last one quietly win.

LEFT_MFCD β€” Shared by 6 Aircraft

AircraftDisplay NameViewport Name
F/A-18C HornetLeft DDILEFT_MFCD
F-16C ViperLeft MFDLEFT_MFCD
A-10C II Tank KillerLeft MFCDLEFT_MFCD
AH-64D ApacheLeft MPDLEFT_MFCD
F-15E Strike EaglePilot Left MPCDLEFT_MFCD
AV-8B N/A Harrier IILeft MPCDLEFT_MFCD

RIGHT_MFCD β€” Shared by 7 Aircraft

AircraftDisplay NameViewport Name
F/A-18C HornetRight DDIRIGHT_MFCD
F-16C ViperRight MFDRIGHT_MFCD
A-10C II Tank KillerRight MFCDRIGHT_MFCD
AH-64D ApacheRight MPDRIGHT_MFCD
F-15E Strike EaglePilot Right MPCDRIGHT_MFCD
AV-8B N/A Harrier IIRight MPCDRIGHT_MFCD
M-2000C MirageVTB (Radar Display)RIGHT_MFCD

RIGHT_MFCD β€” Shared by 6 Aircraft

AircraftDisplay NameViewport Name
F/A-18C HornetRight DDIRIGHT_MFCD
F-16C ViperRight MFDRIGHT_MFCD
A-10C II Tank KillerRight MFCDRIGHT_MFCD
AH-64D ApacheRight MPDRIGHT_MFCD
F-15E Strike EaglePilot Right MPCDRIGHT_MFCD
M-2000C MirageVTB (Radar Display)RIGHT_MFCD

CENTER_MFCD β€” Shared by 2 Aircraft

AircraftDisplay NameViewport Name
F/A-18C HornetAMPCD (Center)CENTER_MFCD
F-15E Strike EaglePilot Center MPCDCENTER_MFCD

Aircraft with Unique Viewports (No Conflicts)

The following aircraft use entirely unique viewport names and will never conflict with any other aircraft's exports:

What This Means in Practice
If all your aircraft share the same physical monitor layout β€” for example, your left MIP panel is always your left MFD regardless of what you're flying β€” then a single export profile works perfectly. One profile handles the Hornet, the Viper, the A-10, the Strike Eagle, the Harrier, and the Apache all at once because they all put their left display at LEFT_MFCD in the same spot.
When You Need Separate Profiles
If you need the LEFT_MFCD viewport in a different position or size for different aircraft β€” say you want the Hornet's Left DDI filling an entire 1024Γ—1024 MIP panel, but the Viper's Left MFD at 800Γ—800 on a different monitor β€” you cannot do this in a single profile. Because both aircraft write to the same LEFT_MFCD viewport name, the last one written wins.

To handle this, you need to:

  1. Create a separate export profile for each layout (e.g., "Hornet Layout" and "Viper Layout")
  2. Configure the viewport positions differently in each profile
  3. Before flying, select the correct profile, click ⚑ Generate Lua to write the files
  4. Select the matching MonitorSetup in DCS under Options β†’ System β†’ Monitors
  5. Restart DCS β€” MonitorSetup changes only take effect on launch

There is no way around this DCS restart requirement. DCS reads its MonitorSetup and viewport definitions once at startup and locks them for the entire session.

Selecting an Aircraft

Use the AIRCRAFT dropdown in the top bar. All supported aircraft are listed by their display name. When you select an aircraft, the EXPORTABLE DISPLAYS list on the left populates with that aircraft's available cockpit displays.

Exportable Displays

The left panel lists every display that can be exported for the selected aircraft. Each entry shows:

Click on a display to select it. The canvas and edit panel on the right will update to show the current monitor assignment and viewport position for that display.

Tags at the end of a row tell you more:

Assigning a Display to a Monitor

1

Select a display from the left panel (e.g., "Left DDI").

2

In the edit panel on the right, select the TARGET MONITOR from the dropdown. Only monitors that are NOT excluded from DCS will appear in this list.

3

Set the viewport position (X, Y) and size (W, H) using the text fields and nudge buttons, or use the ⬜ Fill Monitor button to fill the entire monitor.

4

Click βœ… Assign Export to save this display assignment to the current profile.

Viewport Positioning

The POSITION fields (X and Y) control where the viewport's top-left corner is placed on the target monitor. Coordinates are in absolute pixel space β€” they represent the actual Windows desktop pixel position, not relative to the monitor's top-left corner.

Use the nudge buttons (β—€ β–Ά β–² β–Ό) to move the viewport by 1 pixel at a time for precise placement.

Viewport Sizing

The SIZE fields (W and H) control the viewport dimensions in pixels. Each display has a default size based on the aircraft definition (most MFDs default to 1024Γ—1024), but you can adjust these to any size.

Use the nudge buttons to adjust width and height by 1 pixel at a time.

Fill Monitor

Click ⬜ Fill Monitor to instantly set the viewport position to the monitor's top-left corner and the viewport size to the monitor's full resolution. This is the quickest way to make a display fill an entire dedicated screen.

Drag & Resize Viewports on Canvas

The center canvas shows the selected monitor with any assigned viewports overlaid. You can interact with viewports directly:

The edit panel's X, Y, W, and H fields update in real-time as you drag or resize.

Ghost Viewports

When a monitor has multiple viewports assigned to it (e.g., a Left DDI and a Right DDI both assigned to the same screen), the active viewport shows as a solid-bordered rectangle, and all other viewports on the same monitor show as ghost viewports β€” dashed outlines in distinct colors.

This lets you see exactly how multiple MFDs layer together on a single display. Ghost viewports are not interactive; they're visual references only.

Removing an Export

When a display is already assigned, a βœ• Remove Export button appears below the Assign Export button. Click it to remove the assignment for the currently selected display. The viewport rectangle will disappear from the canvas.

Main View Selection

The MAIN VIEW dropdown in the top bar determines which monitor DCS uses for its primary 3D rendering viewport (your out-the-cockpit view). This is typically your largest or most central monitor.

Only non-excluded monitors appear in this dropdown. The app auto-selects the primary monitor by default.

Tip
The Main View setting tells DCS where to render the main cockpit view. Export viewports render on top of or alongside this view. Make sure your Main View monitor is not the same one you're using exclusively for MFD exports, unless that's your intention.

The app remembers the Main View by the monitor's hardware ID, so it stays on the right screen even when Windows renumbers your displays after a reboot. Every export does the same, so the canvas always shows each export on the monitor it really sits on.

Triple Screen Main View

Next to the Main View dropdown is a Single / Triple switch. Pick Triple and the Main View monitor becomes your Center screen, and a new row appears:

Generate then writes three views, Left, Center and Right, each turned by one screen width so the world wraps around you. Exports work exactly as before alongside them.

Tip
All three screens should be the same resolution and sit side by side at the same height in Windows. Generate warns you if they don't, because the picture won't line up across the gaps. Triple is ignored in VR mode.

VR Mode

Flying in VR, nobody looks at the flat screen, so there's no reason for the DCS window to span all your monitors. Tick VR Mode and Generate:

Tick Keep Main View as well if you want the flat mirror kept on your Main View monitor, for a capture card or a streaming display. The window then stays big enough to cover the main view and the exports.

File Edits (Auto Patcher)

Displays tagged ⚠ needs file edit won't export until a small edit is made to a file inside the DCS install (the Mods folder, not Saved Games). For most of them the app can make that edit for you.

1

Select the display. The edit panel shows a FILE EDIT section with its current state.

2

Click πŸ”§ Apply File Edit with DCS closed. The first time, the app explains the Integrity Check catch below and asks you to opt in. If it can't find where DCS is installed, it asks for the folder.

3

The app keeps a backup of the original file, adds the viewport lines between two tagged comments, and records what it did. ↩ Remove File Edit takes them back out.

Integrity Check
Multiplayer servers that enforce Integrity Check reject modified Mods files. With a file edit in place you may be blocked from those servers until you remove it (Remove File Edit, Reset to DCS Default, or a DCS repair). Single player and servers without Integrity Check are unaffected.

After a DCS update. Updates put the stock files back and wipe the edits. The app notices: a πŸ”§ Reapply File Edits button appears in the top bar, and one click puts every wiped edit back. Generate reminds you too.

Program Files installs. If DCS lives under C:\Program Files, Windows blocks the write. Close DCS Export Manager, right click it, choose Run as administrator, and apply again.

A few displays still need doing by hand: the Harrier MPCDs (an in game keybind, not a file) and the Tomcat TCS / LANTIRN video export (it also needs a render purpose added). Their notes explain how.

Custom Viewports

Need a display the app doesn't list, or a module it doesn't know about yet? Add it yourself.

  1. Pick the aircraft. For a module that isn't in the list, pick Other Modules (Custom).
  2. Click οΌ‹ Custom Viewport under the display list.
  3. Enter a display name, the viewport name, and a starting width and height.

The viewport name must match what the display's init.lua passes to try_find_assigned_viewport, letter for letter, using only letters, numbers and underscores. Custom viewports show up with β˜… custom and work like any other display. βœ• Delete Custom Viewport removes one, along with its exports in every saved profile.

Export Profiles

Export profiles work just like monitor profiles. Use the PROFILE dropdown in the bottom bar to manage them:

Export profiles store the main view configuration plus all aircraft specific export assignments. A single profile can contain exports for multiple aircraft, and the Lua generator writes them all into one MonitorSetup file.

Sharing Profiles

Two buttons next to the profile dropdown let you trade pits on Discord:

Someone Else's Monitors
An imported profile keeps the pixel positions from the machine it was made on. If your monitors are arranged differently, pick your Main View and check each export on the canvas before generating. The pre generate checks will point out anything hanging off a monitor.

Generate Lua

Click ⚑ Generate Lua to write all the DCS configuration files. A confirmation dialog will explain what files are about to be created/modified. Click Yes to proceed.

The generator writes one file, Config\MonitorSetup\[ProfileName].lua, holding the main view (or Left, Center and Right on a triple setup) plus every viewport position and size. It also patches your Config\options.lua to set the total resolution, windowed mode, and the monitor setup name.

It never touches Export.lua. DCS reads viewports straight from the MonitorSetup file, so DCS-BIOS, Tacview and HangarControl keep that file to themselves. If an older version of this app left an entry in Export.lua, Generate removes just that entry and leaves everything else alone.

If a MonitorSetup file with the same name already exists and wasn't made by this app, Generate stops rather than overwrite it. Rename the export profile and try again.

Tip
After generating, you need to select the MonitorSetup profile inside DCS: go to Options β†’ System β†’ Monitors and choose the profile name matching what you created here.

Pre Generate Checks

Before any file is written, Generate looks for the mistakes that usually end in a support ticket:

Hard problems stop Generate until they're fixed. Everything else is listed so you can fix it or generate anyway.

Reset to DCS Default

Click πŸ”„ Reset to DCS Default to undo what DCS Export Manager did to DCS. A confirmation dialog explains exactly what will happen:

You can regenerate at any time by clicking Generate Lua again.

Supported Aircraft & Displays

Aircraft Exportable Displays
F/A-18C Hornet Left DDI, Right DDI, AMPCD (Center), IFEI*, RWR (ALR-67)*, UFC Display*
F-16C Viper Left MFD, Right MFD, EHSI, DED*, RWR (ALR-56M)*, CMDS (ALE-47)*, PFLD*, UHF Preset Channel*, UHF Frequency Status*, UHF Channel Map*
A-10C II Tank Killer Left MFCD, Right MFCD, CDU*, RWR (ALR-69V)*, CMSP*, CMSC*, ARC-210 Radio*
AH-64D Apache Left MPD, Right MPD, TEDAC, Pilot EUFD*, CPG EUFD*, Keyboard Unit*, CMWS*‑
AV-8B N/A Harrier II Left MPCD*, Right MPCD*
Ka-50 Black Shark III Shkval (Targeting), ABRIS (Moving Map)
F-15E Strike Eagle Pilot Left MPCD, Pilot Right MPCD, Pilot Center MPCD
F-14A/B Tomcat VDI, TID, DDD (Radar), ECMD, HSD, UHF Radio (ARC-159), VHF Radio (ARC-182), Pilot RWR*, RIO RWR*, UHF Frequency Card*, TCS / LANTIRN Video*‑
F-4E Phantom II Pilot DSCG, WSO DSCG, HUD, RWR (ALR-46), DSCG TV Helper†
JF-17 Thunder Left MFCD, Right MFCD, Center MFCD
M-2000C Mirage VTB (Radar Display)*
Other Modules (Custom) Anything you add yourself (see Custom Viewports)

* = Needs a file edit or keybind (see below)    † = Required helper viewport    ‑ = Experimental, not yet confirmed working

Modification Notes

Every display marked * except the Harrier MPCDs and the Tomcat video export can be edited for you with File Edits. Hover the row in the app for the exact file. Doing it by hand means adding these two lines to the display's init.lua, using the viewport name the app shows:

dofile(LockOn_Options.common_script_path.."ViewportHandling.lua")
try_find_assigned_viewport("F18_IFEI")

Any edit inside the DCS install is overwritten by DCS updates and fails Integrity Check on servers that enforce it.

F/A-18C Hornet β€” IFEI, RWR, UFC

The ALR-67 RWR lives under TEWS, not an RWR folder. DCS ships with baked indicators, so the file that counts is TEWS/indicator/BAKE/RWR_ALR67_bake_init.lua; the app edits both the baked and unbaked files so either setting works. If the DDIs render black, check bakeToCockpitTexture in the Hornet's Scripts/config.lua is false.

F-16C Viper β€” DED, RWR, CMDS, PFLD, UHF panel

The three ARC-164 aux comm windows need ViewportHandling.lua loaded as well as the hook, which the app's edit includes. Their default sizes are starting guesses; resize them on the canvas.

A-10C II β€” CDU, RWR, CMSP, CMSC, ARC-210

The ARC-210 file breaks the module's naming: ARC_210/Indicator/ARC_210_Init.lua, capital I in both places.

AH-64D Apache β€” EUFDs, Keyboard Unit, CMWS

The MPDs and TEDAC export without edits. All four MPDs share one script, so the left and right MPD viewports follow whichever seat you are in. The EUFD, KU and CMWS files have no viewport hook at all until edited. Both seats share one KU. CMWS is experimental; remove it if it renders wrong.

AV-8B Harrier II β€” MPCDs

No file edit. Bind the MPCD export keys in DCS controls (LAlt+LCtrl+Left Arrow and Right Arrow) and press them in the cockpit.

F-14 Tomcat β€” RWRs, UHF card, video

The pilot and RIO RWRs and the UHF frequency card have no hook until edited. The TCS / LANTIRN video export also needs render_purpose.GENERAL added to its purposes table, so it stays a manual edit and is experimental.

F-4E Phantom II β€” DSCG TV Helper

The F-4E's DSCG (Digital Scan Converter Group) screens require a special 1Γ—1 pixel helper viewport called DSCG TV Helper. Without this viewport assigned to any monitor, the Pilot and WSO DSCG screens will not render. Assign it to any monitor; it's invisible at 1Γ—1 pixels.

M-2000C Mirage β€” VTB

The Mirage 2000C module was developed by RAZBAM and was delisted from sale in April 2025. The VTB export also requires an in game keybind to be activated. This module will not survive the DCS Vulkan graphics transition.

Startup Options

All options are in the OPTIONS section at the bottom of the sidebar. Each checkbox saves immediately when toggled.

Option What It Does
Start with Windows Registers the application in the Windows startup registry (HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run) so it launches automatically when you log in. Uncheck to remove the registry entry.
Start Minimized When the app launches, it starts in a minimized state instead of showing the main window. Useful when combined with "Minimize to Tray" for a completely invisible startup.
Minimize to Tray When you minimize the app (via the minimize button or taskbar), it disappears from the taskbar and appears as a system tray icon instead. Double-click the tray icon to restore, or right-click for a context menu.
Close to Tray Clicking the window close button (X) will minimize the app to the system tray instead of closing it. To actually exit the application, right-click the tray icon and choose "Exit".
Restore Layout on Start When the app launches, it waits 3 seconds (to let Windows settle its display drivers), then restores the last locked monitor profile using the three-pass restore system. A tray notification confirms the restore.
Recommended Setup
For a "set it and forget it" experience, enable all five options. The app will start with Windows, start minimized to the tray, restore your locked layout 3 seconds after boot, and quietly watch for DCS launches in the background β€” all completely invisible.

Pull DCS Window

The 🎯 Pull DCS Window button in the sidebar's DCS TOOLS section manually forces the DCS window to the position defined in your export profile's Main View setting.

With Auto Pull on Launch ticked, the app also does this in the background. When DCS launches it checks every 2 seconds and moves the window onto its spot, which handles DCS's habit of launching on the primary monitor regardless of the MonitorSetup file. Once the full size game window has sat in the right place for a few checks in a row, the app stops and leaves DCS alone for the rest of the session.

Tick Keep Pulling All Session if DCS on your machine jumps back to the wrong spot after alt tab. The app then keeps checking every 10 seconds until DCS closes. Untick Auto Pull on Launch to turn the automatic pull off completely.

The manual button and the tray icon's Pull DCS Window item always work, whatever the switches say.

Restore Layout on Start

When enabled, this option works in conjunction with the last locked profile. On application startup:

  1. The app checks if Restore Layout on Start is enabled in settings
  2. It checks if a locked profile name is saved in settings
  3. If both conditions are met, it waits 3 seconds after launch
  4. Then it loads the saved profile and runs the three-pass display restore
  5. A tray notification confirms the restore was successful

The 3-second delay is intentional β€” it gives Windows time to finish initializing all display drivers after boot, particularly for USB-connected displays that may take a moment to enumerate.

File Locations

Application Settings

%LOCALAPPDATA%\DCSExportManager\settings.json

Stores all aircraft export profiles including viewport positions and monitor assignments.

Custom Viewports

%LOCALAPPDATA%\DCSExportManager\custom_viewports.json

Viewports you added yourself.

File Edit Records and Backups

%LOCALAPPDATA%\DCSExportManager\file_patches.json
%LOCALAPPDATA%\DCSExportManager\PatchBackups\

Which DCS install files the app edited, and a copy of each one as it was before the edit.

Generated DCS Files

All generated files are written to your DCS Saved Games directory:

[DCS Saved Games]\Config\MonitorSetup\[ProfileName].lua
[DCS Saved Games]\Config\options.lua  (patched with resolution settings)

Every MonitorSetup file created by the tool is tagged with -- DCSExportManager on the first line, so Reset to Default knows exactly which files to clean up without touching anything else. File edits inside the DCS install sit between -- [DCSExportManager:PATCH START] and -- [DCSExportManager:PATCH END] comments.

Stores all saved monitor profiles with complete display configuration data.

Export Configuration Profiles

%LOCALAPPDATA%\DCSExportManager\export_configs.json

Stores all aircraft export profiles including viewport positions and monitor assignments.

Generated DCS Files

All generated files are written to your DCS Saved Games directory:

[DCS Saved Games]\Config\MonitorSetup\[ProfileName].lua
[DCS Saved Games]\Scripts\DCSExportManager_Viewports.lua
[DCS Saved Games]\Scripts\Export.lua  (modified, not replaced)
[DCS Saved Games]\Config\options.lua  (patched with resolution settings)

Every file created by the tool is tagged with -- DCSExportManager on the first line, so the Reset to Default function knows exactly which files to clean up without touching anything else.

Troubleshooting

DCS launches on the wrong monitor

DCS World always launches on the Windows primary monitor initially, regardless of your MonitorSetup configuration. The DCS Export Manager's background watcher detects this and repositions the window automatically. If it's not working, make sure your export profile has a valid Main View configured and the DCS process name is "DCS" (check Task Manager).

Monitor positions keep reverting

Make sure your layout is locked. The lock engages a 15-second polling timer and a Windows display-change event hook. Without locking, the app does not actively guard your arrangement.

Brightness slider is grayed out

Your monitor does not support DDC/CI brightness control. This is a hardware limitation β€” some monitors disable DDC/CI in certain modes, and USB displays typically don't support it at all.

MFDs don't render in DCS

Check the following:

A monitor goes black when DCS starts

That monitor sits inside the DCS window rectangle, so DCS paints over it. Generate warns about this for monitors marked Exclude from DCS. Move the monitor outside the box in Windows, or move the exports so the window doesn't reach it.

Kicked or blocked from a multiplayer server

Servers that enforce Integrity Check reject modified Mods files. Remove your file edits (the edit panel, or Reset to DCS Default) before joining those servers.

Monitors shuffle after reboot

Windows sometimes reassigns monitor numbers after a reboot or driver update. The app uses hardware IDs instead of device names to identify monitors, so your profiles will still match the correct physical displays. Enable Restore Layout on Start for automatic correction on every boot.

Options.lua didn't update

If DCS hasn't been configured yet (fresh install or the options.lua file doesn't exist), the generator can't patch it. Run DCS at least once to generate the default options.lua, then run Generate Lua again.

FAQ

Can I use profiles for different activities?

Absolutely. Create separate monitor profiles for DCS, racing sims, desktop work, etc. Switch between them by selecting the profile and clicking Load. You can also create separate export profiles for different aircraft configurations.

Does the app need to be running for exports to work?

No. Once you generate the Lua files, they exist on disk and DCS reads them independently. The app only needs to be running if you want the layout locking, auto-restore, and DCS window pull features.

Can I export to monitors with different resolutions?

Yes. Each viewport has independent position and size settings. You can export a 1024Γ—1024 MFD to a 1080p monitor, scale it to fill a 4K panel, or place multiple viewports on a single large display.

What happens when DCS updates?

Your MonitorSetup files in the Saved Games folder are safe; DCS does not overwrite user files there. File edits inside the DCS install folder are overwritten. The app spots that and shows a πŸ”§ Reapply File Edits button for a one click fix.

Can the same viewport be on two monitors?

No. DCS only supports a single instance of each viewport. If two aircraft share the same viewport name (both the Hornet and Viper use LEFT_MFCD, for example), the MonitorSetup file can only hold one spot for it. Generate warns you when two aircraft in the profile disagree, and tells you which one wins.

How do I fully close the app?

If "Close to Tray" is enabled, clicking the X button will minimize to tray. To actually exit, right-click the tray icon and select Exit. This will stop all background monitoring and close the application completely.