Jump to content
The simFlight Network Forums

Recommended Posts

Posted (edited)

I have a Spitfire cockpit with authentic style control inputs. A real Spitfire does not have toe brakes but has a single lever on the control column for the brakes. A pneumatic valve configuration operated through the Rudder control allows this single lever to actuate the left and right wheel brakes independently/differentially. 

For those with a single brake lever like mine, the following LUA script simulated this facility in the MSFS spitfires by mixing the analog Rudder input with another single analog Brake input to provide standard MSFS Toe Brake outputs. 

I have successfully tested following LUA file originally written for me by John Dowson with the Flying Iron Mk IX and the Airplane Heaven Mk1a Spitfire models for MSFS. 

The file should be placed in the FSUIPC7 folder and the lines: 

[Auto]
1=Lua spitfireBrake 
added to the end of the FSUIPC7.ini file

or add 1=Lua spitfireBrake in the [Auto.xxx] section (where xxx is the name of your spitfire profile).

You also then need to assign both your rudder and brake lever axis in FSUIPC7 using Send to FSUIPC Offset with Offset Dword Set. The script uses offset 0xA000 for the rudder axis and 0xA004 for the brake lever axis - use these or update the script to the ones that you use.

If your rudder and/or brake axis are reversed, you can also adjust for this by setting the rudderAxisReversed and/or brakeAxisReversed variables to true (near the top of the script).

 

spitfireBrake.lua

Edited by John Dowson
Script updated to handle both reversed rudder and brake axes correctly
  • Like 1
  • 1 year later...
Posted
52 minutes ago, Darth JBell said:

I’ll take a look although I’m running PREPAR3D w/FSUIPC version 6.  The Behr Studio/Sim Market folks say the Chang doesn’t work w/MSFS 2020.

This post is for the Spitfire brake. I  referenced it for you as you need to do something similar for the CJ-6 Nanchang. I will help you with this in the thread where you asked. Once this is done, you can create a User Contribution similar to this to explain to others how to do this in the CJ-6.

Posted
8 minutes ago, John Dowson said:

This post is for the Spitfire brake. I  referenced it for you as you need to do something similar for the CJ-6 Nanchang. I will help you with this in the thread where you asked. Once this is done, you can create a User Contribution similar to this to explain to others how to do this in the CJ-6.

Sounds good, Sir!

  • 1 year later...
Posted (edited)

Hi John, 

As per my post on the last thread, yes I assigned as per the instructions. The only change I made was setting "local brakeReversed =" to true. 

I can see from looking at this, and my findings in the sim that the rudder input is applying the brakes irrespective of the actual input to the brake lever. The brake lever is itself running so that it can be pressed and will apply the brakes, but again does take into account the rudder position. 

Sorry as I am unable to see how to resolve this in the code, or if I myself have done something wrong. 

PSB log: 

Unfortunately the attachment limit is too small for me to attach the log.

Quote

********* FSUIPC7, Version 7.5.4 (13th July 2025) by John Dowson *********
WebSocket server found: D:\FSUIPC\\Utils\FSUIPCWebSocketServer.exe
Windows 11 detected - setting DisableMSFSMonitor to 'Enum'
Windows 10 Home 64 Bit reported as Build 22631, Release ID: 2009 (OS 10.0)
FSUIPC is running with standard privileges
Reading options from "D:\FSUIPC\FSUIPC7.ini"
Checking the Registrations now ...
User Name="harry smith"
User Addr="smithy-harry@hotmail.co.uk"
FSUIPC7 Key is provided
WIDEFS7 not user registered, or expired
       47 System time = 06/08/2025 17:31:21
       47 Allowing calibration when not assigned with 'Send direct to FSUIPC Calibration'
       63 -------------------------------------------------------------------
       63 *** Preset name 'Cirrus_SF50_Vision_Jet__MSFS2024_-_Toggle_VNV_Button_in_Autopilot_On_and_OFF' exceeds max allowed length of 63 characters - ignoring
      219 *** Preset name 'NAV_GPS_SWAP__NAV__button_on_EFIS_Control_Panel__LEFT_SIDE__CAPTAIN_' exceeds max allowed length of 63 characters - ignoring
      219 *** Preset name 'NAV_GPS_SWAP__NAV__button_on_EFIS_Control_Panel__RIGHT__SIDE__FIRST_OFFICER_' exceeds max allowed length of 63 characters - ignoring
      235 *** Preset name 'Main_instrument_panel_standby_attitude_indicator_cage_button_release' exceeds max allowed length of 63 characters - ignoring
      235 Preset file 'D:\FSUIPC\myevents.txt' not found [info only]
      235 19666 Calculator Code presets have been loaded and are available for use
      266 Registered HotKey 'InvokeFSUIPCOptionsKey' (key=0x46, modifier=0x1)
      282 FS path = ""
      297 ---------------------- Joystick Device Scan -----------------------
      297 Product= Rhino FFB Joystick
      297    Manufacturer= VPforce
      297    Serial Number= 3359534E0100004C52006600
      297    Vendor=FFFF, Product=2055 (Version 2.8)
      360    GUIDs returned for product: VID_FFFF&PID_2055:
      360       GUID= {A8C007E0-1192-11F0-800C-444553540000}
      360       Details: Btns=64, POVs=(0, 0, 0, 0), Cal=x00000000, Max=R255,U255,V255,X4096,Y4096,Z4096
      360 Product= MFG Crosswind V2
      360    Manufacturer= MFG
      360    Serial Number= MFG500002
      360    Vendor=16D0, Product=0A38 (Version 33.1)
      360    GUIDs returned for product: VID_16D0&PID_0A38:
      360       GUID= {1ECE9D80-1192-11F0-8009-444553540000}
      360       Details: Btns=2, POVs=(0, 0, 0, 0), Cal=x00000000, Max=R4096,U0,V0,X4096,Y4096,Z0
      360 Product= L-VPC Throttle MT-50
      375    Manufacturer= VIRPIL Controls/20210102
      375    Vendor=3344, Product=8191 (Version 0.1)
      375    GUIDs returned for product: VID_3344&PID_8191:
      375       GUID= {564B53C0-1192-11F0-800A-444553540000}
      375       Details: Btns=84, POVs=(0, 0, 0, 0), Cal=x00000000, Max=R16384,U16384,V16384,X0,Y0,Z16384
      375 Product= Bravo Throttle Quadrant
      375    Manufacturer= Honeycomb Aeronautical
      375    Serial Number= 6F7B2E091F1A3B00
      375    Vendor=294B, Product=1901 (Version 1.5)
      375    GUIDs returned for product: VID_294B&PID_1901:
      375       GUID= {966C4330-10C3-11F0-8001-444553540000}
      375       Details: Btns=48, POVs=(0, 0, 0, 0), Cal=x00000000, Max=R1023,U1023,V1023,X1023,Y1023,Z1023
      375 -------------------------------------------------------------------
      375 Device acquired for use:
      375    Joystick ID = 3 (Registry okay)
      375    3=VPforce Rhino FFB Joystick
      375    3.GUID={A8C007E0-1192-11F0-800C-444553540000}
      375 Device acquired for use:
      375    Joystick ID = 1 (Registry okay)
      375    1=MFG Crosswind V2
      375    1.GUID={1ECE9D80-1192-11F0-8009-444553540000}
      375 Device acquired for use:
      375    Joystick ID = 2 (Registry okay)
      375    2=L-VPC Throttle MT-50
      375    2.GUID={564B53C0-1192-11F0-800A-444553540000}
      375 Device acquired for use:
      375    Joystick ID = 0 (Registry okay)
      375    0=Bravo Throttle Quadrant
      375    0.GUID={966C4330-10C3-11F0-8001-444553540000}
      375 -------------------------------------------------------------------
      407 LogOptions=00000000 00000001
      407 Manually started with DetectToConnectDelay=1, InitialStallTime=15
     3266 Simulator detected
     4266 Trying to connect...
     4282 SimConnect_Open succeeded
     4282 Running in "SunRise", Version: 12.2.282174.999 (SimConnect: 12.2.0.0)
     4282 MSFS version = 12.2.282174.999
     4282 MSFS 2024 Steam installation detected
     4282 Checking for FS path in 'C:\Users\Harry\AppData\Roaming\Microsoft Flight Simulator 2024\UserCfg.opt'
     4282 FS path found = D:\MSFS Community\
     4282 FLT path = "C:\Users\Harry\AppData\Roaming\Microsoft Flight Simulator 2024\"
     4282 FS path = "D:\MSFS Community\"
     4282 Initialising SimConnect data requests now
     4282 Offset file 'D:\FSUIPC\myOffsets.txt' not found (info only)
     4282 Number of FS control/events registered : 1795
     4282 Mapping custom control numbers 69632 - 84232 (maximum defined by ini parameter MaxCustomControlNumber, defaults to 84232 when not present)
     4297 Maximum number of custom events available is 1024 (defined by ini parameter MaxNumberOfCustomEvents)
     4297 C:\Users\Harry\AppData\Roaming\Microsoft Flight Simulator 2024\MISSIONS\Custom\CustomFlight\CustomFlight.FLT
     4422 User Aircraft ID 39387136 supplied, now being used (myftm=1)
     4422 Requesting keyboard input...
     4422 Requesting user aircraft data...
     4704 Aircraft loaded: running normally now ...
     4704 System time = 06/08/2025 17:31:26, Simulator time = 17:31:26 (16:31Z)
     4704 Requesting Input Events....
     4704 Starting WAPI (WAPI enabled)...
     4704   [INFO]: **** Starting FSUIPC7 WASM Interface (WAPI) version 1.0.4 (WASM version 1.0.7) using connection -1
     4704   [INFO]: Connected to MSFS
     4704 Aircraft="Lancaster NX611 Just Jane"
     4704 -------------------- Starting everything now ----------------------
     4766 Lvars received: 331 L:vars & 0 H:vars now available
     4766 Lvars/Hvars received - checking aircraft autos....
     4829 LUA.1: Spitfire differential brake lua started
     4860 LUA.1: rudderChange: value=0
     4875 LUA.1: rudderControl sent with value=0
     4891 LUA.1: Rudder %: 50 , brake %:100
     4907 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
     4922 LUA.1: Rught brake value sent: -16383 (rudder % used: 100)
     4938 LUA.1: brakeChange: value=0
     4954 LUA.1: Rudder %: 50 , brake %:50
     4969 LUA.1: Left brake value sent: -0 (rudder % used: 100)
     4985 LUA.1: Rught brake value sent: -0 (rudder % used: 100)
     5891 LUA.1: rudderChange: value=816
     5907 LUA.1: rudderControl sent with value=816
     5922 LUA.1: Rudder %: 52.490386376122 , brake %:50
     5938 LUA.1: Left brake value sent: 816 (rudder % used: 95.019227247757)
     5954 LUA.1: Rught brake value sent: -0 (rudder % used: 100)
     5985 LUA.1: rudderChange: value=6744
     6000 LUA.1: rudderControl sent with value=6744
     6016 LUA.1: Rudder %: 70.582310932064 , brake %:50
     6032 LUA.1: Left brake value sent: 6744 (rudder % used: 58.835378135873)
     6047 LUA.1: Rught brake value sent: -0 (rudder % used: 100)
     6079 LUA.1: rudderChange: value=12079
     6094 LUA.1: rudderControl sent with value=12079
     6110 LUA.1: Rudder %: 86.864432643594 , brake %:50
     6125 LUA.1: Left brake value sent: 12079 (rudder % used: 26.271134712812)
     6141 LUA.1: Rught brake value sent: -0 (rudder % used: 100)
     6172 LUA.1: rudderChange: value=7576
     6188 LUA.1: rudderControl sent with value=7576
     6204 LUA.1: Rudder %: 73.121528413599 , brake %:50
     6219 LUA.1: Left brake value sent: 7576 (rudder % used: 53.756943172801)
     6235 LUA.1: Rught brake value sent: -0 (rudder % used: 100)
     6266 LUA.1: rudderChange: value=2608
     6282 LUA.1: rudderControl sent with value=2608
     6297 LUA.1: Rudder %: 57.959470182506 , brake %:50
     6313 LUA.1: Left brake value sent: 2608 (rudder % used: 84.081059634987)
     6329 LUA.1: Rught brake value sent: -0 (rudder % used: 100)
     6360 LUA.1: rudderChange: value=0
     6375 LUA.1: rudderControl sent with value=0
     6391 LUA.1: Rudder %: 50 , brake %:50
     6407 LUA.1: Left brake value sent: -0 (rudder % used: 100)
     6422 LUA.1: Rught brake value sent: -0 (rudder % used: 100)
     6704 LUA.1: rudderChange: value=456
     6719 LUA.1: rudderControl sent with value=0
     6735 LUA.1: Rudder %: 50 , brake %:50
     6750 LUA.1: Left brake value sent: -0 (rudder % used: 100)
     6766 LUA.1: Rught brake value sent: -0 (rudder % used: 100)
     6797 LUA.1: rudderChange: value=7512
     6813 LUA.1: rudderControl sent with value=7512
     6829 LUA.1: Rudder %: 72.926203991943 , brake %:50
     6844 LUA.1: Left brake value sent: 7512 (rudder % used: 54.147592016114)
     6860 LUA.1: Rught brake value sent: -0 (rudder % used: 100)
     6891 LUA.1: rudderChange: value=13135
     6907 LUA.1: rudderControl sent with value=13135
     6922 LUA.1: Rudder %: 90.087285600928 , brake %:50
     6938 LUA.1: Left brake value sent: 13135 (rudder % used: 19.825428798144)
     6954 LUA.1: Rught brake value sent: -0 (rudder % used: 100)
     6985 LUA.1: rudderChange: value=13399
     6985 LUA.1: rudderControl sent with value=13399
     7000 LUA.1: Rudder %: 90.892998840261 , brake %:50
     7016 LUA.1: Left brake value sent: 13399 (rudder % used: 18.214002319478)
     7032 LUA.1: Rught brake value sent: -0 (rudder % used: 100)
     7063 LUA.1: rudderChange: value=12311
     7079 LUA.1: rudderControl sent with value=12311
     7094 LUA.1: Rudder %: 87.572483672099 , brake %:50
     7110 LUA.1: Left brake value sent: 12311 (rudder % used: 24.855032655802)
     7125 LUA.1: Rught brake value sent: -0 (rudder % used: 100)
     7157 LUA.1: rudderChange: value=4440
     7172 LUA.1: rudderControl sent with value=4440
     7188 LUA.1: Rudder %: 63.550631752426 , brake %:50
     7204 LUA.1: Left brake value sent: 4440 (rudder % used: 72.898736495147)
     7219 LUA.1: Rught brake value sent: -0 (rudder % used: 100)
     7250 LUA.1: rudderChange: value=24
     7266 LUA.1: rudderControl sent with value=0
     7282 LUA.1: Rudder %: 50 , brake %:50
     7297 LUA.1: Left brake value sent: -0 (rudder % used: 100)
     7313 LUA.1: Rught brake value sent: -0 (rudder % used: 100)
     8594 LUA.1: brakeChange: value=8575
     8610 LUA.1: Rudder %: 50 , brake %:76.170420557895
     8625 LUA.1: Left brake value sent: -8575 (rudder % used: 100)
     8641 LUA.1: Rught brake value sent: -8575 (rudder % used: 100)
     8657 LUA.1: brakeChange: value=-16384
     8672 LUA.1: Rudder %: 50 , brake %:-0.0030519440883843
     8688 LUA.1: Left brake value sent: 16384 (rudder % used: 100)
     8688 LUA.1: Rught brake value sent: 16384 (rudder % used: 100)
     9063 LUA.1: brakeChange: value=-15083
     9079 LUA.1: Rudder %: 50 , brake %:3.9675273148996
     9094 LUA.1: Left brake value sent: 15083 (rudder % used: 100)
     9110 LUA.1: Rught brake value sent: 15083 (rudder % used: 100)
     9125 LUA.1: brakeChange: value=7552
     9141 LUA.1: Rudder %: 50 , brake %:73.048281755478
     9157 LUA.1: Left brake value sent: -7552 (rudder % used: 100)
     9172 LUA.1: Rught brake value sent: -7552 (rudder % used: 100)
     9188 LUA.1: brakeChange: value=16127
     9204 LUA.1: Rudder %: 50 , brake %:100
     9219 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
     9235 LUA.1: Rught brake value sent: -16383 (rudder % used: 100)
     9282 LUA.1: brakeChange: value=16383
     9297 LUA.1: Rudder %: 50 , brake %:100
     9313 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
     9329 LUA.1: Rught brake value sent: -16383 (rudder % used: 100)
     9829 LUA.1: brakeChange: value=16127
     9844 LUA.1: Rudder %: 50 , brake %:100
     9860 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
     9875 LUA.1: Rught brake value sent: -16383 (rudder % used: 100)
     9891 LUA.1: brakeChange: value=5376
     9907 LUA.1: Rudder %: 50 , brake %:66.407251419154
     9922 LUA.1: Left brake value sent: -5376 (rudder % used: 100)
     9938 LUA.1: Rught brake value sent: -5376 (rudder % used: 100)
     9954 LUA.1: brakeChange: value=-15734
     9969 LUA.1: Rudder %: 50 , brake %:1.9807117133614
     9985 LUA.1: Left brake value sent: 15734 (rudder % used: 100)
    10000 LUA.1: Rught brake value sent: 15734 (rudder % used: 100)
    10000 LUA.1: brakeChange: value=-16384
    10016 LUA.1: Rudder %: 50 , brake %:-0.0030519440883843
    10032 LUA.1: Left brake value sent: 16384 (rudder % used: 100)
    10047 LUA.1: Rught brake value sent: 16384 (rudder % used: 100)
    10204 LUA.1: brakeChange: value=-15734
    10219 LUA.1: Rudder %: 50 , brake %:1.9807117133614
    10235 LUA.1: Left brake value sent: 15734 (rudder % used: 100)
    10250 LUA.1: Rught brake value sent: 15734 (rudder % used: 100)
    10266 LUA.1: brakeChange: value=1920
    10282 LUA.1: Rudder %: 50 , brake %:55.859732649698
    10297 LUA.1: Left brake value sent: -1920 (rudder % used: 100)
    10313 LUA.1: Rught brake value sent: -1920 (rudder % used: 100)
    10329 LUA.1: brakeChange: value=12927
    10344 LUA.1: Rudder %: 50 , brake %:89.452481230544
    10360 LUA.1: Left brake value sent: -12927 (rudder % used: 100)
    10375 LUA.1: Rught brake value sent: -12927 (rudder % used: 100)
    10391 LUA.1: brakeChange: value=16127
    10407 LUA.1: Rudder %: 50 , brake %:100
    10422 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    10438 LUA.1: Rught brake value sent: -16383 (rudder % used: 100)
    10454 LUA.1: brakeChange: value=16383
    10469 LUA.1: Rudder %: 50 , brake %:100
    10485 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    10500 LUA.1: Rught brake value sent: -16383 (rudder % used: 100)
    10516 LUA.1: brakeChange: value=16383
    10532 LUA.1: Rudder %: 50 , brake %:100
    10547 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    10563 LUA.1: Rught brake value sent: -16383 (rudder % used: 100)
    10594 LUA.1: rudderChange: value=264
    10610 LUA.1: rudderControl sent with value=0
    10625 LUA.1: Rudder %: 50 , brake %:100
    10641 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    10657 LUA.1: Rught brake value sent: -16383 (rudder % used: 100)
    10891 LUA.1: rudderChange: value=0
    10907 LUA.1: rudderControl sent with value=0
    10922 LUA.1: Rudder %: 50 , brake %:100
    10938 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    10954 LUA.1: Rught brake value sent: -16383 (rudder % used: 100)
    10985 LUA.1: rudderChange: value=-1073
    11000 LUA.1: rudderControl sent with value=-1073
    11016 LUA.1: Rudder %: 46.725263993164 , brake %:100
    11032 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    11047 LUA.1: Rught brake value sent: -14237 (rudder % used: 93.450527986327)
    11079 LUA.1: rudderChange: value=-8212
    11094 LUA.1: rudderControl sent with value=-8212
    11110 LUA.1: Rudder %: 24.937435146188 , brake %:100
    11125 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    11141 LUA.1: Rught brake value sent: 41 (rudder % used: 49.874870292376)
    11172 LUA.1: rudderChange: value=-13983
    11188 LUA.1: rudderControl sent with value=-13983
    11204 LUA.1: Rudder %: 7.3246658121223 , brake %:100
    11219 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    11235 LUA.1: Rught brake value sent: 11583 (rudder % used: 14.649331624245)
    11266 LUA.1: rudderChange: value=-14607
    11282 LUA.1: rudderControl sent with value=-14607
    11297 LUA.1: Rudder %: 5.4202527009705 , brake %:100
    11313 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    11329 LUA.1: Rught brake value sent: 12831 (rudder % used: 10.840505401941)
    11422 LUA.1: rudderChange: value=-15191
    11438 LUA.1: rudderControl sent with value=-15191
    11454 LUA.1: Rudder %: 3.6379173533541 , brake %:100
    11469 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    11485 LUA.1: Rught brake value sent: 13999 (rudder % used: 7.2758347067082)
    11500 LUA.1: rudderChange: value=-16256
    11516 LUA.1: rudderControl sent with value=-16256
    11532 LUA.1: Rudder %: 0.38759689922481 , brake %:100
    11547 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    11563 LUA.1: Rught brake value sent: 16129 (rudder % used: 0.77519379844961)
    12094 LUA.1: rudderChange: value=-15743
    12110 LUA.1: rudderControl sent with value=-15743
    12125 LUA.1: Rudder %: 1.953244216566 , brake %:100
    12141 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    12157 LUA.1: Rught brake value sent: 15103 (rudder % used: 3.9064884331319)
    12188 LUA.1: rudderChange: value=-8540
    12204 LUA.1: rudderControl sent with value=-8540
    12219 LUA.1: Rudder %: 23.936397485198 , brake %:100
    12235 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    12250 LUA.1: Rught brake value sent: 697 (rudder % used: 47.872794970396)
    12282 LUA.1: rudderChange: value=4360
    12297 LUA.1: rudderControl sent with value=4360
    12313 LUA.1: Rudder %: 63.306476225356 , brake %:100
    12329 LUA.1: Left brake value sent: -7663 (rudder % used: 73.387047549289)
    12344 LUA.1: Rught brake value sent: -16383 (rudder % used: 100)
    12375 LUA.1: rudderChange: value=9103
    12391 LUA.1: rudderControl sent with value=9103
    12407 LUA.1: Rudder %: 77.781847036562 , brake %:100
    12422 LUA.1: Left brake value sent: 1823 (rudder % used: 44.436305926875)
    12438 LUA.1: Rught brake value sent: -16383 (rudder % used: 100)
    12469 LUA.1: rudderChange: value=9743
    12485 LUA.1: rudderControl sent with value=9743
    12500 LUA.1: Rudder %: 79.735091253128 , brake %:100
    12516 LUA.1: Left brake value sent: 3103 (rudder % used: 40.529817493744)
    12532 LUA.1: Rught brake value sent: -16383 (rudder % used: 100)
    12563 LUA.1: rudderChange: value=14015
    12579 LUA.1: rudderControl sent with value=14015
    12594 LUA.1: Rudder %: 92.772996398706 , brake %:100
    12610 LUA.1: Left brake value sent: 11647 (rudder % used: 14.454007202588)
    12625 LUA.1: Rught brake value sent: -16383 (rudder % used: 100)
    12657 LUA.1: rudderChange: value=15935
    12672 LUA.1: rudderControl sent with value=15935
    12688 LUA.1: Rudder %: 98.632729048404 , brake %:100
    12704 LUA.1: Left brake value sent: 15487 (rudder % used: 2.7345419031923)
    12719 LUA.1: Rught brake value sent: -16383 (rudder % used: 100)
    12750 LUA.1: rudderChange: value=16223
    12766 LUA.1: rudderControl sent with value=16223
    12782 LUA.1: Rudder %: 99.511688945859 , brake %:100
    12797 LUA.1: Left brake value sent: 16063 (rudder % used: 0.97662210828298)
    12813 LUA.1: Rught brake value sent: -16383 (rudder % used: 100)
    13282 LUA.1: rudderChange: value=15655
    13297 LUA.1: rudderControl sent with value=15655
    13313 LUA.1: Rudder %: 97.778184703656 , brake %:100
    13329 LUA.1: Left brake value sent: 14927 (rudder % used: 4.4436305926876)
    13344 LUA.1: Rught brake value sent: -16383 (rudder % used: 100)
    13375 LUA.1: rudderChange: value=9751
    13391 LUA.1: rudderControl sent with value=9751
    13407 LUA.1: Rudder %: 79.759506805835 , brake %:100
    13422 LUA.1: Left brake value sent: 3119 (rudder % used: 40.480986388329)
    13438 LUA.1: Rught brake value sent: -16383 (rudder % used: 100)
    13469 LUA.1: rudderChange: value=1248
    13485 LUA.1: rudderControl sent with value=1248
    13500 LUA.1: Rudder %: 53.808826222304 , brake %:100
    13516 LUA.1: Left brake value sent: -13887 (rudder % used: 92.382347555393)
    13532 LUA.1: Rught brake value sent: -16383 (rudder % used: 100)
    13563 LUA.1: rudderChange: value=72
    13579 LUA.1: rudderControl sent with value=0
    13594 LUA.1: Rudder %: 50 , brake %:100
    13610 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    13625 LUA.1: Rught brake value sent: -16383 (rudder % used: 100)
    17079 === Hot key unregistered
    17079 === Stop called ...
    17079 === Closing external processes we started ...
    17594 === About to kill any Lua plug-ins still running ...
    17750 Lua threads being terminated:
    17750       1 = "D:\FSUIPC\spitfireBrake.lua"
    17938 LUA: "D:\FSUIPC\spitfireBrake.lua": killed
    17938 === Closing global Lua thread
    18719 === About to kill my timers ...
    18922 === Restoring window procs ...
    18922 === Unloading libraries ...
    18922 === stopping other threads ...
    18922 === ... Button scanning ...
    19016 === ... Axis scanning ...
    19125 === Releasing joystick devices ...
    19125 === Freeing macro memory
    19125 === Removing any offset overrides
    19125 === Clearing any displays left
    19125 === Calling SimConnect_Close ...
    19344 === SimConnect_Close done!
    19344 === AI slots deleted!
    19344 === Freeing button memory ...
    19344 === Closing my Windows ...
    19344 === Freeing FS libraries ...
    20360 === Closing devices ...
    20360 === Closing the Log ... Bye Bye! ...
    20360 System time = 06/08/2025 17:31:41
    20360 *** FSUIPC log file being closed
Minimum frame rate was 42.7 fps, Maximum was 46.1 fps
Average frame rate for running time of 13 secs = 44.1 fps
Maximum AI traffic for session was 14 aircraft
Traffic deletions 0 aircraft
Memory managed: 10 Allocs, 8 Freed
********* FSUIPC Log file closed ***********
 

** Edit : for completeness, this is your initial description of the issue ***

Quote

 

I was very happy to discover this solution for making it possible to use differential braking with one axis in msfs. The Avro Lancaster (amongst others) also used this single lever for differential braking. 

I have been trying to make it work in my sim, however I have reached a dead end. Presently:

Pulling the lever applies both brakes - excellent!

When I add left rudder the left brake comes on, and the right reduces, visa versa - great, apart from it does this without input from the brake lever. 

When the brake lever is applied and rudder is input, the brakes just come on as if there was no differential braking. 

I apologies as this is beyond my basic understanding of the FSUIPC world, so any help would be appreciated. I have searched around and attempted to change numerous settings with no joy.

 

 

Edited by John Dowson
Initial problem description added
Posted
5 minutes ago, Hazzer111 said:

Unfortunately the attachment limit is too small for me to attach the log.

You can always compress/zip it. Your attachment limit will increase the more you post.

7 minutes ago, Hazzer111 said:

I can see from looking at this, and my findings in the sim that the rudder input is applying the brakes irrespective of the actual input to the brake lever. The brake lever is itself running so that it can be pressed and will apply the brakes, but again does take into account the rudder position. 

Looking at that log, you are getting some differential braking via FSUIPC, e.g.

Quote

    12688 LUA.1: Rudder %: 98.632729048404 , brake %:100
    12704 LUA.1: Left brake value sent: 15487 (rudder % used: 2.7345419031923)
    12719 LUA.1: Rught brake value sent: -16383 (rudder % used: 100)
    12750 LUA.1: rudderChange: value=16223
    12766 LUA.1: rudderControl sent with value=16223
    12782 LUA.1: Rudder %: 99.511688945859 , brake %:100
    12797 LUA.1: Left brake value sent: 16063 (rudder % used: 0.97662210828298)
    12813 LUA.1: Rught brake value sent: -16383 (rudder % used: 100)

Can you check that you also don't have the brakes assigned to the brake axis events anywhere else, i.e. both in FSUIPC and in MSFS. Also, generate another log but this time also set logging for Axes Controls.

This script is also quite old and I can't remember it in detail. I will have to go over it again and get back to you. I am pretty busy at the moment so this may take a day or two.

John

 

Posted
2 hours ago, John Dowson said:

You can always compress/zip it. Your attachment limit will increase the more you post.

Looking at that log, you are getting some differential braking via FSUIPC, e.g.

Can you check that you also don't have the brakes assigned to the brake axis events anywhere else, i.e. both in FSUIPC and in MSFS. Also, generate another log but this time also set logging for Axes Controls.

This script is also quite old and I can't remember it in detail. I will have to go over it again and get back to you. I am pretty busy at the moment so this may take a day or two.

John

 

I definitely have no other inputs - I have triple checked presently this is the only thing I have set up fsuipc for as well. 

The script is doing something and it is almost correct but not quite right. 

As you say I do get differential braking, but it is doing that just off the rudder input alone (so with the brake released) - but as I had mentioned previously, the brake lever operates independently as well in this mode (when applied it applies brakes to left and right regardless of rudder pos).

Hope that makes sense as to what it should do and what it is actually doing. If needed I can send a video of it at some point. No rush getting to this either as I wont be at my pc for a few days.

Posted (edited)
On 8/6/2025 at 6:35 PM, Hazzer111 said:

The only change I made was setting "local brakeReversed =" to true. 

I think this is the issue - or one of them. By setting this to true, the script is sending a value of +16384 for brakes off, and -16383 for brakes full on. Try setting that back to false. This variable is to reverse the brake axis values sent to the sim. In fact, the script is not clear on this and it seems that it wasn't tested properly with a reversed brake lever axis. I have corrected this in the attached script, so please try this and set brakeAxisReversed to true and leave brakeReversed as false.

The second issue is that the initial brake lever offset will be set at 0, which is 50% brakes. I have also attempted to correct this in the attached script, which explicitly calls the brakeChange function to set an initial value of -16383 ( or +16383 if reversed) so that brakes are initially off. If you want the brakes initially full on, set the initial/default value of lastBrakeValue to 16383 instead of -16383 (regardless of reversing).

Please try this and let me know how it goes, and show me / attach your log if any issues (with enableLog set to true).

John

 

Edited by John Dowson
Script removed - available in first post in this topic
Posted
On 8/7/2025 at 10:33 AM, John Dowson said:

I think this is the issue - or one of them. By setting this to true, the script is sending a value of +16384 for brakes off, and -16383 for brakes full on. Try setting that back to false. This variable is to reverse the brake axis values sent to the sim. In fact, the script is not clear on this and it seems that it wasn't tested properly with a reversed brake lever axis. I have corrected this in the attached script, so please try this and set brakeAxisReversed to true and leave brakeReversed as false.

The second issue is that the initial brake lever offset will be set at 0, which is 50% brakes. I have also attempted to correct this in the attached script, which explicitly calls the brakeChange function to set an initial value of -16383 ( or +16383 if reversed) so that brakes are initially off. If you want the brakes initially full on, set the initial/default value of lastBrakeValue to 16383 instead of -16383 (regardless of reversing).

Please try this and let me know how it goes, and show me / attach your log if any issues (with enableLog set to true).

John

spitfireBrake.lua 4.02 kB · 0 downloads

That works great thanks John

Posted
21 hours ago, John Dowson said:

👍

Sorry John, I jumped the gun slightly.

It works however when pulling the brake and applying left rudder, the left brake should apply - currently the right brake applies. So that is inverted, I tried various combinations of the brakeReversed & brakeAxisReversed which obvs didn't help. 

 

Assume some parts of the lua may need to be switched around, but I tried and made things worse. If you get chance to have a look that would be greatly appreciated.

 

Quote

********* FSUIPC7, Version 7.5.4 (13th July 2025) by John Dowson *********
WebSocket server found: D:\FSUIPC\\Utils\FSUIPCWebSocketServer.exe
Windows 11 detected - setting DisableMSFSMonitor to 'Enum'
Windows 10 Home 64 Bit reported as Build 22631, Release ID: 2009 (OS 10.0)
FSUIPC is running with standard privileges
Reading options from "D:\FSUIPC\FSUIPC7.ini"
Checking the Registrations now ...
User Name="harry smith"
User Addr="smithy-harry@hotmail.co.uk"
FSUIPC7 Key is provided
WIDEFS7 not user registered, or expired
       78 System time = 12/08/2025 16:40:07
       78 Allowing calibration when not assigned with 'Send direct to FSUIPC Calibration'
       78 -------------------------------------------------------------------
       93 *** Preset name 'Cirrus_SF50_Vision_Jet__MSFS2024_-_Toggle_VNV_Button_in_Autopilot_On_and_OFF' exceeds max allowed length of 63 characters - ignoring
      265 *** Preset name 'NAV_GPS_SWAP__NAV__button_on_EFIS_Control_Panel__LEFT_SIDE__CAPTAIN_' exceeds max allowed length of 63 characters - ignoring
      265 *** Preset name 'NAV_GPS_SWAP__NAV__button_on_EFIS_Control_Panel__RIGHT__SIDE__FIRST_OFFICER_' exceeds max allowed length of 63 characters - ignoring
      281 *** Preset name 'Main_instrument_panel_standby_attitude_indicator_cage_button_release' exceeds max allowed length of 63 characters - ignoring
      297 Preset file 'D:\FSUIPC\myevents.txt' not found [info only]
      297 19666 Calculator Code presets have been loaded and are available for use
      312 Registered HotKey 'InvokeFSUIPCOptionsKey' (key=0x46, modifier=0x1)
      328 FS path = ""
      328 ---------------------- Joystick Device Scan -----------------------
      328 Product= Controller (Xbox One For Windows)
      328    Vendor=045E, Product=02FF (Version 0.0)
      406    GUIDs returned for product: VID_045E&PID_02FF:
      406       GUID= {0CE66430-7160-11F0-8001-444553540000}
      406       Details: Btns=16, POVs=(0, 0, 0, 0), Cal=x00000000, Max=R0,U65535,V65535,X65535,Y65535,Z65535
      406 Product= Rhino FFB Joystick
      406    Manufacturer= VPforce
      406    Serial Number= 3359534E0100004C52006600
      406    Vendor=FFFF, Product=2055 (Version 2.8)
      406    GUIDs returned for product: VID_FFFF&PID_2055:
      406       GUID= {A8C007E0-1192-11F0-800C-444553540000}
      406       Details: Btns=64, POVs=(0, 0, 0, 0), Cal=x00000000, Max=R255,U255,V255,X4096,Y4096,Z4096
      406 Product= MFG Crosswind V2
      406    Manufacturer= MFG
      406    Serial Number= MFG500002
      406    Vendor=16D0, Product=0A38 (Version 33.1)
      406    GUIDs returned for product: VID_16D0&PID_0A38:
      406       GUID= {1ECE9D80-1192-11F0-8009-444553540000}
      406       Details: Btns=2, POVs=(0, 0, 0, 0), Cal=x00000000, Max=R4096,U0,V0,X4096,Y4096,Z0
      406 Product= L-VPC Throttle MT-50
      406    Manufacturer= VIRPIL Controls/20210102
      406    Vendor=3344, Product=8191 (Version 0.1)
      406    GUIDs returned for product: VID_3344&PID_8191:
      406       GUID= {564B53C0-1192-11F0-800A-444553540000}
      406       Details: Btns=84, POVs=(0, 0, 0, 0), Cal=x00000000, Max=R16384,U16384,V16384,X0,Y0,Z16384
      406 Product= Bravo Throttle Quadrant
      406    Manufacturer= Honeycomb Aeronautical
      406    Serial Number= 6F7B2E091F1A3B00
      406    Vendor=294B, Product=1901 (Version 1.5)
      406    GUIDs returned for product: VID_294B&PID_1901:
      406       GUID= {966C4330-10C3-11F0-8001-444553540000}
      406       Details: Btns=48, POVs=(0, 0, 0, 0), Cal=x00000000, Max=R1023,U1023,V1023,X1023,Y1023,Z1023
      406 -------------------------------------------------------------------
      422 Device acquired for use:
      422    Joystick ID = 4 (Registry okay)
      422    4=Controller (Xbox One For Windows)
      422    4.GUID={0CE66430-7160-11F0-8001-444553540000}
      437 Device acquired for use:
      437    Joystick ID = 3 (Registry okay)
      437    3=VPforce Rhino FFB Joystick
      437    3.GUID={A8C007E0-1192-11F0-800C-444553540000}
      437 Device acquired for use:
      437    Joystick ID = 1 (Registry okay)
      437    1=MFG Crosswind V2
      437    1.GUID={1ECE9D80-1192-11F0-8009-444553540000}
      437 Device acquired for use:
      437    Joystick ID = 2 (Registry okay)
      437    2=L-VPC Throttle MT-50
      437    2.GUID={564B53C0-1192-11F0-800A-444553540000}
      437 Device acquired for use:
      437    Joystick ID = 0 (Registry okay)
      437    0=Bravo Throttle Quadrant
      437    0.GUID={966C4330-10C3-11F0-8001-444553540000}
      437 -------------------------------------------------------------------
      453 LogOptions=00000000 00000001
      453 Manually started with DetectToConnectDelay=1, InitialStallTime=15
     3312 Simulator detected
     4312 Trying to connect...
     4328 SimConnect_Open succeeded
     4328 Running in "SunRise", Version: 12.2.282174.999 (SimConnect: 12.2.0.0)
     4328 MSFS version = 12.2.282174.999
     4328 MSFS 2024 Steam installation detected
     4328 Checking for FS path in 'C:\Users\Harry\AppData\Roaming\Microsoft Flight Simulator 2024\UserCfg.opt'
     4328 FS path found = D:\MSFS Community\
     4328 FLT path = "C:\Users\Harry\AppData\Roaming\Microsoft Flight Simulator 2024\"
     4328 FS path = "D:\MSFS Community\"
     4328 Initialising SimConnect data requests now
     4328 Offset file 'D:\FSUIPC\myOffsets.txt' not found (info only)
     4328 Number of FS control/events registered : 1795
     4328 Mapping custom control numbers 69632 - 84232 (maximum defined by ini parameter MaxCustomControlNumber, defaults to 84232 when not present)
     4328 Maximum number of custom events available is 1024 (defined by ini parameter MaxNumberOfCustomEvents)
     4328 C:\Users\Harry\AppData\Roaming\Microsoft Flight Simulator 2024\Test.FLT
     4422 User Aircraft ID 39387136 supplied, now being used (myftm=1)
     4422 Requesting keyboard input...
     4422 Requesting user aircraft data...
     4687 Aircraft loaded: running normally now ...
     4718 System time = 12/08/2025 16:40:12, Simulator time = 16:40:12 (15:40Z)
     4718 Requesting Input Events....
     4718 Starting WAPI (WAPI enabled)...
     4718   [INFO]: **** Starting FSUIPC7 WASM Interface (WAPI) version 1.0.4 (WASM version 1.0.7) using connection -1
     4718   [INFO]: Connected to MSFS
     4734 Aircraft="Lancaster NX611 Just Jane"
     4734 -------------------- Starting everything now ----------------------
     4781 Lvars received: 3861 L:vars & 0 H:vars now available
     4781 Lvars/Hvars received - checking aircraft autos....
     4843 LUA.1: brakeChange: value=-16383
     4859 LUA.1: Rudder %: 50 , brake %:100
     4875 LUA.1: Left brake value sent: 16383 (rudder % used: 100)
     4890 LUA.1: Right brake value sent: 16383 (rudder % used: 100)
     4906 LUA.1: Spitfire differential brake lua started
     4937 LUA.1: rudderChange: value=0
     4953 LUA.1: rudderControl sent with value=0
     4968 LUA.1: Rudder %: 50 , brake %:100
     4984 LUA.1: Left brake value sent: 16383 (rudder % used: 100)
     5000 LUA.1: Right brake value sent: 16383 (rudder % used: 100)
     5015 LUA.1: brakeChange: value=0
     5031 LUA.1: Rudder %: 50 , brake %:50
     5047 LUA.1: Left brake value sent: 0 (rudder % used: 100)
     5062 LUA.1: Right brake value sent: 0 (rudder % used: 100)
     5687 LUA.1: brakeChange: value=15871
     5703 LUA.1: Rudder %: 50 , brake %:1.5625953732528
     5718 LUA.1: Left brake value sent: -15871 (rudder % used: 100)
     5734 LUA.1: Right brake value sent: -15871 (rudder % used: 100)
     5750 LUA.1: brakeChange: value=-260
     5765 LUA.1: Rudder %: 50 , brake %:50.79350546298
     5781 LUA.1: Left brake value sent: 260 (rudder % used: 100)
     5797 LUA.1: Right brake value sent: 260 (rudder % used: 100)
     5812 LUA.1: brakeChange: value=-15344
     5828 LUA.1: Rudder %: 50 , brake %:96.829030092169
     5843 LUA.1: Left brake value sent: 15344 (rudder % used: 100)
     5859 LUA.1: Right brake value sent: 15344 (rudder % used: 100)
     5875 LUA.1: brakeChange: value=-16384
     5890 LUA.1: Rudder %: 50 , brake %:100.00305194409
     5906 LUA.1: Left brake value sent: 16384 (rudder % used: 100)
     5922 LUA.1: Right brake value sent: 16384 (rudder % used: 100)
     6375 LUA.1: brakeChange: value=-12743
     6390 LUA.1: Rudder %: 50 , brake %:88.890923518281
     6406 LUA.1: Left brake value sent: 12743 (rudder % used: 100)
     6422 LUA.1: Right brake value sent: 12743 (rudder % used: 100)
     6437 LUA.1: brakeChange: value=16383
     6453 LUA.1: Rudder %: 50 , brake %:0
     6468 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
     6484 LUA.1: Right brake value sent: -16383 (rudder % used: 100)
     6953 LUA.1: brakeChange: value=15871
     6968 LUA.1: Rudder %: 50 , brake %:1.5625953732528
     6984 LUA.1: Left brake value sent: -15871 (rudder % used: 100)
     7000 LUA.1: Right brake value sent: -15871 (rudder % used: 100)
     7015 LUA.1: brakeChange: value=-2861
     7031 LUA.1: Rudder %: 50 , brake %:58.731612036867
     7047 LUA.1: Left brake value sent: 2861 (rudder % used: 100)
     7062 LUA.1: Right brake value sent: 2861 (rudder % used: 100)
     7078 LUA.1: brakeChange: value=-16384
     7093 LUA.1: Rudder %: 50 , brake %:100.00305194409
     7109 LUA.1: Left brake value sent: 16384 (rudder % used: 100)
     7125 LUA.1: Right brake value sent: 16384 (rudder % used: 100)
     7750 LUA.1: brakeChange: value=-15994
     7765 LUA.1: Rudder %: 50 , brake %:98.812793749619
     7781 LUA.1: Left brake value sent: 15994 (rudder % used: 100)
     7797 LUA.1: Right brake value sent: 15994 (rudder % used: 100)
     7812 LUA.1: brakeChange: value=13311
     7828 LUA.1: Rudder %: 50 , brake %:9.3755722395166
     7843 LUA.1: Left brake value sent: -13311 (rudder % used: 100)
     7859 LUA.1: Right brake value sent: -13311 (rudder % used: 100)
     7875 LUA.1: brakeChange: value=16383
     7890 LUA.1: Rudder %: 50 , brake %:0
     7906 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
     7922 LUA.1: Right brake value sent: -16383 (rudder % used: 100)
     8297 LUA.1: rudderChange: value=496
     8312 LUA.1: rudderControl sent with value=0
     8328 LUA.1: Rudder %: 50 , brake %:0
     8343 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
     8359 LUA.1: Right brake value sent: -16383 (rudder % used: 100)
     8390 LUA.1: rudderChange: value=8743
     8406 LUA.1: rudderControl sent with value=8743
     8422 LUA.1: Rudder %: 76.683147164744 , brake %:0
     8437 LUA.1: Left brake value sent: -16383 (rudder % used: 46.633705670512)
     8453 LUA.1: Right brake value sent: -16383 (rudder % used: 100)
     8484 LUA.1: rudderChange: value=16383
     8500 LUA.1: rudderControl sent with value=16383
     8515 LUA.1: Rudder %: 100 , brake %:0
     8531 LUA.1: Left brake value sent: -16383 (rudder % used: 0)
     8547 LUA.1: Right brake value sent: -16383 (rudder % used: 100)
     9172 LUA.1: brakeChange: value=15231
     9187 LUA.1: Rudder %: 100 , brake %:3.5158395898187
     9203 LUA.1: Left brake value sent: -16383 (rudder % used: 0)
     9218 LUA.1: Right brake value sent: -15231 (rudder % used: 100)
     9234 LUA.1: brakeChange: value=-260
     9250 LUA.1: Rudder %: 100 , brake %:50.79350546298
     9265 LUA.1: Left brake value sent: -16383 (rudder % used: 0)
     9281 LUA.1: Right brake value sent: 260 (rudder % used: 100)
     9297 LUA.1: brakeChange: value=-12093
     9312 LUA.1: Rudder %: 100 , brake %:86.907159860831
     9328 LUA.1: Left brake value sent: -16383 (rudder % used: 0)
     9343 LUA.1: Right brake value sent: 12093 (rudder % used: 100)
     9359 LUA.1: brakeChange: value=-15994
     9375 LUA.1: Rudder %: 100 , brake %:98.812793749619
     9390 LUA.1: Left brake value sent: -16383 (rudder % used: 0)
     9406 LUA.1: Right brake value sent: 15994 (rudder % used: 100)
     9609 LUA.1: brakeChange: value=-16384
     9625 LUA.1: Rudder %: 100 , brake %:100.00305194409
     9640 LUA.1: Left brake value sent: -16383 (rudder % used: 0)
     9656 LUA.1: Right brake value sent: 16384 (rudder % used: 100)
    10031 LUA.1: brakeChange: value=-15994
    10047 LUA.1: Rudder %: 100 , brake %:98.812793749619
    10062 LUA.1: Left brake value sent: -16383 (rudder % used: 0)
    10078 LUA.1: Right brake value sent: 15994 (rudder % used: 100)
    10093 LUA.1: brakeChange: value=-1561
    10109 LUA.1: Rudder %: 100 , brake %:54.764084721968
    10125 LUA.1: Left brake value sent: -16383 (rudder % used: 0)
    10140 LUA.1: Right brake value sent: 1561 (rudder % used: 100)
    10156 LUA.1: brakeChange: value=16127
    10172 LUA.1: Rudder %: 100 , brake %:0
    10187 LUA.1: Left brake value sent: -16383 (rudder % used: 0)
    10203 LUA.1: Right brake value sent: -16383 (rudder % used: 100)
    10484 LUA.1: brakeChange: value=16383
    10500 LUA.1: Rudder %: 100 , brake %:0
    10515 LUA.1: Left brake value sent: -16383 (rudder % used: 0)
    10531 LUA.1: Right brake value sent: -16383 (rudder % used: 100)
    10718 LUA.1: brakeChange: value=16127
    10734 LUA.1: Rudder %: 100 , brake %:0
    10750 LUA.1: Left brake value sent: -16383 (rudder % used: 0)
    10765 LUA.1: Right brake value sent: -16383 (rudder % used: 100)
    10781 LUA.1: brakeChange: value=9471
    10797 LUA.1: Rudder %: 100 , brake %:21.095037538912
    10812 LUA.1: Left brake value sent: -16383 (rudder % used: 0)
    10828 LUA.1: Right brake value sent: -9471 (rudder % used: 100)
    10843 LUA.1: brakeChange: value=-13783
    10859 LUA.1: Rudder %: 100 , brake %:92.064945370201
    10875 LUA.1: Left brake value sent: -16383 (rudder % used: 0)
    10890 LUA.1: Right brake value sent: 13783 (rudder % used: 100)
    10906 LUA.1: brakeChange: value=-16384
    10922 LUA.1: Rudder %: 100 , brake %:100.00305194409
    10937 LUA.1: Left brake value sent: -16383 (rudder % used: 0)
    10953 LUA.1: Right brake value sent: 16384 (rudder % used: 100)
    11703 LUA.1: brakeChange: value=-15994
    11718 LUA.1: Rudder %: 100 , brake %:98.812793749619
    11734 LUA.1: Left brake value sent: -16383 (rudder % used: 0)
    11750 LUA.1: Right brake value sent: 15994 (rudder % used: 100)
    11765 LUA.1: brakeChange: value=8191
    11781 LUA.1: Rudder %: 100 , brake %:25.001525972044
    11797 LUA.1: Left brake value sent: -16383 (rudder % used: 0)
    11812 LUA.1: Right brake value sent: -8191 (rudder % used: 100)
    11828 LUA.1: brakeChange: value=16383
    11843 LUA.1: Rudder %: 100 , brake %:0
    11859 LUA.1: Left brake value sent: -16383 (rudder % used: 0)
    11875 LUA.1: Right brake value sent: -16383 (rudder % used: 100)
    11906 LUA.1: rudderChange: value=15847
    11922 LUA.1: rudderControl sent with value=15847
    11937 LUA.1: Rudder %: 98.364157968626 , brake %:0
    11953 LUA.1: Left brake value sent: -16383 (rudder % used: 3.271684062748)
    11968 LUA.1: Right brake value sent: -16383 (rudder % used: 100)
    12000 LUA.1: rudderChange: value=12679
    12015 LUA.1: rudderControl sent with value=12679
    12031 LUA.1: Rudder %: 88.695599096625 , brake %:0
    12047 LUA.1: Left brake value sent: -16383 (rudder % used: 22.608801806751)
    12062 LUA.1: Right brake value sent: -16383 (rudder % used: 100)
    12093 LUA.1: rudderChange: value=8759
    12109 LUA.1: rudderControl sent with value=8759
    12125 LUA.1: Rudder %: 76.731978270158 , brake %:0
    12140 LUA.1: Left brake value sent: -16383 (rudder % used: 46.536043459684)
    12156 LUA.1: Right brake value sent: -16383 (rudder % used: 100)
    12187 LUA.1: rudderChange: value=4168
    12187 LUA.1: rudderControl sent with value=4168
    12218 LUA.1: Rudder %: 62.720502960386 , brake %:0
    12234 LUA.1: Left brake value sent: -16383 (rudder % used: 74.558994079228)
    12234 LUA.1: Right brake value sent: -16383 (rudder % used: 100)
    12281 LUA.1: rudderChange: value=-536
    12297 LUA.1: rudderControl sent with value=-536
    12312 LUA.1: Rudder %: 48.364157968626 , brake %:0
    12328 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    12343 LUA.1: Right brake value sent: -16383 (rudder % used: 96.728315937252)
    12375 LUA.1: rudderChange: value=-176
    12390 LUA.1: rudderControl sent with value=0
    12406 LUA.1: Rudder %: 50 , brake %:0
    12422 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    12422 LUA.1: Right brake value sent: -16383 (rudder % used: 100)
    13562 LUA.1: rudderChange: value=-945
    13578 LUA.1: rudderControl sent with value=-945
    13593 LUA.1: Rudder %: 47.115912836477 , brake %:0
    13609 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    13625 LUA.1: Right brake value sent: -16383 (rudder % used: 94.231825672954)
    13656 LUA.1: rudderChange: value=-3538
    13672 LUA.1: rudderControl sent with value=-3538
    13687 LUA.1: Rudder %: 39.202221815296 , brake %:0
    13703 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    13718 LUA.1: Right brake value sent: -16383 (rudder % used: 78.404443630593)
    13750 LUA.1: rudderChange: value=-9485
    13765 LUA.1: rudderControl sent with value=-9485
    13781 LUA.1: Rudder %: 21.052310321675 , brake %:0
    13797 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    13812 LUA.1: Right brake value sent: -16383 (rudder % used: 42.10462064335)
    13843 LUA.1: rudderChange: value=-13863
    13859 LUA.1: rudderControl sent with value=-13863
    13875 LUA.1: Rudder %: 7.6908991027284 , brake %:0
    13890 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    13906 LUA.1: Right brake value sent: -16383 (rudder % used: 15.381798205457)
    13937 LUA.1: rudderChange: value=-16368
    13953 LUA.1: rudderControl sent with value=-16368
    13968 LUA.1: Rudder %: 0.045779161325765 , brake %:0
    13984 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    14000 LUA.1: Right brake value sent: -16383 (rudder % used: 0.091558322651522)
    14672 LUA.1: brakeChange: value=15871
    14687 LUA.1: Rudder %: 0.045779161325765 , brake %:1.5625953732528
    14703 LUA.1: Left brake value sent: -15871 (rudder % used: 100)
    14718 LUA.1: Right brake value sent: -16382.531221388 (rudder % used: 0.091558322651522)
    14734 LUA.1: brakeChange: value=1536
    14750 LUA.1: Rudder %: 0.045779161325765 , brake %:45.312213880242
    14765 LUA.1: Left brake value sent: -1536 (rudder % used: 100)
    14781 LUA.1: Right brake value sent: -16369.406335836 (rudder % used: 0.091558322651522)
    14797 LUA.1: brakeChange: value=-16384
    14812 LUA.1: Rudder %: 0.045779161325765 , brake %:100.00305194409
    14828 LUA.1: Left brake value sent: 16384 (rudder % used: 100)
    14843 LUA.1: Right brake value sent: -16352.999084417 (rudder % used: 0.091558322651522)
    15359 LUA.1: brakeChange: value=-15344
    15375 LUA.1: Rudder %: 0.045779161325765 , brake %:96.829030092169
    15375 LUA.1: Left brake value sent: 15344 (rudder % used: 100)
    15390 LUA.1: Right brake value sent: -16353.951290972 (rudder % used: 0.091558322651522)
    15406 LUA.1: brakeChange: value=6912
    15422 LUA.1: Rudder %: 0.045779161325765 , brake %:28.904962461088
    15437 LUA.1: Left brake value sent: -6912 (rudder % used: 100)
    15453 LUA.1: Right brake value sent: -16374.328511262 (rudder % used: 0.091558322651522)
    15468 LUA.1: brakeChange: value=16383
    15484 LUA.1: Rudder %: 0.045779161325765 , brake %:0
    15500 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    15515 LUA.1: Right brake value sent: -16383 (rudder % used: 0.091558322651522)
    15875 LUA.1: brakeChange: value=15871
    15890 LUA.1: Rudder %: 0.045779161325765 , brake %:1.5625953732528
    15906 LUA.1: Left brake value sent: -15871 (rudder % used: 100)
    15922 LUA.1: Right brake value sent: -16382.531221388 (rudder % used: 0.091558322651522)
    15937 LUA.1: brakeChange: value=256
    15953 LUA.1: Rudder %: 0.045779161325765 , brake %:49.218702313374
    15968 LUA.1: Left brake value sent: -256 (rudder % used: 100)
    15984 LUA.1: Right brake value sent: -16368.234389306 (rudder % used: 0.091558322651522)
    16000 LUA.1: brakeChange: value=-15734
    16015 LUA.1: Rudder %: 0.045779161325765 , brake %:98.019288286639
    16031 LUA.1: Left brake value sent: 15734 (rudder % used: 100)
    16047 LUA.1: Right brake value sent: -16353.594213514 (rudder % used: 0.091558322651522)
    16062 LUA.1: brakeChange: value=-16384
    16078 LUA.1: Rudder %: 0.045779161325765 , brake %:100.00305194409
    16093 LUA.1: Left brake value sent: 16384 (rudder % used: 100)
    16109 LUA.1: Right brake value sent: -16352.999084417 (rudder % used: 0.091558322651522)
    16281 LUA.1: rudderChange: value=-16088
    16297 LUA.1: rudderControl sent with value=-16088
    16312 LUA.1: Rudder %: 0.90032350607337 , brake %:100.00305194409
    16328 LUA.1: Left brake value sent: 16384 (rudder % used: 100)
    16343 LUA.1: Right brake value sent: -15792.98199353 (rudder % used: 1.8006470121467)
    16375 LUA.1: rudderChange: value=-13951
    16390 LUA.1: rudderControl sent with value=-13951
    16406 LUA.1: Rudder %: 7.4223280229506 , brake %:100.00305194409
    16422 LUA.1: Left brake value sent: 16384 (rudder % used: 100)
    16437 LUA.1: Right brake value sent: -11518.85155344 (rudder % used: 14.844656045901)
    16468 LUA.1: rudderChange: value=-11654
    16484 LUA.1: rudderControl sent with value=-11654
    16500 LUA.1: Rudder %: 14.432643593969 , brake %:100.00305194409
    16515 LUA.1: Left brake value sent: 16384 (rudder % used: 100)
    16531 LUA.1: Right brake value sent: -6924.7113471281 (rudder % used: 28.865287187939)
    16562 LUA.1: rudderChange: value=-9725
    16578 LUA.1: rudderControl sent with value=-9725
    16593 LUA.1: Rudder %: 20.319843740463 , brake %:100.00305194409
    16609 LUA.1: Left brake value sent: 16384 (rudder % used: 100)
    16625 LUA.1: Right brake value sent: -3066.5936031252 (rudder % used: 40.639687480925)
    16656 LUA.1: rudderChange: value=-8436
    16672 LUA.1: rudderControl sent with value=-8436
    16687 LUA.1: Rudder %: 24.25379967039 , brake %:100.00305194409
    16703 LUA.1: Left brake value sent: 16384 (rudder % used: 100)
    16718 LUA.1: Right brake value sent: -488.51492400659 (rudder % used: 48.50759934078)
    16750 LUA.1: rudderChange: value=-6291
    16765 LUA.1: rudderControl sent with value=-6291
    16781 LUA.1: Rudder %: 30.800219739974 , brake %:100.00305194409
    16797 LUA.1: Left brake value sent: 16384 (rudder % used: 100)
    16812 LUA.1: Right brake value sent: 3801.6160043948 (rudder % used: 61.600439479949)
    16843 LUA.1: rudderChange: value=-4314
    16859 LUA.1: rudderControl sent with value=-4314
    16875 LUA.1: Rudder %: 36.83391320271 , brake %:100.00305194409
    16890 LUA.1: Left brake value sent: 16384 (rudder % used: 100)
    16906 LUA.1: Right brake value sent: 7755.7366782641 (rudder % used: 73.66782640542)
    16937 LUA.1: rudderChange: value=-2337
    16953 LUA.1: rudderControl sent with value=-2337
    16968 LUA.1: Rudder %: 42.867606665446 , brake %:100.00305194409
    16984 LUA.1: Left brake value sent: 16384 (rudder % used: 100)
    17000 LUA.1: Right brake value sent: 11709.857352133 (rudder % used: 85.735213330892)
    17031 LUA.1: rudderChange: value=-1121
    17047 LUA.1: rudderControl sent with value=-1121
    17062 LUA.1: Rudder %: 46.578770676921 , brake %:100.00305194409
    17078 LUA.1: Left brake value sent: 16384 (rudder % used: 100)
    17093 LUA.1: Right brake value sent: 14141.931575414 (rudder % used: 93.157541353842)
    17125 LUA.1: rudderChange: value=-40
    17140 LUA.1: rudderControl sent with value=0
    17156 LUA.1: Rudder %: 50 , brake %:100.00305194409
    17172 LUA.1: Left brake value sent: 16384 (rudder % used: 100)
    17187 LUA.1: Right brake value sent: 16384 (rudder % used: 100)
    18547 LUA.1: brakeChange: value=-15734
    18562 LUA.1: Rudder %: 50 , brake %:98.019288286639
    18578 LUA.1: Left brake value sent: 15734 (rudder % used: 100)
    18593 LUA.1: Right brake value sent: 15734 (rudder % used: 100)
    18609 LUA.1: brakeChange: value=9855
    18625 LUA.1: Rudder %: 50 , brake %:19.923091008973
    18640 LUA.1: Left brake value sent: -9855 (rudder % used: 100)
    18656 LUA.1: Right brake value sent: -9855 (rudder % used: 100)
    18672 LUA.1: brakeChange: value=16383
    18687 LUA.1: Rudder %: 50 , brake %:0
    18703 LUA.1: Left brake value sent: -16383 (rudder % used: 100)
    18718 LUA.1: Right brake value sent: -16383 (rudder % used: 100)
    25406 === Hot key unregistered
    25406 === Stop called ...
    25406 === Closing external processes we started ...
    25922 === About to kill any Lua plug-ins still running ...
    26078 Lua threads being terminated:
    26078       1 = "D:\FSUIPC\spitfireBrake.lua"
    26265 LUA: "D:\FSUIPC\spitfireBrake.lua": killed
    26265 === Closing global Lua thread
    27031 === About to kill my timers ...
    27234 === Restoring window procs ...
    27234 === Unloading libraries ...
    27234 === stopping other threads ...
    27234 === ... Button scanning ...
    27343 === ... Axis scanning ...
    27453 === Releasing joystick devices ...
    27453 === Freeing macro memory
    27453 === Removing any offset overrides
    27453 === Clearing any displays left
    27453 === Calling SimConnect_Close ...
    27672 === SimConnect_Close done!
    27672 === AI slots deleted!
    27672 === Freeing button memory ...
    27672 === Closing my Windows ...
    27672 === Freeing FS libraries ...
    28687 === Closing devices ...
    28687 === Closing the Log ... Bye Bye! ...
    28687 System time = 12/08/2025 16:40:36
    28687 *** FSUIPC log file being closed
Minimum frame rate was 44.9 fps, Maximum was 48.3 fps
Average frame rate for running time of 21 secs = 47.0 fps
Maximum AI traffic for session was 22 aircraft
Traffic deletions 0 aircraft
Memory managed: 10 Allocs, 8 Freed
********* FSUIPC Log file closed ***********
 

 

 

Posted
30 minutes ago, Hazzer111 said:

It works however when pulling the brake and applying left rudder, the left brake should apply - currently the right brake applies. So that is inverted, I tried various combinations of the brakeReversed & brakeAxisReversed which obvs didn't help. 

That would imply that the rudder axis is reversed. Look at the rudderChange function, and find this:

Quote

  -- Rudder value expected in range -16383 to + 16383: calibrate the value to this range here if axis values not in this range
  -- You can also reverse the range here if needed

Then add a line to reverse the rudder after that comment, i.e.

Quote

  -- Rudder value expected in range -16383 to + 16383: calibrate the value to this range here if axis values not in this range
  -- You can also reverse the range here if needed
value = -value

You could also add a rudderAxisReversed variable and do this on an if...then conditional if you wish, as is done with brakeAxisReversed.

John

Posted
6 minutes ago, John Dowson said:

That would imply that the rudder axis is reversed. Look at the rudderChange function, and find this:

Then add a line to reverse the rudder after that comment, i.e.

You could also add a rudderAxisReversed variable and do this on an if...then conditional if you wish, as is done with brakeAxisReversed.

John

thats sorted it 🙂

 

Posted
1 hour ago, Hazzer111 said:

thats sorted it 🙂

Ok. I have updated the script available in the first post in this topic to accommodate for both reversed brake and rudder axis when necessary, and provided instructions on how to do so.

John

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.