snatic Posted September 15 Posted September 15 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 Windows 10/11 DCS World (stable or open beta) vJoy driver installed and at least one device enabled Download: http://vjoystick.sourceforge.net/site/ 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): Go to the GitHub Releases page: https://github.com/sNaticY/dcs-helicopter-assist/releases Download the latest DCSHelicopterAssist.zip for Windows. Extract it to a folder you trust (e.g., C:\Games\DCSHelicotperAssist). Ensure config.json is in the same folder as the EXE so you can edit it. 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): Clone or download this repository into a folder (e.g., C:\Games\DCSHelicotperAssist). Install Python requirements: py -m pip install numpy pyvjoy keyboard Continue to vJoy setup and DCS Export.lua setup below. 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. Locate your DCS Saved Games Scripts folder: Stable: %USERPROFILE%\Saved Games\DCS\Scripts Open Beta: %USERPROFILE%\Saved Games\DCS.openbeta\Scripts Backup your existing Export.lua if present. 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 2
snatic Posted September 15 Author Posted September 15 Video here: Introduction to DCS Helicopter Assist on Youtube
celestHawk Posted 15 hours ago Posted 15 hours ago Don't have time to test it in DCS but I'll take a look on the files out of curiosity. The reason I don't have any rotary is the lack of controlling it with a Xbox controller. I joined because of Tuuvas guide but I'll probably stick around bc of you Win10 E5-2698 64GB Quadro P4000 Ai-Track Xbox F-15C F-16C F/A-18C || Su-27 MiG-29 || F-22 F-15EX MilitaryAircraftMod || CH-Iran Clean Cockpit Afghanistan | Persian Gulf | Iraq -> Syria
snatic Posted 42 minutes ago Author Posted 42 minutes ago (edited) 15小时前,celestHawk说: Don't have time to test it in DCS but I'll take a look on the files out of curiosity. The reason I don't have any rotary is the lack of controlling it with a Xbox controller. I joined because of Tuuvas guide but I'll probably stick around bc of you Thank you! I'm trying improve it to support more devices, probably via Gremlin + vJoy, but still in investigation. I've improved the alogorithm a lot after first release you can take a look at the newest commit on GIthub. Also please let me know if you have more ideas! https://github.com/sNaticY/dcs-helicopter-assist Edited 39 minutes ago by snatic Typo
Recommended Posts