Building a Pack
Developing a custom pack is simple, to get started all you need is a text editor and some icons.
Create a pack folder
Start with this layout:
my-pack/
pack.json
icons/
my-icon.png
sounds/
my-sound.oggYour folder name is the local pack ID. Use only letters, numbers, hyphens, and underscores.
Add any PNG icons you want to use, along with any OGG notification sounds.
Your pack needs at least 1 icon OR sound file.
Create pack.json
Every pack needs a manifest at the root, this tells NotiVR what is in your pack and who made it.
Here is an example of a pack that adds a custom icon and sound for Discord.
{
"SchemaVersion": 1,
"Name": "My Pack",
"Author": "Your Name",
"Description": "Icons and sounds for my favourite apps",
"Version": "1.0.0",
"Icons": [
{
"Android": ["com.discord"],
"iOS": ["com.hammerandchisel.discord"],
"PNG": "icons/my-icon.png"
}
],
"Sounds": {
"ding": {
"Name": "Ding",
"Ogg": "sounds/my-sound.ogg",
"Android": ["com.discord"],
"iOS": ["com.hammerandchisel.discord"]
}
}
}Alternatively if I'm just adding icons, no sounds, keep sounds as an empty object.
{
"SchemaVersion": 1,
"Name": "My Pack",
"Author": "Your Name",
"Description": "Icons for my favourite apps",
"Version": "1.0.0",
"Icons": [
{
"Android": ["com.discord"],
"iOS": ["com.hammerandchisel.discord"],
"PNG": "icons/my-icon.png"
}
],
"Sounds": {}
}The Android and iOS arrays tell NotiVR which apps this icon belongs to. In this example, if you receive a notification from com.discord on Android or com.hammerandchisel.discord on iOS, this custom icon will be used instead of the default.
You need at least one of these fields to be populated, otherwise NotiVR will not use this icon.
For more information on how to configure your icons and sounds, see the pack.json reference.
Install the local pack
Copy the whole pack folder into:
{NotiVR Install Location}/assets/packs/So if your pack is named my-pack, the manifest should end up at:
{NotiVR Install Location}/assets/packs/my-pack/pack.jsonTest in NotiVR
Open NotiVR and go to the Packs page.
You should see your pack in the list. Clicking on it will open a dialog showing you the icons and sounds available in your pack.
If the pack does not appear, click the 'Refresh' button in the top right of the Packs page.
If that still doesn't work, check:
pack.jsonexists at the pack rootSchemaVersionis1- image paths in
PNGfields point to.pngfiles - sound paths in
Oggfields point to.oggfiles - the pack folder name uses a valid ID
Priority and overrides
There may be cases where a user has multiple packs installed that provide the same icon or sound. In this case, NotiVR will use the pack that is higher in the list.
You can drag the packs up and down in the list to change their priority. The higher the pack is in the list, the higher its priority is.
Developer tips
- Finding the package or bundle ID for each app can be tricky. Using Developer Mode can make this process easier.
- Make sure your icons are 512x512 pixels or less. 128x128 is recommended.
- Sounds must be less than 10 seconds long. Less than 2 seconds is recommended.
Next Steps
Once your pack works locally and you've tested it, you can publish it to the Steam Workshop.
See Workshop Publishing.