Release Aussiedroid's Enhanced Thrustmaster Warthog Script

Hi all,

Public Service Announcement

Some time ago I posted some code which can read and process the status.json journal file.
Part of this code was to run a subroutine (function) with a loop to check the "Flags" key value and when this is non-zero, then we know the game is running and then set a bunch of state flags.

The issue I had at the time was that when running a TARGET script, it will time out after one minute if the game hadn't started in this time (which it never does).
Well, I've stumbled across a very old thread in another forum and have found that TargetGUI.exe can accept several command line switches, one of which is "-t" which sets the timeout value in milliseconds.

I've tested this and it still works with the latest version of TARGET and solves my issue.

Example: In the windows batch file I use to run my TARGET Script I now have the following:

Code:
c:
cd "\program files (x86)\thrustmaster\target\x64\"
start targetgui.exe -t 120000 -r "c:\targetscripts\ed_v400_dev.tmc" <--my script name
By the way, running "targetgui.exe -help" from a command line will pop up the following help box.

View attachment 136298

Cheers
Clicker
Great find! Although I know a while back AussieDroid started recommending running from the GUI; all this time I had been ignoring the GUI interface and just running Script Editor. Now I have a reason to use it.
Thanks for sharing!

(I started creating my personal TARGET script around the same time AussieDroid did)
 
Hi @Overzeetop and @Axsom ...

Some thoughts...
Have you perhaps changed any of your controller configure() settings in the .tmc file (up near the top) to "MODE_FILTERED"
Make sure you have recompiled the script each time you make any changes.
Make sure you run the script before you start Elite
If the above does not help, try shifting the HOTAS to two other USB ports.

Let us know how you get on.

Cheers
Clicker
 
Hi @Overzeetop and @Axsom ...

Some thoughts...
I'm about 99% certain that I had a change to my controller setup and had to (or inadvertently) re-installed the driver as part of my troubleshooting. Apparently, if you do that, TARGET loses the ability to disconnect the physical joysticks. I.e. the TARGET software must be installed after the joystick drivers are in place AND the joysticks must be disconnected during the installation. That last part has tripped me up multiple times - but uninstalling TARGET, (and rebooting) the on restart, unplugging the joysticks, reinstalling TARGET (rebooting, for good measure) then plugging the joysticks back in has solved the physical joystick persistence as well as the script hanging while attempting to install the filter driver. Thank Raxxla for fast SSD boot times.

Now my current headscratcher is that, frequently (but maddeningly not every time) my joystick (and only the joystick half/third of the HOTAS+T.FRP) will stop responding after the script has run. Stopping the script, the physical joystick is still seen and recognized by the system - i.e. it's in the Tmaster Game Controller utility and the Device Manager says its operating properly - but I get no response from any button or axis in it. Unplugging it and replugging it causes it to work again, but running the script results in a dead joystick. I'm headed off to troubleshoot; the next step is a dummy TARGET GUI to see if it's some underlying TARGET install issue.
 
Hello - Total newb here - Please be gentle. :)

I've played ED for a while (many moons ago), but as I now have a new computer, a VR setup and specific to this thread, a Thrustmaster Warthog flight stick (I use a Saitek X56 Throttle perhaps sadly), I decided to give ED another whirl.

My first challenge is that despite what I expected to see, when I go into the ED Options Controls setting area, there is no pre-populated Warthog (or Saitek X56) controller in the controller dropdown pick list. I expected ED, which I run under Steam, to detect my controllers and offer pre-configured bindings. All I get for choices is keyboard, keyboard & mouse, and generic joystick. So, I started assigning bindings on my own using the generic joystick setting, and it yielded a "Custom" binding.

Needless to say, I realized pretty quickly that it would take a bunch of work to map all the bindings myself, so my Google hunt for help brought me here. So, a couple of questions for you gurus:

1. Would this script work for my configuration where I only have the Warthog flight stick but not the throttle? If so, I'm thinking having the script setup to handle at least that much is a good headstart.

2. Should I be seeing default bindings for these controllers - the Warthog and the X56? Is my configuration stuffed somehow?

Many thanks in advance!
 
Hi @klh1228

Short answer=
1. No
2. No

Sorry.

Longer answer...
1. The script has a LOT of modifiers which rely on either the joystick and/or the throttle. Without either of these, most of the script won’t work. Your Saitek is incompatible with this script.
2. FD only include a small number of pre-defined binding sets. These are very limited and incomplete and really only meant to give you a bit of a start. Obviously these do not include what you have plugged in. This means you will need to work your way through the bindings and set what you need.

If you are still relatively new, then the straight bindings via ED Control settings will suit you fine.
You don’t need this (or any other) script.

Having said that, if you wanted to do fancy stuff with your setup then a better alternative “would have been” Joystick Gremlin which allows you to use disparate controllers...however, last time I checked, this will only work if you are using Windows 10 version 1803 (I think) or earlier.

Clicker
 
@Clicker Thanks very much for your detailed response. I was expecting to see the Warthog listed as a pre-defined and supported controller inside ED, which I now understand is wrong. I'll start building up my controller bindings based on what others have tried and what works well for my playing style. Cheers! (y)
 
Wise decision...you'll love it! ;)
Just got my slew upgrade today.
Once it shipped it took less than a week to leave the UK...Good Job Royal Mail...took 2 days to hit NZ.
Then it took NZPost 3 weeks to deliver to me...NOT GOOD, I have no idea how they manage to provide such a crap service.

Anyway, as others can attest, it was a painless and quick exercise to install.

And, yes, what a joy to use.
Thrustmaster should take note and include one of these instead of the useless little nub they call a slew control.

Clicker
 
I just started playing with the auto-text (yes after all this time) and of course, I'm having some issues.
I must not be using it correctly. I can only get it to text when [modifier 4] is in the forward position. Which means middle is Wing comms and back is Fighter commands - right? When playing with it and not being in a wing it just goes to the right-side panel and changes settings.
So how do I get Hostile, Passive, & Friendly? Also, can you have Hostile, Passive, & Friendly along with Wing comms and Fighter commands?
If I do use the Hostile, Passive, & Friendly - where do I change the phrases in the script? All I have found are two groups of phases not three... I can take some screenshots to help clarify if needed. I know sometimes I can be a bit unclear when I try to explain things...

Edit - could I make send messages to the Squadron instead of Wing or could Squadron be added?
 
Last edited:
Hi @Axsom ,

Having just re-looked at the script, you are correct.
There are only 8 chat responses coded. They will be fired when Throttle Pinky Switch is forward, then you need to use the joystick hat (U, D, L, R) for the first set of chat responses, and hold the Joystick pinky lever and the Hat for the other 4.

These are defined within the AD_EDUserPrefs file.
You can change these to whatever you like, however, you should always try to keep these short.
There is no "lock" whilst these are being sent, so if you do hit another key, button or whatever, whilst the string is being sent to the chat window, you will likely see the sort of issues you describe.

The ability to send chat messages to the Squadron screen is technically possible but not currently coded in AussieDroid's script.

Hope this helps
Clicker
 
I just started playing with the auto-text (yes after all this time) and of course, I'm having some issues.
I must not be using it correctly. I can only get it to text when [modifier 4] is in the forward position. Which means middle is Wing comms and back is Fighter commands - right? When playing with it and not being in a wing it just goes to the right-side panel and changes settings.
So how do I get Hostile, Passive, & Friendly? Also, can you have Hostile, Passive, & Friendly along with Wing comms and Fighter commands?
If I do use the Hostile, Passive, & Friendly - where do I change the phrases in the script? All I have found are two groups of phases not three... I can take some screenshots to help clarify if needed. I know sometimes I can be a bit unclear when I try to explain things...

Edit - could I make send messages to the Squadron instead of Wing or could Squadron be added?
Hey Axsom & All!

I've been a bit AFK of late, but just seeing your post.

To fire the chat macro, you are correct, it needs to be in the Forward position, but technically, you should be able to flip back almost straight away to Wing or Fighter comms afterwards. Having multiple commands based off the 3-way modifier does have some minor limitations as you have pointed out though so would need to manage the switch position a bit more closely if have multiple comm streams going. Will look to see if I can change things around or provide an alternative to make things easier, although the real limiting factor these days is the lack of space to map to hat switches to all these comms options :)

Cheers, AD
 
-> September Update!

Update 4.2.0: CARRIER ME HOME



** IMPORTANT - v4.2.0 Requires the latest 2018 (v3.0.18.328 or higher) Update for TARGET Software, Drivers & Firmware to be installed. **


-> This month's update marks 3 years since I first shared my script with the ED Community. Who would have known I would still be working on it.. LOL! This installment addresses a few minor issues from the previous release, few general improvements & some further user customisation options for you to play with. Thanks as always to all the CMDRs feedback and help reporting & fixing issues.


New to the script? Be sure to also check out the new
Beginners Reference Map in the download pack.


List of Changes:

SPECIAL: Amazing Custom Warthog Throttle Plates (designed by Tekadept) are now available! Please visit GitHub or Frontier Forums for more info. (Thx Tekadept!)

NEW: The 3-Way Throttle & Joystick Axis Preset Toggles can now be customised. If you find you do use the Throttle or Joystick presets very often, you can replace them with your own custom commands. Both Up and Down directions can be mapped to any Pulse commands, with Middle considered Off. (Thx scottdruck for the idea!)

NEW: Added Boost Brake Macro! This will fire on the boost button when also holding the Pinky Trigger Modifier. Acting somewhat like an Air brake, this will push your ship by boosting then engaging your landing gear, quickly decreasing your speed, and allowing for some tight tactics (with or without FAOff).. or perhaps for some more extreme docking :ROFLMAO: (Thx sw33tp34!)

NEW <BETA>: Turret Mode Macros added under mNextTurretModeX1 & mNextTurretModeX2. Due to the way the panel works, you cannot select a specific Turret Mode, instead the macro will select the next mode in the cyclable list (1 or 2 positions forward). Currently Unmapped by Default. The timings/alignment may still require work & as with other macros dependent on the panels, these will not work if you manually move the cursor position in the panels during flight or a fight. Recommend using to set Turret behaviour prior to engagement. Feedback appreciated.


IMPROVEMENT: Enforce both Throttle axes being mapped to Throttle presets, plus an option in user preferences to disable the secondary Throttle LEFT axis to free it up another device. (Thx dtdionne for the idea!)

IMPROVEMENT: Added Throttle & Joystick Override values, plus Throttle & Joystick Deadzone values to the Script Startup Printout.


FIXED: Combined Fire mode will now ensure Primary fire remains active when releasing Secondary fire stage (when combinePriSecFire = 1). (Thx sw33tp34!)

FIXED: Mic Push-To-Talk fix for the controls becoming inverted using multiple channels (I think?!) (please report back if its still an issue).



:alien: Fly Safe CMDRs! :alien:


** Please visit the ModDB link or GitHub link to get the latest version *** Steam Guide can be found here **
 
Last edited:
Hi @Overzeetop and @Axsom ...

Some thoughts...
Have you perhaps changed any of your controller configure() settings in the .tmc file (up near the top) to "MODE_FILTERED"
Make sure you have recompiled the script each time you make any changes.
Make sure you run the script before you start Elite
If the above does not help, try shifting the HOTAS to two other USB ports.

Let us know how you get on.

Cheers
Clicker
I'm about 99% certain that I had a change to my controller setup and had to (or inadvertently) re-installed the driver as part of my troubleshooting. Apparently, if you do that, TARGET loses the ability to disconnect the physical joysticks. I.e. the TARGET software must be installed after the joystick drivers are in place AND the joysticks must be disconnected during the installation. That last part has tripped me up multiple times - but uninstalling TARGET, (and rebooting) the on restart, unplugging the joysticks, reinstalling TARGET (rebooting, for good measure) then plugging the joysticks back in has solved the physical joystick persistence as well as the script hanging while attempting to install the filter driver. Thank Raxxla for fast SSD boot times.

Ok, so trying to fix why the HOTAS controllers stay attached - I took advice from both.
First, from Clicker. I am unable to find the controller configure() settings to check the setting there.
So, I then took Overzeetop's suggestion. I uninstalled TARGET, made sure I was using the latest firmware. Being it hasn't been changed in forever, I was.
I shut down, unplugged my HOTAS, rotated USB ports (as all are used, I had to move others to ensure the HOTAS was plugged into new after re-installing TARGET)
Now I booted up, re-installed TARGET, then plugged in HOTAS devices. Ran the GUI and made sure all devices were connected. Ran the script v 4.1.0, it still showed the devices in the Game COntrollers panel. I rebooted and started the script v 4.1.0 as soon as I booted up and it does not pause when starting and the devices are gone in the Game Controller panel.
So, I went ahead an updated the script to v 4.2.0 and tested again. If I wait even 30 sec after booting the script will pause when starting and all devices show in the Controller Panel. If I start immediately after booting, it starts smoothly and only the Virtual Game Controller is present.
So after all this, it still acts the same.

Oh, BTW - thank you AD for v 4.2.0... As always, your hard work is much appreciated...
 
Hi @Axsom ,

First, from Clicker. I am unable to find the controller configure() settings to check the setting there.
In the AD_ED_v4.1.0.tmc file, near the top and directly after "int Main() { ", there's a bunch of statements like;

Configure(&HCougar, MODE_EXCLUDED);
etc.
etc.

Configure statements for Warthog Devices , if present would look like;

Configure(&Joystick, MODE_FILTERED);
Configure(&Throttle, MODE_FILTERED);

If these were in the script then you'd have "Thrustmaster Combined" as well as "Joystick - HOTAS Warthog" and "Throttle - HOTAS Warthog" which sort of sounds a bit like what you describe.

If configure statements for &Joystick and &Throttle are nowhere to be seen, then they're INCLUDED by default and when the script is running you should ONLY see "Thrustmaster Combined" in the Windows Game Controllers control panel (joy.cpl).

If this is indeed the case (no configure() statement for your joystick and throttle), then your issue could be due to one of the following;
  1. Faulty or corrupt driver (USB or WARTHOG)
  2. Your USB HUB or USB ports on your PC may be faulty
    1. If you have access to another USB hub, try that
    2. If not, perhaps go buy one...preferably an externally powered hub, they're pretty cheap these days
  3. one of the other USB devices playing up/faulty
  4. the HOTAS might be faulty (God forbid!)
  5. Conflicting software or drivers
And for completeness sake, and now you've re-installed a bunch-o-stuff, can you please post or confirm the versions of;
  1. The Target Software (latest = 3.0.18.328)
  2. Firmware version of the Joystick (latest = 12)
  3. Firmware version of the Throttle (latest = 23)
Lastly, (but maybe should have been first!), you say that if you fire up the script within 30 seconds of logon, everything works ok?
("Thrustmaster Combined" = present, the other two = absent from Game Controllers control panel)
But if you wait for more than 30 seconds, then run the script, you get all of them in the Game Controller control panel?
This sounds a lot like some other software is grabbing control of your joystick/throttle and is competing with TARGET.

Can you please;
  1. Run the script within 30 seconds and take a screenshot of the script console...expand first to show everything at once, if possible.
  2. Run the script after 30 seconds (ie when playing up) and grab another screen shot of the script console
We're looking for any differences in the console output when it is first started.

Hope this helps and you get to the bottom of your issues soon!

Clicker
 
Last edited:
Hello!

Forgive me if this has been asked before, but presumably upgrading the Warthog stick base with a better gimbal will preclude it from using your scripts since TARGET won't see it as a TM stick anymore?
 
1.
Sorry, I am a newbie.
in AD_EDUserPrefs_v4.2.0.tmh
define JoystickOverride 0 // Allows replacement of the Joystick Axis Preset Toggle to custom mappings. (NOTE: This will mean you will NOT be able to change your Joystick Axes Behaviour in-game & will remove any custom axis behaviour found in initSetJoystickCurves())

if I change it to 1, does it mean I can change the joystick X for Yaw to X for Roll. Or the opposite. ( I sorry I find the comment a little bit confusing for me to understand. )
 
Last edited:
Hello!

Forgive me if this has been asked before, but presumably upgrading the Warthog stick base with a better gimbal will preclude it from using your scripts since TARGET won't see it as a TM stick anymore?
Hey imski!

No one has specifically asked that one before! As far as I know, there are no 3rd party devices by non-TM manufacturers that use TARGET, so it would likely not work with the script :(

I know there are replacement grips you can get for the standard TM base, but that would still tie into the device electronics via the connectors.


1.
Sorry, I am a newbie.
in AD_EDUserPrefs_v4.2.0.tmh
define JoystickOverride 0 // Allows replacement of the Joystick Axis Preset Toggle to custom mappings. (NOTE: This will mean you will NOT be able to change your Joystick Axes Behaviour in-game & will remove any custom axis behaviour found in initSetJoystickCurves())

if I change it to 1, does it mean I can change the joystick X for Yaw to X for Roll. Or the opposite. ( I sorry I find the comment a little bit confusing for me to understand. )
Hey chege011,

No worries, let me explain in a bit more detail.

Firstly, if you want to switch the X axis on joystick from Yaw to Roll, you can do this directly in the bindings/config in ED directly (no script changes needed). Just map the Yaw to whereever you prefer. There is also a Yaw-to-Roll keybind if I recall correctly, which you could use on the JoystickOverride if that is what you meant.

The JoystickOverride feature is basically just an option to replace the Joystick Curve Preset mappings on the toggle to whatever the CMDR wants on there instead. Could be anything that uses a Pulse command (which is most of the things you will find in the KeyMap file, Macros & some functions). Replace the two optional mappings in the user preferences to your preferred keybind and set JoystickOverride to 1 to enable the remapping. By default if you enable the override, it should fire the Signal Lights flashing sequence to demonstrate how it works vs setting it on 0.



Cheers for checking out the script guys!

AD
 
Last edited:
I haven't gone through the troubleshooting steps suggested by Clicker - yet

But I wanted to share, and say thank you, for the link to TekCreations in your v 4.2.0 release. I am going to get the custom plates with an extra bit of 'flare'
Not quite to scale. Hope I'm not out of place by sharing, I will remove if I am...lmk...
142342
 
Top Bottom