{"id":23925516,"url":"https://github.com/mhwlng/streamdeck-starcitizen","last_synced_at":"2025-03-17T16:11:24.678Z","repository":{"id":39592963,"uuid":"392009619","full_name":"mhwlng/streamdeck-starcitizen","owner":"mhwlng","description":"Elgato Stream Deck button plugin for Star Citizen","archived":false,"fork":false,"pushed_at":"2024-04-20T09:38:52.000Z","size":1279,"stargazers_count":201,"open_issues_count":0,"forks_count":10,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-03-02T13:11:22.409Z","etag":null,"topics":["star-citizen","stream-deck"],"latest_commit_sha":null,"homepage":"https://robertsspaceindustries.com/spectrum/community/SC/forum/50264/thread/streamdeck-plugin","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mhwlng.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-02T15:55:11.000Z","updated_at":"2025-02-27T00:48:55.000Z","dependencies_parsed_at":"2025-03-02T13:11:17.444Z","dependency_job_id":"277f5058-4d08-4a23-9f15-cc4715c89d84","html_url":"https://github.com/mhwlng/streamdeck-starcitizen","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhwlng%2Fstreamdeck-starcitizen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhwlng%2Fstreamdeck-starcitizen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhwlng%2Fstreamdeck-starcitizen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhwlng%2Fstreamdeck-starcitizen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mhwlng","download_url":"https://codeload.github.com/mhwlng/streamdeck-starcitizen/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244066180,"owners_count":20392406,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["star-citizen","stream-deck"],"created_at":"2025-01-05T20:14:34.882Z","updated_at":"2025-03-17T16:11:24.648Z","avatar_url":"https://github.com/mhwlng.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# streamdeck-starcitizen\n\n**Elgato Stream Deck button plugin for Star Citizen**\n\n![Elgato Stream Deck button plugin for Star Citizen](https://i.imgur.com/FSHsXRG.png)\n\n**At least streamdeck software version 6 is required.**\n\nThis plugin gets the key bindings from the Star Citizen game files.\n\nThe bindings in the streamdeck plugin are automatically updated when changing bindings in Star Citizen options screen.\n\nThe bound key is shown in the dropdown, localised for the current keyboard language (So: US keyboard shows WSAD, French keyboard shows ZSQD)\n\n**The plugin does not contain any button images or ready made streamdeck profiles.**\n\nCredit goes to https://github.com/SCToolsfactory/SCJMapper-V2 and https://github.com/dolkensp/unp4k for all the code to get the `defaultProfile.xml` from the p4k file etc.\n\nThe static button works in a similar way, to the streamdeck 'Hotkey' button type.\nSo, there is only one image and there is no game state feedback for these buttons.\nThe differences with the 'Hotkey' buttons are, that it gets the keyboard binding from the game.\nWhen the stream deck button is pushed, the 'key down' event is sent to the keyboard\nand only after the stream deck button is released, the 'key up' event is sent to the keyboard.\n\nThe plugin's multi-action button behaviour is different : when the stream deck button is pushed, the 'key down' event is sent to the keyboard.\nAfter a user-definable delay (default = 40 ms) the 'key up' event is sent to the keyboard. \nNothing happens when the streamdeck button is released.\n\nBoth the static- and multi-action buttons can be used inside the streamdeck built-in multi-action button's action list.\n\nThe multi-action button can also be used as a regular streamdeck button, in case a fixed user-definable delay is required between the key down and key up events.\n\nA sound can be played when pressing a button.\n\n**You can clear the sound path, by clicking on the label in front of the file picker edit box.**\n\nYou can, for example, use the 'multi-action switch' function, that is built into the streamdeck software, to set up a toggle function.\nYou can add the relevant function of this plugin to both the ON-and OFF-action of the 'multi-action switch' function.\nYou can then set up different images for each toggle state.\nThe disadvantage is: that if you would press e.g. the gear up/down toggle button while the ship is still on the ground/powered off, \nthen the button image would be out of sync.\n\nThe plugin also has a Dial button for use with the 4 dials on the Streamdeck+ model.\n\nThere are 5 bindings (They must be keyboard bindings, you can't bind the mouse wheel!) :\n\n- Dial Clockwise\n- Dial Counter-Clockwise\n- Dial Press\n- Touch screen press\n- Touch screen long press\n\n![Dial Image](https://i.imgur.com/MjcGque.png)\n\nWhen a dial is rotated, the 'key down' event is sent to the keyboard once. \nWhen you let go of the dial for at least 100ms : the 'key up' event is sent to the keyboard. \n\nWhen a dial button is pushed, the 'key down' event is sent to the keyboard. \nWhen a dial button is released, the 'key up' event is sent to the keyboard. \n\nWhen the touch screen is pressed or long-pressed, the behaviour is like the multi-action button :\nThe 'key down' event is sent to the keyboard. After a user-definable delay (default = 40 ms) the 'key up' event is sent to the keyboard. \n\nAfter you install the plugin in the streamdeck software, then there will be new button types in the streamdeck software.\n\nChoose a button in the streamdeck software (drag and drop), then choose a Star Citizen function for that button \n(that must have a keyboard binding in Star Citizen. **A mouse, gamepad or joystick binding won't work!**) \nand then choose any picture for that button.\n\nAdd an image to a button in this way:\n\n![Button Image](https://i.imgur.com/xkgy7uZ.png)\n\nAnimated gif files are supported. Dial images are 200x50\n\nWhen the plugin is first started, it finds and opens the game file :\n\n`C:\\Program Files\\Roberts Space Industries\\StarCitizen\\LIVE\\Data.p4k`\n\nand extracts `defaultProfile.xml` and also english text resources. This could take more than 10 seconds.\n\n**The plugin should automatically find the actual path where Star Citizen was installed.**\n\nThe path, that is found by the plugin, is logged in the `%appdata%\\Elgato\\StreamDeck\\Plugins\\com.mhwlng.starcitizen.sdPlugin\\pluginlog.log` file.\n\nIf the path is incorrect, then the `%appdata%\\Elgato\\StreamDeck\\Plugins\\com.mhwlng.starcitizen.sdPlugin\\appsettings.config` file can be adjusted with the correct paths to the p4k file and the actionmaps.xml directory :\n\n```\n\u003c?xml version=\"1.0\" encoding=\"utf-8\" ?\u003e\n\u003cappSettings\u003e\n  \u003cadd key=\"SCData_p4k\" value =\"C:\\Program Files\\Roberts Space Industries\\StarCitizen\\LIVE\\Data.p4k\" /\u003e\n  \u003cadd key=\"SCClientProfilePath\" value =\"C:\\Program Files\\Roberts Space Industries\\StarCitizen\\LIVE\\USER\\Client\\0\\Profiles\\default\" /\u003e\n\u003c/appSettings\u003e\n```\n\nCompressed versions (files ending in .scj) are cached in the plugin directory and should be automatically refreshed, the next time Star Citizen is updated to a new version AND the plugin is also restarted.\n\nYou can also delete the .scj files and restart the plugin, to extract the files from the p4k file again.\n\nFor easier debugging, installation and testing, `defaultProfile.xml`, `keybindings.csv`, `joystickbindings.csv`, `mousebindings.csv`, `unboundactions.csv` and `PropertyInspector\\StarCitizen\\Static.html` files are created in the plugin directory.\n\nThe plugin uses all the active keyboard bindings from `defaultProfile.xml` and then overrules some of the bindings, with any custom keyboard bindings from this file :\n\n`C:\\Program Files\\Roberts Space Industries\\StarCitizen\\LIVE\\USER\\Client\\0\\Profiles\\default\\actionmaps.xml`\n\nThe `PropertyInspector\\StarCitizen\\Static.html` and `PropertyInspector\\StarCitizen\\Macro.html` file is dynamically updated, in case more custom keyboard bindings were added to `actionmaps.xml`, \nthat didn't have any corresponding keyboard bindings in `defaultProfile.xml`.\n\nIf nothing happens, when pressing streamdeck buttons: you could try to start streamdeck.exe as administrator.\n\nThe plugin installer is here: https://github.com/mhwlng/streamdeck-starcitizen/releases\n\nTo install the plugin, double click the file `com.mhwlng.starcitizen.streamDeckPlugin` which should install the plugin.\n\n(This only works, if the plugin not already installed. Otherwise you will need to uninstall or remove the plugin first.)\n\nThis .streamDeckPlugin file is a zip file and the contents are simply copied to :\n\n`%appdata%\\Elgato\\StreamDeck\\Plugins\\com.mhwlng.starcitizen.sdPlugin`\n\nTo update to a new version :\n\nStop the Stream Deck application:\n\n`c:\\Program Files\\Elgato\\StreamDeck\\StreamDeck.exe`\n\nThen delete the `%appdata%\\Elgato\\StreamDeck\\Plugins\\com.mhwlng.starcitizen.sdPlugin` directory. (make a backup copy first)\n\nThen start the streamdeck software again.\n\nThen double click the file `com.mhwlng.starcitizen.streamDeckPlugin` as usual.\n\nMAKE SURE that you save any images, profiles etc. that you put in these directories yourself, BEFORE deleting the directory.\nAnd put them back after the installation.\nThe plugin installer doesn't come with button images.\n\nAlso, the plugin can be uninstalled and the directory completely deleted by right-clicking on any button and selecting uninstall (make a backup copy first) :\n\n![Button Image](https://i.imgur.com/BAkEuEq.png)\n\nThe button configurations are not stored in the plugin directory.\n\nAfter uninstalling and re-installing the plugin, all the button definition should still be there.\n\nThe com.mhwlng.starcitizen.sdPlugin directory contains a pluginlog.log file, which may be useful for troubleshooting.\n\nThanks to :\n\nhttps://github.com/BarRaider/streamdeck-tools\n\nhttps://github.com/SCToolsfactory/SCJMapper-V2\n\nhttps://github.com/dolkensp/unp4k\n\nhttps://github.com/ishaaniMittal/inputsimulator\n\nhttps://nerdordie.com/product/stream-deck-key-icons/\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhwlng%2Fstreamdeck-starcitizen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmhwlng%2Fstreamdeck-starcitizen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhwlng%2Fstreamdeck-starcitizen/lists"}