Server YAML reference

Every server can be written as one YAML document, its spec. Settings, YAML shows a server's spec and lets you edit it. New server, From YAML makes a server from one. Changes go through a plan like any other.

The first line points editors at the schema (/schema/server-v1.json on your panel). In VS Code with the YAML extension, that gives you autocomplete and checking.

Example

# yaml-language-server: $schema=https://panel.example.com/schema/server-v1.json
name: survival
displayName: Weekend Survival
loader:
  type: fabric
  minecraft: '26.3'
memory: 6G
port: 25566
hostname: survival.example.com
properties:
  motd: Welcome back
  difficulty: normal
  max-players: 30
  view-distance: 12
content:
  - modrinth: lithium
  - modrinth: chunky
  - vanillatweaks: Survival/multiplayer sleep
  - url: https://example.com/my-datapack.zip
    sha256: 0f343b0931126a20f133d67c2b018a3b5f0c6d0e7c5c1f2a2b1e5c8d9f7a6b5c
    kind: datapack
backups:
  schedule: '0 4 * * *'
  timezone: Europe/London
  keep: { last: 6, daily: 7, weekly: 4 }
  offsite: B2
timezone: Europe/London
schedules:
  - restart: '0 5 * * *'
  - command: save-all
    cron: '*/30 * * * *'
  - announce: 'The server restarts at 5am'
    cron: '0 22 * * *'

Fields

name (required)

The short name, used for the server's folder, user and unit. Lowercase letters, digits and hyphens, 2 to 31 characters, starting with a letter. It can't change once the server exists.

displayName

What players and you see. Defaults to the name.

loader (required)

FieldMeaning
typevanilla, fabric or paper.
minecraftThe Minecraft version, in quotes (unquoted, YAML reads 1.20 as the number 1.2).
versionThe Fabric loader version or Paper build number. Leave it out for the newest stable one when the plan runs.

Changing the version or loader goes through a plan that takes a backup first. Going back to an older Minecraft version is refused, because worlds can't be downgraded. Restore a backup instead.

memory

Memory for Java, like 4G or 3584M, between 1G and 64G. It must fit the machine's memory budget.

port

The game port, 1024 to 65535. Leave it out to use the next free one. Clashes with other servers are refused.

hostname

The address players use, such as survival.example.com. null clears it; left out, it stays as it is. See Addresses and DNS.

properties

Values for server.properties: strings, numbers or booleans. Anything left out keeps its current value. Values equal to Minecraft's defaults are left out when Flytower writes a spec. Some keys can't be set here:

  • server-port, enable-rcon and rcon.port are managed by Flytower. Set the port with port.
  • Secrets are hidden: rcon.password, management-server-secret, and any other key ending in secret or password (such as -secret or .password). They're never written into a spec or shown in the Settings form, and editing other properties or applying a spec keeps whatever secret is on disk. A cloned server gets fresh secrets of its own. To change one by hand, edit server.properties in the Files tab.

motd is the message of the day, shown under the server in the multiplayer list. It can have two lines and Minecraft's § formatting codes: colours §0 to §f, §l bold, §o italic, §n underline, §m strikethrough, §k obfuscated and §r to reset. In YAML, use double quotes so \n starts the second line:

properties:
  motd: "§6§lNew Theatre §r§7Survival\n§bOpen to members"

The editor in Settings, General, Game settings writes the same string, so you rarely need to type codes by hand. Hex colours aren't supported, because vanilla only reads the 16 colours from server.properties.

content

The full list of what the server runs. Anything installed through Flytower that isn't listed is removed. Dependencies don't need listing. Each item is one of:

ItemFields
Modrinthmodrinth: project slug or id. version: a version number or id (newest compatible if left out). kind: mod, plugin or datapack, rarely needed.
Hangarhangar: slug or owner/slug (Paper only). version: a version name (newest compatible if left out).
Vanilla Tweaksvanillatweaks: "Category/pack name", as on their site. tweak: crafting for a crafting tweak; datapack otherwise.
A linkurl: an https link. sha256: the file's hash; it's refused if it doesn't match. kind: mod, plugin or datapack. filename: optional.

See Mods, plugins and datapacks.

backups

Left out entirely, a server's backup settings stay as they are. When present:

FieldMeaning
scheduleA cron expression (minute hour day month weekday), such as '0 4 * * *' for 4am daily, or null for no schedule.
timezoneThe time zone the schedule runs in, such as Europe/London. Defaults to UTC.
keeplast (default 6), daily (7) and weekly (4): how many scheduled backups to keep. See Backups.
offsiteThe name of off-site storage from System, Off-site storage, or null for none. Left out, it stays.

recovery

What Flytower does when the server gets stuck. Left out, the current setting stays.

FieldMeaning
restartWhenUnresponsivetrue to restart the server once when its console hasn't answered for five minutes. Defaults to false. See Crashes.

public

The server's public status page. Left out, the current settings stay.

FieldMeaning
enabledtrue to turn the page on at /s/<name>. Defaults to false.
descriptionA few lines about the server, up to 500 characters, shown as plain text with line breaks.
show.playerscount (the default) shows how many are online, names shows their heads and names, none shows nothing.
show.versionfalse to hide the Minecraft version and loader. Defaults to true.
show.leaderboardtrue to show the player stats leaderboards. Needs show.players: names and stats on. Defaults to false.
pack.enabledfalse to stop offering the players' modpack. Defaults to true; Fabric only.
pack.extrasClient-only extras for the modpack: a list of modrinth: <slug>, each with an optional exact version.
public:
  enabled: true
  description: |
    Survival for New Theatre members.
    Season 3 started in September.
  show:
    players: names
  pack:
    extras:
      - modrinth: iris
      - modrinth: complementary-reimagined

map

The server's web map. Left out, the current settings stay.

FieldMeaning
enabledtrue to draw a web map of the world. Defaults to false.
publictrue to let anyone open the map without signing in. Needs the public page on. Defaults to false: only people who can see the server can.
playersfalse to hide where players are. Defaults to true.
map:
  enabled: true
  public: true

timezone

The time zone the server's scheduled tasks run in, such as Europe/London. Left out, it stays (UTC to begin with). Backups have their own, under backups.

schedules

Restarts, console commands and announcements the server runs by itself. See Scheduled tasks. When present, the whole list is replaced (tasks that haven't changed keep their last run). Left out, the current tasks stay; write schedules: [] to remove them all. Each item is one of:

ItemMeaning
restart: '0 5 * * *'Restart at these times. warn lists when to warn players beforehand, like [15m, 5m, 1m, 10s] (the default), up to 2h; [] for none. skipWarningsWhenEmpty (default true) restarts straight away when nobody is online.
command: save-all
cron: '*/30 * * * *'
Run a console command, without the slash. It can't be stop; use a restart instead.
announce: 'Restart at 5am'
cron: '0 22 * * *'
Show a line in everyone's chat, in gold or the brand colour. At most 256 characters.

Applying changed schedules never restarts the server. The plan lists tasks added and removed under Schedules.

Errors

Mistakes are marked on their line with a message saying what's wrong, and you can't apply until they're fixed. Problems the plan finds (a port in use, a mod with no build for your version, not enough memory) are listed in the plan, and stop it from applying.

Suggest a change on GitHub