-
Notifications
You must be signed in to change notification settings - Fork 0
Server Owner Guide
Greenlight lets your server opt in to client features from compatible mods. You publish a small JSON policy in a server resource pack. Compatible client mods read that policy through Greenlight and decide whether to enable their feature.
Greenlight is not anti-cheat. It helps honest clients and modpacks share one permission format.
Players need:
- The client mod that owns the feature.
- The Greenlight client mod, if you want your server policy to grant anything.
If a player does not have the feature mod, your policy is harmless.
Some mods may support Greenlight as an optional dependency. Those mods can still launch when Greenlight is missing, but their Greenlight-controlled features should stay denied until the player installs Greenlight.
For the normal setup, the server only needs a resource pack. You do not need a Fabric, NeoForge, Paper, or Bukkit plugin just to publish Greenlight policy files.
Use a server mod or plugin only if you want a live custom policy channel instead of resource pack policy files.
Each feature gets one JSON file:
assets/<feature_namespace>/client_features/v1/<feature_path>.json
For feature examplemod:cave_tint:
assets/examplemod/client_features/v1/cave_tint.json
Example:
{
"protocol_version": 1,
"feature": "examplemod:cave_tint",
"enabled": true,
"settings_version": 1,
"settings": {
"max_strength": 0.35
}
}The settings object belongs to the mod that owns the feature. Check that mod's docs for the exact keys and values.
Host the pack somewhere your players can download it, then configure the server to send it.
In server.properties:
resource-pack=https://example.com/packs/my-greenlight-policy-pack.zip
resource-pack-sha1=<sha1-of-the-zip>
require-resource-pack=falseYou can set require-resource-pack=true if your server wants to require the pack for other reasons, but Greenlight does not require that. If a player declines or removes an optional pack, Greenlight does not see a trusted policy and compatible features stay denied.
Use the pack_format for your Minecraft version in pack.mcmeta.
Greenlight only trusts policy files from resource packs Minecraft marks as coming from the current server.
These do not grant features:
- Local player resource packs.
- World packs.
- Built-in packs.
- Files copied into the client by hand.
If the server pack is removed on disconnect, login failure, pack rejection, or pack removal, Greenlight removes the grant.
One pack can include policies for many mods:
assets/examplemod/client_features/v1/cave_tint.json
assets/othermod/client_features/v1/freecam.json
assets/anothermod/client_features/v1/fullbright.json
Clients only use policies for mods they actually have installed.
Use enabled: false to explicitly deny a feature from a higher-priority source:
{
"protocol_version": 1,
"feature": "examplemod:cave_tint",
"enabled": false
}For a normal single server pack, leaving the file out has the same result for most features: no trusted grant.
If a feature stays denied:
- Confirm the player has Greenlight installed.
- Confirm the player accepted the server pack and it is listed as active.
- Confirm the JSON path matches the feature ID.
- Confirm the
featurefield matches the file path. - Confirm
protocol_versionis1. - Confirm
settings_versionmatches the feature mod docs. - Check the client log for Greenlight policy parsing warnings.
Do not test by putting the same policy in a local resource pack. Greenlight is supposed to ignore that.
When a mod says it supports Greenlight, its docs should tell you:
- Feature ID.
- Policy file path.
- Full JSON example.
- What each
settingskey does. - Which
settings_versionit supports.