Jump to content

Thrustmaster T.A.R.G.E.T tutorial


Recommended Posts

Total noob question:

My TPR finally arrived, and with the T.M Warthog I have the controls I always wanted. But.. I can't seem to figure out how the TARGET software works or how to import profiles from the DCS site. Any link for a good YouTube tutorial?

AMD Ryzen 3 3900X @5Ghz

G.Skill 64GB RAM @3200Mhz

nVidia GTX 980ti

SAMSUNG 250GB SATA SSD

Corsair H100i AIO

Conductonaut thermal liquid metal

Thrustmaster Warthog HOTAS & TPR

Leap Motion

Link to comment
Share on other sites

Total noob question:

 

My TPR finally arrived, and with the T.M Warthog I have the controls I always wanted. But.. I can't seem to figure out how the TARGET software works or how to import profiles from the DCS site. Any link for a good YouTube tutorial?

Ignore it. You don't need it.

 

Sent from my ONEPLUS A5000 using Tapatalk

Link to comment
Share on other sites

Total noob question:

 

My TPR finally arrived, and with the T.M Warthog I have the controls I always wanted. But.. I can't seem to figure out how the TARGET software works or how to import profiles from the DCS site. Any link for a good YouTube tutorial?

 

 

 

Download Joystick Gremlin- then use the simple graphical interface to do what takes ages of scripting in the TARGET software

Link to comment
Share on other sites

I don't understand. What is the point of TARGET?

 

 

TARGET allows a more complete customization of a Thrustmaster Hotas, for example DCS by itself allows just a single binding for each button, but Target can allow you to issue one command when pressing a button and issue another when releasing it .. it can allow to execute more than a single command with each press .. it allows control over the LEDs that the Warthog throttle has, etc.

 

For work: iMac mid-2010 of 27" - Core i7 870 - 6 GB DDR3 1333 MHz - ATI HD5670 - SSD 256 GB - HDD 2 TB - macOS High Sierra

For Gaming: 34" Monitor - Ryzen 3600X - 32 GB DDR4 2400 - nVidia GTX1070ti - SSD 1.25 TB - HDD 10 TB - Win10 Pro - TM HOTAS Cougar - Oculus Rift CV1

Mobile: iPad Pro 12.9" of 256 GB

Link to comment
Share on other sites

I don't understand. What is the point of TARGET?

 

Sent from my ONEPLUS A5000 using Tapatalk

 

 

Makes it possible to use all TM devices (Throttle, Stick, MFDs...) as 1 device. You can use a button or switch on one device to switch the behavior of one or all the buttons, switches, and axis on all the devices. It's really a powerful set up. There's so much you can do with it.

 

 

 

For example, on the F18, I use the friction lever to operate the Gear UP, Gear Down, Hook Down, Hook Up, and Launch Bar Toggle. All on that little lever.

 

 

I use the Trigger for Recenter VR as well as the trigger.

 

 

 

I use it to switch the entire profile from Pilot Seat to RIO Seat when I switch seats. Works like a charm.

Night Ops in the Harrier

IYAOYAS


 
Link to comment
Share on other sites

Makes it possible to use all TM devices (Throttle, Stick, MFDs...) as 1 device. You can use a button or switch on one device to switch the behavior of one or all the buttons, switches, and axis on all the devices. It's really a powerful set up. There's so much you can do with it.

 

 

 

For example, on the F18, I use the friction lever to operate the Gear UP, Gear Down, Hook Down, Hook Up, and Launch Bar Toggle. All on that little lever.

 

 

I use the Trigger for Recenter VR as well as the trigger.

 

 

 

I use it to switch the entire profile from Pilot Seat to RIO Seat when I switch seats. Works like a charm.

Ok. Interesting. I'll have a think about how that could work for me.

 

Sent from my ONEPLUS A5000 using Tapatalk

Link to comment
Share on other sites

TARGET gets a bad rap in these forums. I have had my own issues from time to time, but its benefits vastly outweigh the draw backs in my opinion.

 

Second that I have no idea why so many hate it with a passion

 

SGT Coyle has helped me with quite a few issues there is help available here with how to get going with it and a lot of really advanced stuff too (not me)

 

I started with the GUI which is pretty powerful on it's own, because the Script Editor scared the bejaysus out me when I seen the code.

 

Like most stuff though break it down and it's not so bad.

 

As said you can program Dx buttons and keyboard commands in the one script

 

You have 3 modes and a shift too, then you can add Tempo commands, one button can do 2x3x2 (Tempo is a long/short button push) that's one button doing 12 things (easily)

 

Then you can start to get creative like getting a button to do one thing when something else is activated (like gear position or if a certain HUD mode is selected), or mulitple keystrokes, or sequenced keystrokes and a whole lot more besides.

 

Beyond me why it's trashed so much I think it's a powerful piece of software, sure it's got its quirks and problems but it's a dammed site easier than the other advanced programming software out there (well the ones I've came accross).

 

If there was an equivalent piece of software you could use for all hardware I'd buy it.

Link to comment
Share on other sites

Second that I have no idea why so many hate it with a passion ...

 

I dont really hate it, but only a C++ programmer would love its scripting :)

 

For work: iMac mid-2010 of 27" - Core i7 870 - 6 GB DDR3 1333 MHz - ATI HD5670 - SSD 256 GB - HDD 2 TB - macOS High Sierra

For Gaming: 34" Monitor - Ryzen 3600X - 32 GB DDR4 2400 - nVidia GTX1070ti - SSD 1.25 TB - HDD 10 TB - Win10 Pro - TM HOTAS Cougar - Oculus Rift CV1

Mobile: iPad Pro 12.9" of 256 GB

Link to comment
Share on other sites

It seems really intimidating, but the structure for a simple profile is not difficult at all. For more complex profiles, more often than not you can Google C++ solutions which really widens the available solutions.

 

Just don’t use the GUI to create a “template” profile. It’s a fool’s errand and it’s better to start with the script editor and read the TM programming guide.

Link to comment
Share on other sites

... read the TM programming guide.

 

Hello,

I've googled and cant find such a Guide .. are you refering to the "Fast Script Basics" manual? If not, then please can you share the document or a link? Thanks.

 

 

Eduardo

 

For work: iMac mid-2010 of 27" - Core i7 870 - 6 GB DDR3 1333 MHz - ATI HD5670 - SSD 256 GB - HDD 2 TB - macOS High Sierra

For Gaming: 34" Monitor - Ryzen 3600X - 32 GB DDR4 2400 - nVidia GTX1070ti - SSD 1.25 TB - HDD 10 TB - Win10 Pro - TM HOTAS Cougar - Oculus Rift CV1

Mobile: iPad Pro 12.9" of 256 GB

Link to comment
Share on other sites

Basic scripts aren't hard to make, you don't have to know anything about C++.

The only downside is that TARGET won't recognize other joysticks. So if you have an arduino/bodnar board with your landing gear lever, you won't be able to use this to modify your hotas output.

 

 

Little warning if you use TARGET on Win10...

It looks like there's an issue with the Windows store hijacking some "rights" on your physical devices.

If TARGET scripts takes more than 2 seconds to load or you'll end up with both the "Thrustmaster Combined" and your hotas physical devices available, you'll have this issue.

If you start a TARGET script right after the logon, you probably won't have the issue. If you wait a few more seconds, you'll probably have to taskkill the winstore for TARGET to work properly.

The easiest way to do so is to make a shortcut on your desktop (right-click > new > shortcut) and enter this command:

taskkill.exe /f /im winstore.app.exe

 

 

TM is aware of the issue (looks like they have a bunch of customers impacted). They're trying to find a definitive solution to avoid users fiddling with the OS, but as the issue is a windows core component...

 

I heard Teamspeak may be concerned too.

Intel 9900KF @ 5.1GHz / RTX 2080S OC @ 1.93GHz / ASUS Prime Z390-A / 2x16Gb DDR4 @ 3333 CL16 / Corsair TX850M / Samsung NVME 970 EVO+ / TM warthog Thr. / VKB Gunfighter mkIII + MCG / MFG Crosswind mk3 / Valve Index

Link to comment
Share on other sites

Hello,

 

I've googled and cant find such a Guide .. are you refering to the "Fast Script Basics" manual? If not, then please can you share the document or a link? Thanks.

 

 

 

 

 

Eduardo

 

 

 

That’s the one. I couldn’t remember the name and I was afk when I wrote the post.

 

Nice thing about it is all you need to do is click on the help icon in the upper right of the script editor and it comes up.

Link to comment
Share on other sites

That’s the one. I couldn’t remember the name and I was afk when I wrote the post.

 

OK, I already have it, but found it to be not complete enough, it is more like an introduction to scripting .. the older software Foxy for the TM Cougar has a much more simpler language yet its manual is three times larger.

 

A couple of years ago I tried to learn TARGET, since it supports my old TM Cougar, but found it to be too complex for my abilities .. I hope TM will eventually release a Script Reference Manual, it would go a long way towards getting more people to use it.

 

Thanks for the info and best regards,

 

 

Eduardo.

 

For work: iMac mid-2010 of 27" - Core i7 870 - 6 GB DDR3 1333 MHz - ATI HD5670 - SSD 256 GB - HDD 2 TB - macOS High Sierra

For Gaming: 34" Monitor - Ryzen 3600X - 32 GB DDR4 2400 - nVidia GTX1070ti - SSD 1.25 TB - HDD 10 TB - Win10 Pro - TM HOTAS Cougar - Oculus Rift CV1

Mobile: iPad Pro 12.9" of 256 GB

Link to comment
Share on other sites

Here's a template I use for making TARGET Script Files:

 

include "target.tmh"
//include "DCS_XXXSim_Macro.ttm"  Place holder for macro file

//program startup
int main()
{    
   
   if(Init(&EventHandle)) return 1; // declare the event handler, return on error
   
   //Excluded Devices
   //Configure(&Device name, MODE_EXCLUDED);
   Configure(&HCougar, MODE_EXCLUDED);
   Configure(&T16000, MODE_EXCLUDED);
   Configure(&T16000L, MODE_EXCLUDED);
   Configure(&TWCSThrottle, MODE_EXCLUDED);
   Configure(&TFRPRudder, MODE_EXCLUDED);
   //Configure(&Joystick, MODE_EXCLUDED);
   Configure(&JoystickF18, MODE_EXCLUDED);  //  Makes the Standard Joystick work better
   
   
   

//AXIS init        
   MapAxis(&Joystick, JOYX, DX_X_AXIS);
   MapAxis(&Joystick, JOYY, DX_Y_AXIS);
   
   MapAxis(&Throttle, THR_LEFT, DX_ZROT_AXIS);
   MapAxis(&Throttle, THR_RIGHT, DX_Z_AXIS);
   
   MapAxis(&Throttle, SCX, DX_XROT_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
       SetCustomCurve(&Throttle, SCX, LIST(0,0, 45,50, 55,50, 100,100));
       //SetSCurve(&Throttle, SCX, 0, 20, 0, 20,0);
   
   MapAxis(&Throttle, SCY, DX_YROT_AXIS, AXIS_REVERSED, MAP_ABSOLUTE);
       SetCustomCurve(&Throttle, SCY, LIST(0,0, 45,50, 55,50, 100,100));
       //SetSCurve(&Throttle, SCY, 0, 25, 0, 20,0);
   
   
   MapAxis(&Throttle, THR_FC, DX_SLIDER_AXIS);    
   
// Init Lights
   ActKey(PULSE+KEYON+LED(&Throttle, LED_INTENSITY, 129); // set Throttle backlight power to low
   ActKey(PULSE+KEYON+LED(&Throttle, LED_ONOFF, LED_CURRENT+LED1)); //set LED 1 ON
   ActKey(PULSE+KEYON+LED(&Throttle, LED_ONOFF, LED_CURRENT-LED2)); //set LED 2 OFF
   ActKey(PULSE+KEYON+LED(&Throttle, LED_ONOFF, LED_CURRENT+LED3)); //set LED 3 ON
   ActKey(PULSE+KEYON+LED(&Throttle, LED_ONOFF, LED_CURRENT-LED4)); //set LED 4 OFF
   ActKey(PULSE+KEYON+LED(&Throttle, LED_ONOFF, LED_CURRENT+LED5)); //set LED 5 ON

   


//////////////////////////////////////////////////////////////////////    
//BUTTON PROGRAMING STARTS BELOW
//////////////////////////////////////////////////////////////////

//****************************************************************************************************
//_________________Stick PROGRAMING_____________________
//---//MapKey(&Throttle,,);
//---//MapKeyIO(&Throttle,,in layer, out layer);
//---//MapKey(&JoystickF18,, TEMPO( short, long, time));
//****************************************************************************************************

//MapKeyIOUMD(&Throttle,,
//                            ,
//                            ,
//                            ,
//                            ,
//                            ,
//                            );
//****************************************************************************************************

//Trigger
//MapKey(&Joystick, TG1, 0);
//MapKey(&Joystick, TG2, 0);

//Buttons
//MapKey(&Joystick, S1, 0);
//MapKey(&Joystick, S2, 0);
//MapKey(&Joystick, S3, 0);
//MapKey(&Joystick,S4,0);            // Shift State Temp I/O.  Zeroed out here to prevent DX conflicts  

//DMS
//MapKeyIO(&Joystick,H3U, 0);
//MapKey(&Joystick,H3D, 0);
//MapKey(&Joystick,H3R, 0);
//MapKey(&Joystick,H3L, 0);
   
//TMS
//MapKey(&Joystick,H2U, 0);
//MapKey(&Joystick,H2D, 0);
//MapKey(&Joystick,H2R, 0);
//MapKey(&Joystick,H2L, 0);

//CMS
//MapKey(&Joystick,H4U, 0);
//MapKey(&Joystick,H4D, 0);
//MapKey(&Joystick,H4R, 0);
//MapKey(&Joystick,H4L, 0);

//MapKey(&Joystick,H4P,);

//Trim  
//MapKey(&Joystick,H1U, 0);
//MapKey(&Joystick,H1D, 0);
//MapKey(&Joystick,H1R, 0);
//MapKey(&Joystick,H1L, 0);




//****************************************************************************************************
//_________________Throttle PROGRAMING_____________________
//---//MapKey(&Throttle,,);
//---//MapKeyIO(&Throttle,,in layer, out layer);
//---//MapKey(&JoystickF18,, TEMPO( short, long, time));
//****************************************************************************************************
   
//Coolie Hat *************************            
//MapKey(&Throttle,CSD, 0);
//MapKey(&Throttle,CSU, 0);
//MapKey(&Throttle,CSR, 0);
//MapKey(&Throttle,CSL, 0);

//Slew                Currently assigned as axis control above *************************

//MapKey(&Throttle,,Slew_DWN);    
//MapKey(&Throttle,,Slew_UP);
//MapKey(&Throttle,,Slew_RT);
//MapKey(&Throttle,,Slew_LT);

//MapKey(&Throttle, SC, 0);    //  SlewControlPush  


//Left Throttle Button *************************
//MapKey(&Throttle,LTB,  0);

//Pinky Switch *************************
//MapKey(&Throttle,PSF, 0);
//MapKey(&Throttle,PSM, 0);
//MapKey(&Throttle,PSB, 0);

//MIC Switch *************************
//MapKey(&Throttle,MSR, 0);
//MapKey(&Throttle,MSL, 0);
//MapKey(&Throttle,MSU, 0);
//MapKey(&Throttle,MSD, 0);

//MapKey(&Throttle,MSP, 0);

//Speed Brake *************************
//MapKey(&Throttle,SPDF, 0);
//MapKey(&Throttle,SPDM, 0);
//MapKey(&Throttle,SPDB, 0);

//Boat Switch
//MapKey(&Throttle,BSF, 0);
//MapKey(&Throttle,BSM, 0);
//MapKey(&Throttle,BSB, 0);

//China Hat *************************
//MapKey(&Throttle,CHF, 0);
//MapKey(&Throttle,CHM, 0);
//MapKey(&Throttle,CHB, 0);

//****************************************************************************************************
//_________________Throttle Base PROGRAMING_____________________
//---//MapKey(&Throttle,,);
//---//MapKeyIO(&Throttle,,in layer, out layer);
//---//MapKey(&JoystickF18,, TEMPO( short, long, time));
//****************************************************************************************************
//Engine Fuel Flow LT/RT *************************
//MapKey(&Throttle, EFLNORM, 0); 
//MapKey(&Throttle, EFLOVER, 0);
//MapKey(&Throttle, EFRNORM, 0);
//MapKey(&Throttle, EFROVER, 0);

//Engine Operator LT/RT *************************
//MapKey(&Throttle, EOLIGN,  0);
//MapKey(&Throttle, EOLNORM,  0);
//MapKey(&Throttle, EOLMOTOR,  0);
//MapKey(&Throttle, EORIGN,  0);
//MapKey(&Throttle, EORNORM,  0);
//MapKey(&Throttle, EORMOTOR,  0);

//APU Switch *************************
//MapKey(&Throttle,APUON, 0);
//MapKey(&Throttle,APUOFF, 0);

//Landing Gear Button *************************
//MapKey(&Throttle,LDGH, 0);
//MapKey(&Throttle,LDGH, 0);
                       

//Autopilot Select Switch *************************
//MapKey(&Throttle,APPAT, 0);
//MapKey(&Throttle,APAH, 0);
//MapKey(&Throttle,APALT, 0);


//Autopilot Engage/Diengage *************************
//MapKeyIO(&Throttle,APENG, 0);

//Radar Altimeter Mode *************************
//MapKey(&Throttle,RDRNRM, 0);
//MapKey(&Throttle,RDRDIS, 0);

//EAC On/Off *************************
//MapKey(&Throttle,EACON, 0);
//MapKey(&Throttle,EACOFF, 0);

//Flap *************************
//MapKey(&Throttle,FLAPU, 0);
//MapKey(&Throttle,FLAPM, 0);
//MapKey(&Throttle,FLAPD, 0);

//Throttle Idle Cutoff *************************
//MapKey(&Throttle,IDLEROFF, 0);
//MapKey(&Throttle,IDLERON, 0);
//MapKey(&Throttle,IDLELOFF, 0);
//MapKey(&Throttle,IDLELON, 0);

//****************************************************************************************************
//_________________LMFD PROGRAMING_____________________
//---//MapKey(&Throttle,,);
//---//MapKeyIO(&Throttle,,in layer, out layer);
//---//MapKey(&JoystickF18,, TEMPO( short, long, time));
//****************************************************************************************************

//MapKey(&LMFD,OSB1, );
//MapKey(&LMFD,OSB2, );
//MapKey(&LMFD,OSB3, );
//MapKey(&LMFD,OSB4, );
//MapKey(&LMFD,OSB5, );

//MapKey(&LMFD,OSB6, );
//MapKey(&LMFD,OSB7, );
//MapKey(&LMFD,OSB8, );
//MapKey(&LMFD,OSB9, );
//MapKey(&LMFD,OSB10, );

//MapKey(&LMFD,OSB11, );
//MapKey(&LMFD,OSB12, );
//MapKey(&LMFD,OSB13, );
//MapKey(&LMFD,OSB14, );
//MapKey(&LMFD,OSB15, );

//MapKey(&LMFD,OSB16, );
//MapKey(&LMFD,OSB17, );
//MapKey(&LMFD,OSB18, );
//MapKey(&LMFD,OSB19, );
//MapKey(&LMFD,OSB20, );

//MapKey(&LMFD,GAINU, );
//MapKey(&LMFD,GAIND, );

//MapKey(&LMFD,SYMU, );
//MapKey(&LMFD,SYMD, );

//MapKey(&LMFD,CONU, );
//MapKey(&LMFD,COND, );

//MapKey(&LMFD,BRTU, );
//MapKey(&LMFD,BRTD, );


//****************************************************************************************************
//_________________RMFD PROGRAMING_____________________
//---//MapKey(&Throttle,,);
//---//MapKeyIO(&Throttle,,in layer, out layer);
//---//MapKey(&JoystickF18,, TEMPO( short, long, time));
//****************************************************************************************************

//MapKey(&RMFD,OSB1, );
//MapKey(&RMFD,OSB2, );
//MapKey(&RMFD,OSB3, );
//MapKey(&RMFD,OSB4, );
//MapKey(&RMFD,OSB5, );

//MapKey(&RMFD,OSB6, );
//MapKey(&RMFD,OSB7, );
//MapKey(&RMFD,OSB8, );
//MapKey(&RMFD,OSB9, );
//MapKey(&RMFD,OSB10, );

//MapKey(&RMFD,OSB11, );
//MapKey(&RMFD,OSB12, );
//MapKey(&RMFD,OSB13, );
//MapKey(&RMFD,OSB14, );
//MapKey(&RMFD,OSB15, );

//MapKey(&RMFD,OSB16, );
//MapKey(&RMFD,OSB17, );
//MapKey(&RMFD,OSB18, );
//MapKey(&RMFD,OSB19, );
//MapKey(&RMFD,OSB20, );

//MapKey(&RMFD,GAINU, );
//MapKey(&RMFD,GAIND, );

//MapKey(&RMFD,SYMU, );
//MapKey(&RMFD,SYMD, );

//MapKey(&RMFD,CONU,);
//MapKey(&RMFD,COND,);

//MapKey(&RMFD,BRTU, );
//MapKey(&RMFD,BRTD, );

//*******************__  Do Not Edit Below This Line  __**********************
}
int EventHandle(int type, alias o, int x)
{
DefaultMapping(&o, x);
}
//?????????????????????????????????????????????????????????????????????????????

 

 

 

Just copy and paste the above code into a new .tmc file created with TARGET Script Editor save as "anything you want.tmc"

 

 

You can run it as is, but you will only get the axis. All the button and switch controls have been commented out. Skim through the Editor Basics pdf to learn how to un-comment and use the MapKey functions.

 

 

Hope this helps.

Night Ops in the Harrier

IYAOYAS


 
Link to comment
Share on other sites

Here's a template I use for making TARGET Script Files ...

 

 

Thanks, I will save it for use on my next attempt at learning TARGET :)

 

For work: iMac mid-2010 of 27" - Core i7 870 - 6 GB DDR3 1333 MHz - ATI HD5670 - SSD 256 GB - HDD 2 TB - macOS High Sierra

For Gaming: 34" Monitor - Ryzen 3600X - 32 GB DDR4 2400 - nVidia GTX1070ti - SSD 1.25 TB - HDD 10 TB - Win10 Pro - TM HOTAS Cougar - Oculus Rift CV1

Mobile: iPad Pro 12.9" of 256 GB

Link to comment
Share on other sites

  • 2 months later...

Having gone away from Target and now trying to get back into the scripting I have a question.

In the F16 module a lot of functions do not have a keybind. How do you map switches to functions (i.e.: SEAT UP and SEAT DN) in TARGET? I am trying to work around it by creating my "own" key reference and then mapping it as USB macro, but that would sort of defeat the purpose. When DCS makes a major update and kindly resets all the keybindings I am back to sq1... or have I misunderstood something?

[sIGPIC]If you are still under control you are not going fast enough[/sIGPIC]

Link to comment
Share on other sites

Not sure I'm understanding the question Vampire, but what's stopping you making up & asigning keybinds in DCS for the functions you want to use?

 

If you don't want to do that you can script in the editor to send Dx button calls instead of keybinds too.

 

Personally I prefer keybinds as your number of Dx buttons are finite and you may want to use them for other things

 

Again just me but when I make a major update to my keybinds/Dx buttons I keep a copy of the Config folder in Saved Games elsewhere just in case DCS decides to wipe all my configurations. I cannot recall this happening recently though as the Saved Games folders aren't meant to overwritten on updates. However with a copy if it does happen its not a problem

 

Apologies if I've missed the point

Link to comment
Share on other sites

  • Recently Browsing   0 members

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