Jump to content

Quaggles - DCS Input Command Injector Mod - Store custom input commands safely in Saved Games instead of merging them with developer changes each update


Quaggles

Recommended Posts

So with UILayer available, could I, for instance, set up kneeboard commands in UILayer, and then make the same button combo control it for every aircraft?

DEFENSOR FORTIS

Spoiler

Systems: Falcon NW Talon: Ryzen 9 5950X @4.9GHz, 64GB DDR4, RTX 3090 FE; Falcon NW Mach V: Core i7 3930K @3.2GHz, 32GB DDR3, GTX 1080 FE

Cockpit: MonsterTech MTX F, 42" 4K TV, HP Reverb G2, Oculus Rift S, PointCTRL

Controls: RS F16SGRH CE, RS F18CGRH, VPC T-50CM2, VFX, WarBRD (Grips); VPC T-50CM2, RS FSSB R3L (Bases); Winwing F/A-18C, VPC T-50CM3, VPC T-50CM, TM Warthog, Cougar (Throttles); VPC ACE2 (Rudders)

 

Link to comment
Share on other sites

Nice, thanks @Quaggles

21 minutes ago, RogueSqdn said:

So with UILayer available, could I, for instance, set up kneeboard commands in UILayer, and then make the same button combo control it for every aircraft?

I don't think that'd work.. the kneeboard commands are currently part of the modules. It'd be cool if ED did move them up to be global like they did with the zoom commands a few releases ago (or maybe I'm wrong and that would work). Does anyone use different buttons for kneeboard controls per module?

Having the UiLayer work as part of the command injector mod will allow custom binds for different zoom levels and such. At least those are the keybinds davidp57 added a few months ago (had to check github - was thinking "isn't that the same username for the uilayer keybinds?"): https://github.com/Munkwolf/dcs-community-keybinds/blob/main/InputCommands/UiLayer/joystick/default.lua

Link to comment
Share on other sites

I think everything in Assist, General, Kneeboard, and the View categories should be under UILayer, TBH.  It would make handling multiple aircraft much easier.

  • Like 2

DEFENSOR FORTIS

Spoiler

Systems: Falcon NW Talon: Ryzen 9 5950X @4.9GHz, 64GB DDR4, RTX 3090 FE; Falcon NW Mach V: Core i7 3930K @3.2GHz, 32GB DDR3, GTX 1080 FE

Cockpit: MonsterTech MTX F, 42" 4K TV, HP Reverb G2, Oculus Rift S, PointCTRL

Controls: RS F16SGRH CE, RS F18CGRH, VPC T-50CM2, VFX, WarBRD (Grips); VPC T-50CM2, RS FSSB R3L (Bases); Winwing F/A-18C, VPC T-50CM3, VPC T-50CM, TM Warthog, Cougar (Throttles); VPC ACE2 (Rudders)

 

Link to comment
Share on other sites

  • 2 weeks later...

@Munkwolf Don't know where else to post these so here they are.

I made custom axis for the Ka-50 Shkval brightness and contrast knobs, HMD and Hud brightness.

They are a bit funky as only one side of centre the axis does anything on a couple, but usable.

	axisCommands = {
		{action = 3002, cockpit_device_id  = 8, name = _('SHKVAL brightness knob')},	
		{action = 3003, cockpit_device_id  = 8, name = _('SHKVAL contrast knob')},
		{action = 3001, cockpit_device_id  = 7, name = _('HUD brightness knob')},
		{action = 3001, cockpit_device_id  = 23, name = _('Helmet device brightness knob')},
	}

 

  • Like 2
Link to comment
Share on other sites

1 hour ago, jonsky7 said:

@Munkwolf Don't know where else to post these so here they are.

I made custom axis for the Ka-50 Shkval brightness and contrast knobs, HMD and Hud brightness.

They are a bit funky as only one side of centre the axis does anything on a couple, but usable.

	axisCommands = {
		{action = 3002, cockpit_device_id  = 8, name = _('SHKVAL brightness knob')},	
		{action = 3003, cockpit_device_id  = 8, name = _('SHKVAL contrast knob')},
		{action = 3001, cockpit_device_id  = 7, name = _('HUD brightness knob')},
		{action = 3001, cockpit_device_id  = 23, name = _('Helmet device brightness knob')},
	}

 

Thanks @jonsky7!

When checking into the ones you did, I noticed a few more. Also I used IT-23 in place of SHKVAL for the brightness and contrast knobs. Those are now added to github.

Also, sometimes adding an axis can be a bit funky depending on how the module is setup for it. Many times, the module command accepts a range of 0 - 1 values, but our input devices provide -1 to 1 values on an axis, thus them only working for half the range by default. That can usually be fixed up with axis tuning and curves in DCS.

https://github.com/Munkwolf/dcs-community-keybinds/blob/main/InputCommands/Ka-50/Input/ka-50/joystick/default.lua

{cockpit_device_id = 9, action = 3008, name = _('ABRIS Brightness')},
{cockpit_device_id = 7, action = 3001, name = _('HUD Brightness')},
{cockpit_device_id = 7, action = 3002, name = _('HUD Modes Reticle/Night/Day')},
{cockpit_device_id = 20, action = 3029, name = _('PVI Lighting')},

{cockpit_device_id = 8, action = 3002, name = _('IT-23 display brightness')},
{cockpit_device_id = 8, action = 3003, name = _('IT-23 display contrast')},
{cockpit_device_id = 23, action = 3001, name = _('Helmet device brightness')},

{cockpit_device_id = 31, action = 3001, name = _('ADI Zero pitch trim')},
{cockpit_device_id = 51, action = 3006, name = _('Lighting auxiliary panel brightness knob')},
{cockpit_device_id = 51, action = 3008, name = _('Lighting night vision cockpit brightness knob')},
{cockpit_device_id = 51, action = 3002, name = _('Lighting cockpit panel brightness knob')},
{cockpit_device_id = 51, action = 3004, name = _('Lighting HSI and ADI brightness knob')},
{cockpit_device_id = 46, action = 3006, name = _('ADF Volume')},
{cockpit_device_id = 49, action = 3002, name = _('R-828 (VHF-1) Radio Volume')},

{cockpit_device_id = 20, action = 3026, name = _('NAV Master modes')},
{cockpit_device_id = 25, action = 3014, name = _('Datalink self ID')},
{cockpit_device_id = 25, action = 3015, name = _('Datalink Master mode')},

{cockpit_device_id = 12, action = 3007, name = _('Laser code selector')},
{cockpit_device_id = 8, action = 3005, name = _('SHKVAL Optics adjustment')},

{cockpit_device_id = 32, action = 3001, name = _('ATGM Temperature selector')},
{cockpit_device_id = 12, action = 3023, name = _('Unguided rocket and gun pods ballistics data settings selector')},
{cockpit_device_id = 32, action = 3003, name = _('Systems BIT selector')},

{cockpit_device_id = 12, action = 3014, name = _('Weapon system mode selector')},
{cockpit_device_id = 8, action = 3006, name = _('Shkval auto scan rate')},
{cockpit_device_id = 4, action = 3011, name = _('Rotor Brake')},

{cockpit_device_id = 50, action = 3002, name = _('SPU-9 Radio communicator selector')},
{cockpit_device_id = 49, action = 3001, name = _('R-828 (VHF-1) Radio channel selector')},

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

4 hours ago, Munkwolf said:

Thanks @jonsky7!

When checking into the ones you did, I noticed a few more. Also I used IT-23 in place of SHKVAL for the brightness and contrast knobs. Those are now added to github.

Also, sometimes adding an axis can be a bit funky depending on how the module is setup for it. Many times, the module command accepts a range of 0 - 1 values, but our input devices provide -1 to 1 values on an axis, thus them only working for half the range by default. That can usually be fixed up with axis tuning and curves in DCS.

 

Good to know, thanks

Link to comment
Share on other sites

  • 3 weeks later...

Is hardlinking still required if you want to have a set of custom commands for both your HOTAS and your keyboard?   I cannot seem to get that to work. 

Trackir4 using the latest Trackir 5 software, Win10 Pro [Creator Update] updated from Win7Pro Pro 64Bit, Intel® Core™ i5-2500 3.30 GHz 6M Intel Smart Cache LGA115 , GigaByte GA-Z68XP-UD4 Intel Z68 Chipset DDR3 16GB Ram, GTX MSI Gaming 1060 [6 GB] Video Card, Main Monitor 1 on left 1920x1080 Touchscreen Monitor 2 on right 1920x1080 .

Link to comment
Share on other sites

12 minutes ago, sobe said:

Is hardlinking still required if you want to have a set of custom commands for both your HOTAS and your keyboard?   I cannot seem to get that to work. 

Hardlinking isn't required, just makes things nicer since it will keep the joystick and keyboard default.lua files linked so they will always match when you modify one. You can just have a separate copy of the default.lua in the joystick and keyboard folders if hardlinking doesn't work, just keep them matching manually to avoid weird issues.

Link to comment
Share on other sites

Quaggles

Thanks for the quick reply.  However, I do not see a Quaggles Custom folder in my key commands list when I hit the folder option in the game.  I am using a mod manager with the unzipped file.  My path is: "DCS-Input-Command-Injector-Quaggles\Scripts\Input" and I have put the folder InputCommands in my saved games\openbeta folder.  So I do not know why the F86 does not show the custom commands.

Trackir4 using the latest Trackir 5 software, Win10 Pro [Creator Update] updated from Win7Pro Pro 64Bit, Intel® Core™ i5-2500 3.30 GHz 6M Intel Smart Cache LGA115 , GigaByte GA-Z68XP-UD4 Intel Z68 Chipset DDR3 16GB Ram, GTX MSI Gaming 1060 [6 GB] Video Card, Main Monitor 1 on left 1920x1080 Touchscreen Monitor 2 on right 1920x1080 .

Link to comment
Share on other sites

9 minutes ago, sobe said:

Quaggles

Thanks for the quick reply.  However, I do not see a Quaggles Custom folder in my key commands list when I hit the folder option in the game.  I am using a mod manager with the unzipped file.  My path is: "DCS-Input-Command-Injector-Quaggles\Scripts\Input" and I have put the folder InputCommands in my saved games\openbeta folder.  So I do not know why the F86 does not show the custom commands.

The first thing I'd do is enable your mod then open /Scripts/Input/Data.lua in the DCS install, go to around line 80 and confirm you see a bunch of lines with Quaggles in it, for example lines 78 to 84 should be this: 

--[[
  Insert this code into "DCSWorld\Scripts\Input\Data.lua" above the function "loadDeviceProfileFromFile"
  Then add the line:
  QuagglesInputCommandInjector(filename, folder, env, result)
  into the "loadDeviceProfileFromFile" function below the line:
  status, result = pcall(f)
  ]]--

If that exists then the mod is installed to the correct location.

Also the new keybinds won't necessarily be in a 'Quaggles Custom' category, that's just the category I set for keybinds I make. If you are using the community keybinds mod they will have picked categories for their own keybinds, for example if you look at their F-86 ones you can see the categories in the last table for each line, in the case of "Drop Tank Selector Switch ALL TANKS OFF" it is in the categories: 'Drop Tank Control Panel', 'Fuel System' and 'Custom'

{down = fuel_commands.F86_CockpitDeviceCommand_TankSelector_Sw, cockpit_device_id = devices.FUEL_INTERFACE, value_down = 0.0, name=_('Drop Tank Selector Switch ALL TANKS OFF'), category = {_('Drop Tank Control Panel'), _('Fuel System'), _('Custom')}},

 

Link to comment
Share on other sites

Anyone managed to get the FA-18C NVG NITE DAY MODE switch to work?, the default binding recognises the button selected to throw the switch, in ctrl setup,, but in cockpit can only be thrown with a mouse click


Edited by skunk160

skunk160 | Win10 PRO 64bit | i7-4770K 3.50 GHz | 32GB DDR3/1866MHz | GIGABYTE GeForce GTX 1080 x2 | Oculus Rift S | Virpil MongoosT-50CM2 | Virpil F-14B grip | Virpil 200m Curved Extension | PointCTRL | Delta Sim TM Slew | Sim Bandit AHCP | MFG Crosswind Pedals | //FOX2 Switch Boxes | RECARO SPG Seat | AuraSound AST-2B-4 Pro Bass Transducer x2

//FOXTWO Multi-Role Combat Pit Build http://forums.eagle.ru/showthread.php?t=134745

Link to comment
Share on other sites

{    down = cptlights_commands.ModeSw_EXT,                                                        cockpit_device_id = devices.CPT_LIGTHS,            value_down =  1.0,                        name = _('MODE Switch - Up'),                                category = {_('Right Console'), _('INTR LT Control Panel')}},
{    down = cptlights_commands.ModeSw_EXT,                                                        cockpit_device_id = devices.CPT_LIGTHS,            value_down = -1.0,                        name = _('MODE Switch - Down'),                                category = {_('Right Console'), _('INTR LT Control Panel')}},
{    down = cptlights_commands.ModeSw,                                                            cockpit_device_id = devices.CPT_LIGTHS,            value_down =  1.0,                        name = _('MODE Switch - NVG'),                                category = {_('Right Console'), _('INTR LT Control Panel')}},
{    down = cptlights_commands.ModeSw,                                                            cockpit_device_id = devices.CPT_LIGTHS,            value_down =  0.0,                        name = _('MODE Switch - NITE'),                                category = {_('Right Console'), _('INTR LT Control Panel')}},
{    down = cptlights_commands.ModeSw,                                                            cockpit_device_id = devices.CPT_LIGTHS,            value_down = -1.0,                        name = _('MODE Switch - DAY'),                                category = {_('Right Console'), _('INTR LT Control Panel')}},

Just noticed

CPT_LIGTHS

This is default, in the community version its not spelt incorrectly anywhere


Edited by skunk160

skunk160 | Win10 PRO 64bit | i7-4770K 3.50 GHz | 32GB DDR3/1866MHz | GIGABYTE GeForce GTX 1080 x2 | Oculus Rift S | Virpil MongoosT-50CM2 | Virpil F-14B grip | Virpil 200m Curved Extension | PointCTRL | Delta Sim TM Slew | Sim Bandit AHCP | MFG Crosswind Pedals | //FOX2 Switch Boxes | RECARO SPG Seat | AuraSound AST-2B-4 Pro Bass Transducer x2

//FOXTWO Multi-Role Combat Pit Build http://forums.eagle.ru/showthread.php?t=134745

Link to comment
Share on other sites

-- INTR LT Control Panel

{	down = cptlights_commands.ModeSw_EXT,														cockpit_device_id = devices.CPT_LIGHTS,			value_down =  1.0,						name = _('MODE Switch - Fwd'),								category = {_('Right Console'), _('INTR LT Control Panel SMK')}},
{	down = cptlights_commands.ModeSw_EXT,														cockpit_device_id = devices.CPT_LIGHTS,			value_down = -1.0,						name = _('MODE Switch - Bck'),								category = {_('Right Console'), _('INTR LT Control Panel SMK')}},

Added this to the community default and it now works.

skunk160 | Win10 PRO 64bit | i7-4770K 3.50 GHz | 32GB DDR3/1866MHz | GIGABYTE GeForce GTX 1080 x2 | Oculus Rift S | Virpil MongoosT-50CM2 | Virpil F-14B grip | Virpil 200m Curved Extension | PointCTRL | Delta Sim TM Slew | Sim Bandit AHCP | MFG Crosswind Pedals | //FOX2 Switch Boxes | RECARO SPG Seat | AuraSound AST-2B-4 Pro Bass Transducer x2

//FOXTWO Multi-Role Combat Pit Build http://forums.eagle.ru/showthread.php?t=134745

Link to comment
Share on other sites

1 hour ago, skunk160 said:
-- INTR LT Control Panel

{	down = cptlights_commands.ModeSw_EXT,														cockpit_device_id = devices.CPT_LIGHTS,			value_down =  1.0,						name = _('MODE Switch - Fwd'),								category = {_('Right Console'), _('INTR LT Control Panel SMK')}},
{	down = cptlights_commands.ModeSw_EXT,														cockpit_device_id = devices.CPT_LIGHTS,			value_down = -1.0,						name = _('MODE Switch - Bck'),								category = {_('Right Console'), _('INTR LT Control Panel SMK')}},

Added this to the community default and it now works.

What version of DCS are you on?

I'm on latest OB, 2.7.8.16140. I just launched the game to verify, as I don't remember those controls being off when I recently went through to do an update to the Hornet binds (and didn't add anything to the community keybinds for this switch). All variations of the commands for that switch work for me, and the device reference in the default FA-18C lua files looks to be correct:

{	down = cptlights_commands.ModeSw_EXT,														cockpit_device_id = devices.CPT_LIGHTS,			value_down =  1.0,						name = _('MODE Switch - Up'),								category = {_('Right Console'), _('INTR LT Control Panel')}},
{	down = cptlights_commands.ModeSw_EXT,														cockpit_device_id = devices.CPT_LIGHTS,			value_down = -1.0,						name = _('MODE Switch - Down'),								category = {_('Right Console'), _('INTR LT Control Panel')}},
{	down = cptlights_commands.ModeSw,															cockpit_device_id = devices.CPT_LIGHTS,			value_down =  1.0,						name = _('MODE Switch - NVG'),								category = {_('Right Console'), _('INTR LT Control Panel')}},
{	down = cptlights_commands.ModeSw,															cockpit_device_id = devices.CPT_LIGHTS,			value_down =  0.0,						name = _('MODE Switch - NITE'),								category = {_('Right Console'), _('INTR LT Control Panel')}},
{	down = cptlights_commands.ModeSw,															cockpit_device_id = devices.CPT_LIGHTS,			value_down = -1.0,						name = _('MODE Switch - DAY'),								category = {_('Right Console'), _('INTR LT Control Panel')}},
{	down = cptlights_commands.ModeSw,					up = cptlights_commands.ModeSw,					cockpit_device_id = devices.CPT_LIGHTS,			value_down =  1.0,	value_up = 0.0,	name = _('MODE Switch - NVG/NITE'),										category = {_('Special For Joystick'), _('Right Console'), _('INTR LT Control Panel')}},
{	down = cptlights_commands.ModeSw,					up = cptlights_commands.ModeSw,					cockpit_device_id = devices.CPT_LIGHTS,			value_down = -1.0,	value_up = 0.0,	name = _('MODE Switch - DAY/NITE'),										category = {_('Special For Joystick'), _('Right Console'), _('INTR LT Control Panel')}},

Are you on stable version and it's maybe something fixed recently?


Edited by Munkwolf
Link to comment
Share on other sites

No Open Beta, only just back in the 18 and only with Quaggles mod running, so the problem was prolly in front of the monitor 🙂

  • Like 1

skunk160 | Win10 PRO 64bit | i7-4770K 3.50 GHz | 32GB DDR3/1866MHz | GIGABYTE GeForce GTX 1080 x2 | Oculus Rift S | Virpil MongoosT-50CM2 | Virpil F-14B grip | Virpil 200m Curved Extension | PointCTRL | Delta Sim TM Slew | Sim Bandit AHCP | MFG Crosswind Pedals | //FOX2 Switch Boxes | RECARO SPG Seat | AuraSound AST-2B-4 Pro Bass Transducer x2

//FOXTWO Multi-Role Combat Pit Build http://forums.eagle.ru/showthread.php?t=134745

Link to comment
Share on other sites

  • 2 weeks later...
53 minutes ago, Lt_Jaeger said:

Could anyone help me please with a "encoder friendly" bind for the Tomcat HSD Brightness Knob.

Currently there seems only the possibility to bind two values but no actual in-/decrease. 

 

Unfortunately I don't think that's possible at the moment. HB would need to add some additional relative commands where just absolute ones exist currently. I added 0%/25%/33%/50%/66%/75%/100% to the keybinds project for those. Figured being able to map a few values to have some control is better than nothing.

https://github.com/Munkwolf/dcs-community-keybinds/blob/main/InputCommands/F14/Input/F-14B-Pilot/joystick/default.lua

https://github.com/Munkwolf/dcs-community-keybinds/blob/main/InputCommands/F14/Input/F-14B-RIO/joystick/default.lua


Edited by Munkwolf
  • Thanks 1
Link to comment
Share on other sites

I have tried this mod several times without success.  Yesterday, I tried it again as I wanted the extra keys for the Viggen.  Finally success.  Great program.

  • Like 3

Trackir4 using the latest Trackir 5 software, Win10 Pro [Creator Update] updated from Win7Pro Pro 64Bit, Intel® Core™ i5-2500 3.30 GHz 6M Intel Smart Cache LGA115 , GigaByte GA-Z68XP-UD4 Intel Z68 Chipset DDR3 16GB Ram, GTX MSI Gaming 1060 [6 GB] Video Card, Main Monitor 1 on left 1920x1080 Touchscreen Monitor 2 on right 1920x1080 .

Link to comment
Share on other sites

  • 3 weeks later...

Spent the last two days learning and programming the default.lua´s 😂and today I found this amzing piece of code 👍

Thank you, you saved me a lot of time!

  • Like 4

Windows 10 | i7-8700K@5GHz | 2080 Ti | Intel Z370 Chipset | 32GB RAM@1866 MHz | SSD: Samsung 850 EVO 1TB| Thrustmaster Warthog HOTAS w. FSSB R3 Mod | Saitek Switch Panel + Radio Panel + Multi Panel + FIP + Flightpanels Software | MFG_Crosswind | TrackIR5 | TM Cougar MFD Pack | Obutto R3volution | 1 x LG38 | GAMETRIX KW-908 JETSEAT

Link to comment
Share on other sites

  • Recently Browsing   0 members

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