Configuration
This page explains all UPU-related configuration. It is a complete guide to the plugin data folder (usually plugins/UniversalPluginUpdater), so you can tune UPU to your needs.
Overview
UPU configuration has two major parts: global (plugin) configuration and per-plugin update configuration. Each plugin has its own update config file named <PluginId>.json (where <PluginId> is the lowercase plugin name). There is also a global update config file global.json. UPU’s plugin config itself is a separate file named config.yml.
UPU stores plugin config in YAML and per-plugin update config in JSON. These are human-friendly, readable, and widely used formats for configuring software. Don’t worry—you don’t need to become a YAML/JSON expert to configure UPU. This is mentioned mainly in case you want to use scripts (for example Bash) to batch-create many UPU update config files.
A quick clarification on terms used in this documentation:
- If we say “configuration” without a prefix, it refers to UPU plugin configuration (
config.yml). - If we say “update configuration”, it refers to plugin update-check configs (
global.jsonand<PluginId>.json).
Because these terms are easy to confuse, we make the distinction explicit here.
Data Folder
All files required by UPU are stored in the UPU data folder. Its location depends on your server software, and is usually under the same directory level as plugin JAR files. Below are common paths (relative to server working directory), assuming defaults are unchanged:
- Bukkit/Paper:
plugins/UniversalPluginUpdater - BungeeCord/Waterfall:
plugins/UniversalPluginUpdater - Velocity:
plugins/universalpluginupdater
Plugin Configuration
Plugin configuration is stored in config.yml, with a structure like this:
verbose: false
language: system
platform:
name: null
game-versions: null
loaders: null
updater:
strategy: native
allow-upgrade-now: true
filename: ${originName}
proxy:
uri: ~
username: ~
password: ~
repository:
check-mode: 1
check-list:
- DEFAULT_MODE_IS_BLACKLIST
plugin-list:
- DEFAULT_MODE_IS_BLACKLIST
plugin-list-mode: 1For detailed explanation of every option, see the config.yml page.
Update Configuration
Update configuration has two categories:
- Global update configuration in
global.json - Per-plugin update configuration in
<PluginId>.jsonfiles under thechannelsfolder in the data directory
They differ in scope but share the same structure:
{
"selectedChannel": null,
"channels": [
{
"type": "modrinth",
"config": {
"projectId": null,
"featured": false
}
},
{
"type": "url",
"config": {
"url": null
}
},
{
"type": "github",
"config": {
"repository": null,
"auth": null,
"accept": "application/java-archive",
"filter": null
}
},
{
"type": "hangar",
"config": {
"author": null,
"slugOrId": null,
"channel": null,
"platform": null
}
},
{
"type": "spigotmc",
"config": {
"resource": null,
"proxy-download": false
}
}
]
}For detailed explanation of all options, see global.json / <PluginId>.json.