Component Structure

A component at its core is a JSON object containing the normal function exports a plugin would have, like name, size, LED count, etc.

Note: Changes to these files will not directly affect already selected components.

If you are editing files you'll need to reselect the component to update it with changes

Directories

These files are grabbed from one of two directories. Built-in ones are stored in:

C:\Users\[YOUR USERNAME]\AppData\Local\VortxEngine\app-[CURRENT VERSION]\Signal-x64\Components

And user-made files should be stored in the User Directory. By default this is in documents:

C:\Users\[YOUR USERNAME]\Documents\WhirlwindFX\Components

Files stored in appdata are overwritten on each update, while ones stored in the user's documents directory will persist between versions. Files stored there will also override anything in the appdata directory with a matching product name. These custom user components will show up just like a built in component, with automatically generated brand and type filters.

Note: Only .JSON files will be loaded from the directories

JSON Structure

Below is an example of a "Vertagear" Chair Upgrade Kit being expressed as a component with all necessary attributes.

  • Note: Common errors and warnings when loading these files will be printed to the debug logs.

{ "ProductName": "VertaGear PL4500 RGB Top Kit (Chair Back)", "DisplayName": "VertaGear PL4500 RGB Top Kit (Chair Back) - 5 Zone", "Brand" : "Vertagear", "Type" : "Chair", "LedCount" : 5, "Width": 5, "Height": 5, "LedMapping" : [ 0,1,2,3,4 ], "LedCoordinates" : [ [0,0], [0,1], [1,0], [2,0], [2,1] ], "LedNames" : [ "Back Side - Top","Back Side - Bottom","Center Acrylic","Front Side - Top", "Front Side - Bottom" ], "ImageUrl": "" }

Parameter

Description

Type

Example

ProductName

The ProductName used for persistence as the component's name

String

Corsair LL Fan

Brand

String representing the component's brand for filtering

String

Corsair

Type

String representing the component's type for filtering

String

Fan

LedCount

Integer representing the total LED count of the component

Int

16

Width

Integer representing the width of the component's pixel buffer

Int

5

Height

Integer representing the height of the component's pixel buffer

Int

5

LedMapping

Array containing the order LED color info should be returned in

1D Array

[0,1,2]

LedCoordinates

Array containing the [X,Y] position of all LEDs

2D Array

[[0,0],[0,1]]

LedNames

Array containing the name of each LED

1D Array

["Led 1","Led 2"]

ImageUrl

URL Image String used as the component's thumbnail

String


Note: A blank or missing image field will use a placeholder thumbnail.

Images should be formatted in a 1024x1024 image size with a live area of 920x920.