promotional bannermobile promotional banner

SSP - Scripted Server Plugin

This plugin helps you if you have a Scripted SMP Server

SSP-1.0.0.jar — what's inside, and what you need to run it

This is the file you drop into your server. Everything below describes that one jar: what it contains, what it needs, and what it creates once it starts.


What the file is

Filename SSP-1.0.0.jar
Size ~138 KB
Type Bukkit/Spigot server plugin (not a client mod, not a datapack)
Contents 33 compiled classes + plugin.yml + config.yml
Bundled libraries None — nothing is shaded in

It is a plugin, so it goes in your server's plugins/ folder. Players do not install anything, and it will not do anything if put in a client mods/ folder.


What you need

Required

Java 17 or newer The jar is compiled to Java 17 bytecode (class major version 61). Any server running MC 1.18+ already meets this.
A Bukkit-family server Spigot, Paper, or Purpur. Also works on Bukkit-hybrid loaders (Mohist, Arclight, Cardboard).
Minecraft 1.18 → current Declared api-version: 1.18. Anything newer is reached reflectively at runtime, so one jar covers the whole range.
Operator status The entire /ssp tree is gated behind the ssp.admin permission (default: op). Without it the command reports as nonexistent.

Fabric and Forge will not load this. They are different mod loaders with no plugin.yml and no Bukkit entry point. Use a hybrid server if you need it on one of those.

Optional — both entirely safe to leave uninstalled

Plugin What it unlocks Without it
SkinsRestorer A disguised player sees their own new skin instantly, no relog. Skins still change and everyone else sees them immediately; the wearer needs a relog.
Simple Voice Chat The proximity voice gate — microphones muted unless the speaker holds ssp.voice. The voice gate sits idle. Everything else is unaffected.

Both are detected at startup. Neither is bundled, and a missing one is logged as a normal info line, not an error.

Internet access

The identity scrambler resolves usernames against api.mojang.com and sessionserver.mojang.com. If your server cannot reach the internet, disguises will not find identities to use — /ssp random diagnose will tell you so. Nothing else in the plugin needs network access.


Installing

  1. Stop the server.
  2. Drop SSP-1.0.0.jar into plugins/.
  3. Start the server. Look for [SSP] Command /ssp registered. in the console.
  4. Run /ssp in-game as an operator to see the full command list.

To update, replace the jar and restart. Your config.yml is never overwritten — see the warning below.


What it creates on first run

All inside plugins/SSP/:

Path What it holds Safe to edit by hand?
config.yml Settings. Nine sections: unknown-command-message, chat, sign, voice, identity, plotarmor, admin, troll, illusion. Yes — then /ssp reload.
data.yml Runtime state: whitelists, bypass lists, bans, timeouts, plot armour, saved disguises. No — not while the server is running; the plugin overwrites it.
presets/ One .yml per saved inventory preset (/ssp inventory save). Not recommended.

The one gotcha worth knowing

Bukkit never overwrites an existing config.yml. If you have run an older build and then update the jar, any new settings will be missing from your file and will silently fall back to their coded defaults.

If a newly documented option seems to do nothing, that is why. Either add the key by hand, or delete config.yml and restart to regenerate it — data.yml and presets/ are untouched by that, so you lose no bans, whitelists or loadouts.


Permissions

Node Default Grants
ssp.admin op The entire /ssp tree. Also implies ssp.admin.inventory.
ssp.admin.inventory op Only /ssp inventory — so loadout management can be delegated without handing over the rest of the plugin.
ssp.voice nobody Lets the holder's proximity voice actually be broadcast. Never granted automatically; hand it out through your permissions plugin.

What the commands are

Nine tabs. Full descriptions are in README.md; the complete per-command list with behaviour notes is in CHANGELOG.md.

Tab Purpose
/ssp chat Global chat lockdown and bypass whitelist.
/ssp sign Sign lockdown, enforced three separate ways.
/ssp random Identity scrambler — real skins and usernames from real accounts.
/ssp plotarmor Survival lock: fatal hits never register a death.
/ssp admin Real moderation: bans, timeouts, freeze, vanish, invsee, teleport.
/ssp troll Cosmetic, fully reversible effects. No item loss, no lasting damage.
/ssp illusion Fake output for staging a moment — nothing here is real.
/ssp inventory Global gear presets: save once, deploy to anyone.
/ssp status, /ssp reload Current state, and re-read config.yml.

Three commands are genuinely destructive and are logged to console on every use, independent of chat scrollback: /ssp admin clearinventory, /ssp inventory load onto another player, and /ssp inventory delete.


If something goes wrong

Symptom Check
/ssp says unknown command Are you an operator? That message is also what non-ops are designed to see. Run /plugins — green means loaded.
Plugin missing from /plugins It failed to enable. The console has the reason at startup.
Disguise applies but you can't see your own skin Expected on Spigot without SkinsRestorer. Run /ssp random diagnose — the ACTIVE BACKEND: line says which path is in use.
A config option seems ignored Your config.yml predates it. See the gotcha above.
Everyone gets re-disguised on login The global scramble is on. /ssp random disable turns it off.

SSP - Scripted Server Plugin Team

profile avatar
Owner
  • 1
    Projects
  • 30
    Downloads