Documentation
Everything here is a short orientation. For the complete, maintained reference, read the repository’s README and the Salmon Scripts guide directly.
First-start configuration files
Salmon creates these in your server directory the first time it starts, if they don’t already exist.
| File | Purpose |
|---|---|
salmon.yml | Master switch, MOTD templates, and maintenance allowlist. |
config/salmon-opts.yml | Active optimization and plugin-metric settings. |
config/salmon-defaults.yml | Reference/default values for optimization settings. |
salmon-scripts/ | Trusted .slms scripts and their README. |
Configuration changes require a server restart. Salmon only copies a template when the file is missing — it never overwrites your existing configuration after an update.
Commands
Run these as a server operator, or grant the salmon.command permission.
| Command | What it does |
|---|---|
/salmon | Show Salmon's top-level status and available subcommands. |
/salmon status | Report current Salmon status. |
/salmon scripts reload | Re-parse and re-run startup scripts. |
/salmon modrinth search <query> | Search Modrinth for a Paper/Spigot plugin. |
/salmon modrinth install <slug> | Install a plugin from Modrinth; requires a restart. |
/smp maintenance on|off | Toggle maintenance mode. |
/smp maintenance whitelist add <uuid|playername> | Allowlist a player for maintenance mode. |
Salmon Scripts (.slms)
Salmon Scripts are a small, Luau-inspired language for automating trusted server tasks: variables, expressions, functions, conditionals, loops, console commands, block changes, logging, and delays. Scripts live in salmon-scripts/ and run at startup in filename order, or on demand via /salmon scripts reload.
meta(
name: "Welcome",
version: 1.0.0,
author: "ServerAdmin"
)
local playerMessage = "Welcome to Salmon!"
print(playerMessage)
run command say Welcome to Salmon!Scripts run with console authority
run command, command(...), and scripts generally can affect every player and modify the world. Only run scripts you wrote or carefully reviewed, and back up worlds before running scripts that make changes.
See the full Salmon Scripts guide for syntax, metadata requirements, and SalmonAPI functions.
Compatibility expectations
Plugins
Salmon keeps the Paper/Bukkit plugin foundation, so most existing plugins keep working. Plugin compatibility is never guaranteed — test updates on a copy of your server before deploying to a live world.
Backups, always
Back up your world before enabling persistent entity cleanup, changing redstone implementation, or running a new startup script for the first time.