Skip to content

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.

FilePurpose
salmon.ymlMaster switch, MOTD templates, and maintenance allowlist.
config/salmon-opts.ymlActive optimization and plugin-metric settings.
config/salmon-defaults.ymlReference/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.

CommandWhat it does
/salmonShow Salmon's top-level status and available subcommands.
/salmon statusReport current Salmon status.
/salmon scripts reloadRe-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|offToggle 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.

salmon-scripts/welcome.slms
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.