Skip to content

Latest commit

 

History

History
86 lines (84 loc) · 3.77 KB

2-manifest.md

File metadata and controls

86 lines (84 loc) · 3.77 KB

Manifest

Your plugin should contain a manifest.json file that supplies key information about your plugin to the OpenAction server. It should be present in the root of your plugin directory.

{
	// The human-readable name of your plugin. Required
	Name: string,
	// The user-facing author string (e.g. "ninjadev64"). Required
	Author: string,
	// The version of your plugin found in this directory. Required
	Version: string,
	// An icon to represent your plugin, relative to your plugin root. Required
	// This icon should be provided in PNG format, without the ".png" suffix. You may also provide @2x versions of this image.
	Icon: string,
	// The category for your plugin's actions to appear under.
	Category: string = "Custom",
	// The default path to your actions' property inspector.
	PropertyInspectorPath: string | null,
	// The actions provided by your plugin. Required
	Actions: [
		{
			// The name of this action. Required
			Name: string,
			// A unique identifier for this action. Required
			UUID: string,
			// A tooltip that sums up the purpose of this action.
			Tooltip: string = "",
			// An icon to represent this action, relative to your plugin root. Required if visible in action list
			// This icon should be provided in PNG format, without the ".png" suffix. You may also provide @2x versions of this image.
			Icon: string,
			// Whether or not to automatically toggle the state of this action on key up. Only applies to actions with two states.
			DisableAutomaticStates: boolean = false,
			// Whether or not this action should be visible in the action list.
			VisibleInActionsList: boolean = true,
			// Whether or not this action should be supported in Multi Actions.
			SupportedInMultiActions: boolean = true,
			// The path to this action's property inspector, if different to your plugin's default.
			PropertyInspectorPath: string = "<plugin default>",
			// The controllers this action should be supported on. Supported controllers are "Keypad" and "Encoder" (dials/sliders).
			Controllers: string[] = [ "Keypad" ],
			// The states that are part of this action. Required
			States: [
				{
					// The image of this state relative to your plugin root or "actionDefaultImage".
					Image: string = "actionDefaultImage",
					// The name of this state.
					Name: string = "",
					// The text to display on this state over the image.
					Title: string = "",
					// Whether or not to display the title over the image.
					ShowTitle: boolean = true,
					// The colour of the state title.
					TitleColor: string = "<server dependent>",
					// The vertical alignment of the state title, either "top", "middle", or "bottom".
					TitleAlignment: string = "middle",
					// The font style of the title, either "Regular", "Bold", "Italic", or "Bold Italic".
					FontStyle: string = "Regular",
					// The font size of the state title in pixels as rendered on a 72x72px state image.
					FontSize: string = "16",
					// Whether or not to underline the state title.
					FontUnderline: boolean = false
				}
			]
		}
	],
	// The operating systems your plugin is supported on. Required
	OS: [
		{
			// The platform in question. Can be "windows", "mac", or "linux". Note that "linux" is not supported by Stream Deck. Required
			Platform: string,
			// The minimum supported version of the platform in question.
			Version: string | null
		}
	],
	// The default path to your plugin executable file, relative to your plugin root.
	// HTML5 is supported if this value ends with the ".html" suffix, and Node.js if this value ends with either of the ".cjs" and ".mjs" suffixes.
	CodePath: string | null,
	// An override for CodePath on Windows.
	CodePathWin: string | null,
	// An override for CodePath on macOS.
	CodePathMac: string | null,
	// An override for CodePath on Linux.
	CodePathLin: string | null
}