Manifest

The manifest file contains information that Saturn needs to load the plugin, all manifest attributes must exist or the plugin will not be loaded.

Here's an example of a plugin manifest.json file:

manifest.json
{
  "Slug": "ExamplePlugin",
  "Name": "Example Plugin",
  "Description": "A cool example plugin.",
  "Author": ["John Doe"],
  "Version": {
    "Plugin": "1.0",
    "Saturn": ["1.0.0"]
  },
  "Dependencies": [],
  "Conflicts": [],
  "Hibernate": ["/MyPluginURL"],
  "Startup": ["Main.php"]
}

Manifest keys and what they do

Slug

Your Saturn provided plugin 'slug', this tells Saturn where to look for updates, and to automatically generate a link to your plugin page.

A slug is basically a unique ID for you! It stops plugins from clashing and causing nasty errors, it's also how PluginManager understands what plugin is this plugin.

Even if you change the name of your plugin, you slug won't change. It's permanent.

There are no examples - use your slug.

Name

The name key does what it says on the tin, it's the plugin's name!

Examples

Plugins shouldn't contain your name, that's what the author section is for!

Plugins shouldn't contain "Saturn", we know it's for Saturn!

Description

Another easy one, it's a quick description for your plugin!

Examples

Descriptions shouldn't contain your name, that's what the author section is for! The only exception is if you are required to give attribution for using libraries, etc (Libraries made by the Saturn team made for Saturn don't require attribution in plugins).

Descriptions shouldn't contain "Saturn", we know it's for Saturn!

Author

This can be a single author, or a list. It tells the people using it who made it.

Examples

Plugins shouldn't contain URLs, we automatically generate links back to your Saturn Marketplace page in the Plugin Library!

Tell us who you are! Use an Alias, anything!

Please put it in an array, even if it's only one value. I like arrays.

Version->Plugin

Your plugin version, that's up to you! It must only consist of numbers and periods. It's used whilst checking for plugin updates.

Examples

This will confuse Saturn. Please don't confuse Saturn, it's trying it's best.

Version->Saturn

The version(s) of Saturn that your plugin is compatable with.

Examples

This will confuse Saturn. Please don't confuse Saturn, it's trying it's best.

Please put it in an array, even if it's only one value. We like arrays.

Dependencies

Does you plugin rely on another plugin to work? If so, this section is for you! If not, well you need it anyways.

Examples: My plugin has dependencies.

Please put it in an array, even if it's only one value. We love arrays.

Examples: My plugin does not have dependencies.

Don't say that! Now Saturn is looking all over for a plugin called "None"

Conflicts

This section is for if you're aware of your plugin conflicting with another plugin, for example if you create a custom control panel plugin - you don't want users to use any others!

Examples: My plugin has conflicts.

Please put it in an array, even if it's only one value. Saturn loves arrays.

Examples: My plugin does not have conflicts.

Don't say that! Now Saturn is looking all over for a plugin called "None"

Hibernate

Examples: My plugin hibernates.

Please put it in an array, even if it's only one value. Everyone loves arrays.

Examples: My plugin does not hibernate.

Don't say that! Now Saturn is confused and won't load it until "None" is found!

Startup

The files that Saturn should load into the program. These files should have executable PHP outside of a class, Saturn doesn't load classes automatically.

Conventionally, you should only load one file which in turn loads and starts your plugin. But if you want to you can load more, it's up to you really - we don't care.

Examples

Your startup file can be in a subfolder.

You need to add a file extension!

If you load nothing, you plugin won't work.

Last updated