-
Notifications
You must be signed in to change notification settings - Fork 22
Automatic Profile Switching
The plugin will check the following in-game states and will activate any related profile (optional) :
- InternalPanel
- InvInternalPanel
- ExternalPanel
- InvExternalPanel
- CommsPanel
- InvCommsPanel
- RolePanel
- InvRolePanel
- GalaxyMap
- SystemMap
- Orrery
- FSSMode (Full Spectrum System Scanner)
- SAAMode (Detailed Surface Scanner)
- InFighter
- SrvTurret
- InSRV
- OnFoot (Odyssey)
- AnalysisMode
- CargoScoop
- Hardpoints
- BeingInterdicted
- InMainShip
- Landed
- Supercruise
- Docked
- LandingGearDown
- ShieldsUp
- FlightAssistOff
- InWing
- LightsOn
- SilentRunning
- ScoopingFuel
- SrvHandbrake
- SrvUnderShip
- SrvDriveAssist
- FsdMassLocked
- FsdCharging
- FsdCooldown
- LowFuel
- Overheating
- HasLatLong
- IsInDanger
- NightVision
- FsdJump
- SrvHighBeam
- InTaxi
- InMulticrew
- GlideMode
- TelepresenceMulticrew
- PhysicalMulticrew
- Fsdhyperdrivecharging
The elgato SDK only allows switching to profiles that are installed BY the plugin itself.
You only have to define the profiles that you actually need.
Above state name needs to be part of the name of the profile (e.g. 'Elite Dangerous Hardpoints XL'),
so that the plugin will know which profile to activate at which game state change.
Multiple state names can 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 not in analysis mode :
Elite Dangerous CargoScoop InvAnalysisMode XL
You will need at least two profiles:
One profile for one of the above states and a profile with 'main' in the name that will be the default profile (e.g. 'Elite Dangerous Main XL'), if none of the configured state profiles are active..
(If you don't use the profile feature, then you don't have to do anything)
If you want to use profiles on different size steamdecks (classic/mini/xl/plus/mobile) then you will need to set up separate profiles for each streamdeck model.
You can have different states active for the different streamdeck models.
(e.g. you could set up a hardpoints profile, only for the classic streamdeck and not for the XL streamdeck)
However, if you have two of the same type of streamdeck, then they will all have the same profiles UNLESS you add the last 6 digits of the device id to the profile name. (see below)
The first step is to set up profiles normally, for all the desired in-game states.
The name must contain one or more of above state names and there must be a profile with 'main' in the name :
Then, you need to export all the profiles to the plugin directory :
%appdata%\Elgato\StreamDeck\Plugins\com.mhwlng.elite.sdPlugin
Make sure that you don't change the file name, when exporting or in explorer.
You can rename the profile, by double clicking in the profiles dialog box, before exporting.
Then edit the manifest.json file to tell the plugin, which profiles are now 'owned' by the plugin :
....
....
"SDKVersion": 2,
"Software": {
"MinimumVersion": "6.0"
},
"Profiles": [
{
"Name":"Elite Dangerous Main XL",
"ReadOnly":false,
"DeviceType":2,
"DontAutoSwitchWhenInstalled":false
},
{
"Name":"Elite Dangerous HardPoints XL",
"ReadOnly":false,
"DeviceType":2,
"DontAutoSwitchWhenInstalled":true
}
]
}
The order of these profiles in manifest.json is used to determine in what order the game state must be checked, to automatically switch profiles.
Only the position of the 'Main' profile in the list doesn't matter.
The DeviceType field is important (0=Classic, 1=Mini, 2=XL, 3=Mobile, 7=PLUS)
If you require different profile switching for multiple streamdecks of the same type :
First check the plugin log :
It will contain all the device id's
[Id: 49C5DB3C77BEDDEB4EE9DA88ED76CF59 Type: StreamDeckXL Size: Rows: 4 Columns: 8]
[Id: 8F9F54D3085E17917873D7BA481EA6B7 Type: StreamDeckPlus Size: Rows: 2 Columns: 4]
[Id: 8403C4817A9F3533236625316AE80F1A Type: StreamDeckClassic Size: Rows: 3 Columns: 5]
[Id: A2F05B845C24AD67556305C9EE9CA0DC Type: StreamDeckClassic Size: Rows: 3 Columns: 5]
Then add the last 6 digits of the Id to the profile name and the manifest :
"Profiles": [
{
"Name":"Main 9CA0DC",
"ReadOnly":false,
"DeviceType":0,
"DontAutoSwitchWhenInstalled":true
},
{
"Name":"SystemMap 9CA0DC",
"ReadOnly":false,
"DeviceType":0,
"DontAutoSwitchWhenInstalled":true
},
{
"Name":"Main E80F1A",
"ReadOnly":false,
"DeviceType":0,
"DontAutoSwitchWhenInstalled":true
},
{
"Name":"GalaxyMap E80F1A",
"ReadOnly":false,
"DeviceType":0,
"DontAutoSwitchWhenInstalled":true
}
]
Then, you need to DELETE the profiles, that you just exported, in streamdeck\preferences\profiles.
This is an important step and at this point all your buttons will have disappeared.
You need to have one random profile, that is not in the manifest, for each streamdeck (e.g. called 'default profile') with at least one button from this plugin on it. That profile should be the active profile.
When there are no more profiles, that are defined in the manifest, in the streamdeck software, FIRST START The Game (so that you are sitting in your ship), THEN restart streamdeck.exe
You should get asked to install all the profiles (more than once, if you have more than one type of streamdeck:
Sometimes you have force an automatic profile switch in the game, before the installation popup will appear.
You may need to restart streamdeck.exe twice before you see the profiles in the profiles tab.
If there are multiple streamdecks of the same type, then the profiles may be installed on only one of the streamdecks. The installation popup for the remaining streamdecks can appear when triggering an automatic profile switch.
Now, ALL the profiles defined in manifest.json , that you just deleted, should be back :
The plugin should now be fully working and automatically switching profiles.
Each automatic profile switch is logged in the pluginlog.log file.
You can now edit all the profiles, without having to re-install the profiles again.
Note that the previously exported profile files won't automatically be updated when you edit a profile!
The order of the profiles in manifest.json can be changed, AFTER the profiles are already installed, as long as the profile names are not changed.
Restart streamdeck.exe after any change.
Note that when you uninstall the plugin, the profile export files and manifest.json modifications will be gone, so keep backups.