Saturn
Saturn 1.0.0
Saturn 1.0.0
  • Saturn 1.0.0
  • 😁User Guide
    • Settings
      • Maintenance Mode
      • Website Environment
    • Security
      • Good security practices
      • Security Notice
    • System Requirements and Support
    • Update your Server
  • ⚠️Troubleshooting
    • Errors
      • Database Errors
      • Saturn Errors
      • Checksum Issues
  • 🧩Plugins
    • Plugins in Saturn
    • Official Plugins
      • Control Panel
        • User Guide
        • Developer Guide
          • Control Panel Hooks
    • Marketplace Plugins
  • 💻Developer Documentation
    • Getting Started
    • Libraries and Functions
      • AccountManager
        • Permissions
        • UUID
      • DatabaseManager
        • DBMS
          • Sending Database Requests
          • Query Information
          • Database Security
        • Database Actions
      • HookManager
        • Actions
        • Runners
      • HTTP
      • LanguageManager
      • PluginManager
        • Manage Plugin Content
        • Plugin Compatability
        • Check if a plugin is loaded.
        • Fetch Manifest
      • RouteManager
      • SecurityManager
        • Cross-site Request Forgery
        • Cross-site Scripting
      • SessionManager
        • Start and End Sessions
        • Validate Sessions
        • Session Data
      • TestManager
    • Security
    • Plugins
      • How to structure a plugin
      • Manifest
      • APIs
      • Checking for Dependencies
      • Power Features
        • 💤Hibernate
    • Hooks
    • Tests and Profiling
    • Global Variables
Powered by GitBook
On this page
  • Manifest keys and what they do
  • Slug
  • Name
  • Description
  • Author
  • Version->Plugin
  • Version->Saturn
  • Dependencies
  • Conflicts
  • Hibernate
  • Startup
  1. Developer Documentation
  2. Plugins

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.

PreviousHow to structure a pluginNextAPIs

Last updated 1 year ago

Example

My Cool Plugin!

Plugin by John Doe

Saturn Plugin

This is a cool plugin that does cool stuff

A plugin made by John Doe

A cool plugin for Saturn

["John Doe"]

["John Doe", "Jane Doe"]

["www.johndoe.com"]

["Anonymous"]

"John Doe"

1

1.2

1.2.3

1.2-patch-1

["1.0.0"]

["Saturn 1.0.0"]

"1.0.0"

["Example"]

["Example", "ExampleTwo"]

"Example"

[]

["None"]

["Example"]

["Example", "ExampleTwo"]

"Example"

[]

["None"]

Hibernate allows your plugin to only load when specific conditions are met, for more information please see .

["/panel"]

["/panel", "/account"]

"/panel"

false

["None"]

["Main.php"]

["Main.php", "Settings.php"]

["code/Main.php"]

["Main"]

[]

💻
✅
✅
❌
❌
✅
❌
❌
✅
✅
❌
❌
❌
✅
✅
✅
❌
✅
❌
❌
✅
✅
❌
✅
❌
✅
✅
❌
✅
❌
✅
✅
❌
✅
❌
✅
✅
✅
❌
❌
#hibernate