Release v1.2.0 elgato stream deck button plugin for elite dangerous

@mhwlng Thank you for this great plugin. I set it up and it works very well.

Nevertheless when I dived in deeper I got some issues with the automatic profile switching. I created and activated all the profiles and can access all of them correctly by switching the modes in ED.

I noticed the following issues:

1st: Once entered the FSS mode in ED the profile switches to FSSMode as expected. I can leave FSS mode in ED by pushing the defined button on stream deck but the profile on stream deck doesn't switch back. It remains in the FSSMode profile until I switch manually.

2nd: When deploying the cargo scoop while the Hardpoints Profile is active, the profile switches to CargoScoop. So it is not reasonable to deploy the cargo scoop to use limpets for example while in combat (which I do regularly). In my opinion it would be better to switch the profile only in Analysis mode. If I understand the mechanism of the plugin correct, it would be sufficient to change the activation order and put CargoScoop on an other position.

3rd: It is apparently not necessary anymore to have the profiles write only in the profile folder. I have them exported, deleted the original profiles and after a restart everything works as expected. I can then change the profiles on Stream Deck and re-export them to the plugin directory and everything seems to work. Also deleting and reloading the profiles is functioning as expected.

I hope my comments are helpful and perhaps there are any others which can verify what I noticed.
Thank you again.
 
I can confirm that the profiles no longer need to be read only. (streamdeck v6.0.1.17722)
I have adjusted the instructions on github.

I am not sure what to do about your other your other 2 points?

I added all test profiles and tested the FSS button

If you press the FSS button, then it will go to the FSS profile. But at that moment, analysis mode is also active.
If you then press the FSS button again, it will go out of FSS mode and then the analysis mode profile is displayed.
If you then press the analysis mode button, then it will go to the main profile.

p.s. The plugin log file will show which profiles it found and also which profiles it activated and why.

The rules are based on the data from status.json:

Rules without a profile attached are skipped.

enable profile GalaxyMap when StatusData.GuiFocus == StatusGuiFocus.GalaxyMap and exit
enable profile SystemMap when StatusData.GuiFocus == StatusGuiFocus.SystemMap and exit
enable profile Orrery when StatusData.GuiFocus == StatusGuiFocus.Orrery and exit
enable profile FSSMode when StatusData.GuiFocus == StatusGuiFocus.FSSMode and exit
enable profile SAAMode when StatusData.GuiFocus == StatusGuiFocus.SAAMode and exit
enable profile InFighter when StatusData.InFighter and exit
enable profile SrvTurret when StatusData.SrvTurret and exit
enable profile InSRV when StatusData.InSRV and exit
enable profile OnFoot when StatusData.OnFoot and exit
enable profile AnalysisMode when StatusData.HudInAnalysisMode and exit
enable profile CargoScoop when StatusData.CargoScoopDeployed and exit
enable profile Hardpoints when StatusData.HardpointsDeployed and exit
enable profile Main

I could add more rules for you, if you have some specifc logic, consisting of multiple fields, in mind
 
I can confirm that the profiles no longer need to be read only. (streamdeck v6.0.1.17722)
I have adjusted the instructions on github.
While trying out different things, I noticed another issue when exporting profiles. If I export a new profile into the plugin folder. The question to import the new profile does not appear before I switch to the corresponding mode in ED. Could you confirm this too?

I am not sure what to do about your other your other 2 points?

Let's discuss this one first.
I added all test profiles and tested the FSS button

If you press the FSS button, then it will go to the FSS profile. But at that moment, analysis mode is also active.
If you then press the FSS button again, it will go out of FSS mode and then the analysis mode profile is displayed.
If you then press the analysis mode button, then it will go to the main profile.

p.s. The plugin log file will show which profiles it found and also which profiles it activated and why.

The rules are based on the data from status.json:
I did some testing and tried to copy status.json according to the corresponding actions I did. As you can see in the attached logs, after entering FSSMode the logfile of the plugin stopped.There were no more entries. I switched the mode again, as you can see in status.json.log, but in pluginlog.log appeared no more entries. New entries do not appear before I switch the profile manually. After that everything is functioning again normally, until I enter FSS mode again. Then this begins again. On my system this is fully reproducible. If you would tell me what to try and what to look on, I could do some further testing.

The next point is a bit harder to think through all consequences.
Rules without a profile attached are skipped.

enable profile GalaxyMap when StatusData.GuiFocus == StatusGuiFocus.GalaxyMap and exit
enable profile SystemMap when StatusData.GuiFocus == StatusGuiFocus.SystemMap and exit
enable profile Orrery when StatusData.GuiFocus == StatusGuiFocus.Orrery and exit
enable profile FSSMode when StatusData.GuiFocus == StatusGuiFocus.FSSMode and exit
enable profile SAAMode when StatusData.GuiFocus == StatusGuiFocus.SAAMode and exit
enable profile InFighter when StatusData.InFighter and exit
enable profile SrvTurret when StatusData.SrvTurret and exit
enable profile InSRV when StatusData.InSRV and exit
enable profile OnFoot when StatusData.OnFoot and exit
enable profile AnalysisMode when StatusData.HudInAnalysisMode and exit
enable profile CargoScoop when StatusData.CargoScoopDeployed and exit
enable profile Hardpoints when StatusData.HardpointsDeployed and exit
enable profile Main

I could add more rules for you, if you have some specifc logic, consisting of multiple fields, in mind
In my opinion it would be better to switch the position of AnalysisMode and Hardpoints so the profile would only be switched if hardpoints are not deployed, if I understand this correct. This is probably the less critical situation. But by only quickly thinking about this, I'm not sure about any other negative effects, since I did not understand the complete logic of status.json yet.

For imagining some specific logic as you mentioned I'm too short using this automatic right now. It have been only a few sessions with this and I'm still trying out what fits best. There are so many opportunities, but perhaps I will come back to this later 😉
 

Attachments

  • pluginlog.log
    2.5 KB · Views: 169
  • status.json.log
    2.3 KB · Views: 169
The question to import the new profile does not appear before I switch to the corresponding mode in ED.

I don't understand what you mean by this?
Please see instructions on github.
All the profiles are installed at the same time, only once.

To reproduce my setup. I set up a profile for FSS, analysis mode and main.
NOTE, that I have 'don't switch to combat mode' checked on my FSS button setup.

I have not found any errors in the software.
For me, it works as designed.
So, if it doesn't work for you, then I think you are out of luck. I don't know what I can change?
then perhaps you can't use this feature...

In my opinion it would be better to switch the position of AnalysisMode and Hardpoints
that is your requirement.
I don't know, if there are other people that have other use cases?
If I change this, then it will break for everybody else...
 
Last edited:
I don't understand what you mean by this?
Please see instructions on github.
All the profiles are installed at the same time, only once.
I'll try again to explain what I mean.
If I export a new profile and then delete it from the profile list on Streamdeck, I can restart Streamdeck (as described on github) as often as I like, I even can do a reboot of my PC, but Streamdeck does never ask to import the profiles. Only when I'm in-game and the focus changes so that the new profile should get active, the message from Streamdeck appears. For me this is not a bug, but it is a behavior which is different from what I read on github. Perhaps I'm really doing something wrong, but I don't know.

I have not found any errors in the software.
For me, it works as designed.
So, if it doesn't work for you, then I think you are out of luck. I don't know what I can change?
then perhaps you can't use this feature...
I found the reason for this issue.
If I do not put a FSS Button from the plugin into the FSS profile, but only a System-Hotkey to leave FSS mode, it does not work as expected.
It seems that a FSS Button is mandatory for this profile to work correctly. If a FSS Button is present, then also a System-Hotkey works as expected.

that is your requirement.
I don't know, if there are other people that have other use cases?
If I change this, then it will break for everybody else...
Sure, this only my humble opinion. But I wanted to share it publicly, because others may have an issue with it either and would jump in here.
But I found a solution for me to solve this. I created a fork of your repository and did the change myself. Now it fits my needs.
So for me, we can close this conversation. Thank you for your time.
 
new version 2.4.5

The plugin now uses the profile order, as defined in manifest.json, to determine in what order the game state must be checked, to automatically switch profiles.
See wiki on github for updated instructions.

If you already use automatic profile switching, then you may need to adjust the order of the profiles in manifest.json depending on your requirements.
This can be done without reinstalling profiles. Just restart streamdeck.exe after any change.

Also note that profiles don't need to be installed as read-only anymore. (in the latest streamdeck software version)
So, you can edit profiles without reinstalling.
 
Last edited:
new version 2.4.6

Multiple state names can now be added to one profile name. The prefix 'Inv' inverts the logic.

E.g. this profile name causes the profile to be activated only when cargo scoop is deployed and when not in analysis mode:

Elite Dangerous CargoScoop InvAnalysisMode XL
 
Last edited:
Excellent, thank you for this great update. This update includes much more than I hoped.

There is only one remark from my side.
Everyone should be aware that, while profiles can be changed at any time, the changes are not saved in the plugin folder. You still have to export the changed profiles to the plugin folder. If you don't consider this, the changes are lost if you have to re-import the profiles from there for any reason.
 
I’ve updated to 2.4.6 today and spent some time setting up some placeholder auto switching profiles. I seem to be hitting the problem where when I board my SRV into my ship, I get a pop up asking to install the profiles that come with the plugin.

I tried deleting the profiles from the plugin folder thinking that might stop the prompt but it doesn’t seem to.

Any ideas on what I could try changing to stop the pop-up?

Thanks for continuing to maintain this plugin, it is great :)
 
There's nothing that I can do to fix that problem in the plugin.

The pop-up happens when the streamdeck software tries to activate a profile (as defined in the manifest file) that it hasn't found or isn't 'owned' by the plugin.

All the profiles (as defined in the manifest file) should already exists in the streamdeck software and be 'owned' by the plugin before starting to play the game.

You need to carefully follow the instructions on github and don't make any spelling errors in manifest.json and don't rename profile files in windows.

Don't forget to restart streamdeck.exe multiple times, as described.

You need to remove ALL profiles (related to the plugin) in the streamdeck software (don't remove the exported profile files from the plugin directory),
restart streamdeck.exe and start at the beginning again.

Also make sure that your streamdeck software is the latest version.
 
Last edited:
There's nothing that I can do to fix that problem in the plugin.

The pop-up happens when the streamdeck software tries to activate a profile (as defined in the manifest file) that it hasn't found or isn't 'owned' by the plugin.

All the profiles (as defined in the manifest file) should already exists in the streamdeck software and be 'owned' by the plugin before starting to play the game.

You need to carefully follow the instructions on github and don't make any spelling errors in manifest.json and don't rename profile files in windows.

Don't forget to restart streamdeck.exe multiple times, as described.

You need to remove ALL profiles (related to the plugin) in the streamdeck software (don't remove the exported profile files from the plugin directory),
restart streamdeck.exe and start at the beginning again.

Also make sure that your streamdeck software is the latest version.
Thanks for the reply, I knew I’d be getting something wrong. I had a couple more goes starting from scratch and it seems to be working as expected now.

I found that I had to click on the main profile to get the prompt to install the profiles. I was then ending up with a duplicate of the main profile wiht ’copy’ at the end of the name. I had previously deleted that copy profile which I think meant the plugin didn’t have ownership of all the profiles as you mentioned in your post.

What I did the next time was delete the original main profile then rename the copy and that seems to have sorted it.

Thanks again for the help.
 
Ok great...
I first delete all the profiles, that are defined in the manifest file, in the streamdeck software.
then restart streamdeck.exe.
At startup it prompts me to install the profiles.
If not, I double click the main profile, like you did.
After doing that, I restart streamdeck.exe again.
Only now do I see all the profiles.
 
Last edited:
version 2.4.7

added support for streamdeck+ dials and automatic profile change

note that I have not found any good use for the dials in Elite Dangerous.

When a dial is rotated, the 'key down' event is sent to the keyboard once.
When you let go of the dial, for at least 100ms : the 'key up' event is sent to the keyboard.

So, you need buttons that, when you keep pressing them, the 'value' goes up or down.

I have only found the 'decrease sensor range' and 'increase sensor range' keys somewhat useful on a dial.

There are some camera-related, galaxymap-related and FSS-related left/right up/down zoom-in/ zoom-out buttons.
But I don't use any of those..
 
version 2.5.0

added firegroup dial for streamdeck+
automatic profile switching for streamdeck mobile
 
Last edited:
Hi @mhwlng, would it be possible to add a toggle button for 'Rotational Correction' similar to the 'Flight Assist' one? I noticed there was a static button for rotational correction but I was hoping to be able to assign different icons for on and off states. If it's a large effort don't worry, but if it was something easy for you to add it would be much appreciated.
 
version 2.5.1

Fix possible missing on foot binding when playing horizons 4.0

In horizons 4.0 : the StartPreset.start file contains 4 bindings, just like for odyssey.
But, the game only allows you to set the first 3 bindings (i.e. no on-foot bindings).

The plugin requires all bindings to point to the same custom binds file. (just like with odyssey)
 
Hey mhwlng,

thanks for your hard work.
I installed the plugin for the first time today and used the latest version, 2.5.1 and I got the following error:

2022-12-17 18:39:10.8881|FATAL|com.mhwlng.elite|5|ExtractKeyStrokes Exception: System.Collections.Generic.KeyNotFoundException: Der angegebene Schlüssel war nicht im Wörterbuch angegeben.
bei System.ThrowHelper.ThrowKeyNotFoundException()
bei Elite.CommandTools.ExtractKeyStrokes(String macroText)

I tried to use "Toggle" for Lights.
There is a alternativ button for Lights and Streamdeck is started as Admin.
When I use the primary button for Lights in the game, the Button in Streamdeck changes from on to off or visa verse.

Thanks ;)
 
Back
Top Bottom