Skip to content

Installation

What you need, how to install the plugin, and the first setup. This takes about five minutes.

Requirements

Requirement Details
Server Spigot or Paper 1.21 and newer
Java Java 21
Internet Needed on the first start only (see below)
Other plugins None required. zFrostBoats runs on its own. Three optional add-ons unlock extra polish (see Optional plugins).

Where to buy

zFrostBoats is a paid plugin. If you do not have the jar yet, see the Download page.

Optional plugins

You do not need any of these to run zFrostBoats. It works fully on its own, and each one just adds something extra. To use one, download it and drop its jar in your plugins folder alongside zFrostBoats; it loads automatically.

Plugin What it adds Download
FastAsyncWorldEdit (FAWE) Builds and clears arenas faster. Matters most on big arenas or many matches at once. Without it, the plugin builds in small batches. SpigotMC
PlaceholderAPI Enables the %zfrostboats_...% placeholders for stats, live match info, and leaderboards in other plugins (scoreboards, tab, holograms). SpigotMC
PacketEvents Reads boat steering straight from the client for exact paddle, brake, and reverse. Without it, movement is estimated from boat speed (still playable). SpigotMC

Install order does not matter

Drop any of these in the plugins folder and restart. zFrostBoats detects them on start and logs which ones it found.

Install it

  1. Stop your server. Shut it down fully before adding the jar.
  2. Add the jar. Drop the zFrostBoats jar into your server's plugins folder.
  3. Start the server once. Let it finish loading, then stop it again. This creates the settings files.
  4. Start the server again. You are ready to set up a world.

First start downloads a few helper files

The first time the plugin runs, it downloads a few small helper files for the default SQLite storage on its own. This is expected. Just let it finish. After that, no internet is needed. (The MySQL driver is separate and only downloads if you switch storage to MySQL.)

Set up your first arena world

You need to tell the plugin which world hosts matches and mark the area where matches can appear.

  1. Go to the world where you want matches to happen. Pick a large, empty area.
  2. Set the host world:
    /zfb admin setworld <world name>
    
    You get a confirmation message.
  3. Mark the area. Stand at one corner of the region and run:
    /zfb admin setbounds
    
    Then walk to the opposite corner and run it again. The second run saves the area. Walk far. The two corners must be far enough apart to hold a whole arena plus a buffer around it. With the default arena size that is at least about 170 blocks apart in both directions (X and Z). If your area is too small, the plugin warns you the moment you set the second corner and tells you the minimum size it needs, so you can widen it and try again.
  4. Done. Once the area saves with no too-small warning, players can join with /zfb join.
Joining a match with a slot available
Joining a match: the plugin confirms your slot and sends you to its waiting lobby.

This setup is one-time

The world and the marked area are saved in config.yml and survive plugin updates and restarts. You never need to run setworld or setbounds again unless you want to move the arena area. Worlds managed by Multiverse or a similar plugin work too, even if they load after zFrostBoats starts.

Make the area big enough

Each match needs room for a full arena and a buffer. If the two corners are too close, no match can fit: /zfb admin setbounds warns you right away, and /zfb join will say the area is too small. A wide, open region avoids this and gives the cleanest result. The plugin spaces matches apart and can stack them above each other if space runs low.

Your plugin folder

After the first run, the plugin folder looks like this:

plugins/
└── zFrostBoats/
    ├── config.yml        # all settings
    ├── styles.yml        # your named color styles
    ├── stats.db          # player stats (SQLite default)
    └── lang/
        ├── english.yml
        ├── french.yml
        ├── german.yml
        ├── spanish.yml
        └── italian.yml

Next steps