Jump to content

Recommended Posts

Posted

Check Github Repo here sNaticY/dcs-helicopter-assist: Helicopter assist for DCS, including auto rudder, balance assistant, hover assistant

Video tutorial and show case coming soon!

DCS Helicopter Assist

Lightweight helicopter assist for DCS. It reads live flight telemetry from DCS via Export.lua (UDP), applies stabilization and assist logic, and writes control outputs to a vJoy virtual joystick (X/Y for cyclic, RZ for rudder).

This document covers:

  • Prerequisites
  • Get DCS helicopter assist (GitHub Releases or run from source)
  • vJoy setup
  • DCS Export.lua setup
  • How to run and use (hotkeys, modes)
  • How to modify config (config.json)

1) Prerequisites

If you run from source (instead of the EXE):

  • Python 3.9+ (64-bit recommended)
  • Python packages: numpy, pyvjoy, keyboard

Install packages:

py -m pip install numpy pyvjoy keyboard
 

Note: pyvjoy may need Administrator privileges to access the vJoy driver.


2) Get DCS Helicopter Assist

Option A — Download prebuilt (recommended):

  1. Go to the GitHub Releases page:
  2. Download the latest DCSHelicopterAssist.zip for Windows.
  3. Extract it to a folder you trust (e.g., C:\Games\DCSHelicotperAssist).
  4. Ensure config.json is in the same folder as the EXE so you can edit it.
  5. Continue to vJoy setup and DCS Export.lua setup below.

Tips:

  • First run may trigger SmartScreen; choose “More info” → “Run anyway”.
  • If vJoy output doesn’t move, try running the EXE “As Administrator”.

Option B — Run from source (Python):

  1. Clone or download this repository into a folder (e.g., C:\Games\DCSHelicotperAssist).
  2. Install Python requirements:
    py -m pip install numpy pyvjoy keyboard
    
     
  3. Continue to vJoy setup and DCS Export.lua setup below.
  4. Run:
    py helicopter_assist.py
    
     

3) vJoy setup

Open “vJoyConf” (vJoy Configuration) and configure a device:

  • Enable Device ID: choose one ID (default in config.json is 3)
  • Axes: enable X, Y, Rx (others optional/unused)
  • Buttons: not required
  • POV: none required
  • Apply/Save

In DCS Controls, bind the vJoy device axes:

  • Helicopter Pitch → vJoy Axis Y
  • Helicopter Roll → vJoy Axis X
  • Helicopter Rudder → vJoy Axis RX

Recommendations:

  • Unbind your physical joystick axes directly from DCS to avoid double control. The app reads your physical joystick and outputs to vJoy; DCS should only read vJoy.
  • Optional: Bind your physical joystick axes with modifiers TOGGLE_PAUSE_HOTKEY so you can temporarily by pass the assist and control directly with physical joystick
  • Do not invert axes in DCS. The app already writes Y as inverted when sending to vJoy.

You can change the vJoy device ID in config.json (see section 7).


4) DCS Export.lua setup

This project includes Export/Export.lua which sends telemetry to the app via UDP.

  1. Locate your DCS Saved Games Scripts folder:
  • Stable: %USERPROFILE%\Saved Games\DCS\Scripts
  • Open Beta: %USERPROFILE%\Saved Games\DCS.openbeta\Scripts
  1. Backup your existing Export.lua if present.

  2. Copy project file:

  • From: c:\Games\HelicopterAssist\Export\Export.lua
  • To: %SavedGames%\DCS...\Scripts\Export.lua

Export.lua sends JSON lines at 50 Hz to 127.0.0.1:28777 by default. If you run the app on another machine, change the target in Export.lua and config.json, and allow UDP in the firewall.

What is exported:

  • Linear velocity (Vx,Vy,Vz) in world coordinates (m/s)
  • Linear acceleration (Ax,Ay,Az) in world coordinates (m/s²)
  • Pitch, Roll, Yaw (rad)
  • PitchRate, RollRate, YawRate (rad/s)
  • World position (PosX, PosY, PosZ) in meters (x=East, y=Up, z=North)

The Python side parses these in dcs_telemetry.DcsTelemetry.


5) Running and usage

Running the EXE:

  • Double-click the HelicopterAssist.exe (place config.json next to it).
  • Start a DCS mission; Export.lua begins sending telemetry automatically.

Running from source:

py helicopter_assist.py
 

If vJoy doesn’t move:

  • Confirm vJoy device ID matches config.json
  • Confirm Export.lua is in Saved Games\DCS...\Scripts and a mission is running
  • Try running as Administrator

Hotkeys (defaults; configurable in config.json):

  • Toggle Rudder Assist: F8
  • Toggle Cyclic Assist Mode: F9
    • Each press cycles: OFF → ON → HOVERING → OFF …
    • OFF: vJoy outputs pass through your manual inputs (after smoothing/curves)
    • ON: assist blends with your inputs; stabilization helps rate/attitude
    • HOVERING: adds stronger hold to help steady hover
  • Pause (hold): Left Ctrl
    • While held, outputs are blocked
    • On release, assist modules reset to avoid bumps

Sounds:

  • On: short high beep
  • Hover: double mid beep
  • Off: short low beep

Manual input:

  • Your joystick inputs are smoothed and shaped (expo) before assist and vJoy output.

Enjoy flying!

HelicopterAssist.zip

  • Like 1
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...